Cisco AnyConnect ਨਾਲ ਆਉਣ ਵਾਲਾ vpn ਕਲਾਇੰਟ ਗੱਲਬਾਤ ਵਾਂਗ ਵਿਵਹਾਰ ਕਰਦਾ ਹੈ: ਇਹ ਪ੍ਰੋਂਪਟ ਛਾਪਦਾ ਹੈ, ਇੱਕ ਲਾਈਨ ਦੀ ਉਡੀਕ ਕਰਦਾ ਹੈ, ਫਿਰ ਅਗਲਾ ਛਾਪਦਾ ਹੈ। ਉਹ ਗੱਲਬਾਤ ਫਾਈਲ ਜਾਂ ਪਾਈਪ ਤੋਂ ਦਿੱਤੀ ਜਾਵੇ ਤਾਂ ਉਹੀ ਬਾਇਨਰੀ ਨਿਗਰਾਨੀ ਤੋਂ ਬਿਨਾਂ ਚੱਲਦੀ ਹੈ। ਤਕਨੀਕ ਇੱਕ ਰੀਡਾਇਰੈਕਟ ਅਤੇ ਕ੍ਰਮਬੱਧ ਜਵਾਬ ਸੂਚੀ ਹੈ, ਅਤੇ ਸਕ੍ਰਿਪਟ ਭਰੋਸੇਯੋਗ ਹੈ ਜਾਂ ਨਹੀਂ ਇਹ ਰੀਡਾਇਰੈਕਟ ਨਹੀਂ, ਉਹੀ ਸੂਚੀ ਤੈਅ ਕਰਦੀ ਹੈ।

ਅਮਲ ਵਿੱਚ ਦੋ ਚੀਜ਼ਾਂ ਇਸਨੂੰ ਤੋੜਦੀਆਂ ਹਨ। ਜਦੋਂ ਗੇਟਵੇ ਕੁਝ ਵਾਧੂ ਪੁੱਛਦਾ ਹੈ ਤਾਂ ਪ੍ਰੋਂਪਟਾਂ ਦਾ ਕ੍ਰਮ ਬਦਲ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਸੰਭਾਲਿਆ ਪਾਸਵਰਡ ਇੱਕ ਟਾਈਪਿੰਗ ਗਲਤੀ ਨੂੰ ਖਾਤਾ ਲਾਕਆਉਟ ਬਣਾ ਦਿੰਦਾ ਹੈ। ਕ੍ਰਮ ਨੂੰ ਸੰਸਕਰਣਬੱਧ ਡੇਟਾ ਵਾਂਗ ਵੇਖੋ ਜਿਸਦੀ ਤੁਸੀਂ ਕਿਸੇ ਵੀ ਗੇਟਵੇ ਬਦਲਾਅ ਤੋਂ ਬਾਅਦ ਤੁਲਨਾ ਕਰ ਸਕਦੇ ਹੋ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਦੀ ਥਾਂ ਉੱਚੀ ਆਵਾਜ਼ ਵਿੱਚ ਫੇਲ੍ਹ ਹੋਵੋ, ਕਿਉਂਕਿ ਲੂਪ ਹੀ ਉਹ ਰਾਹ ਹੈ ਜਿਸ ਨਾਲ ਗਲਤ ਟਾਈਪ ਕੀਤਾ ਪਾਸਵਰਡ ਲਾਕ ਹੋਇਆ ਖਾਤਾ ਬਣਦਾ ਹੈ।

ਇੱਕ ਕ੍ਰਮ, ਉਸੇ ਕ੍ਰਮ ਵਿੱਚ ਜਿਸ ਵਿੱਚ ਕਲਾਇੰਟ ਪੁੱਛਦਾ ਹੈ

