July 13, 2015

Làm gì khi VPS spam Mail ?

Rất nhiều người thuê VPS hoặc máy chủ vật lý không có (hoặc rất ít) kiển thức quản lý máy chủ. Họ chỉ quản trị dựa vào các Control Panel như Cpanel hay DirectAdmin, hoặc sự hỗ trợ của kỹ thuật của các nhà cung cấp dịch vụ. Bài viết này cung cấp một số cách tìm kiếm một user trong vps spam mail chạy DirectAdmin hoặc Exim.
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

Related Posts:

  • Backup of Zimbra MailBox using zmmailbox This is a short script I use to backup the Zimbra mailbox content for my users. This has been used on a Zimbra Collaboration Server (ZCS Open Source Edition) 7.2 installation, but should work on earlier versions as well. I u… Read More
  • Zimbra Hot Backup Restore Tool Tool to create and restore backups of Zimbra open source. Zimbra Backup and Restore "hot". By Richardson Lima Developed in Bash Script, but currently under development in the Python programming language. BACKUP Script 1&… Read More
  • Tổng hợp các lỗi phổ biến trong Mail Zimbra Vào một ngày đẹp trời, tự nhiên hệ thống Mail của công ty bị gặp trục trặc , bạn sẽ cần phải thao tác thật nhanh sao cho hoạt động của hệ thống ổn định trở lại. Vậy đâu là nguyên nhân và cách khắc phục cho những lỗi đó, chún… Read More
  • Script backup zimbra mail##!/bin/bash clear echo Start time of the backup = $(date +%T) before="$(date +%s)" ## Backup Format FORMAT=tgz ## Backup location ZBACKUP=/srv/backup/ ## Folder name for backup and using date DATE=`date +"%d%m%y"` ## Bac… Read More
  • Cold backup for the Open Source Edition of Zimbra Today I’ve setup a cold backup routine to backup my Zimba installation running on my Debian (Etch) 4.0 server that is in full production now for my private domains. This is a slightly modified backup script for the Open Sour… Read More

0 comments:

Post a Comment