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

Следете еден пакет низ серверот

Во рутиран тунел, демонот го предава дешифрираниот пакет на секој клиент на уредот за тунел. Оттаму домаќинот го рутира, се извршува куката за препраќање, и правило што се совпаѓа со уредот за тунел може да го брои или да го отфрли сообраќајот. Тоа е патеката што ја претпоставуваат повеќето примери на огнен ѕид.

Forwarding pathWho decidesWhat the host firewall sees
Kernel routing between clientsHost routing table and forward rulesEvery inner packet, with interface names
Peer forwarding inside the server processThe VPN daemon's own peer tableOnly the outer encrypted transport

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

Тестот со бројач што одлучува која патека се извршила

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

sudo nft list ruleset
sudo nft add rule inet filter forward iifname "tun0" oifname "tun0" counter accept
sudo nft list chain inet filter forward

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

Два детали спречуваат погрешно читање. Името на врската запишано во ознака на синџир само по себе не филтрира ништо, бидејќи совпаѓањето се случува на полињата за врска внатре во правилата. А мостен дизајн на слој 2 се однесува пак поинаку: таму клиентите делат еден домен за емитување, па откривањето на рамноправни јазли е очекувано, а не дефект во рутирањето.

Прекинувачот не е список за пристап

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

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

Одделни серверски процеси со свои базени на адреси и порти се изводливиот средин пат. Секој процес носи точно една одлука за пристап, па две групи можат да имаат различни правила без матрица на политики. Домаќинот може да рутира меѓу базените кога тоа е намерата, и тогаш огнениот ѕид ги гледа тие текови бидејќи тие го преминуваат домаќинот. Цената се дополнителни порти, дополнителни сертификати и профил за секоја група.

Избор на точката за препраќање

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

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

Што и да изберете, запишете го до правилата на огнениот ѕид. Множество правила што изгледа како да дозволува сообраќај меѓу јазлите, додека демонот сепак одлучува, го заведува следниот човек што ќе дебагира неуспешен пренос. Секој што ги чита само правилата ќе претпостави дека јадрото е портата.

Што да проверите пред да ги смените правилата

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

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

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