Рекомендую: Фриланс-биржа | Кэшбэк-сервис | Интернет-бухгалтерия

Базовая настройка фаервола в Микротик

Сегодня хочу поподробнее раскрыть тему защиты роутеров популярной латвийской марки. Речь пойдет о базовой настройке Firewall в Mikrotik для обеспечения безопасности и удобства. Статья на эту тему была написана уже давно, но я решил ее полностью переделать и актуализировать.

Введение

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

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

192.168.88.1локальный адрес микротика
bridgeназвание бриджа, в который объединены все интерфейсы для локальной сети
ether1интерфейс для внешнего подключения WAN
192.168.88.0/24локальная сеть, которую обслуживает микротик

Default firewall в Mikrotik

Если вы используете дефолтную конфигурацию роутера, то она по-умолчанию имеет стандартные правила firewall. Привожу список стандартных правил (rules) с комментариями. Напоминаю, что экспорт правил firewall в mikrotik можно выполнить следующей командой:

>> ip firewall export file=rules

Вот список стандартных правил:

/ip firewall filter
add action=accept chain=input comment="defconf: accept established,related,untracked" connection-state=established,related,untracked
add action=drop chain=input comment="defconf: drop invalid" connection-state=invalid
add action=accept chain=input comment="defconf: accept ICMP" protocol=icmp
add action=drop chain=input comment="defconf: drop all not coming from LAN" in-interface-list=!LAN
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
add action=fasttrack-connection chain=forward comment="defconf: fasttrack" connection-state=established,related
add action=accept chain=forward comment="defconf: accept established,related, untracked" connection-state=established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid" connection-state=invalid
add action=drop chain=forward comment="defconf:  drop all from WAN not DSTNATed" connection-nat-state=!dstnat connection-state=new in-interface-list=WAN
/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" ipsec-policy=out,none out-interface-list=WAN

В принципе, по приведенным комментариям примерно понятно, что тут происходит. Дропаются все входящие и транзитные соединения не из локальной сети, разрешен пинг — icmp, разрешен ipsec, разрешены установленные соединения. Все. Ну и настроен NAT через WAN интерфейс.

Во многих случаях данных правил по-умолчанию может быть достаточно обычному пользователю, который просто настроил маршрутизатор дома для выхода в интернет. Берите на вооружение, если вам от маршрутизатора больше ничего не надо.

Firewall и базовая настройка безопасности

Давайте теперь немного порассуждаем, зачем нужен файрвол и какие вопросы он решает. Причем не только в контексте микротика, а вообще. Сейчас каждый доморощенный админ рассказывает, как важно всегда настраивать firewall, иногда даже не понимая, для чего он нужен. Лично я не сторонник создания лишних сущностей, поэтому там где межсетевой экран не нужен, я его не настраиваю.

Сетевой экран позволяет настраивать доступ как к самому шлюзу, так и к ресурсам за ним. Допустим, у вас не запущено никаких сервисов на роутере, и нет никакого доступа извне в локальную сеть. У вас есть какая-то служба на шлюзе, с помощью которой к нему подключаются и управляют (ssh, winbox, http и т.д.), причем ограничение доступа к этой службе настраивать не планируется. Вопрос — зачем вам в таком случае настраивать фаервол? Что он будет ограничивать и какие правила туда писать? В таком случае вам будет достаточно отключить все сервисы на роутере, которые слушают подключения из вне и все.

На самом деле такой кейс очень популярный дома или в мелких организациях, где нет постоянного админа. Просто настроен какой-то роутер, поднят NAT и все. Я понимаю, что не правильно не настраивать ограничения на доступ к управлению, но я рассказываю, как часто бывает. То есть firewall должен решать конкретную задачу по ограничению доступа к ресурсам, а не существовать просто так, чтобы был.

Еще популярны случаи, когда настроена куча правил, а в конце все равно стоит accept для всех подключений. Такие ляпы я сам иногда делал, когда отлаживал где-то работу сервиса и забывал потом вернуть обратно ограничения. Фаервол вроде настроен, но реально его нет. Если отключить — ничего не изменится.

К чему я все это написал? К тому, что прежде чем настраивать firewall, надо определиться с тем, для чего мы это делаем. Какие разрешения или ограничения и для кого мы будем вводить. После этого можно переходить к настройке.

Я рекомендую первым правилом при любой настройке firewall ставить разрешение на подключение к управлению устройством. Этим вы подстрахуете себя, если где-то дальше ошибетесь и заблокируете доступ к устройству в одном из правил.

