fail2ban

Bonjour,

Dans mon fichier /var/log/fail2ban.log je trouve ce genre de lignes …

Je souhaite savoir comment faire pour que fail2ban enregistre également les noms des règles par exemple “règle=ssh” ou “règle=apache” dans le fichier /var/log/fail2ban.log?

Merci d’avance pour votre aide.

Ps: c’est pour un serveur Debian 7

yop

ton problème est abordé sur le site de fail2ban ( fail2ban.org/wiki/index.php/ … ity_Portal)
Plus précisément plusieurs utilisateurs reportent ce souci et un fix manuel semble passer chez certains

dans filter.d/pure-ftpd.conf

AVANT modification : failregex = pure-ftpd(?:[\d+])?: (.+?@) [WARNING] %(__errmsg)s [.+]$
APRES modification : failregex = pure-ftpd(?:[\d+])?: (.+?@)) [WARNING] %(__errmsg)s [.+]$

Il a changé (.+?@) pour (.+?@)) et ça semble fonctionner .

Regarde la page plus en détails c’est intéressant :006

Le problème évoqué dans le wiki de fail2ban concerne une faute d’écriture d’une expression qui introduit une parenthèse après le nom de domaine, faussant sa résolution DNS. Ici il semble plutôt que le nom de domaine unassigned.psychz.net n’a tout simplement pas d’adresse IP, d’où l’avertissement. Je suppose que ce nom est issu de la résolution DNS inverse de l’adresse source d’une tentative de connexion.

L’une des réponses est néanmoins intéressante : configurer les services surveillés par fail2ban pour ne pas faire de résolution DNS inverse de l’adresse IP source, ou du moins pour enregistrer dans les logs l’adresse IP source et non le reverse DNS qui est notoirement peu fiable (la preuve ici).

Bonjour Xet4 & PascalHambourg,

D’abord Merci pour votre aide. :023

Oui je connaît déjà cette correction du bug
ou on change quote pour (.+?@))[/quote]

Mon fichier filter.d/pure-ftpd.conf (Debian 7) contient cette variante de code

failregex = pure-ftpd(?:\[\d+\])?: \(.+?@<HOST>\) \[WARNING\] %(__errmsg)s \[.+\]\s*$
non modifié pour le moment …

J’ai également activé

/etc/pure-ftpd/conf/DontResolve

ce qui n’a pas empêche les nombreuses messages d’alertes dans le fichier log de fail2ban …

Dans le ficher /etc/pure-ftpd/conf/DontResolve est marque “yes” (sans les guillemets évidemment)

après un

service pure-ftpd restart
le serveur m’affiche

Restarting ftp server: Running: /usr/sbin/pure-ftpd -l puredb:/etc/pure-ftpd/pureftpd.pdb -i -O clf:/var/log/pure-ftpd/transfer.log -A -D -H -E -u 1000 -8 UTF-8 -s -B

remarque : l’option “-H” à bien été prise en compte!

Suite aux divers attaques subi en provenance de “unassigned.psychz.net” j’ai décidé d’ajouter des nouvelles règles (radicales) dans iptables:

[code]# bannir unassigned.psychz.net / 173.224.218.223, 216.24.202.165, etc …

grâce à un “whois” j’ai banni toute une plage d’adresses ip

http://www.robertain.com/post/2010/09/26/mais-qui-est-ce-unassigned-psychz-net/

iptables -I INPUT -m iprange --src-range 173.224.208.0-173.224.223.255 -j DROP
iptables -I INPUT 1 -s 216.99.144.0/20 -j DROP
iptables -I INPUT 1 -s 108.171.240.0/20 -j DROP[/code]

Par contre je n’ai pas encore trouvé de réponse à la question:
Comment rendre fail2ban plus verbeux concernant le message suivant, à savoir quel règle (ou service), parmi mes 13 règles, à déclenché cet message?

2014-08-16 21:33:42,602 fail2ban.filter : WARNING Unable to find a corresponding IP address for unassigned.psychz.net

Les messages concernant unassigned.psychz.net ne viennent pas forcément de pure-ftpd. Tu peux rechercher dans les logs système surveillés par fail2ban quel service les a écrits.

Bonjour PascalHamboug,

Je me suis rendu dans le répertoire

/var/log

puis j’ai lancée une recherche sur toutes les fichier log (à l’exclusion des fichier “.gz”)

grep -r "unassigned.psychz.net" .

et j’ai trouve un grand paquet de lignes comme les suivantes (toutes quasiment identiques):

