Огляд Firewall
OpenWrt використовує додаток firewall4 (fw4
) — генератор правил netfilter/nftables.
Він працює в користувацькому просторі (user-space), перетворюючи конфігураційні файли у набір правил nftables
та надсилаючи їх до модулів ядра netfilter.
Призначення
Набір правил netfilter може бути досить складним для звичайного маршрутизатора.
Це необхідність, оскільки кожне правило відповідає окремій функції маршрутизатора:
захист підтримуваних мереж, надання NAT для економії IPv4-адрес, а також “модифікація” (mangle
) пакетів під час маршрутизації.
Типовий маршрутизатор містить понад 100 правил, які забезпечують повноцінну обробку трафіку.
Застосунок fw4 використовується в OpenWrt для безпечного формування правил, приховуючи складні деталі конфігурації.
Якщо переглянути набір правил netfilter за допомогою команди fw4 print
, можна побачити багато правил, які:
- не були явно вказані в конфігураційних файлах,
- або складні для розуміння (на щастя, є параметр
--comment
для пояснень!).
Типові правила netfilter включають:
- Ланцюжки (chains), часто з префіксом
_rule
, для кожної зони або цілі. - Правила для INPUT та OUTPUT інтерфейсу loopback (який часто ігнорують).
option syn_flood 1
абоoption mtu_fix 1
— кожен з них розгортається у складні правила nftables.option masq 1
— відповідає цілі NAT-j MASQUERADE
.- Правила
mangle
, які зчитують біти TCP-заголовка і змінюють пакет.
Формат конфігурації є достатньо простим та забезпечує базовий набір правил із можливістю легко додавати нові.
Правила netfilter можуть бути важкими для аналізу, однак кожне з них виконує корисну функцію або блокує шкідливі дії, тож усі вони необхідні.
Керування процесом
fw4
керується службою firewall
.
Цей shell-скрипт приймає такі аргументи:
boot
— виконується під час завантаження системиstart
— зчитує конфігураційні файли та записує правила у модулі ядра netfilterstop
— очищує правила з ядра (але не вивантажує самі модулі)restart
,reload
— перечитує правила з файлів та оновлює їх у netfilterflush
— ⚠️ небезпечна команда: повністю очищує всі правила, видаляє нестандартні ланцюжки і скидає політики доACCEPT
При виклику
stop
буде видалено лише ті правила, що містяться у конфігураційних файлах. Автоматично згенеровані правила fw4
залишаться.
Якщо виконати
flush
, усі правила буде очищено, а політика за замовчуванням зміниться на ACCEPT
— маршрутизатор дозволятиме всі з'єднання без будь-якого захисту!
Якщо маршрутизатор став недоступним через політику за замовчуванням DROP
, можна відновити доступ одним із двох способів:
- Підключення через послідовний порт (Serial Console)
- Виконання Скидання налаштувань (Factory Reset)