قم بإنشاء جدار الحماية الخاص بك باستخدام iptables باستخدام هذا البرنامج النصي البسيط الجزء 2

جدار الحماية_ (الشبكات)

مرحبًا بالجميع ، أقدم لكم اليوم الجزء الثاني من هذه السلسلة من البرامج التعليمية حول جدار الحماية باستخدام iptables ، بسيط جدًا بحيث يمكنك النسخ واللصق ، أعتقد أنه في نهاية اليوم هو ما يبحث عنه جميع المبتدئين أو حتى الأكثر خبرة ، لماذا علينا إعادة اختراع العجلة 100 مرة ، أليس كذلك؟

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

دعنا نتحدث قليلاً عن "إيجابيات وسلبيات" إنشاء سياسات Output Drop ، والتي يمكنني أن أخبرك بها بشكل أساسي أنها تجعل العمل مملاً ومرهقًا ، ولكن المحترف هو أنه على مستوى الشبكة سيكون لديك أمان أكثر مما لو جلست للتفكير في السياسات وتصميمها وتخطيطها جيدًا ، سيكون لديك خادم أكثر أمانًا.

لكي لا تتجول أو تخرج عن الموضوع ، سأشرح بسرعة بمثال كيف يجب أن تكون قواعدك أكثر أو أقل

iptables -A OUTPUT -o eth0 -p tcp –sport 80 -m state-state ESTABLISHED -j ACCEPT
-A لأننا أضفنا القاعدة
-o يشير إلى حركة المرور الصادرة ، ثم يتم وضع الواجهة إذا لم يتم تحديدها لأنها تطابقها جميعًا.
-رياضة ميناء المنشأ ، يلعب دورًا مهمًا لأننا في معظم الحالات لا نعرف من أي منفذ سيقدمون الطلب ، إذا كان الأمر كذلك فيمكننا استخدام dport
- ميناء منفذ الوجهة ، عندما نعلم مقدمًا على وجه التحديد أن الاتصال الصادر يجب أن ينتقل فقط إلى منفذ معين. يجب أن يكون لشيء دقيق للغاية مثل خادم mysql البعيد على سبيل المثال.
-م الدولة- الدولة أنشئت هذا بالفعل زينة للحفاظ على الاتصالات القائمة بالفعل ، يمكننا الخوض فيها في منشور مستقبلي
-d للحديث عن الوجهة ، إذا كان من الممكن تحديدها ، على سبيل المثال ssh إلى جهاز معين بواسطة عنوان IP الخاص به

#!/bin/bash

# نحن نقوم بتنظيف جداول iptables -F iptables -X # نقوم بتنظيف NAT iptables -t nat -F iptables -t nat -X # mangle table لأشياء مثل PPPoE و PPP و ATM iptables -t mangle -F iptables -t mangle -X # Policies أعتقد أن هذه هي أفضل طريقة للمبتدئين و # لا تزال غير سيئة ، سأشرح المخرجات كلها لأنها اتصالات صادرة # ، ومدخلات نتجاهل كل شيء ، ولا يجب إعادة توجيه أي خادم. iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP #Intranet LAN intranet = eth0 #Extranet wan extranet = eth1 # Keep state. كل ما هو متصل بالفعل (تم إنشاؤه) نتركه مثل iptables -A INPUT -m state - الحالة التي تم تأسيسها ، ذات الصلة -j ACCEPT
iptables -A OUTPUT -m state - الحالة المنشأة ، ذات الصلة -j قبول
# جهاز حلقة. iptables -A INPUT -i lo -j قبول
# خرج استرجاع Iptables -A OUTPUT -o lo -j ACCEPT

# http ، https ، لا نحدد الواجهة لأن # نريدها أن تكون كلها iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# مغادرة
# http ، https ، لا نحدد الواجهة لأن
# نريده للجميع ولكن إذا حددنا منفذ الإخراج
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT iptables -A OUTPUT -p tcp --sport 443 -j ACCEPT

# ssh داخليًا فقط ومن هذا النطاق من iptables -A INPUT -p tcp -s 192.168.xx / 24 -i $ intranet -dport 7659 -j ACCEPT
# output # ssh داخليًا فقط ومن هذا النطاق من IP
iptables -A OUTPUT -p tcp -d 192.168.xx / 24 -o $ إنترانت - سبورت 7659 -j ACCEPT
# المراقبة على سبيل المثال إذا كان لديهم zabbix أو iptables لخدمة snmp أخرى -A INPUT -p tcp -s 192.168.1.1 -i $ intranet --dport 10050 -j ACCEPT
# مغادرة
# المراقبة على سبيل المثال إذا كان لديهم zabbix أو خدمة snmp أخرى
iptables -A OUTPUT -p tcp -d 192.168.1.1 -o $ إنترانت - ميناء 10050 -j ACCEPT

# icmp ، ping good هو قرارك iptables -A INPUT -p icmp -s 192.168.xx / 24 -i $ intranet -j ACCEPT
# مغادرة
# icmp ، ping جيد هو قرارك
iptables -A OUTPUT -p icmp -d 192.168.xx / 24 -o $ إنترانت -j ACCEPT

#mysql مع postgres هو المنفذ 5432 iptables -A INPUT -p tcp -s 192.168.xx --sport 3306 -i $ intranet -j ACCEPT
# output - سؤال طرحه المستخدم أيضًا لإنشاء خادم قاعدة # محدد جدًا: 192.168.1.2 mysql: 192.168.1.3
#mysql مع postgres هو المنفذ 5432
iptables -A OUTPUT -p tcp -s 192.168.1.2 -d 192.168.1.3 -dport 3306 -o $ intranet -j ACCEPT

#sendmail bueeeh إذا كنت تريد إرسال بعض البريد #iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT # Anti-SPOOFING 09/07/2014 # SERVER_IP = "190.xxx" # عنوان IP للخادم - عنوان wan ip الحقيقي الخاص بك LAN_RANGE server = "192.168.xx / 21" # نطاق LAN لشبكتك أو شبكة vlan # IP الخاصة بك والتي يجب ألا تدخل الشبكة الخارجية أبدًا ، فهي تستخدم القليل من # المنطق إذا كانت لدينا واجهة WAN خالصة ، فلا يجب إدخال أي حركة مرور اكتب LAN من خلال تلك الواجهة SPOOF_IPS = "0.0.0.0/8 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16" # الإجراء الافتراضي - يتم تنفيذه عندما تتطابق أي قاعدة مع ACTION = " DROP "# Packets بنفس عنوان IP لخادمي من خلال wan iptables -A INPUT -i $ extranet -s $ SERVER_IP -j $ ACTION
iptables -A OUTPUT -o $ extranet -s $ SERVER_IP -j $ ACTION

# حزم مع نطاق LAN لشبكة wan ، أضعها على هذا النحو في حال كان لديك # أي شبكة معينة ، ولكن هذا زائد عن الحاجة مع القاعدة التالية داخل "for" loop iptables -A INPUT -i $ extranet -s $ LAN_RANGE -j عمل $
iptables -A الإخراج -o $ إكسترانت -s $ LAN_RANGE -j $ ACTION

## لا يسمح wan لجميع شبكات SPOOF للملكية الفكرية في $ SPOOF_IPS do iptables -A INPUT -i $ extranet -s $ ip -j $ ACTION
iptables -A الإخراج -o $ إكسترانت -s $ ip -j $ ACTION
فعل

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


اترك تعليقك

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

*

*

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