Nội Dung
Nhận biết
- VPS của bạn tự nhiên chậm, RAM và CPU tăng cao.
- Email không đến được người nhận.
- DirectAdmin thông báo lượng mail gửi ra nhiều.
- Địa chỉ IP bị Blacklist.
Nguyên nhân
- Nếu là máy chủ website có thể source code bạn có vấn đề. Hãy chắc chắn rằng các module, plugin, theme là đáng tin cậy.
- SMTP spam: Có thể tài khoản nào đó bị đánh cắp.
- User chủ động spam mail ra ngoài (Email Marketing).
- Do hàm mail() được enable và bị lạm dụng.
Cách xác định
Bước 1: Kiểm tra số lượng mail trong queue
Nếu con số >100 thì cũng đồng nghĩa là VPS đang thực hiện spam mail ra ngoài.
exim -bpc
Bước 2: Kiểm tra danh sách mail trong queue
Kiểm tra để biết cụ thể user account mail nào đang thực hiện spam.
exim -bp
Bước 3: Kiểm tra log mail
cd /var/log/exim
Sau đó thực hiện command:
tail -n 100 mainlog |more
Hoặc:
tail -n 10000 mainlog |grep user@example.com |more //lệnh này sẽ liệt kê log theo user được truy vấn
Bước 4: Kiểm tra nội dung mail
exim -Mvh [id] // id dạng 1YlI6V-0004K0-MT
Cách khắc phục
Bước 1: Xóa/gửi mail trong queue
exim -Mrm {message-id} // xóa 1 mail trong queue, id dạng 1YlI6V-0004K0-MT
exim -bp | awk '{ print $3 }' | xargs exim -Mrm // xóa tòa bộ mail trong queue
exim -bpr | grep frozen | awk {'print $3'} | xargs exim -Mrm // xóa tòa bộ mail trong frozen
/usr/sbin/exim -bp |awk '{print $3}' | xargs -n 1 -P 40 /usr/sbin/exim -v -M //gửi toàn bộ mail trong queue
Bước 2: Thực hiện config và stop service exim
vim /etc/exim.conf //Chỉnh sửa bất kỳ 1 dòng nào sau đó lưu lại
/etc/init.d/exim stop //Stop service exim
Bước 3: Disable hàm mail()
php -i | grep php.ini //Xác định file php.ini
Giả sử kết quả trả về file php.ini nằm trong /usr/local/php54/lib/php.ini
grep disable_functions /usr/local/php54/lib/php.ini //Kiểm tra xem hàm nào bị disable
sed -i 's/disable_functions =/disable_functions = mail/' /usr/local/php54/lib/php.ini //Thực hiện disable hàm mail()
/etc/init.d/httpd restart //Restart service httpd
Bước 4: Giới hạn email gửi ra
Nếu có sử dụng control DirectAdmin, thực hiện giới hạn email mỗi user được gửi phép gửi ra mỗi ngày.
Login vào control DirectAdmin với quyền admin –> tìm đế mục Extra Features –> click Administrator Setting.
Bước 5: Suspend user
Tiến hành suspend user có account mail đang thực hiện spam, sau đó download full source code + database về local và thực hiện scan virus với các chương trình antivirus để kiểm tra.