OpenVPN ичиндеги алдын ала түзүлгөн tun: эки ээлик моделинин салыштыруу
Алдын ала түзүлгөн tun интерфейсин кайра колдонсо болот, бирок анын дарегине жана маршруттарына бир гана компонент ээ болушу керек. ifconfig-noexec кошуудан мурун эки моделди салыштырыңыз.
Бирөө 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 аткарат. Толук токтотуу — тышкы менеджер өзүн көрсөткөн жер: эгер шилтеме же анын даректүүлөрү токтотуудан аман калса, аларга башка бирөө ээ, жана бул же сиз документтештирген абал, же жаңы табылган ката. Эки байкоону тең профилдин жанына жазыңыз, кийинки өзгөртүү диаграммадан эмес, далилден башталсын.