Перевірка змін міжмережевого екрана без втрати доступу
Упорядкуйте шляхи відновлення за пріоритетом до застосування правила, а потім перевіряйте потоком, який має оцінити нова політика, а не сеансом, що вижив.
Правило застосовується, уже відкритий термінал продовжує відповідати, а наступний вхід відхиляється. Саме цей розрив і є вся складність перевірки зміни міжмережевого екрана через те з'єднання, яке ви змінюєте. Відстеження з'єднань вирішує один раз і далі перестає дивитися, тому усталений потік — єдина перевірка, яка не може побачити нову політику. Далі порівнюються три шляхи назад, а потім визначається порядок, у якому змінювати й перевіряти правила.
Чому сеанс, що вижив, — найслабший доказ
Міжмережевий екран зі збереженням стану оцінює перший пакет потоку й тримає цей вердикт, доки запис живий. Правила, додані пізніше, діють на потоки, що починаються пізніше, тому вікно, у якому ви друкуєте, залишається робочим, а всіх інших відхиляють. Те, що ви з нього дізнаєтеся, описує політику, чинну кілька хвилин тому. Навіть запис, знятий на цьому потоці, показує рішення, яке машина вже ухвалила.
Ставтеся до робочого сеансу як до аварійного виходу, а не як до вимірювання. Кожна осмислена перевірка має відкрити новий потік із джерела, яке оцінить нове правило, і першою має бути та перевірка, провал якої болітиме найбільше. Коли цей сеанс — єдиний шлях усередину, зміна ще не готова до застосування.
Три шляхи назад, упорядковані за тим, від чого залежить кожен
Упорядкуйте варіанти за тим, наскільки вони залежать від пристрою, що перевіряється, бо саме до цього порядку ви вдаєтеся, коли правило виявляється хибним. Консоль, яка ніколи не проходить крізь міжмережевий екран, незалежна, відпрацьований відкат майже такий, а вже відкритий сеанс — ні.
| 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.
Відновіть із збереженого набору правил, потім приведіть файл у відповідність
Коли зміна не вдалася, завантажте збережений набір правил замість додавання дозвільних правил, доки входи не запрацюють знову. Кожен зайвий дозвіл заспокоює симптом і залишає діру, яка переживе інцидент і пам'ять про нього. Відновіть, перепідключіться, а потім тримайте невдале порівняння поруч із записом про те, що ви пробували.
Після успішної зміни файл на диску має описувати робочий набір правил, і підтвердьте, що перезавантаження його відтворює. Робочий набір правил, що відійшов від власного файлу конфігурації, — це пастка, поставлена на наступний перезапуск.