ਸਥਾਪਿਤ Linux VPN ਵਰਤਣ ਵਾਲਾ ਬਰਾਊਜ਼ਰ /dev/net/tun ਨਹੀਂ ਖੋਲ੍ਹਦਾ। ਇਹ ਇੱਕ ਸਾਕਟ ਖੋਲ੍ਹਦਾ ਹੈ, ਅਤੇ ਕਰਨਲ ਤੈਅ ਕਰਦਾ ਹੈ ਕਿ ਉਸ ਸਾਕਟ ਦੇ ਪੈਕਟ ਕਿਸ ਇੰਟਰਫ਼ੇਸ ਰਾਹੀਂ ਬਾਹਰ ਜਾਂਦੇ ਹਨ। ਟਨਲ ਬਣਾਉਣ ਵਾਲੀ ਪ੍ਰਕਿਰਿਆ ਉਸ ਪ੍ਰਕਿਰਿਆ ਤੋਂ ਵੱਖਰਾ ਕੰਮ ਕਰ ਰਹੀ ਹੈ ਜਿਸ ਦਾ ਟ੍ਰੈਫ਼ਿਕ ਇਹ ਢੋਂਦੀ ਹੈ। ਇਹ ਦੋਵੇਂ ਭੂਮਿਕਾਵਾਂ ਵੱਖਰੀਆਂ ਰੱਖਣਾ ਬਹੁਤ ਸਾਰੇ ਇਜਾਜ਼ਤ ਸਵਾਲਾਂ ਦਾ ਜਵਾਬ ਉਨ੍ਹਾਂ ਦੇ ਪੁੱਛੇ ਜਾਣ ਤੋਂ ਪਹਿਲਾਂ ਦੇ ਦਿੰਦਾ ਹੈ।

ਸਾਕਟ ਤੋਂ ਟਨਲ ਤੱਕ ਇੱਕ ਪੈਕਟ ਦਾ ਪਿੱਛਾ ਕਰੋ

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

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

ਦੋਵੇਂ ਅੱਧੇ ਇੱਕ ਵਾਰ ਖਿੱਚੋ, ਫਿਰ ਇਜਾਜ਼ਤ ਸਵਾਲ ਰੱਖਣੇ ਸੌਖੇ ਹੋ ਜਾਣਗੇ। ਉੱਪਰਲਾ ਅੱਧਾ ਐਪਾਂ ਦੀ ਦੁਨੀਆ ਹੈ, ਅਤੇ ਹੇਠਲਾ ਅੱਧਾ ਡੈਮਨ ਦਾ ਹੈ।

ਤੈਅ ਕਰੋ ਕਿਸਨੂੰ ਡਿਵਾਈਸ ਚਾਹੀਦੀ ਹੈ ਅਤੇ ਕਿਸਨੂੰ ਨਹੀਂ

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

ਇੱਕ ਵਾਰ ਰੂਟ ਅਤੇ ਨੀਤੀ ਥਾਂ ’ਤੇ ਹੋਣ, ਇੱਕ ਆਮ ਪ੍ਰਕਿਰਿਆ ਬਣੇ ਰਾਹ ਨੂੰ ਆਪਣੀਆਂ ਆਮ ਸਾਕਟ ਕਾਲਾਂ ਰਾਹੀਂ ਵਰਤਦੀ ਹੈ। ਇਸਨੂੰ ਡਿਵਾਈਸ ਨੋਡ ਦੀ ਲੋੜ ਨਹੀਂ, ਅਤੇ root ਦੀ ਵੀ ਲੋੜ ਨਹੀਂ।

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

ਐਪ ਅਸਲ ਵਿੱਚ ਕਿਸ ਨੇਮਸਪੇਸ ਵਿੱਚ ਚੱਲਦੀ ਹੈ, ਜਾਂਚੋ

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

ਇਸਨੂੰ ip netns list ਅਤੇ ip -n NAME route ਨਾਲ, ਜਾਂ ਪ੍ਰਕਿਰਿਆ ਦੀ ਨੇਮਸਪੇਸ ਲਿੰਕ ਵੇਖ ਕੇ ਜਾਂਚੋ। ਜਵਾਬ ਆਮ ਤੌਰ ’ਤੇ ਇੱਕ ਹੀ ਕਮਾਂਡ ਵਿੱਚ ਦਿਸਦਾ ਹੈ।

ਇੱਕ ਹੀ ਹੋਸਟ ਦੇ ਦੋ ਵਰਤੋਂਕਾਰਾਂ ਨੂੰ ਨੀਤੀ ਰਾਹੀਂ ਵੱਖਰੇ ਰਾਹ ਵੀ ਦਿੱਤੇ ਜਾ ਸਕਦੇ ਹਨ। ਇਹ ਨੈੱਟਵਰਕ ਦਾ ਫੈਸਲਾ ਹੈ, ਡਿਵਾਈਸ ਮਾਲਕੀ ਦਾ ਸਬੂਤ ਨਹੀਂ।

ਸਮਰੱਥਾਵਾਂ ਨੂੰ ਨੈੱਟਵਰਕ ਨੀਤੀ ਤੋਂ ਵੱਖ ਕਰੋ

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

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

ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰ ਦਾ ਨਾਮ ਲੈਣ ਤੋਂ ਪਹਿਲਾਂ ਕਾਰਵਾਈ ਦਾ ਨਾਮ ਲਵੋ। ਦੋਵਾਂ ਨੂੰ ਵੱਖ ਕਰਨਾ ਆਮ ਤੌਰ ’ਤੇ ਦਿਸਣ ਨਾਲੋਂ ਸੌਖਾ ਹੁੰਦਾ ਹੈ।

ਦੋ ਖਾਤਿਆਂ ਨਾਲ ਵੰਡ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ

ਟਨਲ ਨੂੰ ਸੇਵਾ ਵਜੋਂ ਜੋੜੋ, ਫਿਰ ਐਪ ਨੂੰ ਆਮ ਵਰਤੋਂਕਾਰ ਵਜੋਂ ਚਲਾਓ ਅਤੇ ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਇਹ ਨਿੱਜੀ ਸਰੋਤ ਤੱਕ ਪਹੁੰਚਦੀ ਹੈ। ਉਸ ਵਰਤੋਂਕਾਰ ਦੇ ਸ਼ੈੱਲ ਤੋਂ ਮੰਜ਼ਿਲ ਲਈ ip route get ਜਾਂਚੋ ਕਿ ਕਿਹੜਾ ਇੰਟਰਫ਼ੇਸ ਚੁਣਿਆ ਗਿਆ। ਜੇ ਰੂਟ ਸਹੀ ਹੈ ਅਤੇ ਕਨੈਕਸ਼ਨ ਫਿਰ ਵੀ ਫੇਲ੍ਹ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਸਮੱਸਿਆ ਨੀਤੀ ਹੈ, ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰ ਨਹੀਂ।

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

ਸੰਬੰਧਿਤ ਲੇਖ