Огляд 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 — зчитує конфігураційні файли та записує правила у модулі ядра netfilter
  • stop — очищує правила з ядра (але не вивантажує самі модулі)
  • restart, reload — перечитує правила з файлів та оновлює їх у netfilter
  • flush — ⚠️ небезпечна команда: повністю очищує всі правила, видаляє нестандартні ланцюжки і скидає політики до ACCEPT

:!: При виклику stop буде видалено лише ті правила, що містяться у конфігураційних файлах. Автоматично згенеровані правила fw4 залишаться.

:!: Якщо виконати flush, усі правила буде очищено, а політика за замовчуванням зміниться на ACCEPT — маршрутизатор дозволятиме всі з'єднання без будь-якого захисту!

Якщо маршрутизатор став недоступним через політику за замовчуванням DROP, можна відновити доступ одним із двох способів:

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2025/06/01 08:36
  • by vazaz