مقدمة لطبقة 3 جدار الحماية MikroTik

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


مقدمة


من هو هذا المقال ل؟


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


الجزء النظري


ما هو جدار الحماية Layer3؟



لنفترض أن لديك جهاز توجيه مزود بإمكانية الوصول إلى الإنترنت وواجهتين للجسر: جسر الشبكة المحلية (ether2-ether5) و bridge-dmz (ether6-ether10).


داخل واجهة Bridge ، تعثر الأجهزة بشكل مستقل على الجيران من شبكاتها الفرعية وحزم التبادل ، ويعمل جهاز التوجيه كمحول ولا يراقب حركة المرور هذه على مستوى الشبكة (بالطبع ، يمكنك إجبارها على القيام بذلك ، ولكن دعنا نتحدث عن Layer2 Firewall في وقت آخر).


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


مخطط تدفق الحزمة


تم وصف المسار الكامل لحركة المرور في Packet Flow Diagram ، وهناك العديد من الإصدارات الرسمية (v5 ، v6 ) ، يجب أن تكون معروفة وتستخدم في العمل اليومي ، ولكن لفهم تشغيل مرشح الحزمة ، يتم تحميلها بشكل زائد ، لذلك سأشرح في إصدار خفيف الوزن.



واجهة الإدخال / الإخراج هي أي واجهة جهاز توجيه (Layer 3) (فعلية أو افتراضية). تصل الحزمة التي تنتقل من الشبكة المحلية إلى الإنترنت إلى واجهة الإدخال وتترك واجهة الإخراج. تصل الحزمة من الإنترنت إلى الشبكة المحلية أيضًا إلى واجهة الإدخال ، وتترك واجهة الإخراج. يتم دائمًا قراءة حزمة التدفق في إدخال اتجاه واحد -> الإخراج.


ميزات المصطلحات


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


ولكن في الواقع ، تنتقل الحزمة بين كتل [سلسلة + جداول] ، على سبيل المثال ، إذا قمت بقبول في كتلة [prerouting + mangle] ، ستظل حزمة النقل تتم معالجتها في [forward + mangle]. من المهم تذكر ذلك في التكوينات المعقدة باستخدام pbr و قوائم الانتظار.


تحتوي وثائق iptables على تعريفات أكثر دقة ، ولكن بكلمات بسيطة:
السلاسل مسؤولة عن مكان معالجة الحزمة وتسلسل القواعد.
تحدد الجداول الإجراءات التي يمكن تنفيذها على الحزمة.


الحزمة الأساسية التالية الخيارات



العبور



  1. تأتي الحزمة من الشبكة إلى إحدى واجهات جهاز التوجيه
  2. في سلسلة PREROUTING ، يمكن للمسؤول التأثير على مسار الحزمة: تحديد واجهة الإخراج (توجيه قاعدة السياسة) أو إعادة التوجيه إلى عنوان آخر (dst-nat).
  3. وفقًا لجدول التوجيه للحزمة ، يتم تحديد الواجهة الصادرة.
  4. سلسلة FORWARD هي مكان التصفية الرئيسي للمرور.
  5. العنصر الأخير قبل الدخول إلى الشبكة هو سلسلة POSTROUTING ، حيث يمكنك تغيير عنوان المرسل (src-nat).
  6. ذهبت الحزمة عبر الإنترنت.

واردة



  1. جاءت حزمة من الشبكة إلى إحدى واجهات جهاز التوجيه
  2. ضرب سلسلة PREROUTING.
  3. وفقًا لجدول التوجيه ، تم إرسال الحزمة للمعالجة إلى العملية المحلية.
  4. تقوم سلسلة INPUT بتصفية حركة المرور الواردة بواسطة المسؤول.
  5. تمت معالجة الحزمة بواسطة العملية المحلية.

المنتهية ولايته



  1. إنشاء إحدى عمليات الموجه حزمة ip (جديدة أو استجابة - لا يهم).
  2. وفقًا لجدول التوجيه ، يتم تعريف واجهة الإخراج للحزمة.
  3. يمكن للمسؤول تصفية حركة المرور الصادرة أو تغيير المسار في سلسلة OUTPUT.
  4. للحزمة ، يتم اتخاذ القرار النهائي على واجهة الإخراج.
  5. تقع الحزمة في POSTROUTING ، وكذلك حركة المرور العابرة .
  6. ذهبت الحزمة عبر الإنترنت.

تعقب اتصال


تحتاج أولاً إلى فهم ماهية عوامل تصفية حزم الحالة وعديمة الحالة.



