Utilisez simplement Postfix directement pour filtrer les IPs en utilisant des listes de blocage :
Voir http://www.postfix.org/postconf.5.html#smtpd_recipient_restrictions pour rejeter en utilisant des listes de blocage. Aussi lisez à ce propos le meilleur endroit pour le mettre dans main.cf
.
Voici un exemple d'entrées RBL (#Vérification des listes de blocage :
) que vous pourriez ajouter pour bloquer les IPs blacklistées. J'ai placé les miennes sous smtpd_recipient_restrictions
car c'est une vérification "coûteuse" (charge serveur et appels à distance des RBL des serveurs). Si cela est fait plus tôt (par exemple sous smtpd_helo_restrictions
) vous avez tendance à interroger le site RBL/liste de blocage donné de nombreuses fois pour rien.
/etc/postfix/main.cf
:
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_unlisted_recipient,
reject_invalid_hostname,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unknown_sender_domain,
reject_unauth_pipelining,
check_client_access hash:/etc/postfix/blacklist,
#Vérification des listes de blocage :
reject_rbl_client zen.spamhaus.org,
reject_rbl_client bl.spamcop.net,
reject_rbl_client dul.dnsbl.sorbs.net,
#Postgrey :
#finalisation et rejet vers postgrey si passe au-dessus :
#check_policy_service inet:[::1]:10023,'
permit
Si vous voulez vraiment utiliser Fail2Ban pour le traitement des listes de blocage :
-
Utilisez un filtre Fail2Ban comme f2b-postfix-rbl (postfix-rbl.conf) pour filtrer le journal de messagerie à la recherche d'entrées d'IP de listes de blocage/blacklistées. Il insérerait ensuite une nouvelle entrée dans iptables et serait bloqué pour une durée de bannissement donnée. Vous devriez spécifier une durée de bannissement dans des définitions de jails spécifiques si vous n'êtes pas satisfait de la valeur par défaut.
-
Redémarrer simplement F2B ou le serveur, comme indiqué dans une autre réponse, ne efface pas les bannissements normalement avant l'expiration du temps de bannissement. Vous devrez utiliser fail2ban-client
.
-
Et surtout, Postfix + F2B + Bannissement n'aidera pas beaucoup car le script/bot/mailleur passera simplement après la première tentative et vous réessayera un autre jour à partir d'une IP différente. Pourquoi bannir directement les IP (en utilisant F2B) est généralement excessif (plus de charge pour le serveur pour rien).
Si vous insistez sur le traitement des listes de blocage par fail2ban, assurez-vous de l'activer sous /etc/failban/jail.local :
[postfix-rbl]
enabled = true
port = smtp,465,submission
filter = postfix-rbl
logpath = /var/log/mail.log
Pour utiliser le "mode" rbl sous les versions plus récentes, substituez la ligne de filtre par :
filter = postfix[mode=rbl]
Dans les anciennes versions, j'ai dû changer le mien pour détecter "554 5.7.1" pour repérer les rejets de logs postfix via le filtre "postifx-rbl". La nouvelle version de filtre semble rechercher ce changement sous les nouvelles versions en "mode" rbl.
En ce qui concerne l'attaque SYN flood - voir ceci.