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

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

zimbraMtaMyNetworks: 127.0.0.0/8 1.2.3.4/32

Trong đó 1.2.3.4/32 là IP của server.

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

Xem lại các cấu hình DNSBL, nếu chưa triển khai thì cấu hình sử dụng một số blacklist thông dụng:

zmprov mcf +zimbraMtaRestriction "reject_rbl_client zen.spamhaus.org"
zmprov mcf +zimbraMtaRestriction "reject_rbl_client b.barracudacentral.org"
zmprov mcf +zimbraMtaRestriction "reject_rbl_client bl.spamcop.net"

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