Swisslinux.org

− Le carrefour GNU/Linux en Suisse −

 

Langue

 

Le Forum

Vous n'êtes pas identifié.

#1 10 Feb 2009 22:08:59

Didier100
Prêcheu(r|se) du libre
 
Date d'inscription: 11 Aug 2005
Messages: 138

fail2ban et IP6

J'utilise depuis un bon moment fail2ban parmi d'autres services de sécurité pour sécuriser mon serveur web et je suis assez content.

Dans mon fichier jail.conf j'ai activé entre autres la surveillance du courrier notamment "pop3"

Code:

[courierauth]

enabled  = true
port     = smtp,ssmtp,imap2,imap3,imaps,pop3,pop3s
filter   = courierlogin
logpath  = /var/log/mail.log

et voici le contenu du fichier courierlogin.conf

Code:

# Fail2Ban configuration file
#
# Author: Christoph Haas
# Modified by: Cyril Jaquier
#
# $Revision: 510 $
#

[Definition]

# Option:  failregex
# Notes.:  regex to match the password failures messages in the logfile. The
#          host must be matched by a group named "host". The tag "<HOST>" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P<host>\S+)
# Values:  TEXT
#
failregex = LOGIN FAILED, .*, ip=\[<HOST>\]$

# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =

Il se trouve que le filtre ne fonctionne pas et je "suppose" que le dysfonctionnement est liée au fait que l'adresse IP est présenté sur le format de IP6 et non IP4 comme c'est le cas pour SSH.

Dans mon fichier mail.log je trouve ce genre d'informations (extrait d'une attaque Brutforce):

Feb 10 14:18:11 sd-xxxxx pop3d: LOGIN FAILED, user=staff, ip=[::ffff:88.191.14.126]
Feb 10 14:18:16 sd-xxxxx pop3d: Disconnected, ip=[::ffff:88.191.14.126]
Feb 10 14:18:16 sd-xxxxx pop3d: Connection, ip=[::ffff:88.191.14.126]
Feb 10 14:18:16 sd-xxxxx pop3d: LOGIN FAILED, user=sales, ip=[::ffff:88.191.14.126]
Feb 10 14:18:21 sd-xxxxx pop3d: Disconnected, ip=[::ffff:88.191.14.126]
Feb 10 14:18:21 sd-xxxxx pop3d: Connection, ip=[::ffff:88.191.14.126]
Feb 10 14:18:21 sd-xxxxx pop3d: LOGIN FAILED, user=recruit, ip=[::ffff:88.191.14.126]
Feb 10 14:18:26 sd-xxxxx pop3d: Disconnected, ip=[::ffff:88.191.14.126]
Feb 10 14:18:26 sd-xxxxx pop3d: Connection, ip=[::ffff:88.191.14.126]
Feb 10 14:18:26 sd-xxxxx pop3d: LOGIN FAILED, user=alias, ip=[::ffff:88.191.14.126]
Feb 10 14:18:31 sd-xxxxx pop3d: Disconnected, ip=[::ffff:88.191.14.126]
Feb 10 14:18:31 sd-xxxxx pop3d: Connection, ip=[::ffff:88.191.14.126]
Feb 10 14:18:31 sd-xxxxx pop3d: LOGIN FAILED, user=office, ip=[::ffff:88.191.14.126]
Feb 10 14:18:36 sd-xxxxx pop3d: Disconnected, ip=[::ffff:88.191.14.126]
Feb 10 14:18:36 sd-xxxxx pop3d: Connection, ip=[::ffff:88.191.14.126]
Feb 10 14:18:36 sd-xxxxx pop3d: LOGIN FAILED, user=samba, ip=[::ffff:88.191.14.126]
Feb 10 14:18:41 sd-xxxxx pop3d: Disconnected, ip=[::ffff:88.191.14.126]
Feb 10 14:18:41 sd-xxxxx pop3d: Connection, ip=[::ffff:88.191.14.126]
Feb 10 14:18:41 sd-xxxxx pop3d: LOGIN FAILED, user=tomcat, ip=[::ffff:88.191.14.126]
Feb 10 14:18:46 sd-xxxxx pop3d: Disconnected, ip=[::ffff:88.191.14.126]

puis un extrait du fichier fail2ban.log

