السلام عليكم ورحمة الله وبركاتة
أخواني اريد ان اعرف كيف اغلق النوبدي عن ارسال الايميلات من خلال السيرفر وكيف اشغله من جديد
ولكم وافر الشكر
السلام عليكم ورحمة الله وبركاتة
أخواني اريد ان اعرف كيف اغلق النوبدي عن ارسال الايميلات من خلال السيرفر وكيف اشغله من جديد
ولكم وافر الشكر
أخي الكريم إليك هذه الطريقة فقد تفيدك فيما طلبت
==========================================================
Stop PHP nobody Spammers
==========================================================
لا تستطيع بي اتش بي و لا الأباتشي منذ إصداراتها الأولى مراقبة ومتابعة الاشخاص اللذين يرسلون البريد الالكتروني عبر 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 لمنع اي تأثيرات جانبية:
3-قم بعمل نسخة احتياطية للملف الافتراضي /usr/sbin/sendmail عبر الأمر:كود PHP:
/etc/init.d/exim stop
4- قم بإنشاء سكريبت مراقبة للإيميلات الجديدة المرسلة:كود PHP:
mv /usr/sbin/sendmail /usr/sbin/sendmail.hidden
انسخ ما يلي:كود PHP:
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);
5- قم بتغيير السماحيات عبر الأمر:
6- انشئ ملف لوغ جديد :كود PHP:
chmod +x /usr/sbin/sendmail
كود PHP:
touch /var/log/spam_log
7- أعد تشغيل eximكود PHP:
chmod 0777 /var/log/spam_log
8- راقب ملف spam_log وجرب قبل ذلك ان ترسل أي رسالة مثلا من أي صفحة اتصل بنا :كود PHP:
/etc/init.d/exim start
لمنع جعل ملف اللوغ كبير يجب ضبط إعدادات Log Rotation Detailsكود PHP:
tail - f /var/log/spam_log
وذلك عبر مايلي:
1- افتح الملف logrotate.conf عبر الامر:
2- ابحث عن:كود PHP:
pico /etc/logrotate.conf
# no packages own wtmp -- we'll rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp
rotate 1
}
أضف بعدها:
# SPAM LOG rotation
/var/log/spam_log {
monthly
create 0777 root root
rotate 1
}
أتمنى ان تكون هذه الطريقة مناسبة لك
والله ولي التوفيق
__________________
يارب عبيـدك سواي كثير ، وليس لي رب سواك
رابط الموضوع
http://www.webhostgear.com/232.html
__________________
حياة هوست للاستضافة
للدعم الفني
المملكة العربية السعوديه-الرياض- العليا حراج الكمبيوتر-تلفون و فاكس0096614615914
HYYAT4HOST
السلام عليكم
من ال whm
فعل ال SMTP Tweak
ومن Tweak Settings علم على
Prevent the user 'nobody' from sending out mail to remote addresses (php and cgi scripts generally run as nobody if you are not using phpsuexec and suexec respectively.)
تحياتى
__________________
Amr Elgbaly
System Engineer