قواعد الجدار الناري التي تقبل NEW فقط لا تغلق كل مسار WAN
رفض اتصالات NEW يترك التدفقات القائمة والردود كما هي. اقرأ حالة conntrack وترتيب القواعد والاستثناءات قبل أن تعتبر السياسة مغلقة.
رفض اتصالات صادرة جديدة على WAN يبدو كسياسة مغلقة عند الفشل، لكنه وعد أضيق مما يبدو عليه. الحزم التي تنتمي إلى تدفقات قائمة لا تطابقه، وكذلك كثير من الردود. الفجوة يسهل تفويتها لأن القاعدة تُقرأ وكأنها تغطي الواجهة لا حالة اتصال واحدة عليها. وقراءة مطابقة الحالة كحكم نهائي هي ما يخلق إحساسًا زائفًا بالإغلاق.
الحالة شرط مطابقة لا حكم
يتصنّف تتبع الاتصالات الحزم بحسب ما رآه الجدار الناري سابقًا، لا بحسب ما يعتقده التطبيق. التدفق المرصود في الاتجاهين يكون قائمًا، وتبقى حزمه اللاحقة قائمة حتى عندما يتغير المسار تحته من نفق إلى الوصلة الصاعدة العادية. ويمكن أن يكون الرد على اتصال وارد حركة قائمة أيضًا. تلك الحزم لا تصبح جديدة مرة أخرى.
لهذا لا تستطيع قاعدة مقصورة على الاتصالات الجديدة أن تثبت أن كل حزمة محمية محجوبة. وهي تترك الحالات الأخرى لما تفعله بها بقية مجموعة القواعد، وقد يكون قبولًا موضوعًا قبلها في السلسلة.
اقرأ القاعدة في محيطها
القبول الواسع للحركة القائمة والمرتبطة الموضوع قبل الحجب يمرر الحزمة قبل أن تُقيَّم قاعدة الحجب أصلًا. وإزالة شرط الحالة من قاعدة لاحقة لن تغيّر ذلك، لأن التقييم لا يصل إليها أبدًا. الترتيب يحدد النتيجة، ومطابقة الحالة تحدد أي الحزم تصل إلى ذلك الترتيب.
افحص مجموعة القواعد الفعالة لا الملف الذي عدّلته، بما في ذلك القفزات إلى سلاسل أخرى وكل ما يولّده النظام الأساسي. على موجّه يديره iptables يعرض سرد السلسلة تعريفات القواعد، ويجب تتبع السلاسل التي يشير إليها أيضًا. ويحتاج نظام nftables الأصلي إلى فحص مجموعة قواعده وأولويات نقاط الربط الخاصة به، لأن البرنامج الثابت نادرًا ما يولّد سلاسل متطابقة.
تخبرك العدادات أي قاعدة طابقت فعليًا، وهي عادة أكثر إفادة من التقاط حزم يُؤخذ بعد القرار. القاعدة التي عدّادها صفر لم تُبلَّغ، مهما كان موقعها يوحي بغير ذلك.
عبّر عن المنع بمعزل عن الحالة
إذا كان يجب على مجموعة من العملاء ألا تصل إلى الإنترنت خارج النفق أبدًا، فقل ذلك مباشرة بدلًا من تقريبه بحالة واحدة. على القاعدة أن تختار المصدر والمخرج والوجهة دون الاعتماد على حالة الاتصال، وعليها أن تقع حيث لا يمكن لقبول سابق تجاوزها. ثم تحصل إدارة الوصول واستثناءات الشبكة المحلية على قواعد صريحة خاصة بها، فيصبح القصد ظاهرًا في السياسة.
اختيار reject بدلًا من drop يغيّر طريقة فشل الحركة المطابقة، ولا يوسّع مجموعة الحزم التي تختارها القاعدة. الاتصال المرفوض والمهلة الصامتة عرضان مختلفان يشيران إلى الاختيار نفسه.
السياسة التي تسمح عن قصد بردود على وصول يبدأ من بعيد عبر WAN سياسة يمكن الدفاع عنها. لكن يجب وصفها بهذه الطريقة بدلًا من تقديمها كعزل كلي عبر النفق وحده.
تحقق ممن هو داخل المجموعة فعلًا
يغطي المثال حركة IPv4 المُمرَّرة من بادئة واحدة عبر واجهة واحدة. ولا يقول شيئًا عن IPv6 أو وصلة صاعدة ثانية أو الحركة التي يولّدها الموجّه نفسه. الموجّه الذي يعمل كخادم DNS يرسل استعلاماته الصاعدة، وهذه لا تمر عبر سلسلة forward إطلاقًا.
تأكد من أن العملاء المحميين ما زالوا يحملون عناوين داخل البادئة المختارة، لأن الجهاز الذي انتقل خارجها صار مباشرًا بالصدفة لا بالسياسة. كما أن توسيع الحجب ليشمل الشبكة المحلية كلها دون مراجعة تصميم الاستثناءات يميل إلى إزالة مسارك الإداري أنت.
iptables -S FORWARD
iptables -L FORWARD -v -n
cat /proc/net/nf_conntrack | grep -c ESTABLISHED
ثم اختبر تدفقًا قديمًا بجانب تدفق جديد. محاولة اتصال حديثة ونقل ثنائي الاتجاه نشط أصلًا يتصرفان بشكل مختلف تحت هذه القاعدة، واختبار الاثنين وحده يُظهر أي سياسة لديك فعلًا.