2009-02-10 14:18:37,344 fail2ban.actions: WARNING [courierauth] 88.191.14.126 already banned
2009-02-10 14:18:52,344 fail2ban.actions: WARNING [courierauth] 88.191.14.126 already banned
2009-02-10 14:19:07,344 fail2ban.actions: WARNING [courierauth] 88.191.14.126 already banned
2009-02-10 14:19:22,344 fail2ban.actions: WARNING [courierauth] 88.191.14.126 already banned
2009-02-10 14:19:37,344 fail2ban.actions: WARNING [courierauth] 88.191.14.126 already banned
2009-02-10 14:19:52,344 fail2ban.actions: WARNING [courierauth] 88.191.14.126 already banned
2009-02-10 14:20:07,344 fail2ban.actions: WARNING [courierauth] 88.191.14.126 already banned
2009-02-10 14:20:22,344 fail2ban.actions: WARNING [courierauth] 88.191.14.126 already banned
2009-02-10 14:20:37,344 fail2ban.actions: WARNING [courierauth] 88.191.14.126 already banned
2009-02-10 14:20:52,344 fail2ban.actions: WARNING [courierauth] 88.191.14.126 already banned
2009-02-10 14:21:07,344 fail2ban.actions: WARNING [courierauth] 88.191.14.126 already banned
2009-02-10 14:21:22,344 fail2ban.actions: WARNING [courierauth] 88.191.14.126 already banned
2009-02-10 14:21:37,344 fail2ban.actions: WARNING [courierauth] 88.191.14.126 already banned
2009-02-10 14:21:52,344 fail2ban.actions: WARNING [courierauth] 88.191.14.126 already banned

On vois bien le dysfonctionnement "already banned" ...  Hors l'adresse de l'attaquant n'est pas bloque via iptables, d'ou une très longue liste de messages dans mon fichier fail2ban.log.

Question: Que faire pour que fail2ban arrive à déchiffrer (convertir) l'adresse IP6 en IP4 ?

Merci d'avance pour votre aide.

Ps: J'ai trouvé ce message sur internet:  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=470417

Dernière modification par Didier100 (10 Feb 2009 22:17:41)

Hors ligne

 

#2 11 Feb 2009 10:55:32

BOFH
Admin
Lieu: Ecublens, VD
Date d'inscription: 03 Feb 2005
Messages: 862
Site web

Re: fail2ban et IP6

Hello,

  A priori, les messages "already banned" indiquent plutôt que ce n'est pas la regex de détection qui est en cause, mais l'action de blocage.

  Quelle action utilises-tu ? Est-ce que la chaîne iptables en se remplit pas, ou peut-être n'est-elle pas active ?

Hors ligne

 

#3 11 Feb 2009 14:06:32

Didier100
Prêcheu(r|se) du libre
 
Date d'inscription: 11 Aug 2005
Messages: 138

Re: fail2ban et IP6

Bonjour BOFH,

Merci pour ta réponse. wink

BOFH à ecrit:
Quelle action utilises-tu ? Est-ce que la chaîne iptables en se remplit pas, ou peut-être n'est-elle pas active ?

J'ai publié mes fichiers de configurations ... si non c'est une installation par défaut.

Quelle action utilises-tu ? >>> C'est fail2ban qui gère par défaut les actions me semble t'il ... J'ai juste activée le(s) filtre(s).

Est-ce que la chaîne iptables en se remplit pas, ou peut-être n'est-elle pas active ?  >>> Je suis d'accord avec toi ... mais je ne sais pas comme régler le problème ????

Doit je mettre fail2ban en mode debug, puis simuler une attaque pour voire ce qui se passe?  Le problème c'est que mon adresse ip vas être bloque pour 600s (10 min) (enfin théoriquement, mais bon en pratique iptables ne semble pas accepter le filtre courierlogin de fail2ban .

Comment procéder?

Dernière modification par Didier100 (11 Feb 2009 14:13:05)

Hors ligne

 

#4 11 Feb 2009 14:09:29

Trim
Gourou(e) du libre
Lieu: Saxon, Valais
Date d'inscription: 17 Oct 2007
Messages: 364
Site web

Re: fail2ban et IP6

Didier100 a écrit:

Question: Que faire pour que fail2ban arrive à déchiffrer (convertir) l'adresse IP6 en IP4 ?

Il est impossible de convertir une adresse IPv6 en IPv4. En effet, les adresses IPv6 font 128 bits, alors que les IPv4 font 32 bits.
Tu viens de mettre un doigt sur les désavantages de l'IPv6 : tous les programmes doivent être adaptés à la nouvelle notation des adresses. C'est pourquoi, tu peux trouver des programmes comme "ping6", "ip6", ...
Pour la question "Que faire", tu peux donc regarder si il n'y a pas une option du programme pour indiquer des adresses IPv6 au lieu de IPv4 (par exemple, pour "ssh", il faut utiliser "ssh -6").

Sinon pour ton problème, je ne peux pas t'aider désolé hmm , je ne m'y connais pas assez

Dernière modification par Trim (11 Feb 2009 14:12:05)

Hors ligne

 

#5 11 Feb 2009 15:07:17

BOFH
Admin
Lieu: Ecublens, VD
Date d'inscription: 03 Feb 2005
Messages: 862
Site web

