named[…]: error (no valid RRSIG) resolving – Bind9

Jeśli w logach systemowym pojawia Wam się poniższy wpis:

named[...]: error (no valid RRSIG) resolving

prawdopodobnie w pliku /etc/bind/named.conf.local macie domyślnie włączoną opcję dnssec, która może powodować błędy.

Rozwiązaniem jest wyłączenie powyższej opcji poprzez edycję pliku konfiguracyjnego named.conf.local jak poniżej:

root@server:/# vim /etc/bind/named.conf.local
przed:
  dnssec-enable yes;
  dnssec-validation yes;
po:
  dnssec-enable no;
  dnssec-validation no;

Jeśli nie macie opcji dnssec w pliku konfiguracyjnym, warto je dodać i ustawić ich wartości jak powyżej na no.

Po zapisaniu pliku koniecznie wykonajcie restart serwera DNS:

root@server:/# service bind9 restart

lub ładniej:

root@server:/# rndc reload

Zabezpieczenie Binda w iptables

Jak odpowiadać na rekursywne ataki DNS, DoS lub DDoS?

Poniżej kilka przykładów konfiguracji iptables:

Objawem ataków jest wpis w logach Binda podobny do poniższego i powtarzający się nawet kilka razy na sekundę z różnych adresów IP lub cały czas z tego samego.

query (cache) 'isc.org/ANY/IN'

Na początku przed innymi regułami dotyczącymi DNS’a należy dodać poniższe wpisy i zrestartować firewalla:

PUBLIC_IF=eth0 //interfejs sieciowy publiczny
IPTABLES=/sbin/iptables //ścieżka do iptables

$IPTABLES -A INPUT -i $PUBLIC_IF -p udp --dport 53 -m recent --set
$IPTABLES -A INPUT -i $PUBLIC_IF -p udp --dport 53 -m recent --update --seconds 30 --hitcount 10 -j DROP

lub inny przykład:

PUBLIC_IF=eth0 //interfejs sieciowy publiczny
IPTABLES=/sbin/iptables //ścieżka do iptables

$IPTABLES -A INPUT -i $PUBLIC_IF -p udp --dport 53 -m recent --update --seconds 30 -j DROP
$IPTABLES -A INPUT -i $PUBLIC_IF -p udp --dport 53 -m recent --update --seconds 30 --hitcount 10 --rttl --set -j DROP

poniższe też może być ciekawe:

PUBLIC_IF=eth0 //interfejs sieciowy publiczny
IPTABLES=/sbin/iptables //ścieżka do iptables

$IPTABLES -A INPUT -i $PUBLIC_IF -d $MAIN_IP -p udp --dport 53 -m state --state ESTABLISHED,RELATED -j DROP