Біреу tun1-ді алдын ала жасаған, профильде dev tun1 деп жазылған, бірақ қосылым әлі де қосылмайды. Хостта атаудың болуы дерлік ештеңе айтпайды, өйткені қосылу атаулар кеңістігіне, құрылғы түріне, сілтемеге кім ие екеніне және демонға не рұқсат етілгеніне байланысты. Құрылғыны қайта пайдалану әдепкі конфигурация жасыратын шешімді де таңып береді: мекенжайлар мен маршруттарды қай компонент жазады. Екі орналасудың істен шығу режимдері конфигурация жолдарынан әлдеқайда көп ерекшеленеді, сондықтан профильді өңдеуден бұрын шешім қабылдаңыз.

Атау — қосылу емес

dev tun1 OpenVPN-нен дәл сол аталған интерфейсті сұрайды, ал дәстүрлі пайдаланушы кеңістігі құрастырылымдары оны ашуға тырысады. Егер атау әдеттегі tun немесе tap үлгісіне сәйкес келмесе, профильге сәйкес dev-type де қажет, өйткені түр ешқашан жолдан шығарылмайды. TAP құрылғысы басқа белгісі бар TUN құрылғысы емес: дұрыс емесін қосу не бірден сәтсіз аяқталады, не ешкім күтпейтін кадрларды тасымалдайтын сілтеме жасайды. Түрді бәрінен бұрын тексеріңіз, өйткені әрбір кейінгі тексеру екі жақтың ол туралы келісімде екенін болжайды. Одан кейін процестің құрылғыны шынымен аша алатынын, тек көре алатынын емес, растаңыз.

dev tun1
dev-type tun

Желілік интерфейс пен /dev/net/tun бөлек нысандар: біреуі атаулар кеңістігінің ішіндегі сілтеме, екіншісі пайдаланушы кеңістігі бағдарламасы қосылу үшін пайдаланатын таңба құрылғысы. Linux TUN/TAP құжаттамасы сол қосылу жолын және тұрақты құрылғылардың меншік ережелерін сипаттайды. ip link іске қоса алатын root қабығы қабықта артықшылықтар бар екенін ғана дәлелдейді, демонда бар екенін емес. Құрылғы торабының меншігі, қызметтің мүмкіндіктер жиынтығы және ол жұмыс істейтін пайдаланушы — бәрі сәйкесуі керек, ашу сәтті болуы үшін.

Бар және ашылмайтын құрылғы — бұл меншік мәселесі, маршруттау мәселесі емес. Жөндеу кезінде оны солай қарастырыңыз, әйтпесе түстен кейін ешқашан мәселе болмаған маршрут кестелерін оқуға кетеді.

Сілтемені кім конфигурациялайды: екі меншік моделі

Бірінші модельде OpenVPN қосылымды көтерудің бөлігі ретінде мекенжайлар мен маршруттарды конфигурациялайды. Бұл әдепкі әрекет және түсінуге ең оңай, өйткені бір компонент күйді жасайды да, кейін оны қайтадан жояды. Екінші модельде интерфейске сыртқы менеджер ие, ал ifconfig-noexec OpenVPN-ге мекенжай конфигурациясының командаларын орындауға жол бермейді және параметрлерді скрипттерге береді. Сонда менеджер дұрыс жергілікті және серіктес конфигурацияны өзі қолдануы керек, бұл опция атауы ұсынғаннан көп жұмыс. Екеуінің арасында таңдау — сілтеме көтерілген кезде оны кім өзгерте алады деген сұрақ.

ifconfig-noexec тек мекенжайларды қамтиды: маршруттау кестесіне тиіспейді, ал маршруттарды конфигурациялау route-noexec-ға тиесілі. Екі директиваны бөлек басқару және бөлек иелер ретінде қарастырыңыз, өйткені біреуін орнатып, екіншісін болжау — жартылай конфигурацияланған сілтемелердің кәдімгі көзі. Әр қабатқа дәл бір ие таңдаңыз: мекенжайлар бір жерде, маршруттар бір жерде. Желі менеджері мен VPN көмекшісі екеуі де мекенжай жазса, ажырау екінші жақ әлі сүйенетін күйді жояды.

Құрылғыны маңызды атаулар кеңістігінен қараңыз

Құрылғыны VPN процесі жұмыс істейтін атаулар кеңістігінен қараңыз, қабығыңыз кездейсоқ тұрған кеңістіктен емес. Төмендегі екі команда әртүрлі сұрақтарға жауап береді, ал айырмашылық хост контейнер көрмейтін интерфейсті көргенде байқалады. Оларды келтірілген ретпен іске қосыңыз, өйткені екіншісі сілтеменің бар-жоғын білгеннен кейін ғана мәнге ие.

