Hướng dẫn khắc phục lỗi Spam Mail trên VPS

Hướng dẫn khắc phục lỗi Spam Mail trên VPS

Để tìm cách khắc phục lỗi spam trên VPS các bạn có thể làm theo các hướng dẫn bên dưới.

Cách 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)

Cách xác định:

# exim -bpc // số lượng mail queue. Nếu lượng mail queue > 100 mail thì chắc chắn vps của bạn đang spam ra ngoài.

# exim -bp / danh sách mail trong mail queue. Tại đây bạn sẽ thấy user nào đang spam ra ngoài.

Bạn cũng có thể kiểm tra log bằng lệnh:

# 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

Để xem nội dung mail dùng lệnh sau:

# exim -Mvh [id] // id dạng 1VwdCb-0001ze-5c

Xoá một mail đang nằm trong Queue:

# exim -Mrm {message-id}

Xoá toàn bộ email đang có trong Queue:

# exim -bp | awk ‘{ print $3 }’ | xargs exim -Mrm

Gửi toàn bộ email đang có trong Queue:

# /usr/sbin/exim -bp |awk ‘{print $3}’ | xargs -n 1 -P 40 /usr/sbin/exim -v -M

Tìm nguồn spam

Giả sử rằng sau một loạt câu lệnh trên bạn đã tìm được user nào đang spam. Việc làm đầu tiên là bạn nên suspend tài khoản đó để tạm dừng việc spam. Sau đó bạn vào source code của user đó:

# cd /home/username/domains/example.com/public_html

Cách tốt nhất là bạn download source code về máy dùng các trình antivirus để quét. Đừng quên backup lại một bản vì có thể khi quét sẽ mất file làm hỏng source. Thường thì các file mã độc này sẽ được mã hóa. Tuy nhiên bạn có thể tìm nhanh bằng câu lệnh sau:

# find . -name ‘*.php’ | while read FILE; do if grep ‘eval(base64_decode’ “$FILE”; then echo “$FILE” >> filemadoc; fi ; done

hoặc

# find . -name ‘*.php’ | while read FILE; do if grep ‘eval(base64_decode’ “$FILE”; then echo “$FILE”; fi ; done

 

Be the first to comment

Leave a Reply

Your email address will not be published.


*