Огляд 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)