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>