OpenVPN ਪਾਸਵਰਡ ਟਰਮੀਨਲ ਤੋਂ ਪੜ੍ਹਦਾ ਹੈ, stdin ਤੋਂ ਨਹੀਂ
OpenVPN ਅਸਲ ਵਿੱਚ ਪਾਸਵਰਡ ਕਿੱਥੇ ਪੜ੍ਹਦਾ ਹੈ, stdin ਉੱਤੇ ਰੱਖੀ ਫਾਈਲ ਕਿਉਂ ਫੇਲ੍ਹ ਹੁੰਦੀ ਹੈ, ਅਤੇ Linux ਤੇ macOS ਵਿੱਚ ਸਕ੍ਰਿਪਟਡ ਸਾਈਨ-ਇਨ ਲਈ ਤਿੰਨ ਸਮਰਥਿਤ ਰਾਹ।
OpenVPN ਨਿਯੰਤਰਕ ਟਰਮੀਨਲ ਉੱਤੇ ਵਰਤੋਂਕਾਰ ਨਾਮ ਤੇ ਪਾਸਵਰਡ ਮੰਗਦਾ ਹੈ, ਅਤੇ ਮਿਆਰੀ ਇਨਪੁਟ ਵੱਲ ਮੋੜੀ ਫਾਈਲ ਉਹ ਟਰਮੀਨਲ ਨਹੀਂ ਹੈ। ਇਹੀ ਇੱਕ ਵੇਰਵਾ ਉਸ ਸਕ੍ਰਿਪਟ ਦੀ ਵਿਆਖਿਆ ਕਰਦਾ ਹੈ ਜੋ ਪਾਸਵਰਡ ਪਾਈਪ ਵਿੱਚ ਹੁੰਦਿਆਂ ਵੀ ਅਟਕ ਜਾਂਦੀ ਹੈ। ਸੰਕੇਤ ਕਲਾਇੰਟ ਬਣਾਉਂਦਾ ਹੈ ਅਤੇ ਪੜ੍ਹਤ ਟਰਮੀਨਲ ਜੰਤਰ ਤੋਂ ਹੁੰਦੀ ਹੈ, ਇਸ ਲਈ stdin ਮੋੜਨ ਨਾਲ ਕੁਝ ਨਹੀਂ ਬਦਲਦਾ। ਕਲਾਇੰਟ ਨੂੰ ਉਸ ਦੇ ਦਸਤਾਵੇਜ਼ੀ ਇਨਪੁਟ ਰਾਹਾਂ ਵਿੱਚੋਂ ਇੱਕ ਰਾਹੀਂ ਖੁਆਓ ਅਤੇ ਉਹੀ ਸਕ੍ਰਿਪਟ ਪਹਿਲੇ ਯਤਨ ਵਿੱਚ ਜੁੜ ਜਾਵੇਗੀ।
ਤਿੰਨ ਰਾਹ ਲਗਭਗ ਹਰ ਸਥਿਤੀ ਨੂੰ ਢਕ ਲੈਂਦੇ ਹਨ, ਅਤੇ ਹਰ ਇੱਕ ਆਪਣੇ ਢੰਗ ਨਾਲ ਫੇਲ੍ਹ ਹੁੰਦਾ ਹੈ। ਕਲਾਇੰਟ ਜੋ ਸੰਕੇਤ ਅਸਲ ਵਿੱਚ ਦਿਖਾਉਂਦਾ ਹੈ ਉਸ ਦੇ ਆਧਾਰ 'ਤੇ ਚੁਣੋ, ਉਸ ਚੋਣ ਦੇ ਆਧਾਰ 'ਤੇ ਨਹੀਂ ਜਿਸ ਨੂੰ ਸਕ੍ਰਿਪਟ ਕਰਨਾ ਸਭ ਤੋਂ ਸੌਖਾ ਹੈ।
ਸੰਕੇਤ stdin ਤੋਂ ਨਹੀਂ ਆਉਂਦਾ
ਜਦੋਂ OpenVPN ਨੂੰ ਪ੍ਰਮਾਣ ਪੱਤਰ ਚਾਹੀਦੇ ਹੁੰਦੇ ਹਨ ਤਾਂ ਉਹ ਨਿਯੰਤਰਕ ਟਰਮੀਨਲ ਖੋਲ੍ਹਦਾ ਹੈ ਅਤੇ ਉੱਥੋਂ ਪੜ੍ਹਦਾ ਹੈ। ਇਸੇ ਲਈ ਇੰਟਰਐਕਟਿਵ ਜਾਂਚ ਠੀਕ ਦਿਸਦੀ ਹੈ, ਪਰ cron ਜਾਂ unit ਫਾਈਲ ਹੇਠ ਉਹੀ ਹੁਕਮ ਕਿਸੇ ਨਾ ਦੇਖਣ ਵਾਲੇ ਲਾਗ ਵਿੱਚ ਸੰਕੇਤ ਲਿਖ ਕੇ ਨਿਸ਼ਕਿਰਿਆ ਖੜ੍ਹਾ ਰਹਿੰਦਾ ਹੈ। ਕੁਝ ਬਿਲਡ ਟਰਮੀਨਲ ਨਾ ਹੋਣ 'ਤੇ ਮਿਆਰੀ ਇਨਪੁਟ ਵੱਲ ਮੁੜਦੇ ਹਨ, ਅਤੇ ਇਹ ਅਸੰਗਤੀ ਸਖ਼ਤ ਫੇਲ੍ਹ ਹੋਣ ਨਾਲੋਂ ਵੀ ਮਾੜੀ ਹੈ, ਕਿਉਂਕਿ ਇਹ ਤੈਨਾਤੀ ਤੱਕ ਸਮੱਸਿਆ ਲੁਕਾਉਂਦੀ ਹੈ।
ਕੋਈ ਵੀ ਕੋਡ ਲਿਖਣ ਤੋਂ ਪਹਿਲਾਂ ਵਾਤਾਵਰਣ ਜਾਂਚੋ: ਸ਼ਡਿਊਲਰ ਜਾਂ ਸੇਵਾ ਪ੍ਰਬੰਧਕ ਜੋ ਵਰਤੋਂਕਾਰ ਤੇ stdin ਵਰਤੇਗਾ, ਉਸੇ ਨਾਲ ਕਲਾਇੰਟ ਚਲਾਓ। ਜੇ ਸੰਕੇਤ ਕਦੇ ਲਾਗ ਵਿੱਚ ਨਾ ਆਵੇ ਅਤੇ ਪ੍ਰਕਿਰਿਆ ਅੱਗੇ ਨਾ ਵਧੇ, ਤਾਂ ਕੁਝ ਅਜਿਹੇ ਟਰਮੀਨਲ ਦੀ ਉਡੀਕ ਕਰ ਰਿਹਾ ਹੈ ਜੋ ਮੌਜੂਦ ਨਹੀਂ।
ਪਹਿਲਾ ਰਾਹ: ਦੋ ਲਾਈਨਾਂ ਵਾਲੀ ਪ੍ਰਮਾਣ ਪੱਤਰ ਫਾਈਲ
ਪ੍ਰਮਾਣਿਕਤਾ ਚੋਣ ਇੱਕ ਰਾਹ ਲੈਂਦੀ ਹੈ, ਅਤੇ ਫਾਈਲ ਵਿੱਚ ਠੀਕ ਦੋ ਲਾਈਨਾਂ ਹੁੰਦੀਆਂ ਹਨ, ਪਹਿਲਾਂ ਵਰਤੋਂਕਾਰ ਨਾਮ ਫਿਰ ਪਾਸਵਰਡ, ਹੋਰ ਕੁਝ ਨਹੀਂ। ਡਿਫ਼ਾਲਟ ਫਾਈਲਨਾਮ 'ਤੇ ਭਰੋਸਾ ਕਰਨ ਦੀ ਥਾਂ ਰਾਹ ਸਪਸ਼ਟ ਦਿਓ, ਕਿਉਂਕਿ ਕੰਮ ਵਾਲੀ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਪਈ ਪ੍ਰਮਾਣ ਪੱਤਰ ਫਾਈਲ ਹੀ ਗ਼ਲਤ ਖਾਤੇ ਦੇ ਵਰਤੋਂ ਵਿੱਚ ਆਉਣ ਦਾ ਰਾਹ ਹੈ। ਮੋਡ 0600 'ਤੇ ਰੱਖੋ ਅਤੇ ਮਾਲਕੀ ਕਲਾਇੰਟ ਚਲਾਉਣ ਵਾਲੇ ਖਾਤੇ ਨੂੰ ਦਿਓ।
ਕਲਾਇੰਟ ਉਹ ਫਾਈਲ ਸ਼ੁਰੂ ਵਿੱਚ ਇੱਕ ਵਾਰ ਪੜ੍ਹਦਾ ਹੈ, ਇਸ ਲਈ ਪਾਸਵਰਡ ਘੁਮਾਉਣ ਦਾ ਅਰਥ ਪ੍ਰਕਿਰਿਆ ਮੁੜ ਸ਼ੁਰੂ ਕਰਨਾ ਹੈ। ਆਮ ਤੌਰ 'ਤੇ ਇਹੀ ਲੋੜੀਂਦਾ ਵਿਵਹਾਰ ਹੈ, ਅਤੇ ਇਹ ਘੁਮਾਉਣ ਦੀ ਕਾਰਵਾਈ ਦੇ ਨਾਲ ਰਨਬੁੱਕ ਵਿੱਚ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।
ਦੂਜਾ ਰਾਹ: ਕੁੰਜੀ ਦੇ ਪਾਸਫ਼ਰੇਜ਼ ਲਈ askpass
ਪਾਸਫ਼ਰੇਜ਼ ਨਾਲ ਸੁਰੱਖਿਅਤ ਨਿੱਜੀ ਕੁੰਜੀ ਦੂਜਾ, ਵੱਖਰਾ ਸੰਕੇਤ ਚੁੱਕਦੀ ਹੈ, ਅਤੇ ਉਸ ਦਾ ਆਪਣਾ ਫਾਈਲ-ਆਧਾਰਿਤ ਜਵਾਬ ਹੁੰਦਾ ਹੈ: askpass ਚੋਣ ਫਾਈਲ ਦੀ ਪਹਿਲੀ ਲਾਈਨ ਤੋਂ ਪਾਸਫ਼ਰੇਜ਼ ਪੜ੍ਹਦੀ ਹੈ। SSH-ਆਧਾਰਿਤ ਸੁਰੰਗਾਂ ਲਈ ਬਰਾਬਰ ਦੀ ਚੀਜ਼ ਉਹ askpass ਪ੍ਰੋਗਰਾਮ ਹੈ ਜੋ ਕਲਾਇੰਟ ਚਲਾਉਂਦਾ ਹੈ, ਅਤੇ ਉਸ ਦਾ ਮਿਆਰੀ ਆਉਟਪੁਟ ਭੇਤ ਬਣ ਜਾਂਦਾ ਹੈ।
ਦੋਵੇਂ ਰੂਪਾਂ ਵਿੱਚੋਂ ਕੋਈ ਵੀ ਭੇਤ ਨੂੰ ਦਲੀਲ ਸੂਚੀ ਵਿੱਚ ਨਹੀਂ ਰੱਖਦਾ, ਅਤੇ ਦੋਵੇਂ ਇਸ ਨੂੰ ਫਾਈਲ ਵਜੋਂ ਜਾਂ ਇਸ ਨੂੰ ਛਾਪਣ ਵਾਲੇ ਚਲਾਉਣਯੋਗ ਵਜੋਂ ਰਹਿਣ ਦਿੰਦੇ ਹਨ। ਸੁਰੱਖਿਆ ਫਾਈਲ ਆਗਿਆ ਤੇ ਪ੍ਰਕਿਰਿਆ ਮਾਲਕੀ ਹੈ, ਗੁਪਤਤਾ ਨਹੀਂ। ਕੋਡ ਵਿੱਚ ਲਿਖੀ ਸਤਰ ਨੂੰ ਦੁਹਰਾਉਣ ਵਾਲਾ ਸਹਾਇਕ ਵਾਧੂ ਕਦਮਾਂ ਵਾਲਾ ਭੇਤ ਹੈ।
ਤੀਜਾ ਰਾਹ: ਪੋਰਟਲ ਕਲਾਇੰਟ ਦੀ ਆਪਣੀ CLI
ਉੱਦਮ ਕਲਾਇੰਟ ਆਮ ਤੌਰ 'ਤੇ ਹੁਕਮ-ਲਾਈਨ ਦਾਖ਼ਲਾ ਬਿੰਦੂ ਦਿੰਦੇ ਹਨ ਜੋ ਬਿਨਾਂ ਕਿਸੇ ਵਿੰਡੋ ਦੇ ਨਾਮਿਤ ਪੋਰਟਲ ਨਾਲ ਜੁੜਦਾ ਹੈ, ਅਤੇ ਇਹੀ ਸਮਰਥਿਤ ਰਾਹ ਹੈ। Linux 'ਤੇ GlobalProtect ਕਲਾਇੰਟ ਆਪਣੀ CLI ਰਾਹੀਂ ਕਨੈਕਟ ਤੇ ਸਰਟੀਫਿਕੇਟ ਦਰਾਮਦ ਕਾਰਵਾਈਆਂ ਦਿੰਦਾ ਹੈ, ਅਤੇ ਸਰਟੀਫਿਕੇਟ ਪ੍ਰਮਾਣਿਕਤਾ ਵਰਤਣ ਵਾਲੇ ਪੋਰਟਲਾਂ ਨੂੰ ਆਪਣੇ-ਆਪ ਕੰਮ ਕਰਨ ਵਾਲੇ ਕਨੈਕਟ ਤੋਂ ਪਹਿਲਾਂ ਦਰਾਮਦ ਕਦਮ ਚਾਹੀਦਾ ਹੈ। ਬਣਾਵਟੀ ਕੀ-ਦਬਾਅ ਨਾਲੋਂ ਇਸੇ ਨੂੰ ਚੁਣੋ: ਸੱਚਾ ਐਗਜ਼ਿਟ ਸਟੇਟਸ ਮਿਲਦਾ ਹੈ, ਵਿੰਡੋ ਫੋਕਸ 'ਤੇ ਨਿਰਭਰਤਾ ਨਹੀਂ, ਅਤੇ ਇਹ ਤਾਲਾ ਲੱਗੀ ਸਕਰੀਨ 'ਤੇ ਵੀ ਟਿਕਦਾ ਹੈ।
ਜੇ ਪਹਿਲੇ ਕਨੈਕਸ਼ਨ ਨੂੰ ਹਾਲੇ ਵੀ ਸਰਟੀਫਿਕੇਟ ਮੰਨਣ ਲਈ ਇਨਸਾਨ ਚਾਹੀਦਾ ਹੈ, ਤਾਂ ਸਵੈਚਾਲਨ ਪੂਰਾ ਨਹੀਂ ਹੋਇਆ। ਸੈੱਟਅੱਪ ਦੌਰਾਨ ਦਰਾਮਦ ਕਰੋ ਅਤੇ ਇਸ ਨੂੰ ਪੂਰਵ-ਸ਼ਰਤ ਵਜੋਂ ਦਰਜ ਕਰੋ।
ਜਦੋਂ ਪ੍ਰਵਾਹ ਨੂੰ ਸਿਊਡੋ-ਟਰਮੀਨਲ ਚਾਹੀਦਾ ਹੈ
ਪਹਿਲਾਂ ਪਾਸਵਰਡ ਫਿਰ ਇੱਕ-ਵਾਰੀ ਕੋਡ ਮੰਗਣ ਵਾਲੇ ਕ੍ਰਮ ਕੋਲ ਪੜ੍ਹਨ ਲਈ ਇੱਕ ਵੀ ਫਾਈਲ ਨਹੀਂ। Expect ਵਰਗਾ ਟਰਮੀਨਲ ਡਰਾਈਵਰ ਸਹੀ ਸਾਧਨ ਹੈ, ਕਿਉਂਕਿ ਇਹ ਹਰ ਪੈਟਰਨ ਦੀ ਵਾਰੀ-ਵਾਰੀ ਉਡੀਕ ਕਰਦਾ ਹੈ, ਅਤੇ ਕੁਝ ਵੀ ਮਿਲਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਪ੍ਰਕਿਰਿਆ ਸ਼ੁਰੂ ਹੋਈ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ।
ਦੋ ਫੇਲ੍ਹਤਾਵਾਂ ਪ੍ਰਬਲ ਹਨ। ਕਲਾਇੰਟ ਸ਼ੁਰੂ ਕੀਤੇ ਬਿਨਾਂ ਸੰਕੇਤ ਦੀ ਉਡੀਕ ਕਰਨ ਵਾਲੀ ਸਕ੍ਰਿਪਟ ਸਦਾ ਲਈ ਉਡੀਕ ਕਰਦੀ ਹੈ, ਅਤੇ Tcl ਸ਼ੈੱਲ ਨਹੀਂ ਹੈ, ਇਸ ਲਈ expect ਬਲਾਕ ਅੰਦਰ ਲਿਖੀ ਸ਼ੈੱਲ ਗਣਿਤ ਪੜ੍ਹੇ ਜਾਣ ਵਾਂਗ ਮੁਲਾਂਕਣ ਨਹੀਂ ਹੁੰਦੀ। ਪੈਟਰਨ ਬਣਾਉਂਦੇ ਸਮੇਂ ਡੀਬੱਗ ਝੰਡਾ ਚਾਲੂ ਰੱਖੋ, ਫਿਰ ਬੰਦ ਕਰੋ।
ਜੋ ਭੇਤ ਲੀਕ ਹੁੰਦੇ ਹਨ, ਅਤੇ ਉਹ ਕਿੱਥੇ ਲੁਕਦੇ ਹਨ
ਦਲੀਲ ਵਜੋਂ ਦਿੱਤੀ ਕੋਈ ਵੀ ਚੀਜ਼ ਪ੍ਰਕਿਰਿਆ ਸੂਚੀ ਵਿੱਚ ਦਿਸਦੀ ਹੈ, ਇਸ ਲਈ ਪ੍ਰਮਾਣ ਪੱਤਰਾਂ ਦੀ ਥਾਂ ਫਾਈਲ ਵਿੱਚ ਜਾਂ ਸਹਾਇਕ ਪਿੱਛੇ ਹੈ, ਕਦੇ ਵੀ ਹੁਕਮ ਲਾਈਨ 'ਤੇ ਨਹੀਂ। ਇੱਕ-ਵਾਰੀ ਕੋਡ ਡਿਜ਼ਾਈਨ ਅਨੁਸਾਰ ਖ਼ਰਚ ਹੁੰਦੇ ਹਨ ਅਤੇ ਹਰ ਯਤਨ ਲਈ ਬਣਾਉਣੇ ਪੈਂਦੇ ਹਨ। ਫੇਲ੍ਹਤਾ ਲਾਗ ਅਕਸਰ ਵਰਤੋਂਕਾਰ ਨਾਮ ਤੇ ਕਦੇ ਹੋਰ ਵੀ ਲੈ ਕੇ ਚੱਲਦੇ ਹਨ, ਇਸ ਲਈ ਕਿਤੇ ਭੇਜਣ ਤੋਂ ਪਹਿਲਾਂ ਉਹਨਾਂ ਨੂੰ ਮਿਟਾਓ, ਅਤੇ ਭੇਤ ਨੂੰ ਪਰੋਫਾਈਲ ਤੋਂ ਬਾਹਰ ਰੱਖੋ, ਕਿਉਂਕਿ ਅੰਦਰ ਪਾਸਵਰਡ ਵਾਲੀ ਕਨਫ਼ਿਗ ਫਾਈਲ ਟਿਕਟ ਤੇ ਰਿਪੋਜ਼ਟਰੀਆਂ ਵਿੱਚ ਚਿਪਕ ਜਾਂਦੀ ਹੈ। ਫਿਰ ਖਾਤਾ ਘੁਮਾਉਣ ਦਾ ਅਰਥ ਹਰ ਕਾਪੀ ਦਾ ਸ਼ਿਕਾਰ ਹੋਣਾ ਹੈ, ਅਤੇ ਇਹੀ ਲਾਗਤ ਇਹ ਬੰਦੋਬਸਤ ਟਾਲਦੀ ਹੈ।
ਤੁਸੀਂ ਚੁਣੇ ਰਾਹਾਂ ਦੀ ਜਾਂਚ ਕਰੋ, ਫਿਰ ਉਹਨਾਂ ਨੂੰ ਉਸ unit ਫਾਈਲ ਜਾਂ ਸ਼ਡਿਊਲਰ ਨਾਲ ਜੋੜੋ ਜੋ ਸੱਚਮੁੱਚ ਕਲਾਇੰਟ ਚਲਾਏਗਾ। ਸੁਰੰਗ ਓਨੀ ਹੀ ਦੇਰ ਜੀਵਦੀ ਹੈ ਜਿੰਨੀ ਦੇਰ ਉਹ ਪ੍ਰਕਿਰਿਆ ਜੀਵਦੀ ਹੈ।