المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : افتراضي الحماية من خلال الـ TCP Wrappers



loulou ange
11-02-2013, بتوقيت غرينيتش 02:01 AM
السلام عليكم ورحمة الله وبركاتة


بعد التحية الكريمة للجميع، أردت اليوم التحدث عن شيئ لم أجد له شروحات قوية باللغة العربية، رغم أهميته إلى جميع العاملين فى إدارة خوادم اللينكس، ألا وهو الحماية عن طريق إستخدام الـ TCP Wrappers.

فى البداية أحب أن أضيف ملحوظة هامه قد تغيب عنا وهى، أن مُعظم الخدمات الموجوده فى نظام الـ RedHat تكون مربوطة ببرنامج يسمى libwrap (http://en.wikipedia.org/wiki/Libwrap)، وهو البرنامج المسؤول عن عملية الـ TCP Wrappers، ففى حالة قدوم طلب إستخدام خدمة من خدمات الشبكة من قبل أحد الـ hosts، فإن ذلك البرنامج يقوم بعمله (كما سوف نعرف لاحقًا) ويسمح أو لا يسمح بإستخدام تلك الخدمة من قبل أحد الـ hosts.

ملحوظة :
لمعرفة أى الخدمات مُرتبطة بـ libwrap نقوم بتنفيذ الأمر:

رمز PHP:

<code style="white-space:nowrap"> <code> ldd /usr/sbin/vsftpd | grep libwrap
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f6a54618000)
</code> </code>

بالطبع يمكن استبدال خدمة الـ vsftpd بأى خدمة أخرى (مثل خدمة sshd)، فإذا كانت النتيجة كما مُوضح أعلاه، فدل ذلك على أن تلك الخدمة مرتبطة بخدمة الـ TCP Wrappers، وإذا كانت النتيجة غير ذلك، فدل ذلك على العكس، وحتى نفهم الموضوع أكثر دعونا نستعرض تلك القصة.

أنا عامل فى شركة X، لدى جهاز فى المكتب الخاص بى (يُمثل العميل، أو لنقل الـ host)، أردت إستخدام خدمة من خدمات الخادم server الرئيسى الموجود فى الشركة (ولتكن خدمة الـ sshd)، ففى البداية قمت بعمل طلب (request) للخدمة، فسمح لى الجدار النارى على اجتيازة، وذلك لوجود قاعدة فى ملف إعداداته تسمح بذلك، وبعد ذلك بما أن تلك الخدمة مُرتبطة بـ libwrap، فبالتالى يحدث الآتى:

يوجد عندنا ملفين هامين للغاية، تستخدمهم خدمة الـ TCP Wrappers ألا وهم:
رمز PHP:

<code style="white-space:nowrap"> <code> /etc/hosts.allow
/etc/hosts.deny
</code> </code>

الآن دعونا نستكمل ....، بعد إجتياز الطلب للجدار النارى، تقوم الخدمة بفحص الملف الأول، فإذا كان سمح بأن أقوم بإستخدام خدمة الـ sshd جعلنى أمر إليها وأستخدمها، وإن كان ذلك الملف لا يحتوى على أى شيئ يخصنى (يخص الـ IP أو الـ hostname، الخاص بى)، ينتقل إلى الملف الثانى، فإذا كان الـ IP الخاص بى ضمن الـ IPs الممنوعة بإستخدام تلك الخدمة (sshd)، لم أستطع إستخدامها، وأخيرًا فى حالة عدم وجود الـ IP الخاص بى فى كلا الملفين، سُمح لى بإستخدام الخدمة، وهنا نكون قد وصل إلينا فائدة تلك الخدمة.

طريقة تهيئة الملفين hosts.allow, hosts.deny :
مثال1:
إذا أردت أن أسمح بجميع الـ hosts على الـ subnet 192.168.1 بإستخدام خدمة الـ sshd
أقوم بكتابة تلك القاعدة فى ملف الـ hosts.allow

رمز PHP:

<code style="white-space:nowrap"> <code> sshd : 192.168.1.
</code> </code>

مثال2:
إذا أردت أن أسمح بجميع الـ hosts على الـ subnet 192.168.1 بإستخدام خدمة الـ sshd، ما عدا 192.168.1.50
رمز PHP:

<code style="white-space:nowrap"> <code> sshd : 192.168.1. EXCEPT 192.168.1.50
</code> </code>

ملحوظة هامة:
إذا وُجدت قاعدة معينة فى ملف الـ hosts.allow تسمح بإستخدام خدمة ما، ووجد فى ننفس الوقت قاعدة تعارضها (لا تسمح) فل ملف الـ hosts.deny، فإن القاعدة الموجودة فى ملف الرفض تُهمل، ويتم العمل بالقاعدة الموجودة فى الملف الأول.

ملحوظة أخرى:
لا يمكن الإستغناء عن الـ Firewall والـ SElinux والإعتماد فقط على الـ TCP Wrappers، لأنه من الممكن خداع الـ TCP Wrappers.





منقوول ..






https://fbcdn-sphotos-d-a.akamaihd.net/hphotos-ak-ash4/482113_236967293114455_1193518507_n.png (http://www.dzbatna.com)
©المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى (http://www.dzbatna.com)©

استعمل مربع البحث في الاسفل لمزيد من المواضيع


سريع للبحث عن مواضيع في المنتدى