ਕਲਾਇੰਟ ਨੂੰ ਇੱਕ ਵਾਰ ਇੰਟਰਐਕਟਿਵ ਢੰਗ ਨਾਲ ਚਲਾਓ ਅਤੇ ਹਰ ਪ੍ਰੋਂਪਟ ਨੂੰ ਉਸੇ ਕ੍ਰਮ ਵਿੱਚ ਲਿਖੋ ਜਿਸ ਵਿੱਚ ਉਹ ਦਿਸਦਾ ਹੈ। ਉਹੀ ਟ੍ਰਾਂਸਕ੍ਰਿਪਟ ਜਵਾਬ-ਫਾਈਲ ਬਣ ਜਾਂਦੀ ਹੈ। ਜਦੋਂ ਤੁਸੀਂ ਫਾਈਲ ਨੂੰ ਬਾਇਨਰੀ ਵਿੱਚ ਰੀਡਾਇਰੈਕਟ ਕਰਦੇ ਹੋ ਤਾਂ ਪਹਿਲੀ ਲਾਈਨ ਕਨੈਕਸ਼ਨ ਕਮਾਂਡ ਹੀ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ, ਇਸੇ ਲਈ ਕ੍ਰਮ ਵਰਤੋਂਕਾਰ ਨਾਮ ਦੀ ਥਾਂ ਹੋਸਟ ਨਾਮ ਨਾਲ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ।

connect vpn.example.com
0
<username>
<password>
y
exit

ਨੰਗਾ 0 ਗੇਟਵੇ ਵੱਲੋਂ ਸੂਚੀ ਦੇਣ ’ਤੇ ਪਹਿਲਾ ਕਨੈਕਸ਼ਨ ਪ੍ਰੋਫਾਈਲ ਚੁਣਦਾ ਹੈ; ਤੁਹਾਡਾ ਗੇਟਵੇ ਜੋ ਇੰਡੈਕਸ ਛਾਪਦਾ ਹੈ ਉਹੀ ਵਰਤੋ। y ਲੌਗਇਨ ਬੈਨਰ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ, ਇਸ ਲਈ ਬੈਨਰ ਨਾ ਹੋਣ ’ਤੇ ਉਹ ਲਾਈਨ ਮਿਟਾ ਦਿਓ ਅਤੇ ਜਿੱਥੇ ਤੁਹਾਡਾ ਗੇਟਵੇ ਵਾਧੂ ਸਵਾਲ ਪੁੱਛਦਾ ਹੈ ਉੱਥੇ ਇੱਕ ਲਾਈਨ ਪਾਓ। ਅੰਤ ਵਾਲਾ exit ਹੀ ਕਲਾਇੰਟ ਨੂੰ ਆਖਰੀ ਜਵਾਬ ਵਰਤੇ ਜਾਣ ਮਗਰੋਂ ਸਾਫ਼-ਸੁਥਰਾ ਖਤਮ ਹੋਣ ਦਿੰਦਾ ਹੈ।

/opt/cisco/anyconnect/bin/vpn -s < anyconnect.txt

ਇੱਥੇ ਗੈਰ-ਇੰਟਰਐਕਟਿਵ ਮੋਡ ਚੋਣਵਾਂ ਨਹੀਂ ਹੈ। -s ਤੋਂ ਬਿਨਾਂ ਕਲਾਇੰਟ ਟਰਮੀਨਲ ’ਤੇ ਕਬਜ਼ਾ ਕਰ ਸਕਦਾ ਹੈ ਅਤੇ ਰੀਡਾਇਰੈਕਟ ਕੀਤਾ ਇਨਪੁਟ ਅਣਡਿੱਠਾ ਕਰ ਸਕਦਾ ਹੈ; ਇਸ ਨਾਲ ਜਵਾਬ ਸਟਰੀਮ ਤੋਂ ਪੜ੍ਹੇ ਜਾਂਦੇ ਹਨ ਅਤੇ ਪ੍ਰਕਿਰਿਆ ਵਾਪਸ ਆ ਜਾਂਦੀ ਹੈ। ਜਿੱਥੇ ਬਾਇਨਰੀ ਨੂੰ ਵਧੇਰੇ ਅਧਿਕਾਰ ਚਾਹੀਦੇ ਹਨ, ਕਾਲ ਨੂੰ sudo -n ਵਿੱਚ ਲਪੇਟੋ ਤਾਂ ਜੋ ਸਕ੍ਰਿਪਟ ਪਾਸਵਰਡ ਪ੍ਰੋਂਪਟ ’ਤੇ ਅਟਕਣ ਦੀ ਥਾਂ ਤੁਰੰਤ ਫੇਲ੍ਹ ਹੋਵੇ।