مثال يفتح الكمبيوتر 192.168.100.10 اتصال tcp بالخادم 192.0.2.10. على جانب العميل ، يتم استخدام المنفذ الديناميكي 49149 ، على جانب الخادم 80. قبل استلام المحتوى ، يجب على العميل والخادم تبادل الحزم لتأسيس جلسة tcp.


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


في جهاز التوجيه ذي الحالة الفعالة ، يقوم بتحليل الحزم ، وبعد تلقي tcp syn من 192.168.100.10:49149 لـ 192.0.2.10:80 ، يعتبر هذا بداية اتصال جديد. سيتم اعتبار جميع الحزم الإضافية (في أي اتجاه) بين 192.168.100.10:49149 و 192.0.2.10:80 جزءًا من الاتصال الثابت حتى يتم إغلاق جلسة tcp أو انتهاء صلاحية أجهزة ضبط الوقت.


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


يقسم متتبع الاتصال الحزم إلى عدة أنواع:



جديد - حزمة تفتح اتصالًا ، على سبيل المثال syn ل tcp أو الحزمة الأولى في دفق UDP.
أنشئت - حزمة تتعلق اتصال معروف.
ذات صلة - الحزمة المتعلقة بالاتصال الإضافي في متعدد البروتوكولات (sip ، pptp ، ftp ، ...).
حزمة غير صالحة من اتصال غير معروف.
untracked - الحزمة لا تتبع اتصال تعقب.


تكوين اتصال تعقب
تمكين = نعم - تمكين.
تمكين = لا - تعطيل.
enabed = تم تعطيله تلقائيًا حتى تظهر قاعدة تستخدم إمكانيات conntrack في جدار الحماية. يتم استخدامه افتراضيا.



المعلمات المتبقية هي أجهزة توقيت مختلفة وعادة لا تتطلب ضبط.


يمكن للمسؤول عرض وحذف الاتصالات ، على سبيل المثال ، يبدو الاتصال بـ NAT كما يلي:



يؤثر استخدام conntrack على الأداء واستهلاك الموارد (خاصةً مع عدد كبير من الاتصالات) ، لكنه لن يعمل في معظم التكوينات ، نظرًا لأن سيكون لديك جدار حماية عديم الحالة بدون NAT.


قائمة الوظائف التابعة لتعقب الاتصال


TTL


Time To Live - حقل في رأس حزمة IP يحدد عدد أجهزة التوجيه التي يمكن أن تمر الحزمة من خلالها قبل إتلافها ، ويحمي من إعادة توجيه الحزمة التي لا تنتهي أثناء حلقات التوجيه.



عند إعادة التوجيه ، يقلل جهاز التوجيه من قيمة TTL بمقدار 1 ، إذا كان TTL = 0. في هذه الحالة ، ستصل الحزمة ذات TTL = 1 إلى العملية المحلية لجهاز التوجيه.


تستخدم بعض شركات النقل الحيل TTL لمنع استخدام أجهزة التوجيه. تستحق كل هذه القيود الزيادة في قيمة ttl في جدول mangle.


NAT


ترجمة عنوان الشبكة - تقنية لتغيير العناوين في رأس حزمة ip. مثل linux ، يعتبر NAT جزءًا من عامل تصفية الحزمة. يعمل NAT على أساس تعقب الاتصال.


في البداية ، تم تصميم NAT كحل سريع لمشكلة استنفاد عناوين IPv4 ؛ للشبكات المحلية ، اقترح استخدام شبكة فرعية من النطاقات: 10.0.0.0/8 ؛ 172.16.0.0/12 ؛ 192.168.0.0/16 وترجمتها إلى واحد (أو عدة) عناوين قابلة للتوجيه. في الواقع ، هناك عدد قليل من الشبكات الفرعية للخدمة التي يمكن استخدامها على الشبكات الخاصة وجهاز التوجيه ، من حيث المبدأ ، هو نفس كيفية NAT ، ولكن يوصى باتباع المعايير.


عمليات NAT فقط: tcp و udp و icmp وبعض البروتوكولات المتعددة من [IP] -> [جدار الحماية] -> [منفذ الخدمة]. تتم معالجة الحزمة الأولى (connection-state = new) الأولى فقط في الاتصال ، وتتم معالجة الحزم المتبقية تلقائيًا دون مشاركة جدول NAT. يمكن تتبع ذلك عن طريق التغيير في العدادات في القواعد.