В своем примере я буду настраивать межсетевой экран на микротике, находясь в локальной сети. Вам всегда советую поступать так же. Есть старая админская примета — удаленная настройка файрвола к дальнему пути.

Идем в раздел IP -> Firewall. Первая вкладка Filter Rules то, что нам надо. Если делаете настройку firewall с нуля, то там должно быть пусто. Добавляем новое правило.

 mikrotik-firewall-01-7949126

По идее, надо еще заглянуть во вкладку action, но в данном случае не обязательно, так как там по-умолчанию и так выставляется нужное нам значение accept.

Дальше разрешаем уже установленные и связанные входящие соединения. Для этого создаем следующее правило.

 mikrotik-firewall-02-6924983

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

Теперь сделаем запрещающее правило, которое будет блокировать все входящие соединения через WAN интерфейс. В моем случае ether1.

 mikrotik-firewall-03-5510715

 mikrotik-firewall-04-6416223

Данными правилами мы заблокировали все входящие соединения из интернета и оставили доступ из локальной сети. Далее создадим минимальный набор правил для транзитных соединений из цепочки forward.

Первым правилом в фаерволе микротик для транзитного трафика будет правило с использованием фирменной технологии Fasttrack. Подробно о том, что это такое читайте в официальной wiki по ссылке. Если кратко, то данная технология экономит ресурсы процессора, за счет упрощенной обработки пакетов, к которым не надо применять дополнительных правил фаервола, ставить его в очереди и т.д. Это подойдет для большинства пользователей, у которых микротик это просто шлюз в интернет с небольшим набором простых правил в firewall. При этом транзитный трафик никак дополнительно не обрабатывается и не фильтруется.

Возьмем примеры этих правил из дефолтной конфигурации файрвола. Добавляем 2 новых правил для цепочки forward. В первом action выбираем fasttrack connection, во втором accept для established и related подключений.

 mikrotik-firewall-05-9294866 mikrotik-firewall-06-6620927 mikrotik-firewall-07-7419925 mikrotik-firewall-08-8549579

Дальше по примеру дефолтной конфигурации, запретим и все invalid подключения.

 mikrotik-firewall-09-1727730 mikrotik-firewall-10-3594459

В завершении запретим все подключения из WAN в LAN.

 mikrotik-firewall-11-2465104 mikrotik-firewall-12-2340833

Подведем краткий итог того, что получилось. Вот самый простой, минимальный набор правил firewall в mikrotik для базового случая:

 mikrotik-firewall-13-6237283

Запрещены все входящие подключения, в том числе ответы на пинги. Включена технология fasttrack для соединений из локальной сети. При этом из локальной сети разрешены абсолютно все подключения, без ограничений. То есть это пример типовой безопасной конфигурации для микротик в роли обычного шлюза в интернет для небольшого офиса или дома.

Но если firewall оставить как есть в таком виде, то раздачи интернета для локальной сети не будет. Для этого надо настроить NAT. Это сделать не сложно, рассказываю как.

Настройка NAT в микротик

Для того, чтобы пользователи локальной сети, которую обслуживает роутер на микротике, смогли получить доступ в интернет, настроим на mikrotik NAT. Для этого идем в раздел IP -> Firewall, вкладка NAT и добавляем простое правило.

 mikrotik-firewall-14-1484712

Действие указываем masquerade.

 mikrotik-firewall-15-3613901

Все, NAT настроен, пользователи могут выходить в интернет.

Проброс портов

Покажу на простом примере, как при настроенном NAT и включенном фаерволе выполнить проброс порта в mikrotik для доступа к службе в локальной сети. Пробросить порт можно в той же вкладке NAT в настройках Firewall.

Для примера выполним проброс порта rdp из интернета через микротик. Извне будет открыт порт 41221, а проброс будет идти на локальный адрес 192.168.88.10 и порт 3389.

 mikrotik-firewall-16-7716202 mikrotik-firewall-17-1624155

Я настоятельно не рекомендую открывать доступ к rdp порту для всего интернета. Лично имел печальный опыт в такой ситуации. Обязательно настройте ограничение доступа по ip к этому порту, если такое возможно. Если невозможно, то не пробрасывайте порт, а сделайте доступ по vpn. Ограничение по ip делается просто. Добавляем еще один параметр в правило проброса порта.

 mikrotik-firewall-18-9967126

Если используется список ip адресов, который будет меняться, проще сразу в правиле проброса указать на список, а потом править уже сам список. Для этого его надо создать. Создать список ip можно на вкладке Address List. Добавим список:

 mikrotik-firewall-19-3836526