ਜਵਾਬ-ਫਾਈਲ ਕਿੱਥੇ ਲੀਕ ਹੁੰਦੀ ਹੈ

ਪਾਸਵਰਡ ਵਾਲੀ ਫਾਈਲ ਇੱਕ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲ ਹੈ, ਇਸ ਲਈ ਇਸਨੂੰ ਉਸਦੀਆਂ ਇਜਾਜ਼ਤਾਂ ਦਿਓ: ਮੋਡ 600, ਕੰਮ ਚਲਾਉਣ ਵਾਲੇ ਖਾਤੇ ਦੀ ਮਾਲਕੀ ਵਿੱਚ, ਅਤੇ ਕਦੇ ਵੀ ਸਾਂਝੀ ਜਾਂ ਸਿੰਕ ਕੀਤੀ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਨਹੀਂ। ਬਾਅਦ ਵਿੱਚ ਠੀਕ ਕਰਨ ਦੀ ਥਾਂ ਮੋਡ ਪਹਿਲਾਂ ਹੀ ਲਾਗੂ ਕਰਕੇ ਬਣਾਓ, ਕਿਉਂਕਿ ਲਿਖਣ ਅਤੇ chmod ਵਿਚਕਾਰ ਫਾਈਲ ਥੋੜ੍ਹੀ ਦੇਰ ਲਈ ਸਾਰਿਆਂ ਲਈ ਪੜ੍ਹਨਯੋਗ ਹੁੰਦੀ ਹੈ।

install -m 600 /dev/null ~/.config/anyconnect.txt
chmod 700 ~/.config

ਦੂਜਾ ਅੱਧਾ argv ਹੈ। ਆਰਗਿਊਮੈਂਟ ਵਜੋਂ ਦਿੱਤਾ ਪਾਸਵਰਡ ਪ੍ਰਕਿਰਿਆਵਾਂ ਦੀ ਸੂਚੀ ਬਣਾਉਣ ਵਾਲੇ ਹਰ ਸਥਾਨਕ ਵਰਤੋਂਕਾਰ ਨੂੰ ਦਿਸਦਾ ਹੈ, ਅਤੇ ਇਹ ਸ਼ੈੱਲ ਇਤਿਹਾਸ ਵਿੱਚ ਵੀ ਪਹੁੰਚਦਾ ਹੈ। ਇਸਦੀ ਥਾਂ ਇਸਨੂੰ ਫਾਈਲ ਡਿਸਕ੍ਰਿਪਟਰ ਜਾਂ ਵਾਤਾਵਰਣ ਚਰ ਤੋਂ ਪੜ੍ਹੋ, ਅਤੇ ਪੇਲੋਡ ਨੂੰ ਹਵਾਲਾ ਚਿੰਨ੍ਹਾਂ ਵਿੱਚ ਰੱਖੋ ਤਾਂ ਜੋ ਸ਼ੈੱਲ ਅੰਦਰ ਕੁਝ ਵੀ ਫੈਲਾ ਨਾ ਸਕੇ।

printf '%s\n' 'connect vpn.example.com' '0' "$VPN_USER" "$VPN_PASS" 'y' 'exit' \
  | sudo -n /opt/cisco/anyconnect/bin/vpn -s

ਹਵਾਲਾ ਚਿੰਨ੍ਹਾਂ ਵੱਲ ਧਿਆਨ ਦਿਓ। ਦੋਹਰੇ ਹਵਾਲਾ ਚਿੰਨ੍ਹਾਂ ਵਿੱਚ ! ਵਾਲਾ ਪਾਸਵਰਡ ਕਲਾਇੰਟ ਦੇ ਵੇਖਣ ਤੋਂ ਪਹਿਲਾਂ ਹੀ ਇੰਟਰਐਕਟਿਵ ਸ਼ੈੱਲ ਫੈਲਾ ਸਕਦਾ ਹੈ, ਅਤੇ ਫੇਲ੍ਹ ਪ੍ਰੋਟੋਕੋਲ ਸਮੱਸਿਆ ਵਰਗੀ ਦਿਸਣ ਵਾਲੀ ਆਮ event-not-found ਗਲਤੀ ਵਜੋਂ ਆਉਂਦੀ ਹੈ।