يحتوي رأس الحزمة على عنوان المصدر والوجهة ، على التوالي ، وينقسم NAT إلى مصدر و NAT الوجهة.


المصدر NAT - عنوان المرسل خداع ، موجودة على الغالبية العظمى من أجهزة التوجيه المنزلية والشركات في العالم.



يسمح للعديد من الأجهزة التي تحمل عناوين "رمادية" على الشبكة المحلية بالاتصال بالإنترنت باستخدام واحد (أو عدة) عناوين حقيقية.



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


تمر حزمة الاستجابة عبر DST-NAT الضمني حيث يتم تغيير عنوان المستلم إلى محلي.


NAT الوجهة - استبدال عنوان المستلم.



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



وفقًا لحزم الحزمة ، تحدث عملية DST-NAT قبل اتخاذ قرار بشأن التوجيه في Prerouting ؛ يوجد SRC-NAT الضمني لحركة مرور الاستجابة.


NAT هي أداة قوية لإدارة حركة المرور إلى حد ما ، ولكن يجب استخدامها أخيرًا (عندما لا تكون الأدوات الأخرى مفيدة)


سلاسل (سلاسل) الأساسية والمستخدم


تتكون السلاسل من القواعد وتفرض منطق معالجة الحزم.
هناك عدة سلاسل أساسية تم تعيينها لتدفق الحزمة:
Prerouting (dstnat) - معالجة الحزمة قبل اتخاذ قرار بشأن التوجيه
إدخال - معالجة الحزم الموجهة للعمليات المحلية لجهاز التوجيه
الإخراج - معالجة حزم الحزم الناتجة عن العمليات المحلية لجهاز التوجيه
إلى الأمام - معالجة المرور المرور
Postrouting (srcnat) - معالجة حركة المرور جاهزة للإرسال إلى الواجهة


كل شيء يشبه في iptables ، ولكن تتم إعادة تسمية السلاسل في nat. ما هذا مرتبط به (على الأرجح مع نقطة اتصال أو تفريغ الأجهزة من nat) غير معروف بالنسبة لي ، لكنه لا يغير أي شيء على الإطلاق.


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


جميع سلاسل الأساس لديها إجراء افتراضي (إذا لم تتناسب الحزمة مع أي من القواعد) - قبول .


السلاسل المخصصة ضرورية لتقليل عدد القواعد التي تمر بها كل حزمة وإنشاء قواعد معقدة لمعالجة حركة المرور. جميع سلاسل المستخدم لها عمل افتراضي - عائد .



ضمن الجدول ، يمكنك إعادة توجيه القواعد من عدة سلاسل أساسية (ومستخدم) مختلفة إلى سلسلة المستخدم ، ولكن ستعود الحزمة إلى السلسلة التي جاءت منها.



الشروط والأحكام


تتكون السلاسل من قواعد ؛ كل قاعدة تتكون من شروط وإجراءات. هناك الكثير من الشروط ، ولكن لن تستخدمها جميعًا في تكوينات حقيقية. معظم الحالات يمكن أن تكون مسبوقة بـ "لا" (علامة "!"). للتزامن مع القاعدة ، يجب أن تكون الحزمة مناسبة لجميع هذه الشروط.



بعض الشروط
الشرطالوصف
عنوان srcعنوان المصدر
التوقيت الصيفي عنوانعنوان المستلم
قائمة عناوين srcعنوان المصدر مدرج.
التوقيت الصيفي قائمة العناوينعنوان المستلم مدرج
البروتوكولبروتوكول طبقة النقل
src الميناءمنفذ المصدر
التوقيت الصيفي الميناءميناء المستلم
الميناءمنفذ المصدر أو الوجهة
في واجهةالواجهة التي جاءت بها الحزمة
خارج الواجهةالواجهة التي سيتم إرسال الحزمة منها إلى الشبكة
في واجهة القائمةيتم سرد الواجهة التي جاءت الحزمة
خارج واجهة القائمةيتم سرد الواجهة التي سيتم إرسال الحزمة منها إلى الشبكة
طبقة 7 بروتوكولتحليل محتويات الحزم 10 الأولى في اتصال
المحتوىالبحث عن سلسلة معينة في دفعة واحدة
tls- المضيفبحث المضيف في tls رأس
سياسة IPSECتحقق مما إذا كانت الحزمة مطابقة لسياسة ipsec أم لا
حجم الحزمةحجم الحزمة بالبايت
src-mac-addressعنوان مصدر حزمة ماك
علامة اتصالتسمية الاتصال
علامة الحزمةتسمية الحزمة
علامة التوجيهحزمة نقطة الطريق
حالة الاتصالحالة حزمة الاتصال
أعلام TCPحزمة أعلام برنامج التعاون الفني
خيارات icmpخيارات حزمة Icmp
عشوائييتم تشغيل القاعدة (عندما تتزامن شروط أخرى) مع احتمال معين
الوقتيمكنك تحديد ساعات عمل القاعدة ، لسوء الحظ دون تحويل تاريخ
ttlقيمة الحقل ttl في الحزمة
dscpقيمة الحقل DSCP (ToS) في الحزمة
- // -- // -
مكان قبلخيار وحدة التحكم (بدون شرط) ، يسمح لك بإضافة قاعدة قبل المحدد
المعوقينخيار وحدة التحكم (وليس الشرط) ، يسمح لك بتعطيل القاعدة

