موضوع وهوا حماية الأباتشي سيرفر + حماية مواقع العملاء من خدمة symlink التي تستغل لتخطي من يوزر لأخر .

http://www.traidnt.net/vb/traidnt2453984/

طبعا الجميع بالغني عن تعريف symlink , خليني ابلش في الزبدة :]

سبق و تطرق الاخوان هنا الي الحماية من symlink , ولكن بعض الاخوة هنا توصلوا الي تخطي لتلك الطرق :]

لكن من يقرأ في موقع السي بنل عن تلك الخاصية , راح يلاقي حلول جذرية بعيدا عن سياسه المنع و الحجب

الطريقة الي راح نستخدمها هي باتش Rack911-provided patch
و بعد الاستخدام هذا الباتش باذن الله لن تواجة هذا النوع من الهجوم

نبدأ علي بركة الله

اول شي نحرر الملف التالي لوضع الكود الخاص بتركيب الباتش قبل اعادة بناء خادم الويب :] ,

رمز Code:
nano /scripts/before_apache_make

ثم نضع الكود التالي بداخلة

رمز PHP:
#!/bin/bash
#symlink patch
#Rack911 <steve@rack911.com>

## Obtain Symlink Patch
/usr/bin/wget -O harden-symlinks.patch http://layer1.rack911.com/harden-symlinks.patch

## Patch Source
/usr/bin/patch -p1 < harden-symlinks.patch

رمز Code:
chmod 700 /scripts/before_apache_make



الأن لزام علينا أن نقوم بإعادة بناء الاباتشي و سأشرح ذالك مشان نضرب حجرين في عصفور

الأن ندخل الي الأمر الخاص بإعادة بناء الابتشي سيرفر عن طريق الشل
رمز Code:
/scripts/easyapache

يظهر لنا كما في الصورة التالية , نختار البروفايل الثاني (Basic) , ثم customize profile ,


كما تلاحظون يطلب منا اختيار اصدار الابتشي احرص تماما علي اختيار الاصدار 2.2.X , ثم next setp


الأن يطلب منك اختيار اصدار الphp , لك حرية الاختيار حسب مطلبات مواقع عملاءك ثم , next step


الأن مرحلة اختيار الإضافات التي سيتم تنصيبها عند اعادة بناء خادم الويب :] , كن منتبه و مستعدا , نختار exhaustive options list , لأنتقال الي قائمة المودلات المطولة



الان نقوم بتفعيل الاضافات التالية :] , cache , disk cache ,


ثم ننزل الي الاسفل , و نفعل file cache




ثم ننزل الي الاسفل
و نفعل eaccelerator, ioncube loder , mod bandwidth ,mod perl , mod qos , mod security , suhosin , zend


ثم ننزل الي الأسفل
نفعل gd,mbstring , mysql , mysql" improved" extension , pdo,pdo mysql , safe php cgi , system timezone , ثم next step



ثم save and build ,,,,,, ثم yes



ثم i understand



الان بدنا نستني العم ايزي اباتشي لا يخلص بدة من 10 - 15 دقيقة



بعد الانتهاء سيتم ترقيع الاباتشي من الsymlink و و كل يوزر لن يتخطي حدوده ابدا ابدا ,

الان دعونا نتطرق الي حماية الابتشي و منع البيرل , مع انة تم اختيار موديل في اعدة بناء الابتشي لمنع تشغيله ولكن افضل تخصيص اعدادت الاباتشي ,

قم بتحرير ملف httpd.conf , عن طريق هذا الأمر
رمز Code:
كود:
 nano /usr/local/apache/conf/httpd.conf
كود:

ثم قم بالبحث عن <Directory "/"> , عن طريق ctrl +w , ثم ابحث عن <Directory "/"> , ستجدة بهذا الشكل


رمز Code:
كود:
<Directory "/">
    Options All
    AllowOverride All
</Directory>
كود:

قم بحذفه و استبدله بي

