ConnMan funkcias posttagmezon kaj poste rifuzas, kaj la ĵurnala linio mencias atestilan kontroladon. Tiu linio sendas homojn al CA-aroj kiuj neniam estis difektitaj. Du malsamaj paneoj produktas preskaŭ la saman formon de malsukceso: la kuketo de la seanco senvalidiĝas, aŭ la atestilo de la servilo efektive ŝanĝiĝis. Oni povas ilin distingi en proksimume unu minuto, kaj nur unu el ili rilatas al la fingrospuro.

Du paneoj, unu konfuza ĵurnala linio

Ili apartiĝas per du observoj, kaj neniu el ili bezonas duan legadon. La unua estas kiam la paneo komenciĝis: senvalida kuketo alvenas post horoj aŭ tagoj da laboro, kaj anstataŭigita atestilo alvenas tuj post ŝanĝo de pordego.

SignalExpired cookieChanged certificate
When it startedafter hours or days of workingright after a gateway change
Fingerprint from a fresh authenticateunchangeddifferent value
Usual log tailHTTP CONNECT 401 / unauthorizedsigner not found / verify failed
Repairreplace the cookie, restartre-pin deliberately, then restart

La unuminuta testo estas la authenticate-rulado sube. Komparu ĝian FINGERPRINT kun OpenConnect.ServerCert en la dosiero. Identa fingrospuro kun alia COOKIE signifas anstataŭigi nur la kuketon. Malsama fingrospuro signifas ke la atestilo de la servilo vere ŝanĝiĝis, do refiksu ĝin intence kaj notu kiu aprobis tion.

Generu la materialon anstataŭ tajpi ĝin

ConnMan ne havas importan paŝon por OpenConnect-profilo, malkiel NetworkManager. Ĝi legas provizdosieron kies valoroj devas esti produktitaj anticipe, kaj la subtenata maniero produkti ilin estas la authenticate-reĝimo de OpenConnect.

sudo openconnect --csd-wrapper=/home/user/.cisco/csd-wrapper.sh \
  --authenticate --user myuser vpn.example.com

La eligo presas kvar valorojn: POST, COOKIE, HOST kaj FINGERPRINT. La fingrospuro, kun la prefikso sha256:, estas la fiksilo de la servilo. La kuketo estas la seanco-artefakto kun vivodaŭro kiun la pordego decidas. Traktu ilin kiel malsamajn specojn de sekreto: ili senvalidiĝas laŭ malsamaj horaroj, kaj nur unu el ili estas atendita ŝanĝiĝi.

La dosiero portas ambaŭ, kaj ili maljuniĝas malsame

La provizdosiero troviĝas sub /var/lib/connman-vpn/ kaj estas legata por ĉiu konekto de la VPN-demono, ne de la pleto-apleto. Tenu la konektan nomon en la tutmonda sekcio kaj la protokolajn detalojn en la provizanta sekcio.

[global]
Name = Company VPN

[provider_openconnect]
Type = OpenConnect
Name = Company Cisco VPN
Host = vpn.example.com
Domain = corp.example
OpenConnect.ServerCert = sha256:...
OpenConnect.Cookie = ...

Uzu la gastigantan nomon kiun la portalo efektive servas. Nuda IP-adreso povas trapasi la atestilan kontrolon kaj tamen malsukcesi, ĉar la aparato enkursigas laŭ la virtuala gastiganto kaj atendas la nomon.

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

Kion la ĵurnalo efektive montras

La pleto-spruĉo ne diros kiun paneon vi havas. La ĵurnalo diros, se vi legas la sinsekvon anstataŭ la unuan alarman linion. Malnova kuketo tipe montras ke la TLS-intertraktado finiĝis kaj la HTTP-tavolo malakceptas poste, kaj tial la vortoj pri atestiloj staras apud aŭtoriza malsukceso.

Komparu freŝan authenticate-ruladon kun la valoroj en la dosiero. Se la fingrospuro kongruas kaj nur la kuketo diferencas, vi havas vian respondon sen tuŝi fido-agordojn.

Renovigu la kampon kiu senvalidiĝis

Ripetu la komandon authenticate, anstataŭigu OpenConnect.Cookie, kaj restartigu la demonon. Lasu la fingrospuron trankvila krom se la freŝa eligo montras malsaman valoron; en tiu kazo la atestilo de la servilo vere anstataŭiĝis kaj refiksado estas decido kiun iu devus noti, ne alglui el erarmesaĝo.

Aŭtomatigi la renovigon estas racia: malgranda skripto legas la pasvorton el la norma enigo, rulas la authenticate-reĝimon kaj reskribas nur la kuketan linion. Tenu la akreditilon ekster la skripto kaj legebla nur por la konto kiu rulas ĝin, kaj faru la reskribon atoma por ke malsukcesa rulado ne lasu duone skribitan dosieron.

Se la renovigo necesas ĉiujn kelkajn horojn, skribu la intervalon. Ĝi estas propraĵo de la seanca politiko de la pordego, kaj ĝi decidas ĉu aŭtomatigi la renovigon aŭ peti pli longan seancon.

Rilataj artikoloj