Vous n'êtes pas identifié.
Je souhaite partager mon expérience avec vous en ce qui concerne l'activation des proctections DNS avec fail2ban.
Dans le fichier /etc/fail2ban/jail.conf on peut y trouver ses informations:
# DNS Servers # These jails block attacks against named (bind9). By default, logging is off # with bind9 installation. You will need something like this: # # logging { # channel security_file { # file "/var/log/named/security.log" versions 3 size 30m; # severity dynamic; # print-time yes; # }; # category security { # security_file; # }; # } # # in your named.conf to provide proper logging # Word of Caution: # Given filter can lead to DoS attack against your DNS server # since there is no way to assure that UDP packets come from the # real source IP
Dans /etc/fail2ban/jail.conf j'ai activée les règles suivantes:
[named-refused-udp] enabled = true port = domain,953 protocol = udp filter = named-refused logpath = /var/log/named/security.log maxretry = 1 [named-refused-tcp] enabled = true port = domain,953 protocol = tcp filter = named-refused logpath = /var/log/named/security.log maxretry = 1
Dans le fichier /etc/bind/named.conf.local j'ai ajouté ceci à la fin:
logging { channel security_file { file "/var/log/named/security.log" versions 3 size 30m; severity dynamic; print-time yes; }; category security { security_file; }; };
Un redémarrage de fail2ban et de bind s'impose:
/etc/init.d/fail2ban restart
/etc/init.d/bind9 restart
S'il n'existe pas vous devez créer le répertoire named:
mkdir /var/log/named
chown root:adm named
drwxr-xr-x 2 root adm 4096 oct 25 19:16 named
Jusqu'à ici tout va bien .... en tout cas pour moi.
Mais .... mais .... il manque encore quelque chose (dans la doc)!
Et oui le fichier /var/log/named/security.log va gonfler .... car il n'y à pas de logrotate.
Allez dans:
/etc/logrotate.d/
puis créez le fichier:
named-zone-transfer
et insérez ce code:
/var/log/named/*.log { minimal missingok rotate 7 compress delaycompress create 644 bind bind sharedscripts postrotate if [ -f /var/run/bind/run/named.pid ]; then /etc/init.d/bind9 restart > /dev/null fi endscript }
Et voila le tour est joué.
Dernière modification par Didier100 (26 Oct 2009 10:52:59)
Hors ligne
Salut,
Quel est le rôle du serveur DNS que tu protèges de cette manière ? Je pense que mettre en place ce mécanisme de sécurité sur un serveur d'autorité expose les zones de ce serveur à un DoS (Mais pour un resolver cache, il n'y a pas de problème.)
Par défaut, si la récursion est interdite pour l'extérieur (et elle devrait l'être), bind va rejeter les requêtes pour les domaines ne le concernant pas. Il suffira à l'attaquant d'enregistrer un domaine quelconque et de déclarer ton serveur comme NS. Ton serveur bloquera alors les clients légitimes accédant à cette zone; Une seule requête d'un client vers le domaine d'attaque (par exemple le chargement automatique d'une image sur une page web) risque de mettre ton domaine hors-service pour un ISP entier. Si tu utilises un service de DNS secondaire gratuit (parfois fourni par les registrars, ou indépendant comme xname.org) on peut également saboter tes secondaires avec la même attaque.
Note que c'est une attaque un peu différente de celle mentionnée dans le fichier; elle n'est pas aussi rapide, mais n'est pas bloquable par les techniques anti-spoofing traditionnelles (RPF et al)
Hors ligne
Salut BOFH,
MERCI pour ta mise en garde.
Je l'utilise le serveur en question comme serveur web, ftp, email et DNS primaire.
En ce qui concerne la récursion voici mon fichier /etc/bind.named.conf.options
options { directory "/var/cache/bind"; // If there is a firewall between you and nameservers you want // to talk to, you may need to fix the firewall to allow multiple // ports to talk. See http://www.kb.cert.org/vuls/id/800113 // If your ISP provided one or more IP addresses for stable // nameservers, you probably want to use them as forwarders. // Uncomment the following block, and insert the addresses replacing // the all-0's placeholder. // forwarders { // 0.0.0.0; // }; auth-nxdomain no; # conform to RFC1035 //listen-on { 127.0.0.1; }; // desactivé par Didier100 le 16 juin 2009 //ajouté les deux lignes suivantes par Didier100 le 16 juin 2009 listen-on-v6 { any; }; allow-notify { 88.191.xxx.xxx; }; // adresse ip de mon serveur };
La récursion n'est pas explicitement interdite sur le serveur en question. Doit d'ajouter ceci
recursion no;
s'achent qu'il existe également un DNS secondaire.
Si j'ai bien compris ses deux filtres DNS de fail2ban, au lieu de protéger mon serveur (partie DNS) l'exposent plutôt aux attaques DoS?
Ses deux filtres ne sont donc pas adapté pour mon besoin?
Dernière modification par Didier100 (26 Oct 2009 10:33:57)
Hors ligne