ਟਨਲ ਸਾਬਤ ਕਰੋ, ਫਿਰ ਬੰਦ ਕਰੋ

ਜੁੜੀ ਸਥਿਤਿ ਸਿਰਫ਼ ਇਹ ਸਾਬਤ ਕਰਦੀ ਹੈ ਕਿ ਕਲਾਇੰਟ ਮੰਨਦਾ ਹੈ ਕਿ ਉਸਦਾ ਸੈਸ਼ਨ ਹੈ। ਸਿਰਫ਼ ਕਾਰਪੋਰੇਟ ਨੈੱਟਵਰਕ ਦੇ ਅੰਦਰੋਂ ਜਵਾਬ ਦੇਣ ਵਾਲਾ ਹੋਸਟ ਚੁਣੋ ਅਤੇ ਕੁਝ ਹੋਰ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ ਵਾਰ ਪਰਖੋ। ਉੱਥੇ ਫੇਲ੍ਹ ਹੋਣਾ ਰੂਟਿੰਗ ਜਾਂ ਨੀਤੀ ਦੀ ਖਰਾਬੀ ਹੈ, ਅਤੇ ਲੌਗਇਨ ਦੁਬਾਰਾ ਚਲਾਉਣ ਨਾਲ ਉਹ ਨਹੀਂ ਬਦਲੇਗੀ।

/opt/cisco/anyconnect/bin/vpn state
curl -sS -o /dev/null -w '%{http_code}\n' --max-time 10 https://<internal-host>/
/opt/cisco/anyconnect/bin/vpn disconnect

ਡਿਸਕਨੈਕਟ ਤੋਂ ਪਹਿਲਾਂ ਅਤੇ ਬਾਅਦ ਸਟੇਟ ਆਉਟਪੁਟ ਜਾਂਚੋ। ਪੁਰਾਣੇ ਸੈਸ਼ਨ ਨਾਲ ਛੱਡਿਆ ਕਲਾਇੰਟ ਅਗਲਾ ਕਨੈਕਸ਼ਨ ਇਨਕਾਰ ਕਰ ਸਕਦਾ ਹੈ ਜਦੋਂ ਕਿ ਸਕ੍ਰਿਪਟ ਅਜੇ ਵੀ ਸਫਲਤਾ ਦੀ ਰਿਪੋਰਟ ਕਰਦੀ ਹੈ, ਅਤੇ ਸਿਰਫ਼ ਐਗਜ਼ਿਟ ਕੋਡ ਵੇਖਣ ’ਤੇ ਇਹ ਫੇਲ੍ਹ ਕਿਸਮ ਅਦਿੱਖ ਰਹਿੰਦੀ ਹੈ। ਦੂਜੀ ਪੜ੍ਹਤ ’ਤੇ ਇਕੱਲੇ ਭਰੋਸਾ ਕਰਨ ਦੀ ਥਾਂ ਦੋਵਾਂ ਦੀ ਤੁਲਨਾ ਕਰੋ। ਸ਼ੈੱਲ ਪ੍ਰੋਫਾਈਲ ਵਿੱਚ ਉਪਨਾਮ ਰੋਜ਼ਾਨਾ ਵਰਤੋਂ ਲਈ ਕਾਫ਼ੀ ਹਨ, ਪਰ ਤਹਿ ਕੀਤਾ ਕੋਈ ਵੀ ਕੰਮ ਕਿਸੇ ਹੋਰ ਨਿਗਰਾਨੀ ਰਹਿਤ ਕੰਮ ਵਾਂਗ ਉਹੀ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲ ਅਤੇ ਪਛਾਣ ਸਮੀਖਿਆ ਦਾ ਹੱਕਦਾਰ ਹੈ।

