تأمين شبكتك باستخدام Iptables - Proxy - NAT - IDS: الجزء الأول

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

يستند هذا المحتوى إلى كتاب "Linux - إدارة النظام وتشغيل خدمات الشبكة" - سيباستيان بوبيلير

التوجيه والتصفية

للتحدث وفهم التوجيه ، يمكننا أولاً تحديد وظيفة جهاز التوجيه؟ لهذا يمكننا القول أن جهاز التوجيه ، بالإضافة إلى إنشاء شبكة والسماح بالاتصال بأجهزة أخرى (مع العلم أنه يمكننا القيام بذلك باستخدام AP أو Switch أو Hub أو غيرها) لديه القدرة على توصيل شبكتين مختلفتين ببعضهما البعض.

جهاز التوجيه

كما نرى في الصورة هناك شبكة محلية "10.0.1.0" تم إنشاؤها بواسطة جهاز التوجيه ، وتصل إلى إحدى واجهتيها. ثم يكون لجهاز التوجيه على واجهته الأخرى شبكة أخرى ، مع IP العام الخاص به الذي يمكنه الاتصال بالإنترنت. تتمثل وظيفة التوجيه في الأساس في العمل كوسيط بين هاتين الشبكتين حتى يتمكنوا من الاتصال.

لينكس كجهاز توجيه.

بطبيعة الحال ، فإن Linux Kernel لديه بالفعل القدرة على القيام "بإعادة التوجيه" ، ولكن يتم تعطيله افتراضيًا ، لذلك إذا أردنا أن يقوم Linux الخاص بنا بهذا العمل ، يجب أن ننتقل إلى الملف.

/proc/sys/net/ipv4/ip_forward

هناك سنجد أنه ملف يحتوي على صفر "0" فقط ، ما يجب علينا فعله هو تغييره إلى "1" واحد لتفعيل هذا السلوك. يتم حذف هذا للأسف عند إعادة تشغيل الكمبيوتر ، لتركه مفعلًا افتراضيًا ، يجب استخدام الأمر:

sysctl net.ipv4.ip_forward=1

أو قم بتحريره مباشرة في الملف /etc/sysctl.conf. اعتمادًا على التوزيع ، يمكن أن يكون هذا التكوين أيضًا في ملف بتنسيق  /etc/sysctl.d/.

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

route -n

o

netstat -nr

كلا الأمرين يجب أن يعيد نفس الشيء.

لقطة شاشة من 2014-09-30 18:23:06

بشكل عام ، هذا التكوين كافٍ لكي يعمل Linux الخاص بك كبوابة ويمكن لأجهزة الكمبيوتر الأخرى التنقل عبر جهاز الكمبيوتر الخاص بنا. الآن ، إذا أردنا أن يقوم Linux الخاص بنا بتوصيل شبكتين أو أكثر ، سواء كانت محلية أم لا ، على سبيل المثال ، يمكننا الاستفادة من المسارات الثابتة.

لنفترض أن نظام Linux الخاص بي يحتوي على واجهتين للشبكة ، الأولى بها اتصال بالإنترنت وشبكتها 172.26.0.0 والثانية (10.0.0.0) بها بعض أجهزة الكمبيوتر من شبكة محلية أخرى. إذا أردنا توجيه الحزم إلى تلك الشبكة الأخرى ، فيمكننا استخدام:

route add -net 10.0.0.0 netmask 255.0.0.0 gw 172.26.0.8

بشكل عام هو:

route add -net REDDESTINO netmask MASCARA gw IPDELLINUX

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

لقطة شاشة من 2014-09-30 18:31:35

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

route del -net 10.0.0.0 netmask 255.0.0.0

iptables.

