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

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

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

Углубленный онлайн-курс по MikroTik

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.

Данная статья является частью единого цикла статьей про Mikrotik.

Введение

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

Некоторое время назад я обновил и актуализировал статью про базовую настройку mikrotik. В комментариях многие люди пеняли мне на то, что я совсем не уделил внимание настройке фаервола. Мне не захотелось мешать все в кучу, поэтому я пишу отдельную подробную статью на эту тему, а в настройке роутера оставлю ссылку на нее.

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

192.168.88.1 локальный адрес микротика
bridge1-lan название бриджа, в который объединены все интерфейсы для локальной сети
ether1-wan интерфейс для внешнего подключения 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 и базовая настройка безопасности

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

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

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

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

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

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

Safe Mode

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

Включение Safe Mode

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

В терминале этот режим включается комбинацией клавиш CTRL+X. Время ожидания, перед откатом изменений максимум 9 минут (время TCP timeout). Подробнее об этом режиме можно почитать в официальной документации.

Порядок расположения правил в Firewall

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

Пакеты проходят по списку правил по порядку, сверху вниз. Если пакет соответствует какому-то правилу, то он прекращает движение по цепочке. Из этого следует важный вывод - первыми в цепочке должны быть правила, которые охватывают максимальный объем трафика, чтобы он дальше не обрабатывался устройством. Примером такого правила является разрешение пакетов уже установленных (established) или связанных (related) соединений, которые ранее были разрешены каким-то правилом. Повторно проверять по всем правилам их не нужно. Сделаем такое правило для цепочки input - входящие соединения роутера.

Я сначала приведу это правило в виде команды для терминала, который вы можете открыть через winbox. Введите это правило через консоль, а потом уже изучите через визуальное представление. Переходим в соответствующий раздел IP -> Firewall и добавляем правило. Рекомендую всегда ставить комментарии для правил. Так их проще анализировать.

/ip firewall filter
add action=accept chain=input comment="accept establish & related" connection-state=established,related

Пример правила для firewall в Mikrotik

Разрешающее правило

В дефолтном правиле фаервола сюда же добавлены untracked подключения. Я не стал их добавлять, так как обычно не использую данную возможность. Untracked - это пакеты, не отслеживаемые connection tracker. То есть идущие мимо многих функций фаервола. В конце статьи я отдельно расскажу об этой возможности.

Цепочки правил

Первое правило фаервола для цепочки input мы уже написали, но при этом я забыл немного рассказать о существующих цепочках правил в микротиковском фаерволе. Они наследуются из линуксового фаервола iptables. По сути, в mikrotik работает именно он.

  1. Input - пакеты, отправленные на сам роутер. Если вы подключаетесь к нему по ssh или winbox, пакеты попадают как раз в эту цепочку.
  2. Forward - транзитные пакеты, идущие через маршрутизатор. Например, в локальную сеть за ним, или из нее. Все запросы в интернет через маршрутизатор микротик будут попадать в цепочку forward.
  3. Output - пакеты, отправленные с маршрутизатора. Например, микротик синхронизирует время с внешними ntp серверами. Эти запросы будут попадать в цепочку output.

При составлении правил firewall нет смысла пытаться как-то перемешивать правила из разных цепочек. Они все равно будут читаться по порядку в соответствии с той цепочкой, в которую попадает пакет. Поэтому я обычно сначала описываю все правила для input, потом для forward и в конце, в случае необходимости, для output.

Примеры готовых правил

Двигаемся дальше. Одно правило у нас есть, рисуем следующее. Отбрасываем все неверные (Invalid) пакеты. Это чистой воды паразитный трафик. Его пакеты не являются частью ни одного из отслеживаемых соединений. Поэтому чем раньше мы их отбросим, тем меньше они будут нагружать дальше фаервол проверками.

add action=drop chain=input comment="drop invalid" connection-state=invalid

drop invalid connections

drop invalid connections

Дальше не буду приводить скрины, очень хлопотно их под каждое правило делать, да и нет смысла. Просто вставляйте через консоль правила и изучайте их сами в winbox. Разрешаем icmp трафик, чтобы можно было пинговать роутер.

add action=accept chain=input comment="accept ICMP" protocol=icmp

Соответственно, если хотите его заблокировать, то вместо action=accept сделайте drop, или просто не пишите правило, если в конце у вас будет полная блокировка всего, что не разрешено явно.

Дальше я обычно разрешаю подключаться к портам, отвечающим за управление роутером (ssh, winbox, https) с доверенных ip адресов. Подробно этот вопрос я рассмотрю отдельно ниже, поэтому пока это правило пропустим.

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

add action=drop chain=input comment="drop all not from lan" in-interface=!bridge1-lan

В этом правиле я использовал отрицание !bridge1-lan, то есть все, что не относится к указанному бриджу.

Запрет любого входящего трафика, кроме локального

На текущий момент мы запретили все запросы из вне к роутеру, кроме пингов. При этом доступ из локальной сети полный. Настроим теперь правила для транзитного трафика цепочки forward. Здесь по аналогии с input первыми идут правила для established, related, invalid пакетов.

add action=accept chain=forward comment="accept established,related" connection-state=established,related
add action=drop chain=forward comment="drop invalid" connection-state=invalid

Теперь запретим все запросы из внешней сети, связь с которой через интерфейс ether1-wan к локальной сети.

add action=drop chain=forward comment="drop all from WAN to LAN" connection-nat-state=!dstnat connection-state=new in-interface=ether1-wan

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

Важное замечание, о котором я забыл упомянуть. По умолчанию, в Mikrotik Firewall нормально открытый. Это значит, все, что не запрещено явно, разрешено.

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

Для этого мы сначала создаем разрешающее правило для 80 и 443 портов. Если используете внешний DNS сервер для запросов из сети, не забудьте разрешить еще и 53 порт UDP, иначе dns запросы не будут проходить и страницы загружаться не будут, даже если разрешить http трафик.

add action=accept chain=forward comment="accept http & https from LAN" dst-port=80,443 in-interface=bridge1-lan out-interface=ether1-wan protocol=tcp
add action=accept chain=forward comment="accept dns from lan" dst-port=53 in-interface=bridge1-lan out-interface=ether1-wan protocol=udp

Разрешил http и dns трафик, так как в моем тестовом окружении используется внешний dns сервер. Теперь блокируем все остальные запросы по цепочке forward из локальной сети.

add action=drop chain=forward comment="drop all from LAN to WAN" in-interface=bridge1-lan out-interface=ether1-wan

Когда я писал статью, завис минут на 10 и не мог понять, почему не работает разрешающее правило для http. Я его несколько раз проверил, все верно было. Тут и ошибиться негде, но страницы из интернета не грузились в браузере. Чтобы разобраться, я просто включил логирование для последнего запрещающего правила.

Логирование заблокированных запросов

После того, как сделал это, увидел, что у меня блокируется dns трафик по 53-му порту. После этого сделал для него разрешение и все заработало как надо.

Лог заблокированных пакетов

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

Когда у вас что-то не получается, смело включайте логирование запрещающих правил и вы быстро поймете в чем проблема. Это универсальный совет для настройки любого фаервола. Только не забудьте в конце отладки отключить логирование. Иногда я это забывал сделать. Если использовалось какое-то хранилище для логов, оно быстро забивалось, так как в блокирующие правила попадает очень много запросов.

Итак, мы настроили базовый нормально закрытый firewall в микротике. У нас запрещено все, что не разрешено явно, в том числе и для трафика из локальной сети. Скажу честно, я редко так делал, потому что хлопотно постоянно что-то открывать из локальной сети (skype, teamviewer и т.д.). В общем случае, если нет повышенных требований безопасности, в этом нет необходимости. Блокирование не разрешенного трафика можно включать в случае необходимости.

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

/ip firewall filter
add action=accept chain=input comment="accept establish & related" connection-state=established,related
add action=drop chain=input comment="drop invalid" connection-state=invalid
add action=accept chain=input comment="accept ICMP" protocol=icmp
add action=drop chain=input comment="drop all not from lan" in-interface=!bridge1-lan
add action=accept chain=forward comment="accept established,related" connection-state=established,related
add action=drop chain=forward comment="drop invalid" connection-state=invalid
add action=drop chain=forward comment="drop all from WAN to LAN" connection-nat-state=!dstnat connection-state=new in-interface=ether1-wan
add action=accept chain=forward comment="accept http & https from LAN" dst-port=80,443 in-interface=bridge1-lan out-interface=ether1-wan protocol=tcp
add action=accept chain=forward comment="accept dns from LAN" dst-port=53 in-interface=bridge1-lan out-interface=ether1-wan protocol=udp
add action=drop chain=forward comment="drop all from LAN to WAN" in-interface=bridge1-lan out-interface=ether1-wan

Список всех правил в Mikrotik

Пока у нас еще не настроен выход в интернет для локальной сети. Сделаем это далее, настроив NAT.

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

С натом в микротике есть один важный нюанс, о котором я не знал, пока не прочитал презентацию одного из сотрудников, которую я в итоге перевел - My «holy war» against masquerade. Я всегда и везде использовал masquerade для настройки NAT. К тому же это действие предлагается и в дефолтной конфигурации. По своей сути masquerade - частный случай src-nat, который следует использовать в том случае, если у вас не постоянный ip адрес на внешнем интерфейсе. Причем, в некоторых случаях с masquerade могут быть проблемы. Какие именно - описаны в презентации.

Таким образом, если у вас постоянный ip адрес, то для NAT используйте src-nat, если динамический - masquerade. Разница в настройках минимальна.

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

/ip firewall nat
add action=src-nat chain=srcnat out-interface=ether1-wan to-addresses=10.20.1.20

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

Настройка src-nat

В данном случае 10.20.1.20 ip адрес на wan интерфейсе. Если не постоянный ip адрес на wan интерфейсе, то делаем с masquerade.

add action=masquerade chain=srcnat out-interface=ether1-wan

Включение masquerade

Все, NAT настроен, пользователи могут выходить в интернет. Теперь предлагаю проверить работу firewall, который мы настроили. Сбросьте все счетчики в правилах.

