Nadogradnja Ubuntua pokvarila L2TP/IPsec? Uporedite IKEv1 predloge
Profil i lozinka nisu promijenjeni, ali faza 1 sada ne uspijeva. Klijentovi prihvatljivi predlozi su se pomjerili, a server i dalje nudi ono što je oduvijek nudio.
Veza je radila u četvrtak, nadogradnja je prošla u petak, a u ponedjeljak klijent se vrti na “connecting” i odustaje. Isti laptop, isti server, isti račun, isti unaprijed dijeljeni ključ. Ništa u profilu nije uređeno, zato očigledni sumnjivci, lozinka i firewall, troše vaše vrijeme.
Promijenila se lista transformacija koje vaš stroj želi ponuditi. Oba IPsec stacka koja se koriste na Ubuntuu, strongSwan i Libreswan, izbacuju algoritme koje više ne smatraju sigurnim, a NetworkManager plugin koji stoji ispred njih ima svoju listu koja se kreće po drugom rasporedu. Server zaključan na 3DES, SHA1 i Diffie-Hellman grupu od 1024 bita može na kraju ne čuti ništa što prihvata.
Šta je nadogradnja zapravo promijenila
Ponudu IKEv1 hrane dva sloja. Daemon isporučuje u kompilaciju ugrađen zadani set predloga, a L2TP plugin se ili na njega oslanja ili daje svoju listu. 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 dokumentiranu listu modeliranu po Windows i Apple klijentima, a ta lista je šira od starog 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 identično 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 predlog koji šalje, ne završni red. Tražite formulaciju o tome da nema odgovarajućeg predloga, š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 predloga znači da su došli i da su odbijeni. Ako vaš log šuti, podignite nivo za otklanjanje grešaka plugina za jedan pokušaj i poslije ga snizite, jer opširni izlaz brzo puni journal.
Faza 1 i faza 2 su odvojene opklade
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. Server 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 rezervnoj listi, što je dobro kad je partner modern a kontraproduktivno kad je uređaj s jednom tvrdo kodiranom politikom. Tretirajte gornji par kao ilustraciju forme, ne kao preporuku za bilo šta što danas gradite.
Promijenite jedno polje, pa ponovite test
Na aktualnom pluginu najbrži prvi test je potpuno očistiti oba polja predloga i ponovo se povezati, jer isporučena zadana lista 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š server insistira, i neuspjeh se pogoršava.
Ako čišćenje ne pomogne, postavite striktni par koji vaš server dokumentira, jednu fazu po jednu. Promijenite fazu 1, ponovo se povežite i pročitajte log prije nego dirate fazu 2. Kad kombinacija konačno proradi, zapišite je uz model servera i verziju plugina, jer će se zadane vrijednosti opet pomjeriti i ta bilješka je ono što sljedeću nadogradnju pretvara u petominutnu provjeru.