تُستخدم iptables أساسًا لتصفية الحزم الصادرة والواردة أو غيرها ، مما يجعلها أداة رائعة لإدارة حركة مرور الشبكة. حسنًا ، iptables ، تمامًا كما يسمح لنا بتصفية حركة المرور على نفس الكمبيوتر ، فإنه يسمح لنا أيضًا بتصفية حركة المرور التي تمر عبره. (إعادة توجيه). يمكن تقسيم Iptables إلى جداول ، وسلاسل ، وإجراءات.

  • المجالس:  يمكن أن يكون هناك طاولتان ، منقي، لتصفية الحزم و  نات لترجمة العناوين ، أي الانتقال من شبكة إلى أخرى.
  • السلاسل: تشير السلسلة إلى نوع حركة المرور التي نريد تصفيتها أو السباحة فيها ، أي حركة المرور التي سنطبق الجداول عليها؟ ويمكن أن يكونوا:  INPUT: حركة المرور الواردة ، انتاج: حركة المرور الصادرة أو إلى الأمام: حركة المرور التي تمر عبرها ، ولكنها ليست اتصالها الخاص.
  • قد تظهر أيضًا نشر ، الذي يستخدم لمعالجة الحزمة بطريقة معينة بعد توجيهها.
  • الإجراءات: الإجراءات هي في الأساس الإجراء الذي يتعين القيام به مع السلسلة. يمكن أن يكون هذا العمل قطرة، هذا فقط يدمر تلك الحركة أو تقبل. التي تسمح لحركة المرور للقيام بمثل هذا الإجراء.

يتم حفظ قواعد IPTABLES وتنفيذها بالترتيب الذي تم إنشاؤه بها ، وإذا حذفت القاعدة قاعدة سابقة ، فسيتم دائمًا تطبيق القاعدة الأخيرة بالترتيب.

نُهج جدار الحماية.

بشكل عام ، تعمل جدران الحماية بطريقتين:

  1. السماح لجميع حركات المرور باستثناء ، أو
  2. لا تسمح بأي حركة مرور باستثناء ...

لتطبيق السياسات استخدام IPTABLES - سلسلة الإجراءات P

حيث تمثل السلسلة نوع حركة المرور (INPUT ، OUTPUT ، FORWARD ، POSTROUTING ...) والإجراء هو DROP أو ACCEPT.

لنلقي نظرة على مثال.

لقطة شاشة من 2014-09-30 18:53:23

هنا نرى أنه في البداية تمكنت من إجراء اختبار ping ، ثم أخبرت IPTABLES أن جميع حركات مرور الإخراج كانت DROP أو غير مسموح بها. ثم أخبرت IPTABLES بقبولها.

إذا كنا بصدد بناء جدار حماية من البداية ، فيجب علينا دائمًا تطبيق قواعد (لا تسمح بأي حركة مرور باستثناء ... لهذا ، فإننا نطبق القواعد

iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP
إذا تم تطبيق هذه السياسات ، فلن يكون لديهم أي نوع من الاتصال
.

للعودة ، نكتب نفس الشيء ونستبدل DROP بـ ACCEPT.

في هذه المرحلة ، نظرًا لرفض كل حركة المرور ، نبدأ في إخبار IPTABLES الخاصة بنا عن حركة المرور التي يمكن أن تحصل عليها.

الصيغة هي:

iptables -A cadena -s ip_orgigen -d ip_destino -p protocolo --dport puerto -j acción

حيث:

سلسلة = INPUT أو OUTPUT أو إلى الأمام

الأصل_ip = أصل الحزم ، يمكن أن يكون عنوان IP واحدًا أو شبكة وفي هذه الحالة يجب علينا تحديد القناع).

عنوان الانترنت المطلوب = أين تتجه الحزم. يمكن أن يكون هذا عنوان IP واحدًا أو شبكة وفي هذه الحالة يجب علينا تحديد القناع).

بروتوكول = يشير إلى البروتوكول المستخدم بواسطة الحزم (icmp ، tcp ، udp ...)

المنفذ = ميناء الوجهة لحركة المرور.

عمل = إسقاط أو قبول.

على سبيل المثال:

لقطة شاشة من 2014-09-30 19:26:41

تطبق جميع السياسات المقيدة.

لقطة شاشة من 2014-09-30 19:27:42

ثم نضيف القواعد حتى نتمكن من الحصول على حركة مرور عبر المنفذ 80 HTTP و 443 HTTPS ، باستخدام بروتوكول TCP. ثم المنفذ 53 يتم تطبيقه على عميل DNS لحل المجالات ، وإلا فلن تقوم بالتنقل. هذا يعمل مع بروتوكول udp.

الخط:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

هذا بسبب ما يلي: عند إجراء طلب HTTP على سبيل المثال ، فإنك تتصل بالمنفذ 80 من الخادم ، لكن الخادم لإرجاع المعلومات يحتاج إلى الاتصال بك من خلال أي منفذ. (بشكل عام أكبر من 1024).

نظرًا لأن جميع منافذنا مغلقة ، فلن يتحقق ذلك ما لم نفتح جميع المنافذ أعلى من 1024 (فكرة سيئة). ما يقوله هذا هو أن كل حركة المرور الواردة القادمة من اتصال قمت بتأسيسه بنفسي مقبولة. أعني ، اتصال بدأته من حيث المبدأ.

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

