OpenVPN се поврзува, но ништо не тече: пронајдете го слојот каде паѓа пакетот
Поврзан тунел без сообраќај има најмалку пет причини. Докажете го слушателот, фатете го надворешниот пакет, потоа оставете ги бројачите или трагата да го именуваат правилото.
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 одговара на единственото прашање што е важно овде: дали правилото се совпадна? Редоследот го одредува исходот, бидејќи првото совпаѓање победува, затоа широк DROP пред подоцнежен ACCEPT го остава тој ACCEPT мртов и затоа додавањето правило толку ретко поправа нешто.
Сопственоста исто така ги сопнува луѓето. Јадрото локално создадените пакети ги припишува на процесот што го отворил сокетот, а OpenVPN обично работи како root, па правило врзано за обичен кориснички ID никогаш не го гледа сообраќајот на самиот тунел. Проверете го UID на сопственикот пред да одлучите дека правилото е погрешно.
Само кога бројачите остануваат двосмислени, дневникот вреди вревата, и тоа само за тесен рез: iptables правило што го ограничува протокот и им додава префикс на своите линии, или nftables правило со meta nftrace set 1 додека работи nft monitor trace. Трагата ја именува веригата и правилото што го прифатило или отфрлило пакетот. Потоа отстранете ги двете и држете го логирањето на товарот надвор.
Проверете го и транспортот. Услуга на огнен ѕид ограничена на TCP не кажува ништо за UDP слушател на тој број, па правилно прочитано правило сепак може да го отфрли секој пакет.
Рутирање и патот назад
Прифатен пакет што сепак исчезнува бара испитување на патеката до одредиштето. ip route get известува за рутата избрана за една адреса, а филтрирањето на обратната патека може да го отфрли одговорот што пристигнува преку интерфејс што главната табела никогаш не би го избрала. Симптомот изгледа точно како отфрлање од огнен ѕид, затоа оваа проверка доаѓа пред уште едно NAT правило.
На порта, проверете го препраќањето и forward веригата наместо input веригата. Потоа потврдете дека далечната страна знае како да ја достигне изворната адреса, бидејќи работна излезна патека без ништо што се враќа е тишина во двата случаи.
Што треба да каже записот
За секоја промена, запишете ја тестираната фаза, доказот што сте го прочитале и вредноста на бројачот од двете негови страни. Токму тој запис го прави "сега работи" преживливо на следниот преглед.
Две кратенки го држат записот искрен. Пакет што никогаш не го напуштил домаќинот не можел да биде отфрлен од правило на друго место, колку и уверлива да изгледа конфигурацијата на далечната страна. Пакет што излегол и се вратил го поместува прашањето над мрежниот слој, каде што бројачите на огнениот ѕид веќе немаат што да ви кажат.