Changes

From SME Server
Jump to navigationJump to search
3,870 bytes added ,  23:28, 22 March 2019
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 ==
3,054

edits

Navigation menu