Toute notre configuration et tous nos essais et remarques sont détaillés ici : Comment mettre en place un serveur DNS récursif-cache ouvert dans de bonnes conditions.
Nous utilisons le logiciel serveur DNS Unbound.
Sur cette page, nous résumerons juste les principales étapes pour monter un récursif DNS ouvert sans rien expliquer.
dnssec-enable yes; dnssec-validation auto; # dnssec-lookaside auto; # plus vraiment nécessaire de nos jours
auto-trust-anchor-file: "/var/lib/unbound/root.key"
#allow-query { 127.0.0.1; ::1; <votre_bloc_IPv4>; <votre_bloc_IPv6>; }; #allow-query-cache { 127.0.0.1; ::1; <votre_bloc_IPv4>; <votre_bloc_IPv6>; }; #allow-recursion { 127.0.0.1; ::1; <votre_bloc_IPv4>; <votre_bloc_IPv6>; };
server: [...] #access-control: 127.0.0.1/32 allow #access-control: ::1/128 allow #access-control: <votre_bloc_IPv4> allow #access-control: <votre_bloc_IPv6> allow
iptables -N DNS-RATE-LIMIT iptables -A FORWARD ! -s <votre_bloc_IPv4> -d <IPv4_de_votre_récursif> -p udp -m udp --dport 53 -j DNS-RATE-LIMIT iptables -A DNS-RATE-LIMIT -m string --hex-string "|0000ff0001|" --algo bm --from 28 --to 65535 -m hashlimit \ --hashlimit-above 1/sec --hashlimit-burst 2 --hashlimit-mode srcip --hashlimit-name RL-DNS-ANY-v4 --hashlimit-srcmask 24 -m comment --comment "RATE-LIMIT ANY QTYPE 1/s burst 2" -j DROP iptables -A DNS-RATE-LIMIT -m hashlimit --hashlimit-above 10/sec --hashlimit-burst 20 --hashlimit-mode srcip --hashlimit-name RL-DNS-GLOBL-v4 --hashlimit-srcmask 24 -m comment --comment "RATE-LIMIT ALL QUERIES 10/s burst 20" -j DROP
ip6tables -N DNS-RATE-LIMIT ip6tables -A FORWARD ! -s <votre_bloc_IPv6> -d <IPv6_de_votre_récursif> -p udp -m udp --dport 53 -j DNS-RATE-LIMIT ip6tables -A DNS-RATE-LIMIT -m string --hex-string "|0000ff0001|" --algo bm --from 48 --to 65535 -m hashlimit --hashlimit-above 1/sec --hashlimit-burst 2 --hashlimit-mode srcip --hashlimit-name RL-DNS-ANY-v6 --hashlimit-srcmask 56 -m comment --comment "RATE-LIMIT ANY QTYPE 1/s burst 2" -j DROP ip6tables -A DNS-RATE-LIMIT -m hashlimit --hashlimit-above 10/sec --hashlimit-burst 20 --hashlimit-mode srcip --hashlimit-name RL-DNS-GLOBL-v6 --hashlimit-srcmask 56 -m comment --comment "RATE-LIMIT ALL QUERIES 10/s burst 20" -j DROP
max-udp-size 1460;