Настройка Firewall и NAT на mikrotik

Данные

ether1 - провайдер 1  (10.10.1.1)

ether2 - провайдер 2 (10.10.2.1)

ether3+Megalink_ppp8 - провайдер 3 (10.10.3.1)(ppp-172.16.0.1)

ether 5 - камеры (10.10.5.1)

как настроить тут:

https://onedayadmin.sytes.net/nastrojka-interfejsov-mikrotik/

ether6,7,8,9 - локальная сеть объединенная в бриджы br-vlan21  (10.10.21.0/24)с  Vlan-21 и br-vlan100 (10.10.100.0/24) c Vlan-100

ether10 - локальная сеть в бридже  br-vlan100

как настроить написано тут:

https://onedayadmin.sytes.net/nastrojka-vlan-na-router-mikrotik/

ether10 - локальная сеть в бридже  br-vlan100

Для удобства, чтобы не писать по три правила на каждый интерфейс который смотрит в инет сгрупирирует интерфейсы.

/interface list

add name=WAN

/interface list member

add interface=ether1 list=WAN

add interface=ether2 list=WAN

add interface=Megalink_ppp8 list=WAN

или

Заходим в Interfaces -> Interface List -> Жмем кнопку Lists -> + -> Пишем название группы (WAN) -> Добавили и закрыли окно + -> Поле list выбираем  WAN -> В Interface выбираем интерфейс.

Настроим  NAT

Откройте меню New Terminal для ввода команд.

ip firewall nat add chain=srcnat out-interface-list=WAN action=masquerade

где WAN - это интерфейс(мост), на который приходит интернет от провайдера. Если используется только PPPoE соединений указывается название PPPoE интерфейса а не локального, через который поднят тунель.

Переходим к Firewall

И так помним про порядок правил в цепочках, его никто не отменял!

Заходим в IP -> FIrewall ->Filter Rules

Начнем с основного, последними правилами у нас всегда будет: разрешить исходящие соединения, запретит все входящие, запретить все транзитные пакеты.

"+" -> General -> Chain - Output ->Action -> accept

"+" -> General -> Chain - Input ->Action -> drop

"+" -> General -> Chain - Forward ->Action -> drop

Добавим первыми в цепочки два правила которые будут отбрасывать некоректные сессии:

"+" -> General -> Chain - Input, Connection State - invalid ->Action -> drop

"+" -> General -> Chain - Forward, Connection State - invalid ->Action -> drop

Добавим правило для блокировки всех транзитных соединений на 25 порт по UDP в интернет(wifi точки с мега юзверями задолбали спамить на этот порт) это правило будет всегда вторым в цепочке.

"+" -> General -> Chain - Forward, Protocol - UDP, Dst.Port - 25, Out.Interface.List - WAN ->Action -> drop

Разрешим уже установленные или связанные соединения:

"+" -> General -> Chain - Input, Connetction State - estabilished, related ->Action -> accept

"+" -> General -> Chain - Forward, Connetction State - estabilished, related ->Action -> accept

Разрешим траффик внутри наших мостов:

"+" -> General -> Chain - Forward,  In.Interface - br-vlan21, Out.Interface - br-vlan21 ->Action -> accept

"+" -> General -> Chain - Forward,  In.Interface - br-vlan100, Out.Interface - br-vlan100 ->Action -> accept

Разрешим мосту br-vlan100 выход в интернет:

"+" -> General -> Chain - Forward,  In.Interface - br-vlan100, Out.Interface List - WAN->Action -> accept

Разрешим IP адресам из списка allow_forward_ip из моста br-vlan21 forwarding на любые направления:

Заходим в IP -> FIrewall -> Address lists -> "+" -> Name - allow_forward_ip -> address - 10.10.21.55 -> OK

И так для каждого ip который надо добавить в этот лист, имя листа всегда одинаково.

Заходим в IP -> FIrewall ->Filter Rules

"+" -> General -> Chain - Forward,  In.Interface - br-vlan21, Connection State - new -> Advanced -> Src.AddressList -> allow_forward_ip ->Action -> accept

Разрешим подключаться к  mikrotik по ssh из любых сетей и winbox из локалки:

"+" -> General -> Chain - Input, Protocol - tcp, Dst.Port - 22 ->Action -> accept

"+" -> General -> Chain - Input, Protocol - tcp, Dst.Port - 8291, In.Interface - br-vlan21 ->Action -> accept

Разрешим пинговать наш Mikrotik

"+" -> General -> Chain - Input, Protocol - icmp ->Action -> accept

  • Немного маршритизации для следующей задачи.

https://onedayadmin.sytes.net/mikrotik-3-provajdera-otkazoustojchivost/

Так вот 3 провайдера, а все клиенты работают только через одного, как то это не правильно.... Первый провайдер 100 Mbit,  второй - 30 Mbit, Третий - 5 Mbit

Поэтому основной трафик пусть идет через первого, а кусочек в виде 100-й подсети отправим на второго, ну а третий пусть болтается на случай если уж первые 2 лягут замертво, тогда весь трафик пойдет через него.

Поэтому выпустим наш мост br-vlan100 через провайдера 2, если он будет недоступен то mikrotik автоматически кинет все соединения в основную таблицу маршрутизации, где они пойдут со всеми остальными сетями.

В ситуации когда упадет 1 провайдер, наши соединения из br-vlan100 так и пойдут через второго, а весь остальной трафик по основной таблице маршрутицации тоже будет завернут на второго провайдера.

Если не доступны оба провайдера все дружно по основной таблице маршрутизации повалят через третьего, так как метрика у него самая большая.

Первым делом промаркеруем трафик идущий из моста br-vlan100 маркой rout_ether2 Для этой марки назначен маршрут по умолчанию через шлюз второго провайдера - 10.10.2.254 (смотреть выше в статье где настраивали ответ сервера с того же порта на котором был получен пакет).

IP -> Firewall -> Mangle -> "+" -> General -> Chain - prerouting, In.Interface - br-vlan100 -> Action -> Action - mark routing, New Routing Mark - rout_ether2 -> OK

Теперь наш трафик из 100 сети будет перенаправлен в таблицу rout_ether2 в которой из маршрутов только шлюз по умолчанию, чтобы нам была доступна сеть из моста br-vlan100 и сеть из моста br-vlan21, нужно добавить к ним маршруты.

IP -> Routing -> "+" -> General -> Dst.Address - 10.10.21.0/24, Gateway - br-vlan21, Type - unicast, Distans - 1, Scope - 3, Target Scope - 10, Routinf Mark - rout_ether2 -> OK

IP -> Routing -> "+" -> General -> Dst.Address - 10.10.100.0/24, Gateway - br-vlan100, Type - unicast, Distans - 1, Scope - 3, Target Scope - 10, Routinf Mark - rout_ether2 -> OK

Так как мы разрешили прохождение наших соединений в статье выше,

 

"+" -> General -> Chain - Forward,  In.Interface - br-vlan21, Out.Interface - br-vlan21 ->Action -> accept

"+" -> General -> Chain - Forward,  In.Interface - br-vlan100, Out.Interface - br-vlan100 ->Action -> accept

"+" -> General -> Chain - Forward,  In.Interface - br-vlan100, Out.Interface List - WAN->Action -> accept

 

то на этом все.