Configurer Fail2ban pour Samba-AD

Par défaut l’environnement AD permet de définir des stratégies de mot de passe qui protègent le domaine en bloquant les comptes qui ont tenté des accès multiples non autorisés.

Toutefois cela risque de produire des DoS si un attaquant teste les comptes avec des mot de passe incorrects.

C’est pourquoi il est recommandé de ne pas faire de lockout sur le compte lui même mais plutôt un fail2ban sur l’adresse IP source des tentatives échouées de connexion.

Valider que la redirection de log est bien activée dans le fichier smb.conf.

Il faut faire attention que dans le cas d’authentification NTLM, c’est le serveur de fichiers qui se connecte au contrôleur de domaine pour valider le challenge NTLM, et non le poste utilisateur. Il faut donc bien configurer l’environnement pour ne pas blacklister par erreur le serveur de fichiers lui même.

log level = 1 auth_json_audit:3@/var/log/samba/auth_json_audit.log
  • Installer l’utilitaire fail2ban :

    # RedHat8 and derived distributions
    yum install fail2ban
    # Debian
    apt-get install fail2ban
    
  • Créer le fichier de configuration /etc/fail2ban/filter.d/samba.conf :

    [Definition]
    failregex = NT_STATUS_WRONG_PASSWORD.*remoteAddress": "ipv4:<HOST>:
    
  • Créer le fichier de configuration /etc/fail2ban/jail.d/samba.conf :

    [samba]
    filter = samba
    enabled = true
    action = iptables-multiport[name=samba, port="88,135,389,445,464,636,3328,3329", protocol=tcp]
    #   mail[name=samba, dest=technique@mondomaine.fr]
    logpath = /var/log/samba/auth_json_audit.log
    maxretry = 5
    findtime = 600
    bantime = 600
    
  • Pour exclure certaines adresses IP du fail2ban, créer un fichier /etc/fail2ban/jail.d/customisation.local :

    [DEFAULT]
    ignoreip = 192.168.154.217
    
  • Activer le fail2ban :

    systemctl enable fail2ban
    systemctl start fail2ban
    

Comment débloquer une machine après nettoyage ?

  • Pour débloquer une adresse IP :

    fail2ban-client set samba unbanip <COMPUTER_IP>
    
  • Afficher des adresses IP bloquées :

    fail2ban-client status samba