ملاحظات
كعنوان src. (Dst.) ، يمكنك تحديد: IP واحد أو مجموعة من العناوين من خلال واصلة أو شبكة فرعية.
هناك حاجة إلى قوائم عناوين للجمع بين العديد من الملكية الفكرية غير المتصلة تحت نفس الاسم. على عكس ipset في netfilter ، يمكن حذف الإدخالات في قوائم MikroTik بعد فترة زمنية محددة. يمكنك عرض القوائم وإجراء تغييرات في [IP] -> [جدار الحماية] -> [قوائم العناوين].
بصفتك رقم المنفذ (منفذ أو منفذ src أو منفذ dst) ، يمكنك تحديد منفذ واحد أو عدة منافذ مفصولة بفواصل أو مجموعة من المنافذ عبر واصلة.


في MUM الأخير في MSC ، كان هناك عرض تقديمي جيد حول تأثير الظروف المختلفة على سرعة معالجة الحزم (هناك سوف تتعلم كيفية استخدام الجدول الخام لتقليل الحمل على جهاز التوجيه) ، المهتمين: التسجيل والعرض التقديمي .


جداول الإجراءات


تعتمد مجموعة الإجراءات المتاحة على الحزمة على الجدول الذي تتم معالجته فيه.

مرشح - جدول تصفية حركة المرور ، واحدة من مكانين حيث يمكنك إسقاط الحزمة.


NAT - جدول لتعديل عناوين IP والمنافذ (tpc ، udp) في رأس حزمة ip.


Mangle - جدول لتعديل الحقول الأخرى من حزمة ip وتحديد التسميات المختلفة.



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


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


RAW - جدول يسمح للحزم بتجاوز متتبع الاتصال. يتم استخدامه لمواجهة DoS وتقليل الحمل على وحدة المعالجة المركزية (على سبيل المثال ، تجاوز حركة مرور الإرسال المتعدد). يتيح لك إسقاط الحزمة.


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


