ਕਿਸੇ ਅੰਦਰੂਨੀ ਸੇਵਾ ਤੱਕ ਪਹੁੰਚਣ ਦਾ ਤਰੀਕਾ ਤਿੰਨ ਇੰਜੀਨੀਅਰਾਂ ਨੂੰ ਪੁੱਛੋ ਅਤੇ ਤੁਹਾਨੂੰ ਤਿੰਨ ਵੱਖਰੇ ਡਿਜ਼ਾਈਨ ਮਿਲਣਗੇ: ਇੱਕ ਵੈੱਬ ਪ੍ਰੌਕਸੀ, ਇੱਕ SSH ਟਨਲ ਜਾਂ ਇੱਕ ਪੂਰਾ VPN। ਤਿੰਨੇ ਹੀ ਇੱਕ ਦੂਰ ਦੀ ਸੇਵਾ ਨੂੰ ਪਹੁੰਚ ਵਿੱਚ ਲਿਆ ਸਕਦੇ ਹਨ, ਅਤੇ ਤਿੰਨੇ ਹੀ ਟ੍ਰੈਫਿਕ ਨੂੰ ਕਿਸੇ ਹੋਰ ਥਾਂ ਤੋਂ ਆਉਂਦਾ ਦਿਖਾ ਸਕਦੇ ਹਨ। ਫ਼ਰਕ ਬਾਅਦ ਵਿੱਚ ਉਦੋਂ ਦਿਸਦਾ ਹੈ, ਜਦੋਂ ਵਰਤਿਆ ਜਾ ਰਿਹਾ ਪ੍ਰੋਟੋਕੋਲ ਉਹ ਨਹੀਂ ਹੁੰਦਾ ਜਿਸਦੀ ਚੁਣਿਆ ਟੂਲ ਧਾਰਨਾ ਲੈਂਦਾ ਹੈ। ਜੋ ਡਿਜ਼ਾਈਨ ਬ੍ਰਾਊਜ਼ਰ ਦੀ ਤੇਜ਼ ਜਾਂਚ ਪਾਸ ਕਰ ਜਾਂਦਾ ਹੈ, ਉਹ ਅਕਸਰ ਉਸ ਐਪਲੀਕੇਸ਼ਨ ਉੱਤੇ ਫੇਲ੍ਹ ਹੁੰਦਾ ਹੈ ਜਿਸ ਲਈ ਬੇਨਤੀ ਕੀਤੀ ਗਈ ਸੀ।

ਦੋ ਤੱਥਾਂ ਤੋਂ ਫੈਸਲਾ ਕਰੋ: ਕਿਹੜੇ ਪ੍ਰੋਟੋਕੋਲ ਲੰਘਣੇ ਚਾਹੀਦੇ ਹਨ, ਅਤੇ ਕੌਣ ਸ਼ਾਮਲ ਨਾਵਾਂ ਨੂੰ ਹੱਲ ਕਰ ਸਕਦਾ ਹੈ। ਬਾਕੀ ਸਭ ਤਰਜੀਹ ਹੈ।

ਪ੍ਰੌਕਸੀ ਸਿਰਫ਼ ਉਹੀ ਹਿਲਾਉਂਦੀ ਹੈ ਜੋ ਉਹ ਸਮਝਦੀ ਹੈ

ਇੱਕ ਵੈੱਬ ਪ੍ਰੌਕਸੀ ਉਸ ਪ੍ਰੋਟੋਕੋਲ ਨੂੰ ਪਾਰਸ ਕਰਦੀ ਹੈ ਜਿਸ ਲਈ ਉਹ ਬਣੀ ਹੈ। ਕਲਾਇੰਟ ਉਸਨੂੰ ਇੱਕ ਬੇਨਤੀ ਦਿੰਦਾ ਹੈ ਅਤੇ ਉਹ ਉਹ ਬੇਨਤੀ ਅੱਗੇ ਭੇਜਦੀ ਹੈ, ਇਸ ਲਈ ਜਿਸ ਐਪਲੀਕੇਸ਼ਨ ਵਿੱਚ ਪ੍ਰੌਕਸੀ ਸੈਟਿੰਗ ਨਹੀਂ ਹੈ ਉਹ ਕਦੇ ਵੀ ਸ਼ਾਮਲ ਨਹੀਂ ਹੁੰਦੀ। HTTPS ਲਈ ਕਲਾਇੰਟ ਨੂੰ ਇੱਕ ਅਪਾਰਦਰਸ਼ੀ ਚੈਨਲ ਚਾਹੀਦਾ ਹੈ, ਜੋ ਪ੍ਰੌਕਸੀ ਬੇਨਤੀ ਪੜ੍ਹਨ ਦੀ ਬਜਾਏ CONNECT ਰਾਹੀਂ ਦਿੰਦੀ ਹੈ।

