Jedna greška, tri tajne: koji VPN akreditiv je pao?
Klijent prikazuje jednu grešku za svaku fazu. Pročitajte asocijaciju, korisničku razmenu i metod pre nego što resetujete lozinku koju niko nije proverio.
„Autentifikacija nije uspela” može ukazivati na sertifikat servera, unapred deljeni ključ mašine ili korisničku lozinku. Na koju se odnosi, zavisi od protokola, jer svaki protokol definiše drugačiji skup tajni. Resetujete pogrešnu i greška ostaje nepromenjena. Izlaz je da utvrdite koliko dokaza protokol zahteva pre nego što bilo šta izmenite.
Dva dokaza koji pokazuju u suprotnim smerovima
Tunel mora da odgovori da li je stigao do pravog gejtveja i, odvojeno, ko je korisnik. Dokaz gejtveja je na nivou mašine: sertifikat servera, unapred deljeni ključ ili statični javni ključ. Dokaz korisnika je na nivou osobe: lozinka, token, klijentski sertifikat ili ništa. To su suprotni smerovi poverenja i troše različit materijal.
IKEv2 obavlja dokaz gejtveja unutar IKE_AUTH i, kada se koristi EAP, pokreće dokaz korisnika u odvojenoj razmeni posle toga. specifikacija IKEv2 drži ih kao zasebne odeljke, što je snažan nagoveštaj gde tražiti kada jedna poruka pokriva oba kruga.
Čitajte fazu, ne poruku
Klijent prikazuje isti niz greške bez obzira na to koja faza je pala, pa sam niz gotovo da ne nosi informaciju. Informaciju nosi stanje koje možete pregledati u svakoj fazi: postoji li asocijacija, da li je korisnička razmena počela i da li je klijent ponudio metod koji je gejtvej želeo. Tabela sortira faze tako, a ne po imenu protokola.
| Stage that failed | Evidence you can inspect | What a password change cannot fix |
|---|---|---|
| The machine proof | no security association in the state list | a mismatched pre-shared key or an untrusted chain |
| The user proof | an association is up while PPP or EAP reports failure | an expired token, a locked account, a missing client key |
| The client's method support | the client offers no method the gateway accepts | a client without the required EAP or key material |
| The server's policy | the gateway rejects before any user exchange starts | a policy that requires a certificate the profile lacks |
Samo drugi red se odnosi na akreditiv koji korisnik može ponovo da otkuca. Ostala tri su činjenice konfiguracije, i taj nesklad je razlog zašto se mnogi ovakvi izveštaji završavaju resetovanjem lozinke koje ništa ne menja. Pročitajte red koji odgovara vašim dokazima pre nego što dodirnete polje.
Protokol sa dve tajne pokazuje svoje karte
L2TP preko IPsec-a čini broj vidljivim, jer se dve provere dešavaju u različitim procesima. IPsec sloj mora prvo da se podigne sa unapred deljenim ključem ili sertifikatom, i tek onda PPP unutar njega pokušava korisničku prijavu.
Kada je tajna mašine pogrešna, nikakva asocijacija se ne formira i korisnički akreditiv se nikada ne pokušava. Kada je tajna mašine ispravna a korisnička tajna pogrešna, asocijacija postoji i PPP odbija prijavu nakon što je tunel već podignut. Oba daju istu poruku na ekranu iz dva različita događaja.
sudo swanctl --list-sas
sudo ip xfrm state list
sudo journalctl -u xl2tpd -n 50 --no-pagerPrazna lista asocijacija odmah isključuje korisnički sloj, pa je proverite pre lozinke. Uspostavljena asocijacija sa ponovljenim PPP greškama ukazuje na drugu stranu, na korisnički sloj ili na protokol autentifikacije unutar njega. Nijedan od tih zaključaka nije dostupan iz teksta greške klijenta.
Od čega zapravo zavisi pristup samo lozinkom
Pristup samo lozinkom uobičajen je za L2TP, PPTP, SSTP i IKEv2 sa EAP-om. WireGuard uopšte nema takvu opciju, jer su njegovi peer-ovi ključevi, a ne korisnici. Za OpenVPN odgovor dolazi iz zahteva servera za klijentskim sertifikatom: gejtvej koji traži i sertifikat i lozinku odbijaće klijenta sa samo lozinkom, šta god da se otkuca u polje.
Koja komponenta vam treba sledi iz istog odgovora. Prijava lozinkom pod IKEv2 zahteva klijenta koji govori EAP, dok prijava sertifikatom traži klijentov privatni ključ i lanac servera. Instalirajte pogrešnu i greška se čita kao greška akreditiva, iako nedostaje sam metod autentifikacije.
Promenite jednu stvar, pa ponovo testirajte
Najpre utvrdite tri činjenice: koji protokol radi, koliko tajni definiše i koje od njih pripadaju mašini a ne korisniku. Mašine padaju na prvoj fazi a ljudi na drugoj, i mešanje tih dvaju je ceo ovaj problem.
Zatim promenite tačno jednu stvar i ponovo testirajte sa istog klijenta. Ta disciplina pretvara zbunjujući neuspeh u ispravku koju možete opisati sledećoj osobi, što je korisnije od veze koja radi a koju niko ne ume da objasni.