June 6, 2015

Làm gì khi VPS bị spam Mail?

1. 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
2. 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
3. Cách xác định
Step 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
Step 2: Kiểm tra danh sách mail trong queue để biết cụ thể user account mail nào đang thực hiện spam
  • exim -bp
Step 3: Kiểm tra log mail
  • cd /var/log/exim
  • 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
Step 4: Kiểm tra nội dung mail
  • exim -Mvh [id]    // id dạng 1YlI6V-0004K0-MT
4. Cách khắc phục
Step 1: Trước tiên cần thực hiện xóa/gửi toàn bộ/một 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
  • /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
Step 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
Step 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
Step 4: 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


Thực hiện nhập 1 con số trong "Daily Email Limit per DirectAdmin User" để giới hạn mỗi usre được phép gửi ra số lượng mail mỗi ngày, sau đó Save lại

Step 5: 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
Ngoài ra, cũng có thể sử dụng link https://www.virustotal.com/ để check
Cũng có thể tham khảo 1 số bài biết dưới đây để có thể cài đặt các chương trình scan virus trên VPS nhằm hạn chế vấn đề này.
Cài đặt clamav tại đây hoặc tại đây

Cài đặt Malware Detect tại đây

0 comments:

Post a Comment