Pojavi se jedan stari uređaj, ne može da se poveže, a najbrža naizgled popravka je oslabiti cijeli host dok veza ne uspije. Ta razmjena je nevidljiva u trenutku i trajna u praksi, jer niko ne uklanja prag koji konačno radi. Pritisak stvaraju dvije sasvim različite greške, a samo jedna od njih je uopšte o šiframa. Prvo razvrstaj grešku, pa stavi izuzetak tamo odakle ne može da se proširi.

Podijelite kvar na dva prije nego što promijenite direktivu

Linija serverskog dnevnika o tome da nema zajedničke šifre, ili o nepodržanoj verziji protokola, dolazi iz kontrolnog kanala: dvije strane nisu mogle da se dogovore kako da zaštite same pregovore. Linija klijenta da nijedan metod provjere serverskog certifikata nije omogućen dolazi sa sasvim drugog mjesta, jer taj klijent uopšte ne provjerava ko je odgovorio. Promjena šifre za podatke ne pomaže u drugom slučaju, a dodavanje provjere uloge ne pomaže u prvom.

Uzmite najraniju neuspjelu liniju sa svake strane, a ne posljednju prije prekida, jer je posljednja obično samo posljedica. Zatim utvrdite koju je datoteku klijent zaista otvorio: uvezeni profil često postoji dvaput pod različitim prikazanim imenima, a uređivanje kopije koju niko ne čita stvara uvjerljivo odsustvo promjene. Proces koji radi zadržava postavke s kojima je počeo, pa sačuvana datoteka nije učitana datoteka. Komande ispod prikazuju pregovore klijenta pored pogleda servera na isti pokušaj.

openvpn --config <profile>.ovpn --verb 4 2>&1 | head -n 40
journalctl -u [email protected] --since '-10 min' | grep -iE 'cipher|tls|verify'

Drugi listener je pošteno mjesto za slabiji prag

Kada uređaj stane na TLS 1.0 sa podatkovnim kanalom prije 2.5, server mora ponuditi niži prag kontrolnog kanala i šifru za podatke koju stari klijent prepoznaje. Fallback direktiva postoji upravo za tog peera, dok lista šifri drži moderne klijente na modernim skupovima. Obje direktive pripadaju listeneru, a ne korisniku ili vezi, i nijedna opcija po klijentu ih kasnije ne sužava. Zato je jedan stari uređaj na glavnom portu odluka o svakom peeru koji dijeli taj port.

Gdje platforma dozvoljava, pokrenite stari listener kao zasebnu instancu na odvojenom portu, dozvolite taj port samo sa adrese uređaja i ostavite glavnu uslugu na miru. Zapišite zašto drugi listener postoji, u datoteci koja nosi njegovu konfiguraciju, jer će ga inače buduće čišćenje pročitati kao ostatak. Podjela vrijedi samo ako se slabiji prag završava tamo gdje se uređaj završava.

tls-version-min 1.0
data-ciphers AES-128-GCM:AES-256-GCM:AES-256-CBC
data-ciphers-fallback AES-256-CBC

Šta zapravo kvari stari certifikat provajdera

Greška provjere je nedostajuća veza uloge: bez nje klijent prihvata svaki certifikat koji se lančano veže na pouzdani CA, bez obzira na to da li je izdat za server. Prvo povežite certifikat sa ulogom servera i tretirajte vezu kao zahtjev, a ne kao dugme za podešavanje. Samo profil koji i dalje ne uspijeva poslije tog koraka ima stvarni problem sa certifikatom.

Stari certifikat provajdera čija veličina ključa ili algoritam potpisa više ne zadovoljava zadanu politiku OpenSSL je slučaj za ograničenu promjenu sigurnosnog nivoa na kontrolnom kanalu. Spuštanje nivoa tamo ne isključuje provjeru i nikada se ne smije kombinovati sa praznim CA, isključenom provjerom ili neprovjerenim imenom hosta. Držite liniju unutar jednog profila kojem je potrebna; izvoz ublažene OpenSSL konfiguracije globalno bi dao isto ublaženje svakom programu na mašini.

remote-cert-tls server
tls-cipher "DEFAULT:@SECLEVEL=0"

Čitajte dogovorene vrijednosti, ne banner

Na verbosity 4 obje strane ispisuju TLS verziju i šifru kontrolnog kanala o kojima su se dogovorile, i šifru podataka za sesiju. Čitajte te linije, a ne banner inicijalizacije, koji izvještava o uspjehu, a ne o njegovim uslovima. Zatim ponovo povežite moderan klijent na glavni listener i potvrdite da i dalje slijeće na moderan skup, jer se izuzetak koji je procurio u zajedničku konfiguraciju ovdje prvi vidi. Vrijednosti koje kopirate postaju osnova za sljedeći pregled.

Testirajte stari uređaj sam: treba da se poveže i treba da bude jedina sesija u dnevnicima koja pokazuje slabije parametre. Ako i drugi peer pregovara stari skup, izuzetak je širi od namjeravanog i podjela listenera se zapravo nije dogodila. Zabilježite oba zapažanja, a ne samo zaključak.

Svakom izuzetku trebaju vlasnik i datum

Izuzetak bez uslova za uklanjanje tiho postaje zadani, pa stavite uređaj, vlasnika, razlog i datum kada nestaje pored konfiguracije koju opravdava. Bez te linije slabiji prag nadživljava hardver kojem je bio potreban.

Zamjena klijenta, ili traženje aktuelnog profila od provajdera, ishod je kojem treba težiti; izuzetak je odgađanje, a ne dizajn. Kada uređaj ode u penziju, uklonite listener i profil u istoj promjeni, tako da ni jedna polovina ne nastavi da radi. Ništa od ovoga ne čini stare parametre sigurnim, samo sprečava da granica jednog uređaja postane osnova svih.

Povezani članci