Adresa partnera promijenjena usred sesije: šta radi OpenVPN float
float omogućava autentificiranom partneru da promijeni svoju vanjsku adresu usred sesije. Ne otkriva krajnje tačke, ne otvara ponovo mrtvu vezu i ne preskače provjere identiteta.
Laptop prelazi s uredskog Wi-Fi na mobilnu pristupnu točku, tunel ostaje uspostavljen još nekoliko sekundi, a zatim promet stane dok sučelje i dalje tvrdi da je povezano. Na serveru popis statusa i dalje prikazuje staru javnu adresu. To je situacija za koju float postoji, a ujedno i situacija u kojoj ljudi od njega očekuju mnogo više nego što on radi. Ispravno postavljanje granice pretvara zbunjujuće zastajanje ili u promjenu konfiguracije u jednom redu ili u posve drugo ispitivanje.
Šta float olakšava, a šta nikada ne olakšava
Normalno sesija nastavlja razgovarati s vanjskom adresom i portom s kojima je počela, a paketi koji dolaze bilo odakle drugdje se zanemaruju. Opcija float uklanja to strogo vezivanje nakon što se partner već dokazao, pa promijenjeno mapiranje izvora može nastaviti istu sesiju umjesto da bude odbačeno. Ništa se u kriptografskim provjerama ne mijenja: ključevi, certifikati i bilo kakva HMAC zaštita ostaju točno onako kako su konfigurirani.
To je odluka po paketu, a ne politika o tome ko se smije povezati. Nepoznati stroj koji pošalje paket s nove adrese nije ništa dokazao i njegov se paket odbacuje kao i svaki drugi neautentificirani promet. Samo promet koji prođe vlastitu autentifikaciju sesije može pomaknuti zabilježenu adresu partnera, zbog čega je float sigurno ostaviti uključenim u okruženjima u kojima klijenti lutaju.
Također ne govori ništa o unutarnjem tunelu. Pomaknuta vanjska adresa ne dodjeljuje novu adresu tunela, ne mijenja bazen i ne daje partneru pristup nečemu novom. Unutar tunela vrijede isti identitet i iste gurnute rute prije i poslije premještanja. Lutnja također ne ponovno pregovara podatkovni kanal, pa dogovorena šifra i ključevi nastavljaju.
Paket koji pomiče sesiju mora se autentificirati
Pokrenite sesiju na uobičajen način prema konfiguriranom udaljenom kraju i float rješava što se dogodi kada se mapiranje promijeni. Mobilni operator koji prenumerira usred toka, NAT pristupnik koji prepisuje svoje mapiranje porta ili laptop koji prebaci uzlazni kanal daju isti oblik: autentificirani paketi iz nove tuple, koji dolaze u sesiju koja još vjeruje u staru.
Kad vas pitaju radi li float, koristan dokaz je dovršeno rukovanje nakon kojeg je prihvaćena promjena izvora, a ne samo redak u zapisniku o adresi. Povežite staru i novu vanjsku adresu sa sesijom koja je ostala živa, zatim potvrdite da je promet doista nastavljen kroz tunel.
Ako sesija umre umjesto da se pomakne, paket koji je stigao s nove adrese vjerojatno nije prošao autentifikaciju ili nije uopće stigao. Oba slučaja sa strane klijenta izgledaju identično. Na serveru, snimka na javnom sučelju kaže vam koji od njih imate prije nego što dotaknete bilo koju konfiguraciju.
Otkrivanje je posve odvojen mehanizam
float ne razrješava imena po mjeraču vremena i ne prati dinamički DNS zapis. Ako se ime hosta servera počne razrješavati na novu adresu, nezaposleni klijent nema razloga to primijetiti i nema paket s nove krajnje točke koji bi autentificirao. Taj problem pripada logici ponovnog povezivanja, vlastitom ponašanju klijenta pri ponovnom pokušaju i DNS-u, a ne floatu.
Dodavanje opcije još jedanput ne može nadoknaditi nedostatak rute do nove adrese. Ne pomaže ni kad partner šuti, jer šutljivi partner nikada ne šalje autentificirani paket koji bi nešto pomaknuo.
Donji vatrozid također ima riječ. Pravilo koje dopušta samo staru vanjsku krajnju točku blokira promijenjenu adresu prije nego što je OpenVPN uopće vidi, i nikakva klijentska konfiguracija to ne ispravlja. Pregledajte životni ciklus dopuštenih adresa kao zaseban zadatak; proširenje pravila na bilo koji izvor mijenja mali problem za veliki.
Kada NetworkManager posjeduje profil
Profil naredbenog retka i uvezena veza zasebne su konfiguracije i uređivanje jedne ne dira drugu. Prije nego pretpostavite da opcija nije podržana, utvrdite koju vrstu priključka spremljeni profil doista koristi i gdje žive njegove vrijednosti. UUID profila je identifikator koji je važan kada bilo što pregledavate ili mijenjate.
Pregledajte spremljenu vezu, a ne izvornu datoteku uvoza. Redak koji preživi u .ovpn datoteci ništa ne dokazuje ako ga aktivni upravitelj nikada nije primijenio, a ni uređivač bez potvrdnog okvira za zadanu opciju ne dokazuje ništa o mogućnostima protokola.
Ne krpajte pakirani priključak da biste dodali ponašanje, osobito ne razlikom napisanom za povijesnu verziju nepovezane komponente. Ako instalirana integracija doista ne može izraziti postavku, ispravan potez je podržani profil ili drugi klijentski put koji odobri vlasnik instalacije.
Dokažite prijelaz umjesto da ga pretpostavljate
Provedite test onako kako se kvar događa. Povežite se, provjerite promet kroz tunel, prisilite vanjsku adresu na promjenu i zatim provjerite tri stvari: sesija još postoji, zabilježena adresa partnera se pomaknula i stvarni zahtjev još stiže na odredište. Bilo što manje od sve tri je djelomičan odgovor.
Držite pristup za oporavak dostupnim dok testirate, jer pokusi lutnje imaju običaj ostaviti stroj s kojeg radite nasukan. Serijska konzola ili izvanpojasna ruta pretvara neuspjeli test u oporavak od pet minuta umjesto posjeta lokaciji.
Naposljetku, opišite samo slučaj koji ste provjerili. Uspješna promjena adrese tijekom sesije nije dokaz da će se DNS migracije, druga klijentska implementacija ili ponovno izgrađen profil ponašati isto. Dokumentacija za link-options točno navodi opseg opcije; vaš zapisnik testa treba navesti koji ste dio tog opsega doista pokrili.