[quote]
./fail2ban.log.1:2014-08-16 23:03:55,923 fail2ban.filter : WARNING Unable to find a corresponding IP address for unassigned.psychz.net
./fail2ban.log.1:2014-08-16 23:03:55,926 fail2ban.filter : WARNING Unable to find a corresponding IP address for unassigned.psychz.net
./fail2ban.log.1:2014-08-16 23:03:55,929 fail2ban.filter : WARNING Unable to find a corresponding IP address for unassigned.psychz.net
./fail2ban.log.1:2014-08-16 23:03:55,936 fail2ban.filter : WARNING Unable to find a corresponding IP address for unassigned.psychz.net
./fail2ban.log.1:2014-08-16 23:03:55,939 fail2ban.filter : WARNING Unable to find a corresponding IP address for unassigned.psychz.net
./fail2ban.log.1:2014-08-16 23:03:55,943 fail2ban.filter : WARNING Unable to find a corresponding IP address for unassigned.psychz.net
./fail2ban.log.1:2014-08-16 23:03:55,946 fail2ban.filter : WARNING Unable to find a corresponding IP address for unassigned.psychz.net
./fail2ban.log.1:2014-08-16 23:03:55,948 fail2ban.filter : WARNING Unable to find a corresponding IP address for unassigned.psychz.net
./fail2ban.log.1:2014-08-16 23:03:55,949 fail2ban.filter : WARNING Unable to find a corresponding IP address for unassigned.psychz.net
./fail2ban.log.1:2014-08-16 23:03:55,951 fail2ban.filter : WARNING Unable to find a corresponding IP address for unassigned.psychz.net
./fail2ban.log.1:2014-08-16 23:03:55,954 fail2ban.filter : WARNING Unable to find a corresponding IP address for unassigned.psychz.net
./fail2ban.log.1:2014-08-16 23:03:55,957 fail2ban.filter : WARNING Unable to find a corresponding IP address for unassigned.psychz.net
./fail2ban.log.1:2014-08-16 23:03:55,958 fail2ban.filter : WARNING Unable to find a corresponding IP address for unassigned.psychz.net
./fail2ban.log.1:2014-08-16 23:03:55,961 fail2ban.filter : WARNING Unable to find a corresponding IP address for unassigned.psychz.net
./fail2ban.log.1:2014-08-16 23:03:55,964 fail2ban.filter : WARNING Unable to find a corresponding IP address for unassigned.psychz.net
./fail2ban.log.1:2014-08-16 23:03:55,967 fail2ban.filter : WARNING Unable to find a corresponding IP address for unassigned.psychz.net
./fail2ban.log.1:2014-08-16 23:03:55,971 fail2ban.filter : WARNING Unable to find a corresponding IP address for unassigned.psychz.net
./fail2ban.log.1:2014-08-16 23:03:55,974 fail2ban.filter : WARNING Unable to find a corresponding IP address for unassigned.psychz.net[/quote]

ceci n’est qu’un court extrait … de cette attaque

effectivement ses lignes ne viennent pas d’une attaque qui vise le serveur ftp … et je pense qu’il s’agit d’une attaque DDOS bien cible pour contourner fail2ban

Voici l’extrait d’une page web (en anglais) qui est identique à mon problème:

[quote]Dissecting the Hack - psychz.net

For some background you may want to read the Original Story leading to this write up.

The first thing that caught my attention was the fact Logwatch was reported login failures in the order of 1000’s from unassigned.psychz.net without an accompanying fail2ban email notifying me the offender had been banned.

And this as it would turn out was because the attack was clearly intended to defeat such protection methods, this is due to the logged host being unassigned.psychz.net, when the authentication failure is logged, a reverse lookup is made within vsftpd to resolve the host this PTR record returns unassigned.psychz.net, and as such is written into the log.

fail2ban then uses regex to extract the host from the logs, and attempts to make a forward lookup on unassigned.psychz.net (A/CNAME records required) to resolve the ip address, and ban the offending ip, this is where things go awry.

psychz.net maintains their own DNS servers,

DNS1.PSYCHZ.NET
DNS2.PSYCHZ.NET

These provide a PTR but no A/CNAME record, as such fail2ban can not resolve an IP and the attacking ip is left to run their attack unhindered[/quote]

et voici l’adresse de cette information :

blog.oneiroi.co.uk/hacking/disse … sychz-net/

Donc l’absence des enregistrements A/CNAME dans la configuration du DNS permet aux hackers de mener l’attaque sans soucis d’être contraint par fail2ban!

La question que je me pose maintenant c’est comment rejeter ce genre d’attaques de manière automatisée? :think:

Ce qui nous intéresse, ce sont les occurence qui n’ont pas été produites par fail2ban, à filtrer avec [mono]| grep -v fail2ban[/mono]. Et si rien ne sort, il faudra peut-être rechercher dans les .gz avec [mono]zgrep[/mono] (qui marche aussi avec le texte non compressé).

la commande

ne donne aucun résultat … donc j’ai scannée tous les fichiers “.gz” à la racine du répertoire /var/log …

idem pour le répertoire
/var/log/apache2

Cella semble justement être la particularité de cette attaque: de vouloir contourner toutes les services habituels pour bombarder le serveur … attaque DOS ou DDOS

Il se peut qu’il s’agit d’une attaque sur la partie du serveur DNS … Je n’ai pas de log activé pour les requêtes DNS … je vais poursuivre sur cette voie …

Dans mon fichier /etc/fail2ban/jail.conf

je trouvé cette information:

[quote]# DNS Servers
By default, logging is off with bind9 installation[/quote]
la règle [named-refused-tcp] est désactivé

… à suivre …

[quote=“flash100”]Donc l’absence des enregistrements A/CNAME dans la configuration du DNS permet aux hackers de mener l’attaque sans soucis d’être contraint par fail2ban!
[/quote]
Seulement si le service visé par l’attaque enregistre dans les logs surveillés par fail2ban le reverse DNS de l’adresse IP source au lieu de l’adresse IP elle-même, ce qui n’est pas une bonne idée comme je l’ai déjà souligné. En effet dans cette situation un attaquant ayant la maîtrise de son reverse DNS peut non seulement éviter le blocage de sa propre adresse IP mais causer le blocage d’une adresse IP arbitraire, en positionnant comme reverse de sa propre adresse n’importe quel nom de domaine qui pointe vers l’adresse victime.