Je voudrais choisir le cerveau de la communauté concernant la sécurité du serveur Linux, en particulier en ce qui concerne les attaques par force brute et l'utilisation de fail2ban vs iptables personnalisés .
Il y a quelques questions similaires, mais aucune d'entre elles n'aborde le sujet à ma satisfaction. En bref, j'essaie de déterminer la meilleure solution pour sécuriser les serveurs Linux exposés à Internet (exécutant les services habituels, ssh, web, mail), contre les attaques par force brute.
J'ai une bonne gestion de la sécurité du serveur, c'est-à-dire verrouiller ssh en n'autorisant pas les connexions root ou par mot de passe, changer le port par défaut, s'assurer que le logiciel est à jour, vérifier les fichiers journaux, autoriser uniquement certains hôtes à accéder au serveur et utiliser la sécurité des outils d'audit tels que Lynis ( https://cisofy.com/lynis/ ), pour la conformité générale de la sécurité, donc cette question ne concerne pas nécessairement cela, bien que les commentaires et les conseils soient toujours les bienvenus .
Ma question est quelle solution dois-je utiliser (fail2ban ou iptables), et comment dois-je la configurer, ou dois-je utiliser une combinaison des deux pour se protéger contre les attaques par force brute?
Il y a une réponse intéressante concernant le sujet ( Denyhosts vs fail2ban vs iptables - le meilleur moyen d'empêcher les ouvertures de session par force brute? ). La réponse la plus intéressante pour moi était personnellement ( https://serverfault.com/a/128964 ), et que le routage iptables se produit dans le noyau par opposition à fail2ban qui utilise des outils en mode utilisateur pour analyser les fichiers journaux. Fail2ban utilise bien sûr iptables, mais il doit toujours analyser les fichiers journaux et faire correspondre un modèle jusqu'à ce qu'il exécute une action.
Est-il alors logique d'utiliser iptables et d'utiliser une limitation de débit ( https://www.rackaid.com/blog/how-to-block-ssh-brute-force-attacks/ ) pour supprimer les demandes d'une IP pendant une période de temps qui fait trop de tentatives de connexion pendant une période spécifique quel que soit le protocole auquel il tentait de se connecter? Si c'est le cas, alors il y a quelques réflexions intéressantes sur l'utilisation de la suppression contre le rejet pour ces paquets ici ( http://www.chiark.greenend.org.uk/~peterb/network/drop-vs-reject ), des réflexions à ce sujet?
Fail2ban permet une configuration personnalisée sous la forme de la possibilité d'écrire des « règles » personnalisées pour les services qui pourraient ne pas être traités dans la configuration par défaut. Il est facile à installer et à configurer et est puissant, mais pourrait-il être exagéré si tout ce que j'essaie de réaliser est de « bloquer » une IP du serveur s'ils effectuent 2 tentatives d'accès infructueuses sur n'importe quel service / protocole sur une quantité x de temps?
Le but ici est d'ouvrir des rapports journaliers de surveillance et de ne pas avoir à parcourir les pages des tentatives de connexion au serveur.
Merci de prendre le temps.