openvpn3 session-start игнорише твоју датотеку са подацима за пријаву
3.x клијент преузима податке за пријаву на почетку сесије и не чита сачувану датотеку. Користи промпт или autoload путању и знај шта сваки од њих чува.
Повежи се са 2.x клијентом и профил ради; дај исту датотеку 3.x клијенту и он се зауставља на промпту за лозинку. Дај --auth-user-pass creds.txt команди openvpn3 session-start и резултат је исти, јер новији клијент нема фазу која чита датотеку. Одбијање је намерно: подаци за пријаву припадају сесији, а сесију ствара сервис, а не процес у твом терминалу. Изабери између интерактивног промпта и autoload помоћника и знај шта сваки од њих чува.
Зашто сачувана датотека нема куда да оде
У новијем дизајну, управљање конфигурацијом и управљање сесијама су одвојени сервиси који разговарају преко системске магистрале. То раздвајање омогућава обичном кориснику да започне сесију без да привилеговани демон чита заштитну датотеку лозинки у његово име. Подаци за пријаву засновани на датотеци немају место у том моделу, јер нема покретања на страни демона које би их читало. Одбијање је последица архитектуре, а не функција која недостаје.
Стари образац вреди именовати да би га лакше одвикли: профил упућује на датотеку са подацима за пријаву, а демон је чита када тунел почне. У новом моделу подаци за пријаву припадају сесији и достављају се када та сесија почне. openvpn3 session-start --config work.ovpn их тражи, а --auth-user-pass creds.txt се одбија јер ништа на том путу не би отворило датотеку. Сваки 2.x рецепт који нађеш претпоставља фазу које више нема.
Конфигурација и локална подешавања сајта су такође одвојени, што објашњава друго изненађење. Профил може изгледати потпун док вези коју ствара недостаје конфигурација рутирања и резолвера. Ти делови се примењују као локална подешавања сајта, одвојено од увезене датотеке.
Путања промпта и сесија коју оставља
Давање лозинке на почетку сесије је предвиђени ток рада. Клијент пита једном, преда податке за пријаву позадини сесије и наставља:
openvpn3 session-start --config work.ovpn
openvpn3 sessions-list
Тим путем се ништа не записује на диск. Сесија наставља да ради и након што се терминал затвори, што изненађује људе који очекују да процес умре са њиховом љуском. Управо је то смисао пребацивања руковања сесијама у сервис. Сесија живи дуже од терминала који ју је затражио и мора се експлицитно зауставити.
За радну станицу са човеком испред, ово је и најсигурнија опција, јер нема сачуване тајне коју треба заштити или заборавити. Неодговарајућа је само тамо где нема никога да унесе.
Аутоматизација без особе за тастатуром
Тамо где машина мора да се повеже без особе, пројекат испоручује openvpn3-autoload. Он чита директоријум профила и одговарајући дескриптор за сваки профил, а дескриптор доставља податке за пријаву у чистом тексту. Помоћник је одвојена бинарна датотека, обично на /usr/sbin/openvpn3-autoload, а не заставица session-start. Његово подешавање значи стварање директоријума, копирање профила под именом које дескриптор очекује и писање дескриптора.
Подешавање по кориснику изгледа овако, покренуто као налог који ће поседовати сесију. Режим директоријума држи друге локалне кориснике напољу:
mkdir -m700 -p ~/.openvpn3/autoload
cp work.ovpn ~/.openvpn3/autoload/client.conf
$EDITOR ~/.openvpn3/autoload/client.autoload
Дескриптор именује податке за пријаву и тражи аутоматско покретање. Држи вредност лозинке изван контроле верзија:
{
"autostart": true,
"user-auth": {
"autologin": true,
"username": "svc-vpn",
"password": "change-this-value"
}
}
Затим позови помоћника једном и потврди да се сесија појављује. Друга команда је провера, а не још један корак подешавања:
/usr/sbin/openvpn3-autoload --directory ~/.openvpn3/autoload
openvpn3 sessions-list
При подизању, пакована јединица по имену openvpn3-autoload.service користи системски директоријум /etc/openvpn3/autoload, а не онај по кориснику. То место захтева root власништво и строжи режим, а дескриптор још увек држи лозинку у чистом тексту. Компромис је експлицитан: лозинка сада стоји на диску, па третирај тај директоријум као тајну, искључи га из резервних копија ван хоста и изабери интерактивну путању кад год је особа присутна.
Кварови магистрале који изгледају као кварови лозинке
Неки кварови који се приписују подацима за пријаву нису никакви такви. Грешка дозвола која именује путању активације сервиса значи једно од два: позадина не ради, или позивалац нема дозволу да је активира. Никакво уређивање профила неће променити ни једно. Провери стање сервиса и испоручену политику магистрале пре него што дотакнеш конфигурацију.
Команде испод раздвајају то двоје. Прва извештава да ли позадина ради; друга приказује недавне грешке магистрале:
systemctl status openvpn3-service-client
journalctl -b -u openvpn3-service-client --no-pager | tail -20
Друго често погрешно читање је сесија која се појави и одмах нестане. Тај образац обично значи да локална подешавања сајта никада нису примењена, па је тунел подигнут без рута и промена резолвера које га чине корисним. Читај след, а не последњу линију: да ли је сесија створена, да ли је достигла повезано стање и да ли је преживела су три одвојене чињенице.
Када се старији клијент још користи
2.x клијент још прихвата датотеку са подацима за пријаву, а привезак кључева може да одговори на његов промпт без да тајна икада дође на диск. Омотач решава унос, па датотека именује претрагу, а не лозинку. Овај распоред зависи од откључаног привеска кључева, који контејнер без сесије пријаве или јединица која се покреће пре него се неко пријави не могу пружити. Алат за претрагу тада пријављује колекцију у коју не може да пише, па грешка изгледа као квар података за пријаву, иако је квар привеска кључева.
Пре него што било шта од овога изградиш, провери да ли keepalive подешавање у профилу уклања потребу за поновним покретањем уопште. Сесија која остане подигнута никада не достиже промпт који покушаваш да аутоматизујеш.