Veza je radila u četvrtak, nadogradnja je prošla u petak, a u ponedjeljak se klijent vrti na “connecting” i odustaje. Isti prijenosnik, isti poslužitelj, isti račun, isti unaprijed dijeljeni ključ. Ništa u profilu nije uređeno, zato očiti sumnjivci, lozinka i vatrozid, troše vaše vrijeme.

Promijenio se popis transformacija koje je vaše računalo spremno ponuditi. Oba IPsec stacka koja se koriste na Ubuntuu, strongSwan i Libreswan, uklanjaju algoritme koje više ne smatraju sigurnima, a NetworkManager plugin koji stoji ispred njih ima vlastiti popis koji se kreće po drugom rasporedu. Poslužitelj zaključan na 3DES, SHA1 i Diffie-Hellman grupu od 1024 bita može na kraju ne čuti ništa što prihvaća.

Što je nadogradnja zapravo promijenila

Ponudu IKEv1 hrane dva sloja. Daemon isporučuje ugrađeni zadani skup prijedloga, a L2TP plugin se ili na njega oslanja ili daje vlastiti popis. Prije NetworkManager-l2tp 1.2.16 plugin se oslanjao, pa je vaša ponuda bila ono što instalirani daemon smatra razumnim. Od 1.2.16 nadalje plugin šalje dokumentirani popis modeliran prema Windows i Apple klijentima, a taj je popis širi od staroga zadanog ali više ne sadrži svaku naslijeđenu kombinaciju na čelu reda.

Ta podjela objašnjava način neuspjeha koji ljudi smatraju zbunjujućim: dva stroja na istom izdanju Ubuntua mogu se ponašati različito jer jedan ima distribucijski paket a drugi backport, a verzija daemona na obama izgleda jednako u izvještaju o grešci. Provjerite verziju plugina, ne samo verziju daemona, prije nego zaključite da nadogradnja nije promijenila ništa relevantno.

U istom području postoji manja zamka. Dva daemona ispisuju Diffie-Hellman grupe eliptične krivulje različito, jedan piše ecp384 a drugi ecp_384. Zalijepite pogrešan pravopis u Advanced dijalog i daemon će odbiti postavku kao neparsibilnu, što se u logu pojavljuje kao problem pregovaranja, a ne kao tipfeler u konfiguraciji.

Pročitajte neuspjeh prije nego išta promijenite

Počnite s tim koji backend pokrećete, jer odgovor odlučuje i sintaksu i lokaciju loga.

ipsec --version
nmcli connection show "Your VPN name" | grep -i ipsec

Zatim pročitajte samu razmjenu. Na strongSwanu daemon piše u journal na aktualnom izdanju i u /var/log/syslog na starijem, a zanimljiv dio je prijedlog koji šalje, ne završni red. Tražite formulaciju o tome da nema odgovarajućeg prijedloga, što je problem algoritma; neuspjeh autentifikacije, koji upućuje na ključ ili račun; ili običan timeout, koji upućuje na dostupnost.

Ova tri ishoda prečesto se tretiraju kao jedan simptom. Timeout s praznim daemon logom znači da paketi ne dolaze. Odbijanje prijedloga znači da su došli i da su odbijeni. Ako vaš log šuti, podignite razinu za otklanjanje pogrešaka plugina za jedan pokušaj i poslije je snizite, jer opširni izlaz brzo puni journal.

Faza 1 i faza 2 odvojene su oklade

IKEv1 pregovara dvaput. Glavni način gradi IKE sigurnosnu asocijaciju od algoritma za enkripciju, algoritma za integritet, Diffie-Hellman grupe i metode autentifikacije. Brzi način zatim gradi ESP asocijaciju koja će nositi L2TP. Poslužitelj je slobodan prihvatiti prvo i odbiti drugo, pa polupravilan profil pada kasnije nego što očekujete i izgleda kao druga greška.

Phase 1: 3des-sha1-modp1024!
Phase 2: 3des-sha1!

Uskličnik je strongSwan sintaksa za striktan unos: ponudi ovu jednu kombinaciju i ništa drugo. Bez njega unos se pridružuje rezervnom popisu, što je dobro kad je partner moderan a kontraproduktivno kad je uređaj s jednom tvrdo kodiranom politikom. Tretirajte gornji par kao ilustraciju oblika, ne kao preporuku za bilo što što danas gradite.

Promijenite jedno polje, pa ponovite test

Na aktualnom pluginu najbrži prvi test je potpuno očistiti oba polja prijedloga i ponovno se povezati, jer isporučeni zadani popis već uključuje uobičajene Windows i Apple kombinacije. Na starijem pluginu njihovo čišćenje vraća kontrolu daemonu koji je možda izbacio algoritam na kojem vaš poslužitelj inzistira, i neuspjeh se pogoršava.

Ako čišćenje ne pomogne, postavite striktni par koji vaš poslužitelj dokumentira, jednu fazu po jednu. Promijenite fazu 1, ponovno se povežite i pročitajte log prije nego dirate fazu 2. Kad kombinacija konačno proradi, zapišite je uz model poslužitelja i verziju plugina, jer će se zadane vrijednosti opet pomaknuti i ta bilješka je ono što sljedeću nadogradnju pretvara u petominutnu provjeru.

Povezani članci