ConnMan OpenConnect ਕੂਕੀ ਦੀ ਮਿਆਦ ਖ਼ਤਮ, ਸਰਟੀਫਿਕੇਟ ਦੀ ਸਮੱਸਿਆ ਨਹੀਂ
ਲੌਗ ਵਿੱਚ ਦੋ ਖ਼ਰਾਬੀਆਂ ਇੱਕੋ ਜਿਹੀਆਂ ਦਿਸਦੀਆਂ ਹਨ। ਪਿੰਨ ਕੀਤੀ ਫਿੰਗਰਪ੍ਰਿੰਟ ਦੀ ਸੈਸ਼ਨ ਕੂਕੀ ਨਾਲ ਤੁਲਨਾ ਕਰੋ, ਮਿਆਦ ਖ਼ਤਮ ਹੋਇਆ ਖੇਤਰ ਤਾਜ਼ਾ ਕਰੋ, ਫਿਰ ਡੈਮਨ ਦੁਬਾਰਾ ਚਾਲੂ ਕਰੋ।
ConnMan ਇੱਕ ਦੁਪਹਿਰ ਕੰਮ ਕਰਦਾ ਹੈ ਅਤੇ ਫਿਰ ਮਨਾਹੀ ਕਰਦਾ ਹੈ, ਅਤੇ ਜਰਨਲ ਦੀ ਲਾਈਨ ਸਰਟੀਫਿਕੇਟ ਜਾਂਚ ਦਾ ਜ਼ਿਕਰ ਕਰਦੀ ਹੈ। ਉਹ ਲਾਈਨ ਲੋਕਾਂ ਨੂੰ ਉਹਨਾਂ CA ਬੰਡਲਾਂ ਵੱਲ ਭੇਜਦੀ ਹੈ ਜੋ ਕਦੇ ਟੁੱਟੇ ਨਹੀਂ ਸਨ। ਦੋ ਵੱਖਰੀਆਂ ਖ਼ਰਾਬੀਆਂ ਲਗਭਗ ਇੱਕੋ ਜਿਹੀ ਅਸਫਲਤਾ ਪੈਦਾ ਕਰਦੀਆਂ ਹਨ: ਸੈਸ਼ਨ ਕੂਕੀ ਦੀ ਮਿਆਦ ਖ਼ਤਮ ਹੁੰਦੀ ਹੈ, ਜਾਂ ਸਰਵਰ ਦਾ ਸਰਟੀਫਿਕੇਟ ਸੱਚਮੁੱਚ ਬਦਲ ਗਿਆ ਹੈ। ਇਹਨਾਂ ਨੂੰ ਲਗਭਗ ਇੱਕ ਮਿੰਟ ਵਿੱਚ ਵੱਖਰਾ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਅਤੇ ਇਹਨਾਂ ਵਿੱਚੋਂ ਸਿਰਫ਼ ਇੱਕ ਹੀ ਫਿੰਗਰਪ੍ਰਿੰਟ ਨਾਲ ਸੰਬੰਧਿਤ ਹੈ।
ਦੋ ਖ਼ਰਾਬੀਆਂ, ਇੱਕ ਉਲਝਾਉਣ ਵਾਲੀ ਲੌਗ ਲਾਈਨ
ਇਹ ਦੋ ਨਿਰੀਖਣਾਂ ਉੱਤੇ ਵੱਖ ਹੁੰਦੀਆਂ ਹਨ, ਅਤੇ ਕਿਸੇ ਨੂੰ ਵੀ ਦੂਜੀ ਵਾਰ ਪੜ੍ਹਨ ਦੀ ਲੋੜ ਨਹੀਂ। ਪਹਿਲਾ ਇਹ ਹੈ ਕਿ ਅਸਫਲਤਾ ਕਦੋਂ ਸ਼ੁਰੂ ਹੋਈ: ਮਿਆਦ ਖ਼ਤਮ ਹੋਈ ਕੂਕੀ ਘੰਟਿਆਂ ਜਾਂ ਦਿਨਾਂ ਦੇ ਕੰਮ ਤੋਂ ਬਾਅਦ ਆਉਂਦੀ ਹੈ, ਅਤੇ ਬਦਲਿਆ ਸਰਟੀਫਿਕੇਟ ਗੇਟਵੇ ਬਦਲਾਅ ਤੋਂ ਤੁਰੰਤ ਬਾਅਦ ਆਉਂਦਾ ਹੈ।
| Signal | Expired cookie | Changed certificate |
|---|---|---|
| When it started | after hours or days of working | right after a gateway change |
| Fingerprint from a fresh authenticate | unchanged | different value |
| Usual log tail | HTTP CONNECT 401 / unauthorized | signer not found / verify failed |
| Repair | replace the cookie, restart | re-pin deliberately, then restart |
ਇੱਕ ਮਿੰਟ ਦੀ ਪਰਖ ਹੇਠਾਂ ਦਿੱਤੀ authenticate ਰਨ ਹੈ। ਇਸਦੀ FINGERPRINT ਦੀ ਫਾਈਲ ਵਿੱਚਲੀ OpenConnect.ServerCert ਨਾਲ ਤੁਲਨਾ ਕਰੋ। ਇੱਕੋ ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਤੇ ਵੱਖਰੀ COOKIE ਦਾ ਮਤਲਬ ਹੈ ਸਿਰਫ਼ ਕੂਕੀ ਬਦਲੋ। ਵੱਖਰੀ ਫਿੰਗਰਪ੍ਰਿੰਟ ਦਾ ਮਤਲਬ ਹੈ ਸਰਵਰ ਦਾ ਸਰਟੀਫਿਕੇਟ ਸੱਚਮੁੱਚ ਬਦਲ ਗਿਆ ਹੈ, ਇਸ ਲਈ ਇਸਨੂੰ ਜਾਣ-ਬੁੱਝ ਕੇ ਦੁਬਾਰਾ ਪਿੰਨ ਕਰੋ ਅਤੇ ਦਰਜ ਕਰੋ ਕਿ ਕਿਸਨੇ ਮਨਜ਼ੂਰੀ ਦਿੱਤੀ।
ਟਾਈਪ ਕਰਨ ਦੀ ਬਜਾਏ ਸਮੱਗਰੀ ਬਣਾਓ
NetworkManager ਵਾਂਗ ਨਹੀਂ, ConnMan ਵਿੱਚ OpenConnect ਪ੍ਰੋਫ਼ਾਈਲ ਲਈ ਕੋਈ ਆਯਾਤ ਕਦਮ ਨਹੀਂ ਹੈ। ਇਹ ਪ੍ਰੋਵੀਜ਼ਨਿੰਗ ਫਾਈਲ ਪੜ੍ਹਦਾ ਹੈ ਜਿਸਦੇ ਮੁੱਲ ਪਹਿਲਾਂ ਤੋਂ ਬਣਾਉਣੇ ਪੈਂਦੇ ਹਨ, ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਬਣਾਉਣ ਦਾ ਸਮਰਥਿਤ ਤਰੀਕਾ OpenConnect ਦਾ authenticate ਮੋਡ ਹੈ।
sudo openconnect --csd-wrapper=/home/user/.cisco/csd-wrapper.sh \
--authenticate --user myuser vpn.example.comਆਉਟਪੁੱਟ ਚਾਰ ਮੁੱਲ ਛਾਪਦਾ ਹੈ: POST, COOKIE, HOST ਅਤੇ FINGERPRINT। sha256: ਉਪਸਰਗ ਵਾਲੀ ਫਿੰਗਰਪ੍ਰਿੰਟ ਸਰਵਰ ਪਿੰਨ ਹੈ। ਕੂਕੀ ਸੈਸ਼ਨ ਆਰਟੀਫੈਕਟ ਹੈ ਜਿਸਦੀ ਉਮਰ ਗੇਟਵੇ ਤੈਅ ਕਰਦਾ ਹੈ। ਇਹਨਾਂ ਨੂੰ ਵੱਖਰੀਆਂ ਕਿਸਮਾਂ ਦੇ ਭੇਤ ਵਜੋਂ ਲਓ: ਇਹਨਾਂ ਦੀ ਮਿਆਦ ਵੱਖਰੇ ਸਮਾਂ-ਸਾਰਣੀ ਅਨੁਸਾਰ ਖ਼ਤਮ ਹੁੰਦੀ ਹੈ, ਅਤੇ ਸਿਰਫ਼ ਇੱਕ ਦੇ ਬਦਲਣ ਦੀ ਆਸ ਹੈ।
ਫਾਈਲ ਦੋਵੇਂ ਰੱਖਦੀ ਹੈ, ਅਤੇ ਇਹ ਵੱਖਰੇ ਤਰੀਕੇ ਨਾਲ ਪੁਰਾਣੇ ਹੁੰਦੇ ਹਨ
ਪ੍ਰੋਵੀਜ਼ਨਿੰਗ ਫਾਈਲ /var/lib/connman-vpn/ ਹੇਠ ਹੁੰਦੀ ਹੈ ਅਤੇ ਹਰ ਕਨੈਕਸ਼ਨ ਲਈ ਇਸਨੂੰ VPN ਡੈਮਨ ਪੜ੍ਹਦਾ ਹੈ, ਟਰੇ ਐਪਲੈਟ ਨਹੀਂ। ਕਨੈਕਸ਼ਨ ਦਾ ਨਾਮ ਗਲੋਬਲ ਭਾਗ ਵਿੱਚ ਅਤੇ ਪ੍ਰੋਟੋਕੋਲ ਦੇ ਵੇਰਵੇ ਪ੍ਰਦਾਤਾ ਭਾਗ ਵਿੱਚ ਰੱਖੋ।
[global]
Name = Company VPN
[provider_openconnect]
Type = OpenConnect
Name = Company Cisco VPN
Host = vpn.example.com
Domain = corp.example
OpenConnect.ServerCert = sha256:...
OpenConnect.Cookie = ...ਪੋਰਟਲ ਸੱਚਮੁੱਚ ਜਿਸ ਹੋਸਟ ਨਾਮ ਦੀ ਸੇਵਾ ਕਰਦਾ ਹੈ ਉਹੀ ਵਰਤੋ। ਨੰਗਾ IP ਪਤਾ ਸਰਟੀਫਿਕੇਟ ਜਾਂਚ ਪਾਸ ਕਰ ਸਕਦਾ ਹੈ ਅਤੇ ਫਿਰ ਵੀ ਅਸਫਲ ਹੋ ਸਕਦਾ ਹੈ, ਕਿਉਂਕਿ ਯੰਤਰ ਵਰਚੁਅਲ ਹੋਸਟ ਉੱਤੇ ਰੂਟ ਕਰਦਾ ਹੈ ਅਤੇ ਨਾਮ ਦੀ ਉਮੀਦ ਕਰਦਾ ਹੈ।
systemctl status connman-vpn --no-pager # is the daemon even installed and running
sudo systemctl restart connman-vpn # after the file edit
journalctl -u connman-vpn --since '1 hour ago' # after the connection attemptਜਰਨਲ ਸੱਚਮੁੱਚ ਕੀ ਦਿਖਾਉਂਦਾ ਹੈ
ਟਰੇ ਟੂਲਟਿਪ ਨਹੀਂ ਦੱਸੇਗਾ ਕਿ ਤੁਹਾਡੇ ਕੋਲ ਕਿਹੜੀ ਖ਼ਰਾਬੀ ਹੈ। ਜਰਨਲ ਦੱਸੇਗਾ, ਜੇ ਤੁਸੀਂ ਪਹਿਲੀ ਚਿੰਤਾਜਨਕ ਲਾਈਨ ਦੀ ਬਜਾਏ ਕ੍ਰਮ ਪੜ੍ਹੋ। ਪੁਰਾਣੀ ਕੂਕੀ ਆਮ ਤੌਰ ਤੇ ਦਿਖਾਉਂਦੀ ਹੈ ਕਿ TLS ਗੱਲਬਾਤ ਪੂਰੀ ਹੋਈ ਅਤੇ HTTP ਪਰਤ ਨੇ ਬਾਅਦ ਵਿੱਚ ਮਨਾਹੀ ਕੀਤੀ; ਇਸੇ ਲਈ ਸਰਟੀਫਿਕੇਟਾਂ ਬਾਰੇ ਸ਼ਬਦ ਕਿਸੇ ਅਧਿਕਾਰ ਅਸਫਲਤਾ ਦੇ ਨਾਲ ਖੜ੍ਹੇ ਹੁੰਦੇ ਹਨ।
ਨਵੀਂ authenticate ਰਨ ਦੀ ਫਾਈਲ ਵਿੱਚਲੇ ਮੁੱਲਾਂ ਨਾਲ ਤੁਲਨਾ ਕਰੋ। ਜੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਮੇਲ ਖਾਂਦੀ ਹੈ ਅਤੇ ਸਿਰਫ਼ ਕੂਕੀ ਵੱਖਰੀ ਹੈ, ਤਾਂ ਭਰੋਸਾ ਸੈਟਿੰਗਾਂ ਨੂੰ ਛੂਹੇ ਬਿਨਾਂ ਤੁਹਾਡਾ ਜਵਾਬ ਮਿਲ ਗਿਆ।
ਮਿਆਦ ਖ਼ਤਮ ਹੋਇਆ ਖੇਤਰ ਤਾਜ਼ਾ ਕਰੋ
authenticate ਕਮਾਂਡ ਦੁਹਰਾਓ, OpenConnect.Cookie ਬਦਲੋ ਅਤੇ ਡੈਮਨ ਦੁਬਾਰਾ ਚਾਲੂ ਕਰੋ। ਫਿੰਗਰਪ੍ਰਿੰਟ ਨੂੰ ਛੇੜੋ ਨਾ ਜਦ ਤੱਕ ਨਵਾਂ ਆਉਟਪੁੱਟ ਵੱਖਰਾ ਮੁੱਲ ਨਾ ਦਿਖਾਏ; ਉਸ ਸਥਿਤੀ ਵਿੱਚ ਸਰਵਰ ਦਾ ਸਰਟੀਫਿਕੇਟ ਸੱਚਮੁੱਚ ਬਦਲਿਆ ਗਿਆ ਹੈ ਅਤੇ ਦੁਬਾਰਾ ਪਿੰਨ ਕਰਨਾ ਉਹ ਫੈਸਲਾ ਹੈ ਜੋ ਕਿਸੇ ਨੇ ਦਰਜ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ, ਗਲਤੀ ਸੁਨੇਹੇ ਤੋਂ ਚੇਪਣਾ ਨਹੀਂ।
ਤਾਜ਼ਾ ਕਰਨ ਨੂੰ ਸਵੈਚਾਲਿਤ ਕਰਨਾ ਵਾਜਬ ਹੈ: ਛੋਟੀ ਸਕ੍ਰਿਪਟ ਮਿਆਰੀ ਇਨਪੁੱਟ ਤੋਂ ਪਾਸਵਰਡ ਪੜ੍ਹਦੀ ਹੈ, authenticate ਮੋਡ ਚਲਾਉਂਦੀ ਹੈ ਅਤੇ ਸਿਰਫ਼ ਕੂਕੀ ਦੀ ਲਾਈਨ ਦੁਬਾਰਾ ਲਿਖਦੀ ਹੈ। ਪ੍ਰਮਾਣਿਕਤਾ ਨੂੰ ਸਕ੍ਰਿਪਟ ਤੋਂ ਬਾਹਰ ਰੱਖੋ ਅਤੇ ਸਿਰਫ਼ ਉਸ ਖਾਤੇ ਲਈ ਪੜ੍ਹਨਯੋਗ ਬਣਾਓ ਜੋ ਇਸਨੂੰ ਚਲਾਉਂਦਾ ਹੈ, ਅਤੇ ਦੁਬਾਰਾ ਲਿਖਣ ਨੂੰ ਪਰਮਾਣੂ ਬਣਾਓ ਤਾਂ ਜੋ ਅਸਫਲ ਰਨ ਅੱਧੀ ਲਿਖੀ ਫਾਈਲ ਨਾ ਛੱਡੇ।
ਜੇ ਹਰ ਕੁਝ ਘੰਟਿਆਂ ਬਾਅਦ ਤਾਜ਼ਾ ਕਰਨ ਦੀ ਲੋੜ ਹੋਵੇ, ਤਾਂ ਅੰਤਰਾਲ ਲਿਖ ਲਓ। ਇਹ ਗੇਟਵੇ ਦੀ ਸੈਸ਼ਨ ਨੀਤੀ ਦਾ ਗੁਣ ਹੈ, ਅਤੇ ਇਹ ਤੈਅ ਕਰਦਾ ਹੈ ਕਿ ਤਾਜ਼ਾ ਕਰਨ ਨੂੰ ਸਵੈਚਾਲਿਤ ਕਰਨਾ ਹੈ ਜਾਂ ਲੰਮਾ ਸੈਸ਼ਨ ਮੰਗਣਾ ਹੈ।