أي منافذ VPN يجب فتحها في الجدار الناري: بروتوكولاً ببروتوكول
يستخدم PPTP المنفذ TCP 1723 مع GRE، ويستخدم L2TP/IPsec المنفذين UDP 500 و4500 مع ESP، ويحتاج SSTP وOpenVPN وWireGuard إلى منفذ واحد لكل منها. إليك ما يجب فتحه.
قاعدتان منفصلتان تحددان ما إذا كان نفق VPN سيعبر الجدار الناري: المنفذ الذي يتصل به العميل، والبروتوكول الذي يحمل الحمولة. افتح الأولى فقط فيتم التحقق من هوية النفق ثم لا يمر أي بيانات. الحد الأدنى هو منفذ TCP واحد مع GRE لبروتوكول PPTP، ومنفذان UDP مع ESP لـ L2TP/IPsec وIKEv2، ومنفذ واحد لـ SSTP وOpenVPN وWireGuard. أما الاتجاه وتتبع الحالة وNAT فتحكم في الباقي.
ابدأ من المنفذ الذي يتصل به العميل
لكل عائلة نقطة دخول يتصل بها العميل أولاً، وهذه النقطة هي ما يجب أن تسميه قاعدة السماح لديك. يتصل عملاء PPTP بالمنفذ TCP 1723. يبدأ L2TP/IPsec بتبادل IKE على UDP 500 ثم ينتقل إلى UDP 4500 عند تفعيل اجتياز NAT، مع إطار L2TP نفسه على UDP 1701 داخل النفق. ويغلّف SSTP الجلسة في TLS على TCP 443، ويتفاوض IKEv2 على UDP 500 و4500، ويستخدم OpenVPN افتراضيًا UDP 1194 لكنه يُنقل غالبًا إلى TCP 443، ويستمع WireGuard على UDP 51820.
| Family | Rule to add on the gateway | Typical mistake |
|---|---|---|
| WireGuard | UDP port from ListenPort, for the peer address | Assuming 51820 when the config says otherwise |
| OpenVPN | The configured UDP or TCP port, often 443 | Opening 1194 after the server moved |
| SSTP | TCP 443 limited to the gateway IP | Allowing 443 to any destination |
| IKEv2 | UDP 500 and UDP 4500, plus ESP | Allowing only 500 and losing NAT-T |
| L2TP/IPsec | UDP 500, 4500, ESP, and 1701 inside the tunnel | Exposing 1701 to the internet |
| PPTP | TCP 1723 and IP protocol 47 | Writing a rule for TCP 47 |
اعتبر هذه الأرقام قيمًا افتراضية لا خصائص ثابتة. تستخدم واجهة WireGuard أي منفذ استماع يعلنه إعدادها، ويمكن لخادم OpenVPN أن يقف على أي منفذ اختاره المدير. اقرأ إعداد الخادم قبل كتابة القاعدة، لأن جدارًا ناريًا فُتح للمنفذ 1194 لا يفعل شيئًا لخادم نُقل إلى 443.
العمود الثالث هو حيث تخطئ معظم تذاكر التغيير. القاعدة موجودة، لكنها تشير إلى الوجهة الخطأ أو الاتجاه الخطأ أو النقل الخطأ.
GRE وESP أرقام بروتوكول وليست منافذ
لا تملك GRE وESP أي منافذ على الإطلاق، لذا لا يستطيع نموذج جدار ناري يقبل أرقام المنافذ فقط التعبير عنهما. GRE هو بروتوكول IP رقم 47 وESP هو بروتوكول IP رقم 50، ويُطابق كلاهما عبر حقل البروتوكول في ترويسة IP. القاعدة المكتوبة كمنفذ TCP 47 لا تطابق شيئًا، وهكذا تبدو سياسة PPTP صحيحة ومع ذلك تُسقط كل حزمة بعد المصافحة.
تخفي موجهات المستهلكين هذا خلف مربع اختيار للتمرير يثبت قاعدة البروتوكول، ويثبت في حالة GRE مساعد NAT اللازم لتتبع التدفق. على جدار ناري حقيقي تضيف البروتوكول بنفسك: اسمح ببروتوكول IP رقم 47 إلى خادم PPTP، واسمح ببروتوكول IP رقم 50 إلى بوابة IPsec. وحين لا توفر المنصة حقل بروتوكول، يكون التغليف هو المخرج، ولهذا يمكن لـ IKEv2 أن يرتد إلى UDP 4500، ولهذا لا يواجه OpenVPN وWireGuard المشكلة أبدًا.
تحقق مما تطابقه القاعدة فعلاً قبل لوم العميل. عدّاد حزم يبقى على الصفر في البوابة يعني أن القاعدة لم تُفعّل أبدًا، ولا تغيّر أي كمية من إعادة التثبيت على جانب العميل ذلك.
الاتجاه والحالة وNAT تغيّر الجواب
العميل الذي يتصل صادرًا والبوابة التي تستمع واردة متطلبان مختلفان، وقائمة المنافذ نفسها قد تكون صحيحة في اتجاه وخاطئة في الاتجاه الآخر. الجدار الناري الذي يتتبع الحالة يتابع تدفق UDP على 500 و4500 ويسمح بعودة الردود دون قاعدة ثانية. لا تحمل ESP وGRE منافذ، لذا لا يجد جهاز NAT ما يستند إليه ويحتاج إلى مساعد أو تغليف لمتابعة الجلسة.
اجتياز NAT هو الجزء الذي يُنسى. يبدأ IKEv2 على UDP 500، ويكتشف جهاز NAT، ثم يتابع على UDP 4500، لذا فسياسة تسمح بـ 500 فقط تعطي نفقًا يتم تأسيسه ثم يصمت. ويقوم L2TP/IPsec بالانتقال نفسه. وإذا أظهر التقاطك التبادل الأول دون حركة مستمرة، فابحث عن قاعدة تتوقف عند 500.
سجّل الاتجاه مع كل قاعدة. «اسمح بـ UDP 4500» لا يعني شيئًا حتى تقول من أين إلى أين، والقاعدة الصحيحة لعميل متجول تكون عادة خاطئة لنظير موقع-إلى-موقع.
افحص كل مسار بالتقاط
نفّذ الالتقاط على البوابة لا على العميل: فالعميل يسجل ما وصل فقط. تغطي هذه المرشحات العائلات أعلاه وتُظهر أي مرحلة ناقصة:
sudo tcpdump -ni any tcp port 1723
sudo tcpdump -ni any udp port 500 or udp port 4500
sudo tcpdump -ni any proto gre
sudo tcpdump -ni any proto 50
اقرأ الخرج كتسلسل. عندما يظهر التفاوض ولا يظهر بروتوكول الحمولة، يحدث الإسقاط في مكان ما بين العميل والبوابة. وعندما يظهر الاثنان وتفشل الصفحة رغم ذلك، فلم يعد الجدار الناري موضع الشبهة؛ انظر إلى التوجيه أو DNS أو مجموعة العناوين الممنوحة للعميل.
على جهاز بلا tcpdump تأتي الأدلة نفسها من عدادات الواجهة والقواعد. البايتات الداخلة دون خارجة على واجهة النفق تشير إلى مسار العودة لا إلى قاعدة السماح الأولية.
اترك مجموعة قواعد يمكنك الدفاع عنها
لا يمكن تمييز SSTP على TCP 443 عن HTTPS العادي أمام أي مرشح قائم على المنافذ، وهذا هو المقصود حين تسمح الشبكة بحركة الويب فقط. ولهذا أيضًا يجب أن تسمي قاعدة 443 البوابة كوجهة بدلًا من الإنترنت كله. احذف القواعد المؤقتة من أي إلى أي بمجرد عمل النفق. اكتب أي قاعدة طابقت، ورقم البروتوكول حيث يوجد، والاتجاه، ليبدأ الشخص التالي من دليل.
بوابات السحابة من نقطة إلى موقع تجعل الخيار مرئيًا: الملف الشخصي الذي تُنزّله يستخدم إما SSTP على 443 أو IKEv2 على 500 و4500، وعليك فتح الذي يختاره الملف فعليًا فقط. لا يستحق PPTP استثناء GRE في شبكة حديثة، لأن مشغلي الهاتف المحمول غالبًا ما يُسقطون البروتوكول 47 بغض النظر عن جدارك الناري. وقبل إغلاق التذكرة، تأكد من أن القاعدة تطابق المنفذ في إعداد الخادم، وأن حقل البروتوكول مضبوط حيث تحتاجه العائلة، وأن الوجهة هي البوابة لا أي عنوان.