السلام عليكم ورحمة الله وبركاته
درس حماية جديد وانا شخصياً شايفه مهم جدا .. وهو تأمين مسار tmp بالاختيارات nodev, nosuid,noexec
مسارات التخزين المؤقتة مثل /tmpاو /var/tmp او /dev/shm دول اللى بيوفروا مساحة لملفات الاختراق اللى بتوفر للمخترق المنفذ اللى يمر منه للسيرفر .
*حماية خاصة ل /tmp وجعله كملف نظام يخلى انه من الصعب جدا اختراقه
رمز PHP:
mkdir -p /root/images/
dd if=/dev/zero of=/root/images/tmpfile.bin bs=1 count=0 seek=4G
ثم
رمز PHP:
mkfs.ext4 /root/images/tmpfile.bin
رمز PHP:
mount -o loop,rw,nodev,nosuid,noexec /root/images/tmpfile.bin /tmp
chmod 1777 /tmp
الخطوة اللى فاتت .. عملنا ملف جديد اصبح ملف نظام واضفنا له الاختيارات الثلاثة
ننفذ التالى
رمز PHP:
mount -o rw,noexec,nosuid,nodev,bind /tmp /var/tmp
رمز PHP:
vi /etc/fstab
هانعدل على ال /tmp كالتالى
رمز PHP:
/root/images/tmpfile.bin /tmp ext4 rw,noexec,nosuid,nodev,bind 0 0
نضيف ايضا
رمز PHP:
/tmp /var/tmp none rw,noexec,nosuid,nodev,bind 0 0
نبحث عن السطر الخاص ب/tmp
رمز PHP:
UUID=0aef28b9-3d11-4ab4-a0d4-d53d7b4d3aa4 /tmp ext4 defaults 1 2
نضيف فى الاختيارات الخاصة اللى قولنا عليها يكون كالتالى
رمز PHP:
UUID=0aef28b9-3d11-4ab4-a0d4-d53d7b4d3aa4 /tmp ext4 defaults,nodev,nosuid,noexec 1 2
نضيفهم ايضا ل /dev/shm
نبحث عن
رمز PHP:
tmpfs /dev/shm tmpfs defaults 0 0
نغير انها تكون
رمز PHP:
tmpfs /dev/shm tmpfs defaults,nodev,nosuid,noexec 0 0
ايضا نحمى التمب ونضيف السطر التالى
رمز PHP:
/tmp /var/tmp none rw,noexec,nosuid,nodev,bind 0 0
نحفظ ونقفل الملف
دلوقتى نفعل الاختيارات من غير مانعمل ريبوت للسيرفر نفذ التالى :
رمز PHP:
mount -o rw,noexec,nosuid,nodev,bind /tmp/ /var/tmp/
mount -o remount,noexec,nosuid,nodev /tmp
mount -o remount,noexec,nosuid,nodev /dev/shm
ونأكد اللى عملناه بالتالى
رمز PHP:
mount
mount | less
mount | egrep --color -w '^(tmpfs|/tmp)|/tmp'
بعض النقاط :
nodev - عدم ترجمة الرموز اوحجب الادوات الخاصة بملف النظام
noexec - عدم السماح بتنفيذ اى مر مباشرة بملف النظام المنشأ
nosuid - الغاء فاعلية محدد المستخدم او المجموعة
لكم تحياتى
ليست هناك تعليقات:
إرسال تعليق