الإجراءات
الجدولالعملالوصفإنهاء؟
الكلاقبلتوقف عن معالجة الحزمة ونقلها إلى كتلة تدفق Pakcet التاليةنعم
الكلسجلمعلومات حزمة السجل: في الإصدارات الحديثة ، يمكنك إضافة سجل إلى أي إجراء آخر.لا
الكلالعبورحساب عدد الحزم. تستخدم لتصحيح الأخطاءلا
الكلإضافة src إلى قائمة العناوين وإضافة dst إلى قائمة العناوينأضف عنوان المصدر (الوجهة) من الحزمة إلى القائمة المحددةلا
الكلالقفزانتقل إلى سلسلة المستخدمنعم
الكلالعودةالعودة إلى سلسلة الأم. في سلاسل قاعدة أنها تعمل مثل قبولنعم
تصفية الخامإسقاطوقف تدفق الحزمة على تدفق الحزمة وتجاهلنعم
تصفية و Preroutingفاست تراكحزمة العلم لتدفق الحزمة السريعةنعم
مرشحرفضمثل إسقاط ، ولكن يتم إرسال إشعار المرسل الحزمة (tcp أو icmp) حول الحزمة المنسدلةنعم
مرشحفخمحاكاة وجود منفذ مفتوح. يستخدم للحماية ضد DoS ، والتضليل (وأحيانًا) التصحيحنعم
NATsrc-natاستبدال عنوان المرسل إلى المحددنعم
NATحفلة تنكريةحالة خاصة من src-nat ، تستبدل عنوان المرسل بأحد العناوين من الواجهة ، وتستخدم على واجهات ديناميكية (dhcp ، vpn). لا ينصح باستخدامه في حالة وجود عدة عناوين IP على الواجهةنعم
NATنفسهحالة خاصة من src-nat. يستبدل عنوان المرسل بعنوان من النطاق المحددنعم
NATالتوقيت الصيفييستبدل عنوان المستلم بالعنوان المحددنعم
NATإعادة توجيهفي حالة dst-nat الخاصة ، يستبدل عنوان المستلم بعنوان واجهة جهاز التوجيه التي جاءت بها الحزمةنعم
NATnetmapليس بديلا ل DST- نات. تُستخدم للترجمة من شبكة إلى شبكة ، انظر الأمثلةنعم
Mangleعلامة اتصالتسمية الاتصاللا
Mangleعلامة الحزمةتسمية الحزمة المطبقة في قوائم الانتظارلا
Mangleعلامة التوجيهتم تطبيق تسمية المسار في سياسة التوجيه الأساسيةلا
Mangleتغيير ttlتحرير ttlلا
Mangleتغيير dcsp (tos)تغيير dcsp العشريلا
Mangleتغيير MSSSتغيير mss إلى برنامج التعاون الفني synلا
Mangleواضح مدواضح لا تجزئة العلملا
Mangleخيارات ipv4 الشريطمحو خيارات ipv4 المتقدمةلا
Mangleوضع الأولويةتعيين أولوية ل CoSلا
Mangleالطريقتعيين بوابة للحزمة. نسخة بسيطة من PBRلا
Mangleشم tzspقم بتغليف الحزم في udp وإرسالها إلى ip المحددلا
Mangleشم الكمبيوترالتناظرية من tzsp ، ولكن مع نوع مختلف من التغليف. في ويكي إذا استخدام الحالات مع caleaلا
Mangleالعبوربشكل افتراضي ، معظم القواعد في mangle لا تمنع الحزمة من المرور ، يمكنك تغيير هذا السلوك عن طريق تعيين passtrough = لالا
الخامnotrackلا تتبع الحزمة في تعقب الاتصالنعم

إذا كان هناك من يرغب ، فيمكنني كتابة المزيد عن FastTrack و FastPath ، لكن يجب ألا تتوقع معجزات من هذه التقنيات.


بضع كلمات عن إدارة شؤون الإعلام


هناك العديد من الاحتمالات للنظر في الحزمة أعمق قليلاً من رأس طبقة النقل:
المحتوى - يبحث عن سلسلة معينة في الحزمة.
layer7-protocol - تخزين أول 10 حزم (أو 2 كيلوبايت) من الاتصال والبحث عن إعادة التسجيل في البيانات المخزنة مؤقتًا. يؤثر عدد كبير من قواعد layer7 بشكل كبير على الأداء.
tls-host هو عنوان اسم المضيف في رأس TLS / SNI لاتصال HTTPS.


أمثلة


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


جدار الحماية الافتراضي RouterOS


تكوين آمن إلى حد ما ، ولكن في أماكن مشوشة للغاية:


/ip firewall filter #     (established, related)   (untracked)  add action=accept chain=input connection-state=established,related,untracked #    (invalid)  add action=drop chain=input connection-state=invalid #  icmp  add action=accept chain=input protocol=icmp #          add action=drop chain=input in-interface-list=!LAN #   ipsec    add action=accept chain=forward ipsec-policy=in,ipsec add action=accept chain=forward ipsec-policy=out,ipsec #          add action=fasttrack-connection chain=forward connection-state=established,related #       add action=accept chain=forward connection-state=established,related,untracked #    add action=drop chain=forward connection-state=invalid #     wan ,     dstnat (,      src-nat   dst-nat) add action=drop chain=forward connection-nat-state=!dstnat connection-state=new in-interface-list=WAN /ip firewall nat #Source NAT      ipsec,      WAN add action=masquerade chain=srcnat ipsec-policy=out,none out-interface-list=WAN 

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


الحد الأدنى لجدار الحماية الرئيسية


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


 /ip firewall filter #     (established, related)  add chain=input connection-state=established,related action=accept #  icmp  add chain=input connection-state=new protocol=icmp action=accept #      add chain=input connection-state=new in-interface-list=LAN action=accept #     add chain=input action=drop #       add chain=forward connection-state=established,related action=accept #         add chain=forward connection-state=new in-interface-list=LAN action=accept #     add chain=forward action=drop /ip firewall nat #Source NAT        WAN add chain=srcnat out-interface-list=WAN action=masquerade 

مثال DMZ


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


