L2TP: фатальны сігнал 15, NO_PROPOSAL_CHOSEN і адсутнасць modp1024
Фатальны сігнал 15 разам з NO_PROPOSAL_CHOSEN — гэта несупадзенне на фазе 2: або дэман ужо не прапануе modp1024, або значэнне фазы 1 стаіць у полі фазы 2.
Ваша злучэнне зависае, кліент выходзіць, і апошні радок на экране — death_handler: Fatal signal 15 received. Гэты радок паведамляе пра перапыненне, а не пра прычыну. На адзін радок вышэй у журнале IPsec амаль заўсёды ёсць NO_PROPOSAL_CHOSEN, і гэтая пара паказвае на фазу 2 абмену, дзе бакі параўноўваюць алгарытмы шыфравання і хэшавання і спыняюцца, калі агульных няма. На гэтай стадыі дадзеныя ўваходу яшчэ не адпраўлены, таму паўторны ўвод пароля не зменіць вынік.
Звычайна гэта перасячэнне апустошваюць дзве рэчы на кліенце Linux. Лакальны дэман можа больш не рэалізоўваць групу Diffie-Hellman, якую патрабуе профіль, або профіль можа несці прапанову фазы 1 у полі фазы 2. Абодва пакідаюць сляды ў журнале, і ні адно не з’яўляецца праблемай уліковага запісу.
Што насамрэч кажуць гэтыя два паведамленні
IKE вядзе перамовы па этапах. Фаза 1 будуе абаронены канал і выбірае ўласныя алгарытмы; фаза 2, даччыная SA, перадае трафік па асобным наборы. NO_PROPOSAL_CHOSEN — гэта апавяшчэнне, якое адказвальнік вяртае, калі ніводная з прапанаваных камбінацый не падыходзіць, і яно выглядае як [ HASH N(NO_PROP) ] унутры абмену INFORMATIONAL.
Сігнал 15 — іншая падзея: нешта загадала лакальнаму працэсу спыніцца, і апрацоўшчык запісаў гэта. Калі абодва радкі з’яўляюцца разам, парадак прычынны: спачатку адмова, потым завяршэнне.
Прачытайце перамовы, перш чым чапаць дадзеныя ўваходу
Падніміце ўзровень журнала там, дзе піша дэман, і падключыцеся зноў, назіраючы за вывадам. На хастле NetworkManager плагін L2TP перадае гэты ўзровень бэкенду, і паведамленні трапляюць у journal або ў класічны файл syslog у залежнасці ад дыстрыбутыва. Любое з гэтага пакажа абмен: journalctl -f -u NetworkManager | grep -Ei 'pluto|charon|no_prop|proposal' або tail -f /var/log/syslog | grep -Ei 'pluto|charon|ike'.
Радок з імем pluto паходзіць з libreswan, charon — з strongSwan, і абодва апісваюць адну і тую ж умову рознымі словамі. Вартая пошуку форма — тая, што называе адсутную групу, напрыклад algorithm 'modp1024' is not supported, бо яна ператварае расплывістую памылку ў канкрэтную.
Куды знік modp1024
Група 2 Diffie-Hellman настолькі слабая, што некалькі дыстрыбутываў перасталі ўключаць яе ў libreswan пачынаючы з 3.30. Тады профіль, напісаны шмат гадоў таму або ўзяты з дапаможніка па шлюзе, дзе пералічаны толькі aes128-sha1-modp1024, патрабуе ад лакальнага дэмана тое, што той зусім не можа выканаць. Новыя зборкі NetworkManager-l2tp робяць такі вынік яшчэ больш імаверным: з 1.2.16 яны падстаўляюць набор прапаноў у стылі Windows 10 і iOS і адкідаюць modp1024, як толькі выяўлены libreswan. Процілеглы бок часта невінаваты і ўсё яшчэ прапануе менавіта тую групу, якую вы наладзілі.
Менавіта гэтая асіметрыя робіць збой падобным на выпадковы. Стары кліент падключаецца, той жа профіль на абноўленым ноўтбуку — не, а канфігурацыя сервера ніколі не мянялася. Шкоду наносіць разыходжанне версій.
Два рамонты з рознай зонай паражэння
Танны рамонт — перастаць уручную прапісваць алгарытмы. Ачысціце абодва палі прапаноў у рэдактары і дайце плагіну выбраць набор, які прымае далёкі бок; калі шлюз падтрымлівае сучасныя групы, перамовы завяршаюцца без дадатковых дзеянняў.
Другі рамонт захоўвае стары шлюз даступным праз усталяванне strongSwan, пакеты якога ў большасці дыстрыбутываў усё яшчэ рэалізуюць групу 2. Гэта замена дэмана, таму мае сваю цапу: пераканайцеся, ці не залежаць іншыя тунелі на хастле ад канфігурацыі libreswan, перш чым выдаляць яго, і чакайце адмоў SELinux паміж NetworkManager і плагінам strongSwan у Fedora. Гэтыя адмовы ўсплываюць у журнале аўдыту, а не ў трасіроўцы IKE, таму тунель можа выглядаць зламаным адразу пасля паспяховай усталёўкі. Парадак, які працуе: спачатку dnf install strongswan, потым rpm -e libreswan.
Радкі прапаноў, якія супадаюць, і пасткі вакол іх
Калі палі даводзіцца запаўняць уручную, фаза 1 і фаза 2 атрымліваюць розныя значэнні. Пара, якая, як вядома, працуе супраць боку ў стылі Meraki, прапануе aes128-sha1-modp1024 у фазе 1 і 3des-sha1-modp1024 за ёй, абедзве закрыты знакам клічу, што робіць набор строгім, таму адпраўляюцца толькі гэтыя прапановы.
Затым фаза 2 звужаецца да aes128-sha1 і 3des-sha1 з тым жа строгім маркерам і зусім без суфікса Diffie-Hellman. Радок фазы 2 з -modp1024 — гэта значэнне фазы 1 у няправільным полі, і адказвальнік адхіляе яго пры кожнай спробе. Скапіруйце гэты радок у другі профіль, і другі профіль збаіць гэтак жа, вось як адна друкарская памылка становіцца інцыдэнтам для ўсяго флоту.
Іншыя збоі носяць тое ж усплывальнае акно, не будучы несупадзеннем прапаноў. У KDE тып L2TP можа значыцца пры ўсталяваным плагіне, але кожнае злучэнне адразу памірае, бо рэдактар злучэнняў і дапаможнікі часу выканання пастаўляюцца асобнымі пакетамі. Хастлы без экрана могуць паўторна выкарыстаць профіль з працоўнага дэсктопа: скапіруйце яго з /etc/NetworkManager/system-connections/, усталюйце рэжым 600, затым выканайце nmcli con reload. Узніміце яго праз nmcli con up id work-l2tp, бо аголеная форма патрабуе UUID, і выдаліце любы састарэлы запіс ifname, інакш менеджэр адкажа Could not find source connection, калі ўсё астатняе правільна.
Папярэдне агучаны ключ можа захоўвацца як адкрыты тэкст або як 0s з наступным base64; абедзве формы працуюць, але значэнне павінна супадаць са шлюзам байт у байт, уключаючы канцавыя прабелы, якія вы скапіравалі разам з ім.