Ubuntu 'ਤੇ ਬੂਟ ਸਮੇਂ OpenVPN: NetworkManager ਜਾਂ systemd?
ਲੈਪਟਾਪ ਅਤੇ ਸਕ੍ਰੀਨ ਰਹਿਤ ਸਰਵਰ ਨੂੰ ਵੱਖਰੇ ਬੂਟ ਰਾਹਾਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। NetworkManager ਦੇ ਸੈਕੰਡਰੀ ਕਨੈਕਸ਼ਨ ਦੀ openvpn-client@ ਅਤੇ ਉਸਦੀ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲ ਫਾਈਲ ਨਾਲ ਤੁਲਨਾ ਕਰੋ।
ਬਹੁਤੀਆਂ ਗਾਈਡਾਂ ਇਸ ਚੋਣ ਨੂੰ ਦਿਖਾਵੇ ਦੀ ਗੱਲ ਵਜੋਂ ਪੇਸ਼ ਕਰਦੀਆਂ ਹਨ: ਜਾਂ NetworkManager ਨੂੰ ਟਨਲ ਉੱਪਰ ਚੁੱਕਣ ਦਿਓ, ਜਾਂ systemd ਇੰਸਟੈਂਸ ਸਮਰੱਥ ਕਰੋ ਅਤੇ ਖਤਮ। ਦੋਵੇਂ ਰਾਹ ਇੱਕ ਗੱਲ ਵਿੱਚ ਵੱਖਰੇ ਹਨ ਜੋ ਸਕ੍ਰੀਨ ਰਹਿਤ ਮਸ਼ੀਨ ਉੱਤੇ ਨਤੀਜਾ ਤੈਅ ਕਰਦੀ ਹੈ, ਅਤੇ ਇਸਦਾ ਇਸ ਨਾਲ ਕੋਈ ਸੰਬੰਧ ਨਹੀਂ ਕਿ ਕਿਹੜਾ ਸਾਧਨ ਨਵਾਂ ਹੈ। NetworkManager ਸੈਸ਼ਨ ਰਾਹੀਂ ਭੇਦ ਖੋਲ੍ਹਦਾ ਹੈ; systemd ਇੰਸਟੈਂਸ ਕੋਲ ਖੋਲ੍ਹਣ ਲਈ ਕੋਈ ਸੈਸ਼ਨ ਨਹੀਂ। ਤੁਹਾਡੇ ਸਾਹਮਣੇ ਦੀ ਮਸ਼ੀਨ ਨਾਲ ਮੇਲ ਖਾਂਦੀ ਭੇਦ-ਸੰਭਾਲ ਵਾਲਾ ਰਾਹ ਚੁਣੋ।
ਬਾਕੀ ਸਭ ਕੁਝ, ਰੂਟ ਇੰਸਟਾਲੇਸ਼ਨ ਤੋਂ ਲੈ ਕੇ ਦੁਬਾਰਾ ਜੁੜਨ ਦੇ ਵਿਵਹਾਰ ਤੱਕ, ਉਸੇ ਪਹਿਲੇ ਫੈਸਲੇ ਤੋਂ ਆਉਂਦਾ ਹੈ।
ਕੀਰਿੰਗ ਹੀ ਉਹ ਫਰਕ ਹੈ ਜਿਸਦਾ ਕੋਈ ਜ਼ਿਕਰ ਨਹੀਂ ਕਰਦਾ
ਜਦੋਂ NetworkManager ਕੋਲ VPN ਪ੍ਰੋਫਾਈਲ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਪਾਸਵਰਡ ਲੌਗਇਨ ਕੀਰਿੰਗ ਵਿੱਚ ਰਹਿ ਸਕਦਾ ਹੈ, ਜੋ ਵਰਤੋਂਕਾਰ ਦੇ ਸਾਈਨ ਇਨ ਕਰਨ 'ਤੇ ਖੁੱਲ੍ਹਦਾ ਹੈ। ਲੈਪਟਾਪ 'ਤੇ ਇਹ ਚੰਗਾ ਕੰਮ ਕਰਦਾ ਹੈ: ਵਿਅਕਤੀ ਮੌਜੂਦ ਹੈ, ਕੀਰਿੰਗ ਖੁੱਲ੍ਹਦੀ ਹੈ, ਟਨਲ ਉੱਪਰ ਆਉਂਦਾ ਹੈ। ਬਿਨਾਂ ਨਿਗਰਾਨੀ ਬੂਟ ਹੋਣ ਵਾਲੇ ਸਰਵਰ 'ਤੇ ਕੁਝ ਵੀ ਖੋਲ੍ਹਣ ਵਾਲਾ ਕੋਈ ਨਹੀਂ, ਇਸ ਲਈ ਪ੍ਰੋਫਾਈਲ ਅਜਿਹੇ ਭੇਦ ਦੀ ਉਡੀਕ ਕਰਦਾ ਹੈ ਜੋ ਕਦੇ ਨਹੀਂ ਆਉਂਦਾ। ਕਨੈਕਸ਼ਨ ਸੰਰਚਿਤ ਦਿਖਦਾ ਹੈ ਅਤੇ ਕਦੇ ਸਰਗਰਮ ਨਹੀਂ ਹੁੰਦਾ।
systemd ਇੰਸਟੈਂਸ ਡਿਸਕ ਤੋਂ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲ ਫਾਈਲ ਪੜ੍ਹ ਕੇ ਉਸ ਸਮੱਸਿਆ ਤੋਂ ਬਚਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਫਾਈਲ ਹੀ ਤੁਹਾਡੀ ਸੁਰੱਖਿਆ ਦੀ ਵਸਤੂ ਬਣ ਜਾਂਦੀ ਹੈ। chmod 400 ਅਤੇ root ਦੀ ਮਾਲਕੀ ਘੱਟੋ-ਘੱਟ ਹੈ, ਅਤੇ ਫਾਈਲ ਤੁਹਾਡੇ ਨਿਯੰਤਰਣ ਤੋਂ ਬਾਹਰਲੇ ਬੈਕਅੱਪ ਅਤੇ ਇਮੇਜ ਟੈਂਪਲੇਟਾਂ ਤੋਂ ਦੂਰ ਰਹਿਣੀ ਚਾਹੀਦੀ ਹੈ।
VPN ਨੂੰ ਕਨੈਕਸ਼ਨ ਨਾਲ ਜੋੜਨਾ ਬੂਟ ਦੀ ਗਰੰਟੀ ਨਹੀਂ
nm-connection-editor ਵਿੱਚ, VPN ਦੀ ਥਾਂ ਵਾਇਰਡ ਜਾਂ ਵਾਇਰਲੈੱਸ ਕਨੈਕਸ਼ਨ ਚੁਣੋ, General ਟੈਬ ਖੋਲ੍ਹੋ, ਆਪਣੇ-ਆਪ VPN ਨਾਲ ਜੁੜਨ ਦਾ ਵਿਕਲਪ ਟਿੱਕ ਕਰੋ ਅਤੇ ਪ੍ਰੋਫਾਈਲ ਨੂੰ ਨਾਮ ਦਿਓ। ਫਿਰ ਪ੍ਰਾਇਮਰੀ ਕਨੈਕਸ਼ਨ ਦੇ ਜੁੜੇ ਹੋਏ ਅਵਸਥਾ ਵਿੱਚ ਪਹੁੰਚਣ 'ਤੇ NetworkManager VPN ਨੂੰ ਸੈਕੰਡਰੀ ਕਨੈਕਸ਼ਨ ਵਜੋਂ ਸਰਗਰਮ ਕਰਦਾ ਹੈ। ਇਹ ਨਿਰਭਰਤਾ ਹੈ, ਫਾਇਰਵਾਲ ਨਿਯਮ ਨਹੀਂ। ਟਨਲ ਉੱਪਰ ਆਉਣ ਤੋਂ ਪਹਿਲਾਂ ਦੇ ਸਕਿੰਟਾਂ ਵਿੱਚ ਪੈਕਟ ਅਜੇ ਵੀ ਬਾਹਰ ਜਾ ਸਕਦੇ ਹਨ, ਅਤੇ ਖੁੱਲ੍ਹ ਨਾ ਸਕਣ ਵਾਲਾ ਸੰਭਾਲਿਆ ਭੇਦ ਮਸ਼ੀਨ ਨੂੰ ਉਸ ਤੋਂ ਬਿਨਾਂ ਆਨਲਾਈਨ ਛੱਡ ਦਿੰਦਾ ਹੈ।
ਜੇ ਲੋੜ ਇਹ ਹੈ ਕਿ ਟਨਲ ਤੋਂ ਬਿਨਾਂ ਕੁਝ ਬਾਹਰ ਨਾ ਜਾਵੇ, ਤਾਂ ਇਹ ਕਹੋ ਅਤੇ ਕਿੱਲ ਸਵਿੱਚ ਬਣਾਓ, ਕਿਉਂਕਿ ਇਹ ਸੈਟਿੰਗ ਇੱਕ ਵੀ ਨਹੀਂ ਦੇਵੇਗੀ। ਸਸਪੈਂਡ ਅਤੇ ਰਿਜ਼ਿਊਮ ਵੀ ਜਾਂਚੋ, ਕਿਉਂਕਿ ਵਾਪਸੀ ਦੇ ਰਾਹ ਵਿੱਚ ਸੈਕੰਡਰੀ ਕਨੈਕਸ਼ਨ ਦਾ ਮੁੜ ਮੁਲਾਂਕਣ ਹੁੰਦਾ ਹੈ।
systemd ਇੰਸਟੈਂਸ ਨੂੰ ਮੇਲ ਖਾਂਦਾ ਫਾਈਲ ਨਾਮ ਚਾਹੀਦਾ ਹੈ
ਪ੍ਰੋਫਾਈਲ ਨੂੰ ਉਸ ਕਲਾਇੰਟ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਰੱਖੋ ਜਿਸਦੀ ਪੈਕੇਜ ਉਡੀਕ ਕਰਦਾ ਹੈ, ਜਿਵੇਂ /etc/openvpn/client/office.conf, ਅਤੇ ਅੰਦਰੋਂ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲ ਫਾਈਲ ਦਾ ਹਵਾਲਾ auth-user-pass office.cred ਨਾਲ ਦਿਓ। ਇੰਸਟੈਂਸ ਦਾ ਨਾਮ ਪਿਛੇਤਰ ਤੋਂ ਬਿਨਾਂ ਫਾਈਲ ਨਾਮ ਹੈ, ਇਸ ਲਈ openvpn-client@office ਫਾਈਲ office.conf ਪੜ੍ਹਦਾ ਹੈ। ਇਸਨੂੰ sudo systemctl enable --now openvpn-client@office ਨਾਲ ਸਮਰੱਥ ਕਰੋ ਅਤੇ ਬਲੌਗ ਦੀ ਉਦਾਹਰਨ 'ਤੇ ਭਰੋਸਾ ਕਰਨ ਦੀ ਥਾਂ systemctl cat openvpn-client@office ਨਾਲ ਮੇਲ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ।
ਪ੍ਰੋਫਾਈਲ ਅੰਦਰਲੇ ਰਾਹ ਪ੍ਰੋਫਾਈਲ ਦੇ ਨਹੀਂ, ਯੂਨਿਟ ਦੀ ਕਾਰਜਸ਼ੀਲ ਡਾਇਰੈਕਟਰੀ ਦੇ ਸਾਪੇਖਿਕ ਹੱਲ ਹੁੰਦੇ ਹਨ, ਇਸ ਲਈ ਸਾਪੇਖਿਕ ca ਜਾਂ auth-user-pass ਲਾਈਨ ਬੂਟ ਸਮੇਂ ਫੇਲ੍ਹ ਹੋ ਸਕਦੀ ਹੈ ਜਦੋਂ ਕਿ ਹੱਥ ਨਾਲ ਜਾਂਚਣ 'ਤੇ ਕੰਮ ਕਰਦੀ ਹੈ। ਯੂਨਿਟ ਨੂੰ ਲੱਭਣ ਵਾਲੀ ਹਰ ਚੀਜ਼ ਲਈ ਪੂਰਨ ਰਾਹ ਵਰਤੋ। ਫਿਰ ਅਸਲ ਬੂਟ ਤੋਂ ਬਾਅਦ journalctl -u openvpn-client@office -b ਪੜ੍ਹੋ; ਟਨਲ ਤੋਂ ਬਿਨਾਂ ਸਰਗਰਮ ਦੱਸਣ ਵਾਲਾ ਯੂਨਿਟ ਆਮ ਤੌਰ 'ਤੇ ਉਸ ਲੌਗ ਵਿੱਚ ਗੁੰਮ ਫਾਈਲ ਦਾ ਨਾਮ ਲੈਂਦਾ ਹੈ।
ਪੁਰਾਣੇ ਪੈਕੇਜ ਵੱਖਰਾ ਟੈਂਪਲੇਟ ਨਾਮ ਦਿੰਦੇ ਹਨ, ਇਸ ਲਈ systemctl list-unit-files 'openvpn*' ਤੈਅ ਕਰਦਾ ਹੈ ਕਿ ਇਸ ਹੋਸਟ 'ਤੇ ਕਿਹੜਾ ਮੌਜੂਦ ਹੈ।
ਦੁਬਾਰਾ ਜੁੜਨ ਦਾ ਵਿਵਹਾਰ ਵੱਖਰਾ ਫੈਸਲਾ ਹੈ
ping-restart ਵਾਲਾ ਪ੍ਰੋਫਾਈਲ ਟਨਲ ਡਿੱਗਣ ਤੋਂ ਬਾਅਦ ਇਸਨੂੰ ਮੁੜ ਬਣਾਉਂਦਾ ਹੈ, ਅਤੇ ਰੀਸਟਾਰਟ ਨਿਰਦੇਸ਼ ਵਾਲਾ ਯੂਨਿਟ ਸੇਵਾ ਪੱਧਰ 'ਤੇ ਕੁਝ ਇਸੇ ਤਰ੍ਹਾਂ ਕਰਦਾ ਹੈ। ਇਹ ਤੁਹਾਡੇ ਚੁਣੇ ਨੀਤੀਆਂ ਹਨ, ਵਿਰਾਸਤ ਵਿੱਚ ਮਿਲਣ ਵਾਲੇ ਡਿਫਾਲਟ ਨਹੀਂ। ਜੇ ਕਨੈਕਸ਼ਨ ਸਿਰਫ਼ ਮੰਗ 'ਤੇ ਉੱਪਰ ਆਉਣਾ ਚਾਹੀਦਾ ਹੈ, ਤਾਂ ਰੀਸਟਾਰਟ ਵਿਵਹਾਰ ਜਾਣ-ਬੁੱਝ ਕੇ ਹਟਾਓ ਅਤੇ ਕਾਰਨ ਲਿਖੋ। ਜੇ ਯੂਨਿਟ ਨੈੱਟਵਰਕ ਦੇ ਵਰਤੋਂਯੋਗ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਇਸਨੂੰ ਮੁੜ ਕੋਸ਼ਿਸ਼ ਦੀ ਨੀਤੀ ਚਾਹੀਦੀ ਹੈ, ਕਿਉਂਕਿ ਬੂਟ ਸਮੇਂ ਇੱਕ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ ਆਪਣੇ ਆਪ ਦੁਹਰਾਈ ਨਹੀਂ ਜਾਂਦੀ।
ਰੋਕਣਾ ਵੀ ਓਨਾ ਹੀ ਸ਼ਬਦੀ ਹੈ: sudo systemctl disable --now openvpn-client@office ਚੱਲ ਰਹੇ ਇੰਸਟੈਂਸ ਨੂੰ ਰੋਕਦਾ ਹੈ ਅਤੇ ਬੂਟ ਲਿੰਕ ਹਟਾਉਂਦਾ ਹੈ। ਸਿਰਫ਼ ਅਸਮਰੱਥ ਕਰਨਾ ਟਨਲ ਨੂੰ ਅਗਲੇ ਰੀਬੂਟ ਤੱਕ ਚੱਲਦਾ ਰਹਿਣ ਦਿੰਦਾ ਹੈ, ਜੋ ਅਸਮਰੱਥ ਕਰਕੇ ਜਾਂਚਣ ਵਾਲੇ ਅਤੇ ਇੰਟਰਫੇਸ ਉੱਪਰ ਹੀ ਰਹਿੰਦਾ ਦੇਖਣ ਵਾਲੇ ਹਰ ਵਿਅਕਤੀ ਨੂੰ ਹੈਰਾਨ ਕਰਦਾ ਹੈ।
ਰੀਬੂਟ ਕਰੋ, ਫਿਰ ਚਾਰ ਗੱਲਾਂ ਕ੍ਰਮ ਵਿੱਚ ਜਾਂਚੋ
ਸੇਵਾ ਰੀਸਟਾਰਟ ਕਰਨਾ ਸੇਵਾ ਨੂੰ ਜਾਂਚਦਾ ਹੈ; ਮਸ਼ੀਨ ਰੀਬੂਟ ਕਰਨਾ ਬੂਟ ਰਾਹ ਨੂੰ ਜਾਂਚਦਾ ਹੈ। ਰੀਬੂਟ ਤੋਂ ਬਾਅਦ ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਯੂਨਿਟ ਉੱਪਰ ਆਇਆ, ਫਿਰ ਕਿ ਦੂਰਲੇ ਸਬਨੈੱਟ ਲਈ ਰੂਟ ਮੌਜੂਦ ਹੈ, ਫਿਰ ਕਿ ਮਸ਼ੀਨ ਇੰਟਰਨੈੱਟ ਨੂੰ ਕਿਹੜਾ ਪਤਾ ਦਿਖਾਉਂਦੀ ਹੈ, ਅਤੇ ਅੰਤ ਵਿੱਚ ਕਿ ਨਾਮ ਟਨਲ ਰਾਹੀਂ ਹੱਲ ਹੁੰਦੇ ਹਨ। ਕੁਝ ਗਲਤ ਹੋਣ 'ਤੇ ਉਹ ਚਾਰ ਜਾਂਚਾਂ ਉਸੇ ਕ੍ਰਮ ਵਿੱਚ ਫੇਲ੍ਹ ਹੁੰਦੀਆਂ ਹਨ, ਜਿਸ ਨਾਲ ਪਹਿਲੀ ਅਸਫਲਤਾ ਲਾਹੇਵੰਦ ਬਣ ਜਾਂਦੀ ਹੈ।
ਰੂਟ ਤੋਂ ਬਿਨਾਂ ਸਰਗਰਮ ਯੂਨਿਟ ਦਾ ਆਮ ਅਰਥ ਹੈ ਕਿ ਪ੍ਰੋਫਾਈਲ ਜੁੜ ਗਿਆ ਪਰ ਸਰਵਰ ਨੇ ਕੋਈ ਰੂਟ ਨਹੀਂ ਧੱਕਿਆ, ਜਾਂ ਰੂਟ ਉਸ ਇੰਟਰਫੇਸ 'ਤੇ ਲੱਗਾ ਜੋ ਬਾਅਦ ਵਿੱਚ ਗਾਇਬ ਹੋ ਗਿਆ। ਜਿਸ ਰੂਟ ਵਿੱਚ ਨਾਮ-ਖੋਜ ਕੰਮ ਨਹੀਂ ਕਰਦੀ ਉਹ ਟਨਲ ਵੱਲ ਨਹੀਂ, DNS ਸੰਰਚਨਾ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦਾ ਹੈ।
ਪਹਿਲਾਂ ਤੈਅ ਕਰੋ ਕਿ ਟਨਲ ਉੱਪਰ ਨਾ ਆ ਸਕੇ ਤਾਂ ਕੀ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ। ਆਮ ਕਨੈਕਟੀਵਿਟੀ 'ਤੇ ਵਾਪਸ ਆਉਣਾ ਇੱਕ ਨੀਤੀ ਹੈ, ਅਤੇ ਇਸਨੂੰ ਪਹਿਲਾਂ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੇ ਕਿਸੇ ਵੀ ਪ੍ਰਬੰਧਕ 'ਤੇ ਛੱਡਣ ਦੀ ਥਾਂ ਲਿਖ ਲੈਣਾ ਚਾਹੀਦਾ ਹੈ।