Spojení zamrzne, klient skončí a poslední řádek na obrazovce je death_handler: Fatal signal 15 received. Ten řádek hlásí přerušení, ne příčinu. O řádek výš v logu IPsec je téměř vždy NO_PROPOSAL_CHOSEN a dvojice ukazuje na fázi 2 výměny, kde strany porovnávají volby šifrování a hešování a zastaví se, když žádnou nesdílejí. Přihlašovací údaje v té fázi ještě nebyly odeslány, takže opětovné zadání hesla výsledek nezmění.

Na klientu Linux obvykle ten průnik vyprázdní dvě věci. Místní démon už nemusí implementovat skupinu Diffie-Hellman, kterou profil žádá, nebo profil nese návrh fáze 1 v poli fáze 2. Obě zanechávají stopu v logu a ani jedna není problém účtu.

Co obě zprávy skutečně říkají

IKE vyjednává v průchodech. Fáze 1 staví chráněný kanál a volí vlastní algoritmy; fáze 2, podřízená SA, přenáší provoz podle samostatné sady. NO_PROPOSAL_CHOSEN je oznámení, které odpovídající strana vrací, když žádná z nabídnutých kombinací není přijatelná, a objevuje se jako [ HASH N(NO_PROP) ] uvnitř výměny INFORMATIONAL.

Signál 15 je jiná událost: něco řeklo místnímu procesu, aby se zastavil, a obsluha to zapsala. Když se oba řádky objeví společně, pořadí je příčinné, nejprve odmítnutí a potom ukončení.

Přečtěte si vyjednávání, než sáhnete na přihlašovací údaje

Zvyšte úroveň logu tam, kam démon zapisuje, a pak se znovu připojte se sledováním výstupu. Na hostiteli s NetworkManager předává zásuvný modul L2TP tuto úroveň backendu a zprávy končí v journalu nebo v klasickém souboru syslog podle distribuce. Kterýkoli z těchto příkazů výměnu ukáže: journalctl -f -u NetworkManager | grep -Ei 'pluto|charon|no_prop|proposal' nebo tail -f /var/log/syslog | grep -Ei 'pluto|charon|ike'.

Řádek s jménem pluto pochází z libreswanu, charon ze strongSwanu a oba popisují stejný stav jinými slovy. Forma, kterou stojí za to hledat, je ta, která pojmenuje chybějící skupinu, například algorithm 'modp1024' is not supported, protože mění neurčitou chybu na konkrétní.

Kam zmizel modp1024

Skupina 2 Diffie-Hellman je natolik slabá, že ji několik distribucí přestalo kompilovat do libreswanu od verze 3.30. Profil napsaný před lety nebo převzatý z návodu k bráně, který uvádí jen aes128-sha1-modp1024, pak po místním démonu chce něco, co vůbec nedokáže provést. Novější sestavení NetworkManager-l2tp ten výsledek činí pravděpodobnějším: od verze 1.2.16 nahrazují sadu návrhy ve stylu Windows 10 a iOS a modp1024 vyřadí, jakmile zjistí libreswan. Protistrana bývá nevinná a stále nabízí přesně tu skupinu, kterou jste nastavili.

Právě tato asymetrie dělá poruchu náhodnou. Starší klient se připojí, stejný profil na aktualizovaném notebooku ne a konfigurace serveru se nikdy nehnula. Škodu dělá posun verzí.

Dvě opravy s různým dopadem

Levná oprava je přestat algoritmy natvrdo zapisovat. Vymažte obě pole návrhů v editoru a nechte zásuvný modul vybrat sadu, kterou protistrana přijme; pokud brána podporuje moderní skupiny, vyjednávání skončí bez další práce.

Druhá oprava udrží starou bránu dostupnou instalací strongSwanu, jehož balíčky na většině distribucí skupinu 2 stále implementují. To je výměna démona, takže něco stojí: ověřte, zda na hostiteli nezávisí jiné tunely na konfiguraci libreswanu, než ho odstraníte, a očekávejte odmítnutí SELinuxu mezi NetworkManagerem a zásuvným modulem strongSwan na Fedoře. Ta odmítnutí se objevují v auditním logu, ne ve stopě IKE, a proto může tunel vypadat rozbitý hned po úspěšné instalaci. Pořadí, které funguje, je nejprve dnf install strongswan, potom rpm -e libreswan.

Návrhové řetězce, které sedí, a pasti kolem nich

Když se pole musí vyplnit ručně, fáze 1 a fáze 2 berou různé hodnoty. Dvojice, o níž je známo, že funguje proti protistraně ve stylu Meraki, nabízí aes128-sha1-modp1024 ve fázi 1 s 3des-sha1-modp1024 za ním, obě uzavřené vykřičníkem, který sadu činí striktní, takže se odesílají jen tyto návrhy.

Fáze 2 se pak zúží na aes128-sha1 a 3des-sha1 se stejnou striktní značkou a zcela bez přípony Diffie-Hellman. Řádek fáze 2 s -modp1024 je hodnota fáze 1 ve špatném poli a odpovídající strana ho při každém pokusu odmítne. Zkopírujte ten řádek do druhého profilu a druhý profil selže stejně, a tak se z jednoho překlepu stane incident pro celou flotilu.

Jiné závady nosí stejné vyskakovací okno, aniž by šlo o neshodu návrhů. V KDE může být typ L2TP uveden s nainstalovaným modulem, zatímco každé spojení hned umře, protože editor spojení a pomocné běhové programy se dodávají jako samostatné balíčky. Hostitelé bez obrazovky mohou profil z funkčního počítače znovu použít: zkopírujte ho z /etc/NetworkManager/system-connections/, nastavte režim na 600 a potom spusťte nmcli con reload. Spusťte ho pomocí nmcli con up id work-l2tp, protože holá forma chce UUID, a odstraňte každou zastaralou položku ifname, jinak správce odpoví Could not find source connection, i když je vše ostatní správně.

Předsdílený klíč lze uložit jako čistý text nebo jako 0s následované base64; obě formy fungují, ale hodnota musí odpovídat bráně bajt po bajtu, včetně koncových mezer, které jste s ní zkopírovali.

Související články