ਇੱਕ SSH ਡਾਇਨਾਮਿਕ ਫਾਰਵਰਡ ਇੱਕ ਸਥਾਨਕ ਪੋਰਟ ਖੋਲ੍ਹਦਾ ਹੈ ਜੋ SOCKS ਬੋਲਦੀ ਹੈ, ਅਤੇ ਉਹ ਪੋਰਟ ਇੱਕ TCP ਸਟ੍ਰੀਮ ਨੂੰ ਉਸ ਮੰਜ਼ਿਲ ਤੱਕ ਭੇਜਦੀ ਹੈ ਜੋ ਕਲਾਇੰਟ ਦੱਸਦਾ ਹੈ। TCP ਉੱਤੇ ਬਣੇ ਪ੍ਰੋਟੋਕੋਲ ਆਮ ਤੌਰ ਉੱਤੇ ਇਸ ਰਾਹੀਂ ਕੰਮ ਕਰਦੇ ਹਨ। UDP ਨਹੀਂ ਕਰਦਾ, ਜਦੋਂ ਤੱਕ ਕੋਈ ਟੂਲ ਸਪੱਸ਼ਟ ਤੌਰ ਉੱਤੇ ਸਹਾਇਤਾ ਨਾ ਜੋੜੇ। ਇੱਕ ਲੋਕਲ ਫਾਰਵਰਡ ਹੋਰ ਵੀ ਸੰਕਰਾ ਹੈ: ਇੱਕ ਸਥਾਨਕ ਪੋਰਟ ਇੱਕ ਨਿਸ਼ਚਿਤ ਹੋਸਟ ਅਤੇ ਪੋਰਟ ਉੱਤੇ ਮੈਪ, ਜੋ ਸਿਰਫ਼ ਇੱਕ ਜਾਣੀ ਸੇਵਾ ਦੀ ਸੇਵਾ ਕਰਦੀ ਹੈ ਅਤੇ ਹੋਰ ਕੁਝ ਨਹੀਂ।

ssh -D 1080 user@bastion
ssh -L 8443:fileserver.internal:443 user@bastion

VPN ਪੈਕਟ ਹਿਲਾਉਂਦਾ ਹੈ। ਕਲਾਇੰਟ ਜੋ ਵੀ ਟਨਲ ਵਿੱਚ ਰੂਟ ਕਰਦਾ ਹੈ ਉਹ ਸਭ ਉਸ ਵਿੱਚੋਂ ਲੰਘਦਾ ਹੈ, UDP ਅਤੇ ICMP ਸਮੇਤ, ਇਸੇ ਲਈ ਇਹ ਇੱਕ ਨੈੱਟਵਰਕ ਲੋੜ ਲਈ ਢੁਕਦਾ ਹੈ, ਨਾ ਕਿ ਇੱਕ ਕਨੈਕਸ਼ਨ ਲਈ।

ਕੋਈ ਨਾ ਕੋਈ ਨਾਮ ਹੱਲ ਕਰੇਗਾ

