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 മോഡ് പ്രവർത്തിപ്പിച്ച് കുക്കി വരി മാത്രം മാറ്റിയെഴുതുന്നു. ക്രെഡൻഷ്യൽ സ്ക്രിപ്റ്റിന് പുറത്തും അത് പ്രവർത്തിപ്പിക്കുന്ന അക്കൗണ്ടിന് മാത്രം വായിക്കാവുന്നതുമാക്കുക, മാറ്റിയെഴുത്ത് ആറ്റോമിക് ആക്കുക, പരാജയപ്പെട്ട ഓട്ടം പകുതി എഴുതിയ ഫയൽ വിടാതിരിക്കാൻ.
ഓരോ കുറച്ച് മണിക്കൂറുകൾക്കും പുതുക്കൽ വേണമെങ്കിൽ, ഇടവേള എഴുതിവയ്ക്കുക. അത് ഗേറ്റ്വേയുടെ സെഷൻ നയത്തിന്റെ സ്വഭാവമാണ്, പുതുക്കൽ ഓട്ടോമേറ്റ് ചെയ്യണോ നീണ്ട സെഷൻ ആവശ്യപ്പെടണോ എന്ന് അത് തീരുമാനിക്കുന്നു.