И двете защитни стени могат да филтрират препратен VPN трафик и прикачат правилата към пътя на пакета по различен начин. В iptables има вградени вериги в таблица, затова FORWARD съществува като именувана точка на кука. nftables разделя името на веригата от нейния тип, кука и приоритет, което означава, че обикновена верига с име FORWARD не филтрира абсолютно нищо. Сравнението на двата модела обяснява защо запис, който изглежда правилен в един инструмент, няма ефект в другия.

Веригата е контейнер. Дали ядрото се обръща към нея зависи от реализацията и от това как наборът от правила я прикача.

Два модела, две различни прикачвания

В iptables таблицата filter предоставя три вградени вериги — INPUT, FORWARD и OUTPUT, а -N създава дефинирана от потребителя верига, която действа само когато към нея се прескочи от някоя от тях. Ръководството на nftables вместо това дефинира базови вериги, които обявяват своя тип, кука и приоритет, и обикновени вериги, които не го правят. Базовата верига може да носи каквото име пожелаете, а обикновена верига с име FORWARD не придобива никакви свойства от етикета си. Това е цялата разлика и тя е невидима в урок, който показва само текст на правила.

Бекендите за съвместимост добавят втора причина да не се правят изводи за поведението от името на команда. Документацията на iptables отбелязва операции, които се различават под iptables-nft, затова третирайте родния nftables, iptables-nft и стария набор от правила като три системи, а не като три изписвания на една.

Четете грешката в реалния ѝ контекст

Липсваща таблица, отказ на достъп, недостъпна възможност на ядрото и липсваща именувана верига са четири различни находки и само една е за веригата. Запишете версията на инструмента, заявените семейство адреси и таблица, мрежовото пространство от имена и първата точна грешка. След това проверете кой компонент притежава набора от правила: услуга за защитна стена или шлюз, управляван от продукт, може да генерира свои вериги и подредба. Добавянето на родна верига до тях оставя управляваната политика непокътната и прави инвентара по-объркващ.

Пространството от имена на контейнер може да съдържа различен набор от правила от хоста, затова команда, изпълнена в грешен контекст, не може да покаже коя верига е видяла препратен пакет. Повишаването на привилегии, защото очаквана верига не е била видима, не е диагностика.

Броячите доказват достижимост, а не присъда

Броячите на правила ви казват, че дадено правило е достигнато. Те не ви казват, че следващо правило е разрешило операцията, и не доказват, че всеки алтернативен път е бил отказан. Четете ги по време на един безвреден разрешен поток, заедно с подредбата на правилата и прикачването на веригата, и ги третирайте като едно наблюдение, а не като присъда. Ненулев брояч на правило за отхвърляне означава, че трафикът го е ударил; това не казва нищо за трафик, който не го е ударил.

IP препращането в ядрото е напълно отделна настройка. Съществуването на верига не включва препращане, а липсата на познат етикет не означава, че препращането е спряло.

Опишете потока, който очаквате да защитите

Запишете една клиентска заявка след декапсулация: нейния източник, дестинация, семейство адреси и дали завършва на шлюза, или преминава през него. Входът за локална услуга и препратеният трафик се наблюдават в различни точки, затова им трябват различни правила и различни тестове. За VPN през мост проверете и пътя през моста, защото верига на IP ниво не контролира автоматично Ethernet кадри.

Запазете независим достъп за възстановяване, преди да променяте отдалечен шлюз. След това потвърдете желания поток и необходимите откази в същия набор от правила. Нова празна верига с познато име не е ремонт.

Сравнението завършва с един въпрос: коя кука ядрото действително извиква за този пакет? Отговорете на него и името на веригата престава да има значение.

Подобни статии