يرجى الملاحظة الي انني هنا اعتبر ان السيرفر المقصود هو سيرفر لونكس يحتوي على لوحة التحكم WHM/CPANEL ويرجى العلم انه عند ادخال الاوامر الى شل السيرفر لا تقم بادخال الامر مع اشارة # ان اشارة # تعني انه يجب ان تدخل الامر وانت تستخدم حساب المستخدم روت root وكل اشارة # تعني سطر جديد.

وتم تجربة هذا المقال على ليونكس توزيعة Centos.

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

انا لا اريد ان اخوض في كيفية رفع الفيروسات على الموقع بشكل مفصل ولكن من المفيد ان نعرف ان الفيروس يتم رفعه عن طريق الاف تي بي بعد ان تتسرب كلمة مرور الاف تي بي وتقع في يد المسؤول عن تلك الفيروسات فيتم تخزين كلمة المرور ، فحتى لو تم تنظيف الموقع وعدم تغيير كلمة مرور الاف تي بي فانه سوف يتم اعادة رفع الفيروس مرة اخرى وذلك لان كلمة مرور الاف تي بي معروفة من قبل المسؤول عن الفيروس وسوف يحاول الفيروس رفع نفسة مرة اخرى خلال ساعات قليلة.

متطلبات العمل:

  • سيرفر ليونكس يعمل بلوحة تحكم WHM/Cpanel.
  • حساب root على الخادم (السيرفر).
  • ان يكون سيرفر الاف تي بي هو pure-ftpd.
  • سوف نقوم بتركيب ClamAV وهو برنامج مجاني للكشف عن الفيروسات في حال لم يكن موجودا على السيرفر.

بداية العمل : التاكد من وجود ClamAV على السيرفر

ClamAV هو برنامج معالج فيروسات مجاني مفتوح المصدر مخصص لانظمة التشغيل ليونكس ويونكس ويمكن الحصول عليه مجانا من خلال زيارة موقع البرنامج على الانترنت من خلال الرابط http://www.clamav.net ويمكن تركيبة على السيرفر من خلال ال WHM بشكل تلقائي دون الحاجة  لتحميل البرنامج.

وهدفنا الان هو التاكد من ان برنامج ال ClamAV موجود على السيرفر او لا وللتاكد من ذلك يجب علينا الدخول الى السيرفر عن طريق WHM وذلك عن طريق الرابط http://example.com:2086 بعد استبدال example.com بعنوان او اي بس السيرفر الخاص بك.

بعد الدخول الى السيرفر اضغط على Manage Plugins من القائمة على اليمين ومن بعدها سوف تفتح نافذة ، تاكد من ان clamavconnector موجود على السيرفر وفي حال لم يمكن موجودا على السيرفر كل ما عليك هو اضافة اشارة صح بجانب Install and Keep Updated الموجود في خانة clamavconnector ومن ثم النقر على مفتاح Save الموجود في اسفل الصفحة وسوف تقوم السي بنل لتركيب ClamAV على السيرفر.


whm-manage-plugins

بعد ذلك يجب علينا ان ندخل الى السيرفر عن طريق الشل SSH كمستخدم روت ، وبعد الدخول الى السيرفر قم على كتابة الامر التالي

 # freshclam

وعندها من المفروض ان يتم تحديث ال ClamAV كما هو واضح في الصورة ادناه

ssh-freshclam

وهذا يدل ان ال ClamAV موجود على السيرفر وتم تحديث ملفات التعرف على الفيروسات الى اخر اصدار متوفر.

بعد ان تاكدنا من ان ال ClamAV يعمل على السيرفر يجب علينا الان ان نبدا بربط سيرفر الاف تي بي pure-ftpd بال ClamVB بحيث يتم عمل سكان (فحص) لاي ملف يتم رفعه عن طريق الاف تي بي للتاكد من انه لا يحتوي على فيروس من الفيروسات المعروفة من قبل ClamAV على انه فيروس.

في بداية الامر يجب ان نقوم على تحرير الملف /etc/pure-ftpd.conf ومن ثم البحث عن عبارة CallUploadScript وجعلها CallUploadScript yes.
ومن ثم حفظ الملف ، وهذا الامر سوف يعطي السماحية لسيرفر ال pure-ftpd بتنفيذ امر معين عند رفع كل ملف عن طريق الاف تي بي. وذلك عن طريق الامر التالي:

