OpenVPN 3 Linux каталары белгисиз ат менен келген D-Bus метод катасы катары түшөт, жана азгырык — пакеттин версиясын төмөндөтүп, үмүт кылуу. Клиент бир программа эмес: буйрук сабынын интерфейси шина аркылуу профилдерге, сессияларга, VPN кыймылдаткычына жана артыкчылыктуу тармактык өзгөртүүлөргө ээ кызматтар менен сүйлөшөт. Ошол бешөөнүн кайсынысы ийгиликсиз чакырууга ээ экенин аныктоо диагностиканын көп бөлүгү болуп саналат жана артка кайтаруунун ордуна бир буйрукка турат. Кийинкиси — каталар адатта пайда болгон тартипте ошол чечим.

Бир буйруктун артындагы беш ээси

Беш процесс маанилүү, жана ар биринин өз шина аты бар: буйругуңузду кабыл алган интерфейс, профилдерди жана алардын кирүү саясатын сактаган конфигурация менеджери, сессиянын узактыгына ээ сессия менеджери, байланышты OpenVPN 3 Core Engine аркылуу жүргүзгөн сервердик бөлүк жана интерфейс, маршруттар менен DNS параметрлерин орноткон тармак конфигурациясы кызматы. Конфигурация объектисин атаган ката ошондуктан сервердик бөлүктүн катасы эмес, ал эми ишке кирбеген сервердик бөлүк аутентификациянын ийгиликсиздиги эмес. Билдирүүнү ошол саптардын бирине кошуу бир нерсе өзгөртүлүшүнөн мурун болушу керек, анткени ар бир кийинки кадам кайсы сап туура экенине көз каранды. Сапты болжолдоо — кыска оңдоонун пакеттер менен өткөн түштөн кийинки ишке айлануу жолу.

Башка нерсени сураардан мурун системалык шинадан кайсы кызматтар бар экенин сураңыз, анан орнотулган бөлүктөр версия боюнча макул экенин тастыктаңыз. OpenVPN 3 Linux бул кызматтарды системалык бирдиктер катары каттайт, ошондуктан сурала турган шина — системалык шина, версия суроосу административдик ыйгарым укукту талап кылат, ал эми --user менен түзүлгөн тизме бирдиктер эч качан көрүнбөгөн кирүү сессияңызды окуйт. Кызматтар суроо боюнча активдешет жана кээ бирлери бош турганда токтойт, ошондуктан биринчи сурооңузга чейин жетишпеген кызмат жөн гана азырынча эч нерсе суралган эмес. Төмөнкү үч буйрук VPN сессиясын ачпастан бар болушу, версиясы жана бирдиктин абалы боюнча жооп берет.

sudo busctl list | grep -i openvpn
sudo openvpn3-admin version --services
systemctl list-units 'openvpn3*'

Ар бир тизме чындыгында эмнени далилдейт

Клиенттин өз көрүнүштөрү — жеткиликтүү эң арзан далил, жана алардын ар бири көрүнгөндөн азыраак нерсени далилдейт. Конфигурация тизмесиндеги профиль профилдин импортталганын көрсөтөт жана ага ким байланыша алары тууралуу эч нерсе айтпайт. Сессиялар тизмесиндеги сессия сессия объектисинин бар экенин көрсөтөт жана алыскы аутентификациянын бүткөнү тууралуу эч нерсе айтпайт.

openvpn3 configs-list
openvpn3 sessions-list

Бул чыгарылыштардагы объект жолдору шинадагы башкарылуучу объектилерди билдирет, файлдарды эмес, ошондуктан аларды оңдоого болбойт, ал эми мурун жазылган жол ошол сессия ажыраган учурда эскирет. Жазууларыңыздан бир жолду кайра колдонуу VPNге тиешеси жок "no such object" каталарын жаратат. Төмөнкү баскыч таблицасы ар бир байланыш кадамынын эмнени орноторун эмнени ачык калтырарынан ажыратат, жана артка кайтаруу чечими ушул айырмага таянат. Далилиңизге туура келген сапты окуңуз, анан ката текстин кайра окуңуз.

StageWhat existsWhat proves itWhat it does not prove
Profile importedA configuration object held by the configuration managerThe profile is listed by the clientThat the profile owner permits a connection
Session requestedA session object held by the session managerThe session appears in the session listThat the remote side accepted the credentials
Connect dispatchedAn asynchronous attempt on the VPN backendStatus changes arrive for that sessionThat an interface was configured
Tunnel configuredAn interface, routes and DNS settingsThe network service reports success and routes appearThat traffic reaches the peer