Проверка работы фаервола

Теперь сгенерируйте как можно больше трафика и посмотрите, через какие правила он будет идти. Можно воспользоваться сервисом от Яндекса по измерению скорости интернета - https://yandex.ru/internet/.

Статистика обработанных пакетов

Большая часть трафика прошла по правилу с established, related соединениям, минимально нагружая роутер своей обработкой в контексте именно фаервола. Особенно это будет актуально, если у вас много правил в firewall. Важно их расположить в правильном порядке.

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

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

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

add action=dst-nat chain=dstnat dst-port=41221 in-interface=ether1-wan protocol=tcp to-addresses=192.168.88.200 to-ports=3389

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

Настройка dst-nat

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

add action=drop chain=forward comment="drop all from WAN to LAN" connection-nat-state=!dstnat connection-state=new in-interface=ether1-wan

Если вы настраивали firewall ранее по каким-то другим материалам, там могло быть другое правило, без учета dstnat, например вот так:

add action=drop chain=forward comment="drop WAN -> LAN" in-interface=ether1-wan out-interface=bridge1-lan

К такому правилу надо обязательно выше добавить разрешающее, примерно вот так:

add action=accept chain=forward comment="accept WAN -> LAN RDP" dst-address=192.168.88.200 dst-port=3389 in-interface=ether1-wan protocol=tcp

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

Ограничение доступа по ip к проброшенному порту

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

Создание списка ip в микротик

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

Ограничение доступа по списку ip

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

На этом по настройке NAT и пробросу портов на Mikrotik все. Надеюсь, у меня получилось подробно и понятно объяснить основные моменты и некоторые нюансы.

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

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

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

Тема настройки vpn в mikrotik выходит за рамки данной статьи. Читайте отдельный материла на этот счет. Сделаем простое ограничение доступа к управлению на уровне ip. Для начала создадим список IP адресов, которым будет разрешено подключаться удаленно к winbox.

Защита winbox

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

add action=accept chain=input comment="accept management for white-list" dst-port=8291 in-interface=ether1-wan protocol=tcp src-address-list=winbox_remote

Ограничение доступа через winbox

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

Список ip для подключения по winbox

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

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

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

Полный список правил firewall

Fasttrack

В дефолтном правиле firewall mikrotik включен режим Fasttrack. Я в своих правилах его обычно не использую. Попробую своими словами объяснить, что это такое. Я долго пытался вникнуть в суть этой технологии, когда разбирался.

Fasttrack - проприетарная технология Mikrotik, позволяющая маркировать ip пакеты для более быстрого прохождения пакетного фильтра. Включить режим маркировки пакетов fasttrack очень просто. Достаточно добавить в цепочку forward первым следующее правило:

/ip firewall filter add action=fasttrack-connection chain=forward comment=fasttrack connection-state=established,related

Дальше остаются все те же самые правила, что я описал ранее в статье.

В этом режиме пакеты перемещаются по упрощенному маршруту в пакетном фильтре, поэтому не работают следующие технологии обработки пакетов:

  • firewall filter;
  • mangle rules;
  • queues с parrent=global;
  • IP accounting;
  • IPSec;
  • hotspot universal client;
  • VRF;

За счет того, что маршрут обработки пакетов более короткий, он меньше нагружает процессор в ущерб функционалу. Если вы ничего из перечисленного не используете, то можно пользоваться fasttrack. Однако, чаще всего нужны queues, поэтому от него приходится отказываться. Если же у вас не используются очереди и какие-то особенные правила в firewall, то можете использовать технологию.

Чтобы убедиться, что режим fasttrack работает, можно посмотреть раздел Mangle. Счетчик с маркированными пакетами должен расти.

Fasttrack mangle

И в завершении по fasttrack важное замечание - он не работает в CHR. Я с этим столкнулся лично, когда тестировал. У меня тестовое окружение настроено на CHR и там fasttrack не работал. Причем его можно включить, но все счетчики пакетов будут нулевыми. Реально технология не работает.

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

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

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

Отключение firewall на mikrotik

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

/ip firewall address-list
add address=10.20.1.1 list=winbox_remote
/ip firewall filter
add action=accept chain=input comment="accept establish & related" connection-state=established,related
add action=drop chain=input comment="drop invalid" connection-state=invalid
add action=accept chain=input comment="accept ICMP" protocol=icmp
add action=accept chain=input comment="accept management for white-list" dst-port=8291 in-interface=ether1-wan protocol=tcp src-address-list=winbox_remote
add action=drop chain=input comment="drop all not from lan" in-interface=!bridge1-lan
add action=accept chain=forward comment="accept established,related" connection-state=established,related
add action=drop chain=forward comment="drop invalid" connection-state=invalid
add action=drop chain=forward comment="drop all from WAN to LAN" connection-nat-state=!dstnat connection-state=new in-interface=ether1-wan
add action=accept chain=forward comment="accept http & https from LAN" dst-port=80,443 in-interface=bridge1-lan out-interface=ether1-wan protocol=tcp
add action=accept chain=forward comment="accept dns from lan" dst-port=53 in-interface=bridge1-lan out-interface=ether1-wan protocol=udp
add action=drop chain=forward comment="drop all from LAN to WAN" in-interface=bridge1-lan out-interface=ether1-wan
/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1-wan
add action=dst-nat chain=dstnat dst-port=41221 in-interface=ether1-wan protocol=tcp to-addresses=192.168.88.200 to-ports=3389

Заключение

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

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

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

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

Напоминаю, что данная статья является частью единого цикла статьей про Mikrotik.

Углубленный онлайн-курс по MikroTik

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

