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.