OpenVPN ਪ੍ਰਮਾਣ ਪੱਤਰ ਫਾਈਲ ਜਾਂ ਪ੍ਰਬੰਧਨ ਸਾਕੇਟ: ਕਿਹੜਾ ਸਕ੍ਰਿਪਟ ਕਰੀਏ
auth-user-pass ਖਾਤੇ ਦੇ ਪ੍ਰੋਂਪਟ ਨੂੰ ਸੰਭਾਲਦਾ ਹੈ; ਪ੍ਰਬੰਧਨ ਸਾਕੇਟ ਚਾਰੇ ਸੰਭਾਲਦਾ ਹੈ। ਐਕਸਪੋਜ਼ਰ, ਸਕ੍ਰਿਪਟ ਖਰਚ ਅਤੇ ਸੇਵਾ ਵਿੱਚ ਹਰ ਇੱਕ ਕਿਵੇਂ ਫੇਲ ਹੁੰਦਾ ਹੈ ਦੀ ਤੁਲਨਾ ਕਰੋ।
OpenVPN ਸ਼ੁਰੂ ਕਰਕੇ ਕਦੇ ਵੀ ਜੁੜਨ ਵਾਲੀ ਨਾ ਹੋਣ ਵਾਲੀ ਸਕ੍ਰਿਪਟ ਆਮ ਤੌਰ 'ਤੇ ਨੈੱਟਵਰਕ ਦੀ ਸਮੱਸਿਆ ਨਹੀਂ ਹੁੰਦੀ: ਕਲਾਇੰਟ ਟਰਮੀਨਲ ਤੋਂ ਬਿਨਾਂ ਪ੍ਰੋਂਪਟ 'ਤੇ ਬੈਠਾ ਹੁੰਦਾ ਹੈ। OpenVPN ਕੋਲ ਬਿਨਾਂ ਮਨੁੱਖ ਦੇ ਉਸ ਪ੍ਰੋਂਪਟ ਦਾ ਜਵਾਬ ਦੇਣ ਦੇ ਠੀਕ ਦੋ ਸਮਰਥਿਤ ਤਰੀਕੇ ਹਨ, auth-user-pass ਪਿੱਛੇ ਪ੍ਰਮਾਣ ਪੱਤਰ ਫਾਈਲ ਅਤੇ ਪ੍ਰਬੰਧਨ ਸਾਕੇਟ, ਅਤੇ ਇਹ ਇੱਕ-ਦੂਜੇ ਦੀ ਥਾਂ ਨਹੀਂ ਲੈ ਸਕਦੇ। ਫਾਈਲ ਇੱਕ ਨਿਰਦੇਸ਼ ਦਾ ਖਰਚ ਕਰਦੀ ਹੈ ਅਤੇ ਇੱਕ ਪ੍ਰੋਂਪਟ ਦਾ ਜਵਾਬ ਦਿੰਦੀ ਹੈ; ਸਾਕੇਟ ਹਰ ਪ੍ਰੋਂਪਟ ਦਾ ਜਵਾਬ ਦਿੰਦਾ ਹੈ ਅਤੇ loopback ਪੋਰਟ ਖੋਲ੍ਹ ਸਕਣ ਵਾਲੀ ਹਰ ਚੀਜ਼ ਨੂੰ ਬਿਨਾਂ ਪ੍ਰਮਾਣਿਕਤਾ ਵਾਲਾ ਨਿਯੰਤਰਣ ਚੈਨਲ ਦਿੰਦਾ ਹੈ। ਤੁਹਾਡੀ ਤੈਨਾਤੀ ਵਿੱਚ ਕਿਹੜਾ ਫਿੱਟ ਬੈਠਦਾ ਹੈ ਇਹ ਇਸ ਗੱਲ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ ਕਿ ਅਸਲ ਵਿੱਚ ਕਿਹੜਾ ਪ੍ਰੋਂਪਟ ਰੋਕ ਰਿਹਾ ਹੈ, ਅਤੇ ਕਿਹੜਾ ਭੇਦ ਸ਼ਾਂਤ ਛੱਡਣ ਦੀ ਤੁਹਾਨੂੰ ਸਮਰੱਥਾ ਹੈ।
ਮਕੈਨਿਜ਼ਮ ਚੁਣਨ ਤੋਂ ਪਹਿਲਾਂ ਪ੍ਰੋਂਪਟ ਦਾ ਨਾਮ ਰੱਖੋ
ਚਾਰ ਪ੍ਰੋਂਪਟ ਟਰਮੀਨਲ 'ਤੇ ਇੱਕੋ ਜਿਹੇ ਦਿਖਦੇ ਹਨ। ਖਾਤਾ ਜੋੜੀ ਸਰਵਰ ਦੀ PAM ਜਾਂ auth-user-pass-verify ਸੈਟਿੰਗ ਤੋਂ ਆਉਂਦੀ ਹੈ ਅਤੇ ਉਸ ਦਾ ਜਵਾਬ auth-user-pass ਦਿੰਦਾ ਹੈ। ਨਿੱਜੀ ਕੁੰਜੀ ਦਾ ਪਾਸਫ੍ਰੇਜ਼ ਕੁੰਜੀ ਫਾਈਲ ਦਾ ਹੁੰਦਾ ਹੈ ਅਤੇ --askpass ਰਾਹੀਂ ਪੜ੍ਹਿਆ ਜਾਂ ਹੱਥ ਨਾਲ ਟਾਈਪ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। PKCS#12 ਬੰਡਲ ਆਪਣਾ ਪਾਸਵਰਡ ਮੰਗਦਾ ਹੈ। ਪ੍ਰੌਕਸੀ ਪ੍ਰਮਾਣਿਕਤਾ ਖਾਤਾ ਪ੍ਰਮਾਣ ਪੱਤਰ ਨਹੀਂ, --http-proxy ਦੁਆਰਾ ਲਈ ਜਾਣ ਵਾਲੀ auth ਫਾਈਲ ਵਰਤਦੀ ਹੈ।
ਜਦੋਂ OpenVPN systemd, PHP ਜਾਂ Node ਦੇ ਬੱਚੇ ਵਜੋਂ ਚੱਲਦਾ ਹੈ ਤਾਂ ਟਰਮੀਨਲ ਨਹੀਂ ਹੁੰਦਾ, ਇਸ ਲਈ ਇਨ੍ਹਾਂ ਵਿੱਚੋਂ ਕੋਈ ਵੀ ਚੁੱਪਚਾਪ ਰੋਕਦਾ ਹੈ। ਪ੍ਰਕਿਰਿਆ ਉੱਥੇ ਬੈਠੀ ਰਹਿੰਦੀ ਹੈ, ਸਾਈਫਰ ਲਾਈਨ ਤੋਂ ਬਾਅਦ ਲੌਗ ਰੁਕ ਜਾਂਦਾ ਹੈ ਅਤੇ ਯੂਨਿਟ ਅੰਤ ਵਿੱਚ ਸਮਾਂ ਸੀਮਾ ਪਾਰ ਕਰ ਜਾਂਦੀ ਹੈ; ਇਹ ਚੁੱਪ ਹੀ ਕਾਰਨ ਹੈ ਕਿ ਲੋਕ ਇਹ ਦੇਖਣ ਦੀ ਥਾਂ ਕਿ ਕਿਹੜਾ ਪ੍ਰੋਂਪਟ ਲੰਬਿਤ ਹੈ, ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਲੂਪ ਜਾਂ sleep ਜੋੜ ਦਿੰਦੇ ਹਨ। ਚਾਰਿਆਂ ਦਾ ਜਵਾਬ ਸਿਰਫ਼ ਪ੍ਰਬੰਧਨ ਸਾਕੇਟ ਹੀ ਦੇ ਸਕਦਾ ਹੈ। ਪ੍ਰਮਾਣ ਪੱਤਰ ਫਾਈਲ ਪਹਿਲੇ ਦਾ ਜਵਾਬ ਦਿੰਦੀ ਹੈ ਅਤੇ ਹੋਰ ਕਿਸੇ ਦਾ ਨਹੀਂ।
auth-user-pass: ਇੱਕ ਫਾਈਲ, ਇੱਕ ਪ੍ਰੋਂਪਟ
ਫਾਈਲ ਪਹਿਲੀ ਲਾਈਨ ਵਿੱਚ ਵਰਤੋਂਕਾਰ ਨਾਮ ਅਤੇ ਦੂਜੀ ਲਾਈਨ ਵਿੱਚ ਪਾਸਵਰਡ ਰੱਖਦੀ ਹੈ, ਅਤੇ ਹੋਰ ਕੁਝ ਨਹੀਂ: ਕੋਈ ਹਵਾਲਾ ਚਿੰਨ੍ਹ ਨਹੀਂ, ਕੋਈ ਕੁੰਜੀ-ਨਾਮ ਨਹੀਂ, ਕੋਈ ਟਿੱਪਣੀ ਨਹੀਂ। ਮੋਡ 600 ਸੈੱਟ ਕਰੋ ਅਤੇ ਮਾਲਕ ਉਸ ਖਾਤੇ ਨੂੰ ਬਣਾਓ ਜੋ openvpn ਚਲਾਉਂਦਾ ਹੈ, ਜੋ ਸੇਵਾ ਲਈ ਅਕਸਰ ਤੁਹਾਡੇ ਲੌਗਇਨ ਦੀ ਥਾਂ ਸਮਰਪਿਤ ਵਰਤੋਂਕਾਰ ਹੁੰਦਾ ਹੈ। /root ਹੇਠਾਂ root ਦੀ ਮਾਲਕੀ ਵਾਲੀ ਫਾਈਲ ਤੁਹਾਡੇ ਸ਼ੈੱਲ ਵਿੱਚ ਚੱਲਣ ਵਾਲੇ ਆਦੇਸ਼ ਅਤੇ ਬੂਟ 'ਤੇ ਫੇਲ ਹੋਣ ਵਾਲੇ ਯੂਨਿਟ ਵਿਚਕਾਰਲਾ ਫ਼ਰਕ ਹੈ।
ਦੋ ਵੇਰਵੇ ਸਹੀ ਫਾਈਲ ਨੂੰ ਪ੍ਰੋਂਪਟ ਬਣਾ ਦਿੰਦੇ ਹਨ। CRLF ਸੰਭਾਲਣ ਵਾਲਾ ਸੰਪਾਦਕ ਪਾਸਵਰਡ ਨਾਲ ਚਿੰਬੜਿਆ ਕੈਰੇਜ ਰਿਟਰਨ ਛੱਡ ਦਿੰਦਾ ਹੈ, ਇਸ ਲਈ ਸਰਵਰ ਉਹ ਪਾਸਵਰਡ ਨਕਾਰ ਦਿੰਦਾ ਹੈ ਜੋ ਫਾਈਲ ਵਿੱਚ ਸਹੀ ਦਿਸਦਾ ਹੈ; ਅੱਖ ਨਾਲ ਨਹੀਂ, cat -A ਜਾਂ od -c ਨਾਲ ਜਾਂਚੋ। ਅਤੇ ਪ੍ਰੋਫਾਈਲ ਦੇ ਅੰਦਰ ਬਿਨਾਂ ਆਰਗਿਊਮੈਂਟ ਵਾਲਾ auth-user-pass ਡਿਜ਼ਾਈਨ ਅਨੁਸਾਰ «ਵਰਤੋਂਕਾਰ ਨੂੰ ਪੁੱਛੋ» ਦਾ ਅਰਥ ਰੱਖਦਾ ਹੈ, ਜਿਸ ਨੂੰ ਕਮਾਂਡ ਲਾਈਨ ਦਾ ਦੂਜਾ ਨਿਰਦੇਸ਼ ਸ਼ਾਇਦ ਓਵਰਰਾਈਡ ਨਾ ਕਰ ਸਕੇ, ਕਿਉਂਕਿ ਪ੍ਰੋਫਾਈਲ ਉੱਥੇ ਹੀ ਪਾਰਸ ਹੁੰਦੀ ਹੈ ਜਿੱਥੇ ਉਹ ਹੈ।
ਵਿਕਲਪਾਂ ਦਾ ਕ੍ਰਮ ਤੀਜਾ ਜਾਲ ਹੈ, ਅਤੇ ਇਹ ਸੰਸਕਰਣ 'ਤੇ ਨਿਰਭਰ ਹੈ। ਕੁਝ OpenVPN 2.4 ਬਿਲਡ --config ਤੋਂ ਪਹਿਲਾਂ ਆਉਣ 'ਤੇ --auth-user-pass ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰਦੇ ਹਨ, ਇਸ ਲਈ ਉਹੀ ਦੋ ਵਿਕਲਪ ਉਲਟ ਕ੍ਰਮ ਵਿੱਚ ਜੁੜਦੇ ਹਨ। ਨਿਰਦੇਸ਼ ਨੂੰ ਪ੍ਰੋਫਾਈਲ ਦੇ ਅੰਦਰ ਜਾਂ ਕਮਾਂਡ ਲਾਈਨ 'ਤੇ --config ਤੋਂ ਬਾਅਦ ਰੱਖੋ, ਅਤੇ ਹੋਰ ਕੁਝ ਬਦਲਣ ਤੋਂ ਪਹਿਲਾਂ ਪ੍ਰੋਫਾਈਲ ਵਿੱਚ ਹਰ ਵਾਪਰਨ ਨੂੰ grep ਕਰੋ।
auth-nocache ਇਸ ਮਕੈਨਿਜ਼ਮ ਦਾ ਹਿੱਸਾ ਹੈ ਪਰ ਕੁਝ ਵੀ ਨਹੀਂ ਦਿੰਦਾ। ਇਹ ਸੀਮਿਤ ਕਰਦਾ ਹੈ ਕਿ ਕਲਾਇੰਟ ਪ੍ਰਮਾਣ ਪੱਤਰ ਨੂੰ ਮੈਮਰੀ ਵਿੱਚ ਕਿੰਨੀ ਦੇਰ ਰੱਖਦਾ ਹੈ, ਜੋ ਕ੍ਰੈਸ਼ ਤੋਂ ਬਾਅਦ ਮਦਦ ਕਰਦਾ ਹੈ ਅਤੇ ਫਾਈਲ ਨਾ ਹੋਣ 'ਤੇ ਬਿਲਕੁਲ ਨਹੀਂ। ਸਰਵਰ-ਸਾਈਡ ਸੈਸ਼ਨ ਟਾਈਮਆਉਟ ਤੋਂ ਬਾਅਦ ਮੁੜ-ਕਨੈਕਸ਼ਨ ਫਾਈਲ ਨੂੰ ਦੁਬਾਰਾ ਪੜ੍ਹਦਾ ਹੈ, ਇਸ ਲਈ ਬੂਟ 'ਤੇ ਕੰਮ ਕਰਨ ਵਾਲਾ ਪ੍ਰਮਾਣ ਪੱਤਰ ਦਿਨ ਵਿਚਕਾਰ ਵੀ ਖਤਮ ਹੋ ਸਕਦਾ ਹੈ।
ਪ੍ਰਬੰਧਨ ਸਾਕੇਟ: ਹਰ ਪ੍ਰੋਂਪਟ, ਵਧੇਰੇ ਸਤਹ
ਕਲਾਇੰਟ ਨੂੰ ਲਿਸਨਰ ਨਾਲ ਸ਼ੁਰੂ ਕਰੋ ਅਤੇ ਸਪਸ਼ਟ ਕਹੋ ਕਿ ਪ੍ਰੋਂਪਟ ਇਸ 'ਤੇ ਰਿਪੋਰਟ ਹੋਣਗੇ, OpenVPN 2.6 ਮੈਨੂਅਲ ਵਿੱਚ ਦਸਤਾਵੇਜ਼ੀ ਨਿਰਦੇਸ਼ਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ:
management 127.0.0.1 3030
management-query-passwords
bash ਤੋਂ ਕਨੈਕਸ਼ਨ ਨੂੰ ਵਾਧੂ ਫਾਈਲ ਡਿਸਕ੍ਰਿਪਟਰ 'ਤੇ ਰੱਖੋ ਅਤੇ ਸਥਿਤੀ ਦੀ ਥਾਂ ਪ੍ਰੋਂਪਟ ਦੇ ਨਾਮ ਨਾਲ ਜਵਾਬ ਦਿਓ, ਕਿਉਂਕਿ ਮੁੜ-ਕਨੈਕਸ਼ਨ ਕਿਸੇ ਹੋਰ ਕ੍ਰਮ ਵਿੱਚ ਪੁੱਛ ਸਕਦਾ ਹੈ:
exec 3<>/dev/tcp/127.0.0.1/3030
while read -r -u 3 line; do
case "$line" in
*"Need 'Auth' username/password"*)
echo 'username "Auth" alice' >&3
echo 'password "Auth" secret' >&3 ;;
*"Need 'Private Key' password"*)
echo 'password "Private Key" secret' >&3 ;;
esac
done
ਸੀਮਾ ਆਵਾਜਾਈ ਹੈ। ਪ੍ਰਬੰਧਨ ਪ੍ਰੋਟੋਕੋਲ loopback 'ਤੇ TCP ਉੱਤੇ ਸਾਦਾ ਟੈਕਸਟ ਹੈ, ਇਸ ਲਈ ਦੂਰਸਥ ਨਿਯੰਤਰਕ ਤੱਕ ਪਹੁੰਚਣ ਲਈ ਲਿਸਨਰ ਨੂੰ LAN ਜਾਂ ਸੁਰੰਗ ਪਤੇ 'ਤੇ ਪ੍ਰਕਾਸ਼ਿਤ ਨਹੀਂ ਕਰਨਾ ਚਾਹੀਦਾ; ਦੂਰਸਥ ਨਿਯੰਤਰਕ ਦਾ ਅਰਥ SSH ਫਾਰਵਰਡਿੰਗ ਹੈ, ਵਿਸ਼ਾਲ ਬਾਈਂਡ ਨਹੀਂ। ਕਮਿਊਨਿਟੀ ਡੀਮਨ ਵੀ ਇੱਕ ਸਮੇਂ ਇੱਕ ਹੀ ਪ੍ਰਬੰਧਨ ਕਲਾਇੰਟ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ, ਇਸ ਲਈ GUI ਜਾਂ ਮਾਨੀਟਰ ਤੁਹਾਡੀ ਸਕ੍ਰਿਪਟ ਨਾਲ ਸਾਕੇਟ ਸਾਂਝਾ ਨਹੀਂ ਕਰ ਸਕਦੇ। ਦੂਜਾ ਕਨੈਕਸ਼ਨ ਕਤਾਰ ਵਿੱਚ ਰੱਖਣ ਦੀ ਥਾਂ ਨਕਾਰ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਫੇਲ੍ਹ ਹੋਣਾ ਬੋਲ਼ੀ ਹੋ ਚੁੱਕੀ ਸਕ੍ਰਿਪਟ ਵਾਂਗ ਦਿਸਦਾ ਹੈ।
ਉਹ ਸਾਕੇਟ ਨਿਯੰਤਰਣ ਚੈਨਲ ਵੀ ਹੈ। ਪ੍ਰਬੰਧਨ ਪਾਸਵਰਡ ਤੋਂ ਬਿਨਾਂ 127.0.0.1:3030 ਨਾਲ ਜੁੜ ਸਕਣ ਵਾਲੀ ਹਰ ਚੀਜ਼ ਸਥਿਤੀ ਪੜ੍ਹ ਸਕਦੀ ਹੈ, ਸੁਰੰਗ ਮਾਰ ਸਕਦੀ ਹੈ ਜਾਂ ਆਪ ਹੀ ਪ੍ਰੋਂਪਟ ਦਾ ਜਵਾਬ ਦੇ ਸਕਦੀ ਹੈ। ਪ੍ਰਬੰਧਨ ਪਾਸਵਰਡ ਅਤੇ ਪ੍ਰਮਾਣ ਪੱਤਰ ਫਾਈਲ ਇੱਕੋ ਸ਼੍ਰੇਣੀ ਦੇ ਭੇਦ ਹਨ, ਅਤੇ ਦੋਵੇਂ ਇੱਕੋ ਜਿਹੀ ਸੰਭਾਲ ਦੇ ਯੋਗ ਹਨ।
ਤੈਨਾਤੀ ਲਈ ਕਿਹੜਾ ਫਿੱਟ ਬੈਠਦਾ ਹੈ
ਪ੍ਰਮਾਣ ਪੱਤਰ ਫਾਈਲ ਚੁਣੋ ਜਦੋਂ ਇਕੱਲਾ ਪ੍ਰੋਂਪਟ ਖਾਤਾ ਜੋੜੀ ਹੋਵੇ, ਕਲਾਇੰਟ ਸਥਿਰ ਮਾਲਕ ਨਾਲ ਸੇਵਾ ਵਜੋਂ ਚੱਲੇ, ਅਤੇ ਤੁਸੀਂ 600 ਫਾਈਲ ਨੂੰ ਉਹਨਾਂ ਬੈਕਅੱਪਾਂ ਤੋਂ ਬਾਹਰ ਰੱਖ ਸਕੋ ਜਿਨ੍ਹਾਂ ਨੂੰ ਤੁਸੀਂ ਨਿਯੰਤਰਿਤ ਨਹੀਂ ਕਰਦੇ। ਪ੍ਰਬੰਧਨ ਸਾਕੇਟ ਚੁਣੋ ਜਦੋਂ ਕੁੰਜੀ ਪਾਸਫ੍ਰੇਜ਼ ਜਾਂ PKCS#12 ਪਾਸਵਰਡ ਸ਼ਾਮਲ ਹੋਵੇ, ਜਦੋਂ ਰੈਪਰ ਪਹਿਲਾਂ ਹੀ ਪ੍ਰਕਿਰਿਆ ਦੀ ਨਿਗਰਾਨੀ ਕਰ ਰਿਹਾ ਹੋਵੇ, ਜਾਂ ਜਦੋਂ ਮੁੜ-ਕਨੈਕਸ਼ਨ ਡੀਬੱਗ ਕਰਦਿਆਂ ਸਥਿਤੀ ਅਤੇ ਪ੍ਰੋਂਪਟ ਦੇਖਣੇ ਹੋਣ।
ਦੋ ਸ਼ਰਤਾਂ ਫੈਸਲਾ ਬਦਲਦੀਆਂ ਹਨ। ਜੇ ਰੈਪਰ /bin/sh ਹੈ, ਬਾਈਨਰੀ ਨੂੰ ਸਿੱਧਾ ਬੁਲਾਉਣ ਵਾਲਾ systemd ਯੂਨਿਟ ਹੈ, ਜਾਂ ਘੱਟੋ-ਘੱਟ ਕੰਟੇਨਰ ਹੈ, ਤਾਂ ਸਿਰਫ਼-bash ਸਾਕੇਟ ਗੂੰਦ ਉਪਲਬਧ ਨਹੀਂ ਹੈ ਅਤੇ ਫਾਈਲ ਸਸਤਾ ਜਵਾਬ ਹੈ। ਜੇ ਭੇਦ ਅਕਸਰ ਘੁੰਮਦਾ ਹੈ, ਤਾਂ ਕੋਈ ਵੀ ਫਾਈਲ ਉਸ ਲਈ ਚੰਗਾ ਘਰ ਨਹੀਂ ਹੈ: ਛੋਟੇ ਰੈਪਰ ਤੋਂ ਕੀਰਿੰਗ ਪੁੱਛੋ ਅਤੇ ਯੂਨਿਟ ਨੂੰ ਰੈਪਰ ਬੁਲਾਉਣ ਦਿਓ, ਜੋ ਘੁੰਮਣ ਨੂੰ ਇੱਕ ਥਾਂ ਰੱਖਦਾ ਹੈ ਅਤੇ ਪਾਸਵਰਡ ਨੂੰ ਸ਼ੈੱਲ ਇਤਿਹਾਸ ਤੋਂ ਬਾਹਰ।
ਪ੍ਰਕਿਰਿਆ ਬਦਲੀ ਦੋਹਾਂ ਵਿਚਕਾਰ ਹੈ ਅਤੇ ਕਿਸੇ ਦੀ ਵੀ ਨਹੀਂ। ਹੇਠਾਂ ਦਿੱਤੀ ਇੱਕ-ਲਾਈਨ ਕੰਮ ਕਰਦੀ ਹੈ ਕਿਉਂਕਿ bash ਇਸ ਨੂੰ openvpn ਸ਼ੁਰੂ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਫੈਲਾਉਂਦਾ ਹੈ, ਇਸ ਲਈ ਨਹੀਂ ਕਿ ਕਲਾਇੰਟ ਵਾਕਯ ਰਚਨਾ ਸਮਝਦਾ ਹੈ:
openvpn --config client.ovpn --auth-user-pass <(printf "%s
%s
" "$USER" "$PASS")
ਇਹ /bin/sh ਅਧੀਨ, ਸ਼ੈੱਲ ਨੂੰ ਬਾਈਪਾਸ ਕਰਨ ਵਾਲੇ ਯੂਨਿਟ ਵਿੱਚ, ਅਤੇ bash ਜਾਂ /dev/fd ਤੋਂ ਬਿਨਾਂ ਇਮੇਜਾਂ ਵਿੱਚ ਟੁੱਟ ਜਾਂਦੀ ਹੈ। ਇਸ ਨੂੰ ਇੰਟਰੈਕਟਿਵ ਟੈਸਟਿੰਗ ਲਈ ਰੱਖੋ, ਕਦੇ ਵੀ ਉਸ ਇਕਰਾਰਨਾਮੇ ਵਜੋਂ ਨਹੀਂ ਜਿਸ 'ਤੇ ਸੇਵਾ ਨਿਰਭਰ ਕਰਦੀ ਹੈ।
ਭੇਦ ਦੀ ਰੱਖਿਆ ਕਰੋ, ਫਿਰ ਲੌਗ ਤੋਂ ਪੁਸ਼ਟੀ ਕਰੋ
ਦੋਵੇਂ ਮਕੈਨਿਜ਼ਮ OpenVPN ਪ੍ਰਕਿਰਿਆ ਲਈ ਪੜ੍ਹਨਯੋਗ ਭੇਦ ਛੱਡਦੇ ਹਨ। ਪਾਸਵਰਡ ਕਦੇ ਵੀ ਕਮਾਂਡ ਲਾਈਨ 'ਤੇ ਜਾਂ ਯੂਨਿਟ ਫਾਈਲ ਵਿੱਚ ਨਾ ਰੱਖੋ, ਜਿੱਥੇ ps ਅਤੇ systemctl ਇਸ ਨੂੰ ਹਰ ਸਥਾਨਕ ਵਰਤੋਂਕਾਰ ਨੂੰ ਦਿਖਾਉਂਦੇ ਹਨ; ਫਾਈਲ ਦਾ ਪਾਥ ਦਿਓ, ਅੰਦਰਲੀ ਕੀਮਤ ਨਹੀਂ। ਜਿੱਥੇ ਸਰਟੀਫਿਕੇਟ ਖਾਤਾ ਜੋੜੀ ਦੀ ਥਾਂ ਲੈ ਸਕਦੇ ਹਨ, ਉੱਥੇ ਇਹ ਪ੍ਰੋਂਪਟ ਦੀ ਸ਼੍ਰੇਣੀ ਨੂੰ ਲੁਕਾਉਣ ਦੀ ਥਾਂ ਹਟਾ ਦਿੰਦਾ ਹੈ।
ਸਹੀ ਚਾਲ ਪ੍ਰੋਂਪਟ ਕ੍ਰਮ ਪੂਰਾ ਹੋਣਾ ਅਤੇ ਸੈਸ਼ਨ «Initialization Sequence Completed» ਤੱਕ ਪਹੁੰਚਣਾ ਦਿਖਾਉਂਦੀ ਹੈ। ਜੇ ਕਲਾਇੰਟ ਉਸੇ ਪ੍ਰੋਂਪਟ 'ਤੇ ਰੁਕ ਜਾਵੇ ਤਾਂ ਮਿਲਾਨ ਫੇਲ੍ਹ ਹੋਇਆ: ਸਾਕੇਟ ਵੱਲੋਂ ਭੇਜੀਆਂ ਠੀਕ ਲਾਈਨਾਂ ਪ੍ਰਿੰਟ ਕਰੋ, ਹਵਾਲਾ ਚਿੰਨ੍ਹ ਅਤੇ ਪ੍ਰੋਂਪਟ ਦਾ ਨਾਮ ਜਾਂਚੋ, ਅਤੇ sleep ਜੋੜਨ ਦੀ ਥਾਂ ਪੈਟਰਨ ਠੀਕ ਕਰੋ। ਜੋ ਸੁਰੰਗ ਸਫਲਤਾ ਦੱਸਦੀ ਹੈ ਅਤੇ ਕੁਝ ਨਹੀਂ ਢੋਂਦੀ, ਉਹ ਰਾਊਟਿੰਗ ਜਾਂ push ਸਮੱਸਿਆ ਹੈ, ਪ੍ਰਮਾਣ ਪੱਤਰ ਦੀ ਨਹੀਂ।
ਫਿਰ ਸਿਰਫ਼ ਪਹਿਲੀ ਸ਼ੁਰੂਆਤ ਨਹੀਂ, ਮੁੜ-ਕਨੈਕਸ਼ਨ ਵੀ ਜਾਂਚੋ। ਸਰਵਰ-ਸਾਈਡ ਸੈਸ਼ਨ ਛੱਡ ਦਿਓ ਜਾਂ ਉਸ ਦਾ ਟਾਈਮਆਉਟ ਪੂਰਾ ਹੋਣ ਦਿਓ; ਕਲਾਇੰਟ ਫਿਰ ਪੁੱਛਦਾ ਹੈ, ਅਤੇ ਉੱਥੇ ਹੀ ਬੂਟ 'ਤੇ ਸਹੀ ਦਿਸੀ ਫਾਈਲ ਦਿਖਾਉਂਦੀ ਹੈ ਕਿ ਉਹ ਮੁੜ ਜੁੜਨ ਵਾਲੇ ਖਾਤੇ ਲਈ ਅਜੇ ਵੀ ਪੜ੍ਹਨਯੋਗ ਹੈ ਜਾਂ ਨਹੀਂ।