SSHGuard est un démon open source qui protège les hôtes des attaques par force brute. Il y parvient en surveillant et en agrégeant les journaux système, en détectant les attaques et en bloquant les attaquants à l’aide de l’un des backends de pare-feu Linux : iptables, Pare-feuD, pf, et ipfw.
Initialement conçu pour fournir une couche de protection supplémentaire pour le service OpenSSH, SSHGuard protège également un large éventail de services tels que Vsftpd et suffixe. Il reconnaît plusieurs formats de journaux, notamment Syslog, Syslog-ng et les fichiers journaux bruts.
[ You might also like: How to Secure and Harden OpenSSH Server ]
SSHGuard est assez similaire à Fail2ban seulement qu’il est écrit en C (Fail2ban est écrit en Python), est plus léger et offre moins de fonctionnalités.
Dans ce guide, nous montrerons comment vous pouvez installer et configurer SSHGuard bloquer SSH attaques par force brute sur votre serveur Linux.
Étape 1 : Installer SSHGuard sur Linux
Nous commençons par l’installation de SSHGuard sur Linux.
Installer SSHGuard sur Debian/Ubuntu
Tout d’abord, mettez à jour les listes de packages, puis installez SSHGuard à partir des référentiels par défaut à l’aide du gestionnaire de packages apt.
$ sudo apt update $ sudo apt install sshguard
Une fois installé, le SSHGuard le service démarre automatiquement, et vous pouvez le vérifier à l’aide de la commande :
$ sudo systemctl status sshguard
Installer SSHGuard sur les systèmes RHEL
Pour les distributions basées sur RHEL telles que CentOS, Rocheux, et AlmaLinux, commencez par installer le EPEL référentiel comme fourni dans la commande ci-dessous.
$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm OR $ sudo dnf install epel-release
Avec EPEL en place, allez-y et installez SSHGuard en utilisant le gestionnaire de paquets dnf.
$ sudo dnf install sshguard
Une fois installé, démarrez et configurez SSHGuard pour démarrer au démarrage ou au redémarrage du système.
$ sudo systemctl start sshguard $ sudo systemctl enable sshguard
Assurez-vous de vérifier que SSHGuard fonctionne comme prévu.
$ sudo systemctl status sshguard
Étape 2 : Configuration de SSHGuard sur Linux
SSHGuard surveille activement la /var/log/auth.log, /var/log/sécurisé journal systemd, et syslog-ng fichiers journaux pour les tentatives de connexion infructueuses.
Pour chaque tentative de connexion infructueuse, l’hôte distant est banni pour une durée limitée qui, par défaut est fixée à 120 secondes. Par la suite, le temps d’interdiction augmente d’un facteur 1,5 à chaque tentative de connexion infructueuse successive.
Le moment où les hôtes incriminés sont bannis, en plus d’autres paramètres est spécifié dans le sshguard.conf déposer. Vous pouvez accéder au fichier de configuration à l’aide de l’éditeur vim, comme indiqué.
$ sudo vim /etc/sshguard/sshguard.conf
Sur les distributions basées sur RHEL, le fichier de configuration se trouve dans le chemin suivant.
$ sudo vim /etc/sshguard.conf
Voici un exemple du fichier de configuration lorsqu’il est affiché à partir de Ubuntu / Debian.
Concentrons-nous sur l’option principale.
- le BACKEND La directive pointe vers le chemin complet de l’exécutable du backend. Dans cet exemple, nous voyons que Tables IP est défini comme le backend du pare-feu par défaut.
- le SEUIL La directive bloque les attaquants lorsque leur score d’attaque dépasse la valeur spécifiée.
- le BLOCK_TIME option est le nombre de secondes pendant lesquelles un attaquant est bloqué après chaque tentative de connexion infructueuse successive. Par défaut, il est défini sur 120 après la première tentative. Cela augmente avec chaque tentative de connexion échouée successive.
- le DETECTION_TIME L’option fait référence au temps en secondes pendant lequel l’attaquant est enregistré ou mémorisé par le système avant que son score ne soit réinitialisé.
- le WHITELIST_file L’option pointe vers le chemin complet du fichier de liste blanche qui contient des hôtes qui ne sont pas censés être sur liste noire./li>
Étape 3 : Configurez SSHGuard pour bloquer les attaques par force brute SSH
Pour conjurer Force brute attaques, vous devez configurer sur les pare-feu suivants pour travailler avec sshguard.
Bloquer les attaques SSH à l’aide d’UFW
Si UFW est installé et activé sur votre Ubuntu / Debian système, modifier le /etc/ufw/before.rules déposer.
$ sudo vim etc/ufw/before.rules
Ajoutez les lignes suivantes juste après le allow all on loopback
section.
# allow all on loopback -A ufw-before-input -i lo -j ACCEPT -A ufw-before-output -o lo -j ACCEPT # hand off control for sshd to sshguard :sshguard - [0:0] -A ufw-before-input -p tcp --dport 22 -j sshguard
Enregistrez le fichier et redémarrez UFW.
$ sudo systemctl restart ufw
Essayez maintenant de vous connecter au serveur à partir d’un autre système avec les informations d’identification incorrectes et notez que vous serez verrouillé pendant 120 secondes après la première tentative de connexion infructueuse.
Vous pouvez le vérifier en vérifiant le auth.log fichier journal.
$ sudo tail -f /var/log/auth.log
Après l’échec de la prochaine tentative de journalisation, le temps de blocage passe à 240 secondes, puis 480 secondes, puis 960 secondes, et ainsi de suite.
Bloquer les attaques SSH à l’aide de Firewalld
Si vous exécutez firewalld, assurez-vous qu’il est configuré et activé. Exécutez ensuite la commande suivante pour activer sshguard sur votre zone préférée.
$ sudo firewall-cmd --permanent --zone=public --add-rich-rule="rule source ipset=sshguard4 drop"
Pour appliquer les modifications, rechargez Pare-feud et sshguard.
$ sudo firewall-cmd --reload $ sudo systemctl restart sshguard
Ensuite, vérifiez la règle comme suit :
$ sudo firewall-cmd —-info-ipset=sshguard4
Bloquer les attaques SSH à l’aide d’Iptables
Si vous utilisez toujours Iptables, tout d’abord, créez une nouvelle règle de chaîne pour sshguard dans Iptables pour commencer à bloquer les méchants.
# iptables -N sshguard
Ensuite, mettez à jour le SAISIR chaîne pour diriger le trafic vers sshguard et bloquer tout le trafic provenant de parties malveillantes.
# iptables -A INPUT -j sshguard
Pour bloquer des ports spécifiques tels que SSH, POP, et IMAP des agresseurs exécutez la commande :
# iptables -A INPUT -m multiport -p tcp --destination-ports 22,110,143 -j sshguard
Et enfin, enregistrez la règle pour que les modifications entrent en vigueur.
# iptables-save > /etc/iptables/iptables.rules
Étape 4 : Comment mettre en liste blanche les hôtes bloqués par SSH
Pour ajouter un hôte bloqué à la liste blanche, spécifiez simplement son nom d’hôte ou son adresse IP dans le fichier de liste blanche qui se trouve dans :
/etc/sshguard/whitelist - Ubuntu/Debian /etc/sshguard.whitelist - RHEL-based distros
Par la suite, assurez-vous de redémarrer le sshguard démon et le backend du pare-feu pour que les modifications s’appliquent.
Dans ce guide, nous avons montré comment vous pouvez bloquer SSH Bruteforce attaque en utilisant SSHGuard démon dans les serveurs Linux. Vos commentaires sont les bienvenus.
Si vous appréciez ce que nous faisons ici sur TecMint, vous devriez considérer :
TecMint est le site communautaire à la croissance la plus rapide et le plus fiable pour tout type d’articles, de guides et de livres Linux sur le Web. Des millions de personnes visitent TecMint ! pour rechercher ou parcourir les milliers d’articles publiés disponibles GRATUITEMENT pour tous.
Si vous aimez ce que vous lisez, pensez à nous acheter un café ( ou 2 ) en guise de remerciement.
Nous sommes reconnaissants pour votre soutien sans fin.
.