ਜਦੋਂ ਟਾਰਗਿਟ ਨਾਮ ਸਿਰਫ਼ ਦੂਰ ਦੇ ਨੈੱਟਵਰਕ ਦੇ DNS ਵਿੱਚ ਮੌਜੂਦ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਜੋ ਵੀ ਬਾਕਸ ਲੁੱਕਅਪ ਕਰਦਾ ਹੈ ਉਸਨੂੰ ਉਹ ਜ਼ੋਨ ਦਿਸਣਾ ਚਾਹੀਦਾ ਹੈ। ਇੱਕ ਵੈੱਬ ਪ੍ਰੌਕਸੀ ਲੁੱਕਅਪ ਖੁਦ ਕਰਦੀ ਹੈ, ਇਸ ਲਈ ਅੰਦਰੂਨੀ ਨਾਮ ਇਸ ਰਾਹੀਂ ਕੰਮ ਕਰਦਾ ਹੈ ਭਾਵੇਂ ਲੈਪਟਾਪ ਨਾਮ ਹੱਲ ਹੀ ਨਾ ਕਰ ਸਕੇ। SOCKS ਵੀ ਇਹੀ ਵਿਵਹਾਰ ਕਰ ਸਕਦਾ ਹੈ, ਪਰ ਸਿਰਫ਼ ਤਦ ਜਦੋਂ ਕਲਾਇੰਟ ਨਾਮ ਅੱਗੇ ਭੇਜੇ, ਨਾ ਕਿ ਪਹਿਲਾਂ ਹੱਲ ਕੀਤੇ ਪਤੇ ਨਾਲ ਜੁੜੇ। ਇਹ ਚੋਣ ਕਲਾਇੰਟ ਵਿੱਚ ਹੁੰਦੀ ਹੈ, ਸਰਵਰ ਵਿੱਚ ਨਹੀਂ।

curl ਇਹ ਵੱਖਰਾਵ ਸਾਫ਼ ਦਿਖਾਉਂਦਾ ਹੈ: ਇੱਕ ਫਲੈਗ ਹੋਸਟਨਾਮ ਪ੍ਰੌਕਸੀ ਨੂੰ ਦਿੰਦਾ ਹੈ, ਦੂਜਾ ਪਹਿਲਾਂ ਇਸਨੂੰ ਸਥਾਨਕ ਤੌਰ ਉੱਤੇ ਹੱਲ ਕਰਦਾ ਹੈ। ਸਥਾਨਕ ਹੱਲ ਨਾਲ ਅੰਦਰੂਨੀ ਨਾਮ ਕਿਸੇ ਟਨਲ ਨੂੰ ਛੂਹਣ ਤੋਂ ਪਹਿਲਾਂ ਹੀ ਫੇਲ੍ਹ ਹੋ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਗਲਤੀ ਪ੍ਰੌਕਸੀ ਨੂੰ ਉਸ ਗੱਲ ਦਾ ਦੋਸ਼ ਦਿੰਦੀ ਹੈ ਜੋ ਅਸਲ ਵਿੱਚ DNS ਦਾ ਫੈਸਲਾ ਸੀ।

VPN ਤੀਜਾ ਰਾਹ ਚੁਣਦਾ ਹੈ: ਰੂਟਾਂ ਦੇ ਕੋਲ ਪ੍ਰਾਈਵੇਟ ਰਿਜ਼ੋਲਵਰ ਅਤੇ ਸਰਚ ਡੋਮੇਨ ਲਗਾ ਕੇ। ਇਹ ਸੁਵਿਧਾਜਨਕ ਹੈ, ਅਤੇ ਇਹ ਇੱਕ ਜਾਣਿਆ ਭਰਮ ਪੈਦਾ ਕਰਦਾ ਹੈ: ਜੋ ਰੂਟ ਮੌਜੂਦ ਹੈ ਪਰ ਰਿਜ਼ੋਲਵਰ ਜਵਾਬ ਨਹੀਂ ਦਿੰਦਾ, ਉਹ ਬਿਲਕੁਲ ਮਰੀ ਹੋਈ ਟਨਲ ਵਰਗਾ ਦਿਸਦਾ ਹੈ, ਭਾਵੇਂ ਪੈਕਟ ਦੂਜੇ ਪਾਸੇ ਪਹੁੰਚ ਰਹੇ ਹੋਣ।

ਜਦੋਂ ਨੈੱਟਵਰਕ ਸਿਰਫ਼ ਇੱਕ ਨਿਕਾਸ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ

