VPN ਤੋਂ ਬਾਅਦ ਦੇ ਕੰਮ if-up ਨਹੀਂ, ਡਿਸਪੈਚਰ ਤੋਂ ਚਲਾਓ
ਪੁਰਾਣਾ ਇੰਟਰਫੇਸ ਹੁੱਕ VPN ਕਨੈਕਸ਼ਨ ਨਹੀਂ ਦੇਖੇਗਾ। vpn-up ਨੂੰ ਪ੍ਰੋਫਾਈਲ UUID ਨਾਲ ਮਿਲਾਓ, ਕੰਮ ਨੂੰ ਦੁਹਰਾਉਣ ਯੋਗ ਰੱਖੋ, ਅਤੇ ਅਜਿਹੇ ਡਿਸਕਨੈਕਟ ਦੀ ਯੋਜਨਾ ਬਣਾਓ ਜੋ ਕਦੇ ਨਹੀਂ ਹੁੰਦਾ।
VPN ਚਾਲੂ ਹੋਣ ਤੋਂ ਬਾਅਦ ਜੋ ਸਕ੍ਰਿਪਟ ਚੱਲਣੀ ਚਾਹੀਦੀ ਹੈ, ਉਸ ਨੂੰ ਕਨੈਕਸ਼ਨ ਦਾ ਮਾਲਕ ਕੰਪੋਨੈਂਟ ਤੋਂ ਇੱਕ ਘਟਨਾ ਚਾਹੀਦੀ ਹੈ। ਪੁਰਾਣੀ ਨੈੱਟਵਰਕ ਹੁੱਕ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਰੱਖੀ ਫਾਈਲ NetworkManager, pppd ਜਾਂ ਸੁਤੰਤਰ OpenVPN ਪ੍ਰਕਿਰਿਆ ਬਣਾ ਸਕਦੀ ਹੈ ਅਜਿਹੇ ਹਰ VPN ਲਈ ਕਾਲਬੈਕ ਨਹੀਂ ਹੈ। ਇਹਨਾਂ ਮਾਲਕਾਂ ਵਿੱਚੋਂ ਹਰ ਇੱਕ ਵੱਖਰੇ ਵਾਤਾਵਰਨ ਨਾਲ ਵੱਖਰੀ ਘਟਨਾ ਦੱਸਦਾ ਹੈ, ਇਸ ਲਈ ਹੁੱਕ ਚੁਣਨ ਤੋਂ ਪਹਿਲਾਂ ਮਾਲਕ ਦੀ ਪਛਾਣ ਕਰਨੀ ਪੈਂਦੀ ਹੈ। ਨਹੀਂ ਤਾਂ ਸਕ੍ਰਿਪਟ ਸਹੀ ਹੈ ਅਤੇ ਬੱਸ ਕਦੇ ਨਹੀਂ ਚੱਲਦੀ।
NetworkManager ਵੱਲੋਂ ਸੰਭਾਲੇ VPN ਲਈ ਡਿਸਪੈਚਰ ਸਹੀ ਥਾਂ ਹੈ, ਅਤੇ vpn-up ਸਹੀ ਕਾਰਵਾਈ ਹੈ।
ਇੰਟਰਫੇਸ ਘਟਨਾ ਨਹੀਂ, vpn-up ਵਰਤੋ
ਡਿਸਪੈਚਰ up ਅਤੇ vpn-up ਵਿੱਚ ਫ਼ਰਕ ਕਰਦਾ ਹੈ। ਪਹਿਲਾ ਸਰਗਰਮ ਇੰਟਰਫੇਸ ਦੱਸਦਾ ਹੈ; ਦੂਜਾ ਸਰਗਰਮ VPN ਕਨੈਕਸ਼ਨ ਦੱਸਦਾ ਹੈ। Wi-Fi ਦਾ ਚਾਲੂ ਹੋਣਾ ਸਿਰਫ਼ ਇਹ ਦੱਸਦਾ ਹੈ ਕਿ ਹੇਠਲੀ ਕੜੀ ਮੌਜੂਦ ਹੈ; ਸੁਰੰਗ ਹਾਲੇ ਗੱਲਬਾਤ ਕਰ ਰਹੀ ਹੋ ਸਕਦੀ ਹੈ, ਜਾਂ ਕਦੇ ਪ੍ਰਮਾਣਿਤ ਹੀ ਨਾ ਹੋਵੇ।
ਸਕ੍ਰਿਪਟ ਇੰਟਰਫੇਸ ਅਤੇ ਕਾਰਵਾਈ ਲੈਂਦੀ ਹੈ, ਜਦਕਿ ਕਨੈਕਸ਼ਨ ਦੇ ਵੇਰਵੇ ਵਾਤਾਵਰਨ ਰਾਹੀਂ ਆਉਂਦੇ ਹਨ, ਜਿਨ੍ਹਾਂ ਵਿੱਚ ਪ੍ਰੋਫਾਈਲ UUID ਅਤੇ VPN ਦਾ IP ਇੰਟਰਫੇਸ ਸ਼ਾਮਲ ਹੈ। ਡਿਵਾਈਸ ਨਾਵਾਂ ਤੋਂ ਪਛਾਣ ਅਨੁਮਾਨ ਲਾਉਣ ਦੀ ਬਜਾਏ ਉਹ ਵੇਰੀਏਬਲ ਪੜ੍ਹੋ।
ਮੇਲ ਨੂੰ ਇੱਕ ਕਨੈਕਸ਼ਨ ਤੱਕ ਸੀਮਿਤ ਰੱਖੋ
ਕਨੈਕਸ਼ਨ UUID ਜਾਂ ਡਿਸਪੈਚਰ ਵੱਲੋਂ ਦਿੱਤੀ ਕਿਸੇ ਹੋਰ ਪਛਾਣ ’ਤੇ ਮਿਲਾਓ, tun ਅਗੇਤਰ ਜਾਂ ppp0 ’ਤੇ ਨਹੀਂ। ਇੰਟਰਫੇਸ ਨਾਮ ਸਥਿਰ ਨਹੀਂ ਹਨ, ਇੱਕੋ ਸਮੇਂ ਇੱਕ ਤੋਂ ਵੱਧ ਸੁਰੰਗਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ, ਅਤੇ ਦੋ ਪ੍ਰੋਫਾਈਲ ਇੱਕੋ ਦਿਖਾਇਆ ਜਾਣ ਵਾਲਾ ਨਾਮ ਰੱਖ ਸਕਦੇ ਹਨ। tun ਅਗੇਤਰ ’ਤੇ ਮਿਲਾਉਣ ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਸਕ੍ਰਿਪਟ ਆਖ਼ਿਰ ਉਸ ਕਨੈਕਸ਼ਨ ਲਈ ਚੱਲੇਗੀ ਜਿਸ ਨੂੰ ਕੋਈ ਛੂਹਣਾ ਨਹੀਂ ਚਾਹੁੰਦਾ ਸੀ। ਜਦੋਂ ਮੁੜ ਜੁੜਨਾ ਡਿਵਾਈਸ ਨੂੰ ਦੁਬਾਰਾ ਬਣਾਉਂਦਾ ਹੈ ਤਾਂ ਇਹ ਇੱਕ ਪ੍ਰੋਫਾਈਲ ਲਈ ਦੋ ਵਾਰ ਵੀ ਚੱਲ ਸਕਦੀ ਹੈ।
ਕੰਮ ਨੂੰ ਆਈਡੈਂਪੋਟੈਂਟ ਬਣਾਓ। ਹਰ ਵਾਰ ਬੁਲਾਉਣ ’ਤੇ ਰੂਟ ਜੋੜਨ ਵਾਲਾ ਕਾਲਬੈਕ ਆਖ਼ਿਰ ਟੇਬਲ ਨੂੰ ਨਕਲਾਂ ਨਾਲ ਭਰ ਦਿੰਦਾ ਹੈ, ਅਤੇ ਰਾਊਟਿੰਗ ਤੋੜਦੀ ਹੈ ਦੂਜੀ ਨਕਲ।
ਜਾਣੋ ਸਰਗਰਮੀ ਕੀ ਸਾਬਤ ਨਹੀਂ ਕਰਦੀ
vpn-pre-up NetworkManager ਵੱਲੋਂ VPN ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਸਰਗਰਮ ਦੱਸਣ ਤੋਂ ਪਹਿਲਾਂ ਚੱਲਦਾ ਹੈ, ਅਤੇ ਮੈਨੇਜਰ ਉਹਨਾਂ ਸਕ੍ਰਿਪਟਾਂ ਦੀ ਉਡੀਕ ਕਰਦਾ ਹੈ। ਰੋਕਣ ਵਾਲਾ ਪੜਾਅ ਸਿਰਫ਼ ਤਦ ਵਰਤੋ ਜਦੋਂ ਕੰਮ ਸੱਚਮੁੱਚ ਉੱਥੇ ਹੀ ਆਉਂਦਾ ਹੈ, ਕਿਉਂਕਿ ਹੌਲੀ ਜਾਂਚ ਉਸ ਸਰਗਰਮੀ ਨੂੰ ਢਿੱਲੀ ਕਰਦੀ ਹੈ ਜਿਸ ਨੂੰ ਹਰ ਹੋਰ ਕੰਪੋਨੈਂਟ ਦੇਖਣ ਦੀ ਉਡੀਕ ਕਰ ਰਿਹਾ ਹੈ।
ਰੂਟ ਹੋਣ ਦਾ ਮਤਲਬ ਇਹ ਨਹੀਂ ਕਿ ਕੋਈ ਐਪਲੀਕੇਸ਼ਨ ਸੁਣ ਰਹੀ ਹੈ, ਨਿੱਜੀ ਨਾਮ ਹੱਲ ਹੋ ਰਿਹਾ ਹੈ, ਜਾਂ ਵਰਤੋਂਕਾਰ ਸੈਸ਼ਨ ਹੈ। ਇਹਨਾਂ ਨੂੰ ਸੀਮਿਤ ਸਮੇਂ ਦੀ ਹੱਦ ਨਾਲ ਵੱਖਰੇ ਤੌਰ ’ਤੇ ਜਾਂਚੋ, ਅਤੇ ਪੂਰੀ ਲੜੀ ਦੁਬਾਰਾ ਅਜ਼ਮਾਉਣ ਦੀ ਬਜਾਏ ਦੱਸੋ ਕਿ ਕਿਹੜੀ ਪਰਤ ਫੇਲ੍ਹ ਹੋਈ।
ਸਕ੍ਰਿਪਟ ਜਿਸ ਸੰਦਰਭ ਵਿੱਚ ਚੱਲਦੀ ਹੈ ਉਸ ਦਾ ਸਤਿਕਾਰ ਕਰੋ
ਡਿਸਪੈਚਰ ਦੀਆਂ ਸਕ੍ਰਿਪਟਾਂ root ਵਜੋਂ, ਕਿਸੇ ਵੀ ਵਰਤੋਂਕਾਰ ਸੈਸ਼ਨ ਤੋਂ ਬਾਹਰ ਚੱਲਦੀਆਂ ਹਨ। ਲੌਗਇਨ ਕੀਤੇ ਵਰਤੋਂਕਾਰ ਦਾ ਵਾਤਾਵਰਨ, ਗ੍ਰਾਫ਼ਿਕਲ ਸੈਸ਼ਨ ਜਾਂ ਖੁੱਲ੍ਹੀ ਕੀਰਿੰਗ ਉਪਲਬਧ ਹੈ ਅਜਿਹਾ ਨਾ ਮੰਨੋ। ਡੈਸਕਟਾਪ ਸੰਦਰਭ ਨਾ ਹੋਣ ’ਤੇ ਹਰ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਨੂੰ ਹਰ ਪ੍ਰਕਿਰਿਆ ਲਈ ਪੜ੍ਹਨ ਯੋਗ ਬਣਾ ਕੇ ਕਿਸੇ ਨੂੰ ਵੀ ਜਵਾਬ ਨਹੀਂ ਦੇਣਾ ਚਾਹੀਦਾ। ਵਰਤੋਂਕਾਰ ਸੈਸ਼ਨ ਦਾ ਕੰਮ ਵਰਤੋਂਕਾਰ ਸੇਵਾ ਜਾਂ ਅਜਿਹੇ ਸੈਸ਼ਨ ਸਹਾਇਕ ਵਿੱਚ ਰੱਖੋ ਜਿਸ ਨੂੰ ਕਾਲਬੈਕ ਵਰਤੋਂਕਾਰ ਦਾ ਰੂਪ ਧਾਰਨ ਕੀਤੇ ਬਿਨਾਂ ਸੰਕੇਤ ਦੇ ਸਕੇ।
ਸਕ੍ਰਿਪਟ ’ਤੇ ਮਾਲਕੀ ਅਤੇ ਇਜਾਜ਼ਤਾਂ ਵੀ ਮਹੱਤਵ ਰੱਖਦੀਆਂ ਹਨ। root ਵਜੋਂ ਚੱਲਣ ਵਾਲੀ ਅਤੇ ਕੋਈ ਵੀ ਵਰਤੋਂਕਾਰ ਬਦਲ ਸਕਦਾ ਹੈ ਅਜਿਹੀ ਫਾਈਲ ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰ ਵਧਾਉਣ ਦਾ ਰਾਹ ਹੈ, ਅਤੇ ਇਹ VPN ਦੇ ਤਰਕ ਦੇ ਸਹੀ ਹੋਣ ਜਾਂ ਨਾ ਹੋਣ ਤੋਂ ਸੁਤੰਤਰ ਖੋਜ ਹੈ।
ਉਸ ਡਿਸਕਨੈਕਟ ਦੀ ਯੋਜਨਾ ਬਣਾਓ ਜੋ ਕਦੇ ਨਹੀਂ ਹੁੰਦਾ
NetworkManager ਦਰਜ ਕਰਦਾ ਹੈ ਕਿ ਅਚਾਨਕ ਸਮਾਪਤੀ ਜਾਂ ਕਨੈਕਟੀਵਿਟੀ ਗੁਆਉਣ ਵਰਗੇ ਜ਼ਬਰਦਸਤੀ ਡਿਸਕਨੈਕਟ ਲਈ vpn-pre-down ਜਾਰੀ ਨਹੀਂ ਹੁੰਦਾ। ਇਸ ਲਈ ਸਿਰਫ਼ ਨਰਮ pre-down ਦੁਆਲੇ ਬਣੀ ਸਫ਼ਾਈ ਬਣਤਰ ਨਾਲ ਹੀ ਅਧੂਰੀ ਹੈ। ਸਕ੍ਰਿਪਟ ਜੋ ਵੀ ਸਾਂਝੀ ਸਥਿਤੀ ਬਦਲਦੀ ਹੈ, ਉਸ ਨੂੰ ਹੋਰ ਮਾਲਕ ਚਾਹੀਦਾ ਹੈ ਜੋ ਕਰੈਸ਼ ਤੋਂ ਬਾਅਦ ਉਸ ਨੂੰ ਬਹਾਲ ਕਰ ਸਕੇ, ਅਤੇ ਉਹ ਬਹਾਲੀ ਮਾਰਗ ਮੰਨਣ ਦੀ ਬਜਾਏ ਪਰਖਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ।
ਆਮ ਕਨੈਕਸ਼ਨ, ਮੁੜ ਜੁੜਨਾ, ਜਾਣਬੁੱਝ ਕੇ ਡਿਸਕਨੈਕਟ ਅਤੇ ਖਿੱਚੀ ਕੇਬਲ ਨਾਲ ਹੁੱਕ ਪਰਖੋ। ਗੁਪਤ ਜਾਣਕਾਰੀ ਦਰਜ ਕੀਤੇ ਬਿਨਾਂ UUID, ਕਾਰਵਾਈ ਅਤੇ ਚੱਲਿਆ ਇੰਟਰਫੇਸ ਦਰਜ ਕਰੋ। ਉਹੀ ਰਿਕਾਰਡ ਇੱਕੋ ਭਰੋਸੇਯੋਗ ਸਬੂਤ ਹੈ ਕਿ ਹੁੱਕ ਤੁਹਾਡੇ ਇਰਾਦੇ ਵਾਲੇ ਕਨੈਕਸ਼ਨ ਲਈ ਚੱਲਿਆ, ਅਤੇ ਅਗਲੀ ਤਬਦੀਲੀ ਸੁਰੱਖਿਅਤ ਬਣਾਉਣ ਵਾਲਾ ਵੀ ਉਹੀ ਹੈ।