Line 286: |
Line 286: |
| yum remove smeserver-fail2ban fail2ban | | yum remove smeserver-fail2ban fail2ban |
| ==Contributions des utilisateurs== | | ==Contributions des utilisateurs== |
− | Voir la version en anglais de cette page [[Fail2ban#User_contributions]].
| + | === Test de nouvelles expressions régulières === |
| + | Vous pouvez tester de nouvelles notes d'expressions régulières issues de ce [http://bugs.contribs.org/show_bug.cgi?id=8955 bogue]. |
| + | |
| + | fail2ban-regex [LOG] [REGEX] |
| + | |
| + | Vous pouvez également tester les fichiers de configuration actuels comme indiqué : |
| + | |
| + | fail2ban-regex /var/log/qpsmtpd/current /etc/fail2ban/filter.d/qpsmtpd.conf |
| + | |
| + | Notez que certains caractères tels que « ` » peuvent avoir besoin d’être échappés sur la ligne de commande comme ceci \` mais n’ont pas besoin d’être échappés dans les fichiers de configuration. |
| + | |
| + | Par exemple, à partir du fichier qpsmptd.conf, cela fonctionne dans le fichier de configuration. |
| + | |
| + | ^\s*\d+\s*logging::logterse plugin \(deny\): ` <HOST>\s*.*90\d.*msg denied before queued$ |
| + | |
| + | Cependant, en ligne de commande, il faut l'écrire comme ceci : |
| + | |
| + | ^\s*\d+\s*logging::logterse plugin \(deny\): \` <HOST>\s*.*90\d.*msg denied before queued$ |
| + | |
| + | |
| + | ===Afficher les adresses IP bannies par le service=== |
| + | ====Consultez le journal de fail2ban==== |
| + | Voici un autre script rapide qui vous montre les adresses IP bannies les plus récentes dans les journaux. Notez qu’elles ne le sont peut-être plus, mais il n’y a pas de vérification pour cela. |
| + | |
| + | mkdir /root/bin |
| + | nano -w /root/bin/IP_list.sh |
| + | |
| + | et copiez et collez le code ci-dessous dans le fichier : |
| + | |
| + | #!/bin/sh |
| + | # Définir les variables de l'interface en ligne de commande de façon à pouvoir les lire. |
| + | TYPE=$1 |
| + | LOG=$2 |
| + | |
| + | # Définir la chaîne grep principale |
| + | SEARCH="Ban ((1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])\.){3}(1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])" |
| + | |
| + | # Ajouter le terme de recherche |
| + | SEARCH="\[$TYPE]\ $SEARCH" |
| + | |
| + | # Maintenant, cherchez dans le journal |
| + | grep -oE "\[$TYPE\] Ban ((1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])\.){3}(1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])" $LOG |
| + | |
| + | Enregistrez le fichier et rendez-le exécutable : |
| + | chmod 755 /root/bin/IP_list.sh |
| + | |
| + | Utilisation : |
| + | IP_list.sh [service] [log] |
| + | |
| + | Par exemple : |
| + | IP_list.sh qpsmtpd /var/log/fail2ban/daemon.log |
| + | ====Vérifiez l'IP bannie par fail2ban pour tous les prisons actives ==== |
| + | Par [[User:Unnilennium|Unnilennium]] ([[User talk:Unnilennium|talk]]) |
| + | mkdir /root/bin |
| + | vim /root/bin/sfail2ban |
| + | |
| + | Collez-lui ceci : |
| + | #!/bin/bash |
| + | for SERVI in $(fail2ban-client status|grep 'Liste des prisons'|cut -d':' -f2|sed 's/, / /g'| sed -e 's/^[ \t]*//') |
| + | do |
| + | fail2ban-client status $SERVI |grep -E 'liste IP|Statut de la prison'|sed 'N;s/\n/:/'|cut -d: -f2,4 |
| + | done |
| + | puis faites : |
| + | chmod 755 /root/bin/sfail2ban |
| + | |
| + | Utilisation : |
| + | sfail2ban |
| + | Résultat : |
| + | # sfail2ban |
| + | ftp: |
| + | imap: |
| + | pam-generic: |
| + | qpsmtpd: |
| + | recidive: 141.98.80.15 |
| + | ssh: |
| + | ssh-ddos: |
| + | wordpress: |
| + | |
| + | ====Imprimez un résumé de la base de données de fail2ban==== |
| + | mkdir -p /root/bin |
| + | vi /root/bin/bansummary.sh |
| + | |
| + | Collez ceci : |
| + | <nowiki>#!/bin/bash |
| + | echo -e \ |
| + | "IP \t"\ |
| + | "BanTime \t"\ |
| + | "UnbanTime \t"\ |
| + | "Jail" |
| + | |
| + | for ban in $(db fail2ban show |awk -F\= ' $2=="ban" {print $1}'); |
| + | do |
| + | IP=$(db fail2ban getprop $ban Host) |
| + | Bantime=$(date +"%F %T" -d @$(db fail2ban getprop $ban BanTimestamp)) |
| + | UnBanTime=$(date +"%F %T" -d @$(db fail2ban getprop $ban UnbanTimestamp)) |
| + | LastJail=$(zgrep -H "Ban $IP" $(find /var/log/fail2ban -type f -ctime -7) |tail -1 |awk '{print $6}') |
| + | |
| + | printf "%-15s" "$IP" |
| + | echo -e "\t$Bantime\t$UnBanTime\t$LastJail" |
| + | done |
| + | </nowiki> |
| + | |
| + | Sauveagarder, puis rendre exécutable |
| + | chmod 755 /root/bin/bansummary.sh |
| + | |
| + | Utilisation : |
| + | bansummary.sh |
| + | Sortie : |
| + | <nowiki>IP BanTime UnbanTime Jail |
| + | 46.246.39.228 2017-09-09 18:45:00 2017-09-10 18:45:00 [http-scan] |
| + | 124.239.180.102 2017-09-09 12:07:32 2017-09-10 12:07:32 [http-scan] |
| + | 212.237.54.93 2017-09-09 19:27:32 2017-09-10 19:27:32 [http-scan] |
| + | </nowiki> |
| + | |
| + | ===WordPress=== |
| + | Fail2Ban fonctionne avec WordPress mais nécessite une configuration supplémentaire. Veuillez consulter [[Wordpress#Fail2Ban |la page WordPress]] (en anglais). |
| | | |
| == Bogues == | | == Bogues == |