Захист MikroTik: базові правила Firewall для RouterOS 7

Роутер MikroTik із типовими налаштуваннями захищений непогано, але після скидання конфігурації або на хмарному роутері CHR файрвол порожній, і пристрій із публічною IP-адресою починають атакувати в перші ж хвилини. Нижче — мінімальний набір правил, який закриває роутер і мережу за ним, із поясненням кожного кроку.
Як влаштований файрвол RouterOS
Правила обробляються згори донизу до першого збігу, тому порядок важливий. Основних ланцюжків три:
- input — трафік, адресований самому роутеру: WinBox, SSH, DNS, VPN;
- forward — трафік, що проходить через роутер: з локальної мережі в інтернет і назад;
- output — трафік, який створює сам роутер.
У прикладах ether1 — інтерфейс провайдера (WAN), bridge — локальна мережа 192.168.88.0/24. Підставте свої значення.
Крок 1. Списки інтерфейсів
Правила зручніше писати не для конкретних портів, а для списків:
/interface list
add name=WAN
add name=LAN
/interface list member
add list=WAN interface=ether1
add list=LAN interface=bridge
Крок 2. Захист самого роутера (input)
/ip firewall filter
add chain=input action=accept connection-state=established,related,untracked comment="Established"
add chain=input action=drop connection-state=invalid comment="Drop invalid"
add chain=input action=accept protocol=icmp comment="ICMP"
add chain=input action=accept in-interface-list=LAN comment="From LAN"
add chain=input action=drop comment="Drop everything else"
Що роблять правила:
- пропускають пакети вже встановлених з’єднань — це основна частина трафіку, вона обробляється першою й не навантажує процесор;
- відкидають некоректні пакети;
- дозволяють ping — він потрібен для діагностики;
- дозволяють доступ до роутера з локальної мережі;
- забороняють усе інше, зокрема будь-які підключення з інтернету.
Крок 3. Захист локальної мережі (forward)
/ip firewall filter
add chain=forward action=fasttrack-connection connection-state=established,related hw-offload=yes comment="FastTrack"
add chain=forward action=accept connection-state=established,related,untracked comment="Established"
add chain=forward action=drop connection-state=invalid comment="Drop invalid"
add chain=forward action=drop connection-state=new connection-nat-state=!dstnat in-interface-list=WAN comment="Drop from WAN not DSTNAT"
Останнє правило забороняє будь-які нові підключення з інтернету в локальну мережу, крім тих, для яких ви явно налаштували прокидання портів. FastTrack прискорює обробку встановлених з’єднань у кілька разів.
Крок 4. NAT
Якщо роутер роздає інтернет локальній мережі, потрібне правило маскарадингу:
/ip firewall nat
add chain=srcnat action=masquerade out-interface-list=WAN comment="Masquerade"
Крок 5. Доступ до роутера ззовні
Правила вище повністю закривають керування з інтернету. Якщо віддалений доступ потрібен, є три способи — від найнадійнішого до найменш бажаного.
Через VPN
Підніміть на роутері WireGuard і керуйте ним лише через тунель. Дозвольте порт VPN, розмістивши правило вище заборонного:
/ip firewall filter
add chain=input action=accept protocol=udp dst-port=13231 place-before=[find comment="Drop everything else"] comment="WireGuard"
З довірених адрес
/ip firewall address-list
add list=admins address=198.51.100.7
/ip firewall filter
add chain=input action=accept src-address-list=admins protocol=tcp dst-port=8291,22 place-before=[find comment="Drop everything else"] comment="Admins"
Із захистом від перебору
Якщо адреса адміністратора непостійна, додайте захист: після трьох нових підключень за хвилину адреса блокується на добу.
/ip firewall filter
add chain=input action=drop src-address-list=blacklist place-before=0 comment="Blacklist"
add chain=input action=add-src-to-address-list protocol=tcp dst-port=22,8291 connection-state=new src-address-list=stage2 address-list=blacklist address-list-timeout=1d place-before=[find comment="Drop everything else"]
add chain=input action=add-src-to-address-list protocol=tcp dst-port=22,8291 connection-state=new src-address-list=stage1 address-list=stage2 address-list-timeout=1m place-before=[find comment="Drop everything else"]
add chain=input action=add-src-to-address-list protocol=tcp dst-port=22,8291 connection-state=new address-list=stage1 address-list-timeout=1m place-before=[find comment="Drop everything else"]
add chain=input action=accept protocol=tcp dst-port=22,8291 place-before=[find comment="Drop everything else"] comment="Management"
Крок 6. Вимкніть зайві служби
Файрвол — не єдиний рубіж. Вимкніть усе, чим не користуєтеся:
/ip service
disable telnet,ftp,www,api,api-ssl
set ssh address=192.168.88.0/24
set winbox address=192.168.88.0/24
Параметр address додатково обмежує адреси, з яких служба приймає підключення. Якщо потрібен доступ ззовні, додайте до списку свої адреси або підмережу VPN.
Вимкніть виявлення сусідів і підключення за MAC-адресою на зовнішньому інтерфейсі:
/ip neighbor discovery-settings set discover-interface-list=LAN
/tool mac-server set allowed-interface-list=LAN
/tool mac-server mac-winbox set allowed-interface-list=LAN
Закрийте DNS-сервер роутера від запитів з інтернету. Правило Drop everything else у ланцюжку input уже це робить; якщо ви його не використовуєте, забороніть порт 53 на зовнішньому інтерфейсі явно — відкритий DNS-резолвер використовують для DDoS-атак.
Крок 7. Облікові записи
- Створіть нового адміністратора з надійним паролем і видаліть стандартний запис
admin:
/user add name=myadmin group=full password="надійний_пароль"
/user remove admin
- Для SSH використовуйте ключі замість паролів.
- Вимкніть невикористовувані пакети та інтерфейси.
Крок 8. Оновлення
Більшість масових зламів MikroTik відбувалися через вразливості в застарілих версіях RouterOS. Перевіряйте оновлення регулярно:
/system package update check-for-updates
/system package update install
/system routerboard upgrade
Остання команда оновлює завантажувач на апаратних роутерах; після неї потрібне перезавантаження.
Перевірка
Перегляньте лічильники правил — вони показують, які правила спрацьовують:
/ip firewall filter print stats
Перевірте, що з інтернету роутер не відповідає на портах керування: із зовнішнього комп’ютера виконайте nmap -Pn IP-адреса або скористайтеся онлайн-сканером портів.
Резервна копія конфігурації
Після налаштування збережіть конфігурацію в текстовому вигляді:
/export file=firewall-backup
Файл з’явиться в розділі Files — завантажте його й зберігайте окремо від роутера.
Що далі
- Сповіщення в Telegram про події на роутері.
- Port knocking як додатковий спосіб приховати порти керування.
- Контейнери в RouterOS для невеликих сервісів на самому роутері.


