1 |
On 01/08/2015 11:21, Meino.Cramer@×××.de wrote: |
2 |
> Hi, |
3 |
> |
4 |
> With ufw I want temporary block any access from my Gentoo PC to certain |
5 |
> domains. Since domain names change IP addresses I dont want to block |
6 |
> on base of the IP only. |
7 |
> |
8 |
> Is this possible with ufw? |
9 |
|
10 |
|
11 |
That is really not a good idea, which is why packet filtering firewalls |
12 |
seldom attempt it. |
13 |
|
14 |
It means that *every*single*packet* involves a reverse DNS lookup to get |
15 |
the (unreliable) DNS name (which might not even be listed at all), do a |
16 |
string comparison and make a block decision based on that. All of which |
17 |
is probably an order of magnitude more resource use that simply sending |
18 |
the packet out. There are optimizations of course, such as caching the |
19 |
results of previous lookups, but there's still a considerable overhead. |
20 |
|
21 |
There's a few ways around it: |
22 |
|
23 |
1. Rethink your firewalling policy. Maybe you really don't need to block |
24 |
stuff and just think you do. |
25 |
|
26 |
2. Do a DNS lookup and check the TTL. If it's high, say 86400 then it |
27 |
cannot change more than once a day. So you only need to do a lookup once |
28 |
a day. Write or get a script that looks up your banned domains every so |
29 |
often, gets the new IP if it changed and reload a new netfilter rule set. |
30 |
|
31 |
#2 is the correct approach for large firewalls with many users but does |
32 |
involves a quite sophisticated codebase, probably way more than you need |
33 |
for your 1 pc. Which brings us back to #1 |
34 |
|
35 |
-- |
36 |
Alan McKinnon |
37 |
alan.mckinnon@×××××.com |