iOS ți-a respins tunelul strongSwan: compară propunerile IKE
O adresă care funcționează și un certificat valid pot pierde totuși negocierea. Compară liniile ike și esp cu ce acceptă telefonul.
Nimic din certificat sau din adresă nu explică de ce un iPhone care anul trecut se conecta la strongSwan eșuează anul acesta. Nimic din adresă, din cheia partajată anterior sau din identitatea clientului nu trebuia să se fi schimbat. Ce s-a mutat este lista de transformări pe care clientul integrat al telefonului este dispus să le negocieze, iar când lista aceea nu se mai suprapune cu a serverului, schimbul se termină înainte de a fi examinată identitatea cuiva.
Linia din jurnal care decide
Ridică nivelul de jurnalizare pentru conexiunea aceea și găsește cele două intrări care decid rezultatul: ce a oferit telefonul și ce a ales serverul. Dacă jurnalul se termină fără o propunere selectată și raportează că nimic nu s-a potrivit, autentificarea nu a fost niciodată încercată. Un certificat nou și o parolă nouă nu schimbă nimic în acel punct, pentru că ambele se consumă într-o etapă ulterioară. Niciunul nu poate influența un rezultat decis înainte de examinarea identității.
Separă cele două forme de eșec înainte de a edita ceva. Nicio modificare a transformărilor nu salvează acreditări respinse, iar nicio corectare a acreditărilor nu salvează o transformare respinsă. Intrarea din jurnal care numește o propunere selectată îți spune în care dintre cele două te afli. Fără acea intrare, ghicești.
Linia selectată numește propunerea prin setul ei de transformări, nu printr-o etichetă prietenoasă. Compară câmpurile de criptare, integritate și grup din acea linie cu lista trimisă de telefon, pentru că o nepotrivire într-un singur câmp e suficientă ca să pierzi.
Ce s-a schimbat pe telefon
O versiune de iOS a redus algoritmii pe care clientul ei este dispus să îi folosească. Hash-urile de integritate slabe, grupurile Diffie-Hellman mici și propunerile care listează opțiunile vechi primele au încetat să fie acceptabile.
Listele mai lungi nu sunt mai sigure aici. Selecția urmează setul acceptat al telefonului și propria ordine de preferință, așa că un server care anunță un catalog larg poate pierde în continuare negocierea când intrările moderne nu sunt cele alese. Preferă o listă scurtă cu intrările moderne în frunte. O listă lungă care începe cu opțiuni vechi invită exact eșecul pe care încerci să îl eviți. Setul acceptat este o constrângere externă care se mută la fiecare actualizare a clientului, așa că o configurație care funcționa ieri este o dovadă despre ieri.
O pereche care încă negociază
Pentru telefoanele actuale este suficientă o singură combinație modernă. O pereche care negociază arată astfel:
ike=aes256-sha2_256-modp2048
esp=aes256-sha2_256
Linia ike poartă criptarea, integritatea și grupul Diffie-Hellman folosite cât timp se desfășoară schimbul de chei. Linia esp acoperă doar canalul de date, pentru că grupul a fost stabilit înainte de a se aplica. Reîncarcă conexiunea sau repornește demonul, apoi reconectează telefonul. Păstrează acea valoare de grup doar dacă fiecare client pe care îl deservești o acceptă încă, și nu lărgi propunerea pentru toți doar pentru că un peer vechi are nevoie de mai mult.
Trei locuri de reparat, unul e de obicei închis
- O propunere modernă pentru fiecare peer. Corect când toți clienții sunt telefoane și desktopuri actuale. Șterge transformările vechi în loc să negocieze în jurul lor.
- O a doua definiție de conexiune pentru clienții Apple. Ține un peer vechi în viață și îi dă telefonului o propunere pe care o acceptă. Costă încă un bloc de conexiune și face excepția vizibilă.
- Schimbarea clientului. Rar deschisă pentru tine: când un sistem de management sau o aplicație livrează profilul, nu există un editor de propuneri de atins, iar clientul integrat nu expune niciunul.
Alege a doua opțiune când un dispozitiv din afara controlului tău nu poate fi actualizat. Alege prima când poți retrage peerul vechi și preferi să duci o singură politică.
În orice caz, alegerea este vizibilă în configurație, și asta este ideea. O revenire tăcută care negociază în jos până la o transformare veche este mai rea decât un bloc explicit, pentru că nicio revizuire nu o va scoate vreodată la suprafață.
Demonstrează, apoi consemnează
Reconectează și verifică trei fapte separate pe server: a fost selectată o propunere, conexiunea apare ca stabilită și clientul a primit o adresă. Un handshake stabilit fără adresă la distanță indică pool-ul sau selectorii de trafic, și ține de o modificare separată. Tratarea ambelor împreună face o negociere rezolvată să pară nerezolvată.
Notează setul de transformări care a fost acceptat, când l-ai schimbat și ce versiune a clientului ai verificat. Următoarea actualizare poate muta din nou cerința, iar valorile care au funcționat sunt primul lucru pe care îl vei vrea lângă cele noi.