# pico /etc/pure-ftpd.conf

وسوف نبحث عن العبارة CallUploadScript وجعل قيمتها yes ومن ثم حفظ الملف كما في الصور ادناه. (لاحظ انه للبحث عن نص في المحرر pico فاننا نستخدم CTRL+W ثم نضع النص الذي نود  البحث عنه).  لاحظ انه قد تجد اشارة # قبل العبارة CallUploadScript والتي تعني الغاء مفعول العبارة لهذا احذف اشارة # كما يظهر في الصور ادناه:

البحث عن CallUploadScript

حذف اشارة # قبل CallUploadScript

بعد حذف اشارة # قبل CallUploadScript

لحفظ الملف في الامر pico نقوم على الظغط على CTRL+x  ومن ثم نختار y لحفظ الملف ومن ثم نبقي اسم الملف كما هو ونقوم بالظغط على مفتاح الادخال ENTER.

تحمل الملف الذي سوف يقوم بعملية الفحص

الان سوف نقوم بتحميل الملف الذي قمت على اعداده مسبقا والذي يقوم بعملية فحص الملفات التي يتم تحميلها عن طريق الاف تي بي للتاكد من خلوها من الفيروسات، لهذا سوف نقوم بتنفير الاوامر التالية:

# cd /usr/local/
# mkdir pure-ftpd-scan
# cd pure-ftpd-scan
# wget http://tech.di.net.sa/layer3/pure-ftpd/clamscan.sh
# chmod 755 clamscan.sh

هذه الاوامر تقوم على انشاء مجلد في /usr/local باسم pure-ftpd-scan وسوف يتم تحميل الملف الذي سيقوم بعملية الفحص وذلك عن طريق اخر امر wget وسوف تظهر عملية تحميل الملف بطريقة مشابهه لما بالصورة ادناه:

تحميل الملف clamscan.sh

والامر الاخير يقوم باعطاء الملف clamscan.sh الصلاحية 755 والتي تسمح بان يكون ملف تنفيذي كما هو بالصورة ادناه.

اعطاء الملف clamscan.sh الصلاحية 755

** عند اكتشاف فيروس تم رفعه عن طريق الاف تي بي فانه سوف يتم نقل الملف المصاب بالفيروس الى مجلد داخلي وذلك للمراجعة من قبل المشرف وكذلك اضافة اسم الملف والفيروس الى ملف لوج لهذا الان سوف اقوم على انشاء هذا المجلد عن طريق تنفيذ الاوامر التالية:

# mkdir /home/VIRUS-Q/
# touch /home/VIRUS-Q/log.log

كما هو بالصورة ادناه :

انشاء مجلد VIRUS-Q

الان سوف نبدا بعملية حقن ملفات خادم الاف تي بي بالاومر التي سوف تجعل خادم الاف تي بي يقوم بتشغيل الملف /usr/local/pure-ftpd-scan/clamscan.sh بعد رفع اي ملف عن طريق الاف تي بي.

في البداية سوف نقوم بتحرير الملف /etc/init.d/pure-ftpd والبحث عن السطر “$DAEMONIZE $fullpath /etc/pure-ftpd.conf -O clf:/var/log/xferlog $OPTIONS –daemonize” واضافة الامر الذي يقوم بمناداة الملف /usr/local/pure-ftpd-scan/clamscan.sh. لهذا سوف نبدا بالبداية بامر تحرير الملف /etc/init.d/pure-ftpd عن طريق الامر:

# cp /etc/init.d/pure-ftpd /usr/local/pure-ftpd-scan/pure-ftpd.bak
# pico /etc/init.d/pure-ftpd

وبعدها سوف نقوم بالبحث عن العبارة “$DAEMONIZE $fullpath /etc/pure-ftpd.conf -O clf:/var/log/xferlog $OPTIONS –daemonize” وبعدها سوف نظيف سطر جديد اسفله وندخل فيه الامر $DAEMONIZE /usr/sbin/pure-uploadscript -B -r  /usr/local/pure-ftpd-scan/clamscan.sh