آمل أن تكون قد أحببت هذه المعلومات. في المرحلة التالية سأتحدث عن NAT والوكيل والبرامج النصية لـ Firewal.


12 تعليقات ، اترك لك

اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

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

  1.   روجيليو بينتو قال

    هذا هو الأساس الذي يعتمده العديد من رواد الأعمال لتصنيع جدران الحماية الخاصة بهم ، وهذا هو السبب في وجود العديد من العلامات التجارية للجدران النارية مع نظام لينكس مضمّن في السوق ، بعضها جيد والبعض الآخر ليس كثيرًا.

  2.   حابر قال

    مقال ممتاز. إنني أتطلع إلى الجزء الثاني.

  3.   ميلتون قال

    شرح جيد جدًا ، لقد ساعدني على فهم توكيل عملي. شكرا

  4.   فاوستود قال

    مرحبا جلكمو ،

    ممتاز ، لقد أحببته حقًا ، متى سيكون الطرف الآخر متاحًا؟

    تحياتي وشكرا على المشاركة

    1.    تضمين التغريدة قال

      شكرا على التعليق.

      لقد أرسلت الجزء الآخر بالأمس ، خلال اليوم الذي أعتقد أنهم سينشرونه.

      تحية.

  5.   إسرائيل قال

    صديق مقال جيد جدًا @ Jlcmux ، لقد تعلمت معه حقًا لأنه أوضح بعض الشكوك التي كانت لدي لبعض الوقت ، بالمناسبة ، لا تمانع في مشاركة كتاب مصدر المقال ، كتاب Sébastien BOBILLIER ، حسنًا slau2s والآن انظر الجزء الثاني ، salu2s.

    1.    تضمين التغريدة قال

      مرحبا شكرا لتعليق اسرائيل.

      اتضح أن لدي الكتاب في شكل مادي. لكنني وجدت هذا الرابط في كتب جوجل. http://books.google.com.co/books?id=zxASM3ii4GYC&pg=PA356&lpg=PA356&dq=S%C3%A9bastien+BOBILLIER+Linux+%E2%80%93+Administraci%C3%B3n+del+sistema+y+explotaci%C3%B3n+de+los+servicios+de+red#v=onepage&q=

      أعتقد أنها كاملة.

  6.   ارييل قال

    مقال جيد جدًا ، أقوم بإضافة استعلام: ما فائدة استخدام لينكس كجهاز توجيه ، إن وجد ، فيما يتعلق بجهاز مخصص له؟ أم أنها فقط لممارسة الرياضة؟ أعلم أن هناك توزيعات مخصصة ولكن لا أعرف ما إذا كانت ستعمل على إنقاذ أجهزة الكمبيوتر القديمة أو توفير المزيد من المرونة في التكوين.

    1.    تضمين التغريدة قال

      حسنًا ، أعتقد أن المزايا والعيوب تعتمد على السيناريو الذي ستنفذ فيه ذلك. لماذا بالتأكيد لن تشتري UTM أو شيء من هذا القبيل لمنزلك؟ وربما لشركة صغيرة لا تستطيع تحملها أيضًا. إنه أيضًا جيد كتمرين ، حيث يساعدك على فهم كل منطق هذا ويمكنك تكوين جدار FW مخصص بشكل أفضل. بالإضافة إلى أن جميع هذه الأجهزة تقريبًا ما لديها هو نظام Embedded Linux.

      تحية.

  7.   ارييل قال

    مرحبًا ، سؤال ، هل يمكنك إنشاء واجهة "اصطناعية" في نظام التشغيل Linux لتوجيه مماثل بين الشبكات؟ (نمط تتبع الحزمة) للعمل مع الأجهزة الافتراضية؟ على سبيل المثال ، إذا كان لدي eth0 (لأن لدي بطاقة واحدة بالطبع) هل يمكنني إنشاء eth1 لإنشاء شبكة أخرى؟ مدرس جيد جدا!

    1.    إيلاف قال

      في Linux ، يمكنك بالطبع إنشاء واجهات افتراضية. إذا كان لديك eth0 ، يمكنك الحصول على eth0: 0 ، eth0: 1 ، eth0: 2 ... إلخ

  8.   تشينولوكو قال

    جيد جدا ، شكرا للمشاركة