> > $FW -A INPUT -i $OUT_IF -s 0.0.0.0/0 -d $OUT_IP -p tcp -m state --state
> NEW --sport 1024:65535 --dport 53 -m hashlimit --hashlimit 3/second --
> hashlimit-mode srcip,dstport --hashlimit-name dns -j ACCEPT
> > $FW -A INPUT -i $OUT_IF -s 0.0.0.0/0 -d $OUT_IP -p udp -m state --state
> NEW --sport 1024:65535 --dport 53 -m hashlimit --hashlimit 3/second --
> hashlimit-mode srcip,dstport --hashlimit-name dns -j ACCEPT
> 
> Ich würde das Limit vielleicht nicht ganz so knapp setzen, wenn eine
> normale Anfrage schon aus 3 Querys besteht. Vielleicht fragt derselbe
> Client kurz darauf noch nach einem anderen Eintrag.
> Die "Angriffe" haben ja wahrscheinlich deutlich höhere Werte.
>
Ich stelle gerade verwundert fest, dass meine Regeln nicht für "den Angreifer" 
funktionieren sondern offenbar "nur" für meinen Test.
Ich habe von einem zweiten Rechner aus den bind durch 10 verkettete 'dig A 
domain.tld' befeuert und dabei mittels 'tailf /var/log/named/named.log' die 
queries beobachtet. 5 kommen sofort durch und dann - nach einer kurzen 
Verzögerung von vllt. 3 Sekunden - immer drei. Ich denke diese "Verzögerung ist 
in "--haslimit-htable-expire" definiert, was ich noch nicht gesetzt habe und wo 
ich auch den default noch nicht herausgefunden habe. Grundsätzlich schaffen die 
obigen Regeln aber das Verhalten, welches ich dachte.
Nun kommen die "Chinesen" wieder und deren queries laufen einfach durchs Log, 
ganz ohne bei 5 zu stoppen. Was machen die anders als ich? Ich habe mich mal 
vom state NEW getrennt, das hilft aber auch nicht.

Hier meine neuen Regeln:

iptables -A INPUT -i $EXT_IF -s 0.0.0.0/0 -d $EXT_IP -m tcp -p tcp --dport 53 
-m hashlimit --hashlimit 3/second --hashlimit-mode srcip,dstport 
--hashlimit-name dns -j ACCEPT
iptables -A INPUT -i $EXT_IF -s 0.0.0.0/0 -d $EXT_IP -m udp -p udp --dport 53 
-m hashlimit --hashlimit 3/second --hashlimit-mode srcip,dstport 
--hashlimit-name dns -j ACCEPT

Und dazu ein Auszug der queries:

15-Mar-2012 14:27:52.686 queries: info: client 121.12.104.150#47472: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:27:53.398 queries: info: client 121.12.104.150#20757: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:27:53.508 queries: info: client 121.12.104.150#44659: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:27:53.971 queries: info: client 121.12.104.150#30994: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:27:53.987 queries: info: client 121.12.104.150#36569: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:27:54.113 queries: info: client 121.12.104.150#56850: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:27:54.603 queries: info: client 121.12.104.150#28559: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:27:55.011 queries: info: client 121.12.104.150#13413: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:27:55.159 queries: info: client 121.12.104.150#11990: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:27:55.479 queries: info: client 121.12.104.150#55084: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:27:55.791 queries: info: client 121.12.104.150#16305: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:27:56.093 queries: info: client 121.12.104.150#30599: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:27:56.567 queries: info: client 121.12.104.150#58345: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:27:57.077 queries: info: client 121.12.104.150#23230: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:27:57.365 queries: info: client 121.12.104.150#53775: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:27:57.543 queries: info: client 121.12.104.150#51001: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:27:57.755 queries: info: client 121.12.104.150#28006: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:27:58.278 queries: info: client 121.12.104.150#30505: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:27:58.457 queries: info: client 121.12.104.150#25222: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:27:58.927 queries: info: client 121.12.104.150#8773: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:27:59.092 queries: info: client 121.12.104.150#61119: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:27:59.582 queries: info: client 121.12.104.150#20307: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:27:59.822 queries: info: client 121.12.104.150#8706: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:28:00.678 queries: info: client 121.12.104.150#32522: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:28:00.985 queries: info: client 121.12.104.150#21451: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:28:01.562 queries: info: client 121.12.104.150#23000: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:28:01.658 queries: info: client 121.12.104.150#7686: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:28:01.740 queries: info: client 121.12.104.150#39873: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:28:01.871 queries: info: client 121.12.104.150#49251: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:28:02.168 queries: info: client 121.12.104.150#42001: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:28:02.678 queries: info: client 121.12.104.150#1174: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:28:02.993 queries: info: client 121.12.104.150#64340: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:28:03.663 queries: info: client 121.12.104.150#20407: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:28:03.748 queries: info: client 121.12.104.150#1107: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:28:03.913 queries: info: client 121.12.104.150#53520: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:28:04.214 queries: info: client 121.12.104.150#39886: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:28:04.599 queries: info: client 121.12.104.150#31762: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:28:04.823 queries: info: client 121.12.104.150#63690: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:28:05.679 queries: info: client 121.12.104.150#28204: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:28:05.792 queries: info: client 121.12.104.150#22906: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:28:06.313 queries: info: client 121.12.104.150#57963: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:28:06.464 queries: info: client 121.12.104.150#59050: query: 
domain.tld IN ANY + (7x.4y.zz.zz)
15-Mar-2012 14:28:06.771 queries: info: client 121.12.104.150#56741: query: 
domain.tld IN ANY + (7x.4y.zz.zz)

Genau genommen sind das nicht mehr als 4 queries pro Sekunde. Diese "Welle" 
begann 14:27:37.749 und endete 14:28:37.570 mit insgesamt 184 queries.

Aber ob ich wirklich mit sowas wie "--hashlimit 10/minute" arbeiten möchte, 
weiß ich noch nicht. Wahrscheinlich macht "hashlimit" den Rechner langsamer als 
die queries, wenn ich das bind logging wieder deaktiviere ...


Mit freundlichen Grüßen / Kind regards
     Ronny Seffner
-- 
Ronny Seffner  |  Alter Viehweg 1  |  01665 Triebischtal

www.seffner.de  |  ro...@seffner.de  |  +49 35245 72950


_______________________________________________
Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
https://ssl.schlittermann.de/mailman/listinfo/lug-dd

Antwort per Email an