Pakotne uzstādījās tīri, noteikumi tika pārbaudīti, un pēc nākamās pārstartēšanas vārteja bija plaši atvērta. Transakcijā nekas neizgāzās; kļūda bija pieņēmumā par to, kas paliks. Ugunsmūra rīku uzstādīšana, lēmums par to, kuri noteikumi jāizdzīvo, un to atjaunošana īstajā brīdī ir trīs atsevišķi darbi.

Ko simptoms patiesībā pasaka

Noteikumu kopai, kas pazūd pārstartēšanas laikā, ir viens no trim saimniekiem: nekas to nesaglabāja, kaut kas cits to aizstāja, vai tas tika atjaunots pirms tam, kad pastāvēja tas, no kā tas ir atkarīgs. Pirmie divi ir redzami konfigurācijā; trešais parādās tikai secībā. Tāpēc pārstartēšana var izskatīties kā datu zudums, lai gan patiesībā tā ir secības problēma.

Sāciet ar to, kas bija taisnība pirms pārstartēšanas: kurš pakalpojums turēja noteikumus, kuru failu vai datubāzi tas lasīja startēšanas laikā un vai tajā avotā kādreiz tika rakstīts. Aktīva noteikumu kopa, ko neviens nav saglabājis, ir pamatots skaidrojums un visizplatītākais.

Nesāciet ar pakotnes pārinstalēšanu.

Izlasiet noturības rīku pirms tā lietošanas

Debian rīki noturību uzskata par spraudņa problēmu: katrs spraudnis zina, kā rakstīt savus noteikumus, un viens ietvars tos izsauc. Tā saglabāšanas darbība glabā visu, kas tajā brīdī ir ielādēts, un startēšanas darbība ielādē šo momentuzņēmumu atpakaļ. Neviena darbība nepārskata, ko tā glabā.

Tas ir momentuzņēmums, nevis pārskats. Atlikuša atļauja no atkļūdošanas sesijas, nepabeigts eksperiments vai cita palīglīdzekļa ievietots pieļāvīgs noteikums visi kļūst pastāvīgi līdzās politikai, ko gribējāt paturēt. Stāvokļa saglabāšana un stāvokļa apstiprināšana ir dažādas darbības, un tikai vienai no tām vajadzīga spriešana. Vispirms izlasiet ielādēto kopu, tad izlemiet, kuras rindas ir pelnījušas izdzīvot.

Saglabājiet apzināti, pēc tam, kad esat izlasījis, kas ir ielādēts.

Izlemiet, kam jāizdzīvo

Daži noteikumi pieder saskarnes dzīves ciklam un tiem jāpazūd kopā ar to. Citiem jāpārdzīvo tunelis, un skaidrākais piemērs ir ierobežojums, kas aizliedz klientu trafikam atkrist uz fizisko saskarni, kad tunelis krīt. Šīm divām kategorijām vajadzīgi dažādi atjaunošanas trigeri, nevis viens kopīgs momentuzņēmums.

Pierakstiet paredzēto rezultātu trim brīžiem: startēšana, VPN aktivizēšana un tuneļa zudums. Pēc tam pārbaudiet, vai izvēlētais rīks spēj izteikt katru no tiem. Noturības pakotne, kas no jauna ielādē statisku momentuzņēmumu, tiek galā ar pirmo un varbūt ne ar vienu no pārējiem, jo momentuzņēmums nezina, kad mainījās tuneļa stāvoklis. Ja tā tos nevar izteikt, šī nepilnība pieder citam komponentam.

Atbildi nosaka politika, nevis pakotne.

Pārbaudiet atjaunošanas secību

Faila atjaunošana nav tas pats, kas rezultāta piederēšana. Cits pārvaldnieks var aizstāt noteikumus, agrāka atļauja var tos aizēnot, vai klienti var sākt sūtīt pirms ierobežojuma stāšanās spēkā. Pārskatiet startēšanas un atkārtotas savienošanas uzvedību, ne tikai saglabātā faila esamību.

systemctl status netfilter-persistent
iptables -S

Nepieņemiet, ka noturības pakalpojuma apturēšana ir nekaitīga, jo pakotne dokumentē nosacītu iztīrīšanu, kad tas apstājas. Noskaidrojiet pakalpojuma faktisko konfigurāciju pirms apturēšanas vai pārstartēšanas izmantošanas kā eksperimenta vārtejā, kuru pārvaldāt attālināti. Konsoles sesija un dokumentēta atritināšana ir minimums pirms šī testa.

Secība ir darbojošās sistēmas īpašība, nevis faila diskā.

Pieņemiet trīs atsevišķus rezultātus

Reģistrējiet pakotnes uzstādīšanu, ielādēto noteikumu kopu un ieviesto politiku kā atsevišķus faktus. Pakotnes nosaukums atbalsta pavedienā atbild tikai uz pirmo, un tieši tas reti ir svarīgs.

nft list ruleset

Pēc tam pārbaudiet atļautu darbību un nepieciešamu atteikumu.

Ja atteikums saglabājas pēc pārstartēšanas un pēc tuneļa krišanas, politika izdzīvo. Ja tas saglabājas tikai vienā no šiem stāvokļiem, jūs esat atradis secības problēmu, nevis to izlabojis.

Saistītie raksti