Возвращаемся в правило проброса порта, переходим на вкладку Advanced и добавляем указанный список в Src. Adress List

 mikrotik-firewall-20-8123398

Теперь для изменения списка доступа к проброшенному порту не надо трогать само правило. Достаточно отредактировать список.

Защита подключения через winbox

Расскажу отдельно о том, как защитить подключение по winbox с помощью firewall. В микротиках время от времени находят критические уязвимости. Единственным способом надежно от них защититься — ограничить доступ к winbox с помощью фаервола.

В приведенном выше списке правил для фаервола заблокированы все внешние подключения полностью. Это самый безопасный вариант настроек. Иногда нужен доступ к удаленному управлению. Самое безопасное в этом случае настроить vpn сервер на микротике и подключаться через vpn. Не всегда это уместно. Ограничение доступа по ip, если такое подходит, будет не менее безопасно.

Для начала создадим список IP, которым будет разрешено подключаться удаленно к winbox.

 mikrotik-firewall-21-2195295

Добавляем правило в Firewall. Оно должно быть выше правила, где блокируются все входящие соединения.

 mikrotik-firewall-22-9239263

В вкладке Advanced указываем список:

 mikrotik-firewall-23-9565628

В разделе action ставим accept. Итоговый список правил должен быть таким.

 mikrotik-firewall-24-4337076

Так мы обезопасили удаленный доступ через winbox. Считаю это самым простым и безопасным способом защиты микротика. Если есть возможность органичений по ip, всегда используйте. Это универсальный способ, годный для любого случая и системы, не только в отношении микротика.

В современном мире ИТ постоянно находят уязвимости. Невозможно всегда оперативно ставить обновления. Зачастую, эти обновления могут либо нарушить работу системы, либо содержать другие уязвимости. Только ограничение доступа к службам и системам позволяет более ли менее надежно защититься и спать спокойно, не торопясь обновляться со всех ног при обнаружении очередной критической уязвмости.

Как на микротике отключить файрвол

Для того, чтобы полностью отключить Firewall на микротике, достаточно просто отключить или удалить все правила в списке. По-умолчанию, в mikrotik используются разрешающие правила. Все, что не запрещено — разрешено. То есть если у вас нет ни одного активного правила, можно считать, что файрвол отключен, так как он пропускает все соединения без ограничений.

Вот пример отключенного фаервола на микротике 🙂

 mikrotik-firewall-25-9765313

Итоговый список правил, настроенный по этой статье, получился вот такой:

/ip firewall address-list
add address=77.88.0.81 list=rdp_access
add address=77.88.8.8 list=rdp_access
add address=8.8.8.8 list=rdp_access
add address=1.1.1.1 list=winbox_remote
add address=2.2.2.2 list=winbox_remote
/ip firewall filter
add action=accept chain=input comment="local accept" in-interface=bridge
add action=accept chain=input comment="established and related accept" connection-state=established,related
add action=accept chain=input comment=winbox_accept dst-port=8291 in-interface=ether1 protocol=tcp src-address-list=winbox_remote
add action=drop chain=input comment="all input block" in-interface=ether1
add action=fasttrack-connection chain=forward comment=fasttrack connection-state=established,related
add action=accept chain=forward comment="established and related accept" connection-state=established,related
add action=drop chain=forward comment="drop invalid" connection-state=invalid
add action=drop chain=forward comment="drop WAN -> LAN" in-interface=ether1 out-interface=bridge
/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1
add action=dst-nat chain=dstnat dst-port=41221 in-interface=ether1 protocol=tcp src-address-list=rdp_access to-addresses=192.168.88.10 to-ports=3389

Заключение

Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

На этом все по базовой настройке firewall на mikrotik. Постарался показать максимально подробно базовый набор правил фаервола для обеспечения безопасности и защиты локальной сети и самого роутера.

Мой список правил не сильно отличается от дефолтного. Привел его последовательно по правилу, чтобы просто объяснить логику, как нужно рассуждать и действовать при добавлении правил. В качестве самостоятельной работы предлагаю добавить правило, разрешающее отвечать на пинги. Если самостоятельно не получилось сделать, напишите в комментарии, я приведу рабочий пример.

Тема эта обширная, наверняка у кого-то есть замечания и свои советы по предложенной настройке. Тут нет универсальных правил. Firewall в микротике основан на линуксовых iptalbes, а  это безграничное поле для творчества 🙂

If you liked my post, feel free to subscribe to my rss feeds