Връзката работеше в четвъртък, актуализацията мина в петък, а в понеделник клиентът се върти на “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. Когато комбинация най-накрая проработи, запишете я до модела на сървъра и версията на плъгина, защото подразбиранията ще се преместят отново и точно тази бележка превръща следващата актуализация в петминутна проверка.

Подобни статии