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

Сокет не байланған, не байланбаған

Белсенді деп хабарлайтын қызмет әлі де сіз ешқашан ойламаған мекенжайға немесе тасымалға байланып тұруы мүмкін. Сокеттің өзінен сұраңыз: ss -lunp UDP тыңдаушыларын, ал ss -ltnp TCP тізімдейді, және оқуға тұрарлық баған жергілікті мекенжай, күй емес.

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

ss -lunp | grep 1194
ss -ltnp | grep 1194

local директивасы тыңдаушыны бір мекенжайға бекітеді, сондықтан сол хосттағы басқа жерге бағытталған клиент қабылданбайды, ал қызмет сырттан әлі де сау көрінеді. Дана атауы да сіз ешқашан өңдемеген файлды көрсетуі мүмкін, бұл екі профильді қатар жүргізетін хосттарда кездеседі.

Сыртқы пакетті ұстаңыз, туннельді емес

Физикалық интерфейс пен нақты порт бойынша сүзіңіз, өз интерфейсіңізді қойып: tcpdump -ni eth0 udp port 1194. Артынан ештеңе қайтпайтын шығыс пакеттер жоғарыда тұрғанға нұсқайды: провайдер сүзгісі, NAT құрылғысы немесе сіз ойлағаннан өзгеше қашықтағы мекенжай. Екі бағытта да үнсіздік клиент маршруттауына немесе жергілікті желіаралық қалқанға нұсқайды. Туннель ілгерілеуінсіз келген жауаптар басқару арнасына, яғни кілт немесе шифр сәйкессіздігіне нұсқайды, сүзгіге емес.

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

Алдымен есептегіштер, із тек өтірік айтқанда

Есептегіштерден бастаңыз, өйткені олар ештеңе тұрмайды. Не nft list ruleset, не iptables -L -n -v осында маңызды жалғыз сұраққа жауап береді: ереже сәйкес келді ме? Рет нәтижені шешеді, өйткені бірінші сәйкестік жеңеді, сондықтан кейінгі ACCEPT алдында кең DROP сол ACCEPT-ті өлі қалдырады және сондықтан ереже қосу соншалықты сирек бірдеңені түзетеді.

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

Тек есептегіштер екіұшты болып қалғанда ғана журнал шуға тұрарлық, оның өзінде тар бөлік үшін ғана: жылдамдықты шектейтін және журнал жолдарына префикс қосатын iptables ережесі, немесе meta nftrace set 1 алып жүретін nftables ережесі nft monitor trace жұмыс істеп тұрғанда. Із пакетті қабылдаған немесе тастаған шынжыр мен ережені атайды. Кейін екеуін де алып тастаңыз және пайдалы жүктеме журналын тыс ұстаңыз.

Тасымалды да тексеріңіз. TCP-мен шектелген желіаралық қалқан қызметі сол нөмірдегі UDP тыңдаушысы туралы ештеңе айтпайды, сондықтан дұрыс оқылатын ереже де әр пакетті тастай алады.

Маршруттау және қайту жолы

Қабылданған, бірақ әлі де жоғалатын пакеттің межелі жолын тексеру қажет. ip route get бір мекенжай үшін таңдалған маршрутты хабарлайды, ал кері жол сүзгісі негізгі кесте ешқашан таңдамайтын интерфейс арқылы келетін жауапты тастай алады. Симптом дәл желіаралық қалқан тастағандай көрінеді, сондықтан бұл тексеру кезекті NAT ережесінен бұрын келеді.

Шлюзде input шынжырының орнына қайта жіберу мен forward шынжырын тексеріңіз. Содан кейін қашықтағы жақ бастапқы мекенжайға қалай жететінін білетініне көз жеткізіңіз, өйткені жұмыс істейтін шығыс жолдан ештеңе қайтпаса, екі жағдайда да үнсіздік.

Жазба не айтуы керек

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

Екі қысқа жол жазбаны адал ұстайды. Хосттан ешқашан шықпаған пакетті басқа жердегі ереже тастай алмас еді, қашықтағы жақтың конфигурациясы қаншалықты сенімді көрінсе де. Шығып қайтқан пакет сұрақты желі қабатынан жоғары жылжытады, онда желіаралық қалқан есептегіштерінің айтары қалмайды.

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