في الواقع ، ليس هذا هو الأمر ، وأحد خيارات DMZ هو فصل المورد الذي يجب أن توفر الوصول إليه من الإنترنت ، ويمكن تنفيذ هجوم ناجح (خادم الويب مع cms التي توجد فيها ثقوب باستمرار هو هدف جيد للمهاجمين). في حالة الاختراق ، لن يتمكن المهاجم من التأثير على المشاركين في الشبكة المحلية.



 #  /ip firewall nat add chain=dstnat dst-port=80,443 action=dst-nat to-address=192.168.200.2 /ip firewall filter #   icmp   add chain=input connection-state=established,related action=accept add chain=input protocol=icmp connection-state=new action=accept #      add chain=input in-interface=ether2-lan action=accept #    add chain=input action=drop #    add chain=forward connection-state=established,related action=accept #        add chain=forward in-interface=ether2-lan connection-state=new action=accept #    web  add chain=forward out-interface=ether3-dmz dst-address=192.168.200.2 dst-port=80,443 connection-state=new action=accept #   add chain=forward action=drop 

القاسي NAT



 /ip firewall nat add chain=dstnat dst-port=80 action=dst-nat to-address=192.168.100.2 

الموقف المعتاد هو عندما تقوم بإعادة توجيه منفذ إلى خادم على شبكة محلية ويعمل كل شيء من الخارج ، ولكن داخل الشبكة المحلية لا يمكن الوصول إلى الخادم على عنوان خارجي.


دعونا نرى ما يحدث:


  1. يرسل الكمبيوتر 192.168.100.10 طلبًا إلى 192.0.2.100
  2. ينفذ DST-NAT على جهاز التوجيه وتتم إعادة توجيه الحزمة إلى 192.168.100.2
  3. يرى الخادم أن الحزمة من 192.168.100.10 قد وصلت إليها على العنوان 192.168.100.2 وهي تستجيب من العنوان المحلي
  4. يتلقى الكمبيوتر حزمة غير متوقعة من 192.168.100.2 ويتجاهلها.

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


 /ip firewall nat #  add chain=dstnat dst-port=80 action=dst-nat to-address=192.168.100.2 # ,      add chain=srcnat src-address=192.168.100.0/24 dst-address=192.168.100.2 action=masquerade 

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


الاستخدام السليم ل netmap



Netmap هي تقنية لترجمة العناوين من شبكة فرعية إلى عناوين شبكة فرعية أخرى.
يتكون عنوان IP (في إدخال القناع) من جزأين: الشبكة (عدد البتات المحددة في قناع الشبكة الفرعية) والمضيف (البتات المتبقية). يغير Netmap جزء الشبكة من العنوان ، لكنه لا يلمس الجزء المضيف.



هناك جهازان متصلان بواسطة قناة VPN. تخدم أجهزة التوجيه الشبكات الفرعية بنفس العنوان. من الضروري جعل الوصول بين الشبكات الفرعية.


لا يمكنك الاستغناء عن العناوين الإضافية.


سوف يطرق المستخدمون من الشبكة الفرعية اليسرى إلى اليمين من خلال الشبكة الفرعية 192.168.102.0/24
سيتطرق المستخدمون من الشبكة الفرعية اليمنى إلى اليسار من خلال الشبكة الفرعية 192.168.101.0/24


التكوين على MikroTik 1.


 #     /ip route add distance=1 dst-address=192.168.102.0/24 gateway /ip firewall nat #       add action=netmap chain=srcnat dst-address=192.168.102.0/24 out-interface=ipip src-address=192.168.100.0/24 to-address=192.168.101.0/24 #       add action=netmap chain=dstnat dst-address=192.168.101.0/24 in-interface=ipip src-address=192.168.102.0/24 to-address=192.168.100.0/24 

تكوين MikroTik2 هو نفسه تقريبا:


 /ip route add distance=1 dst-address=192.168.101.0/24 gateway=10.10.10.1 /ip firewall nat add action=netmap chain=srcnat dst-address=192.168.101.0/24 out-interface=ipip src-address=192.168.100.0/24 to-address=192.168.102.0/24 add action=netmap chain=dstnat dst-address=192.168.102.0/24 in-interface=ipip src-address=192.168.101.0/24 to-address=192.168.100.0/24 

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


إذا لم تفهم شيئًا (حول netmap) ، فأنت لا تحتاج إليه ولا تستخدم هذا الإجراء عند إعادة توجيه المنافذ.

Source: https://habr.com/ru/post/ar435070/


All Articles