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?
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.
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
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.
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
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
vim /etc/exim.conf
Hoặc bạn tắt luôn đi cho lành
/etc/init.d/exim stop
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
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
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.
Bài viết copy lại từ Blog http://www.laivanduc.com/hosting-domain/huong-dan-khac-phuc-loi-spam-mail-tren-vps.html
(14)
Leave a Reply