Stop PHP nobody Spammers ايقاف رسائل الاسبام المزعجة هنا الحل

الحالة
مغلق ولا يسمح بالمزيد من الردود.

amine65

:: عضو منتسِب ::
إنضم
26 نوفمبر 2008
المشاركات
12
النقاط
2

كلنا نعرف رسائل السبام وهذي الرسائل المزعجة هذا انشالله يفي بالغرض لا معوف لدينا ان
بي اتش بي و لا الأباتشي منذ إصداراتها الأولى تستطيع مراقبة ومتابعة الاشخاص اللذين يرسلون البريد الالكتروني عبر PHP mail function و ذلك عبر مستخدم nobody user والاشخاص الحقودين والماكرين يستغلون هذه النقطة لإرسال رسائل السبام بواسطة سكريتات بي اتش بي أوغيرها دون ان تعرف من يقوم بذلك من هؤلاء الاشخاص
إن مراقبة exim_mainlog لا يساعدك كثيرا في هذا الأمر لأنك سترى أن هناك من يرسل رسائل لكن لا تدري من هو المستخدم الذي يرسل هذه الرسائل و أين تقع السيكريبت التي ترسل هذه الرسائل
أذا فحصت ملف PHP.ini ستجد أن برنامج البريد موضوع بشكل افتراضي على المسار
/usr/sbin/sendmail
ستجد ان اغلب سكريبتات الـphp تستخدم هذا المسار لإرسال الرسائل عبر التابع mail(); لذلك فإن اغلب الرسائل سترسل عبر
/usr/sbin/sendmail =)​

المتطلبات
-----
سنفترض أنك تستخدم الإصدارات التالية:
Apache 1.3x, PHP 4.3x and Exim
الوقت اللازم:
------
عشر دقائق تقريبا​

طريقة التنفيذ:-------
1- الدخول إلى السيرفر عبر SSh
2- قم بايقاف Exim لمنع اي تأثيرات جانبية:​

كود PHP:
/etc/init.d/exim stop


3-قم بعمل نسخة احتياطية للملف الافتراضي /usr/sbin/sendmail عبر الأمر:​

كود PHP:
mv /usr/sbin/sendmail /usr/sbin/sendmail.hidden


4- قم بإنشاء سكريبت مراقبة للإيميلات الجديدة المرسلة:​

كود PHP:
pico /usr/sbin/sendmail

كود PHP:
[right][/right]


انسخ ما يلي:
كود PHP:
#!/usr/local/bin/perl

كود PHP:
[right]# 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 $@-@@-@@-@@-@@-@@-@_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);
[/
right]


والصقه


5- قم بتغيير السماحيات عبر الأمر:
كود PHP:
chmod +x /usr/sbin/sendmail


6- انشئ ملف لوغ جديد :​

كود PHP:
touch /var/log/spam_log

كود PHP:
[right]
chmod 0777 /var/log/spam_log
[/right]


7- أعد تشغيل exim

كود PHP:
/etc/init.d/exim start


8- راقب ملف spam_log وجرب قبل ذلك ان ترسل أي رسالة مثلا من أي صفحة اتصل بنا :

كود PHP:
tail - f /var/log/spam_log


لمنع جعل ملف اللوغ كبير يجب ضبط إعدادات Log Rotation Details
وذلك عبر مايلي:
1- افتح الملف logrotate.conf عبر الامر:
كود PHP:
pico /etc/logrotate.conf


2- ابحث عن:
كود PHP:
# no packages own wtmp -- we'll rotate them here



كود PHP:
[right]/var/log/wtmp {
monthly
create 0664 root utmp
rotate 1
}
[/
right]




أضف بعدها:
كود PHP:
# SPAM LOG rotation

كود PHP:
[right][color=#000000]/var/log/spam_log {
[color=#000000]monthly
[color=#000000]create 0777 root root
[color=#000000]rotate 1
[color=#000000]}
[/COLOR][color=#000000][/color][/color][/color][/right]
[/COLOR] [/COLOR]​




وهذا وانشالله قمنا من الحد من مشكلة الاسبام
 
الحالة
مغلق ولا يسمح بالمزيد من الردود.
Top