Installation de fail2ban sur CentOS 7

15

J'utilise la réponse de @GarethTheRed à cette question pour installer fail2ban sur un serveur distant CentOS 7. Je suis en mesure de terminer toutes les étapes jusqu'à ce que tail -f /var/log/fail2ban.log, à ce moment-là, j'obtiens des résultats différents de ceux qu'il obtient dans sa réponse.

Voici les résultats que j'obtiens à cette étape:

[[email protected] ~]# tail -f /var/log/fail2ban.log
2014-12-02 16:55:53,548 fail2ban.server.server[6667]: INFO    Changed logging target to /var/log/fail2ban.log for Fail2ban v0.9.0
2014-12-02 16:55:53,550 fail2ban.server.database[6667]: INFO    Connected to fail2ban persistent database '/var/lib/fail2ban/fail2ban.sqlite3'
2014-12-02 16:55:54,239 fail2ban.server.database[6667]: WARNING New database created. Version '2'  

Après la dernière ligne, je reçois juste un curseur mais pas d'invite de commande, sauf si je tape Ctrl-C.

Lorsque je tape systemctl status fail2ban, il me dit que fail2banc'est actif. Lorsque je me déconnecte du système et sshdme reconnecte plus tard, m'indique que de nombreuses tentatives de connexion ont échoué depuis ma dernière connexion. Il devrait donc y avoir des fail2banjournaux. Mais je n'arrive pas à les trouver.

Quelqu'un peut-il me montrer comment configurer cette configuration pour fail2bangénérer des journaux que je puisse suivre?

CodeMed
la source
Avez-vous vérifié les autorisations du fichier? J'ai perdu du temps plus d'une fois seulement pour constater que les autorisations étaient le problème.
codewaggle
1
fail2banest maintenant dans le repo EPEL. Essayez de l'installer à partir de là. Désinstallez la version actuelle et assurez-vous qu'il n'y a pas de fichiers de configuration résiduels, etc. Ensuite, installez à partir d'EPEL. Je l'ai sur une machine CentOS 7 sans aucun problème.
garethTheRed
J'ai dit un petit mensonge dans le dernier commentaire - j'ai oublié que j'ai dû le réparer il y a un moment. Réponse longue ci-dessous ...
garethTheRed

Réponses:

32

Essayez d'installer à fail2banpartir d' EPEL . Il est conditionné pour CentOS 7 et vous obtiendrez des mises à jour au fur et à mesure de leur sortie. L'installation du rpmformulaire d'un autre dépôt peut fonctionner (comme dans le cas présent) mais ce n'est pas la meilleure façon de faire les choses.

Tout d'abord, installez le référentiel EPEL en émettant ce qui suit (en tant que root):

yum install epel-release

Ce qui précède devrait installer EPEL et vous donner accès à de nombreux nouveaux packages . L'un de ces packages est fail2bandonc l'installer en exécutant:

yum install fail2ban

Par défaut, aucune prison n'est configurée, donc pour configurer une sshdprison de base :

Créez / modifiez le fichier /etc/fail2ban/jail.localet ajoutez:

[sshd]
enabled = true

Commencez avec:

systemctl start fail2ban

Faites-le démarrer au démarrage:

systemctl enable fail2ban

Il existait auparavant un bogue connu où SELinux bloquait l' fail2banaccès aux fichiers journaux dont il avait besoin pour faire son travail. Cela semble être corrigé dans la version la plus récente de CentOS 7; vous ne devriez pas avoir à effectuer les modifications ci-dessous.

Si vous rencontrez ce problème, aucun symptôme n'apparaît dans les journaux et rien n'apparaît comme échoué ou bloqué dans la sortie de fail2ban-client status sshd.

Pour vérifier l'erreur SELinux, lisez les journaux avec:

journalctl -lfu fail2ban

Surveillez-les pour des messages tels que:

SELinux is preventing /usr/bin/python2.7 from getattr access on the file .
       *****  Plugin catchall (100. confidence) suggests   **************************
       If you believe that python2.7 should be allowed getattr access on the  file by default.
       Then you should report this as a bug.
       You can generate a local policy module to allow this access.
       Do 
       allow this access for now by executing:
       # grep fail2ban-server /var/log/audit/audit.log | audit2allow -M mypol
       # semodule -i mypol.pp

Par conséquent, faites comme suggéré et exécutez:

grep fail2ban-server /var/log/audit/audit.log | audit2allow -M mypol
semodule -i mypol.pp

Ensuite, pour être sûr, redémarrez fail2ban:

systemctl restart fail2ban

Vous devrez peut-être même répéter le processus ci-dessus jusqu'à ce qu'aucun autre message d'erreur n'apparaisse dans le journal.

Si votre serveur est sur Internet, surveillez fail2ban-client status sshd. Il commencera bientôt à afficher des comptes échoués et interdits si vous avez détecté tous les problèmes SELinux.

Notez que vous devrez garder un œil sur les mises à jour de votre politique SELinux. Si une selinux-policymise à jour de package apparaît, elle peut remplacer ce qui précède et vous devrez peut-être réexécuter les commandes ci-dessus. Vous saurez si c'est le cas, car fail2bancela ne fonctionnera plus!

garethTheRed
la source
Merci beaucoup. Dois-je prendre des mesures spécifiques pour désinstaller fail2ban en premier? Ou est-ce géré automatiquement dans les étapes que vous avez indiquées ci-dessus?
CodeMed
Je désinstallerais d'abord la version de Fedora 20 et m'assurerais que le répertoire /etc/fail2banest supprimé.
garethTheRed
Cette enabled = truepartie a fonctionné. J'ai lu partout que ssh est configuré et activé par défaut mais ce n'était pas vrai.
Rahil Wazir