ਜਦੋਂ ਸਥਿਰ ਸੂਚੀ ਸੁਰੱਖਿਅਤ ਨਹੀਂ ਰਹਿੰਦੀ

ਜਵਾਬ-ਫਾਈਲ ਅੱਜ ਦੇ ਪ੍ਰੋਂਪਟ ਕ੍ਰਮ ਨੂੰ ਏਨਕੋਡ ਕਰਦੀ ਹੈ। ਬਦਲਿਆ ਬੈਨਰ, ਜ਼ਬਰਦਸਤੀ ਪਾਸਵਰਡ ਬਦਲਾਅ ਜਾਂ ਦੂਜੇ-ਕਾਰਕ ਦੀ ਚੁਣੌਤੀ ਇਸਨੂੰ ਖਾਤਾ ਲਾਕ ਕਰ ਸਕਣ ਵਾਲੇ ਲੂਪ ਵਿੱਚ ਬਦਲ ਦਿੰਦੀ ਹੈ, ਇਸ ਲਈ ਸਕ੍ਰਿਪਟ ਨੂੰ ਮੁੜ ਸ਼ੁਰੂ ਕਰਨ ਦੀ ਥਾਂ ਪਹਿਲੇ ਅਣਕਿਆਸੇ ਜਵਾਬ ’ਤੇ ਬਾਹਰ ਨਿਕਲਣਾ ਚਾਹੀਦਾ ਹੈ।

ਕਲਾਇੰਟ ਨੇ ਜੋ ਛਾਪਿਆ ਉਹ ਕੈਪਚਰ ਕਰੋ, ਗੈਰ-ਸਿਫ਼ਰ ਸਥਿਤਿ ਵਾਪਸ ਕਰੋ ਅਤੇ ਫੈਸਲਾ ਕਾਲਰ ’ਤੇ ਛੱਡੋ। ਜਿੱਥੇ ਗੇਟਵੇ ਦੂਜੇ ਕਾਰਕ ਦੀ ਮੰਗ ਕਰਦਾ ਹੈ, ਇਮਾਨਦਾਰ ਜਵਾਬ ਇਹ ਹੈ ਕਿ ਉਸ ਪ੍ਰੋਫਾਈਲ ਲਈ ਨਿਗਰਾਨੀ ਰਹਿਤ ਲੌਗਇਨ ਉਪਲਬਧ ਨਹੀਂ, ਇਹ ਨਹੀਂ ਕਿ ਕ੍ਰਮ ਨੂੰ ਇੱਕ ਹੋਰ ਲਾਈਨ ਚਾਹੀਦੀ ਹੈ।

ਰੋਟੇਸ਼ਨ ਵੀ ਉਸੇ ਸਮੀਖਿਆ ਦਾ ਹਿੱਸਾ ਹੈ। ਜੇ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲ ਸੰਭਾਲਿਆ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਤੈਅ ਕਰੋ ਕਿ ਇਸਨੂੰ ਕੌਣ ਪੜ੍ਹ ਸਕਦਾ ਹੈ, ਇਹ ਕਦੋਂ ਬਦਲਦਾ ਹੈ ਅਤੇ ਹੋਸਟ ਮੁੜ ਬਣਨ ’ਤੇ ਇਸਨੂੰ ਕੀ ਹਟਾਉਂਦਾ ਹੈ। ਜੋ ਸਕ੍ਰਿਪਟ ਇੱਕ ਸਾਲ ਚੱਲਦੀ ਹੈ ਕਿਉਂਕਿ ਕਿਸੇ ਨੇ ਪਾਸਵਰਡ ਨੂੰ ਛੋਹਿਆ ਨਹੀਂ, ਉਹ ਡਿਜ਼ਾਈਨ ਨਹੀਂ, ਸਗੋਂ ਰੋਟੇਸ਼ਨ ਨੀਤੀ ਦੀ ਉਡੀਕ ਕਰਦਾ ਹਾਦਸਾ ਹੈ।

