Файрвол ережесін өзгерту жұмыс істемейді: ережелер реті мен қосылым күйі
Өзгертілген ереже бұрынғы рұқсаттың артында қалып қоюы мүмкін немесе қосылымдарды бақылау оны өткізіп жіберуі мүмкін. Екі тесті бөліңіз, жаңа ағынды пайдаланыңыз және қайту жолын сақтаңыз.
Сіз ережені өзгерттіңіз, ережелер жинағын қайта жүктедіңіз, ал туннель дәл бұрынғыдай әрекет етеді. Бұл нәтиженің екі жиі себебі бар және олар әртүрлі тестілерді қажет етеді. Немесе жаңа ереже пакетті әлдеқашан қабылдаған бұрынғы ережеден кейін тұр, немесе сіз бақылап отырған алмасу — өзгеріс ешқашан қайта бағаламайтын бақыланатын қосылым. Файлдағы ереже ниетті білдіреді; пакеттің тағдырын ол кездесетін белсенді жол шешеді. Төмендегі тексерулерді ретімен орындаңыз және сол кезде қайту жолын ашық ұстаңыз.
Ережелер реті мен қосылым күйі — әртүрлі ақаулар
Реттелген тізбектер жоғарыдан төмен қарай бағаланады, және түпкілікті үкімге жеткен бірінші ереже сол тізбекпен жүруді аяқтайды. Мұқият жазылған құлыптау ережесінің үстіне кең рұқсат қойыңыз, сонда құлыптау ережесі құжаттамаға айналады: ол ережелер жинағында бар, оның санауышы нөлге тең, және ешбір пакет оған ешқашан жетпейді. Сол мәтінді басқа тізбекке қолдану да ештеңені дәлелдемейді. nftables-те базалық тізбектер ілгектерге басымдықтар бойынша тіркеледі, сондықтан бір тізбектегі рұқсат басқа ілгектегі немесе басымдықтағы басқа тізбекке сол пакетті көруге кедергі болмайды.
Қосылымдарды бақылау екінші симптомды тудырады, және сырттан ол дәл солай көрінеді. Ағын күйлер кестесіне түскеннен кейін, тізбектің жоғары жағына жақын established-or-related рұқсаты сіздің жаңа ережеңіз қарастырылмай тұрып қайтады. NAT салыстырулары да сол қасиетке ие: аударма ағын басталғанда бекітілген, сондықтан өзгертілген postrouting ережесі әлдеқашан жүріп жатқан сессияны қайта жазбайды. Сондықтан өзгеріс 09:00-де жаңа қосылым үшін жұмыс істеп тұрғандай көрінеді, ал 08:55-те біреу ашқан сессия үшін ештеңе істемейтіндей көрінеді.
Бұлттық қауіпсіздік топтары iptables-те үйренген адамдарды ұстайтын үшінші модельді қосады. Олардың кіріс ережелері бірінші сәйкестікпен жүру емес, жиын ретінде бағаланатын рұқсаттар тізімі, олар күймен жұмыс істейді, және рұқсат ережесін алып тастау әлдеқашан бақыланып жатқан ағындарды тоқтатпайды. Мұндай семантика жоқ платформада бірінші сәйкестік семантикасын болжау сенімді, бірақ қате қорытындыларға әкеледі.
Белсенді ережелер жинағын оқыңыз, өзгерткен файлды емес
Ядро дәл қазір не қолданып жатқанынан бастаңыз. Ешқашан қолданылмаған сақталған конфигурация таңғаларлық көп өзгермеген мінез-құлықты түсіндіреді, және оны жоққа шығару бір ғана командаға тұрарлық:
nft list ruleset
iptables-saveСодан кейін ережеңізге мүлдем жетіп жатқанын сұраңыз. Пакет санауыштары бұған тікелей жауап береді, және ниет туралы кез келген пайымдаудан жақсырақ жауап береді:
iptables -L FORWARD -v -n --line-numbers
nft list chain inet filter forwardНақты тест әрекетінен кейін нөл пакетті құлыптау ережесі саясат мәселесі емес, бұл орын мәселесі. Оны жылжыту бір жолдық өзгеріс, ал синтаксис — бастапқы ақауды тудырған дәл сол. iptables-те -I басына қояды, ал -A соңына қосады; nftables-те insert ережені тізбектің басына орналастырады, ал add соңына қосады. Ереже жеңуге тиіс болса, кездейсоқ жүктелген тәртіпке сенудің орнына оны анық айтыңыз.
Ағынның бақыланып жатқанын дәлелдеңіз
Ережені кінәлаудан бұрын, трафиктің мүлдем бақыланатын қосылым екенін тексеріңіз. Күйлер кестесін түгел төгудің орнына нақты ағын туралы сұраңыз:
conntrack -L -p tcp --dport 1194
conntrack -E -p tcp --dport 1194Тізім күйді және қалған уақыт шегін көрсетеді, және осылайша орныққан сессияны жаңа әрекеттен ажыратасыз; оқиғалар режимі жаңартуларды болған сайын басып шығарады, бұл клиентті қайта қосқанда пайдалы. Егер ағын сіз бірдеңеге қол тигізбей тұрып орныққан күйде болса, сүзгі ережелерінің ешбір өзгерісі оның тағдырын өзгертпейді. Бұл файрволдағы ақау емес, бұл күймен сүзудің шарты.
Өндірістік шлюзде бүкіл кестені тазарту қысқа жолына қарсы тұрыңыз. conntrack -F қолжетімді, және ол машинадағы барлық бақыланатын ағынды жояды, соның ішінде сіз жұмыс істеп отырған басқару сессиясы мен қабығыңызды тасымалдайтын туннель. Жекелеген жазбаларды шынымен қажет болғанда жоюға болады, бірақ жаңа бастапқы порттан жаңа ағын әдетте тазарақ тәжірибе.
Кейбір жолдар бақыланбайды, және олар керісінше әрекет етеді. raw кестесінде notrack деп белгіленген трафик, қалыпты ілгектерді айналып өтетін кейбір туннельдер және ағынды екі шлюз арасында бөлетін асимметриялық маршруттау — бәрі бір-бірден бағаланатын пакеттерді немесе екі ұшында ешқашан пайда болмайтын күйді тудырады. Санауыштар әр пакетте қозғалса, ретті күмәндандырмас бұрын осындай жолдан күмәнданыңыз.
Қайту жолымен жаңа ағыннан тестілеңіз
Қашықтан қатынасты үзуі мүмкін ережені тестілер алдында қалпына келтіру жолын жасаңыз: провайдер консолі, сериялық консоль, жолақтан тыс басқару мекенжайы немесе ереже сәйкес келе алмайтын екінші интерфейс. Кері қайтару таймері орынды серіктес, өйткені ол сессияңыз тест ортасында өлсе де алдыңғы ережелер жинағын қалпына келтіреді.
Содан кейін күй әлдеқашан жаба алмайтын алмасумен тестілеңіз. Клиентті ажыратып, қайта қосыңыз, жаңа бестік пайда болсын, және сол кезде екі ұшын да бақылаңыз:
tcpdump -ni eth0 'tcp port 1194'
journalctl -k -n 50 --no-pagerТестіні екі бағытта да жүргізіңіз. Жаңа кіріс қол алысуды бөгейтін ереже жауап жолын әлі де рұқсат етуі мүмкін, немесе керісінше, және бір бағытты нәтиже — құлыптаудың жартылай жұмыс істеуінің әдеттегі себебі. Тестіден кейін тұрақты күйді растау үшін тағы бір рет қосылыңыз, және заңды басқару қатынасының сақталғанын тексеріңіз; бір портқа жазылған ереженің ниеттен кеңірек ауқымға сәйкес келу әдеті бар.
Мақсат пен орынды ережемен бірге жазып қойыңыз
Жазылған мақсаты жоқ ереже — ешкім жоюға дәттейтін ереже. Әрбір құлыптау жазбасының қасында ол қорғайтын ағынды, ол өмір сүретін тізбек пен ілгекті, кеңірек рұқсаттарға қатысты ұстауға тиіс орнын және оны дәлелдеген тестіні сақтаңыз. Алты айдан кейін біреу айналадағы ережелер жинағын өзгертсе, сол жазба орынның әдейі таңдалғаны туралы жалғыз ескерту болып қалады.
Өзгерісті жаппас бұрын төрт нәрсені растаңыз: жұмыс істеп тұрған ережелер жинағы файлға сәйкес келеді, жаңа ереженің жаңа әрекеттен кейін нөлге тең емес санауыштары бар, кері бағыт пен басқару қатынасы әлі жұмыс істейді, және сіз өзгерістен бұрынғы сессияның күйін емес, тұрақты күйді дәлелдеу үшін бір рет қайта қосылдыңыз. Осылардың кез келгені тексерілмесе, туннель не істесе де, өзгеріс аяқталған жоқ.