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

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

قبل القيام بالبرنامج النصي وإظهار كيف يبدو ، دعنا نتحدث قليلاً عن NAT ومفهوم ما نريد القيام به بهذه المعدات.

NAT وسياق المثال.

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

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

نات

سنعمل على هذا مع شعار أننا نستخدم لينكس الخاص بنا كموجه / جدار ناري للانتقال إلى الإنترنت من شبكة محلية. ولكن هنا يمكن أن يظهر سيناريوهان.

  • أن نظام Linux الخاص بنا يقع بين جهاز توجيه مزود الخدمة والشبكة المحلية.

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

  • أن لينكس الخاص بنا لديه واجهة متصلة بالشبكة المحلية ومن خلال الواجهة الأخرى يتلقى مباشرة IP العام الذي يتنقل من خلاله.

هذا يعني أن نظام Linux الخاص بنا يجب أن يعمل NAT حتى تتمكن الحزم من الوصول إلى الإنترنت.

لأغراض هذا المختبر الصغير ، سنقول إن نظام Linux الخاص بنا يتلقى عنوان IP عام بشكل مباشر وبالتالي نكون قادرين على اختبار تأثيرات NAT.

للقيام بـ NAT ، نستخدم بناء الجملة

 iptables -t nat -A POSTROUTING -O eth1 -j MASQUERADE

حيث eth1 هي الواجهة التي نتلقى فيها عنوان IP العام ، أي حيث ننتقل إلى الإنترنت.

يتم استخدام MASQUERADE عندما يكون عنوان IP عامًا ولكن يمكن أن يتغير بمرور الوقت (ديناميكي). خلاف ذلك يمكننا استخدام SNAT –to-source ip

إنشاء سكربت iptables

افترض إذن أن: 172.26.0.0 هو شبكتنا المحلية و 81.2.3.4 هو عنوان IP العام الذي ننتقل من خلاله إلى الإنترنت. (هو IP ثابت). لدي واجهات eth0 (شبكة محلية)

eth1 (شبكة عامة).

يتكون أساسًا من إنشاء برنامج نصي يمكن استدعاؤه من /etc/init.d/firestop (على سبيل المثال). ومن هذا البرنامج النصي يمكننا بدء أو إيقاف أو التحقق من حالة الضبط ، تمامًا كما نفعل مع أي برنامج خفي للنظام.

افترض أن قواعد IPTABLES الخاصة بي هي:

#! / bin / bash # جدار حماية منزلي. # اسم الملف / etc / firewall_on # بواسطة Jlcmux Twitter:Jlcmux # # Basic policy. iptables -P INPOUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP #NAT لمشاركة الإنترنت من eth0 إلى eth1 iptables -t nat -A POSTROUTING -O eth1 -j SNAT - إلى المصدر 81.2.3.4
# # السماح بالاتصالات الواردة التي بدأت بواسطة iptables الخاصة بي - حالة FORWARD -m - الحالة التي تم إنشاؤها ، ذات الصلة - j ACCEPT # # iptables المرخصة لحركة المرور الصادرة - A FORWARD --i eth0 -o eth1 -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -p tcp -dport 443 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -p udp --dport 53 -j ACCEPT
دعونا لا ننسى إعطاء أذونات التنفيذ

تفسير:

يقوم البرنامج النصي بشكل أساسي بما يلي:

  1. قم أولاً بتقييد كل التنقلات والاتصالات وحركة المرور. (نُهج جدار الحماية الأساسية)
  2. ثم قم بإنشاء NAT مع الوجهة eth1. مما يشير إلى أن لدينا IP عام ثابت "81.2.3.4"
  3. يفتح المنافذ اللازمة لتلقي حزم الاتصالات التي بدأتها.
  4. يقبل حركة مرور HTTP و HTTPS و DNS الصادرة.
القواعد مخصصة لحركة FORWARD لأننا نستخدم Linux الخاص بنا كموجه ، لذلك يتم استخدام السياسات لحركة المرور التي تمر عبر Linux ، أي أنها تعمل كوسيط. هذا يعني أن نظام Linux الخاص بنا لا يمكنه التنقل أو تلقي أي بيانات مباشرة. إنه ينطبق فقط على أجهزة الكمبيوتر المتصلة به ، ولكن ليس بنفسه

إذا أردنا استخدام معداتنا للتنقل ، فيجب علينا تكرار الخطوط والتغيير إلى الأمام إلى INPUT أو OUTPUT حسب الاقتضاء.

إلغاء البرنامج النصي.

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

#! / bin / bash # جدار حماية منزلي. # اسم الملف / etc / firewall_off # بواسطة Jlcmux Twitter:Jlcmux # #Deleting iptables Rules -F # # تطبيق السياسات الافتراضية (جميع حركة المرور مقبولة) iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT

أتمتة.

الآن يجب علينا إنشاء البرنامج النصي في الداخل /الخ/init.d/ وتبدأ الخدمة تلقائيًا ويمكننا إدارتها بطريقة مريحة أكثر.

