Bonjour,
Depuis la mise à jour récente de mon dédié vers Stretch, mon filtre fail2ban destiné à postfix-sasl, ne semble plus fonctionner.
Il n’y a jamais d’IPs inscrites dans la chaîne iptables.
Pourtant fail2ban-regex trouve les bonnes lignes:
fail2ban-regex /var/log/mail.warn /etc/fail2ban/filter.d/postfix-sasl.conf
Running tests
Use failregex filter file : postfix-sasl, basedir: /etc/fail2ban
Use log file : /var/log/mail.warn
Use encoding : UTF-8
Results
Failregex: 4970 total
|- #) [# of hits] regular expression
| 1) [4970] ^(?:[])?\s*(?:<[^.]+.[^.]+>\s+)?(?:\S+\s+)?(?:kernel: [ \d+.\d+]\s+)?(?:@vserver_\S+\s+)?(?:(?:(?:[\d+])?:\s+[[(]?postfix(-\w+)?/(?:submission/|smtps/)?smtpds?[])]?:?|[[(]?postfix(-\w+)?/(?:submission/|smtps/)?smtpds?[])]?:?(?:[\d+])?:?)\s+)?(?:[ID \d+ \S+]\s+)?warning: [-._\w]+[]: SASL ((?i)LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(:[ A-Za-z0-9+/:]={0,2})?\s*$
`-
Ignoreregex: 0 total
Date template hits:
|- [# of hits] date format
| [8885] (?:DAY )?MON Day 24hour:Minute:Second(?:.Microseconds)?(?: Year)?
`-
Lines: 8885 lines, 0 ignored, 4970 matched, 3915 missed
[processed in 0.72 sec]
Voici la regex positionnée dans le filtre:
failregex = ^%(__prefix_line)swarning: [-._\w]+\[<HOST>\]: SASL ((?i)LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(:[ A-Za-z0-9+/:]*={0,2})?\s*$
Auriez-vous des pistes pour que je pourrais explorer ?
Merci d’avance pour vos réponses.
Chez moi, il y a une petite différence sur la regex:
failregex = ^%(__prefix_line)swarning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(: [ A-Za-z0-9+/]*={0,2})?\s*$
SASL ((?i)LOGIN
->
SASL (?:LOGIN
Mais bon, le problème n’est pas dans la regex, puisque ton teste indique des lignes qui matchent.
Sinon, es tu sur que ça ne fonctionne plus ?
Tu es sur que tu n’as pas juste regardé à un moment ou il n’y avait plus aucun blocage en cours ?
Tu as regardé la date et l’heure de la ligne “matched” la plus récente dans ton mail.warn ?
Hello,
Tout d’abord merci pour ta réponse.
Dans le mail.warn je n’ai aucune ligne concernant fail2ban. Je suis sûr que ça ne fonctionne plus car le comptage des paquets dans la sortie iptables est à 0:
Chain f2b-sasl (0 references)
pkts bytes target prot opt in out source destination
0 0 RETURN all -- any any anywhere anywhere
C’est étrange que la regex soit différente chez toi. Mais je me dis qu’à partir du moment où le test me
retourne des lignes de match, je pense que c’est bon. Peut-être que le problème se situe au moment où il essaye d’inscrire les adresses dans iptables …
Je viens de faire le test sur la jail ssh et ça fonctionne nickel.
C’est bizarre ce nom de chaine f2b-sasl, chez moi, les chaines fail2ban ont fail2ban dans le nom:
:fail2ban-ssh - [0:0]
-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh
-A fail2ban-ssh -s 59.63.188.32/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-ssh -j RETURN```
Sinon, je n'ai pas d'autre idée.
La chaîne SSH s’appelle de la même façon et ça fonctionne. Par contre dans les logs fail2ban j’ai des erreurs liées à multiport. Il détecte bien l’IP à bannir, mais il y a une erreur dans l’action:
iptables -w -I INPUT -p tcp -m multiport --dports smtp,ssmtp,submission,imap2,imap3,imaps,pop3,pop3s -j f2b-sasl -- stderr: b"iptables v1.6.0: invalid port/service `imap3' specified\nTry `iptables -h' or 'iptables --help' for more information.\n"
Il y a un souci lié à imap3. Il faut que je regarde du côté des actions et virer imap3 je pense.
C’est bon j’ai réglé le souci !
J’ai viré imap3 de la jail postfix-sasl dans jail.local et ça bannit à mort maintenant 
Chain f2b-sasl (1 references)
pkts bytes target prot opt in out source destination
0 0 REJECT all -- any any no-reverse-dns-configured.com anywhere reject-with icmp-port-unreachable
0 0 REJECT all -- any any walkerj235.com anywhere reject-with icmp-port-unreachable
0 0 REJECT all -- any any 5.101.0.34 anywhere reject-with icmp-port-unreachable
0 0 REJECT all -- any any 37.49.227.159 anywhere reject-with icmp-port-unreachable
0 0 REJECT all -- any any 178.62.72.67 anywhere reject-with icmp-port-unreachable
14 658 RETURN all -- any any anywhere anywhere