OpenVPN ਦੇ script-security ਪੱਧਰ 0 ਤੋਂ 3, ਅਤੇ ਹਰ ਇੱਕ ਕੀ ਖੋਲ੍ਹਦਾ ਹੈ
ਹਰ script-security ਪੱਧਰ ਵਧਾਉਂਦਾ ਹੈ ਕਿ ਪ੍ਰੋਫਾਈਲ ਕੀ ਚਲਾ ਸਕਦਾ ਹੈ: ਪਹਿਲਾਂ ਪ੍ਰਬੰਧਕੀ ਸਹਾਇਕ, ਫਿਰ ਵਰਤੋਂਕਾਰ ਸਕ੍ਰਿਪਟਾਂ, ਫਿਰ ਵਾਤਾਵਰਨ ਵਿੱਚ ਪਾਸਵਰਡ। ਹਦਾਇਤਾਂ ਪੜ੍ਹੋ।
ਡੈਸਕਟਾਪ ਕਲਾਇੰਟ ਵਿੱਚ ਪ੍ਰੋਫਾਈਲ ਆਯਾਤ ਕਰੋ ਅਤੇ ਪਹਿਲੀ ਅਸਫਲਤਾ ਅਕਸਰ ਉਹ ਲਾਈਨ ਹੁੰਦੀ ਹੈ ਜਿਸਨੂੰ ਕਲਾਇੰਟ ਮੰਨਣ ਤੋਂ ਇਨਕਾਰ ਕਰਦਾ ਹੈ: ਇੱਕ ਸਕ੍ਰਿਪਟ ਹੂਕ ਜੋ ਉਹ ਨਹੀਂ ਚਲਾਏਗਾ, ਜਾਂ script-security ਮੁੱਲ ਜਿਸਨੂੰ ਉਹ ਬਹੁਤ ਵੱਧ ਆਗਿਆ ਦੇਣ ਵਾਲਾ ਮੰਨਦਾ ਹੈ। ਸੰਖਿਆ ਵਧਾਉਣ ਨਾਲ ਸੰਵਾਦ ਬੰਦ ਹੋ ਜਾਂਦਾ ਹੈ। ਪਰ ਇਹ ਉਸ ਪ੍ਰੋਫਾਈਲ ਨੂੰ ਤੁਹਾਡੀ ਮਸ਼ੀਨ ਉੱਤੇ ਕੀ ਚਲਾਉਣ ਦੀ ਆਗਿਆ ਹੈ, ਇਹ ਵੀ ਵਧਾ ਦਿੰਦਾ ਹੈ, ਜੋ ਸਿਰਫ਼ ਚੇਤਾਵਨੀ ਬੰਦ ਕਰਨ ਲਈ ਦੇਣਾ ਅਜੀਬ ਗੱਲ ਹੈ। ਆਯਾਤ ਨੂੰ ਹਦਾਇਤ ਤੱਕ ਲੈ ਜਾਓ ਅਤੇ ਫੈਸਲਾ ਠੋਸ ਹੋ ਜਾਂਦਾ ਹੈ।
ਆਯਾਤ ਸੰਵਾਦ ਤੋਂ ਹਦਾਇਤ ਤੱਕ
ਪ੍ਰੋਫਾਈਲ ਹਦਾਇਤਾਂ ਵਾਲੀ ਇੱਕ ਟੈਕਸਟ ਫਾਈਲ ਹੈ, ਅਤੇ ਕੋਈ ਵੀ ਸੁਰੰਗ ਬਣਨ ਤੋਂ ਪਹਿਲਾਂ ਕਲਾਇੰਟ ਉਹਨਾਂ ਨੂੰ ਪੜ੍ਹਦਾ ਹੈ। up, down ਜਾਂ tls-verify ਵਰਗੀ ਹਦਾਇਤ ਇੱਕ ਬਾਹਰੀ ਪ੍ਰੋਗਰਾਮ ਦਾ ਨਾਮ ਦਿੰਦੀ ਹੈ ਜੋ OpenVPN ਨੇ ਕਿਸੇ ਨਿਰਧਾਰਤ ਪਲ ਚਲਾਉਣਾ ਹੈ। OpenVPN ਇਸਨੂੰ ਚਲਾਉਣ ਲਈ ਤਿਆਰ ਹੈ ਜਾਂ ਨਹੀਂ, ਇਹ script-security ਨਾਂ ਦੀ ਵੱਖਰੀ ਸੈਟਿੰਗ ਹੈ, ਅਤੇ ਪ੍ਰੋਫਾਈਲ ਆਮ ਤੌਰ ਉੱਤੇ ਇਹ ਵੀ ਤੈਅ ਕਰਦਾ ਹੈ।
ਇਸ ਲਈ ਚੇਤਾਵਨੀ ਕ੍ਰਿਪਟੋਗ੍ਰਾਫੀ ਜਾਂ ਸਰਟੀਫਿਕੇਟਾਂ ਬਾਰੇ ਨਹੀਂ। ਇਹ ਇੱਕ ਕਨਫ਼ਿਗਰੇਸ਼ਨ ਫਾਈਲ ਬਾਰੇ ਹੈ ਜੋ ਕਲਾਇੰਟ ਨੂੰ ਹੋਸਟ ਉੱਤੇ ਕੁਝ ਚਲਾਉਣ ਲਈ ਕਹਿ ਰਹੀ ਹੈ, ਅਤੇ ਕਲਾਇੰਟ ਬਾਰੇ ਜੋ ਜਾਂਚ ਰਿਹਾ ਹੈ ਕਿ ਉਸਦਾ ਮੌਜੂਦਾ ਆਗਿਆ ਪੱਧਰ ਉਸ ਬੇਨਤੀ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ ਜਾਂ ਨਹੀਂ।
ਇਸ ਪੜਾਅ ਉੱਤੇ ਦੋ ਵੱਖਰੀਆਂ ਅਸਫਲਤਾਵਾਂ ਇੱਕੋ ਜਿਹੀਆਂ ਦਿਸਦੀਆਂ ਹਨ। ਜੋ ਪ੍ਰੋਫਾਈਲ ਅਜਿਹਾ ਪੱਧਰ ਮੰਗਦਾ ਹੈ ਜੋ ਕਲਾਇੰਟ ਨਹੀਂ ਦੇਵੇਗਾ, ਉਹ ਇਨਕਾਰ ਪੈਦਾ ਕਰਦਾ ਹੈ। ਜੋ ਪ੍ਰੋਫਾਈਲ ਅਜਿਹਾ ਪੱਧਰ ਮੰਗਦਾ ਹੈ ਜੋ ਕਲਾਇੰਟ ਦਿੰਦਾ ਹੈ ਪਰ ਸਕ੍ਰਿਪਟ ਗੈਰਹਾਜ਼ਰ ਹੈ, ਉਹ ਇਸਦੀ ਬਜਾਏ ਚਲਾਉਣ ਵੇਲੇ ਅਸਫਲਤਾ ਪੈਦਾ ਕਰਦਾ ਹੈ, ਅਤੇ ਸਹਾਇਤਾ ਥ੍ਰੈਡਾਂ ਵਿੱਚ ਦੋਵੇਂ ਰਲਾ ਦਿੱਤੇ ਜਾਂਦੇ ਹਨ। ਇੱਕ ਆਗਿਆ ਦਾ ਸਵਾਲ ਹੈ ਅਤੇ ਦੂਜਾ ਪੈਕੇਜਿੰਗ ਦਾ ਸਵਾਲ।
ਹਰ ਪੱਧਰ ਅਸਲ ਵਿੱਚ ਕੀ ਖੋਲ੍ਹਦਾ ਹੈ
ਪੱਧਰ 0 ਬਾਹਰੀ ਪ੍ਰੋਗਰਾਮ ਕਾਲਾਂ ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਮਨ੍ਹਾ ਕਰਦਾ ਹੈ, ਜੋ ਬਿਨਾਂ ਮਦਦ ਦੇ ਆਪਣਾ ਇੰਟਰਫ਼ੇਸ ਸੰਰਚਿਤ ਕਰਨ ਵਾਲੇ ਕਲਾਇੰਟ ਲਈ ਸੰਗਤ ਹੈ ਅਤੇ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਨੂੰ ਸੱਦਣ ਵਾਲੇ ਲਈ ਅਸੰਗਤ ਹੈ। ਪੱਧਰ 1, ਡਿਫ਼ਾਲਟ, ਇੰਟਰਫ਼ੇਸ ਅਤੇ ਰੂਟ ਸੰਰਚਨਾ ਲਈ ਲੋੜੀਂਦੀਆਂ ਬਿਲਟ-ਇਨ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਫਾਈਲਾਂ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਦੋਵਾਂ ਵਿੱਚੋਂ ਕੋਈ ਪੱਧਰ ਵਰਤੋਂਕਾਰ ਵੱਲੋਂ ਦਿੱਤੀ ਕੋਈ ਚੀਜ਼ ਨਹੀਂ ਚਲਾਉਂਦਾ।
| Level | What OpenVPN may execute | What it exposes |
|---|---|---|
| 0 | No external programs at all | Interface and route setup must not depend on helpers |
| 1 (default) | Built-in helpers such as ip, ifconfig, route or netsh | Privileged commands the platform already ships |
| 2 | Built-in helpers plus user-defined scripts | Whatever the named script does with the client's privileges |
| 3 | Everything above, plus passwords in environment variables | Credentials visible to child processes and their logs |
ਪੱਧਰ 2 ਦਿਲਚਸਪ ਸੀਮਾ ਹੈ, ਕਿਉਂਕਿ ਇਹ ਵਰਤੋਂਕਾਰ-ਪਰਿਭਾਸ਼ਿਤ ਸਕ੍ਰਿਪਟਾਂ ਨੂੰ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ। ਉਸ ਬਿੰਦੂ ਤੋਂ ਕਲਾਇੰਟ ਦੇ ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰ ਅਜਿਹੇ ਕੋਡ ਉੱਤੇ ਲਾਗੂ ਹੁੰਦੇ ਹਨ ਜੋ ਤੁਸੀਂ ਕਦੇ ਨਹੀਂ ਪੜ੍ਹਿਆ ਹੋ ਸਕਦਾ, ਤੁਹਾਡੇ ਵੱਲੋਂ ਨਾ ਚੁਣੇ ਪਲਾਂ ਵਿੱਚ ਸੱਦਿਆ ਜਾਂਦਾ ਹੈ, ਜੁੜਨ ਦੇ ਵੇਰਵੇ ਵਾਲੇ ਵਾਤਾਵਰਨ ਵਿੱਚ ਚੱਲਦਾ ਹੈ। ਪੱਧਰ 3 ਹੋਰ ਅੱਗੇ ਜਾਂਦਾ ਹੈ ਅਤੇ ਵਾਤਾਵਰਨ ਚਰਾਂ ਰਾਹੀਂ ਪਾਸਵਰਡ ਭੇਜਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਇਸ ਲਈ ਹਦਾਇਤਾਂ ਇਸਨੂੰ ਸੰਭਾਵੀ ਤੌਰ ਉੱਤੇ ਅਸੁਰੱਖਿਅਤ ਦੱਸਦੀਆਂ ਹਨ।
ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੋਈ ਵੀ ਸੰਖਿਆ ਤਾਕਤ ਦੀ ਸੈਟਿੰਗ ਨਹੀਂ। ਪੱਧਰ 3 ਵਾਲੇ ਪ੍ਰੋਫਾਈਲ ਵਿੱਚ ਪੱਧਰ 1 ਨਾਲੋਂ ਵਧੀਆ ਐਨਕ੍ਰਿਪਸ਼ਨ ਨਹੀਂ; ਇਸ ਵਿੱਚ ਸਿਰਫ਼ ਵੱਡੀ ਚਲਾਉਣ ਸਤਹ ਹੈ, ਅਤੇ ਸੁਰੰਗ ਇੱਕੋ ਜਿਹੀ ਹੈ।
ਤੈਅ ਕਰੋ ਕਿ ਪ੍ਰੋਫਾਈਲ ਕਿਸਦੇ ਯੋਗ ਹੈ
ਸਕ੍ਰਿਪਟ ਨੂੰ ਕਿਹੜਾ ਪੱਧਰ ਚਾਹੀਦਾ ਹੈ, ਇਹ ਪੁੱਛਣ ਤੋਂ ਪਹਿਲਾਂ ਪੁੱਛੋ ਕਿ ਇਹ ਕਿਸ ਲਈ ਹੈ। DNS ਸੈਟਿੰਗਾਂ ਧੱਕਣ ਵਾਲਾ ਜਾਂ ਜੁੜਨ ਤੋਂ ਬਾਅਦ ਰੂਟ ਠੀਕ ਕਰਨ ਵਾਲਾ ਹੂਕ ਕੁਝ ਚਲਾਉਣ ਦਾ ਜਾਇਜ਼ ਕਾਰਨ ਹੈ। ਅਸਥਾਈ ਫੋਲਡਰ ਵਿੱਚ ਅਣਜਾਣ ਬਾਈਨਰੀ ਸੱਦਣ ਵਾਲਾ ਹੂਕ ਰੁਕਣ ਦਾ ਕਾਰਨ ਹੈ।
ਸਕ੍ਰਿਪਟ ਦਾ ਰਾਹ ਸਕ੍ਰਿਪਟ ਜਿੰਨਾ ਹੀ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਸਾਪੇਖ ਰਾਹ ਉਸ ਫੋਲਡਰ ਦੇ ਸਾਪੇਖ ਹੱਲ ਹੁੰਦਾ ਹੈ ਜੋ ਕਲਾਇੰਟ ਵਰਤਦਾ ਹੈ, ਅਤੇ ਲਿਖਣਯੋਗ ਫੋਲਡਰ ਇੱਕ ਵਾਰ ਦੀ ਆਯਾਤ ਨੂੰ ਸਥਾਈ ਚਲਾਉਣ ਸਥਾਨ ਬਣਾ ਦਿੰਦਾ ਹੈ। ਵਰਤੋਂਕਾਰ ਜੋ ਬਦਲ ਨਹੀਂ ਸਕਦਾ ਅਜਿਹੇ ਫੋਲਡਰ ਵਿੱਚ ਸੰਪੂਰਨ ਰਾਹ ਹੀ ਪਸੰਦ ਕਰਨ ਯੋਗ ਰੂਪ ਹਨ।
ਸਕ੍ਰਿਪਟਾਂ ਕਲਾਇੰਟ ਦਾ ਵਾਤਾਵਰਨ ਵੀ ਵਿਰਾਸਤ ਵਿੱਚ ਲੈਂਦੀਆਂ ਹਨ, ਜਿੱਥੇ ਪ੍ਰਮਾਣ ਅਤੇ ਜੁੜਨ ਮੈਟਾਡੇਟਾ ਰਹਿੰਦੇ ਹਨ। ਇਹੀ ਵਿਰਾਸਤ ਪੱਧਰ 3 ਨੂੰ ਆਪਣਾ ਵਾਤਾਵਰਨ ਲੌਗ ਕਰਨ ਵਾਲੀ ਸਕ੍ਰਿਪਟ ਨਾਲ ਖ਼ਤਰਨਾਕ ਬਣਾਉਂਦੀ ਹੈ, ਅਤੇ ਇਸੇ ਲਈ ਸਕ੍ਰਿਪਟ-ਸਮਰੱਥ ਕਲਾਇੰਟ ਦਾ ਡਾਇਗਨਸਟਿਕ ਡੰਪ ਟਿਕਟ ਵਿੱਚ ਚਿਪਕਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਦੂਜੀ ਨਜ਼ਰ ਦਾ ਹੱਕਦਾਰ ਹੈ। ਸਾਂਝਾ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਵਾਤਾਵਰਨ ਹਟਾਓ।
grep -nE 'script-security|^up |^down |tls-verify' client.ovpnਇੱਕ ਚੀਜ਼ ਬਦਲੋ, ਫਿਰ ਟੁੱਟਣ ਵੱਲ ਵੀ ਦੇਖੋ
ਜੇ ਪ੍ਰੋਫਾਈਲ ਨੂੰ ਸੱਚਮੁੱਚ ਸਕ੍ਰਿਪਟ ਚਾਹੀਦੀ ਹੈ, ਤਾਂ ਸਿਰਫ਼ ਪੱਧਰ ਬਦਲੋ ਅਤੇ ਸਿਰਫ਼ ਉਸੇ ਪ੍ਰੋਫਾਈਲ ਲਈ। ਕਲਾਇੰਟ ਨੂੰ ਅਗਲੇ ਭਾਗ ਵਿੱਚ ਵਿਸਥਾਰ ਨਾਲ ਆਉਟਪੁੱਟ ਨਾਲ ਚਲਾਓ ਤਾਂ ਜੋ ਸਕ੍ਰਿਪਟ ਦੀਆਂ ਆਪਣੀਆਂ ਗਲਤੀਆਂ ਦਿਸਣ, ਸੇਵਾ ਪ੍ਰਬੰਧਕ ਉਹਨਾਂ ਨੂੰ ਨਿਗਲ ਨਾ ਜਾਵੇ।
openvpn --config client.ovpn --script-security 2 --verb 3
ip route show default
ਸਿਰਫ਼ ਜੁੜਨ ਨਹੀਂ, ਪੂਰਾ ਜੀਵਨ ਚੱਕਰ ਪਰਖੋ। ਅਸਫਲ ਡਾਊਨ ਹੂਕ ਰਾਹਾਂ ਨੂੰ ਮ੍ਰਿਤ ਸੁਰੰਗ ਵੱਲ ਰੱਖਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਅਜਿਹੀ ਮਸ਼ੀਨ ਬਣਦੀ ਹੈ ਜੋ ਜੁੜੀ ਦਿਸਦੀ ਹੈ ਪਰ ਕਿਤੇ ਨਹੀਂ ਪਹੁੰਚਦੀ। ਤਬਦੀਲੀ ਨੂੰ ਪੂਰਾ ਐਲਾਨਣ ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ ਵਾਰ ਮੁੜ ਜੁੜੋ ਅਤੇ ਇੱਕ ਵਾਰ ਡਿਸਕਨੈਕਟ ਕਰੋ, ਅਤੇ ਹਰੇਕ ਤੋਂ ਬਾਅਦ ਰਾਊਟਿੰਗ ਸਾਰਣੀ ਜਾਂਚੋ।
ਮੂਲ ਪ੍ਰੋਫਾਈਲ ਦੀ ਕਾਪੀ ਰੱਖੋ। ਜੇ ਪਲੇਟਫ਼ਾਰਮ ਕਲਾਇੰਟ ਉਹੀ ਸਕ੍ਰਿਪਟਿੰਗ ਮਾਡਲ ਲਾਗੂ ਨਹੀਂ ਕਰਦਾ, ਤਾਂ ਆਯਾਤ ਸਫਲ ਹੋਣ ਤੱਕ ਹਦਾਇਤਾਂ ਮਿਟਾਉਣਾ ਸੁਰੰਗ ਨੂੰ ਲੋੜੀਂਦਾ DNS ਜਾਂ ਰੂਟ ਏਕੀਕਰਨ ਹਟਾ ਸਕਦਾ ਹੈ, ਅਤੇ ਨਤੀਜੇ ਵਜੋਂ ਬਣਿਆ ਜੁੜਾਅ ਪੂਰੀ ਤਰ੍ਹਾਂ ਪ੍ਰਮਾਣਿਤ ਹੋਵੇਗਾ ਪਰ ਕੁਝ ਵੀ ਹੱਲ ਨਹੀਂ ਕਰੇਗਾ।
ਦਰਜ ਕਰਨ ਯੋਗ ਫੈਸਲਾ ਤੰਗ ਹੈ: ਕਿਹੜੀ ਸਕ੍ਰਿਪਟ, ਕਿਹੜੇ ਰਾਹ ਉੱਤੇ, ਕਿਹੜੇ ਪੱਧਰ ਉੱਤੇ ਮਨਜ਼ੂਰ, ਕਿਹੜੇ ਪ੍ਰੋਫਾਈਲ ਲਈ। ਪ੍ਰੋਫਾਈਲ ਵਿੱਚ ਬਾਕੀ ਸਭ ਅਣਬਦਲਿਆ ਰਹਿੰਦਾ ਹੈ, ਅਤੇ ਇਹ ਅਜਿਹਾ ਵਾਕ ਹੈ ਜਿਸਨੂੰ ਸਮੀਖਿਅਕ ਜਾਂਚ ਸਕਦਾ ਹੈ।