ਬਹੁਤ ਸਾਰੇ ਕਾਰਪੋਰੇਟ ਨੈੱਟਵਰਕ ਬਾਹਰੀ ਕਨੈਕਸ਼ਨ ਸਿਰਫ਼ ਇੱਕ ਪ੍ਰਮਾਣਿਤ ਵੈੱਬ ਪ੍ਰੌਕਸੀ ਰਾਹੀਂ ਹੀ ਮਨਜ਼ੂਰ ਕਰਦੇ ਹਨ। OpenVPN ਅਤੇ SSH ਦੋਵੇਂ ਉੱਥੇ ਕੰਮ ਕਰ ਸਕਦੇ ਹਨ, ਪਹਿਲਾ ਆਪਣਾ ਟ੍ਰਾਂਸਪੋਰਟ ਪ੍ਰੌਕਸੀ ਰਾਹੀਂ ਟਨਲ ਕਰਕੇ ਅਤੇ ਦੂਜਾ ਇੱਕ ਪ੍ਰੌਕਸੀ ਕਮਾਂਡ ਰਾਹੀਂ ਜੋ ਛੋਟਾ CONNECT ਸਹਾਇਕ ਚਲਾਉਂਦੀ ਹੈ।

TCP ਉੱਤੇ ਬਣੀਆਂ ਟਨਲਾਂ ਉਸ ਪਾਬੰਦੀ ਤੋਂ ਬਚ ਜਾਂਦੀਆਂ ਹਨ, ਪਰ UDP-ਅਧਾਰਿਤ VPN ਨਹੀਂ, ਜੋ ਬਹੁਤ ਸਾਰੀਆਂ ਉਹ ਕਨਫ਼ੀਗਰੇਸ਼ਨਾਂ ਸਮਝਾਉਂਦਾ ਹੈ ਜੋ ਘਰ ਵਿੱਚ ਕੰਮ ਕਰਦੀਆਂ ਹਨ ਅਤੇ ਦਫ਼ਤਰ ਵਿੱਚ ਫੇਲ੍ਹ ਹੁੰਦੀਆਂ ਹਨ। ਦੂਜੀ ਕੀਮਤ ਧਿਆਨ ਤੋਂ ਬਾਹਰ ਰਹਿ ਜਾਂਦੀ ਹੈ: ਪ੍ਰੌਕਸੀ ਕੀਤੇ TCP ਕਨੈਕਸ਼ਨ ਦੇ ਅੰਦਰ ਲਿਜਾਈ ਜਾਂਦੀ TCP ਟਨਲ ਹੁਣ ਦੋ ਪਰਤਾਂ ਨਾਲ ਦੁਬਾਰਾ ਭੇਜਦੀ ਹੈ, ਅਤੇ ਨੁਕਸਾਨ ਹੇਠ ਉਹ ਜੋੜੀ ਉਸ ਤਰੀਕੇ ਨਾਲ ਰੁਕ ਜਾਂਦੀ ਹੈ ਜੋ ਕੋਈ ਵੀ ਪਰਤ ਇਕੱਲੀ ਨਹੀਂ ਪੈਦਾ ਕਰਦੀ।

ਵਿਚੋਲਿਆਂ ਦੀ ਲੜੀ ਬਣਾਉਣਾ ਪਰਤ ਚੁਣਨ ਤੋਂ ਵੱਖਰਾ ਸਵਾਲ ਹੈ। ਦੂਜੀ ਪ੍ਰੌਕਸੀ ਜਾਂ Tor ਜੋੜਨਾ ਬਦਲਦਾ ਹੈ ਕਿ ਕੌਣ ਕੀ ਦੇਖਦਾ ਹੈ, ਅਤੇ ਲੜੀ ਵਿੱਚ ਸਥਿਤੀ ਤੈਅ ਕਰਦੀ ਹੈ ਕਿ ਕਿਹੜਾ ਹੌਪ ਸਾਈਫ਼ਰਟੈਕਸਟ ਦੇਖਦਾ ਹੈ।

