Sshit (bloquer les attaques par force brute)

Un article de DocAstairs.

[modifier] Bloquer les attaques sur le port ssh

Tous les serveurs en ligne sont constamment mis à l'épreuve par des petits malins qui veulent à tout pris y entrer. Le meilleur accès pour un pirate est incontestablement un accès ssh avec le d'un de vos utilisateur, et même le compte root si possible. Bon nombre de ces personnes mal intentionnées n'ont pas de notions avancées dans le domaine de la sécurité (comme moi d'ailleurs ;) et utilise des Scripts kiddies. Même si vous avez mis en place une politique de mot de passe fort et même un système de connexion à ssh par clé public clé privée, certains de ces petits scripts remplirons rapidement vos log d'authentification et polluent votre bande passante. Je vous présente une des solutions possible pour éviter les attaques par brute force et par dictionnaire : sshit.

[modifier] Mise en place de sshit

  • installez le port :
root@freebsd#cd /usr/port/security/sshit
root@freebsd#make install clean
  • Éditez le fichier de configuration /usr/local/etc/sshit.conf et remplacez les valeurs par défaut par celle indiquées en gras
# We use pf as firewall on default
FIREWALL_TYPE   = ipfw

# Number of failed login attempts within time before we block
MAX_COUNT       = 3

# Time in seconds in which all failed login attempts must occur
WITHIN_TIME     = 60

# Time in seconds to block ip in firewall
RESET_IP        = 1200

IPFW_CMD        = /sbin/ipfw

# Make sure you don't have any important rules here already
IPFW_RULE_START = 2100
IPFW_RULE_END   = 2199

IPFW2_CMD       = /sbin/ipfw
IPFW2_TABLE_NO  = 0

PFCTL_CMD       = /sbin/pfctl
PF_TABLE        = badhosts
  • Ajoutez une ligne à syslogd
root@freebsd#echo "auth.info;authpriv.info |exec /usr/local/sbin/sshit">>/etc/syslogd.conf
  • Enfin redémarrez ce dernier
root@freebsd#/etc/rc.d/syslogd restart

Et le tour est dans le sac. Toute personne échouant 3 fois en moins de 60s se verra bannir pendant 20min. Cela devrait en décourager certains.