Актуализацията на Ubuntu счупи L2TP/IPsec? Сравнете предложенията на IKEv1
Профилът и паролата не се промениха, но фаза 1 вече се проваля. Приемливите предложения на клиента се изместиха, а сървърът продължава да предлага същото, което винаги е предлагал.
Връзката работеше в четвъртък, актуализацията мина в петък, а в понеделник клиентът се върти на “connecting” и се отказва. Същият лаптоп, същият сървър, същият акаунт, същият предварително споделен ключ. Нищо в профила не беше редактирано, затова очевидните заподозрени, паролата и защитната стена, губят времето ви.
Промени се списъкът с трансформации, които машината ви е готова да предложи. И двата IPsec стека, използвани на Ubuntu, strongSwan и Libreswan, премахват алгоритми, които вече не смятат за безопасни, а плъгинът на NetworkManager пред тях има свой списък, който се движи по друг график. Сървър, фиксиран към 3DES, SHA1 и Diffie-Hellman група от 1024 бита, може в крайна сметка да не чуе нищо, което приема.
Какво всъщност промени актуализацията
Предложението на IKEv1 се захранва от два слоя. Демонът доставя вграден в компилацията набор от предложения по подразбиране, а плъгинът L2TP или се доверява на него, или предоставя свой списък. Преди NetworkManager-l2tp 1.2.16 плъгинът се доверяваше, така че предложението ви беше каквото инсталираният демон сметне за разумно. От 1.2.16 нататък плъгинът изпраща документиран списък, моделиран по клиентите на Windows и Apple, и този списък е по-широк от старото подразбиране, но вече не съдържа всяка наследена комбинация в началото на опашката.
Това разделение обяснява режим на отказ, който хората намират за объркващ: две машини на една и съща версия на Ubuntu могат да се държат различно, защото едната има пакета от дистрибуцията, а другата има бекпорт, а версията на демона при двете изглежда еднаква в доклад за грешка. Проверете версията на плъгина, не само версията на демона, преди да заключите, че актуализацията не е променила нищо съществено.
Има по-малък капан в същата област. Двата демона изписват групите Diffie-Hellman с елиптична крива различно, единият пише ecp384, а другият ecp_384. Поставете грешния правопис в диалога Advanced и демонът ще отхвърли настройката като непарсваема, което в журнала се появява като проблем с преговорите, а не като печатна грешка в конфигурацията.
Прочетете отказа, преди да промените нещо
Започнете с това кой бекенд използвате, защото отговорът определя както синтаксиса, така и мястото на журнала.
ipsec --version
nmcli connection show "Your VPN name" | grep -i ipsec
След това прочетете самия обмен. На strongSwan демонът пише в журнала при текуща версия и в /var/log/syslog при по-стара, а интересното е предложението, което изпраща, не последният ред. Търсите формулировка за липсващо съвпадащо предложение, което е проблем с алгоритъм; за неуспешна автентикация, която сочи към ключа или акаунта; или за обикновен таймаут, който сочи към достижимостта.
Тези три изхода твърде често се третират като един симптом. Таймаут с празен журнал на демона означава, че пакетите не пристигат. Отхвърляне на предложението означава, че са пристигнали и са били отказани. Ако журналът ви мълчи, вдигнете нивото за отстраняване на грешки на плъгина за един опит и след това го свалете, защото подробният изход бързо запълва журнала.
Фаза 1 и фаза 2 са отделни залози
IKEv1 преговаря два пъти. Основният режим изгражда асоциацията за сигурност на IKE от алгоритъм за криптиране, алгоритъм за цялост, Diffie-Hellman група и метод за автентикация. Бързият режим след това изгражда ESP асоциацията, която ще пренася L2TP. Сървърът е свободен да приеме първата и да отхвърли втората, затова наполовина правилен профил се проваля по-късно, отколкото очаквате, и изглежда като друга грешка.
Phase 1: 3des-sha1-modp1024!
Phase 2: 3des-sha1!
Удивителният знак е синтаксис на strongSwan за строг запис: предложи тази една комбинация и нищо друго. Без него записът се присъединява към резервен списък, което е добре, когато партньорът е модерен, и контрапродуктивно, когато е устройство с една твърдо зададена политика. Приемайте двойката по-горе като илюстрация на формата, не като препоръка за каквото и да строите днес.
Променете едно поле, после повторете теста
При текущ плъгин най-бързият първи тест е да изчистите напълно двете полета за предложения и да се свържете отново, защото доставеният списък по подразбиране вече включва обичайните комбинации на Windows и Apple. При по-стар плъгин изчистването им връща контрола на демон, който може да е изхвърлил алгоритъма, на който сървърът ви настоява, и отказът става по-лош.
Ако изчистването не помогне, задайте строгата двойка, която сървърът ви документира, една фаза наведнъж. Променете фаза 1, свържете се отново и прочетете журнала, преди да пипате фаза 2. Когато комбинация най-накрая проработи, запишете я до модела на сървъра и версията на плъгина, защото подразбиранията ще се преместят отново и точно тази бележка превръща следващата актуализация в петминутна проверка.