إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

Stop PHP nobody Spammers

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • Stop PHP nobody Spammers

    السلام عليكم ورحمة الله وبركاته

    أنا طبعا من المتأذين من السبام وإغراق السيرفر بالرسائل من هذا النوع.
    بحثت عن حل للمشكلة ووجدت شرحاً من تاريخ 05-09-2005, 10:28 PM من موقع الويب العربي, كالتالي:
    ================================================== ==================
    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 لمنع اي تأثيرات جانبية:
    /etc/init.d/exim stop
    3-قم بعمل نسخة احتياطية للملف الافتراضي /usr/sbin/sendmail عبر الأمر:
    mv /usr/sbin/sendmail /usr/sbin/sendmail.hidden
    4- قم بإنشاء سكريبت مراقبة للإيميلات الجديدة المرسلة:
    pico /usr/sbin/sendmail
    انسخ ما يلي:


    #!/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- قم بتغيير السماحيات عبر الأمر:
    chmod +x /usr/sbin/sendmail
    6- انشئ ملف لوغ جديد :

    touch /var/log/spam_log

    chmod 0777 /var/log/spam_log

    7- أعد تشغيل exim
    /etc/init.d/exim start
    8- راقب ملف spam_log وجرب قبل ذلك ان ترسل أي رسالة مثلا من أي صفحة اتصل بنا :
    tail - f /var/log/spam_log
    لمنع جعل ملف اللوغ كبير يجب ضبط إعدادات Log Rotation Details
    وذلك عبر مايلي:
    1- افتح الملف logrotate.conf عبر الامر:
    pico /etc/logrotate.conf
    2- ابحث عن:

    # 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.arabwebtalk.com/showthread.php?t=12321

    السؤال الآن والذي يهمني جداً, هل الشرح يعمل أي ممكن تطبيقه ويعمل بكفائة بعد هذا الوقت الذي تقدمة فيه الوسائل والسبل كثيرا؟

    شكرا,
    Dr.BS

  • #2
    الطريقة اول مره اشوفها مع انها مكتوبة من سنتين

    مرر برامترز لل exim وبتلقى السكربت اللي يرسل في اللوق.

    وبالنسبة لايقافة فيه حد معين تقدر تحدده بالفايروول بحيث انه يعطي chmod 000 للمجلد كامل

    طبعا يبي لك اضافة اخرى وهي تطبيق امر chattr عشان مايقدر ال spammer يرجع له التصريح ويكمل الارسال.

    تعليق


    • #3
      المشاركة الأصلية بواسطة عبد العزيز مشاهدة المشاركة
      الطريقة اول مره اشوفها مع انها مكتوبة من سنتين

      مرر برامترز لل exim وبتلقى السكربت اللي يرسل في اللوق.

      وبالنسبة لايقافة فيه حد معين تقدر تحدده بالفايروول بحيث انه يعطي chmod 000 للمجلد كامل

      طبعا يبي لك اضافة اخرى وهي تطبيق امر chattr عشان مايقدر ال spammer يرجع له التصريح ويكمل الارسال.
      أشكرك جزيل الشكر أخي عبد العزيز لردك.
      ممكن تشرح لي الحل بشكل أوضح على شكل أ, ب, ت, ث؟ ^_^

      شكرا

      تعليق


      • #4
        أ ) انت بحاجه الى سي بنل لاننا بنعمل كل شي من خلالها.


        ب) تدخل whm وتضغط على خيار Exim Configuration Editor ومن داخلها ادخل على زر Advanced Editor


        ت ) في أول مربع text field الصق هذه البراتمترز عشان يسجلها اللوق.

        كود:
        log_selector = +address_rewrite +all_parents +arguments +connection_reject +delay_delivery +delivery_size +dnslist_defer +incoming_interface +incoming_port +lost_incoming_connection +queue_run +received_sender +received_recipients +retry_defer +sender_on_delivery +size_reject +skip_delivery +smtp_confirmation +smtp_connection +smtp_protocol_error +smtp_syntax_error +subject +tls_cipher +tls_peerdn

        ث) الان واثناء وقت الارسال لما تقرأ اللوق تبع الاكزيم راح تعرف السكربت اللي يخرج الرسايل ، افضل أمر للقراءة ومعرفة السكربت هو

        كود:
        tail -f /var/log/exim_mainlog | grep public_html

        ج ) عشان تمنعه بشكل تلقائي لازم تركب الفايروول csf ابحث عنه وركبه ، وادخل على whm واختر ConfigServer
        Security&Firewall

        ح ) ثم اختر Firewall Configuration

        ابحث عن مايلي :

        ب ) LF_CSF ضع جمبها رقم واحد لتفعيلها.

        ر ) LF_CSF راجع الفقرة ب :P

        ح ) LF_SU_EMAIL_ALERT راجع الفقرة ر.


        خ ) LF_SCRIPT_ALERT وضع جمبها رقم واحد لتفعيلها ، هذه الخاصية ستقوم بحساب كم مره تسجل هذا السكربت في اللوق يعني عمله عداد فقط.

        ع ) LF_SCRIPT_LIMIT ضع فيها عدد الرسايل المسموح به بالساعه.

        غ ) LF_SCRIPT_PERM ضع جمبها رقم واحد وهي المسؤوله عن ايقاف السكربت اذا تعدى الحد المسموح به.


        ط ) احفظ اعدادك ثم اعد تشغيل ال csf من خلال whm

        ي ) آخر حروف الهجاء

        تعليق


        • #5
          السلام عليكم
          كنا نقوم بعمل للوج من خلال الخطوات التى بالاعلى و لكننا قمنا بإلغاء هذا السكربت بسبب اللود
          فهذا السكربت يسبب فى أرتفاع اللود على السرفر تخيل أخى أنه يقوم بعمل لوج لكل أميل .
          ممكن أستخدام هذا الامر eximstatus -nr /var/log/exim_mainlog
          للحصول على معلومات من قام بأرسال أميلات بشكل كبير

          تعليق


          • #6
            كود:
            [[email protected] ~]# eximstatus -nr /var/log/exim_mainlog
            -bash: eximstatus: command not found
            [[email protected] ~]#
            ايش هو السكربت اللي يرفع اللود ؟

            تعليق


            • #7
              المشاركة الأصلية بواسطة عبد العزيز مشاهدة المشاركة
              كود:
              [[email protected] ~]# eximstatus -nr /var/log/exim_mainlog
              -bash: eximstatus: command not found
              [[email protected] ~]#
              ايش هو السكربت اللي يرفع اللود ؟
              برنامج الexim غير موجود لديك عزوز... طبعا هو عبارة عن Spam Assassin ويمكنك معرفة المزيد عنه من هنا:
              http://tldp.org/HOWTO/Spam-Filtering-for-MX/exim.html
              V.I.P

              (وَاصْبِرْ فَإِنَّ اللَّهَ لَا يُضِيعُ أَجْرَ الْمُحْسِنِينَ)
              هود 115

              Linux is user-friendly, but it happens to be selective about its friends

              "احذر أن تكون مثل البقية تأخذ وﻻتعطي ، فلن يكون هناك مصادر تعليمية على الشبكة، ﻻأكثر الله من أمثالهم"


              مجتمع لينوكس العربي: وقف لله تعالى وصدقة جارية، فلا بارك الله في كل من يحاول الإساءة إليه في الظاهر أو في الخفاء...


              تعليق


              • #8
                سامر

                البرنامج موجود وهو اللي انا شغال عليه ، واللي تتكلموا عنها ممكن تكون اضافة للبرنامج لا اكثر

                تعليق

                يعمل...
                X