ਕ੍ਰਮ ਹੌਪਾਂ ਦੀ ਗਿਣਤੀ ਤੋਂ ਵੱਧ ਮਾਇਨੇ ਰੱਖਦਾ ਹੈ। ਬਾਹਰੀ ਹੌਪ ਇੱਕ ਐਨਕ੍ਰਿਪਟਡ ਸਟ੍ਰੀਮ ਦੇਖਦਾ ਹੈ ਜਦੋਂ ਕਿ ਅੰਦਰੂਨੀ ਹੌਪ ਉਹ ਸਾਫ਼ ਟੈਕਸਟ ਦੇਖਦਾ ਹੈ ਜੋ ਉਹ ਲਿਜਾਂਦੀ ਹੈ, ਇਸ ਲਈ ਲੜੀ ਓਨੀ ਹੀ ਨਿੱਜੀ ਹੁੰਦੀ ਹੈ ਜਿੰਨਾ ਉਸਦਾ ਸਭ ਤੋਂ ਲਾਪਰਵਾਹ ਕੜੀ ਹੁੰਦਾ ਹੈ। ਹੌਪਾਂ ਵਿੱਚ ਪ੍ਰੋਟੋਕੋਲ ਮਿਲਾਉਣਾ ਇਸਨੂੰ ਆਪਣੇ ਆਪ ਨਹੀਂ ਸੁਧਾਰਦਾ। ਇਹ ਵੱਧ ਕੇ ਫੇਲ੍ਹ ਹੋਣ ਦੇ ਢੰਗਾਂ ਨੂੰ ਸਮਝਣਾ ਔਖਾ ਬਣਾ ਦਿੰਦਾ ਹੈ।

ਜਾਲੀ ਪਤਾ ਕੋਈ ਵਿਕਲਪ ਨਹੀਂ

ਕਿਸੇ ਹੋਰ ਦੇ ਸਰੋਤ ਪਤੇ ਨਾਲ ਪੈਕਟ ਬਣਾਉਣਾ ਕੋਈ ਲਾਹੇਵੰਦ ਚੀਜ਼ ਨਹੀਂ ਕਰਦਾ: ਜਵਾਬ ਅਸਲ ਮਾਲਕ ਕੋਲ ਜਾਂਦੇ ਹਨ, ਅਤੇ ਜ਼ਿਆਦਾਤਰ ਨੈੱਟਵਰਕ ਟ੍ਰੈਫਿਕ ਨੂੰ ਸਿੱਧਾ ਸੁੱਟ ਦਿੰਦੇ ਹਨ। ਵਿਚੋਲਾ ਇਸੇ ਲਈ ਲਾਜ਼ਮੀ ਹੈ ਕਿਉਂਕਿ ਸਰੋਤ ਈਜਾਦ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ, ਅਤੇ ਇਹੀ ਤਿੰਨੇ ਡਿਜ਼ਾਈਨਾਂ ਦਾ ਸੱਚਾ ਜਾਇਜ਼ਾ ਹੈ।

ਇਹ ਇਹ ਵੀ ਸੀਮਤ ਕਰਦਾ ਹੈ ਕਿ ਉਨ੍ਹਾਂ ਵਿੱਚੋਂ ਕੋਈ ਕੀ ਦਾਅਵਾ ਕਰ ਸਕਦਾ ਹੈ। ਕਿਸੇ ਖਾਸ ਪਤੇ ਤੋਂ ਉਤਪੰਨ ਹੋਣਾ ਇਸ ਗੱਲ ਦਾ ਸਵਾਲ ਹੈ ਕਿ ਉਹ ਪਤਾ ਕਾਨੂੰਨੀ ਤੌਰ ਉੱਤੇ ਕਿੱਥੇ ਦਿੱਤਾ ਗਿਆ ਹੈ ਅਤੇ ਕੌਣ ਇਸਨੂੰ ਰੂਟ ਕਰ ਸਕਦਾ ਹੈ, ਨਾ ਕਿ ਇਸ ਗੱਲ ਦਾ ਕਿ ਕਿਹੜਾ ਟੂਲ ਹੈਡਰ ਨਕਲੀ ਬਣਾ ਸਕਦਾ ਹੈ। ਜੇ ਕੋਈ ਡਿਜ਼ਾਈਨ ਇਸ ਤੋਂ ਉਲਟ ਮੰਨਦਾ ਹੈ, ਤਾਂ ਉਹ ਧਾਰਨਾ ਪਹਿਲੇ ਉਸ ਪ੍ਰਦਾਤਾ ਕੋਲ ਫੇਲ੍ਹ ਹੁੰਦੀ ਹੈ ਜੋ ਇਸਨੂੰ ਫਿਲਟਰ ਕਰਦਾ ਹੈ। ਧਾਰਨਾ ਲਿਖ ਕੇ ਰੱਖੋ ਤਾਂ ਜੋ ਫੇਲ੍ਹ ਹੋਣ ਵੇਲੇ ਪਛਾਣੀ ਜਾ ਸਕੇ।

