HTTP ਪ੍ਰੌਕਸੀ ਰਾਹੀਂ OpenVPN: ਪਹਿਲਾਂ CONNECT ਦਾ ਜਵਾਬ ਪੜ੍ਹੋ
CONNECT ਪ੍ਰੌਕਸੀ ਬਾਈਟ ਰਿਲੇ ਕਰਦੀ ਹੈ, ਇਸ ਲਈ ਦੋਵੇਂ ਸਿਰਿਆਂ ਨੂੰ TCP ਚਾਹੀਦਾ ਹੈ। ਸਰਟੀਫਿਕੇਟਾਂ ਨੂੰ ਦੋਸ਼ ਦੇਣ ਤੋਂ ਪਹਿਲਾਂ 407, 403 ਅਤੇ 503 ਪੜ੍ਹੋ, ਅਤੇ ਸਰਵਰ ਪਰਖ ਚਾਲੂ ਰੱਖੋ।
VPN ਕਲਾਇੰਟ ਨੂੰ ਕਾਰਪੋਰੇਟ HTTP ਪ੍ਰੌਕਸੀ ਵੱਲ ਮੋੜੋ, ਅਤੇ ਪਹਿਲੀ ਲਾਹੇਵੰਦ ਗੱਲ ਇਹ ਹੈ ਕਿ ਪ੍ਰੌਕਸੀ VPN ਦਾ ਪ੍ਰੋਟੋਕੋਲ ਨਹੀਂ ਬੋਲਦੀ। ਇਹ ਤੁਹਾਡੇ ਦੱਸੇ ਪਤੇ ’ਤੇ ਇੱਕ ਆਮ TCP ਕਨੈਕਸ਼ਨ ਖੋਲ੍ਹਦੀ ਹੈ ਅਤੇ ਫਿਰ ਪਾਸੇ ਹਟ ਜਾਂਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਤੁਹਾਡਾ ਕਲਾਇੰਟ ਅਤੇ ਸਰਵਰ ਉਸ ਸਟ੍ਰੀਮ ਰਾਹੀਂ ਆਪਣੀ ਅਦਲਾ-ਬਦਲੀ ਕਰਦੇ ਹਨ। ਕਲਾਇੰਟ ਨੂੰ ਜੋ ਵੀ ਚਾਹੀਦਾ ਹੈ, ਟਰਾਂਸਪੋਰਟ ਕਿਸਮ ਤੋਂ ਲੈ ਕੇ ਸਰਵਰ ਦੇ ਸਰੋਤੇ ਤੱਕ, ਉਸ ਬੰਦੋਬਸਤ ਨਾਲ ਮੇਲ ਖਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਦੋ ਅਸੰਗਤੀਆਂ ਬਹੁਤੀਆਂ ਨਾਕਾਮੀਆਂ ਦੀ ਵਿਆਖਿਆ ਕਰਦੀਆਂ ਹਨ: CONNECT ਪ੍ਰੌਕਸੀ ਵੱਲ ਨਿਸ਼ਾਨਾ UDP ਪ੍ਰੋਫਾਈਲ, ਅਤੇ VPN ਗਲਤੀ ਸਮਝਿਆ ਗਿਆ ਪ੍ਰੌਕਸੀ ਦਾ ਜਵਾਬ।
ਪ੍ਰੌਕਸੀ ਕੀ ਢੋਂਦੀ ਹੈ ਅਤੇ ਕੀ ਨਹੀਂ
ਪ੍ਰੌਕਸੀ ਸਿਰਫ਼ ਇੱਕ ਟਰਾਂਸਪੋਰਟ ਪੜਾਅ ਹੈ। ਇਹ ਤੁਹਾਡੀ ਬ੍ਰਾਊਜ਼ਰ ਪ੍ਰੌਕਸੀ ਨਹੀਂ ਬਣਦੀ, ਸੁਰੰਗ ਰਾਹੀਂ ਤੁਸੀਂ ਜਿਨ੍ਹਾਂ ਸਾਈਟਾਂ ’ਤੇ ਜਾਂਦੇ ਹੋ ਉਨ੍ਹਾਂ ਨੂੰ ਕੈਸ਼ ਨਹੀਂ ਕਰਦੀ, ਅਤੇ ਕਿਸੇ ਨੇ ਜਾਣ-ਬੁੱਝ ਕੇ ਜਾਂਚ ਸੈੱਟ ਨਾ ਕੀਤੀ ਹੋਵੇ ਤਾਂ ਅੰਦਰਲਾ ਟ੍ਰੈਫਿਕ ਨਹੀਂ ਵੇਖਦੀ। ਇਹ ਜੋ ਸੁਰੰਗ ਖੋਲ੍ਹਦੀ ਹੈ, ਉਹ ਡਿਜ਼ਾਈਨ ਅਨੁਸਾਰ ਹੀ ਇਸ ਲਈ ਅਪਾਰਦਰਸ਼ੀ ਹੈ।
ਇਸ ਦਾ ਮਤਲਬ ਇਹ ਵੀ ਹੈ ਕਿ ਪ੍ਰੌਕਸੀ ਉਸ ਸਰਵਰ ਨੂੰ ਠੀਕ ਨਹੀਂ ਕਰ ਸਕਦੀ ਜਿਸ ਦਾ ਕੋਈ ਮੇਲ ਖਾਂਦਾ ਸਰੋਤਾ ਨਹੀਂ। ਕਿਸੇ ਮੰਜ਼ਿਲ ਤੱਕ ਪਹੁੰਚਣ ਦੀ ਇਜਾਜ਼ਤ ਅਤੇ ਉਸ ਮੰਜ਼ਿਲ ’ਤੇ ਸੁਣਨ ਵਾਲੀ ਸੇਵਾ ਦੋ ਵੱਖਰੇ ਤੱਥ ਹਨ, ਅਤੇ ਸਿਰਫ਼ ਪਹਿਲਾ ਪ੍ਰੌਕਸੀ ਪ੍ਰਬੰਧਕ ਦਾ ਹੈ।
ਵਾਹਕ ਨੂੰ ਦੋਵੇਂ ਸਿਰਿਆਂ ’ਤੇ TCP ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ
ਰਵਾਇਤੀ CONNECT ਪ੍ਰੌਕਸੀ ਸਿਰਫ਼ ਬਾਈਟ ਸਟ੍ਰੀਮ ਰਿਲੇ ਕਰਦੀ ਹੈ , ਇਸ ਲਈ ਕਲਾਇੰਟ ਨੂੰ ਸਟ੍ਰੀਮ ਟਰਾਂਸਪੋਰਟ ਵਰਤਣਾ ਚਾਹੀਦਾ ਹੈ। ਉਸ ਹਾਲਤ ਲਈ ਕਲਾਇੰਟ ਟੁਕੜਾ ਇੰਝ ਦਿਸਦਾ ਹੈ:
proto tcp-client
remote vpn.example.net 1194
http-proxy proxy.corp.example 3128ਸਰਵਰ ਪਾਸੇ ਨੂੰ remote ਲਾਈਨ ਵਿੱਚ ਦੱਸੇ ਪੋਰਟ ’ਤੇ ਅਸਲੀ TCP ਸਰੋਤਾ ਚਾਹੀਦਾ ਹੈ। ਪ੍ਰੋਫਾਈਲ ਵਿੱਚ proto udp ਨੂੰ proto tcp-client ਵਿੱਚ ਬਦਲਣ ਨਾਲ ਸਟ੍ਰੀਮ ਦੀ ਉਡੀਕ ਕਰਨ ਵਾਲਾ ਕਲਾਇੰਟ ਬਣਦਾ ਹੈ; ਇਹ ਦੂਜੇ ਪਾਸੇ ਸਟ੍ਰੀਮ ਨਹੀਂ ਬਣਾਉਂਦਾ। ਜੇ ਉਹੀ ਸਰਵਰ ਉਸ ਪੋਰਟ ’ਤੇ UDP ਰਾਹੀਂ ਵੀ ਜਵਾਬ ਦਿੰਦਾ ਹੈ, ਤਾਂ ਉਹ ਵੱਖਰਾ ਸਰੋਤਾ ਹੈ, ਉਸੇ ਦਾ ਦੂਜਾ ਮੋਡ ਨਹੀਂ।
ਜਿੱਥੇ ਵੱਖਰਾ TCP ਇੰਸਟੈਂਸ ਹੈ, ਉੱਥੇ ਉਸ ਦਾ ਸੁਰੰਗ ਯੰਤਰ, ਪਤਾ ਪੂਲ ਅਤੇ ਰੂਟਿੰਗ ਆਪਣੇ ਸਰੋਤ ਹਨ। ਕੰਮ ਕਰਦੀ ਸੰਰਚਨਾ ਨਕਲ ਕਰਕੇ ਟਰਾਂਸਪੋਰਟ ਸ਼ਬਦ ਬਦਲਣ ਨਾਲ ਉਹ ਸਰੋਤ ਮੂਲ ਇੰਸਟੈਂਸ ਵੱਲ ਹੀ ਇਸ਼ਾਰਾ ਕਰਦੇ ਰਹਿੰਦੇ ਹਨ, ਜਿਸ ਨਾਲ ਪਰਖ ਹੋ ਕੇ ਵੀ ਕੁਝ ਰੂਟ ਨਾ ਕਰਨ ਵਾਲਾ ਕਨੈਕਸ਼ਨ ਬਣਦਾ ਹੈ।
VPN ਨਤੀਜੇ ਤੋਂ ਪਹਿਲਾਂ ਪ੍ਰੌਕਸੀ ਦਾ ਜਵਾਬ ਪੜ੍ਹੋ
ਕਲਾਇੰਟ ਦੀ ਪਹਿਲੀ ਅਦਲਾ-ਬਦਲੀ ਇੱਕ ਬੇਨਤੀ ਲਾਈਨ ਹੈ ਜੋ ਮੰਜ਼ਿਲ ਦਾ ਹੋਸਟ ਅਤੇ ਪੋਰਟ ਦੱਸਦੀ ਹੈ। ਉਸ ਲਾਈਨ ਦਾ ਜਵਾਬ ਤੁਹਾਨੂੰ ਦੱਸਦਾ ਹੈ ਕਿ ਬਾਈਟ ਸਟ੍ਰੀਮ ਹੈ ਵੀ ਜਾਂ ਨਹੀਂ, ਅਤੇ ਇਹ ਕਿਸੇ ਵੀ ਸਰਟੀਫਿਕੇਟ ਜਾਂ ਪ੍ਰਮਾਣ ਦੀ ਪਰਖ ਤੋਂ ਪਹਿਲਾਂ ਆਉਂਦਾ ਹੈ:
CONNECT vpn.example.net:1194 HTTP/1.1
Host: vpn.example.net:1194| Proxy reply | What it means | Where to look next |
|---|---|---|
407 Proxy Authentication Required | The proxy wants its own credentials | The client's proxy auth options, not the VPN account |
403 Forbidden | The destination or method is not permitted | The proxy's access policy for that host and port |
503 Service Unavailable | The proxy could not complete the upstream connection | The proxy's own logs and the server's listener |
CONNECT ’ਤੇ 200 ਸ਼੍ਰੇਣੀ ਦਾ ਜਵਾਬ ਮਤਲਬ ਸਟ੍ਰੀਮ ਮੌਜੂਦ ਹੈ। ਇਹ ਨਹੀਂ ਦੱਸਦਾ ਕਿ ਗੇਟਵੇ ਸਰਟੀਫਿਕੇਟ ਭਰੋਸੇਯੋਗ ਹੈ ਜਾਂ ਨਹੀਂ, ਸਾਂਝੀ ਕੁੰਜੀ ਮਿਲਦੀ ਹੈ ਜਾਂ ਨਹੀਂ, ਜਾਂ ਵਰਤੋਂਕਾਰ ਖਾਤਾ ਵੈਧ ਹੈ ਜਾਂ ਨਹੀਂ। ਉਹ ਪਰਖਾਂ ਬਾਅਦ ਵਿੱਚ, ਸਟ੍ਰੀਮ ਦੇ ਅੰਦਰ ਹੁੰਦੀਆਂ ਹਨ, ਅਤੇ ਉਹ HTTP ਸਟੇਟਸ ਲਾਈਨ ਦੀ ਥਾਂ ਕਲਾਇੰਟ ਦੇ ਆਪਣੇ ਸੁਨੇਹਿਆਂ ਨਾਲ ਨਾਕਾਮ ਹੁੰਦੀਆਂ ਹਨ। ਕਲਾਇੰਟ ਲੌਗ ਵਿੱਚ ਪਹਿਲੀ OpenVPN ਘਟਨਾ ਪ੍ਰੌਕਸੀ ਹੈਂਡਸ਼ੇਕ ਤੋਂ ਬਾਅਦ ਵੇਖੋ, ਵਿੰਡੋ ਬੰਦ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਦੀ ਆਖਰੀ ਲਾਈਨ ਨਹੀਂ।
ਪ੍ਰੌਕਸੀ ਪ੍ਰਮਾਣ ਅਤੇ VPN ਪ੍ਰਮਾਣ ਅਕਸਰ ਵੱਖਰੀਆਂ ਟੀਮਾਂ ਕੋਲ ਵੱਖਰੀਆਂ ਪਛਾਣਾਂ ਹੁੰਦੀਆਂ ਹਨ। 407 VPN ਖਾਤੇ ਦਾ ਗਲਤ ਪਾਸਵਰਡ ਨਹੀਂ ਹੈ, ਅਤੇ ਨਾਮਨਜ਼ੂਰ ਸਰਟੀਫਿਕੇਟ ਪ੍ਰੌਕਸੀ ਇਜਾਜ਼ਤ ਦੀ ਸਮੱਸਿਆ ਨਹੀਂ ਹੈ।
CONNECT ਕੀ ਪ੍ਰਗਟ ਨਹੀਂ ਕਰਦੀ
ਸਪਸ਼ਟ CONNECT ਸੁਰੰਗ ਰੋਕ ਨਹੀਂ ਹੈ। ਪ੍ਰੌਕਸੀ ਬਾਈਟ ਅੱਗੇ ਭੇਜਦੀ ਹੈ ਅਤੇ VPN ਦਾ TLS ਸੈਸ਼ਨ ਖ਼ਤਮ ਨਹੀਂ ਕਰਦੀ, ਇਸ ਲਈ ਸਰਵਰ ਸਰਟੀਫਿਕੇਟ ਦੀ ਕਲਾਇੰਟ ਪਰਖ ਅਰਥਪੂਰਨ ਰਹਿੰਦੀ ਹੈ ਅਤੇ ਚਾਲੂ ਰਹਿਣੀ ਚਾਹੀਦੀ ਹੈ। ਪ੍ਰੌਕਸੀ ਪਾਰ ਕਰਨ ਲਈ ਪਰਖ ਬੰਦ ਕਰਨਾ ਤੁਹਾਡੀ ਸਮੱਸਿਆ ਤੋਂ ਵੱਖਰੀ ਸਮੱਸਿਆ ਹੱਲ ਕਰਦਾ ਹੈ।
ਅਜਿਹੀਆਂ ਵੱਖਰੀਆਂ ਵਿਵਸਥਾਵਾਂ ਹਨ ਜਿੱਥੇ ਕੋਈ ਸੰਸਥਾ ਜਾਣ-ਬੁੱਝ ਕੇ TLS ਖ਼ਤਮ ਕਰਕੇ ਜਾਂਚ ਕਰਦੀ ਹੈ। ਉਨ੍ਹਾਂ ਨੂੰ ਆਪਣੀ ਭਰੋਸਾ ਸੰਰਚਨਾ ਅਤੇ ਆਪਣਾ ਨੀਤੀ ਫ਼ੈਸਲਾ ਚਾਹੀਦਾ ਹੈ, ਅਤੇ ਉਹ ਆਮ http-proxy ਲਾਈਨ ਜੋ ਮੰਗਦੀ ਹੈ ਉਹ ਨਹੀਂ ਹਨ।
TCP ਅੰਦਰ TCP ਦੀ ਕੀਮਤ
ਸੁਰੰਗ ਨੂੰ TCP ਉੱਤੇ ਢੋਣ ਨਾਲ ਬਾਹਰੀ ਸਟ੍ਰੀਮ ਕ੍ਰਮ ਵਿੱਚ ਅਤੇ ਮੁੜ-ਭੇਜਣ ਨਾਲ ਰਹਿੰਦੀ ਹੈ, ਅਤੇ ਅੰਦਰਲਾ ਟ੍ਰੈਫਿਕ ਵੀ ਆਮ ਤੌਰ ’ਤੇ TCP ਹੁੰਦਾ ਹੈ। ਦੋਵੇਂ ਮੁੜ-ਪ੍ਰਾਪਤੀ ਢੰਗ ਤਾਲਮੇਲ ਨਹੀਂ ਕਰਦੇ, ਇਸ ਲਈ ਇੱਕ ਗੁੰਮਿਆ ਹਿੱਸਾ ਉਸ ਬਾਹਰੀ ਸਟ੍ਰੀਮ ਨੂੰ ਸਾਂਝਾ ਕਰਨ ਵਾਲੀ ਹਰ ਚੀਜ਼ ਨੂੰ ਮੁੜ-ਭੇਜੇ ਜਾਣ ਤੱਕ ਰੋਕ ਸਕਦਾ ਹੈ। ਇਹ ਅਨੁਕੂਲਤਾ ਲਈ ਸੱਚੀ ਅਦਲਾ-ਬਦਲੀ ਹੈ, ਮੁਫ਼ਤ ਅੱਪਗ੍ਰੇਡ ਨਹੀਂ।
ਜਦੋਂ ਨੈੱਟਵਰਕ ਕੋਈ ਹੋਰ ਰਾਹ ਨਾ ਛੱਡੇ ਤਾਂ ਪ੍ਰੌਕਸੀ ਰਾਹ ਵਰਤੋ, ਅਤੇ ਜਿੱਥੇ ਨੀਤੀ ਇਜਾਜ਼ਤ ਦੇਵੇ ਉੱਥੇ ਸਿੱਧਾ UDP ਰਾਹ ਪਸੰਦ ਕਰੋ। ਕਿਸੇ ਵੀ ਹਾਲਤ ਵਿੱਚ, ਬਦਲਾਅ ਤੋਂ ਬਾਅਦ ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਉਹੀ ਪ੍ਰੌਕਸੀ, ਮੰਜ਼ਿਲ ਅਤੇ ਪ੍ਰੋਫਾਈਲ ਅਗਲੇ ਪੜਾਅ ’ਤੇ ਪਹੁੰਚਦੇ ਹਨ; ਉਸ ਪਤੇ ’ਤੇ ਪੰਨਾ ਲੋਡ ਕਰਨ ਵਾਲਾ ਬ੍ਰਾਊਜ਼ਰ ਹੋਰ ਪ੍ਰੋਟੋਕੋਲ ਚਲਾਉਂਦਾ ਹੈ ਅਤੇ ਸੁਰੰਗ ਬਾਰੇ ਕੁਝ ਵੀ ਸਾਬਤ ਨਹੀਂ ਕਰਦਾ।