$DAEMONIZE /usr/sbin/pure-uploadscript -B -r  /usr/local/pure-ftpd-scan/clamscan.sh

ووضع سطر جديد بعده وحقن الامر التالي فيه

$DAEMONIZE /usr/sbin/pure-uploadscript -B -r  /usr/local/pure-ftpd-scan/clamscan.sh

ومن ثم حفظ الملف بالطريقة المتعارف عليها كما هو واضح في الصور بالتسلسل ادناه:

تحرير الملف /etc/init.d/pure-ftpd

البحث عن $DAEMONIZE $fullpath /etc/pure-ftpd.conf -O clf:/var/log/xferlog $OPTIONS --daemonize

البحث عن $DAEMONIZE $fullpath /etc/pure-ftpd.conf -O clf:/var/log/xferlog $OPTIONS --daemonize

حقن $DAEMONIZE /usr/sbin/pure-uploadscript -B -r  /usr/local/pure-ftpd-scan/clamscan.sh

بعد اجراء الاوامر والعمليات السابقة نكون قد عدلنا على محتويات الملف /etc/init.d/pure-ftpd واضفنا الامر الذي سوف يتم تنفيذه عن كل عملية تحميل لملف عن طريق الاف تي بي.

لاحظ ان الامر cp اعلاه يقوم باخذ نسخة احتياطية من الملف pure-ftpd ويضعها في /usr/local/pure-ftpd-scan/ باسم pure-ftpd.bak وذلك في حال انه حدث خطا في التعديل على الملف اثناء حقن الامر بداخله يمكننا عندها استرجاع الملف الاصلي قبل اجراء التعديل.

الان قم على تحرير الملف /etc/init.d/pure-ftpd مرة اخرى عن طريق الامر:

pico /etc/init.d/pure-ftpd

وابحث عن السطر

kill $(cat /var/run/pure-ftpd.pid)

واضف سطر جديد تحته واضف (احقن) في السطر الجديد الامر التالي

kill $(cat /var/run/pure-ftpd/pure-uploadscript.pid)

بنفس الطريقة التي قمنا بها اعلاه وقم على  حفظ الملف.

بعد قيامنا بهذا الامور الان يجب علينا ان نقوم بعمل اعادة تشغيل لخادم الاف تي بي pure-ftp وذلك عن طريق تنفيذ الامر التالي:

# /etc/init.d/pure-ftpd restart

تجربة نجاح العملية

الان بعد تنفيذ الاوامر والعملية السابقة من المفترض ان يتم الكشف عن اي فيروس معروف من قبل ClamAV يتم رفعه عن طريق الاف تي بي وفي حال كان الملف يحمل فيروسا فانه يتم نقل الملف مباشرة الى مجلد /home/VIRUS-Q وكذلك اضافة اسم الملف واسم الفيروس الذي تم اكتشافه في الملف /home/VIRUS-Q/log.log وبالتالي حتى نضمن انه تم تنفيذ العملية السابقة بنجاح فانه يجب علينا ان نحاول تحميل فيروس عن طريق الاف تي بي وملاحظة انه تم نقل الملف الذي تم نقله الى مجلد VIRUS-Q او لا وهل تم اضافة اسمه واسم الفيروس الذي يحمله في ملف log.log.

وبما اننا لا نود استخدام فيروس حقيقي لانه قد يضر بجهازنا فاننا نود ان نستخدم فيروس وهمي بناء على توصيات eicar.org لهذا فلقد قمت على اعداد فيروس وهمي ويمكنك تحميله على جهاز الكمبيوتر الخاص بك ، الفيروس موجود على الرابط http://tech.di.net.sa/layer3/viruses/virus_example.php ، انه فيروس وهمي وهو تحت اسم “EICAR Test-NOT virus!!!”.

او يمكنك انشاء الفيروس الخاص بك وذلك باضافة الكود التالي الى ملف جديد من ومن ثم حفظ الملف:

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

قم على تحميل هذا الملف على جهاز الكمبيوتر الخاص بك وقم بالاتصال بالسيرفر عن طريق الاف تي بي باي موقع مستضاف على السيرفر بالطريقة العادية ورفع الملف الى الموقع ومن ثم حاول معرفة هل تم بالفعل اكتشاف الملف على انه فيروس وهل تم فعلا نقل الملف المصاب الى /home/VIRUS-Q وهل تم اضافة هذا الحدث الى الملف log.log الموجود في المجلد /home/VIRUS-Q.

