Две независни одлуки се случуваат со истиот пакет и секоја од нив може тивко да го заврши барањето. Пребарувањето на рутата избира интерфејс и следен скок, потоа пакетниот филтер одлучува дали таа комбинација е дозволена. Истекувањето на времето ви кажува дека едно од двете одби, а не кое. Поминете ги фазите по ред и поправката обично престанува да биде претпоставка.

Две одлуки, еден пакет, два сопственици

Пребарувањето на рутата прво се советува со правилата за политика, потоа со табелата кон која тие упатуваат и го избира најспецифичниот префикс што одговара на одредиштето. Клиентот што инсталирал рута за тунел ја поседува таа одлука и ништо во правилото на огноѕидот не може да ја замени. Кога пребарувањето покажува некаде неочекувано, секоја следна фаза работи со погрешен пакет.

Филтрирањето е одделно. На Linux домаќин куките на netfilter го делат сообраќајот според тоа за кого е пакетот: излезот ја напушта машината, влезот завршува на неа, препраќањето поминува низ неа. На портата што прима VPN клиенти и ги насочува кон LAN ѝ треба патеката за препраќање, и тоа е токму синџирот што повеќето стандардни конфигурации го оставаат празен.

Изборот на извор припаѓа на истата одлука и токму таму се кријат повеќето неусогласености. Јадрото избира изворна адреса од излезниот интерфејс освен ако рутата не наведе една, па правилото за филтер напишано за LAN подмрежата никогаш не одговара на пакет што излегува со адресата на тунелот.

Прочитајте што всушност избра пребарувањето

Испечатете ја одлуката наместо да ја изведувате. Командата подолу ја решава рутата што јадрото би ја користело за тоа одредиште, вклучувајќи го интерфејсот и изворот што би го избрало:

ip route get 10.8.0.5
ip route get 10.8.0.5 from 192.0.2.44
ip rule show
ip route show table all | sed -n '1,40p'

VPN клиентите често инсталираат правила за политика на приоритети под главната табела, па чистата главна табела сама по себе не докажува ништо. Споредете ги приоритетите на правилата со табелите што ги избираат и проверете дали рутата за тунелот преживува повторно поврзување наместо да се додаде рачно еднаш.

IPsec заснован на политика додава трета фаза на совпаѓање што рутирањето не ја покрива, како што опишуваат белешките на strongSwan за препраќање за тунелски и транспортни поставки. Безбедносната политика го избира сообраќајот по префикс и протокол, додека рутата само одлучува каде би отишол незаштитен пакет. Подмрежа што се рутира но нема соодветен селектор или останува незаштитена или се отфрла, зависно од конфигурацијата, и ниту еден од резултатите не изгледа како проблем со огноѕидот. Испечатете ја политиката и споредете ги нејзините селектори со префиксите што очекувавте тунелот да ги носи.

Филтрирањето се применува на кука, а не на рута

Правилото што го дозволува слушателот на VPN е правило за сообраќај упатен до самата порта. Тоа не кажува ништо за клиентите што стигнуваат до домаќините зад таа порта, бидејќи препратениот сообраќај поминува низ друг синџир. Читањето на множеството правила како една рамна листа е вообичаената причина зошто правило што изгледа точно никогаш не се активира.

Бројачите брзо го решаваат прашањето. Правило со нулта бројка на пакети никогаш не било достигнато, што укажува на погрешен синџир, погрешен интерфејс или претходно отфрлање. Правило со растечка бројка под политика на отфрлање е границата што ја баравте, и пакетот се отфрла наместо погрешно да се рутира.

Испратете проба по патеката што ја користи клиентот

Тестовите што се извршуваат на самата порта поминуваат низ излез и влез, со сопствената изворна адреса на портата. Тоа е поинаква патека од препратеното барање на клиентот, затоа успешен локален curl докажува помалку отколку што изгледа. Проверете од машината што не успева или експлицитно прикачете го интерфејсот и изворот.

nc -vz -w 3 10.8.0.5 443
ping -c 3 -W 1 10.8.0.5
tcpdump -ni any host 10.8.0.5 and port 443
iptables -vnL FORWARD --line-numbers
nft list ruleset | sed -n '1,60p'

Снимањето на двата краја ги одделува останатите случаи. SYN што го напушта клиентот и никогаш не пристигнува значи рутирање, шифрирање или список за пристап нагоре. SYN што пристигнува и не добива одговор значи услугата или нејзиниот филтер на домаќинот, и тунелот никогаш не бил проблемот.

Повратниот сообраќај заслужува свој поглед. Асиметричното рутирање плус филтрирањето на обратната патека ги отфрла одговорите што пристигнуваат на погрешниот интерфејс, што се покажува како еднонасочна врска, а не како блокиран порт. Проверете ја вредноста на sysctl пред да го обвините огноѕидот за симптом што тој не го предизвикал.

Евидентирањето работи како второ мислење, не како прв чекор. Привремена изјава за евидентирање на синџирот за препраќање ги именува интерфејсот и адресите што го погодиле, и лесно се отстранува подоцна. Оставете го постојано и сте изградиле проблем со обемот на евиденција наместо одговор.

Ставете ја секоја промена таму каде што преживува повторно поврзување

Рутата додадена со ip route add живее додека интерфејсот не падне. Зачувајте ја во профилот за врска: NetworkManager прифаќа дополнителни рути на врската, а netplan ги чува меѓу подигањата. Истото правило важи за исклучокот на огноѕидот од страната на клиентот, кој исчезнува по следното повторно вчитување.

Правилата од страната на серверот припаѓаат на конфигурациската датотека што услугата ја вчитува при стартување, а не на интерактивна сесија што завршува кога ќе ја затворите. Напишете го правилото, вчитајте повторно и потврдете дека бројачот се поместил, бидејќи повторното вчитување што ја одбило синтаксата тивко го остава стариот набор правила на место.

Потоа повторете го оригиналното барање на апликацијата од почеток до крај и запишете кој слој се променил. Поправката на рутата што барала и промена на филтерот сепак ќе не успее, и вториот неуспех се чита многу полесно кога знаете дека првиот го нема. Забележете го датумот и верзијата на клиентот до резултатот, бидејќи стандардните поставки за рутирање и филтрирање се менуваат меѓу изданијата. Чувајте ја таа забелешка на тикетот за следниот човек да почне таму каде што запревте наместо да ја повторува двоефазната прошетка.

Поврзани статии