كيفية تأمين خدمات الشبكة باستخدام TCP Wrappers في Linux

سنشرح في هذه المقالة ماهية أغلفة TCP وكيفية تكوينها تقييد الوصول إلى خدمات الشبكة يعمل على خادم Linux. قبل أن نبدأ ، ومع ذلك ، يجب أن نوضح أن استخدام أغلفة TCP لا يلغي الحاجة إلى ملف تكوين جدار الحماية.

في هذا الصدد ، يمكنك التفكير في هذه الأداة على أنها ملف قائمة التحكم في الوصول على أساس المضيف، وليس مثل إجراء أمني نهائي لنظامك. باستخدام جدار الحماية وأغلفة TCP ، بدلاً من تفضيل أحدهما على الآخر ، سوف تتأكد من عدم ترك الخادم الخاص بك بنقطة فشل واحدة.

فهم المضيفين. السماح والمضيفين

عندما يصل طلب الشبكة إلى الخادم الخاص بك ، تستخدم برامج تضمين TCP المضيفين و المضيفين (بهذا الترتيب) لتحديد ما إذا كان ينبغي السماح للعميل باستخدام خدمة معينة.

بشكل افتراضي ، تكون هذه الملفات فارغة أو تم التعليق عليها بالكامل أو غير موجودة. وبالتالي ، يُسمح بكل شيء من خلال طبقة أغلفة TCP ويترك نظامك للاعتماد على جدار الحماية لتوفير الحماية الكاملة. نظرًا لأن هذا غير مرغوب فيه ، نظرًا للسبب الذي ذكرناه في المقدمة ، تأكد من وجود كلا الملفين:

# ls -l /etc/hosts.allow /etc/hosts.deny. 

بنية كلا الملفين هي نفسها:

:  [: : : ...]

أين،

  1. خدمات هي قائمة خدمات مفصولة بفواصل يجب تطبيق القاعدة الحالية عليها.
  2. العملاء تمثل قائمة أسماء المضيف المفصولة بفواصل أو عناوين IP المتأثرة بالقاعدة. يتم قبول أحرف البدل التالية:
    1. الكل يطابق كل شيء. ينطبق على كل من العملاء والخدمات.
    2. محلي مباريات المضيفين بدون فترة زمنية في FQDN، مثل localhost.
    3. معروف يشير إلى حالة يكون فيها اسم المضيف أو عنوان المضيف أو المستخدم معروفًا.
    4. مجهول هو عكس معروف.
    5. المذعور يتسبب في إسقاط الاتصال إذا كانت عمليات بحث DNS العكسية (أولاً على عنوان IP لتحديد اسم المضيف ، ثم على اسم المضيف للحصول على عناوين IP) ترجع عنوانًا مختلفًا في كل حالة.
  3. أخيرًا ، تشير القائمة الاختيارية للإجراءات المفصولة بنقطتين إلى ما يجب أن يحدث عند تشغيل قاعدة معينة.

قد ترغب في أن تضع في اعتبارك أن القاعدة التي تسمح بالوصول إلى خدمة معينة في /etc/hosts.allow الأسبقية على القاعدة في /etc/hosts.deny تحريمه. بالإضافة إلى ذلك ، إذا تم تطبيق قاعدتين على نفس الخدمة ، فسيتم مراعاة القاعدة الأولى فقط.

لسوء الحظ ، لا تدعم جميع خدمات الشبكة استخدام أغلفة TCP. لتحديد ما إذا كانت خدمة معينة تدعمهم ، قم بما يلي:

# ldd / المسار / إلى / ثنائي | grep libwrap. 

إذا قام الأمر أعلاه بإرجاع الإخراج ، فيمكن أن يكون ملفوفًا عبر بروتوكول TCP. مثال على ذلك sshd و vsftpd، كما هو موضح هنا:

ابحث عن الخدمات المدعومة في TCP Wrapper
ابحث عن الخدمات المدعومة في TCP Wrapper

كيفية استخدام TCP Wrappers لتقييد الوصول إلى الخدمات

كما تقوم بتحرير /etc/hosts.allow و /etc/hosts.deny، تأكد من إضافة سطر جديد بالضغط على يدخل بعد آخر سطر غير فارغ.

ل السماح بالوصول إلى SSH و FTP فقط ل 192.168.0.102 و مضيف محلي ورفض كل الآخرين ، أضف هذين السطرين /etc/hosts.deny:

sshd و vsftpd: الكل. الكل: الكل. 

والسطر التالي في /etc/hosts.allow:

sshd ، vsftpd: 192.168.0.102 ، محلي. 

أغلفة TCP - ملف hosts.deny

# # hosts.deny يحتوي هذا الملف على قواعد الوصول المستخدمة. # رفض الاتصالات بخدمات الشبكة التي تستخدم إما. # مكتبة tcp_wrappers أو التي كانت. # بدأ من خلال xinetd الممكّن لـ tcp_wrappers. # # يمكن أيضًا إعداد القواعد في هذا الملف بتنسيق. # /etc/hosts.allow مع خيار "رفض" بدلاً من ذلك. # # شاهد 'man 5 hosts_options' و 'man 5 hosts_access' # للحصول على معلومات حول بناء جملة القاعدة. # انظر "man tcpd" للحصول على معلومات حول tcp_wrappers. #sshd و vsftpd: الكل. الكل: الكل

أغلفة TCP - ملف hosts.allow

# # hosts.allow يحتوي هذا الملف على قواعد الوصول المستخدمة. # السماح أو رفض الاتصالات بخدمات الشبكة التي. # إما استخدام مكتبة tcp_wrappers أو التي تم استخدامها. # بدأ من خلال xinetd الممكّن لـ tcp_wrappers. # # شاهد 'man 5 hosts_options' و 'man 5 hosts_access' # للحصول على معلومات حول بناء جملة القاعدة. # انظر "man tcpd" للحصول على معلومات حول tcp_wrappers. #sshd ، vsftpd: 192.168.0.102 ، محلي

تحدث هذه التغييرات على الفور دون الحاجة إلى إعادة التشغيل.

في الصورة التالية يمكنك أن ترى تأثير إزالة الكلمة محلي من السطر الأخير: سيصبح خادم FTP غير متاح لـ مضيف محلي. بعد أن نضيف حرف البدل مرة أخرى ، تصبح الخدمة متاحة مرة أخرى.

تحقق من الوصول إلى FTP
تحقق من الوصول إلى FTP

للسماح لجميع الخدمات للمضيفين حيث يحتوي الاسم على example.com، أضف هذا السطر المضيفين:

الكل: .example.com. 

ولرفض الوصول إلى vsftpd للآلات الموجودة على 10.0.1.0/24، أضف هذا السطر المضيفين:

vsftpd: 10.0.1. 

في المثالين الأخيرين ، لاحظ ملف نقطة في بداية ونهاية قائمة العملاء. يتم استخدامه للإشارة إلى "جميع المضيفين و / أو العملاء حيث يحتوي الاسم أو عنوان IP على هذه السلسلة".

وكانت هذه المادة مفيدة لك؟ هل لديك أي أسئلة او تعليقات؟ لا تتردد في مراسلتنا باستخدام نموذج التعليقات أدناه.

Teachs.ru