وذلك كما هو معروض ادناه بالصور:

رفع ملف عن طريق الاف تي بي بالفايل زيلا

بعد رفع الملف الذي يحتوي على فيروس سوف يقوم برنامج الاف تي بي برفع الملف ، ومنطقيا في هذه اللحظات سوف يقوم سيرفر الاف تي بي pure-ftpd بفحص الملف لرؤية مدى احتوائه على فيروسات او لا. وبما ان هذا الملف يحتوي على فيروس فانه سوف يقوم بنقل الملف واضافة ذلك في ملف اللوج. ولكن عند رفع الملف وتحديث قائمة الملفات سوف يظهر ملف الفيروس انه تم رفعه كما في الصورة ادناه:

بعد رفع ملف عن طريق الفايل زيلا

ولكن في حال قمت على تحديث قائمة الملفات الموجودة على الخادم سوف تلاحظ ان الملف الذي تم رفعه موخرا قد اختفى ، كما يظهر بالصورة ادناه:

حذف الملف الذي يحتوي على الفيروس بعد رفعه عن طريق الاف تي بي

والان للتاكد من ذلك نقوم بالدخول الى السيرفر عن طريق الشل وادخال الاوامر التالية

# cd /home/VIRUS-Q/
# ls -lh
# cat log.log

وسوف تلاحظ ان نتيجة تنفيذ الاوامر هي شبييه بما في الصورة ادناه:

التاكد من نقل ملف الفيروس الذي تم تحميله على الاف تي بي

وهذا يعني ان العميلة نجحت وانه من هذه اللحظة في حال تم رفع اي ملف يحتوي على فيروس معروف من قبل ClamAV عن طريق الاف تي بي فانه سوف يتم نقله الى مجلد /home/VIRUS-Q ووسوف يتم ايضا كتابة اسم الملف المصاب واسم الفيروس الموجود في الملف كما هو موضح بالصورة اعلاه.

اننا بتطبيق هذة الالية نكون قد وفرنا الحماية من تحميل فيروسات المواقع المنتشرة عن طريق الاف تبي بي. ولكن يرجى العلم ان:

  • هذه الالية لا تعمل مع الملفات التي يتم تحميلها عن طريق مراكز التحميل او عن طريق السي بنل Cpanel او عن طريق اي بروتوكولات اخرى غير البروتوكول FTP.
  • ان عملية نقل الملف تعني ان الملف الاصلي لن يكون موجودا في الموقع الاصلي بمعنى انه لم تم رفع الملف index.php الخاصة بالمنتدى عن طريق الاف تي بي وكانت تحتوي على فيروس فانه سوف يتم نقل الملف وبالتالي فان الملف الاصلي لن يكون موجودا وهذا يعني ان الملفات سوف يتم ازالتها من الموقع ، وبالتالي في حال تم رفع اكثر من ملف مصاب فان الموقع قد يفقد الكثير من ملفاته.
  • ان الهدف من هذه الالية في هذه الفترة هو الحماية من الفيروسات فقط، انا في هذه المرحلة لا اعطي اي انتباه كون الملفات الاصلية تم حذفها. في المستقبل سوف اعمل على تحديث هذه الالية ليتم منع تحميل اكثر من ملف واحد مصاب بالفيروس. لهذا احرص على زيارة هذه الصفحة باستمرار للمعرفة مدى وجود اي تحديثات لهذه الالية. او قم على الاشتراك في التحديث من خلال النقر هنا وسوف يردك على بريدك اي تحديثات.
  • مع مرور الوقت فان حجم الملف log.log يزيد ولهذا انصح بين الحين والاخر بحذف الملف واعادة انشاءه من جديد.

ملاحظة: يسمح بنقل جزء او كل المقال والتصرف فيه بصورة شخصية او بصورة تجارية بشرط الاشارة الى الرابط الاصلي للمقال وهو http://irbidnet.com/index.php/2009/12/26/حماية-السيرفر-من-فيروسات-الاف-تي-بي/