OpenConnect voi viimeistellä tunnelin kättelyn ja jättää sinut silti ilman reittiä yksityiseen aliverkkoon, koska asiakas ja paikallisen verkon tilaa muuttava apuohjelma ovat kaksi eri ohjelmaa. Todennus osoittaa, että yhdyskäytävä hyväksyi istunnon; se ei osoita mitään siitä, mikä liitäntä, mitkä reitit tai mitkä nimipalvelimen asetukset asennettiin sen jälkeen. Useimmat hämmentävät raportit syntyvät siitä, että apuohjelma korvataan vanhasta vastauksesta otetulla kopiolla, mikä muuttaa koneen jokaisen yhteyden toimintaa. Paikanna apuohjelma, jota käynnissä oleva asiakas todella kutsuu, ennen kuin muokkaat siitä mitään.

Kaksi ohjelmaa, kaksi vastuuta

Asiakas omistaa siirron, todennuksen ja tunnelilaitteen. Erillinen apuohjelma omistaa sen, mitä paikallisessa järjestelmässä tapahtuu, kun tunneli on olemassa: osoitteet liitännällä, reitit yhdyskäytävän ilmoittamiin aliverkkoihin ja nimipalvelimen kokoonpano. OpenConnect-apuohjelman dokumentaatio kuvaa tämän jaon ja ympäristön, jonka apuohjelma saa. Ero on merkityksellinen vian aikana, koska hylätty salasana ja puuttuva reitti eivät ole sama tapahtuma, vaikka työpöytä näyttäisi molemmille yhden valintaikkunan.

Jaon pitäminen mielessä selittää myös, miksi yhteys voi ilmoittaa onnistumisesta, kun yksityiset nimet eivät vieläkään ratkea. Tunneli on pystyssä molemmissa tapauksissa, ja vain paikallisen integroinnin vaihe eroaa.

Paikanna apuohjelma, jota käynnissä oleva asiakas käyttää

Polku asetetaan pakettia rakennettaessa ja se voidaan ohittaa joka kutsulla, joten toisesta jakelusta muistamasi tiedosto ei välttämättä liity tähän yhteyteen mitenkään. Kysy käynnissä olevalta prosessilta, älä dokumentaatiolta, joka sattuu olemaan auki.

openconnect --version
ps -o args= -C openconnect
dpkg -L openconnect | grep -i script
ls -l /etc/vpnc/ 2>/dev/null

Jos prosessirivi kantaa --script -argumenttia, se tiedosto voittaa käännetyt oletusarvot. Vanhemmat polut, kuten /etc/vpnc/vpnc-script voivat olla olemassa ja silti käyttämättömiä, minkä vuoksi niiden poistaminen tai muokkaaminen ei muuta mitään tuoreessa koosteessa. Tarkista myös muutospäivä, koska apuohjelma, johon kukaan ei ole vuosiin koskenut, on vahva merkki siitä, että paketoitu oletus tekee työn.

NetworkManager-integraatio on kolmas omistaja, jolla on oma apuohjelma ja omat profiiliasetukset. Toisen reitti- tai nimipalvelinscriptin lisääminen integraation päälle monistaa reitit ja jättää nimipalvelimen, jota kaksi ohjelmaa väittää hallitsevansa. Valitse yksi omistaja yhteyttä kohden ja poista toinen käytöstä ennen testaamista.

Lue ensimmäinen epäonnistunut toimenpide, älä viimeistä varoitusta

Liitännän kokoonpano, reittien asennus, nimipalvelimen valinta ja vanhentuneen tilan siivous ovat erillisiä vaiheita, ja viimeisenä tulostettu varoitus on usein siivousvalitus eikä se vika, joka katkaisi yhteyden. Lue ylöspäin ensimmäiseen konkreettiseen toimenpiteeseen, joka epäonnistui. Apuohjelman virhe, joka nimeää tiedoston tai osoitteen, on arvokkaampi kuin kymmenen riviä purkuajon kohinaa.

Vertaa aiottua paikallista tulosta havaittuun: tunnelilaite on olemassa, reitti tunnettuun yksityiseen osoitteeseen kulkee sen kautta ja nimipalvelin vastaa yksityiselle nimelle. Apuohjelma, joka onnistuu kahdessa ensimmäisessä ja epäonnistuu kolmannessa, viittaa nimipalvelimen käytäntöön eikä reititykseen. Apuohjelma, joka ei kokoonna laitetta lainkaan, jäi todennäköisesti koskaan ajamatta, ja se on käyttöoikeuskysymys, ei verkkoasia. Vahvista suoritettava bitti ja palvelutili ennen minkään logiikan uudelleenkirjoittamista.

Varmista yhdistäminen, uudelleenyhdistäminen ja katkaisu

Asennus on vain puolet sopimuksesta, koska saman apuohjelman on palautettava tai poistettava hallitsemansa tila, kun tunneli sulkeutuu. Apuohjelma, joka lisää reittejä eikä koskaan poista niitä, jättää koneelle vanhentuneen polun, joka elää istuntoa pidempään.

ip -brief address show tun0
ip route get 10.24.8.15
resolvectl status tun0
journalctl -u NetworkManager -b --no-pager | grep -i -E 'vpnc|script'

Aja kolme ensimmäistä yhteyden ollessa päällä, katkaise yhteys ja aja ne sitten uudelleen ja varmista, että reitti ja nimipalvelimen merkintä ovat poissa. Neljäs rivi näyttää, kutsuttiinko apuohjelmaa lainkaan ja mitä suoritettavaa polkua palvelu käytti. Tallenna tämä tulostepari tikettiin, koska juuri ennen-jälkeen-vertailu tekee siivousvirheen näkyväksi.

Pidä apuohjelma paketoituna ja palvelutilin suoritettavissa, koska kuoressasi ajettava skripti voidaan silti evätä rajoitetun palvelukäytännön alla. Kun mukautus on todella tarpeen, dokumentoi sen tarkoitus ja omistaja ja vertaa sitä paketoituun versioon jokaisessa päivityksessä. Apuohjelman selittämätön haara on yksi harvoista asioista, jotka voivat saada toimivan yhteyden epäonnistumaan vuotta myöhemmin.

Aiheeseen liittyvät artikkelit