Thomas Pedoussaut a écrit : > Moins Gruik, ya l'excellent fail2ban. > En gros, apres 3 erreurs de password, l'IP est blacklistée pour 10 minutes. > Tres efficace.
Encore plus léger (rien en espace utilisateur) pour la même fonctionnalité, il y a le module noyau "recent" dans NetFilter ! ;-) En général, pour les services à authentification (ssh, mysql, ldap, ...), pour éviter les attaques brutes, je place des règles pour accepter explicitement les connexions depuis mes IP perso et pro, puis les trois règles suivantes pour limiter les tentatives (réussies ou non) de connexion (au sens TCP, pas au sens application) à 3 par minute avant un blacklistage (exemple SSH): # Accepter les connexions SSH depuis chez moi [0:0] -A INPUT -p tcp -m tcp -s aaa.bbb.ccc.ddd --dport 22 --syn -j ACCEPT # Accepter les connexions SSH depuis le boulot [0:0] -A INPUT -p tcp -m tcp -s eee.fff.ggg.hhh --dport 22 --syn -j ACCEPT # Noter les tentatives de connexion TCP dans une liste horodatée [0:0] -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name BLACKLIST # Noter les tentatives trop fréquentes dans les journaux à une fréquence raisonnable (désactivé) #[0:0] -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 3 --rttl --name BLACKLIST -m limit --limit 3/m -j LOG --log-prefix "SSH attempt" # Bloquer les IP trop présentes dans la liste [0:0] -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 3 --rttl --name BLACKLIST -j DROP # Accepter les connexions SSH qui n'ont pas été déjà acceptées ou blacklistées [0:0] -A INPUT -p tcp -m tcp --dport 22 --syn -j ACCEPT L'exemple est assez complet et commenté pour pouvoir être adapté à d'autres ports et avec d'autres parametres. L'avantage est que les connexions TCP ne sont pas analysées par un programme en espace utilisateur, mais directement par le parefeu du noyau, avant tout traitement applicatif. Fanfan _________________________________ Linux mailing list [email protected] http://lists.parinux.org/mailman/listinfo/linux