رمز Code:
كود:
<Directory "/">
Options -ExecCGI -FollowSymLinks -Includes IncludesNOEXEC Indexes -MultiViews SymLinksIfOwnerMatch
AllowOverride AuthConfig Indexes Limit FileInfo
</Directory>
كود:

ثم قم بالبحث عن
رمز Code:
كود:
AddHandler cgi-script .cgi .pl .plx .ppl .perl
كود:

ضع قبلها هاش تاج

لتصبح بهذا الشكل
رمز Code:
كود:
#AddHandler cgi-script .cgi .pl .plx .ppl .perl
كود:

ثم قم بحفظ التعديلات علي الملف عن طريق ctrl +x , ثم y

ثم , لحفظ التعديلات اذا قمت باعدة بناء للاباتشي
رمز Code:
كود:
/usr/local/cpanel/bin/apache_conf_distiller --update
كود:

ثم اعادة تشغيل للأباتشي سيرفر .

رمز Code:
كود:
service httpd restart
كود:

الأن نعطي البيرل و البايثون تصريح لروت فقط
رمز Code:
كود:
chown root:root `which perl`
chown root:root `which python`
كود:

لمن يستخدم هادنر
suphp ,


سنقوم بتطرق الي منع تخطي اعدادت php.ini الاساسية

قم بتعديل الملف التالي
رمز Code:
كود:
nano /usr/local/apache/conf/php.conf
كود:

ثم ضع بأخر الملف الكود التالي , ثم قم بحفظ التعديل علي الملف .
رمز Code:
كود:
<IfModule mod_suphp.c>
   suPHP_ConfigPath /usr/local/lib
</IfModule> 

suPHP_ConfigPath /usr/local/lib/php.ini
كود:

ثم
حرر الملف التالي
رمز Code:
كود:
nano /opt/suphp/etc/suphp.conf
كود:

ثم ابحث عن
رمز Code:
كود:
;application/x-httpd-php5=/usr/local/lib/
كود:

و قم بحذف ;
لتصبح بشكل التالي

رمز Code:
كود:
application/x-httpd-php5=/usr/local/lib/
كود:

ثم قم باعادة تشغل الاباتشي سيرفر

رمز Code:
كود:
service httpd restart
كود:

تصاريح مهمة لنظام بفضل وضعها :] + يجب تركيب برنامج les الخاص بحماية ملفات النظام من العبث (موجود شرح له ابحثو عنة)

رمز Code:
كود:
chmod 700 /bin/dmesg
chmod 700 /bin/mount
chmod 700 /bin/rpm
chmod 700 /usr/bin/write
chmod 700 /usr/bin/talk
chmod 700 /usr/bin/ipcrm
chmod 700 /usr/bin/ipcs
chmod 700 /usr/bin/free
chmod 700 /usr/bin/locate
chmod 700 /usr/bin/wall
chmod 700 /usr/bin/finger
chmod 700 /sbin/arp
chmod 700 /sbin/ifconfig
chmod 700 /usr/sbin/repquota
chmod 700 /usr/sbin/tcpdump
chmod 700 /usr/bin/wget
chmod 700 /usr/bin/lynx
chmod 700 /usr/lib/bcc/bcc-cc1
chmod 700 /usr/bin/perlcc
chmod 700 /usr/bin/bcc
chmod 700 /usr/bin/cc
chmod 700 /usr/bin/gcc
chmod 700 /usr/bin/who
chmod 700 /usr/bin/w
chmod 711 /
chmod 711 /home
chmod 711 /etc
chmod 711 /var
chmod 711 /usr/etc
chmod 711 /usr/local/etc
chmod 711 /var/log
chmod 711 /sbin
chmod 711 /usr/sbin
chmod 711 /usr/local/sbin
chmod 0755 /usr/bin/
chmod 700 /usr/libexec/openssh/sftp-server


cd /bin  
chmod 755 bash  
chmod 755 pwd  
chmod 755 sh
كود:

و هكذا انتهي درسنا من ينقل الدرس أرجوا منه ذكر المصدر