Liität esijaetun avaimen järjestelmänvalvojan viestistä NetworkManagerin dialogiin, rastitat näyttämisen ja se täsmää merkki merkiltä. Yhteys päättyy silti todennusvirheeseen ennen kuin tunneli nousee. Kun näin sen ensimmäisen kerran, oletin avaimen olevan väärä; se ei ollut. Kaksi muuta asiaa ratkaisee, mitä daemon todella lukee: salaisuustiedosto, jonka liitännäinen kirjoittaa kyseiselle yhteydelle, ja se, säilyikö arvo dialogin läpi muuttumattomana.

Alla oleva kulku seuraa avainta kentästä tiedostoon, ja juuri se järjestys kertoo, mihin se katosi. Tee se koneella, joka epäonnistuu, ei sillä, joka toimii, koska näiden kahden koneen ero on yleensä tiedostojen asettelu eikä avain.

Aloita dialogista, mutta älä luota kenttään

Avaa yhteyden IPsec-välilehti ja kirjoita avain uudelleen sen sijaan että liittäisit sen. Chatviestistä, PDF:stä tai salasananhallinnasta kopioitu avain voi saapua loppuun rivinvaihdolla, jota kenttä ei näytä, ja näkyvät merkit näyttävät silti oikeilta.

Napsauta salasanan näyttämisen säädintä ja katso merkkijonon loppua, älä keskikohtaa. Jos kohdistin jättää tekstin alle tyhjän rivin, poista se ja kirjoita viimeinen merkki uudelleen. Tämä yksi korjaus ratkaisee yllättävän osan tällaisista raporteista ja maksaa vähemmän kuin minkään lokin lukeminen.

Jos avain tulee tikettijärjestelmästä, joka taittaa pitkiä rivejä, pyydä se kanavan kautta, joka ei taita. Vertaa pituuksia järjestelmänvalvojan kanssa sen sijaan että katsoisit kahta merkkijonoa rinnakkain; taitekohtaan kadonnut merkki on näkymätön suhteellisessa fontissa.

Seuraa avainta /etc/ipsec.d:hen

Liitännäinen ei koskaan anna PSK:ta IPsec-daemonille komentorivin argumenttina. Sen sijaan se tallentaa arvon salaisuustiedostoon ja järjestää, että daemon ottaa tiedoston mukaan lisäämällä include-rivin tiedostoon /etc/ipsec.secrets, jos sellaista ei ole. Se, mitä dialogi pitää, on syöte syntyvälle tiedostolle, ei käytössä oleva arvo.

Listaa, mitä on olemassa, ennen kuin muutat mitään:

ipsec --version
sudo ls -l /etc/ipsec.d/*.secrets /etc/ipsec.d/ipsec.nm-l2tp.secrets 2>/dev/null
sudo grep -n "include" /etc/ipsec.secrets

Liitännäisen vanhemmat versiot kirjoittivat yhden tiedoston yhteyttä kohden, nimettynä yhteyden UUID:n mukaan, esimerkiksi /etc/ipsec.d/nm-l2tp-ipsec-<uuid>.secrets. Profiilin poistaminen sovelmasta ei poista tuota tiedostoa luotettavasti. Jos aiemman palvelimen vanha tiedosto on yhä levyllä ja yhä mukana, daemon voi valita salaisuuden, joka kuuluu profiilille, jota et enää käytä, ja yhteys epäonnistuu näkyvän kentän ollessa oikein.

Ymmärrä, mitä 1.2.12:n muutos teki päivityksille

Liitännäisen versio 1.2.12 korvasi yhteyksittäiset salaisuustiedostot yhdellä yhteisellä tiedostolla, /etc/ipsec.d/ipsec.nm-l2tp.secrets. Päivitys ei siivoa vanhempia UUID-kohtaisia tiedostoja, ja olemassa oleva rivi include /etc/ipsec.d/*.secrets ottaa ne yhä mukaan. Versio 1.2.16 muutti oletusehdotusten käsittelyä, ei salaisuuksien asettelua.

Tämä historia selittää, miksi kaksi konetta, joilla näyttää olevan sama profiili, käyttäytyvät eri tavoin. Avain on sama; joukko tiedostoja, jotka daemon ottaa mukaan, ei ole. Kun poistat orvon tiedoston, siirrä se sivuun sen sijaan että poistaisit sen, vahvista yhteys ja poista se vasta kun toimiva tila on kirjattu. Uudelleennimeäminen pitää vanhan arvon palautettavana, jos vika osoittautuukin olevan muualla.

Erota merkit, joita tallennusmuoto ei voi pitää

strongSwanin dokumentaatio jaetun salaisuuden merkkijonosta toteaa, että arvo ei voi sisältää rivinvaihtoa eikä lainausmerkkiä. Asiakirjasta liitetty avain voi kantaa kumpaa tahansa ilman mitään visuaalista eroa tavallisessa dialogissa.

Versiosta 1.2.12 lähtien tallennettu arvo ei ole pelkkää tekstiä. Liitännäinen koodaa PSK:n base64:ksi ennen kuin se saavuttaa tiedoston, ja julkaisutiedot esittävät tämän koodauksen syynä sille, miksi lainausmerkki on nyt hyväksyttävä avaimessa. Kenttään kirjoitettu lainausmerkki on siis esitettävissä; sama ei päde jokaiseen ohjausmerkkiin.

Pituus on eri rajoite. L2TP/IPsec-ohjelmistoissa ei ole yleistä vähimmäispituutta: jotkin asiakasohjelmat hyväksyvät alle kahdenkymmenen merkin avaimia ja jotkin yhdyskäytävät vaativat vähimmäispituuden. Jos lyhyt avain hylätään, sääntö kuuluu palvelimen käytäntöön tai kyseisen asiakkaan validoinnille, eikä jonkin paikallinen kasvattaminen muuta sitä.

Lue, mikä todennuskerros epäonnistui

Aja ensin ipsec --version, koska strongSwan ja Libreswan käyttävät eri tiedostonimiä ja syntaksia, ja toiselle annettu neuvo voi vahingoittaa toista. Lue sitten epäonnistumisen vaihe asiakkaan viestistä tai daemonin lokista: valitus esijaetusta avaimesta on eri tapahtuma kuin hylätty käyttäjätunnus ja salasana.

PSK todentaa tunnelin päätepisteet. Käyttäjätunnus ja salasana todentavat henkilön L2TP:n sisällä, ja PPP hoitaa ne sen jälkeen kun IPsec-yhteys on noussut. Oikea PSK väärällä tilillä epäonnistuu silti, eikä tilin vaihtaminen korjaa avainta, jota daemon ei koskaan lukenut oikein.

Kun suljet tiketin, kirjaa kaikki neljä: liitännäisen versio, käytössä oleva salaisuustiedosto, kirjoitettiinko avain uudelleen vai liitettiinkö se, ja virheessä mainittu kerros. Silloin myöhemmin tämän kulun toistava voi hypätä suoraan toimivan ja epäonnistuvan koneen eroon.

Aiheeseen liittyvät artikkelit