Spojenie zamrzne, klient skončí a posledný riadok na obrazovke je death_handler: Fatal signal 15 received. Ten riadok hlási prerušenie, nie príčinu. O riadok vyššie v logu IPsec je takmer vždy NO_PROPOSAL_CHOSEN a dvojica ukazuje na fázu 2 výmeny, kde strany porovnávajú voľby šifrovania a hešovania a zastavia sa, keď žiadnu nezdieľajú. Prihlasovacie údaje v tej fáze ešte neboli odoslané, takže opätovné zadanie hesla výsledok nezmení.

Na klientovi Linux ten prienik zvyčajne vyprázdnia dve veci. Miestny démon už nemusí implementovať skupinu Diffie-Hellman, ktorú profil žiada, alebo profil nesie návrh fázy 1 v poli fázy 2. Obe zanechávajú stopu v logu a ani jedna nie je problém účtu.

Čo obe správy skutočne hovoria

IKE vyjednáva v priechodoch. Fáza 1 stavia chránený kanál a volí vlastné algoritmy; fáza 2, podradená SA, prenáša prevádzku podľa samostatnej sady. NO_PROPOSAL_CHOSEN je oznámenie, ktoré odpovedajúca strana vracia, keď žiadna z ponúknutých kombinácií nie je prijateľná, a objavuje sa ako [ HASH N(NO_PROP) ] vnútri výmeny INFORMATIONAL.

Signál 15 je iná udalosť: niečo povedalo miestnemu procesu, aby sa zastavil, a obsluha to zapísala. Keď sa oba riadky objavia spolu, poradie je príčinné, najprv odmietnutie a potom ukončenie.

Prečítajte si vyjednávanie, kým sa dotknete prihlasovacích údajov

Zvýšte úroveň logu tam, kam démon zapisuje, a potom sa znova pripojte so sledovaním výstupu. Na hostiteľovi s NetworkManager odovzdáva zásuvný modul L2TP tú úroveň backendu a správy končia v journalu alebo v klasickom súbore syslog podľa distribúcie. Ktorýkoľvek z týchto príkazov výmenu ukáže: journalctl -f -u NetworkManager | grep -Ei 'pluto|charon|no_prop|proposal' alebo tail -f /var/log/syslog | grep -Ei 'pluto|charon|ike'.

Riadok s menom pluto pochádza z libreswanu, charon zo strongSwanu a oba opisujú rovnaký stav inými slovami. Forma, ktorú stojí za to hľadať, je tá, ktorá pomenuje chýbajúcu skupinu, napríklad algorithm 'modp1024' is not supported, pretože mení neurčitú chybu na konkrétnu.

Kam zmizol modp1024

Skupina 2 Diffie-Hellman je natoľko slabá, že niekoľko distribúcií ju prestalo kompilovať do libreswanu od verzie 3.30. Profil napísaný pred rokmi alebo prevzatý z návodu k bráne, ktorý uvádza iba aes128-sha1-modp1024, potom od miestneho démona žiada niečo, čo vôbec nedokáže vykonať. Novšie zostavenia NetworkManager-l2tp robia ten výsledok pravdepodobnejším: od verzie 1.2.16 nahrádzajú sadu návrhmi v štýle Windows 10 a iOS a modp1024 vyradia hneď, ako zistia libreswan. Protistrana býva nevinná a stále ponúka presne tú skupinu, ktorú ste nastavili.

Práve táto asymetria robí poruchu náhodnou. Starší klient sa pripojí, ten istý profil na aktualizovanom notebooku nie a konfigurácia servera sa nikdy nepohla. Škodu robí posun verzií.

Dve opravy s rôznym dosahom

Lacná oprava je prestať natvrdo zapisovať algoritmy. Vymažte obe polia návrhov v editore a nechajte zásuvný modul vybrať sadu, ktorú protistrana prijme; ak brána podporuje moderné skupiny, vyjednávanie sa skončí bez ďalšej práce.

Druhá oprava udrží starú bránu dostupnú inštaláciou strongSwanu, ktorého balíky na väčšine distribúcií skupinu 2 stále implementujú. To je výmena démona, takže niečo stojí: overte, či iné tunely na hostiteľovi nezávisia od konfigurácie libreswanu, kým ho odstránite, a očakávajte odmietnutia SELinuxu medzi NetworkManagerom a zásuvným modulom strongSwan na Fedore. Tie odmietnutia sa objavujú v auditnom logu, nie v stope IKE, a preto môže tunel vyzerať pokazený hneď po úspešnej inštalácii. Poradie, ktoré funguje, je najprv dnf install strongswan, potom rpm -e libreswan.

Návrhové reťazce, ktoré sedia, a pasce okolo nich

Keď sa polia musia vyplniť ručne, fáza 1 a fáza 2 berú rôzne hodnoty. Dvojica, o ktorej je známe, že funguje proti protistrane v štýle Meraki, ponúka vo fáze 1 aes128-sha1-modp1024 s 3des-sha1-modp1024 za tým, obe uzavreté výkričníkom, ktorý sadu robí striktnou, takže sa odosielajú len tie návrhy.

Fáza 2 sa potom zúži na aes128-sha1 a 3des-sha1 s rovnakou striktnou značkou a úplne bez prípony Diffie-Hellman. Riadok fázy 2 s -modp1024 je hodnota fázy 1 v nesprávnom poli a odpovedajúca strana ho pri každom pokuse odmietne. Skopírujte ten riadok do druhého profilu a druhý profil zlyhá rovnako, a tak sa z jedného preklepu stane incident pre celú flotilu.

Iné poruchy nosia to isté vyskakovacie okno bez toho, aby boli nezhodou návrhov. V KDE môže byť typ L2TP uvedený s nainštalovaným modulom, zatiaľ čo každé spojenie hneď zomrie, pretože editor spojení a pomocné behové programy sa dodávajú ako samostatné balíky. Hostitelia bez obrazovky môžu profil z funkčného počítača znova použiť: skopírujte ho z /etc/NetworkManager/system-connections/, nastavte režim na 600 a potom spustite nmcli con reload. Spustite ho pomocou nmcli con up id work-l2tp, keďže holá forma chce UUID, a odstráňte každú zastaranú položku ifname, inak správca odpovie Could not find source connection, aj keď je všetko ostatné správne.

Vopred zdieľaný kľúč možno uložiť ako čistý text alebo ako 0s nasledované base64; obe formy fungujú, ale hodnota musí zodpovedať bráne bajt po bajte vrátane koncových medzier, ktoré ste s ňou skopírovali.

Súvisiace články