Пакет усталяваўся чыста, правілы былі пратэставаныя, і пасля наступнай перазагрузкі шлюз быў цалкам адкрыты. Нішто ў транзакцыі не зламалася; памылка была ў тым, што лічылася незменным. Усталяванне сродкаў міжсеткавага экрана, рашэнне, якія правілы павінны выжыць, і іх аднаўленне ў патрэбны момант тры асобныя задачы.

Што насамрэч кажа сімптом

Набор правілаў, які знікае пасля перазагрузкі, мае аднаго з трох уладальнікаў: нішто яго не захавала, нешта іншае яго замяніла, або ён быў адноўлены раней, чым з’явілася тое, ад чаго ён залежыць. Першыя два бачныя ў канфігурацыі; трэці праяўляецца толькі ў парадку. Таму перазагрузка можа выглядаць як страта даных, калі насамрэч гэта праблема паслядоўнасці.

Пачніце з запісу таго, што было праўдай да перазагрузкі: якая служба трымала правілы, які файл або базу яна чытала пры запуску і ці гэтая крыніца калі-небудзь запісвалася. Жывы набор правілаў, які ніхто не захаваў, слушнае тлумачэнне і найбольш частае.

Не пачынайце з пераўсталявання пакета.

Прачытайце сродак захавання перад выкарыстаннем

Сродкі Дэбіяна разглядаюць захаванне як праблему плагінаў: кожны плагін ведае, як запісаць свае правілы, а адзін абгорткавы скрыпт выклікае іх. Яго дзеянне захавання запісвае ўсё, што загружана ў гэты момант, а дзеянне запуску загружае гэты здымак назад. Нішто ў абодвух дзеяннях не правярае, што яно захоўвае.

Гэта здымак, а не праверка. Пакінуты дазвол з сеансу адладкі, няскончаны эксперымент або дазваляльнае правіла, устаўленае іншым памочнікам, усё гэта становіцца пастаянным разам з палітыкай, якую вы хацелі зберагчы. Захаванне стану і ўхваленне стану розныя дзеянні, і толькі адно з іх патрабуе меркавання. Спачатку прачытайце загружаны набор, потым вырашыце, якія радкі вартыя таго, каб выжыць.

Захоўвайце свядома, пасля чытання таго, што загружана.

Вызначце, што павінна выжыць

Некаторыя правілы належаць да жыццёвага цыкла інтэрфейса і павінны знікаць разам з ім. Іншыя мусяць перажыць тунель, і найяснейшы прыклад абмежаванне, якое забараняе кліенцкаму трафіку адкочвацца на фізічны інтэрфейс, калі тунель падае. Гэтыя дзве катэгорыі патрабуюць розных трыгераў аднаўлення, а не аднаго агульнага здымка.

Запішыце жаданы вынік для трох момантаў: загрузка, актывацыя VPN і страта тунеля. Затым праверце, ці можа абраны вамі сродак выказаць кожны з іх. Пакет захавання, які перазагружае статычны здымак, спраўляецца з першым і можа не спраўляцца з астатнімі, бо здымак не ведае, калі змяніўся стан тунеля. Калі ён не можа іх выказаць, прагал належыць іншаму кампаненту.

Адказ вызначае палітыка, а не пакет.

Праверце парадак аднаўлення

Аднаўленне файла не тое самае, што валоданне вынікам. Іншы кіраўнік можа замяніць правілы, ранейшы дазвол можа іх зацяніць, або кліенты могуць пачаць адпраўляць да таго, як абмежаванне ўступіць. Праверце паводзіны пры запуску і перападключэнні, а не толькі наяўнасць захаванага файла.

systemctl status netfilter-persistent
iptables -S

Не лічыце, што спыненне службы захавання бясшкоднае, бо пакет дакументуе ўмову ачысткі пры спыненні. Усталюйце фактычную канфігурацыю службы, перш чым выкарыстоўваць спыненне або перазапуск як эксперымент на шлюзе, якім кіруеце аддалена. Сеанс кансолі і дакументаванае адкатванне мінімум перад гэтым тэстам.

Парадак уласцівасць працуючай сістэмы, а не файла на дыску.

Прыміце тры асобныя вынікі

Запішыце ўсталяванне пакета, загружаны набор правілаў і ўжываную палітыку як асобныя факты. Назва пакета ў тэме падтрымкі адказвае толькі на першае, і менавіта яно рэдка мае значэнне.

nft list ruleset

Затым праверце дазволеную аперацыю і патрабаваную адмову.

Калі адмова трымаецца пасля перазагрузкі і пасля страты тунеля, палітыка выжывае. Калі яна трымаецца толькі ў адным з гэтых станаў, вы знайшлі праблему парадку, а не выправілі яе.

Падобныя артыкулы