Re: fail2ban et IP6

Hello,

  La première étape est de regarder quelle action utilise fail2ban en cas d'évènement. fail2ban définit une petite collection d'actions possibles, dont les effets varient légèrement. Par exemple, l'action iptables bloque immédiatement le traffic de la machine bannie, alors que iptables-new ne coupe pas les connexions déja établies (donc utile pour tester et/ou éviter les DoS).

  Les actions iptables créent des chaines nommées d'après chaque jail, il faudrait regarder si ces chaines ont été créées correctement, si les ports bloqués sont corrects, et la chaine est bien référencée quelque part dans la INPUT.

  Dernière remarque: il ne faut pas utiliser de jails fail2ban surveillant les messages syslog sur une machine dont tous les users ne sont pas de confiance. N'importe quel utilisateur peut générer de faux messages, et provoquer ainsi un déni de service.

Hors ligne

 

#6 11 Feb 2009 15:41:49

Didier100
Prêcheu(r|se) du libre
 
Date d'inscription: 11 Aug 2005
Messages: 138

Re: fail2ban et IP6

Bonjour Trim,

Merci pour les informations complémentaires cela améliore la compréhension de la chose (et cela soulève des nouvelles questions à la fois).

Effectivement je vue qu'il avait iptables (pour IPV4) et ip6tables (pour IPV6)...   
Je me suis déjà posé la question s'il faut créer deux firewalls sur un serveur, un pour iptables et un pour ip6tables?
Pour mon serveur j'utilise uniquement iptables (pour le moment).  Et si quelqu'un passe une attaque via IPV6 cela échappe t'il au firewall iptables (IPV4)????

Est que quelqu'un connaîtrai t'il une règle iptables ou ip6tables pour limiter les nombre de tentatives de login via le port 110  (par exemple 3/minute) ?

Dernière modification par Didier100 (11 Feb 2009 15:42:36)

Hors ligne

 

#7 14 Feb 2009 23:08:57

Trim
Gourou(e) du libre
Lieu: Saxon, Valais
Date d'inscription: 17 Oct 2007
Messages: 364
Site web

Re: fail2ban et IP6

Je pense que le plus simple est de ne pas activer le module IPv6 du kernel si tu ne l'utilise pas. Pour ce faire, tu peux blacklister le module IPv6, comme ceci :

Code:

cd /etc/modprobe.d
echo -e "# Interdire l'utilisation de l'IPv6 par sécurité\nblacklist ipv6" >> blacklist

(remarque : je suppose que tu utilises un des noyaux officiel de Debian qui, par défaut, mettent la fonction ipv6 en module)

Par contre, si tu as besoin des deux versions d'IP, je ne sais pas s'il y a besoin de deux firewalls différents. Si ton firewall est matériel, tu peux regarder sur le site du constructeur pour contrôler qu'il sache utiliser l'IPv6. S'il est logiciel, je ne peux que te conseiller de lire le manuel pour savoir s'il peut gérer les deux types de connections en même temps et employer les deux tables crées par "iptables" et "ip6tables".

PS:
Je te conseille de faire des recherches sur Internet, parce que je ne connais les réseaux qu'au niveau théorique (je n'ai jamais fait de pratique). En effet, j'ai commencé à m'intéresser au réseau et à l'ipv6 seulement lorsque j'ai fait mon travail de maturité sur l'ipv6 au collège, l'année passée.

Dernière modification par Trim (14 Feb 2009 23:12:10)

Hors ligne

 

#8 15 Feb 2009 01:56:41

BOFH
Admin
Lieu: Ecublens, VD
Date d'inscription: 03 Feb 2005
Messages: 862
Site web

Re: fail2ban et IP6

Hello,

  Oui, le traffic ipv6 échappe au filtrage des tables ipv4.

  Ce n'est pas dramatique si les tables ipv6 ne sont pas configurées; un hôte ipv6 ne communique hors du réseau local que si il est configuré manuellement, ou si un routeur ipv6 diffuse des annonces de routage sur ce réseau. Qui plus est, un serveur ne sera pas atteignable en ipv6 s'il n'a pas été programmé pour. Pour le savoir, tu peux utiliser

Code:

netstat -lnp6

pour voir les ports ipv6 ouverts.

Par contre, si un routeur ipv6 diffuse des annonces, ta machine est exposée au monde extérieur même si elle est derrière un NAT ipv4. Une bonne raison de ne pas utiliser le NAT comme mesure de sécurité. Si tu ne te sers pas de l'ipv6, c'est probablement mieux de le désactiver.

En ce qui concerne tes logs, les adresses sont affichées en format ipv6, mais ce sont bien des adresses v4 (il y a une plage réservée pour représenter les adresses v4, justement à l'usage des programmes utilisant les 2 protocoles simultanément). Elles sont tout a fait convertibles en v4, et par défaut la regex de fail2ban le fait. La source de ton problème est probablement ailleurs.

  Avec iptables, tu peux utiliser le filtre "limit" pour limiter le rythme des connexions entrantes, avec qqch comme:

Code:

iptables -N rate_limiter
iptables -A INPUT -p tcp --dport <port> -m state --state NEW -j rate_limiter
iptables -A rate_limiter -m limit --limit 6/minute -j ACCEPT
iptables -A rate_limiter -j DROP

Ca marchera aussi avec ipv6, a condition que le noyau et ip6tables soient récents. (pas de -m state ipv6 sur les vieux noyaux).

Par contre, impossible de limiter les tentatives de login avec iptables seulement, il faut un dispositif au niveau applicatif comme fail2ban.

Hors ligne

 

#9 05 Mar 2009 11:47:38

Didier100
Prêcheu(r|se) du libre
 
Date d'inscription: 11 Aug 2005
Messages: 138

Re: fail2ban et IP6

Je pu enfin résoudre le problème avec le filtre courierauth de fail2ban ....

J'ai désinstalle fail2ban avec purge  ....

Code:

agt-get remove fail2ban --purge

puis j'ai réinstallé la dernière version de fail2ban Paquet : fail2ban (0.8.3-2sid1)

Code:

apt-get update
apt-get install fail2ban

Une petite remarque: Quand j'effectue une vérification avec

Code:

fail2ban-client --v

je reçois la réponse:

Fail2Ban v0.8.3

dommage que la réponse est incomplète ... il manque -2sid1
Bref c'est un petit détail ...

Par contre fail2ban semble fonctionner correctement et entre autres le filtre courierauth

Voici le dernier extrait de mon fichier fail2ban.log

2009-03-05 00:30:44,688 fail2ban.actions: WARNING [ssh] Ban 82.127.21.29
2009-03-05 00:40:44,697 fail2ban.actions: WARNING [ssh] Unban 82.127.21.29
2009-03-05 06:49:50,755 fail2ban.actions: WARNING [courierauth] Ban 71.189.225.6
2009-03-05 06:59:50,765 fail2ban.actions: WARNING [courierauth] Unban 71.189.225.6
2009-03-05 07:54:50,698 fail2ban.actions: WARNING [postfix] Ban 213.6.198.176
2009-03-05 08:04:50,708 fail2ban.actions: WARNING [postfix] Unban 213.6.198.176

et voici l'extrait correspondant du fichier mail.log

sd-16xxx:/var/log# grep 71.189.225.6 mail.log
Mar  5 04:57:58 sd-16355 postfix/smtpd[19052]: connect from pool-71-189-225-6.lsanca.fios.verizon.net[71.189.225.6]
Mar  5 04:57:58 sd-16355 postfix/smtpd[19052]: lost connection after CONNECT from pool-71-189-225-6.lsanca.fios.verizon.net[71.189.225.6]
Mar  5 04:57:58 sd-16355 postfix/smtpd[19052]: disconnect from pool-71-189-225-6.lsanca.fios.verizon.net[71.189.225.6]
Mar  5 05:01:18 sd-16355 postfix/anvil[19054]: statistics: max connection rate 1/60s for (smtp:71.189.225.6) at Mar  5 04:57:58
Mar  5 05:01:18 sd-16355 postfix/anvil[19054]: statistics: max connection count 1 for (smtp:71.189.225.6) at Mar  5 04:57:58
Mar  5 06:49:38 sd-16355 pop3d: Connection, ip=[::ffff:71.189.225.6]
Mar  5 06:49:38 sd-16355 pop3d: LOGIN FAILED, user=staff, ip=[::ffff:71.189.225.6]
Mar  5 06:49:43 sd-16355 pop3d: Disconnected, ip=[::ffff:71.189.225.6]
Mar  5 06:49:43 sd-16355 pop3d: Connection, ip=[::ffff:71.189.225.6]
Mar  5 06:49:44 sd-16355 pop3d: LOGIN FAILED, user=sales, ip=[::ffff:71.189.225.6]
Mar  5 06:49:49 sd-16355 pop3d: Disconnected, ip=[::ffff:71.189.225.6]
Mar  5 06:49:49 sd-16355 pop3d: Connection, ip=[::ffff:71.189.225.6]
Mar  5 06:49:49 sd-16355 pop3d: LOGIN FAILED, user=recruit, ip=[::ffff:71.189.225.6]

Donc pas de problème avec IP6 ... fausse piste
Un grand merci à BOFH pour les explications du message du 15 Feb 2009 01:56:41 wink

Dernière modification par Didier100 (05 Mar 2009 11:59:38)

Hors ligne

 

Pied de page des forums

Powered by FluxBB