ip -details link show dev tun1
ip tuntap show

Бірінші команда сілтемені ядро көретіндей басып шығарады, жалаушалар мен интерфейс түрін қоса, және осылайша бұл дәл көздеген құрылғы екенін растайсыз. Екіншісі тұрақты tun/tap жазбаларын тізімдейді, олар ешбір процесс ұстамаса да бар. Өзінің тағайындалған иесін күтіп тұрған интерфейс басқа VPN-ге қосылған тірі туннельден басқа жағдай, және тек екіншісі сіздің қосылымыңыздың неге сәтсіз екенін түсіндіреді. Бірдеңені өзгертуден бұрын құрылғыны ұстап тұрған процесті табыңыз, өйткені тұрақты жазба мен бос емес интерфейстің шешімдері әртүрлі.

Көп кезекті қолдау — өз талаптары бар драйвердің нақты орналасуы, байланысы жоқ процестерге бір интерфейсті бөлісуге рұқсат емес. Басқа иенің тірі сессиясы — үйлестіру мәселесі, және ешбір профильді өңдеу оны шешпейді.

Тұрақтылықтың екі түрі

Ядро тұрақтылығы мен persist-tun шатастыруға оңай және қымбат тұратын ғұмырларды сипаттайды. Тұрақты құрылғы кез келген процестен тәуелсіз өмір сүреді, сондықтан тоқтатудан аман қалады және келесі іске қосу оны қайта пайдалана алады. persist-tun бір OpenVPN процесінің ішінде қолдалатын жұмсақ қайта жүктеулер арқылы ресурстарды сақтайды, бұл әлдеқайда қысқа көкжиек. Екеуі де қызметті тоқтату маршруттар мен мекенжайларды орнында қалдырады деп уәде бермейді, ал көрінетін интерфейс жұмыс істеп тұрған шифрланған сессияның дәлелі емес.

Backend-ті де растаңыз, өйткені алдын ала жасалған интерфейс оны қай іске асыру ашатыны туралы ештеңе айтпайды. Тікелей деректер жолын алып жүрген қауымдастық құрастырылымдары, дизайн басқаша айтпаса, оны пайдалануға тырысады. Нұсқа коммутаторды қолдайтын жерде disable-dco оның орнына пайдаланушы кеңістігі жолын таңдайды; ескі қозғалтқыштар мен басқа клиенттерде мұндай директива жоқ, сондықтан нұсқа шартын опцияның жанында ұстаңыз, ол қолданылады деп болжамаңыз.

Тек іске қосуды тексергенде не бұзылады

Меншік туралы келісім бірінші сынақтан өтіп, соңғысында сәтсіз аяқталуы мүмкін, бұл іске қосуды жалғыз нашар тексеріс етеді. Оның орнына екі ауысуды бақылаңыз: жұмсақ қайта жүктеу және толық тоқтатудан кейінгі іске қосу.

systemctl status openvpn-client@lab
ip -details link show dev tun1

Іске қосу — оңай жағдай: бірлік көтеріледі, сілтеме пайда болады және күй шығысы жүктелген профильді атайды. Қосылу — демон құрылғыны ашатын сәт, сондықтан сілтеме тексеруін бірлік белсенді екенін хабарлағаннан кейін іске қосыңыз, одан бұрын емес. Егер күй әлі белсендіріліп жатқанда сілтеме бар болса, сіз әлі ешкім қосылмаған тұрақты құрылғыны көріп тұрсыз, жұмыс істеп тұрған туннельді емес. Әрі қарай жалғастырмас бұрын сілтеме арқылы нақты трафикті өткізіңіз, өйткені пайдалануға жарамды маршрутсыз қосылған интерфейс әлі де сәтсіздік.

kill -SIGHUP $(pidof openvpn)
journalctl -u openvpn-client@lab -n 40
systemctl stop openvpn-client@lab
ip -details link show dev tun1

Жұмсақ қайта жүктеу сессияны пайдалануға жарамды және ресурстарды бүлінбеген күйде қалдыруы керек, дәл осы жұмысты persist-tun жасайды. Толық тоқтату — сыртқы менеджер өзін көрсететін жер: егер сілтеме немесе оның мекенжайлары тоқтатудан аман қалса, оларға басқа біреу ие, және бұл не сіз құжаттаған күй, не жаңа ғана тапқан ақау. Екі байқауды да профильдің жанына жазыңыз, келесі өзгеріс диаграммадан емес, дәлелден басталуы үшін.

Қатысты мақалалар