ਫਾਇਰਵਾਲ 'ਤੇ ਕਿਹੜੇ 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 UDP 500 'ਤੇ IKE ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ ਅਤੇ NAT ਟ੍ਰਾਵਰਸਲ ਵਰਤੇ ਜਾਣ 'ਤੇ UDP 4500 'ਤੇ ਜਾਂਦਾ ਹੈ, ਜਦਕਿ L2TP ਫਰੇਮ ਆਪ ਟਨਲ ਦੇ ਅੰਦਰ UDP 1701 'ਤੇ ਹੁੰਦਾ ਹੈ। SSTP ਸੈਸ਼ਨ ਨੂੰ TCP 443 'ਤੇ TLS ਵਿੱਚ ਲਪੇਟਦਾ ਹੈ, 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 ਸਹਾਇਕ ਵੀ ਲਗਾਉਂਦਾ ਹੈ। ਅਸਲ ਫਾਇਰਵਾਲ 'ਤੇ ਤੁਸੀਂ ਖੁਦ ਪ੍ਰੋਟੋਕੋਲ ਜੋੜਦੇ ਹੋ: PPTP ਸਰਵਰ ਵੱਲ IP ਪ੍ਰੋਟੋਕੋਲ 47 ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ, IPsec ਗੇਟਵੇ ਵੱਲ IP ਪ੍ਰੋਟੋਕੋਲ 50 ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ। ਜਿੱਥੇ ਪਲੇਟਫਾਰਮ ਪ੍ਰੋਟੋਕੋਲ ਖੇਤਰ ਨਹੀਂ ਦਿੰਦਾ, ਉੱਥੇ ਐਨਕੈਪਸੂਲੇਸ਼ਨ ਰਾਹ ਹੈ, ਇਸੇ ਲਈ IKEv2 UDP 4500 'ਤੇ ਵਾਪਸ ਜਾ ਸਕਦਾ ਹੈ ਅਤੇ ਇਸੇ ਲਈ OpenVPN ਤੇ WireGuard ਨੂੰ ਇਹ ਸਮੱਸਿਆ ਕਦੇ ਨਹੀਂ ਆਉਂਦੀ।
ਕਲਾਇੰਟ ਨੂੰ ਦੋਸ਼ ਦੇਣ ਤੋਂ ਪਹਿਲਾਂ ਜਾਂਚੋ ਕਿ ਨਿਯਮ ਅਸਲ ਵਿੱਚ ਕਿਸ ਨਾਲ ਮਿਲਦਾ ਹੈ। ਗੇਟਵੇ 'ਤੇ ਸਿਫ਼ਰ 'ਤੇ ਰਹਿਣ ਵਾਲਾ ਪੈਕੇਟ ਕਾਊਂਟਰ ਕਹਿੰਦਾ ਹੈ ਕਿ ਨਿਯਮ ਕਦੇ ਚੱਲਿਆ ਹੀ ਨਹੀਂ, ਅਤੇ ਕਲਾਇੰਟ ਪਾਸੇ ਕਿੰਨੀ ਵਾਰ ਵੀ ਦੁਬਾਰਾ ਇੰਸਟਾਲ ਕਰੋ, ਇਹ ਨਹੀਂ ਬਦਲਦਾ।
ਦਿਸ਼ਾ, ਸਥਿਤੀ ਅਤੇ NAT ਜਵਾਬ ਬਦਲਦੇ ਹਨ
ਬਾਹਰ ਡਾਇਲ ਕਰਨ ਵਾਲਾ ਕਲਾਇੰਟ ਅਤੇ ਅੰਦਰ ਸੁਣਨ ਵਾਲਾ ਗੇਟਵੇ ਵੱਖਰੀਆਂ ਲੋੜਾਂ ਹਨ, ਅਤੇ ਉਹੀ ਪੋਰਟ ਸੂਚੀ ਇੱਕ ਦਿਸ਼ਾ ਵਿੱਚ ਸਹੀ ਤੇ ਦੂਜੀ ਵਿੱਚ ਗਲਤ ਹੋ ਸਕਦੀ ਹੈ। ਸਥਿਤੀ ਜਾਣਨ ਵਾਲਾ ਫਾਇਰਵਾਲ 500 ਅਤੇ 4500 'ਤੇ UDP ਪ੍ਰਵਾਹ ਟਰੈਕ ਕਰਦਾ ਹੈ ਅਤੇ ਦੂਜੇ ਨਿਯਮ ਤੋਂ ਬਿਨਾਂ ਜਵਾਬ ਵਾਪਸ ਜਾਣ ਦਿੰਦਾ ਹੈ। 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 ਤੋਂ ਬਿਨਾਂ ਮਸ਼ੀਨ 'ਤੇ ਉਹੀ ਸਬੂਤ ਇੰਟਰਫੇਸ ਅਤੇ ਨਿਯਮ ਕਾਊਂਟਰਾਂ ਤੋਂ ਆਉਂਦੇ ਹਨ। ਟਨਲ ਇੰਟਰਫੇਸ 'ਤੇ ਬਾਈਟ ਅੰਦਰ ਆਉਂਦੇ ਹਨ ਪਰ ਬਾਹਰ ਨਹੀਂ ਜਾਂਦੇ — ਇਹ ਪਹਿਲੇ ਇਜਾਜ਼ਤ ਨਿਯਮ ਵੱਲ ਨਹੀਂ, ਵਾਪਸੀ ਦੇ ਰਸਤੇ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦਾ ਹੈ।
ਅਜਿਹਾ ਨਿਯਮ ਸਮੂਹ ਛੱਡੋ ਜਿਸ ਦੀ ਤੁਸੀਂ ਰੱਖਿਆ ਕਰ ਸਕੋ
TCP 443 'ਤੇ SSTP ਪੋਰਟ-ਆਧਾਰਿਤ ਕਿਸੇ ਵੀ ਫਿਲਟਰ ਲਈ ਆਮ HTTPS ਤੋਂ ਵੱਖਰਾ ਨਹੀਂ ਪਛਾਣਿਆ ਜਾ ਸਕਦਾ, ਅਤੇ ਨੈੱਟਵਰਕ ਜਦੋਂ ਸਿਰਫ਼ ਵੈੱਬ ਟ੍ਰੈਫਿਕ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ ਤਾਂ ਇਹੀ ਮਕਸਦ ਹੈ। ਇਸੇ ਲਈ 443 ਦੇ ਨਿਯਮ ਨੂੰ ਪੂਰੇ ਇੰਟਰਨੈੱਟ ਦੀ ਥਾਂ ਗੇਟਵੇ ਨੂੰ ਮੰਜ਼ਿਲ ਨਾਮ ਦੇਣਾ ਚਾਹੀਦਾ ਹੈ। ਟਨਲ ਚੱਲਣ ਸਾਰ ਅਸਥਾਈ ਕਿਸੇ-ਤੋਂ-ਕਿਸੇ ਨਿਯਮ ਮਿਟਾ ਦਿਓ। ਕਿਹੜਾ ਨਿਯਮ ਮਿਲਿਆ, ਜਿੱਥੇ ਹੋਵੇ ਉੱਥੇ ਪ੍ਰੋਟੋਕੋਲ ਨੰਬਰ, ਅਤੇ ਦਿਸ਼ਾ ਲਿਖੋ, ਤਾਂ ਜੋ ਅਗਲਾ ਵਿਅਕਤੀ ਸਬੂਤ ਤੋਂ ਸ਼ੁਰੂ ਕਰੇ।
ਕਲਾਊਡ ਪੁਆਇੰਟ-ਟੂ-ਸਾਈਟ ਗੇਟਵੇ ਚੋਣ ਨੂੰ ਦਿੱਖਾਉਂਦੇ ਹਨ: ਡਾਊਨਲੋਡ ਕੀਤਾ ਪ੍ਰੋਫਾਈਲ 443 'ਤੇ SSTP ਜਾਂ 500 ਅਤੇ 4500 'ਤੇ IKEv2 ਵਰਤਦਾ ਹੈ, ਅਤੇ ਤੁਹਾਨੂੰ ਸਿਰਫ਼ ਉਹੀ ਖੋਲ੍ਹਣਾ ਚਾਹੀਦਾ ਹੈ ਜੋ ਪ੍ਰੋਫਾਈਲ ਅਸਲ ਵਿੱਚ ਚੁਣਦਾ ਹੈ। ਆਧੁਨਿਕ ਨੈੱਟਵਰਕ ਵਿੱਚ PPTP GRE ਦੇ ਅਪਵਾਦ ਦੇ ਯੋਗ ਨਹੀਂ, ਕਿਉਂਕਿ ਮੋਬਾਈਲ ਆਪਰੇਟਰ ਤੁਹਾਡੀ ਫਾਇਰਵਾਲ ਦੀ ਪਰਵਾਹ ਕੀਤੇ ਬਿਨਾਂ ਪ੍ਰੋਟੋਕੋਲ 47 ਅਕਸਰ ਡੇਗ ਦਿੰਦੇ ਹਨ। ਟਿਕਟ ਬੰਦ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਨਿਯਮ ਸਰਵਰ ਕਨਫਿਗ ਦੇ ਪੋਰਟ ਨਾਲ ਮਿਲਦਾ ਹੈ, ਪ੍ਰੋਟੋਕੋਲ ਖੇਤਰ ਉੱਥੇ ਸੈਟ ਹੈ ਜਿੱਥੇ ਪਰਿਵਾਰ ਨੂੰ ਲੋੜ ਹੈ, ਅਤੇ ਮੰਜ਼ਿਲ ਕੋਈ ਪਤਾ ਨਹੀਂ ਸਗੋਂ ਗੇਟਵੇ ਹੈ।