====== Bind absichern ====== ===== rekursive Abfragen abschalten ===== options { recursion no; }; ===== rekursive Abfragen verbieten ===== ''/etc/bind/named.conf.options'' ( Debian ) ''/etc/bind/named.conf'' ( SuSE ) acl friendly { 192.168.1.0/24; }; options { allow-recursion { friendly; }; }; (( oder, wenn man einen hidden primary Nameserver betreibt sogar: options { allow-query { friendly; }; }; )) (( ''allow-query-cache'' muss nicht zusätzlich eingeschränkt werden, da es per default den Wert von ''allow-recursion'' übernimmt. )) ===== Zonentransfer verbieten ===== ''/etc/bind/named.conf.options'' ( Debian ) ''/etc/bind/named.conf'' ( SuSE ) acl internal { 127.0.0.1/32; // localhost }; acl friendly { internal; 192.168.1.204; // slave DNS }; options { allow-transfer { friendly; }; }; Oder, alternativ, nur für eine Zone: ''/etc/bind/named.conf.local'' ( Debian ) ''/etc/bind/named.conf'' ( SuSE ) zone "linuxhotel.de" { type master; file "master/linuxhotel.de"; allow-transfer { friendly; }; }; ===== IPv6 ausschalten ===== ''/etc/bind/named.options'' : ( Debian 4.0 ) options { … listen-on-v6 { none; }; … }; ===== bind in chroot ===== * Bei SuSE ist das automatisch so, * bei RedHat 6 gibt es ein Paket ''bind-chroot'', * bei debian sarge muß man noch etwas Hand anlegen: ''/etc/default/bind9'': CHROOT="/var/lib/bind" OPTIONS="-u bind -t $CHROOT" test -d $CHROOT/var/run || mkdir -p $CHROOT/var/run test -d $CHROOT/var/run/bind || mv /var/run/bind $CHROOT/var/run test -e /var/run/bind || ln -s $CHROOT/var/run/bind /var/run/bind test -d $CHROOT/var/cache || mkdir -p $CHROOT/var/cache test -d $CHROOT/var/cache/bind || mv /var/cache/bind $CHROOT/var/cache test -e /var/cache/bind || ln -s $CHROOT/var/cache/bind /var/cache/bind test -d $CHROOT/dev || mkdir -p $CHROOT/dev test -c $CHROOT/dev/null || mknod $CHROOT/dev/null c 1 3 test -c $CHROOT/dev/random || mknod $CHROOT/dev/random c 1 8 chmod 666 $CHROOT/dev/random $CHROOT/dev/null test -d $CHROOT/etc || mkdir -p $CHROOT/etc test -d $CHROOT/etc/bind && rm -r $CHROOT/etc/bind cp -a /etc/bind $CHROOT/etc Ab Debian lenny reicht: ''/etc/default/bind9'' : OPTIONS="-u bind -t /var/lib/named" Beim nächsten restart läuft bind in einer chroot-Umgebung. Überprüfen: (( Anders als in manchen HowTos beschrieben ist es nicht notwendig ''/dev/log'' ins chroot zu legen und den Syslog anzupassen. ''named'' macht erst einen ''connect'' mit ''/dev/log'' und erst danach ''chroot''. )) /etc/init.d/bind9 restart ls /proc/`pgrep named`/root