Gỉa sử bạn đã dùng firewalld trên hệ điều hành CENTOS để cấu hình iptables trên MTA server này.
1. Cài đặt fail2ban

# yum install epel-release
# yum install fail2ban

2. Cấu hình fail2ban
Tạo file cấu hình zimbra-submission.local

vi /etc/fail2ban/jail.d/zimbra-submission.local
[zimbra-submission]
enabled = true
port = 587
filter = zimbra-submission
logpath = /var/log/zimbra.log
maxretry = 6
findtime = 360
bantime = 3600

Bạn đặt tham số maxretry phù hợp với môi trường của mình.
3. Cấu hình file bộ lọc (filter)

vi /etc/fail2ban/filter.d/zimbra-submission.conf
# Fail2Ban Zimbra Submission filter configuration file
#
# Authors: Manuel Garbin, Studio Storti, https://studiostorti.com/ and
# L. Mark Stone, Mission Critical Email LLC, https://www.missioncriticalemail.com
# 7 June 2020
#
[Definition]
# We only want to use fail2ban with Submission issues as we use DoSFilter to protect mailboxd
#
failregex = postfix\/submission\/smtpd\[\d+\]: warning: .*\[<HOST>\]: SASL \w+ authentication failed: authentication failure$
ignoreregex =

4. Bạn có thể enable bộ lọc ssh nếu cần, bạn tạo file cấu hình

# vi /etc/fail2ban/jail.d/sshd.local
[sshd]
enabled = true
port = ssh
#action = firewallcmd-ipset
logpath = %(sshd_log)s
maxretry = 5
bantime = 86400

5. Khởi động fail2ban

# systemctl start fail2ban
# systemctl enable fail2ban

6. Tạo script để xem thống kê

# vi /bin/fail2ban-allstatus.sh
#!/bin/bash
JAILS=`fail2ban-client status | grep "Jail list" | sed -E 's/^[^:]+:[ \t]+//' | sed 's/,//g'`
for JAIL in $JAILS
do
fail2ban-client status $JAIL
done

Cho phép thực thi

# chmod +x /bin/fail2ban-allstatus.sh

7. Xem thống kê

# fail2ban-client status zimbra-submission
Status for the jail: zimbra-submission
|- Filter
| |- Currently failed: 0
| |- Total failed: 0
| `- File list: /var/log/zimbra.log
`- Actions
|- Currently banned: 0
|- Total banned: 0
`- Banned IP list:
hoặc để xem tất cả bộ lọc
# fail2ban-allstatus.sh
Để gỡ bỏ 1 IP bị ban:
# fail2ban-client unban <ip_address>