Cegah Spammer menggunakan server Anda!!
Saat ini seoarang penjaga server tidah hanya disibukkan dengan datangnya penyusup yang kemungkinan bisa melakukan perusakan. Walaupun tidak semua penyusup melakukan itu. Ada beberapa penyusup yang hanya menempelkan identitasnya, dan kita justru patut berterima kasih kepada penyusup model begini.
Ada hal lain yang harus diperhatikan, yaitu jangan biarkan spammer menggunakan server Anda. Saat ini Data Center telah menerapkan kebijakan tegas, yaitu jika Anda tidak segera menangani masalah spammer ini, maka server Anda bisa dimatikan.
Kita tidak bisa melakukan pelarangan terhadap user yang akan mengirim email. Yang bisa kita lakukan adalah memantau dan mencari tahu siapa yang melakukan spamming. Kemudian account yang bersangkutan dibekukan.
Yang jadi masalah disini adalah kebanyakan spammer menggunakan script yang dipasang di web server, dimana email yang dikirim melalui webserver tidak bisa diketahui siapa yang melakukan pengiriman. Email yang dikirim dari web server dengan tanpa menggunakan SMTP server, melainkan menggunakan fungsi yang wrapping sendmail, tidak bisa diketahui siapa pengirimnya karena semuanya berstatus dikirimoleh “nobady”.
Lalu bagaimana mengatasinya?
1. Periksa aplikasi yang di-install oleh user Anda di server, karena banyak spammer memanfaatkan hole yang ada di web application.
2. Buat mail log dengan mencegat perintah sendmail.
Membuat mail log
Dalam kasus ini saya menggunakan exim mail server yang merupakan mail server standar untuk server hosting yang menggunakan CPanel.
Langkah 1
Login ke server dan su - root
Langkah 2
matikan exim dengan perintah
/etc/init.d/exim stop
Langkah 3
backup/rename file asli /usr/sbin/sendmail menjadi /usr/sbin/sendmail.hidden dengan perintah :
mv /usr/sbin/sendmail /usr/sbin/sendmail.hidden
Langkah 4
Buat file sendmail baru sebagai berikut :
————————————————
#!/usr/local/bin/perl
# use strict;
use Env;
my $date = `date`;
chomp $date;
open (INFO, “>>/var/log/spam_log”) || die “Failed to open file ::$!”;
my $uid = $>;
my @info = getpwuid($uid);
if($REMOTE_ADDR) {
print INFO “$date - $REMOTE_ADDR ran $SCRIPT_NAME at $SERVER_NAME n”;
}
else {
print INFO “$date - $PWD - @infon”;
}
my $mailprog = ‘/usr/sbin/sendmail.hidden’;
foreach (@ARGV) {
$arg=”$arg” . ” $_”;
}
open (MAIL,”|$mailprog $arg”) || die “cannot open $mailprog: $!n”;
while (<STDIN> ) {
print MAIL;
}
close (INFO);
close (MAIL);
————————————————
Langkah 5
Ubah permission file sendmail yang baru:
chmod +x /usr/sbin/sendmail
Langkah 6
buat log file :
——————————-
touch /var/log/spam_log
chmod 0777 /var/log/spam_log
——————————-
Langkah 7
jalankan exim lagi
/etc/init.d/exim start
Langkah 8
monitor spam_log Anda
tail - f /var/log/spam_log
Contoh Isi Log :
Mon Apr 11 07:12:21 EDT 2005 - /home/username/public_html/directory/subdirectory - nobody x 99 99 Nobody / /sbin/nologin
Detil Log Rotasi
Log perlu dirotasi supaya tidak membengkak, misalnya satu bulan sekali.
pico /etc/logrotate.conf
CARI:
# no packages own wtmp — we’ll rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp
rotate 1
}
Kemudian tambahkan berikut :
# SPAM LOG rotation
/var/log/spam_log {
monthly
create 0777 root root
rotate 1
}
Catatan :
1. Anda bisa melakukan chattr + i /usr/sbin/sendmail supaya tidak ditimpa
2. yang tertera di dalam spam_log tidak semuanya spam, tetapi dari situ Anda bisa melihat mana saja yang kemungkinan spam.
3. Dari yang saya alami, ketika kita mencoba mengirim email via formail, tidak langsung dilakukan pencatatan di file log. Jadi kalau Anda belum menemuka log, kemungkinan besuk akan kelihatan. Mungkinkah ini karena adanya antrian email yang terlalu banyak?
Referensi : http://www.webhostgear.com/232_print.html
Agus Suhartono