217 комментариев

  1. сергей

    Zerox, добрый день! Прошу совета, по реализации задачи. И вот в чем суть: В локальных сетях, мы привыкли к тому, что все компьютеры мы можем найти по имени или по IP, в сети Windows / Linux через проводник в одноранговой сети. Или просто открыть сеть в проводнике, и там отобразяться все устройства. Принтера, с легкостью находят в сети свои устройства через свои программы-проводники. А вот как быть, если сетей несколько и они разделены на подсети, например: 10.10.10./24 - wi-fi, 192.168.250.0/24 - сервера, 172.16.20.0/24- локальная сеть. В правиле firewall недосточно. чтобы сделать forwarding - bridge1 (172.16.20.0/24) - to bridge2 (192.168.250.0/24), forwarding - bridge2(192.168.250.0/24) - to bridge1 (172.16.20.0/24). По IP и если только в ручную вбивать, то все пройдет в проводнике. А если устанавливать программу печати на Windows, например canon, то его программа-проводник по поиску принтера, просто ее не найдет и это проблема. Некоторые скажут, надо развернуть сервер печати на Windows сервере и DNS сервер и туда ручками вбить каждый принтер, и тогда все будет отображаться. Вносить IP -DNS на микротике, не работает. Можете дать совет, как Вы выходили в такой ситуации, какие инструменты/правила применяли??? Спасибо.

    • Такую задачу можно решить двумя способами. Либо через DNS, что будет более надёжно, правильно, современно. Либо поднимать WINS сервер. Он позволит обращаться к компьютерам по именам, как вы привыкли в одноранговой сети. Что касается принтеров и поиска их в локальной сети, то тут всё зависит от того, как программы вендора ищут свои принтеры, поэтому что-то посоветовать трудно. Если они не умеют искать в других подсетях, то сделать что-то вряд ли получится.

      Я бы настраивал DNS и сервер печати. Это нормальный удобный подход.

  2. Спасибо за статью (раз уж зашёл с комментарием - как не поблагодарить автора за труд ;-))! Жил себе нормально с правилами этими и CAPsMAN'ом, да вот только надысь беспроводной интерфейс на самом роутере под его контролем ушёл в небытие (сети с SSID'ом окружение не видит, сам wlan отсвечивает в статусе "no link") и никак не заводится - всю голову сломал вокруг беспроводного интерфейса, а дело оказалось в настройках файервола!!! Вырубил - всё заработало! По итогу сей базовый список дополнился такой строчкой для разблокировки CAPsMAN (вдруг кому сгодится): /ip firewall filter add action=accept chain=input dst-address-type=local src-address-type=local (расположенной, резонно, выше дропа на input).

  3. Geek'sSmartHome

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

  4. Здравствуйте! Есть такое правило: /ip firewall filter add action=accept chain=forward connection-nat-state=dstnat in-interface-list=WAN
    Подскажите, пожалуйста, я правильно понимаю, что оно будет пропускать весь dstnat трафик со вкладки NAT из WAN интерфейса во внутреннюю сеть?
    После него идет правило запрещающее все пакеты цепочки forward (мне так удобнее логировать NAT трафик).

    • Что значит трафик со вкладки NAT? Это раздел с настройками. Там никакого трафика нет, надо правила добавлять. В таком виде я не уверен, что правило вообще будет работать. Не понятно, что оно конкретно должно сделать.

  5. Здравствуйте, после чего вставить правила port-knoking?
    Очередность?

  6. Андрей

    Спасибо за статью. Только вопрос, как менять порядок правил или вставить новое в определенное место цепочки? Как в NAT они не перетягиваются

  7. Максим

    Статья супер, спасибо! Вопрос такой наверно глупый будет... Вот по этому правилу "add action=drop chain=input comment="drop all not from lan" in-interface=!bridge1-lan"
    Что если бриджей несколько?

    • В таком случае удобнее всего будет все эти бриджи добавить в список и в правиле указать этот список, а не бридж.
      Либо заблокировать всё, что идёт с внешнего интерфейса, если он один:
      "add action=drop chain=input comment="drop all not from lan" in-interface=ether1-wan"

      • Максим

        Понял, спасибо, даже применил уже в деле, все прекрасно блокируется. Вот только и правда хлопотно открывать все, что требуется) Стало интересно, а есть ли смысл так блокировать гостевую сеть? Скажем так оставлять что-то основное, по типу whatsapp, т.п., ну http, https трафик. И так и не смог найти, допустим если наоборот трафик с локальной сети в интернет весь не блокировать, а только торрентовский.

    • Виктор

      Добрый день, пытался вычислить спамера в локальной сети, накидал кучу правил, перестала работать почта, не идёт трасировка по 25 и 465.
      Удалил вообще все правила . Почта не заработала. Что может ещё брокировать

      • Вы что-то сделали на роутере, а тут спрашиваете, как исправить :) Для трассировки обычно используется протокол icmp, который к портам вообще не привязан.

  8. Единственное, наверное, чтобы добавил, так это использование Interface List для правил. Зачастую получается как минимум два WAN интерфейса это провайдерский DHCP и VPN. Если объединить их в в общий список WAN, а в LAN список добавить bridge локальных портов, то можно удобнее создавать Firewal правила.

    По поводу Fasttrack.
    В стандартной конфигурации его правило идет ПОСЛЕ этого правила:
    add action=drop chain=forward comment="drop all from WAN to LAN" connection-nat-state=!dstnat connection-state=new in-interface=ether1-wan
    Я так понимаю, вполне логично, получается все установленные и связанные с ними соединения между локальными устройствами и проброшенными портами будут быстрее работать.
    Большое спасибо за объяснение 🍻👍

  9. "первыми в цепочке должны быть правила, которые охватывают максимальный объем трафика, чтобы он дальше не обрабатывался устройством"
    "Поэтому я обычно сначала описываю все правила для input, потом для forward и в конце, в случае необходимости, для output."

    Мне кажется немного не логично.
    Цепочка Forward должна быть первой, большинство пакетов именно в нее и попадут.
    Разве нет?
    Кстати именно так и создаются цепочки по умолчанию. Forward, потом Input ... а Output по умолчанию вообще нет :)

    • Огромное спасибо за Ваши статьи и Телеграм канал 🍻

    • Извиняюсь, тупонул что-то под вечер.😅
      Пакет же в цепочку попадает сначала. Получается в принципе без разницы какая цепочка первой идет.

      • Всё правильно. Порядок правил имеет значение внутри каждой цепочки. А в каком порядке расположены сами цепочки - не принципиально. Многие об этом спрашивают, так как формат правил iptables, на базе которых построен firewall в Mikrotik, немного непривычен, когда впервые с ним сталкиваешься.

  10. Руслан

    Есть задача запретить трафик с тв-приставки ребенку, если в сети не зарегистрирован сотовый ни одного из родителей. Возможно это реализовать на микротике? Подскажите как? А то приходится вручную регулировать

    • Сделать можно, но надо заморочиться. Готовой реализации, понятное дело, под это нет. С помощью скрипта и планировщика это делается. Скрипт должен проверять наличие активной dhcp аренды мак адреса телефонов родителей. Если она есть, то менять соответствующее правило в firewall. Но с пол тычка это не осилить. Надо хорошо разбираться в микротиках и их встроенном языке скриптов. Если прям сильно надо, то придётся заказать у какого-то специалиста.

  11. Сергей

    Спасибо, отличная статья. Но с такими настройками я не могу зайти на сторонние РДП и не работает speedtest.com. Это получается для каждого исходящего подключения на РДП порты нужно пробрасывать?

    • Сергей

      За то всякие Тимвьюверы и Энидески работают) как на вход, так и выход))

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

    • Владимир

      Вы, должно быть, хотели сказать speedtest.net (ну и подключиться к нему же, а вовсе не к com), правда же? )

  12. Владимир

    Не транслируется порт , в чём ошибка?
    /ip firewall nat
    add action=masquerade chain=srcnat comment="LAN to WAN" out-interface=WAN src-address=192.168.88.0/24
    add action=dst-nat chain=dstnat dst-port=60104 in-interface=WAN protocol=tcp to-addresses=192.168.88.10 to-ports=57880
    add action=src-nat chain=srcnat dst-address=192.168.88.10 dst-port=57880 protocol=tcp to-addresses=192.168.88.1
    add action=accept chain=forward comment="accept WAN -> LAN RDP" dst-address=192.168.88.10 dst-port=57880 in-interface=wan protocol=tcp

  13. Можно ли как-то автоматизировать и сделать универсальным процесс проброски портов для IP камер?
    Исходная задача:
    Есть 1000 пользователей
    У каждого в локальной сети подключено скажем 10 ip камер и им назначены 10 IP адресов и 10 портов в локальной сети.
    У нас есть список этих адресов и внешний IP адрес, с которым пользователи определяются при выходе в интернет.

    Нужно сделать одной командой или одной программой нажав кнопку "Выполнить" автоматическую проброску портов для всех камер.
    Исходные параметры: 10 IP адресов и портов, Внешний IP адрес.

    Возможно ли написать такую программу, которая будет выполняться с одного из компьютеров по Windows?

    • Это более чем возможно, потому что к Mikrotik можно подключаться по ssh. Правила фаервола можно настраивать через командную строку через это подключение. Так что задача вполне решаема, но нужны соответствующие навыки.

  14. Если можно, разжуйте пожалуйста по настройке НАТ:
    Есть правило:
    /ip firewall nat
    add action=src-nat chain=srcnat out-interface=ether1-wan to-addresses=10.20.1.20
    "ether1-wan" - смотрит в интернет, адрес порта от провайдера получается по DHCP, но он постоянный! не меняется!
    Вопрос по правилу. Если трафик из цепочки "srcnat" И идет на внешний инет-интерфейс "ether1-wan", ТО применяем действие "src-nat" И перенаправляем на адрес to-addresses=10.20.1.20. Так у нас вроде ether1-wan и так =10.20.1.20. Он же и есть внешний интерфейс, смотрящий в интернет! Почему нельзя (оно-то и нельзя, т.к. нет такой настройки на вкладке "action"! Есть только "на-адрес" и "на-порт". Ну, там, лог включить...) в действиях ("action") применить правило к имени интерфейса, а не к адресу?
    Я чувствую, что явно чего-то недопонимаю.

  15. Здравствуйте. Благодарю за очень толковую статью. Просьба разъяснить такой момент.
    Есть железка Mikrotik hAP Lite model = RB941-2nD.
    Настраиваю в ней как раз по теме - первый порт в инет, все остальные в локалке.
    Порты: eth1-wan (internet); wlan1 - вифи; eth2-lan1,eth3-lan2,eth4-lan3 - лок.сеть; bridge1-lan - мост, включающий все упомянутые интерфейсы.
    прописываю по аналогии правила:

    /ip firewall filter
    add action=accept chain=input comment="accept establish & related" connection-state=established,related
    add action=drop chain=input comment="drop invalid" connection-state=invalid
    add action=accept chain=input comment="accept ICMP" protocol=icmp
    add action=drop chain=input comment="drop all not from lan" in-interface=!bridge1-lan
    add action=accept chain=forward comment="accept established,related" connection-state=established,related
    add action=drop chain=forward comment="drop invalid" connection-state=invalid

    # in/out-interface matcher not possible when interface (eth1-wan) is slave - use master instead (bridge1-lan)
    add action=drop chain=forward comment="drop all from WAN to LAN" connection-nat-state=!dstnat connection-state=new in-interface=eth1-wan

    # in/out-interface matcher not possible when interface (eth1-wan) is slave - use master instead (bridge1-lan)
    add action=accept chain=forward comment="accept http &https from LAN" dst-port=80,443 in-interface=bridge1-lan out-interface=eth1-wan protocol=tcp

    Последние два, как видите, помечены самой системой, как конфликтные.
    Вот и вопрос, что не так? Если не так, то почему? Исправлять, как просит или игнорировать и оставить, как есть?

    • У вас бридж не должен включать eth1-wan интерфейс. В ошибке как раз именно это и сказано:
      when interface (eth1-wan) is slave
      WAN интерфейс не должен быть в бридже с интерфейсами локальной сети. Это шибка.

      • М-да, внимательность, и еще раз внимательность... Провтыкал, благодарю. Как только поправил - все стало на свои места.

  16. Виталий

    Спасибо за статью. Мне как начинающему пользователю микротика кое-что не понятно. Я настраивал проброс порта 8000 для подключений извне к видеорегистратору, расположенному в локальной сети. А спустя время мне понадобилось самому подключиться к видеорегистратору в чужой сети через внешниий айпи. Не вышло, говорят что порт 8000 должен быть разрешен и на исходящие соединения. Как это сделать не пойму? Буду благодарен за помощь

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

  17. Владимир, спасибо за статью.

    Пара вопросов.
    1. Основной трафик же будет проходить через правило accept forward established. Почему бы его не поднять наверх тогда?
    2. Читал в другой статье, что "все правила дропа лучше всего вывести в RAW таблицу Firewall т.к. он отрабатывает еще раньше чем правила в Firewall Filter". Могли бы прокомментировать? Действительно ли это так работает? Не принесёт ли проблем?

    Спасибо.

    • 1. Это правило и так первое в своей цепочке. Двигать выше в общем списке не имеет смысла.
      2. Да, это действительно так. Обработка правил в RAW таблице занимает меньше всего ресурсов. Но там не весь функционал обработки доступен. В общем случае, если у вас не провайдерский уровень нагрузки, большого смысла переносить туда правила нет. Только усложните настройку и отладку. Если у вас действительно CPU сильно нагружен обработкой пакетов в firewall, тогда стоит думать об его оптимизации и переносе части правил в RAW.

      • Спасибо за пояснения.

      • 1. Подскажите про бессмысленость по этому пункту. Получается пакет который прилетел и стал форвардом попадает для проверки во все правила фаервола и проверка начинается не с первого номера во все той таблице, а с 'первого' (шестого) для цепочки форвард? Первые пять не проверяются т.к. они для инпутов, ароутер до всех этих проверок уже определил пакеты в форвард, правильно?

        • Если я правильно помню своё обучение, то да. Пакеты сразу попадают в свою цепочку и имеет значение порядок именно в конкретной цепочке правил, а не в общем списке. Я могу тут ошибаться, но насколько помню, тоже задавался когда-то этим вопросом и запомнился такой ответ.

  18. Zerox здравствуйте. Большое спасибо за статью. Все подробно и просто расписано.
    У меня настройки роутера похожи на ваши:
    Кабель от провайдера вставлен в порт ether1. На этом порту создано подключение ppoe-out1
    Порты ether2, ether3, ether4, ether5 объединены в bridge1.

    Помогите пожалуйста разобраться, как изменяться ваши инструкции если создано подключение ppoe-out1 на порту ether1.
    Если при настройке NAT я указываю параметру Out. interface значение ether1 то NAT не работает интернет у юзверей не появляется.
    Также при пробросе портов, если указать в Nat rule параметру In. Interface значение ether1 то порт доступен из интернета не будет.
    В правилах файрволла также если открываю порты для доступа из интернета к управлению микротиком через WinBox , то значение ether1 в настройке In. Interface не работает.
    Подскажите пожалуйста что нужно поменять?

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

    • Не работает что именно? Загрузка файлов к себе через торрент или раздача?

      • Не работает на скачивание и на раздачу.

        • В моем итоговом наборе правил разрешено только подключение по http (80-й порт) и https (443 порт) из локальной сети в интернет. То есть работает только браузер и серфинг интернета. Это просто пример того, как настраивать firewall. Не обязательно у себя делать так же. Если вам нужно разрешить торренты, то последнее правило с блокировкой всего остального просто отключайте. Если не ошибаюсь, то торрент использует достаточно большой диапазон портов для работы. В некоторых клиентах он настраивается. Можно его указать и открыть дополнительно на фаерволе.

  20. Михаил

    Здравствуйте! Использую CHR Level P1. Настроены Mangle Rule. Счетчики пакетов растут, правила работают как нужно.

  21. Станислав

    здравствуйте а при такой блокировки add action=drop chain=forward comment="drop WAN -> LAN" in-interface=ether1-wan out-interface=bridge1-lan папки которые в сети получаются тоже не доступны? что то я не могу зайти в расшареную папку и пытаюсь понять а как к папке доступ открыть?

    • Я не знаю, как у вас папки организованы и доступ к ним. Указанным правилом вы блокируете весь транзитный трафик роутера с интерфейса ether1-wan на bridge1-lan. Можете включить логирование того, что заблокировано правилом. Тогда увидите, блокируются ваши запросы или нет.

  22. Станислав

    Здравствуйте,Вы коснулись Защита подключения через winbox и упоминали vpn, если он создан то как ему разрешить заходить на микротик на примере available from?
    Например я подумал ограничить вход вписав внутреннюю сеть - скажем 192.168.4.0/24 ,ок я так понимаю все кто в этой сети могут подключится,есть пул vpn скажем - 11.10.1.0/24, добавив в поля available from 192.168.4.0/24 и 11.10.1.0/24 я не могу зайти все равно,я так понимаю надо какое то разрешение в fairwoll,но какое примерно?Я подумал что если нахожусь как бы внутри сети от впн я как бы должен быть в этих сетях и как бы иметь доступ,я правильно мыслю,или нет?

    • Мыслите правильно. Тут нужно настраивать именно firewall. Через available from не знаю насколько нормально отрабатывает подключение из vpn, так как сам я эту настройку не использую. Я все настраиваю в firewall, чтобы было в одном месте. В этом случае нужно просто запретить все входящие подключения, а разрешить только из сетей локальная и vpn. Как это сделать, в статье есть примеры. Думаю, у вас получится.

      • Станислав

        Если я отключу в ip service list - winbox я буду иметь доступ к winbox если пропишу в firewall?

  23. В чём может быть проблема?

  24. Добрый день.
    Я полный новичок в этой сфере. Если можете, подскажите пожалуйста.
    У себя дома решил сделать сеть на CAPsMAN. В сети есть система IP-видеонаблюдения. Камеры как проводные так и подключенные по wi-fi через точку доступа TP-link. Сначала все работало хорошо, но через некоторое время wi-fi камеры перестали подключаться как к точке доступа, так и к самому роутеру.

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

  25. привет всем ,сайты работатют но если хочу пинг сделать нету пинги по IP

    • Если пинг не работает, значит заблокирован протокол icmp каким-то правилом. Надо его явно разрешить.

      • "На текущий момент мы запретили все запросы из вне к роутеру, кроме пингов. При этом доступ из локальной сети полный. Настроим теперь правила для транзитного трафика цепочки forward. Здесь по аналогии с input первыми идут правила для established, related, invalid пакетов"

        add action=accept chain=forward comment="accept established,related" connection-state=established,related
        add action=drop chain=forward comment="drop invalid" connection-state=invalid

        А вот тут я не совсем согласен что правило "forward drop invalid" должно идти сразу после accept forward.
        Например, если у вас внутри сети за mikrotik будет vpn сервер (со своей выделенной виртуальной подсетью для удаленных пользователей). Вам потребуется добавить правила forward для прохождения пакетов между внутренней сетью и виртуальной сетью vpn. Но т.к. правило invalid drop forward будет находиться выше нашего правила для vpn сети, пакеты будут попадать в invalid, т.к. в какой то момент не будет состояния коннекта у пакетов идущих от удаленных пользователей с сети vpn. Проверено уже на своем опыте. В данном случае правило drop invalid нужно будет ставить после разрежающих правил forward для внутренней сети и вирт сети vpn.

        • Я понял идею. Возможно вы правы, но нет возможности быстро проверить. Сам не сталкивался с такой ситуацией.

  26. Сергей

    Владимир, огромное спасибо за статью, хоть что-то начало проясняться. Если Вас не затруднит, прошу помочь в таком кейсе: клиенты из локальной сети ходят на удаленный сервер через L2TP-клиент, поднятый на Mikrotik. Можно ли ограничить возможность подключения этих самых пользователей ТОЛЬКО адресами пула L2TP, а во внешку как таковую никого не пускать?

    • Можно настроить все, что угодно :) Делайте правила соответствующие. Сначала то, что разрешено, а в конце полное запрещение для этих клиентов.

  27. С русским у всех постоянные проблемы, извне пишется, а не как в статье.

  28. Руслан

    Здравствуйте!!! Как мне настроить фаервол на микротик если у меня подключение PPPoe а порты 2.3.4.5 и вайфай обьеденены в bridge1

  29. В Firewall/Service-Port sip включено
    У меня виртуальная АТС от МТС... SIP телефоны за NAT...
    В город звоню и из города тоже... А между телефонами тишина...
    Что может быть не так?

  30. Виктор

    Всё, увидел где пропустил. Извиняюсь.

  31. Виктор

    add action=drop chain=forward comment="drop all from LAN to WAN" in-interface=bridge1-lan out-interface=ether1-wan
    Блокирует интернет для всех. Это ошибка или что то пропустил?

  32. Здравствуйте. Хочу поднять прокси на микротике. Цель закрыть интернет всем приложениям кроме явно разрешенных через SOCkS5. Опишите если можно логику работы взаимодействия socks firewall и nat (кто кого слушает и кому что разрешает).

    • Я никогда не настраивал socks5 на микротике, так что не подскажу.

    • В общем случае, достаточно просто разрешить подключаться на порт, где работает socks5.

      ip firewall filter add chain=input protocol=tcp dst-port=1080 action=accept comment="SOCKS5"

  33. Дмитрий

    Здравствуйте. Как можно на микротике прописать отмену подмены входящего ip адреса из интернета? Когда кто-то коннектится к серверу за микротиком, то сервер показывает локальный адрес микротика, а не тот внешний.

  34. Валерий

    Все супер! Давайте теперь расширенную настройку))
    Кстати, в System - users в свойствах пользователя вы не прописываете ip с которых можно подключаться?

    • Ограничение для подключения по winbox я обычно настраиваю в отдельном списке в firewall. Так удобнее, когда все в одном месте находится.

  35. Правило add action=drop chain=forward comment="accept dns from LAN" dst-port=53 in-interface=bridge1-lan out-interface=ether1-wan protocol=udp должно блокировать запросы днс внутри сети, но оно не работает, в вашей же статье вы сами указали что нужно включить правило чтоб страницы открывались, я хочу блокировать!

    /ip firewall filter
    add action=accept chain=input comment="accept establish & related" connection-state=established,related
    add action=drop chain=input comment="drop invalid" connection-state=invalid
    add action=accept chain=input comment="accept ICMP" protocol=icmp
    add action=drop chain=input comment="drop all not from lan" in-interface=!bridge1-lan
    add action=accept chain=forward comment="accept established,related" connection-state=established,related
    add action=drop chain=forward comment="drop invalid" connection-state=invalid
    add action=drop chain=forward comment="drop all from WAN to LAN" connection-nat-state=!dstnat connection-state=new in-interface=ether1-wan
    add action=accept chain=forward comment="accept http & https from LAN" dst-port=80,443 in-interface=bridge1-lan out-interface=ether1-wan protocol=tcp
    add action=drop chain=forward comment="accept dns from LAN" dst-port=53 in-interface=bridge1-lan out-interface=ether1-wan protocol=udp
    add action=drop chain=forward comment="drop all from LAN to WAN" in-interface=bridge1-lan out-interface=ether1-wan

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

    В наличии имеется Windows server 2012 на котором поднят VPN L2tp+IPsec.
    К серверу подключаются два Microtik в режиме клиента по L2tp+IPsec.
    Mikrotik 1 — Lan 192.168.6.1(Поднят DHCP для клиентов), VPN L2tp 192.168.200.6.
    Mikrotik 2 — Lan 192.168.5.1(Поднят DHCP для клиентов), VPN L2tp 192.168.200.5.
    На двух Mikrotik я настроил Route list что в сеть 192.168.200.0 ходить с L2tp.
    К Mikrotik 1 подключен ноутбук с IP 192.168.6.2 который может делать ping
    к Mikrotik 2 VPN L2tp 192.168.200.5 но делать ping в Lan 192.168.5.0 я не могу.
    Я добавлял в Route list Mikrotik 1 маршрут к Lan 192.168.5.0 через VPN и на оборот на другом клиенте но ничего не выходит, доступа нет.
    Карта сети, для наглядности.
    https://cdn1.savepice.ru/uploads/2020/7/3/b48a1390480ca2689181018f031b47d1-full.jpg

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

    Добрый день. Прошу оказать содействие в настройки маршрутизации.
    В наличии имеется Windows server 2012 на котором поднят VPN L2tp+IPsec.
    К серверу подключаются два Microtik в режиме клиента по L2tp+IPsec.
    Mikrotik 1 - Lan 192.168.6.1(Поднят DHCP для клиентов), VPN L2tp 192.168.200.6.
    Mikrotik 2 - Lan 192.168.5.1(Поднят DHCP для клиентов), VPN L2tp 192.168.200.5.
    На двух Mikrotik я настроил Route list что в сеть 192.168.200.0 ходить с L2tp.
    К Mikrotik 1 подключен ноутбук с IP 192.168.6.2 который может делать ping
    к Mikrotik 2 VPN L2tp 192.168.200.5 но делать ping в Lan 192.168.5.0 я не могу.
    Я добавлял в Route list Mikrotik 1 маршрут к Lan 192.168.5.0 через VPN и на оборот на другом клиенте но ничего не выходит, доступа нет.

  38. Дмитрий

    Здравствуйте!
    Настроил микротик по вашему мануалу, затем настроил файервол по этой статье.
    Но не работает SNTP, роутер не синхронизирует время.
    Вот скрин настройки SNTP https://i.imgur.com/8c8cFZa.png

    • Попробуйте вместо ip адресов указать dns имена 0.europe.pool.ntp.org и 1.europe.pool.ntp.org. Раньше это нельзя было сделать, указывались только ip адреса. А сейчас можно и dns имена.

      • Дмитрий

        Спасибо, все заработало.
        Возник следующий вопрос, как поднять сервер ntp?
        В System нет такого пункта.

        • Насколько мне известно, в микротиках нет такого функционала.

        • Дмитрий

          Здравствуйте. Как можно на микротике прописать отмену подмены входящего ip адреса из интернета? Когда кто-то коннектится к серверу за микротиком, то сервер показывает локальный адрес микротика, а не тот внешний.

          • Куда именно коннектится кто-то за микротиком? Что это за сервер? Как осуществлен доступ через микротик к этому серверу?

            • Дмитрий

              У микротика внутренний ip 192.168.1.1. К нему подключён сервер 192.168.1.10, который работает на 11110 порту. Этот же порт проброшен в мир. Когда кто-то из интернета коннектится к серверу, то отражается в логах всё время ip микротика 192.168.1.1, а не внешний адрес того человека

              • Это очень странно. При пробросе порта сохраняется адрес отправителя в заголовках, если я ничего не путаю. Подмены быть не должно. У вас точно обычный проброс настроен и все?

                • Дмитрий

                  Да. Другого больше же не дано)

                • Дмитрий

                  Сейчас проверил. Проброс настроен обычный. Но вот интернет настроен на ДВА провайдера. В роутер заходят два кабеля от провайдеров. Может, в этом причина? Получается, роутер обрабатывает эти две линии, принимает сам решение о том, какой интернет задействовать, поэтому и пишет, что как-будто это он выдал интернет? Элементарно, когда к убунте даже подключаешься по ссш, то в самом начале она пишет "Last login from 192.168.1.1". Даже когда с мобильного интернета.

  39. Сергей

    Здравствуйте. Н могли бы подсказать куда копать. Что-то в толк ни как не возьму. Решил ради эксперимента отделить свой кабинет от локальной сети. Настойки по умолчанию, т.е. сеть 88.0/24. В итоге как выяснилось через несколько дней когда потребовались программы KM-NET VIEVER отслеживает мфу Kyocera в сети. Все принтеры показывает Отключено. Программа работает по порту 9100, какие правила только не пробовал. И проброс портов, в общем все что в интернете попадалось эксперементировал. На днях еще узнал, что программа RaiDar для сетевого хранилища Netgear тоже не работает((. Делал правила разрешающие из сети 6.0/24 идти в 88.0/24 и второе правило наоборот. Ни как((( Натолкните на правильный путь если возможно. Спасибо.

  40. Сергей

    Отличная статья, намного лучше чем у технотрейда! спасибо за разъяснения по правилам.

  41. Геннадий

    add action=drop chain=input comment="drop all not from lan" in-interface=!bridge1-lan мешает CAPsMAN-у разворачивать точки,
    как создать для него отдельное правило? Спасибо

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

    • В умолчальной конфигурации есть спецправило для капсмана, если не ошибаюсь, разрешает весь траф на интерфейсе lo0 (хотя надо бы посмотреть и уточнить).

  42. Вот это правило add action=drop chain=input comment="drop all not from lan" in-interface=!bridge1-lan блокирует доступ к Mikrotik из Winbox в локальной сети. Возможно зайти только по MAC! А хотелось бы по IP, Подскажите что не так в правиле?

    • Тут блокируются все входящие запросы, пришедшие не из бриджа bridge1-lan. Раз вас не пускает, значит интерфейс, подключенный к локальной сети, не входит в bridge1-lan. Возможно забыли бридж сделать или назвали его по-другому.

    • Дмитрий

      Здравствуйте. Как можно на микротике прописать отмену подмены входящего ip адреса из интернета? Когда кто-то коннектится к серверу за микротиком, то сервер показывает локальный адрес микротика, а не тот внешний.

  43. Спасибо за статью, очень подробно!

  44. Добрый ночи/день/вечер!
    Был бы признателен. Если сможете мне немного объяснить или направить на путь истинный.
    Стоит в которе микрот.
    Встала задача разнести локалку по отдельным подсетям.
    Что было сделано:
    1. На одном интерфесе созданы VLANы к примеру 10 бух, 11 продажники, 12 сервис, 13 сервера.
    1.2 Создал для каждого VLAN свой Bridge
    2. Созданы для каждого VLANа свой ip диапозон. К примеру 10.0/24, 11.0/24, 12.0/24, 13.0/24
    3. Создал DHCP для каждого VLANа, с пулом адресов.
    4. ПРописал в нате разрешение на выход в инет для определенных сетей.
    Сообственно вопрос!
    Как мне закрыть доступ к примеру сервису доступ к серверам?
    При этом доступ с серверов что бы был к сервису.
    Что пробовал:
    В ip -Routes-Rules добавлял правило 12.0/24 - 13.0/24 unreachble - доступ закрывался. НО при этом из 13 сети я не смог подключиться ни к одному Ip из 12.
    ПРобовал через Firewall 2 разными способами.
    1. Создал правило forward из 12 в 13 drop Результат тот же что и при ip-routes
    2. Создал 2 правила разрешаюше из 13 в 12 и запрещаюе из 12 в 13.
    Результат доступ закрываеться прекрассно. Но проблема остается я не вижу из 13 сети 12....
    Мозг сломал. Понимаю, что где-то косяк, причем на ровном месте, но где?....

    • Я не понял вашу идею. Вы закрываете доступ от сервиса к серверам, а потом с серверов подключаетесь к сервису. А как сервис ответит серверам, если доступ оттуда закрыт? Мне кажется, вы не в том направлении копаете. Для работы соединения, связь должна быть в обе стороны. Пакеты ходят в обоих направлениях.

      • Согласен. Возможно. Мне необходмо, что бы 12 подсеть не видела 13 вообще. Но при этом я смог бы из 13 к 12 подключиться.

        • В общем случае это невозможно. Как я уже говорил, связь идет в обоих направлениях. Единственное, что можно попробовать, это разрешить доступ из 13 в 12 весь, а из 12 в 13 только установленные соединения. Возможно, этого вам будет достаточно, но я не уверен, что все сервисы в таком режиме будут работать нормально. Как я уже сказал, связь нужна двухсторонняя, так как движение пакетов идет в обе стороны. Наверняка этот вопрос можно решить каким-то более сложным уровнем, но вот так сходу я не знаю и не припоминаю, чтобы где-то видел такие решения.

          • Добрый день!
            Решил вопрос.
            Прописал в ip-route-rules правила с 2 подсетями анричибл и создал правила лукуп и с название таблиц.
            Далее в файрволе создал правило дроп с протоколом tcp исключающим порт 3389 и указанием интерфейса. В принципе чего я и добивался.
            Согласен что возможно часть ресурсов не будут работать. Но мне на той подсети локальные ресурсы и не нужны)

  45. Не работает Outlook при данных настройках.
    Не получает письма и не отправляет.

    Задача - отправка' сообщила об ошибке (0x80042109) : 'Невозможно подключиться к серверу исходящей почты (SMTP). Если вы получите это сообщение снова, обратитесь к администратору сервера или поставщику услуг Интернета.'

    • Если вы разрешили для локальной сети выход в интернет только по портам 80 и 443, как в примере, то да, не будет работать почта. Откройте порты для почты. Если не знаете как, то лучше отключите ограничение трафика из локальной сети. В статье все это описано.

  46. Приветствую!
    На устройстве выдача адресов настроена на 192.168.88.0/24
    Оставил возможность подключения по web и ssh
    ip service pr
    Flags: X - disabled, I - invalid
    # NAME PORT ADDRESS CERTIFICATE
    0 X telnet 23
    1 X ftp 21
    2 www 80
    3 ssh 1582 192.168.88.0/24
    4 X www-ssl 443 none
    5 X api 8728
    6 X winbox 40457
    7 X api-ssl 8729 none

    Но при настройке файерволла допустил ошибку и указал не ту 162ую подсеть

    ip firewall ad
    /ip firewall address-list> add address=192.162.1.0/24 list=allow-ip
    /ip firewall address-list> add address=192.162.88.10/32 list=allow-ip
    /ip firewall address-list> ip firewall filter
    bad command name ip (line 1 column 1)
    /ip firewall address-list> ..
    /ip firewall> filter
    /ip firewall filter> add action=accept chain=input comm="allow address list" scr-address-list=allow-ip
    expected end of command (line 1 column 57)
    [onelove@MikroTik] /ip firewall filter> add action=accept chain=input comm="allow address list" src-address-list=allow-ip
    [onelove@MikroTik] /ip firewall filter> pr
    Flags: X - disabled, I - invalid, D - dynamic
    0 ;;; allow address list chain=input action=accept src-address-list=allow-ip log=no log-prefix=""
    /ip firewall filter> add action=add-src-to-address-list address-list-timeout=1h chain=input packet-size=1988 protocol=icmp
    /ip firewall filter> add action=drop chain=input

    Клиенты получают адреса, из 192.168.88.0/24, выход в интернет доступен.

    А вот подключиться к микротику я никак не могу.

    Вопрос, есть ли возможность подключиться к админке или остаётся вариант сброса роутера?

    Спасибо!

    • Подключитесь по маку к нему, если есть возможность оказаться с ним в одном широковещательном домене (условно в одной локальной сети через общий свитч).

      • Гениально!

        Сначала подумал сделать виртуальный свитч и с него раздать адреса 192.162.1.0/24
        Но потом решил раскрутить тему про подключение по маку и (о, чудо!) у микротика есть свой сервис мак-телнет.
        Немного поискав нашёл решение на github. Для него требовались linix/unix системы, что в моём случае трудно исполнимо. Ещё немного поискав нашёл клиент для windows - https://mikrotik.com/download/neighbour.zip
        (В итоге с него всё и исправил)

        Всё оказалось проще пареной репы - подключение по мак-адресу можно выполнить и из winbox несмотря на то, что сервис winbox отключён на целевом устройстве. Да ещё с клиента, доступ которому к админке закрыт файерволлом.

        Zerox, огромная благодарность!

        PS
        Теперь буду рассматривать мак-телнет (Tools->Mac Server) как ещё один пункт безопасности.

        Всем добра!

  47. Zerox, большое вам человеческое спасибо за все ваши труды! Очень помогает, особенно сейчас, когда с вирусом пришло время покопаться в этих Микротиках. :)

    У меня возникла одна маленькая проблемка и если вы сможете ей уделить минутку - я буду очень признателен.
    Вот это вот правило
    >add action=drop chain=input comment="defconf: drop all not coming from LAN" in-interface-list=!LAN

    блокирует работу CAPSMAN который прямо на этом раутере (тот, который по ethernet подвключен прекрасно работает). Если выше добавить правило которое accept c 192.168.2.1 на 192.168.2.1 (адрес самого раутера), то всё начинает работать правильно. Также можно в проблемном правиле поменять !LAN на WAN и тоже всё заработает. Но оба эти решения как-то не выглядят правильно. Как бы это покрасивее сделать?

    Спасибо.

    • Добавьте в список LAN интерфейс Capsman да и все. Либо сделайте отдельное разрешающее правило для него. Не очень понял, в чем конкретно проблема.

  48. Пользователь

    Правильное ли я понимаю, что в "В данном случае 10.20.1.20 ip адрес на wan интерфейсе. Если не постоянный ip адрес на wan интерфейсе, то делаем с masquerade." ip 10.20.1.20 это постоянный ip который мы имеем, и к примеру если он у на 77.88.8.1 то его и указывать?

    • Да, все верно.

      • Пользователь

        Спасибо! Поменял с макарадинга на ваш вариант с srcnat. Владимир, а вы не планируете написать статью на тему queue tree в цикле ваших статей про mikrotik? Было бы очень полезно заодно и их настроить.

        • Планирую рассказать про очереди. Но пока не знаю когда. На повестке дня обновление статьи по capsman.

  49. Аноним

    Добрый день. Не могу понять зачем добавлять правило drop invalid, если следующее правило режет все оставшееся?
    "add action=drop chain=input comment="drop all not from lan" in-interface=!bridge1-lan"

    • В данном случае можно было и не делать. Но в общем случае рекомендуется это делать всегда, чтобы отрезать паразитный трафик сразу же, чтобы он не обрабатывался дальше фаерволом. В реальной конфигурации скорее всего правил на input и forward будет побольше перед финальной блокировкой всего и вся.

    • Никита

      Делать отдельные правила в фаерволе для каждого типа трафика (к прим Invalid) помогает мониторить что происходит в сети, посредством просмотра счетчиков

  50. Спасибо за материал, может уже задавали вопрос. Больше академического интереса: а можно ли в микротике провернуть такой трюк, типа редирект или проброс между портами маршрутизатора, например, из внешней сети на порт 56080, переправлять на 80 порт его локального адреса? Притом с внешней стороны порт заблокирован, а со стороны локальной сети открыт.
    PS. С наскока попробовал – не получилось, даже через цепочку форвард на ip маршрутизатора в локальной сети, все равно пакет блокируется, вероятно это считается внешним соединением.

    • Попадает в правило дропающие все внешние запросы на 80 порт.

    • Можно, в цепочке dst-nat с помощью action=redirect. Правда это для варианта, когда запрос идет из локальной сети. Так можно, к примеру, весь dns трафик завернуть на внутренний dns микротика. С внешней сети не пробовал таких трюков, но думаю, тоже можно. Надо тестировать.

      • Доброго дня!

        Настроил в NAT такой DNS-прокси чтобы все запросы обрабатывались DNS-сервером маршрутизатора, но попал в засаду, если не указывать конкретно интерфейс (в моём случае интерфейс-лист) то отсутствует интернет на гостевой сети CAPsMAN (на отдельном бридже, со своим DHCP, адреса DNS даны от Яндекса), если же в правиле указать конкретно интерфейс-лист локальной сети то гостевая сеть работает как надо. Очень жду обновлённой статьи по CAPsMAN!!!!

        • Вот как раз открыл редактор, чтобы начать переделывать статью по capsman. Появилось время и возможность. С учетом, что на ее переработку надо часов 10, не знаю, когда закончу это дело.

          • Если возможно поподробнее про гостевую сеть, старые мануалы себя изжили, либо отключать правило файервол о дропе всего что не из локалки в input, либо извращаться как я в прерутинге. У меня DNS-прокси и NTP-прокси заворачивают весь трафик по 53 и 123 портам на соответствующие серверы в тике. Спасибо Вам огромное что доходчиво объясняете.

            • Так в чем конкретно проблема? Что там в Capsman такого особенного? Заворачивайте только тот трафик, что нужен, соответственно выбирая интерфейсы или подсети, на которые эти правила должны действовать.

              • Ну если в кратце, есть два бриджа, lan и guest, они указаны в двух разных datapath, созданы две конфигурации, в провижн гостевая конфигурация установлена слейвом к основной. Всё по старым, надёжным и проверенным временем мануалам. А по результату получил что в мастер-сети инет есть а в слейве нет. Маскарадинг (сорснат) на обоих сетях в NAT сделаны. Вот и выламываю себе мозг)

  51. Статья полностью переработана и обновлена.

    • Дмитрий

      Большое спасибо за статью. Только здесь разобрался как мне пробросить порты)))
      У меня RouterOS v6.43.12 (stable)

  52. Сергей

    Добрый день!
    Соединил два микротика с белыми адресами через Ike2 по туннелю
    Порты в firewall не открывал, использовал дефолтный firewall

    и пакеты все идут через первое правило
    add action=accept chain=input comment="defconf: accept established,related,untracked" connection-state=established,related,untracked

    Так должно быть?

    • Да, так должно быть. Все пакеты после установления соединения идут по этому правилу. В момент установления соединения, пакеты прошли по другому.

      • Сергей

        Но я в firewall не открывал порт 4500?
        Как установилась связь ?

        • На это вам никто не ответит, не видя всех настроек вашего устройства.

          • Сергей

            Настройки все стандартные после сброса микротика

            /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

            • Сергей

              Если делаю Disable на этом правиле то туннель Ike2 не поднимается
              action=accept chain=input comment=\«defconf: accept established,related,untracked» connection-state=\established,related,untracked

              • Я не настраивал Ike2 никогда на микротиках. Может пакеты untracked помечаются, поэтому по этому правилу проходят? Потушите туннели, сбросьте все счетчики и поднимите туннели. Посмотрите, в каких правилах счетчики увеличились. Дальше можете эти правила редактировать, чтобы точно понять, что к чему.

                • Сергей

                  Если на этом правиле убрать галку с "established" то туннель не поднимается

                  Интересно это глюк в прошивке 6.45.8 микротика или так должно быть

                  action=accept chain=input comment=\«defconf: accept established,related,untracked» connection-state=\established,related,untracked

  53. Предлагаю для доступа к микротику с любого айпи добавить правило которое добавляет айпи в белый список с лимитом скажем на 1 час
    add chain=input action=add-src-to-address-list protocol=icmp address-list=allow-ip address-list-timeout=1h packet-size=758 log=yes log-prefix="allow-ip" comment="add allow IP"

    при получении пинга с пакетом 758 айпи добавится в список доверенных на 1 час, пинг с компа пакетом 730, 28 байт служебной информации

  54. Валерий

    А почему вы не блокируете invalid в цепочке input?

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

  55. Владимир Н

    Здравствуйте! Подскажите пожалуйста при PPPOE интернете в правилах правильно указывать номер порта на котором кабель провайдера или имя PPPOE интерфейса?

  56. День добрый
    Подскажите, как организовать защищенный канал - на офисах микротики, а сервер на hetznere

  57. Доброго здравия.
    А с чем связано, что сначала идут правила в цепочке input, а уже потом forward.
    Основной поток пакетов это проходящие. Логичнее давать в обработку наиболее часто встречающиеся, а потом уже более редкие.

    • В самом начале все равно стоят правила на установленные соединения. На них попадает подавляющее число пакетов. Я привык всегда начинать с input правил. Так исторически сложилось. Я не работаю в сфере hightload. В моем случае реально не имеет значения, в каком порядке писать правила. Чаще всего я пишу их так, чтобы удобнее было читать и разбираться.

  58. Алексей

    Доброго времени суток, прошу помощи, суть проблемы такова, провели новый 1G кабель, при настройке через квик-сэт банальное поднятие ПППоЕ соединение отваливается, есть разрывы, потеря пакетов 80%. НО! При подключении на прямую к компу всё работает! Если же подключить к роутеру старый 100Мб кабель ПППоЕ не отваливается это у провайдера проблема? или есть какие-то нюансы при настройке 1G... P.S. пока у меня два кабеля 100 и 1G для теста... MikroTik hAP ac (RB962UiGS-5HacT2HnT)

    • Нет никакой разницы, что 100Mb, что 1G. Попробуйте настроить на микротике 1G и позвоните провайдеру, скажите, что у вас потери большие пакетов. Они могут у себя посмотреть и увидеть, в чем проблема. Хотя если этот же кабель и это же ПППоЕ соединение нормально работает на компе, то даже не знаю, что сказать. Решение проблемы усложняется, так как провайдер может просто послать и сказать, что разбирайтесь у себя сами. Но без его логов эту проблему можно вообще не решить.

  59. Почему в первых стандартных разрешающих правилах присутствуют untracked соединения, а в итоговом списке правил в конце статьи в этих же разрешающих правилах untracked соединения отсутствуют?!
    На Mikrotik WIKI вроде их нет в стандартных....

  60. Григорий

    А если я не знаю. с какого ip адреса мне придётся зайти на роутер, то как быть?

    • Настроить где-то внешний vpn со статическим ip и разрешить заходить с него. Либо проще, но менее безопасно - настроить vpn на самом микротике и разрешить доступ только к vpn, а потом уже к winbox.

      • Григорий

        Так это всё платные варианты. Я правильно понимаю, что на халяву как в роутерах keenetic или Tp-link подключаться к микротику не получиться?

        • Я не знаю, что значит на халяву как в tplink или keenetik.

          • Григорий

            Ну это значит бесплатно. Стучишься на имя своего роутера и попадаешь в него. Причём работает даже на сером ip, что на микротике вообще невозможно.

            • Winbox --> Quick Set --> VPN Access
              Задаем пороль. Готово.
              /ip cloud DDNS - Enabled должно быть.
              Firewall Filter Rules - будут добавлены автоматически.

      • Сергей

        Почему менее безопасно — настроить vpn на самом микротике? Из-за отсутствия UDP протокола для OpenVPN?

        • Менее безопасно по сравнению с ограничением по ip адресу. VPN же будет открыто для всех. Но это все равно лучше, чем открывать для всех winbox.

  61. самый простой способ защить доступ к winbox - IP -> Services -> в поле Available From вводите список адресов с кторых доступ разрешен

  62. Виталий

    Zerox, спасибо за мануал. Раньше использовал правило для раздачи интернета по списку:
    add action=accept chain=forward comment="Dostup v Internet po spisku" disabled=yes in-interface=bridge-local out-interface-list=WANList src-address-list=internet
    но с дефолтными настройками это правило не работает, подскажите что не так.
    Сейчас использую следующий конфиг:
    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=accept chain=input comment=SHH dst-port=49001 protocol=tcp
    add action=drop chain=input comment="defconf: drop all not coming from Lan" in-interface=!all-ppp 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=WANList

    • Мне так трудно что-то посоветовать, потому что "не работает" понятие растяжимое. Плюс, надо видеть все настройки. Возьмите за пример статью и сделайте по аналогии, просто добавив список доступа.

  63. Евгений

    add action=drop chain=input comment="all input block" in-interface=ether1
    Если указать это правило, то не будет подключаться PPTP vpn-client на микротике

    • Это правило запрещает все входящие соединения, которые не разрешены явно. Много чего не будет работать. В этом режиме firewall нужно настраивать вручную на подключение только того, что разрешено.

  64. В самом начале статьи нужно описать зачем нужна кнопка "safe mode". Это критически важная информация! Вот прям закриншотить и написать "пред настройкой нажмите эту кнопку!". Из десятка мануалов в инете я только в одном встретил описание этой кнопки.

  65. Дмитрий

    Спасибо за труд! Возник вопрос: что делает 6 правило? сразу за фасттрек. Если мне фасттрек не нужен и форварда нет - нужно ли 6? Спасибо.

    • Это правило автоматом пропускает все установленные соединения цепочки forward. Чтобы они установились, они и так уже прошли по всем правилам, так что гонять их еще раз нет смысла. Проще их сразу разрешать отдельным правилом. Если у вас forward трафика нет, правило не нужно. Но скорее всего этот трафик у вас есть. Без него особо нет смысла и в самом микротике.

  66. Андрей

    добрый день. Я правильно понимаю, что правило фаервола "В завершении запретим все подключения из WAN в LAN" в итоге блокирует проброс портов и wan в bridge тоже? У меня так и произошло.

    • Да, все верно. Для проброса надо отдельные правила с forward делать, открывая только то, что нужно.

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

    • Нужно понимать, что микротик увидит ваш мак, только если у него есть такая возможность. Вы должны напрямую подключаться к нему, минуя другие свитчи и роутеры. А вообще, вопрос интересный. У меня никогда не было такой задачи, так что не знаю, можно ли это сделать. Если разберетесь в вопросе, поделитесь информацией.

      • Я в этом вообще чайник.
        Из информации с других источников и от Вас понял, что микрот видит мак устройств только в ЛС, а значит мне такой вариант не подходит.
        Если не брать в расчет фильтрацию по маку, как тогда, имея "белый" апи, сделать так, чтобы микрот фильтровал всех, кроме конкретного устройства учитывая тот факт, что устройство будет пытаться подключиться к роутеру с динамического апи?

        • Никак без посторонних средств. Через интернет вы никак не ограничите доступ, кроме ip адреса. Можно купить vpn со статическим ip, настроить его на телефоне и подключаться к микротику через vpn. А на самом микротике настроить доступ только с этого ip.

          Есть еще возможность динамически открывать доступ к какому-то ip при пинге пакетами определенного размера. Забыл, как это средство называется. Вы ставите размер пакета определенного размера, пингуете им сервер. Он видит этот пакет и открывает на время доступ с ip, с которого идут пинги.

    • Владимир

      разрешить доступ к микрону или в сеть по маку - мне как то казалось что маки на 2 уровне модели, а она ограничивается шлюзами. и исходя из этого либо подключение к единому широковещательному домену либо же будут использоваться ИП адреса (TCP\IP). если исключить "магию" с бриджеванием туннелей, но по сути те же яйца..

      а про диаграмму есть, как мне кажется, более понятные - https://www.qtraining.ru/trainings_files/docs/MikroTik_PacketFlow_Routing24.jpg

  68. А зачем разрешать в первом правиле локальный трафик, если мы его нигде не запрещаем?

    Думаю стандартные правила фейрвол Микротик оптимальнее, так-как они сначала обрабатывают самый распространенный трафик (forward), а потом отсеивают весь остальной. Но стандартные правила не запрещают транзитный (forward) трафик из WAN в LAN, поэтому это правило нужно дописать вручную.
    В итоге набор должен быть таким: https://imgur.com/a/60TkmWO

    add action=fasttrack-connection chain=forward connection-state=established,related
    add action=accept chain=forward connection-state=established,related
    add action=accept chain=forward dst-address=192.168.1.100 dst-port=21 in-interface-list=WAN protocol=tcp
    add action=accept chain=forward dst-address=192.168.1.100 dst-port=55536-55836 in-interface-list=WAN protocol=tcp
    add action=drop chain=forward connection-state=invalid
    add action=drop chain=forward connection-nat-state=!dstnat connection-state=new in-interface-list=WAN
    add action=drop chain=forward in-interface-list=!LAN

    add action=accept chain=input connection-state=established
    add action=accept chain=input connection-state=related
    add action=drop chain=input in-interface-list=!LAN

  69. Николай

    Напишите пожалуста правило разрешающее отвечать на пинги

    • Николай

      День добрый!
      Купил в контору RB1100AHx4, это мой первый Mikrotik. Мне поставили задачу: 7 внешних ip одного провайдера (один шлюз на все ip адреса и все они висят на одном интерфейсе, ether1) должны раздавать интернет строго в свой vlan. Все перегуглил, понятного мне ничего не нашел. С одним ip нет никаких проблем, быстро разобрался и пошла раздача интернета пользователям по vlan2, а вот как дальше с остальными ip да другие vlan2... ((( Если что-то и попадается близкое к моей теме, то только на скриптах, но в них я вообще полный ноль.
      Ладно, даже если каждый внешний ip будет на отдельном интерфейсе, ether2, ether3 и т.д. - то как заставить их раздавать инет строго в свой vlan? То есть, vlan2 должен получать интернет только из 178.12.34.45! Так же и остальные vlan
      Подскажите на пальцах, если это возможно, в графическом интерфейсе, как это можно реализовать. Если нельзя, то хотя бы какую-нибудь альтернативу.
      Заранее благодарен!

      • Если совсем не разбираетесь в сетях, то можно поступить проще. Провод от провайдера воткните в свитч, из этого свитча по одному проводу в отдельные порты Микротика. А дальше уже настраивайте спокойно vlan'ы каждый на своем интерфейсе. Вполне рабочий и удобный вариант. Я делал так в свое время, когда была похожая задача. Я тоже не сообразил, как развести по разным ip сети, при условии, что все ip адреса приходят по одному проводу в один интерфейс. Если все же решите изначальную задачу без свитча, то поделитесь решением.

        • Николай

          Вот и в этом у меня проблема: как спокойно?

        • Николай

          Ведь надо не только по vlan раскидать интернет, но и чтобы у vlan2 был один ip, vlan3 другой и так далее

        • Аноним

          внешний ip

        • Николай

          Один внешний ip адрес я раскидал спокойно на все vlan. Если с каждого vlan зайти на ip.ru - у всех будет один и тот же ip адрес. А надо, чтобы у каждого был свой (((

        • Николай

          Кажется, что надо добавить в Routes list второй внешний ip - толку нет, он висит неактивным. Работает первый добавленный ip. Кого первым внешним завёл - того и тапочки?

        • Николай

          Решение оказалось на радость очень простым и удобным:

          add action=src-nat chain=srcnat out-interface=ether1 src-address=192.168.10.0/24 to-addresses=154.66.43.4
          add action=src-nat chain=srcnat out-interface=ether1 src-address=192.168.20.0/24 to-addresses=154.66.43.6
          add action=src-nat chain=srcnat out-interface=ether1 src-address=192.168.50.0/24 to-addresses=154.66.43.8

          И не надо отдельной настройки маршрутизации в Route! Никаких заморочек с маркировкой в Mangle!
          Подсказал это мне гуру в Микротике, администратор Илья Князев с сайта spw.ru

          • Спасибо, что поделились. Я не знал, что можно так просто сделать через настройки src-nat. Думал, как раз нужно как-то маркировать пакеты.

  70. в каком именно месте firewall из статьи нужно правильно разместить правила блокировки по доменному адресу из примера https://serveradmin.ru/blokirovka-

    sayta-v-mikrotik/ , или есть другой способ. ...мне нужно запретить 8 доменных и 4 ип адреса чтобы не упдатился SMASUNG TV

    • Перед разрешающими правилами forward для доступа из локалки в интернет. Они могут быть разными, но смысл в том, что перед разрешающим правилом ставим выше запрещающие для отдельных адресов.

  71. Владимир

    Прошу прощения, но разве при настройке проброса портов, помимо правила в NAT не надо добавлять соответствующее разрешающее правило в firewall?
    У меня без него не заработало. Более того, rdp не заработал при наличии правила input, как было написано в одной статье, а только когда указал forward.
    (да, само собой, что открывать rdp наружу это моветон, даже через другой внешний порт, и я всегда сам работаю через vpn, но понадобилось иногда открывать на короткое время именно rdp)

    • Все правильно, разрешающее правило forward, где входящий интерфейс WAN, а Dst. Address - внутренний адрес сервиса в локалке, куда прокидывается порт, должно быть, чтобы заработал проброс. Я упустил этот момент. Цепочка input тут ни при чем.

  72. Сергей

    Добрый день. Спасибо за написание данной статьи. Я новичок, прочитав вашу статью я сделал вот такие исправления в своем firewall. Правильно ли я сделал, последовательность правильная?

    /ip firewall filter
    add action=drop chain=input comment="Drop access to DNS from WAN-list-WANs" \
    dst-port=53 in-interface-list=WANs protocol=tcp
    add action=drop chain=input comment=list-WANs dst-port=53 in-interface-list=\
    WANs protocol=udp
    add action=accept chain=input comment="Allow PING (ICMP)" protocol=icmp
    add action=accept chain=input in-interface-list=BRIDGEs
    add action=accept chain=input comment="defconf: accept established,related" \
    connection-state=established,related
    add action=drop chain=input comment="defconf: drop all from WAN-list-WANs" \
    in-interface-list=WANs
    add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \
    connection-state=established,related routing-mark=main
    add action=accept chain=forward comment="defconf: accept established,related" \
    connection-state=established,related
    add action=drop chain=forward comment="defconf: drop invalid" \
    connection-state=invalid
    add action=drop chain=forward comment="drop WAN->LAN" in-interface-list=WANs \
    out-interface-list=BRIDGEs
    add action=drop chain=forward comment=\
    "defconf: drop all from WAN not DSTNATed-list-WANs" \
    connection-nat-state=!dstnat connection-state=new in-interface-list=WANs

    • Аноним

      Добрый день. Возьмите себе на заметку одно важное правило: сначала accept, затем только drop. вот небольшой пример:
      /ip firewall filter
      add action=drop chain=input connection-state=invalid in-interface-list=ISP
      add action=accept chain=input connection-state=established,related,untracked in-interface-list=ISP
      add action=accept chain=input in-interface-list=ISP protocol=icmp
      add action=accept chain=input connection-nat-state=dstnat dst-port=22 in-interface-list=ISP protocol=tcp
      add action=accept chain=input dst-port=8291 in-interface-list=ISP protocol=tcp
      add action=accept chain=input dst-port=1723 in-interface-list=ISP protocol=tcp
      add action=drop chain=input in-interface-list=ISP
      Всего 8 правил, нечего лишнего нет.

      Как можно оптимизировать настройки фильтра, для уменьшения нагрузки на процессор?

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

      Необходимо поменять местами первое и второе правило, тем самым под самое первое правило будет попадать абсолютное большинство пакетов, и под следующие правила пакеты естественно не попадут так как accept правила терминирующее, 99% всего трафика на маршрутизаторе это established.

      Просто представьте себе такую ситуацию, к вам на маршрутизатор приходит 2000PPS и 99% данных пакетов, это пакеты которые принадлежат уже установленным соединениям. Если оставить как есть, то маршрутизатор в секунду будет проверять 2000 пакетов и сработает только 20 раз (1%), далее 1980 пакетов попадут во второе правило и только после это трафик попадёт в сокет на маршрутизатора. В итоге 3980 операций сравнения в секунду.

      Если же поменять правила местами, то в первое правило попадёт 1980 пакетов и сразу будет отправлен в сокет маршрутизатора, и во второе отправиться уже только 20 пакетов (1%) В итоге 2020 операций сравнения в секунду.
      /ip firewall filter
      add action=accept chain=input connection-state=established,related,untracked in-interface-list=ISP
      add action=drop chain=input connection-state=invalid in-interface-list=ISP
      add action=accept chain=input in-interface-list=ISP protocol=icmp
      add action=accept chain=input connection-nat-state=dstnat dst-port=22 in-interface-list=ISP protocol=tcp
      add action=accept chain=input dst-port=8291 in-interface-list=ISP protocol=tcp
      add action=accept chain=input dst-port=1723 in-interface-list=ISP protocol=tcp
      add action=drop chain=input in-interface-list=ISP
      Экономия существенная.

      • Друг, жму руку. Очень крутое и понятное объяснение. В голове отложилось сказанное. Обычно, когда ваяешь правила, не всегда обращаешь внимание на нюансы, где какое должно быть. Но различия принципиальные.

  73. К вопросу о дальних поездках - выручить может режим safe mode. В случае обрыва соединения внесённые изменения будут отменены. Подобная опция есть ещё в Cisco и вероятно других сетевых устройствах.
    Защитить rdp и другие службы можно настройкой некого подобия защиты от перебора или port-knocking.

    • Спасибо за дополнение. Уже когда написал статью, подумал, что зря не написал про safe mode. Изначально забыл про него и не внес в план статьи. Потом уже не стал переделывать. Надо отдельным пунктом описать этот механизм.

  74. Спасибо за pdf статью, теперь ее можно почитать на досуге с планшета!

  75. Прекратите использовать netmap для проброса портов! Это трансляция сеть-в-сеть, она нужна для другого и в конфигурации с пробросом только увеличивает нагрузку на CPU.

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

    P.S. А блин, чего я парюсь тут 2 рекламных ссылки все понятно с автором.

    • Могли бы и привести ссылку на статью. Я не поленился, поискал. Вот она - https://habr.com/ru/post/435070/
      Я ее не читал, но сейчас посмотрел. Статья действительно очень полезная. Набор базовых правил для обычной локалки почти такой же как у меня, только по-умолчанию весь forward трафик блокируется, который не разрешен явно, но при этом вся локалка все равно разрешена. То есть по сути рекомендации те же самые.

      Про netmap я понял. Меня в свое время ввела в заблуждение другая статья, где упоминался netmap, я ее тоже нашел - https://habr.com/ru/post/182166/ Прочитал много лет назад и отложилось. Я поправлю статью.

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

        • Официальную документацию я почти всегда читаю к настраиваемым продуктам. Даже тут на нее ссылку привел. Не будучи большим специалистом по сетям, для меня не очевидно по описанию из wiki, что netmap является чем-то недопустимым при пробросе портов. По факту у меня дома такой проброс настроен много лет и никаких проблем я не испытывал. И знать не знал, что это что-то невероятное для такого случая, по мнению местных комментаторов.

      • Суть не в наборе базовых правил. Чувак заморочился и описал как пакет идет по firewall, что делает nat, где и как отрадатывает coontack и прочее.

  76. Почему опять netmap-то? Ну почему? Ведь есть же dst-nat.

    • Можете в двух словах объяснить, в чем разница? Я всегда использую netmap, просто потому, что когда то давно это увидел. Дальше просто по привычке копирую. И самое главное, что в этом плохого, что надо поменять.

      • Разница в том, что это разные инструменты для разных целей, обрабытываются по-разному. При более сложной настройке можно схватить граблей плюс нагрузка на ЦПУ слегка выше. Понимаю, что в soho разницы скорее всего видно не будет, но ведь у вас это скопируют - как пить дать и понесут дальше :)

        • Владислав

          Так микротик выше чем в SOHO не используют.

          • Интересное заблуждение, но спорить не буду )

          • Не знаю насколько успешно, но некоторые провайдеры тоже используют. Я наблюдал лично.

            • Владислав

              Я даже работал в саппорте такого провайдера, и в свое время наша компания была клиентом аналогичного провайдера - прямо у нас в коммутационном шкафу они поселили свой микротик от которого запитали всех клиентов в здании. Иногда интернет пропадал, не часто, но стабильные простои раз в месяц-три по разным причинам. Я бы таких провайдеров назвал SOHO-ISP :)
              Вот на днях я в одном из своих офисов выкинул RB951G-2HnD, потому что он перестал справляться с нагрузкой...
              В сильном ентерпрайсе с требованиями к надежности сети обычно юзают Juniper и CISCO

              • При чем тут надежность? Если железка не тянет нагрузку, то она просто не в том месте трудится. С надежностью как раз у Микротик проблем нет. В этом плане к ним у меня никаких претензий.

              • Аноним

                Если вы не сможете тягать штангу в тонну, это ваша ненадёжность или всё-таки неподходящая организму нагрузка, мм?
                Смешно просто, как легко люди путают надёжность с ограничениями.

                > Вот на днях я в одном из своих офисов выкинул RB951G-2HnD
                Угу, нагрузка превысила лимит железа. Казалось бы, что могло пойти не так?

      • Александр

        Net-map используется для подмены всей подсети, с подменой 1:1 то есть мы можем поменять 88.0/24 net-map 89.0/24. На сколько я знаю то особо нет разницы что использовать для одного ip, но правило хорошего тона и все таки нужно использовать инструменты по назначению.

        • Заметил маленькое удобство netmap в сравнении с dst-nat. Для последнего нужно дополнительно разрешающее правило forward делать, а для netmap нет.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar