بسم الله الرحمن الرحيم
الوقت :
10 دقايق
المتطلبات :
تكون لديك صلاحيات روت على السيرفر
الخطوه الأولى :
إدخل على سيرفر باليوزر روت أو إكتب su عشان تدخل بالروت
الخطوه الثانية :
أغلق برنامج exim كاتالي ..
/etc/init.d/exim stop
الخطوة الثالثة :
إحفظ نسخه من ملف sendmail
mv /usr/sbin/sendmail /usr/sbin/sendmail.backup
الخطوة الرابعه :
أنشئ ملف جديد sendmail يحتوي على سكربت متابعة السبام
pico /usr/sbin/sendmail
إلصق الكود التالي في الملف ...
كود PHP:
#!/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);
الخطوه الخامسة :
غير صلاحيات ملف sendmail الجديد
chmod +x /usr/sbin/sendmail
الخطوة السادسة :
أنشئ ملف وق جديد لحفظ كل الرسائل المرسلة من سيرفرك بإستخدام سكربتات php
touch /var/log/spam_log
أعطية الترخيص 777
chmod 0777 /var/log/spam_log
الخطوة السابعة :
شغل برنامج exim ..
/etc/init.d/exim start
الخطوة الثامنة :
إرسل رسالة من اي سكربت او فورم للإرسال
إكتب الامر هذا لعرض محتويات ملف اللوق لتأكد بأن الخطوات السابقة صحيحة ..
tail - f /var/log/spam_log
مثال للخرج ...
Mon Apr 11 07:12:21 EDT 2005 - /home/alqursan/public_html/maillist - nobody x 99 99 Nobody / /sbin
/nologin
الخطوة التاسعة :
لأن ملف اللوق سوف يوقم بتخزين سطووور كثير لكل عملية إرسال .. بعد فترة بيكون حجمه كبير مره إذاً ! .... لازم نسوي هذه الخطوة
نقوم بالتعديل التالي لملف rotate إكتب الامر هذا لتحرير الملف
pico /etc/logrotate.conf
أبحث عن الكود :
كود PHP:
# no packages own wtmp -- we'll rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp
rotate 1
}
أضيف أسفله مباشرة :
كود PHP:
# SPAM LOG rotation
/var/log/spam_log {
monthly
create 0777 root root
rotate 1
}
ملاحظة :
* إذا رقيت برنامج exim سوف يتغير ملف sendmail لذا إكتب الامر هذا عشان يحافظ على الملف من التغيير
chattr + i /usr/sbin/sendmail
* الآن يمكنك معرفة الي ارسل حتى لو كان في وضع nobady
منقول للفائدة