Необходимо задать ряд правил для цепочек input (входящий в роутер трафик), при необходимости – forward (проходящий через роутер трафик). Для этого мы подключаемся к нашему роутеру, можно через winbox и далее запустив в нем терминал выполняем команды, порядок важен!
Создадим список интерфейсов WAN, с использованием которого и будет настроен файервол. А еще настроим, чтобы сетевое обнаружение (neighbors) работало только в локальной сети. Создадим локальный список интерфейсов, затем настроим обнаружение:
/interface list add name=WAN member add interface=ether1 list=WAN add name=LAN member add interface=bridge-local list=LAN /ip neighbor discovery-settings set discover-interface-list=LAN
Первые правила снижают нагрузку на процессор, т.к. 99% трафика будет проходить через них
/ip firewall filter
add action=accept chain=input connection-state=established,related comment="Accept established & related connections"
add action=accept chain=forward connection-state=established,related
Следующие правила блокируют invalid трафик:
add chain=input connection-state=invalid action=drop comment="Drop invalid connections"
add chain=forward connection-state=invalid action=drop
Если за роутером располагаются какие-либо сервисы с доступом к ним из вне, имеет смысл защититься дополнительно. Первым делом фиксируем соединения снаружи по популярными стандартным портам. Поскольку стандартные порты не используются для доступа к сервисам – все эти обращения не санкционированы. Заносим в список адреса, с которых они приходят.
add action=add-src-to-address-list address-list="BlackList" address-list-timeout=3d0h0m chain=input comment="TCP Honeypot Protect" connection-state=new dst-port=22,23,25,80,110,143,443,465,578,993,1194,3389,8291 in-interface-list=WAN protocol=tcp add action=add-src-to-address-list address-list="BlackList" address-list-timeout=3d0h0m chain=input comment="UDP Honeypot Protect" connection-state=new dst-port=53,1194,5060,5061 in-interface-list=WAN protocol=udp
Так же защитимся от сканирования портов
add chain=input protocol=tcp in-interface-list=WAN psd=21,3s,3,1 action=add-src-to-address-list address-list="BlackList" address-list-timeout=3d comment="PortScanners Protect" disabled=no
Блокируем доступ для адресов из списка “BlackList”
/ip firewall raw add action=drop chain=prerouting comment="Dropping dangerous addresses" src-address-list=BlackList
Защита от перебора паролей при подключении через порт winbox – 8291:
add chain=input protocol=tcp dst-port=8291 in-interface-list=WAN src-address-list=winbox_blacklist action=drop comment="drop winbox brute forcers" disabled=no add chain=input protocol=tcp dst-port=8291 in-interface-list=WAN connection-state=new src-address-list=winbox_stage3 action=add-src-to-address-list address-list=winbox_blacklist address-list-timeout=60m comment="" disabled=no add chain=input protocol=tcp dst-port=8291 in-interface-list=WAN connection-state=new src-address-list=winbox_stage2 action=add-src-to-address-list address-list=winbox_stage3 address-list-timeout=1m comment="" disabled=no add chain=input protocol=tcp dst-port=8291 in-interface-list=WAN connection-state=new src-address-list=winbox_stage1 action=add-src-to-address-list address-list=winbox_stage2 address-list-timeout=1m comment="" disabled=no add chain=input protocol=tcp dst-port=8291 in-interface-list=WAN connection-state=new action=add-src-to-address-list address-list=winbox_stage1 address-list-timeout=1m comment="" disabled=no
Разрешаем Winbox:
add chain=input protocol=tcp dst-port=8291 in-interface-list=WAN action=accept comment="Allow Winbox"
Последние правила запрещают прохождение всех остальных пакетов снаружи:
add chain=input in-interface-list=WAN action=drop comment="All other drop" add action=drop chain=forward comment="Drop incoming packets that are not NATted" connection-nat-state=!dstnat connection-state=new in-interface-list=WAN log=yes log-prefix=!NAT add action=drop chain=forward comment="Drop incoming from internet which is not public IP" in-interface-list=WAN log=yes log-prefix=!public src-address-list=BOGON /ip firewall address-list add address=0.0.0.0/8 comment=RFC6890 list=BOGON add address=172.16.0.0/12 comment=RFC6890 list=BOGON add address=192.168.0.0/16 comment=RFC6890 list=BOGON add address=10.0.0.0/8 comment=RFC6890 list=BOGON add address=169.254.0.0/16 comment=RFC6890 list=BOGON add address=127.0.0.0/8 comment=RFC6890 list=BOGON add address=224.0.0.0/4 comment=Multicast list=BOGON add address=198.18.0.0/15 comment=RFC6890 list=BOGON add address=192.0.0.0/24 comment=RFC6890 list=BOGON add address=192.0.2.0/24 comment=RFC6890 list=BOGON add address=198.51.100.0/24 comment=RFC6890 list=BOGON add address=203.0.113.0/24 comment=RFC6890 list=BOGON add address=100.64.0.0/10 comment=RFC6890 list=BOGON add address=240.0.0.0/4 comment=RFC6890 list=BOGON add address=192.88.99.0/24 comment="6to4 relay Anycast [RFC 3068]" list=BOGON
Осталось только включить преобразование сетевых адресов (NAT) для локальной сети
/ip firewall address-list add address=192.168.88.0/24 list=LAN nat add chain=srcnat out-interface-list=WAN action=masquerade
Для повышения безопасности, не забываем отключить ненужные сервисы. Можно, к примеру, оставить только winbox:
/ip service set api disabled=yes set api-ssl disabled=yes set ftp disabled=yes set ssh disabled=yes set telnet disabled=yes set www-ssl disabled=yes set www disabled=yes