PSK за L2TP/IPsec одбијен: прво дијалог, затим фајлови
Кључ на екрану ипак може да изгуби од застарелог фајла тајни или невидљивог прелома реда. Пратите га од поља у NetworkManager-у до /etc/ipsec.d.
Налепите унапред подељени кључ из администраторове поруке у дијалог NetworkManager-а, означите поље да га прикажете, и он се поклапа знак по знак. Веза ипак завршава грешком аутентификације пре него што се тунел подигне. Када сам то први пут видео, претпоставио сам да је кључ погрешан; није био. Још две ствари одређују шта демон заиста чита: фајл тајни који додатак уписује за ту везу и то да ли је вредност прошла кроз дијалог непромењена.
Пут испод прати кључ од поља до фајла, и баш тај редослед каже где се изгубио. Урадите то на машини која не успева, а не на оној која ради, јер је разлика између те две машине обично распоред фајлова, а не кључ.
Почните од дијалога, али не верујте пољу
Отворите IPsec језичак везе и поново укуцајте кључ уместо да га налепите. Кључ копиран из поруке у чету, PDF-а или менаџера лозинки може да стигне са преломом реда на крају који поље не приказује, а видљиви знакови и даље изгледају исправно.
Кликните на контролу за приказ лозинке и погледајте крај низа, не средину. Ако курсор остави празан ред испод текста, обришите га и поново укуцајте последњи знак. То једно исправљање решава изненађујући део оваквих пријава и кошта мање од читања било ког лога.
Ако кључ долази из тикет система који ломи дуге редове, затражите га каналом који не ломи. Упоредите дужине са администратором уместо да гледате два низа један поред другог; изгубљен знак на месту лома невидљив је у пропорционалном фонту.
Пратите кључ у /etc/ipsec.d
Додатак никада не предаје PSK демону IPsec-а као аргумент у командној линији. Уместо тога чува вредност у фајлу тајни и уређује да демон укључи тај фајл, додајући include ред у /etc/ipsec.secrets ако га нема. Оно што дијалог држи јесте улаз за тај генерисани фајл, а не вредност која се користи.
Наведите шта постоји пре него што било шта промените:
ipsec --version
sudo ls -l /etc/ipsec.d/*.secrets /etc/ipsec.d/ipsec.nm-l2tp.secrets 2>/dev/null
sudo grep -n "include" /etc/ipsec.secrets
Старија издања додатка писала су по један фајл за сваку везу, назван по UUID-у везе, на пример /etc/ipsec.d/nm-l2tp-ipsec-<uuid>.secrets. Брисање профила у аплету не брише тај фајл поуздано. Ако је стари фајл са претходног сервера још на диску и још укључен, демон може да изабере тајну која припада профилу који више не користите, и веза пада док је видљиво поље исправно.
Схватите шта је промена у 1.2.12 урадила са надградњама
Верзија додатка 1.2.12 заменила је фајлове тајни по вези једним заједничким фајлом, /etc/ipsec.d/ipsec.nm-l2tp.secrets. Надградња не чисти старије фајлове по UUID-у, а постојећи ред include /etc/ipsec.d/*.secrets их и даље укључује. Верзија 1.2.16 променила је руковање подразумеваним предлозима, не распоред тајни.
Та историја објашњава зашто се две машине са наизглед истим профилом понашају различито. Кључ је идентичан; скуп фајлова које демон укључује није. Када уклањате напуштени фајл, преместите га у страну уместо да га обришете, потврдите везу и тек онда га обришите када је радно стање забележено. Преименовање чува стару вредност обновљивом ако се испостави да је квар негде другде.
Одвојте знакове које формат за чување не може да задржи
strongSwan документација за низ заједничке тајне наводи да вредност не може да садржи прелом реда ни знак двоструког наводника. Кључ налепљен из документа може да носи било шта од тога без икакве визуелне разлике у нормалном дијалогу.
Од 1.2.12 сачувана вредност није обичан текст. Додатак кодира PSK у base64 пре него што стигне до фајла, а белешке о издању то кодирање наводе као разлог зашто је двоструки наводник сада прихватљив у кључу. Наводник укуцан у поље је зато представљив; исто не важи за сваки контролни знак.
Дужина је друго ограничење. У софтверу за L2TP/IPsec не важи универзални минимум: неки клијенти прихватају кључеве краће од двадесет знакова, а неки гејтвеји намећу минимум. Ако кратак кључ буде одбијен, правило припада политици сервера или провери тог клијента, и подизање нечега локално то неће променити.
Прочитајте који слој аутентификације није прошао
Прво покрените ipsec --version, јер strongSwan и Libreswan користе различита имена фајлова и синтаксу, а савет за један може да нашкоди другом. Затим прочитајте фазу квара из поруке клијента или лога демона: жалба на унапред подељени кључ је други догађај од одбијеног корисничког имена и лозинке.
PSK аутентификује крајеве тунела. Корисничко име и лозинка аутентификују особу унутар L2TP, а PPP се њима бави након што је IPsec асоцијација подигнута. Исправан PSK са погрешним налогом ипак не успева, а промена налога неће поправити кључ који демон никада није прочитао исправно.
Када затворите тикет, запишите сва четири: верзију додатка, фајл тајни који се користи, да ли је кључ поново укуцан или налепљен и слој наведен у грешци. Тада свако ко касније понови овај пут може одмах да пређе на разлику између машине која ради и оне која не успева.