لماذا لا يطابق أي حظر لعميل OpenVPN سلسلة FORWARD أبدًا
يمكن أن تبقى حركة المرور بين العملاء داخل عملية OpenVPN ولا تعبر سلسلة FORWARD الخاصة بالمضيف أبدًا، لذا فإن العداد الصفري لا يثبت شيئًا.
يمكن لعميلين على خادم OpenVPN واحد أن يصلا إلى بعضهما حتى بعد أن أضفت قاعدة DROP لمجموعة عناوينهما. القاعدة موجودة في سلسلة FORWARD، والحركة تتدفق بوضوح، ومع ذلك يبقى عداد تلك القاعدة عند الصفر. الاستنتاج الطبيعي أن الجدار الناري معطل. لكن في أغلب الأحيان لم تدخل الحزمة السلسلة أصلاً.
هناك مساران يمكن أن تسلكهما حزمة القرين عبر خادم OpenVPN، ويحددهما الإعداد لا الجدار الناري. ومعرفة المسار المستخدم تخبرك ما إذا كانت قاعدة المضيف في المكان الصحيح من الأصل.
مساران يمكن أن تسلكهما حزمة القرين
عند تعطيل خيار التحويل الداخلي، تصل حزمة من العميل A على واجهة النفق ووجهتها داخل العنوان المخصص للعميل B. يرسلها جدول التوجيه في الخادم إلى الخارج عبر واجهة النفق نفسها، لأن الخادم يملك المسار إلى عنوان B. هذا تدفق داخل وخارج عبر المضيف، ومسار التحويل IPv4 هو الذي يقيمه.
عند تمكين خيار التحويل الداخلي، تطابق عملية الخادم الحزمة مع عميل متصل وتكتبها مرة أخرى إلى ذلك العميل نفسه. تُعالج الحزمة داخل البرنامج الخفي ولا تدخل جهاز النفق مرة أخرى أبدًا، لذا يُتجاوز مسار التحويل في المضيف بالكامل. يصف دليل OpenVPN 2.6 هذا الخيار بأنه تحويل داخلي من عميل إلى عميل، وهذا بالضبط سبب عجز قاعدة جدار ناري في المضيف عن رؤيته.
يوجد شكل ثالث في عمليات النشر التي تنقل قناة البيانات إلى وحدة نواة. تخرج قرارات التحويل والتشفير من مساحة المستخدم، ويعتمد ما إذا كان netfilter يرى التدفق على كيفية بناء مسار التفريغ. لا تفترض أبدًا أن مجموعة قواعد قديمة تتصرف على خادم مفَرَّغ كما كانت تتصرف على خادم في مساحة المستخدم. أكد النمط من الإعداد الجاري، لا من إصدار الحزمة.
عندما لا يتحرك العداد أبدًا
العداد الصفري يعني أن الحزمة لم تطابق تلك القاعدة عند تلك النقطة، والأسباب عدة. الأول هو التجاوز أعلاه: الحركة لم تصل إلى السلسلة أبدًا. الثاني هو عدم تطابق في الواجهة أو الاتجاه أو المصدر أو الوجهة، وهو أمر شائع عندما تُعاد ترقيم المجموعة ولا تزال القاعدة تذكر البادئة القديمة.
الثالث هو الموضع. قد تقبل قاعدة أسبق في السلسلة التدفق قبل تقييم قاعدة DROP الخاصة بك، وقد تكون قاعدة لاحقة هي التي تقرر النتيجة فعلاً. اقرأ السلسلة بالترتيب مع إظهار العدادات، ثم تحقق من عداد أي قاعدة يزداد عند تكرار الاختبار.
نفّذ تبادلاً واحدًا مضبوطًا بين عميلين تحققت من عنوانيهما الحقيقيين من حالة الخادم نفسه، لا من إيجار تتذكره. إذا لم يتحرك العداد المعني، فاشتبه في المسار قبل إعادة كتابة المطابقة. وإذا تحرك لكن الاتصال ما زال ينجح، فإن الإسقاط يُلغي في وقت لاحق والترتيب هو المشكلة. هذا الجواب يحدد ما إذا كان الإصلاح تغييرًا في القاعدة أو في الطوبولوجيا، فاحصل عليه قبل تعديل أي شيء.
اختيار حد يمكنه التصفية
إذا كان لا بد أن تعيش السياسة في جدار ناري على المضيف، ضع الحركة حيث يستطيع الجدار الناري رؤيتها. تعطيل التحويل الداخلي هو الطريقة المدعومة لجعل حركة الأقران تمر عبر واجهة النفق ومسار التحويل، على حساب إرسال كل حزمة قرين عبر مكدس المضيف.
ثم طابق التدفق بدقة. تصل الحركة على واجهة النفق وتغادر على واجهة النفق، في الاتجاهين، لذا لن تطابق القواعد التي تنظر إلى الواجهة الفيزيائية فقط. تحتاج القواعد المعتمدة على العناوين إلى المجموعة الحالية، وعليها أن تراعي اتجاه العودة كما تراعي اتجاه الذهاب.
كثير من عمليات النشر يخدمها أفضل أن تصفي على مستوى العميل أو المجموعة، حيث تكون الهوية معروفة وتتبع السياسة المستخدم بدلًا من عنوان يتغير عند إعادة الاتصال. هذه آلية مختلفة عن سلسلة في المضيف، ولا ينبغي خلط الاثنين دون سبب واضح.
لا تنقل مجموعة قواعد طوبولوجيا قديمة عبر ترحيل دون تغيير. مجموعات العناوين وأسماء الواجهات وأنماط التحويل كلها تؤثر في مطابقة القاعدة، والقاعدة المنسوخة التي كانت تعمل سابقًا هي أكثر أنواع الأدلة تضليلًا. ابدأ من التدفق الذي تريد السماح به واكتب القاعدة التي تطابقه.
اختبار العزل بدلًا من الثقة بقاعدة
اختبر الحالة المحظورة والحالة المسموح بها في التشغيل نفسه. ابدأ اتصالًا جديدًا من عميل إلى الآخر وتأكد من فشله، ثم تأكد من أن اتصالًا ينبغي السماح به ما زال يعمل. إذا اختُبر الأول فقط، فإن جدارًا ناريًا يحجب كل شيء يبدو كنجاح.
أعد ذلك بعد إعادة تحميل إعداد الخادم وبعد إعادة اتصال عميل، لأن التحويل الداخلي وتعيينات المجموعة حالة وقت تشغيل. تحقق من العدادات في الاتجاهين، لأن قاعدة تطابق اتجاهًا ولا تطابق الرد تنتج عزلًا جزئيًا يصعب ملاحظته في اختبار سريع.
العزل هو النتيجة المرصودة عند الحد الذي يحمل التدفق فعلاً. قاعدة DROP في مكان ما بالمضيف ليست دليلًا؛ الاتصال الفاشل مع تحرك عداد القاعدة التي سببت ذلك هو الدليل.