ਜੋ ਪ੍ਰੋਫਾਈਲ AnyConnect ਨਹੀਂ ਹਨ

Cisco ਦੀਆਂ ਦੋ ਪੁਰਾਣੀਆਂ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲ ਸ਼ੈਲੀਆਂ ਇਸ ਨਾਲ ਉਲਝਾਈਆਂ ਜਾਂਦੀਆਂ ਹਨ। vpnc ਪ੍ਰੋਫਾਈਲ IPSec ID ਮੰਗਦਾ ਹੈ, ਜੋ ਅਸਲ ਵਿੱਚ ਸਮੂਹ ਦਾ ਨਾਮ ਹੈ, ਫਿਰ ਸਮੂਹ ਭੇਤ, ਫਿਰ ਤੁਹਾਡੇ ਆਪਣੇ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲ, ਅਤੇ ਤਿੰਨੇ ਗੇਟਵੇ ਚਲਾਉਣ ਵਾਲੇ ਤੋਂ ਆਉਂਦੇ ਹਨ। ਪੁਰਾਣਾ Cisco IPsec AnyConnect ਤੋਂ ਵੱਖਰਾ ਪ੍ਰੋਟੋਕੋਲ ਹੈ, ਇਸ ਲਈ vpnc ਸਿਰਫ਼-AnyConnect ਸੇਵਾ ਤੱਕ ਨਹੀਂ ਪਹੁੰਚ ਸਕਦਾ; openconnect --protocol=anyconnect ਉਸ ਕੰਮ ਲਈ ਖੁੱਲ੍ਹਾ ਕਲਾਇੰਟ ਹੈ।

.pcf ਫਾਈਲ ਪੁਰਾਣੇ ਕਲਾਇੰਟ ਪ੍ਰੋਫਾਈਲ ਦਾ ਵਰਣਨ ਕਰਦੀ ਹੈ। ਇਸ ਵਿੱਚਲਾ ਹੋਸਟ, ਸਮੂਹ ਦਾ ਨਾਮ ਅਤੇ ਸਮੂਹ ਪਾਸਵਰਡ Cisco IPsec ਬੋਲਣ ਵਾਲੇ ਕਲਾਇੰਟ ਵਿੱਚ ਹੱਥੋਂ ਦੁਬਾਰਾ ਭਰਿਆ ਜਾ ਸਕਦਾ ਹੈ, ਹਾਲਾਂਕਿ ਫਾਈਲ ਸਰਵਵਿਆਪੀ ਆਯਾਤ ਨਹੀਂ ਹੈ ਅਤੇ ਕੋਈ ਵੀ ਗੈਰ-ਡਿਫ਼ਾਲਟ ਪੋਰਟ ਜਾਂ ਟਨਲਿੰਗ ਮੋਡ ਆਮ ਤੌਰ ’ਤੇ ਤਬਾਦਲੇ ਵਿੱਚ ਗਾਇਬ ਹੋ ਜਾਂਦਾ ਹੈ।

ਗੇਟਵੇ ਅਸਲ ਵਿੱਚ ਕੀ ਦਿੰਦਾ ਹੈ ਉਸ ਤੋਂ ਸ਼ੁਰੂ ਕਰੋ, ਫਿਰ ਉਹ ਕਲਾਇੰਟ ਚੁਣੋ ਜੋ ਉਹ ਪ੍ਰੋਟੋਕੋਲ ਬੋਲਦਾ ਹੈ। ਦੂਜੀ ਸਾਈਟ ਤੋਂ ਪ੍ਰੋਫਾਈਲ ਕਾਪੀ ਕਰਨਾ ਹੀ ਉਹ ਰਾਹ ਹੈ ਜਿਸ ਨਾਲ ਲੋਕ ਉਹ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲ ਡੀਬੱਗ ਕਰਨ ਪੁੱਜਦੇ ਹਨ ਜੋ ਕਦੇ ਸਮੱਸਿਆ ਨਹੀਂ ਸਨ।

ਸੰਬੰਧਿਤ ਲੇਖ