Firewall-da hansı VPN portlarını açmaq lazımdır: protokol-protokol
PPTP TCP 1723 və GRE tələb edir, L2TP/IPsec UDP 500 və 4500 və ESP tələb edir, SSTP, OpenVPN və WireGuard isə hər biri bir port tələb edir. Açmaq lazım olanlar bunlardır.
VPN tunelinin firewall-dan keçib-keçməyəcəyini iki ayrı qayda həll edir: müştərinin yığdığı port və yükü daşıyan protokol. Yalnız birincisini açsanız, tunel autentifikasiyadan keçər, sonra heç bir məlumat daşımaz. Minimum PPTP üçün bir TCP portu və GRE, L2TP/IPsec və IKEv2 üçün iki UDP portu və ESP, SSTP, OpenVPN və WireGuard üçün isə bir portdur. İstiqamət, vəziyyətin izlənməsi və NAT qalanı həll edir.
Müştərinin yığdığı portdan başlayın
Hər ailənin müştərinin ilk müraciət etdiyi giriş nöqtəsi var və icazə qaydanız məhz bu nöqtəni adlandırmalıdır. PPTP müştəriləri TCP 1723-ə qoşulur. L2TP/IPsec UDP 500 üzərində IKE başladır və NAT keçidi istifadəyə verildikdən sonra UDP 4500-ə keçir, L2TP çərçivəsi isə tunelin içində UDP 1701 üzərində olur. SSTP sessiyanı TCP 443 üzərində TLS-ə bükür, IKEv2 UDP 500 və 4500 üzərində danışıq aparır, OpenVPN standart olaraq UDP 1194 işlədir, lakin çox vaxt TCP 443-ə köçürülür, WireGuard isə UDP 51820-də dinləyir.
| 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 |
Bu rəqəmləri sabit xassələr deyil, standart dəyərlər kimi qəbul edin. WireGuard interfeysi konfiqurasiyasının elan etdiyi istənilən dinləmə portundan istifadə edir və OpenVPN serveri administratorun seçdiyi istənilən portda dayana bilər. Qaydanı yazmazdan əvvəl server konfiqurasiyasını oxuyun, çünki 1194 üçün açılmış firewall 443-ə köçürülmüş server üçün heç nə etmir.
Üçüncü sütun əksər dəyişiklik biletlərinin səhv getdiyi yerdir. Qayda var, lakin səhv təyinatı, səhv istiqaməti və ya səhv nəqli göstərir.
GRE və ESP port deyil, protokol nömrələridir
GRE və ESP-nin ümumiyyətlə portu yoxdur, buna görə yalnız port nömrələrini qəbul edən firewall forması onları ifadə edə bilməz. GRE IP protokolu 47, ESP isə IP protokolu 50-dir və hər ikisi IP başlığının protokol sahəsi ilə uyğunlaşdırılır. TCP portu 47 kimi yazılmış qayda heç nəyə uyğun gəlmir; PPTP siyasəti belə düzgün görünür və yenə də əl sıxışmasından sonra hər paketi atır.
İstehlakçı routerləri bunu protokol qaydasını quraşdıran keçid qutusunun arxasında gizlədir və GRE üçün axını izləmək üçün lazım olan NAT köməkçisini də quraşdırır. Həqiqi firewall-da protokolu özünüz əlavə edirsiniz: PPTP serverinə IP protokolu 47-yə icazə verin, IPsec şlüzünə IP protokolu 50-yə icazə verin. Platforma protokol sahəsi təklif etmirsə, çıxış yolu inkapsulyasiyadır; buna görə IKEv2 UDP 4500-ə keçə bilir və buna görə OpenVPN ilə WireGuard bu problemlə heç rastlaşmır.
Müştərini günahlandırmazdan əvvəl qaydanın həqiqətən nəyə uyğunlaşdığını yoxlayın. Şlüzda sıfırda qalan paket sayğacı qaydanın heç vaxt işə düşmədiyini bildirir və müştəri tərəfində yenidən quraşdırmanın heç bir miqdarı bunu dəyişmir.
İstiqamət, vəziyyət və NAT cavabı dəyişir
Xaricə qoşulan müştəri ilə içəriyə qulaq asan şlüz fərqli tələblərdir və eyni port siyahısı bir istiqamətdə düzgün, digərində səhv ola bilər. Vəziyyəti izləyən firewall 500 və 4500 üzərindəki UDP axınını izləyir və cavabları ikinci qayda olmadan geri buraxır. ESP və GRE port daşımır, buna görə NAT cihazının bağlanacaq heç nəyi yoxdur və sessiyanı izləmək üçün köməkçi və ya inkapsulyasiya lazımdır.
NAT keçidi gözdən qaçan hissədir. IKEv2 UDP 500 üzərində başlayır, NAT cihazı aşkar edir və UDP 4500 üzərində davam edir, buna görə yalnız 500-ə icazə verən siyasət qurulan, sonra susan tunel verir. L2TP/IPsec də eyni keçidi edir. Əgər tutma ilk mübadiləni göstərir, davamlı trafik göstərmirsə, 500-də dayanan qayda axtarın.
İstiqaməti hər qayda ilə birlikdə qeyd edin. «UDP 4500-ə icazə ver» haradan hara olduğunu deməyincə heç nə ifadə etmir və gəzən müştəri üçün düzgün olan qayda adətən sayt-sayt həmkar üçün səhvdir.
Hər yolu tutma ilə yoxlayın
Tutmanı müştəridə deyil, şlüzda aparın: müştəri yalnız gələni qeyd edir. Bu filtrlər yuxarıdakı ailələri əhatə edir və hansı mərhələnin çatışmadığını göstərir:
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
Çıxışı ardıcıllıq kimi oxuyun. Danışıq görünür, yük protokolu görünmürsə, atma müştəri ilə şlüz arasında haradasa baş verir. Hər ikisi görünür və səhifə yenə işləmirsə, firewall artıq şübhəli deyil; marşrutlaşdırmaya, DNS-ə və ya müştəriyə verilən ünvan hovuzuna baxın.
tcpdump olmayan maşında eyni sübut interfeys və qayda sayğaclarından gəlir. Tunel interfeysində girən, lakin çıxmayan baytlar ilkin icazə qaydasına deyil, qayıdış yoluna işarə edir.
Müdafiə edə biləcəyiniz qayda dəsti qoyun
TCP 443 üzərindəki SSTP hər hansı porta əsaslanan filtr üçün adi HTTPS-dən fərqlənmir; şəbəkə yalnız veb trafikə icazə verdikdə məqsəd də budur. Buna görə də 443 qaydası bütün interneti deyil, şlüzü təyinat kimi göstərməlidir. Tunel işləyən kimi müvəqqəti hər-hərə qaydaları silin. Hansı qaydanın uyğunlaşdığını, varsa protokol nömrəsini və istiqaməti yazın ki, növbəti şəxs sübutdan başlasın.
Bulud nöqtə-site şlüzləri seçimi görünən edir: yüklənən profil ya 443 üzərində SSTP, ya da 500 və 4500 üzərində IKEv2 istifadə edir və yalnız profilin həqiqətən seçdiyini açmalısınız. PPTP müasir şəbəkədə GRE istisnasına dəyməz, çünki mobil operatorlar firewall-unuzdan asılı olmayaraq 47 protokolunu tez-tez atır. Bileti bağlamazdan əvvəl qaydanın server konfiqurasiyasındakı porta uyğun olduğunu, protokol sahəsinin ailənin ehtiyac duyduğu yerdə qurulduğunu və təyinatın hər hansı ünvan deyil, şlüz olduğunu təsdiqləyin.