Le système de prévention des IPS ou des intrusions est une technologie utilisée dans la sécurité du réseau pour examiner le trafic du réseau et prévenir différentes attaques en détectant des entrées malveillantes. En plus de détecter simplement les entrées malveillantes comme le fait le système de détection d'intrusion, il empêche également le réseau d'attaques malveillantes. Il peut empêcher le réseau de force brute, DOS (déni de service), DDOS (déni de service distribué), exploits, vers, virus et autres attaques communes. Les IP sont placés juste derrière le pare-feu, et ils peuvent envoyer des alarmes, laisser tomber des paquets malveillants et bloquer les adresses IP incriminées. Dans ce tutoriel, nous utiliserons Fail2ban, qui est un progiciel de prévention des intrusions, pour ajouter une couche de sécurité contre différentes attaques de force brute.
Comment fonctionne Fail2ban
Fail2ban lit les fichiers journaux (e.g. / var / log / apache / error_log) et obtient les IP incriminés qui tentent trop de mots de passe échoués ou recherchent des exploits. Fondamentalement, Fail2ban met à jour les règles de pare-feu pour bloquer différents IP sur le serveur. Fail2ban fournit également des filtres en utilisant que nous pouvons utiliser pour un service spécifique (E.g., apache, ssh, etc.).
Installation de Fail2ban
Fail2ban n'est pas préinstallé sur Ubuntu, donc avant de l'utiliser, nous devons l'installer.
ubuntu @ ubuntu: ~ $ sudo apt-get update -y
ubuntu @ ubuntu: ~ $ sudo apt-get install fail2ban
Après avoir installé Fail2Ban, démarrez et activez le service Fail2ban à l'aide de la ligne de commande.
ubuntu @ ubuntu: ~ $ sudo systemctl start fail2ban
ubuntu @ ubuntu: ~ $ sudo systemctl activer fail2ban
Vérifiez maintenant l'état du service Fail2ban pour confirmer s'il a commencé ou non.
ubuntu @ ubuntu: ~ $ sudo systemctl status fail2ban
Configuration de Fail2ban pour SSH
Nous pouvons configurer Fail2ban en modifiant / etc / fail2ban / prison.fichier de confr. Avant de le modifier, prenez une sauvegarde de ce fichier.
Ubuntu @ Ubuntu: ~ $ sudo cp / etc / fail2ban / prison.conf / etc / fail2ban / prison.local
Nous allons maintenant configurer Fail2ban pour empêcher le service SSHD à partir d'entrées malveillantes. Ouvert / etc / fail2ban / prison.Fichier local dans votre éditeur préféré.
Ubuntu @ Ubuntu: ~ $ sudo nano / etc / fail2ban / prison.local
Aller au [défaut] section et entrez les paramètres de configuration sous [défaut] section.
[DÉFAUT]
Ignoreip = 127.0.0.1/8 192.168.18.10/32
bantime = 300
maxretry = 2
findtime = 600
ignorer La liste du masque CIDR, de l'adresse IP ou de l'hôte DNS est-il séparé par un caractère spatial. Ajoutez vos IP de confiance à cette liste, et ces IPS seront licenciés et ne seront pas bloqués par Fail2Ban même s'ils effectuent une attaque de force brute sur le serveur.
bantile est le moment où une adresse IP sera bloquée après avoir fait une quantité spécifique de tentatives infructueuses pour le serveur.
maxret est le nombre de tentatives d'échec maximales après lesquelles une IP est bloquée par Fail2ban pendant un temps spécifique.
trouver le temps est le temps pendant lequel si un hôte fait maxret Échec des tentatives, elle sera bloquée.
Après avoir configuré les paramètres ci-dessus, nous allons maintenant configurer le service sur lequel les règles ci-dessus vont s'appliquer. Par défaut, Fail2ban a des filtres prédéfinis pour différents services, nous n'avons donc pas besoin de saisir des entrées spécifiques pour les services. Nous n'activons ou désactivons que différents services dans le fichier de configuration. Ouvert / etc / fail2ban / prison.Fichier local dans votre éditeur préféré.
Ubuntu @ Ubuntu: ~ $ sudo nano / etc / fail2ban / prison.local
Trouvez le [SSHD] section dans le fichier et entrez les paramètres suivants dans la section.
[sshd]
Activer = true
port = ssh
filtre = sshd
logPath = / var / log / auth.enregistrer
maxretry = 3
activé Définit si ce service est protégé par Fail2ban ou non. Si activé est vrai, alors le service est protégé; Sinon, il n'est pas protégé.
port Définit le port de service.
filtre fait référence au fichier de configuration que Fail2ban utilise. Par défaut, il utilisera / etc / fail2ban / filtre.d / sshd.Fichier Conf pour le service SSH.
log Définit le chemin vers les journaux, Fail2ban surveillera pour protéger le service des différentes attaques. Pour le service SSH, les journaux d'authentification peuvent être trouvés sur / var / log / auth.Log, donc Fail2ban surveillera ce fichier journal et mettra à jour le pare-feu en détectant les tentatives de connexion ratées.
maxret Définit le nombre de tentatives de connexion ratées avant d'être bloqués par l'échec2ban.
Après avoir appliqué la configuration ci-dessus pour Fail2Ban, redémarrez le service pour enregistrer les modifications.
ubuntu @ ubuntu: ~ $ sudo systemctl restart fail2ban.service
ubuntu @ ubuntu: ~ $ sudo systemctl status fail2ban.service
Tester Fail2ban
Nous avons configuré Fail2ban pour protéger notre système contre les attaques de force brute sur le service SSH. Maintenant, nous allons faire des tentatives de connexion ratées sur notre système à partir d'un autre système pour vérifier si Fail2ban fonctionne ou non. Après avoir effectué des tentatives de connexion ratées maintenant, nous vérifierons les journaux Fail2ban.
ubuntu @ ubuntu: ~ $ cat / var / log / fail2ban.enregistrer
Nous pouvons voir qu'après les tentatives de connexion ratées, l'IP a été bloquée par Fail2ban.
Nous pouvons obtenir une liste de tous les services pour lesquels Fail2ban est activé en utilisant la commande suivante.
Ubuntu @ Ubuntu: ~ $ sudo fail2ban-clie statut
La figure ci-dessus montre que nous avons activé Fail2ban uniquement pour le service SSHD. Nous pouvons obtenir plus d'informations sur le service SSHD en spécifiant le nom du service dans la commande ci-dessus.
Ubuntu @ Ubuntu: ~ $ sudo fail2ban-client status sshd
Fail2ban a-t-il automatiquement dépassé l'adresse IP interdite après Bantime, mais nous pouvons désengager n'importe quelle IP à tout moment en utilisant la ligne de commande. Cela donnera plus de contrôle sur Fail2ban. Utilisez la commande suivante pour débanter l'adresse IP.
ubuntu @ ubuntu: ~ $ sudo fail2ban-client set sshd Unanip 192.168.43.35
Si vous essayez de vous dénigrer une adresse IP qui n'est pas bloquée par Fail2ban, il vous dira simplement que l'IP n'est pas bloqué.
ubuntu @ ubuntu: ~ $ sudo fail2ban-client set sshd Unanip 192.168.43.35
Conclusion
Pour un administrateur système ou un ingénieur de sécurité, c'est un grand défi pour maintenir la sécurité des serveurs. Si votre serveur est protégé par le mot de passe, pas par paire de clés publiques et privées, votre serveur est plus vulnérable aux attaquants de force brute. Ils peuvent entrer dans votre système en appliquant différentes combinaisons de mots de passe. Fail2ban est un outil qui peut empêcher les attaquants de lancer différents types d'attaques, y compris les attaques de force brute et les attaques DDOS sur votre serveur. Dans ce tutoriel, nous avons expliqué comment nous pourrions utiliser Fail2ban pour protéger notre serveur contre différentes attaques. Nous pouvons également utiliser Fail2ban pour protéger d'autres services tels que Apache, Nginx, etc.