Vấn đề hệ thống gửi spam mail ra ngoài

Vấn đề:

1. IP bị blacklist.

2. Không thể gửi email đi vì hàng đợi bị đầy do các spam mail chiếm chỗ.

Giải pháp

Xác định account nào đang bị dùng để gửi spam ra ngoài. Sử dụng lệnh sau để biết các account nào có số lượng gửi nhiều một cách bất thường:

cat /var/log/zimbra.log | sed -n 's/.*sasl_username=//p' | sort | uniq -c | sort -nr

Bạn cần reset mật khẩu của account nghi ngờ (thường nằm trong 4 account đầu tiên) và khởi động lại Zimbra MTA.

su - zimbra
zmmtactl restart

Để phòng tránh việc một người dùng chưa được xác thực gửi email ra ngoài, bạn thực hiện theo tài liệu này. Cụ thể:

Cập nhật zimbraMtaSmtpdRejectUnlistedRecipient & zimbraMtaSmtpdRejectUnlistedSender, với quyền zimbra:

zmprov mcf zimbraMtaSmtpdRejectUnlistedRecipient yes
zmprov mcf zimbraMtaSmtpdRejectUnlistedSender yes
zmmtactl restart
zmconfigdctl restart

Thiết lập zimbraMtaSmtpdSenderLoginMaps

zmprov mcf zimbraMtaSmtpdSenderLoginMaps proxy:ldap:/opt/zimbra/conf/ldap-slm.cf +zimbraMtaSmtpdSenderRestrictions reject_authenticated_sender_login_mismatch

Chỉnh sửa file smtpd_sender_restrictions

Bạn cần chỉnh sửa file opt/zimbra/conf/zmconfigd/smtpd_sender_restrictions.cf và thêm vào phía sau mục permit_mynetworks một mục mới là reject_sender_login_mismatch.

vi /opt/zimbra/conf/zmconfigd/smtpd_sender_restrictions.cf

Edit nội dung như sau:
permit_mynetworks, reject_sender_login_mismatch

Khởi động lại mailboxd service
zmmailboxdctl restart

Cần đảm bảo rằng zimbraMtaMyNetworks chỉ chứa IP của chính mail server hoặc network mà bạn tin tưởng cho phép gửi mail mà không cần xác thực. Bạn có thể xem tham số này bằng lệnh:

zmprov gs $(zmhostname) zimbraMtaMyNetworks
Nội dung trả về:
zimbraMtaMyNetworks: 127.0.0.0/8 1.2.3.4/32
Trong đó 1.2.3.4/32 là IP của server.

Nếu zimbraMtaMyNetworks chứa một subnet mạng LAN của bạn (ví dụ như 1.2.3.4/24 - subnet 24) thì cần điều chỉnh như sau:
zmprov gs $(zmhostname) zimbraMtaMyNetworks '127.0.0.0/8 1.2.3.4/32'

Vấn đề server bị spammer tấn công vào.

Vấn đề:

1. Không thể gửi hoặc nhận mail

2. Có các deferred mail trong hàng đợi.

Giải pháp

Kiểm tra các hàng đợi, với quyền root:

/opt/zimbra/libexec/zmqstat
hold=2054
corrupt=0
deferred=2
active=20000
incoming=37593

Dùng lệnh sau để tìm ra IP nào tạo nhiều kết nối nhất:

cat /var/log/zimbra.log | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'| sort | uniq -c | sort -nr

19884 192.168.1.246
11587 192.168.5.1
2723 192.168.5.246

REJECT email từ các địa chỉ IP nghi ngờ này. Bạn có thể dùng postfix:

Kiểm tra xem đã cấu hình postfix_blacklist chưa:

su - zimbra
zmprov gacf zimbraMtaRestriction
zimbraMtaRestriction: check_client_access lmdb:/opt/zimbra/conf/postfix_blacklist
zimbraMtaRestriction: check_client_access lmdb:/opt/zimbra/conf/postfix_rbl_override

Edit file /opt/zimbra/conf/postfix_blacklist và thêm vào các IP đã tìm ra ở trên:

192.168.1.246 REJECT
192.168.5.1 REJECT
192.168.5.246 REJECT

Nếu được, bạn liên hệ với ZIMICO để sử dụng dịch vụ lọc spam chuyên nghiệp của ZIMICO.

Với lệnh sau bạn sẽ đưa tất cả các MAILER-DAEMON vào hàng đợi, với quyền root:

/opt/zimbra/postfix/sbin/postqueue -p | awk 'BEGIN { RS = "" } { if ($7 == "MAILER-DAEMON" ) print $1 }' | tr -d '!*' | /opt/zimbra/common/sbin/postsuper -h

Sau khi đã đưa các mail vào hàng đợi hold, bạn có thể thấy các hàng đợi khác đã trống và có thể gửi nhận mail bình thường:

/opt/zimbra/libexec/zmqstat
hold=43464
corrupt=0
deferred=0
active=0
incoming=0

Tiến hành review hàng đợi email trên webmail admin và xóa các mail rác đi.