VPN маршрутизаторда ма, әлде портты бағыттау ма: қайсысы жеңеді?
Портты бағыттау маршрутизатордағы VPN тыңдаушысының портын ұрлауы мүмкін. Мақсат иесін тексеріңіз, тек қайшы келетін салыстыруды жойыңыз және әр отбасын бөлек тексеріңіз.
Маршрутизатор VPN-ды өзі аяқтайды, ал ескі бағыттау ережесі әлі де сол UDP портын LAN-дағы машинаға жібереді. Олардың тек біреуі ғана нақты соңғы нүкте бола алады, және ядро олардың арасында шешім қабылдамайды. Мақсат аудармасы жергілікті қызметке жүгінбес бұрын пакетті қайта жазады, сондықтан VPN процесі басқа жерге жіберілген трафикті күтеді. Міндет — порт кімге тиесілі екенін шешу, содан кейін ережелерді келісімге келтіру.
Бір порт, екі талапкер ие
Маршрутизатордың ішінде жұмыс істейтін VPN серверіне өз сокетіне апаратын кіріс рұқсаты қажет. Сол порт үшін мақсат-NAT жазбасы мүлдем басқа жерге апарады: LAN мекенжайы мен бағыттау шешіміне. Бұл әртүрлі журналдар мен әртүрлі ақау режимдері бар бөлек соңғы нүктелер. Әдеттегі белгі — бір мекенжай отбасы жұмыс істейді, екіншісі жұмыс істемейді, себебі қалған жазба бір отбасы үшін жазылған және ешқашан қайта қаралмаған.
Өңдеу алдында талапты жазып қойыңыз: отбасы, сыртқы мекенжай, тасымал, порт және аударылған мақсат.
Аударма жергілікті тексеруден бұрын жүреді
Мақсат NAT ядро жергілікті жеткізу мен бағыттаудың арасында таңдау жасамас бұрын, маршруттау алдындағы кезеңде пакеттің мақсатын өзгертеді. Мақсат LAN хосты болған соң, пакет бағыттау жолына түседі. Маршрутизатордың өз сокеті үшін кіріс ережелері ешқашан қаралмайды, сондықтан клиент күтіп қалғанда VPN журналы бос қалады.
Intended local entry:
WAN UDP 1194 -> router local socket -> input path
Conflicting old entry:
WAN UDP 1194 -> DNAT 192.168.50.10:1194 -> forward path
Осы реттілік — бүкіл механизм, және құрылғы интерфейстері оны өзгертпей қанат белгілерінің артына жасырады. Пакеттің қай жолмен жүретінін әлі де мақсат иесі шешеді.
Егер LAN хосты көзделген соңғы нүкте болса, бағыттау дұрыс және маршрутизатор сол портта да тыңдамауы керек.
Бір салыстыруды қалдырып, екіншісін жойыңыз
Сол порт пен отбасы үшін NAT жазбаларын тізіп, аман қалатынын таңдаңыз:
sudo iptables -t nat -S | grep 1194
sudo ss -lunp | grep :1194
Сол нөмірлі TCP жазбасы UDP ақауы үшін маңызды емес, және оларды бір нысан ретінде қарау қате ережені жоюға әкеледі. Жергілікті сокет жеңуі керек болғанда, қайшы салыстырудың иесі сол бір жазбаны жояды немесе қайта жазады, ал маршрутизатордың өз портына кіріс рұқсаты орнында қалады. Қатысы жоқ бағыттаулар, басқару жолы және ережелер жиынтығының көшірмесі — бәрі де өзгеріске төтеп беруі керек.
Егер VPN бөлек хостта тұрса, бағыттау — дұрыс нысан. Контейнердегі немесе виртуалды машинадағы қызметке қорап маршрутизатор деп аталса да жарияланған порт қажет болуы мүмкін, сондықтан корпустағы жапсырманы емес, сокетті және оның атау кеңістігін қадағалаңыз.
Иесін сырттан растаңыз
Әр отбасын бөлек тексеріңіз, өйткені маршрутизаторда аяқталатын IPv6 қосылымы ескі ереже бағыттайтын IPv4 қосылымы туралы ештеңе айтпайды. Қай соңғы нүкте жауап бергенін көру үшін қабылдаушы қызметтің журналын оқыңыз, ал клиенттің сәттілік хабарламасын әлсіз дәлел деп санаңыз. Мәнді тест үшін жаңа ағын қажет. Сыртқы хосттан nc -zvu 203.0.113.7 1194 арқылы зонд жіберіңіз және жеңімпаздың журналын journalctl -u openvpn@server -n 20 арқылы оқыңыз. Маршрутизатор тыңдаушысы қосылымды өзі тіркейді, ал LAN хосты оны өз қызметінде тіркейді.
Қосылымдарды бақылау бар ағындарды бастапқы салыстыруларында ұстайды, сондықтан орнатылған сессия сіз жаңа ғана түзеткен ережеден ұзағырақ өмір сүруі мүмкін.
Көзделген соңғы нүкте әдеттегі сәйкестендіру тексерулерімен жауап берген соң, туннель артындағы жеке ресурсты тексеріңіз. Сыртқы тыңдаушыға жету — тек бірінші қадам; ішкі маршруттау мен қолданба авторизациясы бөлек нәтижелер.