В цій статті, ми поговоримо про Firewall Mikrotik. Розберемось що це таке, навіщо потрібно і як працює.
Перед тим як ми розпочнемо розмову про Firewall, варто згадати про корисну функцію MikroTik – Safe Mode. Це свого роду “страхувальний механізм”, який врятує вас від випадкових помилок при налаштуванні Firewall.
Для чого потрібний Safe Mode:
- Дозволяє експериментувати без ризику повної втрати доступу до обладнання
- Можливість відкотити налаштування, якщо щось пішло не так і ви, наприклад заблокували собі доступ до обладнання.

Приклад: Якщо ви випадково у Firewall, заблокували весь вхідний трафік, система автоматично поверне налаштування, які були актуальні на момент активації функції. Функція корисна для новачків, або тих хто налаштовує MikroTik віддалено.
Тепер давайте детальніше розберемо сам Firewall, а конкретніше вкладку filter rules. Почнемо ми з ланцюжків. Основних ланцюжків у Firewall MikroTik є 3. Input, Output і Forward. Правила у Firewall, мають будуватися по принципу “Від загального до специфічного” Наприклад:

- Дозволяємо встановлені з’єднання
- Дозволяємо специфічні сервіси
- Дозволяємо трафік для певних мереж
- Забороняємо весь інший трафік (Такий собі режим, все що явно не дозволено, заборонено)
При роботі з вкладкою filter rules, ви маєте пам’ятати важливі моменти:
- Пакети в ланцюжках проходять зверху в низ (Саме тому спочатку мають йти правила які щось дозволяють, а нижче правила які забороняють)
- Кожен пакет проходить цикл перевірок, до тих пір поки не потрапить під якесь правило і тільки тоді припиняє проходження по ланцюжку.
- Послідовність правил критично важлива. Ви маєте чітко розуміти для чого вам конкретне правило і що воно має робити.
- Правилом гарного тону, є написання коментарів до правил Firewall, для того, щоб вам потім було зручніше розбиратись які правила і для чого були створені.
Опис ланцюжків:
1. Input Chain (Вхідний ланцюжок)
Призначення:
- Фільтрація трафіку, адресованого безпосередньо роутеру
- В основному, потрібен для захисту самого маршрутизатора
Розберемо деякі практичні приклади використання:
- Обмеження SSH-доступу
add chain=input protocol=tcp port=22 src-address=192.168.1.0/24 action=accept
add chain=input protocol=tcp port=22 action=drop
Пояснення: Дозволити SSH лише з локальної мережі 192.168.1.0/24, інші підключення – заборонити.
- Захист від PING-флуд
add chain=input protocol=icmp limit=5,10s action=accept
add chain=input protocol=icmp action=drop
Пояснення: Обмежити кількість PING-запитів до 5 на 10 секунд, решту – заблокувати.
2. Output Chain (Вихідний ланцюжок)
Призначення:
- Контроль вихідного трафіку від роутера
- Обмеження зовнішніх підключень
Розберемо практичний приклади:
- Заборона певних вихідних підключень
add chain=output dst-address=8.8.8.8 action=drop
Пояснення: Заборонити вихід на конкретну IP-адресу (наприклад, Google DNS).
3. Forward Chain (Транзитний ланцюжок)
Призначення:
- Найскладніший ланцюжок
- Маршрутизація та фільтрація трафіку між інтерфейсами
- Основний захист локальної мережі
Практичні приклади:
- Базовий захист локальної мережі
add chain=forward connection-state=invalid action=drop
add chain=forward connection-state=established,related action=accept
Пояснення: Скинути invalid-пакети, дозволити вже встановлені з’єднання.
- Розподіл доступу між підмережами
add chain=forward src-address=192.168.1.0/24 dst-address=192.168.2.0/24 action=accept
add chain=forward src-address=192.168.2.0/24 dst-address=192.168.1.0/24 action=drop
Пояснення: Дозволити трафік з мережі 192.168.1.0/24 до 192.168.2.0/24, але заборонити у зворотному напрямку.
Дефолтні налаштування Firewall MikroTik, тобто ті, які зазвичай налаштовані з коробки:
- Дозволяємо вже встановлені та пов’язані з’єднання.
add chain=input connection-state=established, related comment=”Дозволити встановлені та пов’язані з’єднання” action=accept
Це правило дозволяє проходити пакетам, які є частиною вже встановлених з’єднань, а також пакети, пов’язані з наявними з’єднаннями, ми їх ставимо першими, тому, що ці пакети, вже пройшли перевірку і повторно їх перевіряти не потрібно. Це правило зменшить навантаження на ваш процесор.
- Відкидаємо Invalid пакети.
add chain=input connection-state=invalid comment=”Відхилити invalid пакети” action=drop
Це правило блокує пакети, які не відповідають жодному відомому стану з’єднання. Це можуть бути пошкоджені пакети, або частина атаки.
- Дозволяємо важливі сервіси для локальної мережі
add chain=input protocol=icmp comment=”Дозволити ICMP (ping)” action=accept
- Дозволяємо (За потреби) доступ по IP, до управління роутером тільки з локальної мережі. Цих правил немає в дефолтному фаєрволі, але я їх додам, для прикладу.
add chain=input protocol=tcp dst-port=80 src-address=192.168.0.0/24 comment=”Дозволити Web доступ з LAN” action=accept
add chain=input protocol=tcp dst-port=8291 src-address=192.168.0.0/24 comment=”Дозволити Winbox з LAN” action=accept
- І останнім правилом в ланцюжку input по дефолту, йде правило яким ми блокуємо все інше. Тобто все, що вище не дозволено – заборонено.
add chain=input comment=”Відхилити весь інший вхідний трафік” action=drop
Налаштування forward chain (для проходження трафіку між інтерфейсами) Тут по дефолту все просто.
- Першими ідуть два правила для IpSec:
add action=accept chain=forward comment=”defconf: accept in ipsec policy” ipsec-policy=in,ipsec
add action=accept chain=forward comment=”defconf: accept out ipsec policy” ipsec-policy=out,ipsec
Ці правила є частиною дефолтної конфігурації MikroTik і важливі для:
- Забезпечення коректної обробки трафіку відповідно до налаштованих IPsec політик
- Дозволяють трафіку проходити через роутер до і після шифрування
- Без них IPsec тунелі можуть не коректно працювати, навіть якщо самі політики налаштовані правильно
- Наступним правилом йде FASTTRACK. (Fasttrack – механізм прискореної обробки пакетів)
add chain=forward action=fasttrack-connection connection-state=established, related comment=”Fasttrack для встановлених та пов’язаних з’єднань”
- Далі ідуть правила, які оброблятимуть пакети, які не підпадають під правила fasttrack-connection.
add chain=forward connection-state=established, related comment=”Дозволити встановлені та пов’язані з’єднання” action=accept
- Відкидаємо invalide пакети.
add chain=forward connection-state=invalid comment=”Відхилити invalid пакети” action=drop
Дефолтний ланцюжок готовий.
Крім ланцюжків, фаєрвол також може застосовувати наступні дії:
- accept – прийняти пакет. Пакет не передається наступним правилам Firewall. Тобто рух по ланцюжку припиняється.
- add-dst-to-address-list – додати адресу призначення в список адрес, заданий параметром address-list.
- add-src-to-address-list – додати адресу джерела в список адрес, вказаний параметром address-list. Ці дві дії потрібні для роботи з address-list.
- drop – відкинути пакет. Пакет не передається наступним правилам Firewall Тобто рух по ланцюжку припиняється.
- fasttrack-connection – обробка пакетів із з’єднання за допомогою FastPath шляхом включення FastTrack для з’єднання.
- jump – перейти до ланцюжка користувача, заданого значенням параметра jump-target .
- log – додати повідомлення в системний журнал.
- passthrough – збільшити лічильник і перейти до наступного правила.
- reject – відкинути пакет і відправити ICMP повідомлення про відхилення.
- return – передає управління назад в ланцюжок, звідки стався стрибок.
- tarpit – захоплює та утримує TCP-з’єднання.

Кожна з цих дій, має своє призначення і застосовується відповідно до задуму того, хто налаштовує правила Firewall. Практично по кожній з цих дій у мене є відео на каналі (IT Orakul), тому хто хоче детально розібратися, відкривайте список відео з налаштування MikroTik і вивчайте.
Схожі статті – https://itorakul.com.ua/category/mikrotik-uk/




