Khắc phục lỗi spam mail trên VPS sử dụng DirectAdmin

Khi sử dụng VPS Linux, bạn thường thấy VPS luôn trong tình trạng full Ram, CPU, I/O của ổ cứng lên rất cao mặc dù ứng dụng trên VPS đang sử dụng rất ít hoặc thậm chí không sử dụng đến. Vậy nguyên nhân do đâu?

1. Nguyên nhân

Không phải tự nhiên mà VPS gửi Email Spam đồng loạt như vậy. Thông thường, tình trạng Spam Mail trên VPS sảy ra khi một trong số các website của chúng ta trong VPS sử dụng Theme hoặc Plugin, module không rõ nguồn gốc hay code được chia sẻ tràn lan trên mạng (download ở những nơi không uy tín)…. Bị dính virut, mã độc.

Bên cạnh đó, có thể một tài khoản nào đó bị đánh cắp SMTP để spam mail. Chúng ta cũng không thể ngoại trừ trường hợp chính chúng ta hoặc user nào đó chủ động Spam mail ra ngoài (Email Marketing)

Trường hợp cuối cùng là do hàm mail() được enable (bật) và bị lạm dụng.

Xác định tình trạng
Bên trên chúng ta đã biết được những nguyên nhân gây ra lỗi Spam Mail trên VPS và bây giờ chúng ta cùng xác định xem VPS của mình đang trong tình trạng như thế nào.

Đầu tiên, các bạn hãy SSH vào VPS sau đó sử dụng lệnh bên dưới để kiểm tra số lượng mail trong queue

exim -bpc

Nếu kết quả trả về lớn hơn 100 thì cũng đồng nghĩa với việc VPS đang thực hiện spam mail ra ngoài. Như hình bên dưới là VPS đang Spam kinh khủng tởm.

Xem thêm:  Máy chủ riêng và máy chủ ảo khác nhau như thế nào?

lenh-liet-ke-email-spam-trong-linux

Tiếp theo chúng ta sẽ kiểm tra danh sách mail trong queue để biết cụ thể user account mail nào đang thực hiện spam bằng cách sử dụng lệnh. Kết quả trả về như bạn sẽ thấy trong VPS của bạn

exim -bp

Tiếp tục, các bạn hãy kiểm tra log mail để xem chi tiết hơn.

  • cd /var/log/exim
  • tail -n 100 mainlog |more

Hoặc sử dụng lệnh này sẽ liệt kê log theo user được truy vấn:

tail -n 10000 mainlog |grep user@example.com |more

Bạn cũng có thể kiểm tra nội dung Email bằng

exim -Mvh [id] // id dạng 1YlI6V-0004K0-MT

2. Khắc phục Spam Mail trên VPS

Bên trên là chúng ta kiểm tra xem VPS của mình có đang Spam Mail hay không. Còn bây giờ hãy cùng mình khắc phục tình trạng Spam Mail trên VPS.

Đầu tiên chúng ta cần thực hiện xóa/gửi toàn bộ/một mail trong queue. Thứ tự hoặc bạn có thể tùy chọn theo cách bạn thấy hợp lý nhất là được.

Xóa 1 mail trong queue, id dạng 1YlI6V-0004K0-MT

exim -Mrm {message-id}

Xóa tòa bộ mail trong queue

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

Chạy lệnh xong bạn sẽ thấy như thế này nghĩa là đã xóa.

vps-full-ram-full-cpu-do-email-spam

Xóa tòa bộ mail trong frozen

exim -bpr | grep frozen | awk {‘print $3’} | xargs exim -Mrm

Nếu bạn đang chủ động Spam Mail thì bạn có thể sử dụng lệnh bên dưới để gửi toàn bộ mail trong queue

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

3. Thực hiện config và stop service exim

Để config các bạn chạy lệnh bên dưới và tự chỉnh sửa bất kỳ 1 dòng nào sau đó lưu lại

Xem thêm:  Lợi ích khi dùng máy chủ ảo (VPS) trong nước

vim /etc/exim.conf

Hoặc bạn tắt luôn đi cho lành

/etc/init.d/exim stop

4.Tắt hàm mail() – Disable hàm mail()

Đầu tiên chúng ta cần phải xác định xem file php.ini đang nằm ở đâu trong VPS bằng

php -i | grep php.ini

Kết quả trả về tùy vào VPS của bạn. Hình dưới là kết quả của mình và nó nằm trong /etc/php.ini

khac-phuc-loi-spam-mail-tren-vps-linux

Bạn có thể kiểm tra xem hàm nào đang bị disable (tắt)

grep disable_functions /etc/php.ini

Lệnh này sẽ disable (tắt) hàm mail() – Tắt xong thử kiểm tra bằng lệnh bên trên xem tắt được chưa nhé.

sed -i ‘s/disable_functions =/disable_functions = mail/’ /etc/php.ini

xu-ly-mail-tren-vps

Sau đó hãy Restart service httpd

/etc/init.d/httpd restart

Nhận thấy lỗi Spam Mail trên VPS rất phổ biến và khá nhiều bạn đang gặp phải nên mình viết bài này để hướng dẫn các bạn cách đơn giản nhất để khắc phục lỗi Spam Mail trên VPS. Mong rằng bài viết sẽ giúp được các bạn. Chúc thành công.

0/5 (0 Reviews)