Байланышуу чакыруу туннель пайда болгонго чейин кайтат

Байланышуу чакыруу сизге байкоо үчүн сессия берет жана кайтат, ошондуктан сырттан ийгиликтүү көрүнгөн чакыруудан кийин үнсүздүк келиши карама-каршылык эмес, кадимки аралык абал. Интерфейс дагы эле абалдын өзгөрүүлөрүн көзөмөлдөп, ар кандай өз ара аракет суроосуна жооп бериши керек. Күбөлүк талап кылып, жооп албаган профиль так илинип калган сервердик бөлүккө окшош абалда күтөт. Бул күтүү абалы таанылууга татыктуу, анткени ал адамдарды туура эмес компонентке жиберет.

Аракет жүрүп жатканда, сессиялар тизмесин жана интерфейстин өз журналын ошол профиль үчүн көзөмөлдөңүз. Баштапкы абалынан эч качан чыкпаган сессия токтогон компонентти атайт, ал эми журнал аны адатта биринчи саптарда эле атайт. Профиль атын колдо кармаңыз, анткени журнал буйругу сессия жолун эмес, профилди алат, бул жолду кайра колдонуунун ордуна тизмени кайра окууга дагы бир себеп.

openvpn3 sessions-list
openvpn3 log --config <profile> --level 6

Бир компоненттин журналын сессия ачпастан окуу

Интерфейс пайдалуу эч нерсе билдирбегенде, жаңы байланыш баштоонун ордуна катаны журналга жазган компонентке өтүңүз. Конфигурацияланган systemd-journald жазуучусу менен администратордун чектелген журнал көрүнүшү бир компоненттин окуяларын шина саясатына тийбестен жана сессия ачпастан окуйт, бул маанилүү, анткени өлчөнгөн системаны өзгөрткөн диагностика абдан аз нерсени далилдейт. Бирдик боюнча чыпкалаңыз, syslog теги боюнча эмес: жеке кызмат бирдиктери жалпы идентификаторго кепилдик бербейт, ошондуктан тег боюнча суроо бош барак кайтарышы мүмкүн, ал эми бирдиктин өзү катаны жазып койгон.

Бирөөдөн жардам сураардан мурун төрт талааны жазып алыңыз: катанын толук аты, тиешелүү кызмат жана объект, убакыт белгиси жана орнотулган пакет версиялары. Бул — колдоочуга керектүү нерсе, жана алардын эч бири профилди же күбөлүктү билдирүүгө кошууну талап кылбайт. Катаны үнсүз кылуу үчүн шинага кирүү саясатын кеңейтүү диагностика эмес, ал компонентти сиз үчүн атаган чекти өчүрөт. Профилдердин жеке мазмуну күбөлүктөр сыяктуу эле себеп менен жалпы отчеттордон тышкары калат.

journalctl -u 'openvpn3-service-*' -n 50 --no-pager
openvpn3-admin journal --service <name>

Баш тарткан чекти оңдоо

Картанын ар бир сабынын өз оңдоосу бар, жана саптар бирин-бири алмаштырбайт. Профилдеги четке кагылган операция — саясат жана ээлик жөнүндө суроо, ал эми активдешпеген сервердик бөлүк — кызматтар жана пакеттөө жөнүндө суроо. Аутентификацияны четке каккан сервер экөөнүн бири да эмес, ошондуктан кайталанган сырсөз өзгөртүүлөрү жергиликтүү активдештирүү маселесин оңдой албайт. Туура эмес оңдоону тандоо — саясат маселесинин кайра орнотууга айлануу жолу.

Пакет өзгөргөндөн кийин эски экилик файлды ордуна көчүрүүнүн ордуна шайкеш жана колдоого алынган орнотууну текшериңиз. Көзөмөлдөнгөн артка кайтаруу — тастыкталган регрессияга мыйзамдуу жооп, эгер пакеттер шайкеш бойдон калса жана колдоого алынган тейлөөгө кайтуу жолу болсо. Бул жолду кызмат ишке кирүүнү токтотконго чейин түзүңүз, кийин эмес.

Башка платформа Linux'тун шиналык кызматтарын бөлүшпөстөн эле ошол негизги VPN китепканасын бөлүшө алат, ошондуктан Windows'тогу окшош ката бул жөнүндө эч нерсе айтпайт. D-Bus сереби конфигурациялар жана сессиялар үчүн сунушталган объект жолдорун документтештирет, жана бул диагностика ушул архитектура бөлүгүнө таянат. Аны бир жолу окуңуз, ал эми кийинки ката ага мурунтан байланган компонент менен келет.

Тектеш макалалар