#! / bin / bash # جدار حماية منزلي. # اسم الملف /etc/init.d/ firewall # بواسطة Jlcmux Twitter:Jlcmux case $ 1 in start) / etc / firewall_on ؛؛ stop) / etc / firewall_off ؛؛ الحالة) iptables -L ؛؛ *) صدى "بناء جملة خاطئ. صالح = /etc/init.d/ بدء جدار الحماية | إيقاف | الحالة ؛؛ esac

تفسير:

هذا السيناريو الأخير الذي وضعناه /الخ/init.d/ بالاسم جدار الحماية. لذلك إذا أردنا إدارة جدار الحماية يمكننا استخدام الأمر /etc/init.d/ بدء جدار الحماية. وبنفس الطريقة يمكننا إيقافه أو رؤية الدولة.

الآن سنقوم بتحرير الملف /etc/rc.local ونضع شيئًا مثل: /etc/init.d/ بدء جدار الحماية لتبدأ بالنظام.

كذلك. هذا هو الجزء الثاني. آمل أن يجلب لك شيئًا ما. في اليوم التالي نرى الوكيل و IDS.


اترك تعليقك

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

*

*

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

  1.   صائد قال

    إذا كنت تستخدم دبيان ، فهناك حزمة في الريبو (iptables-persistent) تفعل ذلك بالضبط ، فهي تتخلص من القواعد الحالية في /etc/iptables/rules.v4 أو v6 اعتمادًا على ما تستخدمه ثم تطبقها عليك عندما ترفع النظام.

  2.   عذب الكلام قال

    من الناحية العملية ، لتنظيف تكوين جدار حماية iptables التقليدي (واستخدام NAT لن يكون كذلك من وجهة نظري) ، في معظم الحالات ، يكفي تدفق قاعدة وإعادة تعيين السياسات الافتراضية إلى "قبول".
    لكن من الناحية النظرية ، وعلى حد علمي ، بالإضافة إلى ذلك ، تحتاج أيضًا إلى مسح السلاسل غير الافتراضية وإعادة تعيين العدادات. الإجراءات التي يجب اتخاذها مع الأخذ في الاعتبار أنه بالإضافة إلى "عامل التصفية" توجد جداول أخرى ، (من الضروري قراءة الملف "/ proc / net / ip_tables_names" لهذا الغرض).

    بالمناسبة ، تقول الأرثوذكسية أن جدار الحماية يجب أن يكون موجودًا بالفعل قبل الشبكة. لا أعرف كيف يتم تحقيق ذلك في أنظمة Linux الأخرى ، ولكن في نوع Debian ، يمكن تعديل البرنامج النصي ووضعه في الدليل "/etc/network/if-pre-up.d/".

    جدار حماية جيد للجميع. 😉

  3.   NautiluS قال

    مرحبا المنشور جيد جدا لقد قرأت المجلدين كاملين.

    في انتظار التالي 🙂

  4.   مجهول قال

    سؤال من جهلي ، نواصل مع iptables ، ولكن بالنسبة للعديد من إصدارات kernel ، لدينا nftables ، وأنا أختبرها بالفعل ، والأسئلة هي ، هل nftables شيء تجريبي بالنسبة إلى iptables؟ هل سيستمر استخدام iptables لفترة أطول؟

    غراسياس.

    1.    يوكيتيرو قال

      تتضمن nftables جميع وظائف iptables و ip6tables و arptables و ebtables ، وكلها تستخدم بنية تحتية جديدة في كلٍ من مساحة kernelspace والمستخدمين ، مما يضمن أداءً أفضل ووظائف محسنة. ستحل nftables محل iptables وجميع الأدوات الأخرى المذكورة ولكن ليس في الوقت الحالي ، على الأقل حتى يكون هناك استخدام أكثر انتشارًا لـ nftables على هذا النحو.

  5.   الكسندر قال

    منشور جيد جدًا ، أردت قراءة المزيد لأنه تم شرحه جيدًا .. تحياتي شكرًا مساهمة كبيرة

  6.   أفراه قال

    مرحبا! جيد جدا كلا المنشور.
    كمساهمة يمكنك إضافة إلى النهاية في هذا الجزء:

    "سنقوم الآن بتحرير الملف /etc/rc.local ووضع شيئًا مثل: /etc/init.d/firestop start بحيث يبدأ بالنظام."

    أضف هذا إلى rc.local.

    إذا [-x /etc/init.d/ firewall] ؛ ثم
    /etc/init.d/ بدء جدار الحماية
    fi

    مما يعني أنه إذا كان "جدار الحماية" لديه أذونات تنفيذ ، فقم بتنفيذها ، إذا لم يكن كذلك.
    إذا كنت تريد عدم بدء "جدار الحماية" ، فما عليك سوى إزالة الأذونات.

    على سبيل المثال: chmod + x /etc/init.d/ firewall
    لتشغيله عند كل بدء تشغيل أو ...
    chmod -x /etc/init.d/ جدار الحماية
    لتعطيله تمامًا.

    تحيات!