Екі қақпа, бір VPN: OpenVPN неге дұрыс емес жоғары арнаны таңдайды
Туннель жақсы; сокет дұрыс емес WAN арқылы шығып жатыр. Жанды серіктес мекенжайын оқыңыз, хост маршрутын бекітіңіз және алдымен саясат ережелерін тексеріңіз.
Екі жоғары арна, бір туннель, және трафик сіз таңдамаған арна арқылы шығып жатыр. Жеке ішкі желілерге қол жеткізуге болады, журнал сәтті қосылымды хабарлайды, және оны дәл өлшенген арна тасымалдайды. OpenVPN шығысында қақпа туралы ештеңе айтылмайды, өйткені клиент ешқашан оны таңдамаған. Ол қашықтағы мекенжайға сокет ашып, сол мекенжайға қалай жету керегін ядроға қалдырды.
Туннель мекенжайы соңғы нүкте емес
Әр сессияда екі түрлі жол бар. Сыртқы жол шифрланған тасымалды сервердің жария мекенжайына апарады. Ішкі жол сервер туннельге итергеннің барлығын тасымалдайды, және біреуінің маршруттау ережелері екіншісіне әсер етпейді.
Профильдегі remote жазбасы сыртқы межелеуді атайды, сондықтан бекіту керек мекенжай – сол. Бұл хост атауы басқаша шешілгенде немесе профиль бірнеше remote тізімдегенде өзгеретін мән де.
Клиент шын мәнінде қоңырау шалған мекенжайды табыңыз
Конфигурация файлының орнына тірі сокетті оқыңыз. Сокет кестесі процесс шын мәнінде қосылған серіктесті көрсетеді, және ерекшелік сол мәнге сәйкес келуі керек. Профильді сессия басталғаннан кейін де өңдеуге болады, ал сокет – неге қоңырау шалғанының жалғыз дәлелі:
ss -tunp | grep -i openvpn
journalctl -u openvpn-client@work --no-pager | grep -i "Peer Connection Initiated"
Журнал жолы қосылу сәтіндегі серіктес мекенжайы мен портты атайды. Егер ол профильге сәйкес келмесе, клиенттің алдында бірдеңе қосылым басталмай тұрып межелеуді қайта жазып отыр.
Мекенжайлар отбасын да тексеріңіз. Қос стекті профиль IPv6 арқылы қосылуы мүмкін, ал сіздің ерекшелігіңіз тек IPv4-ті қамтиды, сонда трафик сіз жазған ережеден басқа ережеге бағынады. Дәл сол проксиге де қатысты, ол соңғы нүктенің атынан жауап береді. Екі жағдайда да маршрутыңыз ештеңе істемей тұрып жұмыс істейтін туннель пайда болады.
Соңғы нүктені бекітіп, саясат ретін оқыңыз
Хост маршруты кез келген әдепкі маршруттан нақтырақ. Сондықтан серіктес мекенжайы үшін /32 оны қамтитын кестеде жеңеді. Кәдімгі пішін қақпа мен құрылғыны ашық атайды:
ip route add 203.0.113.40/32 via 192.168.10.1 dev eth0
Бұл маршрут тек іздеу сол кестеге жеткенде көмектеседі. Саясат ережелері ретімен бағаланады және бірінші сәйкестік шешеді, сондықтан бәрін екінші кестеге жіберетін ереже main-дегі хост маршрутыңызды айналып өтеді. Маршрутты өкілетті деп есептемес бұрын ережелерді оқыңыз:
ip rule show
ip route get 203.0.113.40
Екінші пәрменді клиент қолданатын сол бастапқы мекенжаймен немесе белгімен сұраңыз, егер саясат оларға тәуелді болса. Ол ядро таңдайтын маршрутты хабарлайды, бұл іздеу туралы дәлел, ал тірі сокеттің сол жолды қолданатынының дәлелі емес.
Соңғы нүкте жылжығанда
Бірнеше мекенжайға шешілетін хост атауы жауап өзгерген бойда тұрақты /32-ні жарамсыз етеді. Бірнеше remote жолы бар профильде де сол мәселе бар, өйткені клиент олардың кез келгеніне қонуы мүмкін. Маршрутты қолмен қосудың орнына клиенттің өзінің өмірлік цикл ілмектерінен жаңартыңыз. up скрипті келісілген серіктесті оқып, хост маршрутын орнатады, ерекшелікті шындыққа сай ұстайды, ал сәйкес down скрипті оны жояды.
Жаңартуды хосттың қалған маршруттау конфигурациясымен бір жерде жазып қойыңыз. Келесі қайта жүктеуге дейін ғана өмір сүретін маршрут – сынақ, түзету емес.
Ішкі саясатты бөлек ұстаңыз
Сыртқы жолды жылжыту жаңа жеке ішкі желіге қол жеткізбейді және сервердің туннельге қандай межелеулерді итеретінін өзгертпейді. Төменгі қабат маршруты сымды таңдайды; итерілген маршруттар туннельге не кіретінін таңдайды. Осы екі шешімді бөлек ұстау бөлінуді болжамды етеді.
Егер мақсат шифрланған тасымалды өлшенген арнадан алыс ұстау болса ғана, әдепкі маршрутқа тиіспеңіз және жалғыз хост ерекшелігін қосыңыз. Бір VPN қосылымын жылжыту үшін бүкіл машинаның әдепкі маршрутын алмастыру хосттағы кез келген басқа қолданбаны бұзады.
Нәтижені екі тәуелсіз бақылаумен растаңыз: сокеттің жергілікті мекенжайы мен құрылғысы, және жеке межелеу шешілетін маршрут. Екеуі де ниетіңізге сай болса, бөліну шынайы. OpenVPN 2.6 нұсқаулығы клиенттің қай мекенжайға қоңырау шалатынын анықтайтын remote және жергілікті байланыстыру опцияларын қамтиды.