Одржете ја политиката на nftables стабилна додека доаѓа интерфејсот на VPN
Правилата на nftables засновани на име преживуваат тунел што се појавува и исчезнува, но рутите и постоечките текови не го следат автоматски. Одделете ги сопствениците.
Тунелите се потрошни; политиката не треба да биде таква. На Linux порта, правило на nftables што го совпаѓа интерфејсот на тунелот по име може да се вчита еднаш и продолжува да се применува секој пат кога тој интерфејс ќе се појави. Интерфејсот сепак има животен циклус: се создава, исчезнува, а рутите и преводите околу него го следат своето распоред. Токму одделувањето на тие сопственици го одржува пристапот стабилен при повторно поврзување.
Совпаѓањето по име го надживува интерфејсот
nftables нуди нумерички совпаѓања на индексот на интерфејсот и динамичните совпаѓања по име iifname и oifname. Правилата со тие имиња се вчитуваат чисто дури и кога уредот на тунелот сѐ уште не е создаден, што е токму она што му е потребно на множеството правила при подигање. Совпаѓањето престанува ако интерфејсот се преименува и продолжува кога нов интерфејс го презема тоа име. Нумеричкиот индекс ја нема таа особина, затоа именската форма е вообичаен избор за тунел.
Името е клуч за совпаѓање, не доказ за тоа кој е на другата страна. Автентикацијата на партнерот останува задача на VPN.
Прочитајте го синџирот пред да додадете правила
Погледнете што содржи множеството правила сега и каде би стоело ново правило, бидејќи редоследот го одлучува исходот.
nft list ruleset
nft -c -f /etc/nftables.confСписокот ги прикажува синџирите, правилата и рачките, а режимот за проверка валидира кандидат-датотека без да ја вчита. Дозволата само за тунелот, поставена по претходно прифаќање за истиот тек, не менува ништо, бидејќи победува првото совпаѓачко правило. Затоа доцно правило може да изгледа точно и да нема никаков ефект. Прочитајте го синџирот по ред и потврдете дека забраната за сообраќај од клиент кон горната врска сѐ уште претходи на сѐ пошироко.
Рутите, преводот и тековите имаат други сопственици
Присуството на интерфејс не создава рути и не го автентицира партнерот. Тие му припаѓаат на менаџерот на VPN, а преводот има трет животен циклус.
conntrack -L -s 10.20.0.0/24 | head
ip route show dev vpn0Списокот на conntrack ги прикажува постоечките текови со нивните оригинални и преведени вредности, а списокот на рути покажува што инсталирал менаџерот за интерфејсот. Правилата на NAT воспоставуваат состојба за следење на врската при првиот пакет, па воспоставениот тек го задржува својот превод и по промената на правилото. Затоа правило што се ажурира и тек што го користи новиот пат се два различни искази. Одлучете кои сесии мора да се поврзат повторно и оставете ги неповрзаните текови на мир.
Прифатете ладен старт, загуба и обновување
Тестирајте ја портата со тунел отсутен при подигање, потоа присутен, а потоа по прекин и враќање. Потврдете дека забранетото препраќање останува забрането додека тунелот недостасува, дека нов дозволен тек работи откако партнерот е автентициран и дека обновувањето не бара бришење на неповрзана состојба. Не бришете го целиот синџир POSTROUTING или секој запис на conntrack како дејство за запирање на еден профил, бидејќи други служби ги делат. Запишете која компонента ги променила интерфејсот, рутата и политиката, а не само дека почетната кука излезе со нула.
Политиката што преживува повторно поврзување е онаа чии сопственици се именувани и чии правила се тестирани со тунелот и спуштен и подигнат. Куката што известува за успех докажува само дека куката се извршила.