ਪ੍ਰੋਟੋਕੋਲਾਂ ਅਤੇ ਨਾਵਾਂ ਨਾਲ ਫੈਸਲਾ ਕਰੋ

ਪ੍ਰੌਕਸੀ ਕੋਲ ਜਾਓ ਜਦੋਂ ਇੱਕ ਵੈੱਬ ਕਲਾਇੰਟ ਨੂੰ ਇੱਕ ਵੈੱਬ ਸੇਵਾ ਚਾਹੀਦੀ ਹੈ ਅਤੇ ਉਸ ਵਿੱਚ ਪ੍ਰੌਕਸੀ ਸੈਟਿੰਗਾਂ ਹਨ। SSH ਟਨਲ ਕੋਲ ਜਾਓ ਜਦੋਂ ਕੁਝ ਜਾਣੀਆਂ TCP ਸੇਵਾਵਾਂ ਕਾਫ਼ੀ ਹਨ ਅਤੇ SSH ਪਹੁੰਚ ਪਹਿਲਾਂ ਹੀ ਹੈ। VPN ਕੋਲ ਜਾਓ ਜਦੋਂ ਕਈ ਐਪਲੀਕੇਸ਼ਨ, ਗੈਰ-TCP ਟ੍ਰੈਫਿਕ, ਪ੍ਰਾਈਵੇਟ DNS ਜਾਂ ਦੁਬਾਰਾ ਵਰਤੋਂ ਯੋਗ ਰਾਹ ਲੋੜ ਦਾ ਹਿੱਸਾ ਹਨ।

ਫਿਰ ਅਸਲ ਕਲਾਇੰਟ ਅਤੇ ਅਸਲ ਨਾਮ ਨਾਲ ਪਰਖੋ। ਪ੍ਰੌਕਸੀ ਰਾਹੀਂ ਪੰਨਾ ਲੋਡ ਕਰਨਾ ਤੁਹਾਨੂੰ UDP ਬਾਰੇ ਕੁਝ ਨਹੀਂ ਸਿਖਾਉਂਦਾ, ਅਤੇ ਇੱਕ ਟੂਲ ਨੂੰ SOCKS ਉੱਤੇ ਚਲਾਉਣਾ ਸਿਸਟਮ ਰਿਜ਼ੋਲਵਰ ਬਾਰੇ ਕੁਝ ਨਹੀਂ ਸਿਖਾਉਂਦਾ। ਪੜ੍ਹੋ ਕਿ ਪ੍ਰੋਸੈਸ ਨੇ ਕਿਹੜਾ ਸਥਾਨਕ ਪਤਾ ਬੰਨ੍ਹਿਆ ਅਤੇ ਕਿਹੜੇ ਰਿਜ਼ੋਲਵਰ ਨੇ ਜਵਾਬ ਦਿੱਤਾ। ਇਹੀ ਉਸ ਰਾਹ ਵਿਚਲਾ ਫ਼ਰਕ ਹੈ ਜੋ ਕੰਮ ਕਰਦਾ ਹੈ ਅਤੇ ਉਸ ਰਾਹ ਵਿਚਲਾ ਜੋ ਸਿਰਫ਼ ਇੱਕ ਵਾਰ ਸੰਜੋਗ ਨਾਲ ਕੰਮ ਕਰ ਗਿਆ।

ਸੰਬੰਧਿਤ ਲੇਖ