Тестирање промени на огнениот ѕид без да се заклучите надвор
Подредете ги патиштата за враќање пред правилото да влезе, потоа проверете со тек што новата политика мора да го оцени, а не со сесијата што преживеа.
Правилото влегува, терминалот што веќе го имате продолжува да одговара, а следното најавување се одбива. Токму оваа празнина е целата тешкотија на тестирање промена на огнениот ѕид преку врската што ја менувате. Следењето врски одлучува еднаш и потоа престанува да гледа, па воспоставениот тек е единствената проверка што не може да ја види новата политика. Понатаму се споредуваат трите патишта назад, а потоа се одредува редоследот по кој да се менуваат и проверуваат правилата.
Зошто преживеаната сесија е најслаб доказ
Огнен ѕид со состојба го оценува првиот пакет од текот и го задржува тој суд додека записот е жив. Правилата додадени подоцна важат за текови што започнуваат подоцна, затоа прозорецот во кој пишувате останува употреблив додека сите други се одбиваат. Она што го учите од него ја опишува политиката што важеше пред неколку минути. Дури и снимката направена на тој тек покажува одлука што машината веќе ја донела.
Третирајте ја работната сесија како излез во итна ситуација, а не како мерење. Секоја проверка што вреди мора да отвори нов тек од извор што новото правило ќе го оцени, а првата проверка треба да биде онаа чиј неуспех најмногу боли. Кога таа сесија е вашиот единствен пат внатре, промената сѐ уште не е подготвена.
Три патишта назад, подредени според тоа од што зависи секој
Подредете ги опциите според тоа колку зависат од уредот што се тестира, бидејќи токму тој редослед го посегнувате кога правилото ќе се покаже погрешно. Конзола што никогаш не поминува низ огнениот ѕид е независна, вежбаното враќање е речиси такво, а веќе отворената сесија не е.
| Way back in | What it survives | Where it fails |
|---|---|---|
| out-of-band or hypervisor console | a policy that blocks new logins | needs separate access you have already tried |
| rollback rehearsed on that platform | a rule that breaks remote access | fails when nobody ever ran it |
| the session that is already open | the change itself | cannot show whether new flows work |
Пред промената најавете се преку конзолата и докажете дека работи, бидејќи вонпојасниот пат што никогаш не сте го користеле е шема, а не резерва. Враќањето го заслужува своето место само по вежба на таа платформа, со тој сет правила, следејќи ја одобрената постапка наместо импровизација на жива машина. Запишете ги чекорите и нека некој друг ви ги прочита. Ако редоследот бара вашата меморија за да заврши, тоа не е план.
Една промена, потоа врска што мора да се оцени
Зачувајте го работниот сет правила и датотеката што го поседува, потоа направете едно тесно уредување. Една промена по тест го задржува резултатот припишлив; две одеднаш ви оставаат работна машина и никаква претстава кое уредување ја заврши работата. Каде платформата може да анализира конфигурација без да ја вчита, направете го тоа прво, за да падне печатна грешка додека ништо не е во ризик.
nft list ruleset > /root/ruleset.before
nft -c -f /etc/nftables.conf
Потоа започнете нова сесија од извор на кој ќе одговара изменетото правило, додека конзолата е сѐ уште поврзана. Повторете еднаш ако успее, бидејќи првиот обид може да слета на запис што табелата веќе го имала. Ако не успее, сѐ уште имате пат внатре и одлука што може да се врати, а тоа е најевтиниот лош исход што е достапен.
Бројачите, состојбата и датотеката одговараат на различни прашања
Секое од трите набљудувања може да изгледа уверливо само по себе и да ве заведе за другите две. Бројачите покажуваат дали текот што штотуку го создадовте стигнал до правилото што го уредивте. Табелата со состојби покажува кои текови машината смета дека се веќе воспоставени, и така скршено правило сѐ уште може да изгледа здраво. Зачуваната датотека покажува што ќе прави уредот по следното вчитување, а тоа може да не е она што го прави работниот сет правила сега.
ss -tn state established
Читајте ги бројачите како делта, а не како вкупно, бидејќи единствениот број што е важен е оној што го помести вашиот тестен тек. Правило чиј бројач никогаш не се зголемува не се совпаѓа, колку и правилно да изгледа на хартија. Потврдете го и случајот на одбивање: политика што никогаш ништо не одбила никогаш не докажала дека го одбива тоа што сте сакале да го блокирате. Поминете низ еден интерфејс во секое семејство што распоредувањето навистина го носи, бидејќи правилото v4 не кажува ништо за текот v6.
Вратете од зачуваниот сет правила, потоа усогласете ја датотеката
Кога промената не успее, вчитајте го зачуваниот сет правила наместо да додавате дозволувачки правила додека најавувањата повторно не проработат. Секое дополнително дозволување го смирува симптомот и остава дупка што го надживува инцидентот и сеќавањето на него. Вратете, поврзете се повторно, потоа чувајте го неуспешното споредување покрај записот за тоа што сте се обиделе.
По успешна промена, датотеката на дискот нека го опишува работниот сет правила, и потврдете дека вчитувањето го репродуцира. Работен сет правила што се оддалечил од сопствената конфигурациска датотека е стапица поставена за следното подигање.