Содержание цикла статей:
- Создание домашней сети на базе устройств MikroTik: Часть 1
- Создание домашней сети на базе устройств MikroTik: Часть 2 — Настройка hAP ac
- Создание домашней сети на базе устройств MikroTik: Часть 3 — Настройка RB750gr3 hEX
- Создание домашней сети на базе устройств MikroTik: Часть 4 — Создание OpenVPN туннеля
- Создание домашней сети на базе устройств MikroTik: Часть 5 — Создание EoIP туннеля
- Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа (Вы тут)
- Создание домашней сети на базе устройств MikroTik: Часть 7 — Firewall правильное перенаправление портов в сети с двумя шлюзами
- Создание домашней сети на базе устройств MikroTik: Часть 8 — Установка и настройка MikroTik DUDE Network Monitor
В прошлых частях мы с Вами настроили единую локальную сеть через EoIP туннель построенном поверх OpenVPN.
К каким результатам мы пришли:
У нас встает вопрос безопасности нашей локальной сети, ведь китайские боты не спят и постоянно сканируют доступное сетевое пространство на наличие дыр и уязвимостей.
Имея статический IP мы подвержены риску быть взломанными. Т.к. наш статический IP доступен в интернете, он может подвергаться различного рода «атакам из вне».
Поэтому нам нужно сделать так, чтобы только мы могли подключаться к нашим роутерам и другим сервисам в локальной сети.
В принципе жесткую защиту мы делать не будем. У нас ведь не корпоративная сеть, а домашняя. Данной статьей мы попробуем закрыть самые распространенные пробелы в защите нашего роутера и локальной сети в общем. Не будем допускать банальных ошибок.
Организацию удаленного подключения мы рассмотрим в Седьмой статье т.к. эта статья получилась достаточно большой по наполнению.
Ну что, поехали…
За все операции обработки трафика в сетевых устройствах отвечает так называемый «Межсетевой экран» (Eng — Firewall)
Именно он определяет куда отправлять тот или иной пакет, как обрабатывать соединения и многое, многое другое…
Чтобы охватить весь спектр работы Firewall-а не хватит не только одной статьи, но и 10 или 20 статей точно. Настолько велики его возможности и вариации применения.
Кстати это касается не только MikroTik RouterOS, а принципа фильтрации трафика в общем в операционных системах (даже на Windows)!
Официальные данные на MikroTik Wiki: IP/Firewall/Filter [ENG]
Давайте взглянем, где находится этот самый Межсетевой экран в наших устройствах(ведь RouterOS одинакова на всем оборудовании MikroTik):
Он находится по пути IP -> Firewall
Кратко пробежимся по основным вкладкам Firewall:
1 — Filter Rules — тут основные разрешающие и блокирующие правила.
2 — NAT — тут формируются перенаправления трафика.
3 — Mangle — тут происходит маркировка соединений и пакетов, отлов определенного вида трафика для дальнейшей его обработки.
Остальные вкладки пока рассматривать не будем, они нам не пригодятся.
4 — Raw — тут можно правилами отловить паразитный трафик и тем самым снизить нагрузку на CPU. Полезно для смягчения DOS атак.
5 — Service Ports — Для некоторых сетевых протоколов требуется прямое двустороннее соединение между конечными точками. Это не всегда возможно, поскольку трансляция сетевых адресов широко используется для подключения клиентов к сети. Это подменю позволяет настроить «помощники отслеживания соединений» для вышеупомянутых протоколов. Эти «помощники» используются для обеспечения правильного обхода NAT.
6 — Connections — тут отображаются все текущие соединения проходящие через маршрутизатор.
7 — Address List — тут списки адресов брандмауэра позволяют пользователю создавать списки IP-адресов, сгруппированных под общим именем. Затем фильтры брандмауэра, Mangle и NAT могут использовать эти списки адресов для сопоставления пакетов с ними.
8 — Layer7 Protocols — тут можно создавать шаблоны для поиска в потоках ICMP / TCP / UDP. L7 собирает первые 10 пакетов соединения или первые 2KB соединения и ищет шаблон в собранных данных.
Часть терминов может показаться непонятной, но в этом нет ничего страшного, мы будем работать только с первым пунктом Filter Rules. Хотя в нем тоже, очень много вариантов создания правил.
Сразу нужно оговориться, что полной безопасности Вам никто не обеспечит и это важно понимать! Но боятся не стоит, мы ведь не популярная корпорация за которой ведется промышленный шпионаж, нам достаточно превентивных мер ))))
Конфигурация по умолчанию:
На MikroTik Wiki представлена базовая конфигурация в таком виде: Basic universal firewall script [ENG]
Вы можете использовать её или нет )
Я делаю несколько по своему, возможно что-то тут не идеально, и Вы обладая большим опытом подскажите мне в комментариях, как сделать лучше ))
1. Перейдем к созданию правил в Firewall Filter Rules
Правила добавляются по уже знакомой нам кнопке плюс…
1.1. Перво наперво нам нужно разрешить уже установленные(Established) и связанные(Related) соединения и сбросить некорректные(Invalid) соединения для проходящих (маршрутизируемых) пакетов в цепочке Forward и предназначенных локальной системе в цепочке Input.
Так мы снизим нагрузку на маршрутизатор обработав эти данные сразу.
Зачем повторно обрабатывать эти соединения если они уже и так установлены или неизвестны. Экономим ресурсы процессора. Т.е. эти правила будут в самом начале нашей таблицы.
/ip firewall filter
add action=accept chain=forward comment="1.1. Forward and Input Established and Related connections" connection-state=established,related
add action=drop chain=forward connection-state=invalid
add action=accept chain=input connection-state=established,related
add action=drop chain=input connection-state=invalid
Очень часто люди используют настройки по умолчанию на своих маршрутизаторах. Это также означает, что можно угадать, какой локальный адрес используется за маршрутизатором. Обычно это 192.168.88.0/24 для устройств, работающих на RouterOS. Это означает, что в общедоступной сети злоумышленник может создать простой маршрут, который говорит, что 192.168.88.0/24 находится за вашим общедоступным IP-адресом.
Таким образом злоумышленник может атаковать ваши локальные сетевые устройства.
Чтобы защитить вашу локальную подсеть от этих атак, можно использовать очень простое правило фильтра брандмауэра. Это правило отбрасывает все пакеты, которые предназначены для локальной сети, но не являются NAT
/ip firewall filter
add action=drop chain=forward connection-nat-state=!dstnat connection-state=new in-interface-list=Internet
1.2. Далее необходимо обеспечить защиту. Продолжим мы с Лимита входящих соединений.
Это даст нам некоторую защиту от DDoS атак.
Позволяет группировать интерфейсы и применять правила Firewall обращаясь сразу к нескольким интерфейсам.
Более подробно про данные списки можно почитать в отдельной статье: MikroTik RouterOS – Списки интерфейсов “Interface List”
Сами списки также нужно создать. Имена списков Вы можете задавать свои не обязательно, как у меня.
Вся информация по тому, как это делать по ссылке выше в статье MikroTik RouterOS – Списки интерфейсов “Interface List”
/ip firewall filter
add action=add-src-to-address-list address-list=ddos-blacklist address-list-timeout=1d chain=input comment="1.2. DDoS Protect - Connection Limit" connection-limit=100,32 in-interface-list=Internet protocol=tcp
add action=tarpit chain=input connection-limit=3,32 protocol=tcp src-address-list=ddos-blacklist
1.3. Следом идет защита от SYN флуда.
Что это такое можно почитать тут: https://ru.wikipedia.org/wiki/SYN-флуд или в более профильных изданиях.
Защищать мы будем, как проходящий трафик, так и входящий трафик. Путем создания отдельной цепочки SYN-Protect
/ip firewall filter
add action=jump chain=forward comment="1.3. DDoS Protect - SYN Flood" connection-state=new jump-target=SYN-Protect protocol=tcp tcp-flags=syn
add action=jump chain=input connection-state=new in-interface-list=Internet jump-target=SYN-Protect protocol=tcp tcp-flags=syn
add action=return chain=SYN-Protect connection-state=new limit=200,5:packet protocol=tcp tcp-flags=syn
add action=drop chain=SYN-Protect connection-state=new protocol=tcp tcp-flags=syn
1.4. Защита от сканеров портов (PSD — Port Scan Detection).
На счет данного правила есть разные мнения, кто-то считает, что оно не нужно, кто-то, что нужно.
Я же предпочитаю немного себя подстраховать. Тем более, что благодаря данному правилу Address Lists заполняется какими-то забугорными IP адресами )
/ip firewall filter
add action=drop chain=input comment="1.4. Protected - Ports Scanners" src-address-list="Port Scanners"
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=none-dynamic chain=input in-interface-list=Internet protocol=tcp psd=21,3s,3,1
1.5. Защита WinBox порта от перебора.
Логика обработки тут следующая.
1. Когда мы подключаемся к роутеру на порт 8291, то мы имеет состояние соединения new, правило добавляет наш IP в список уровня 1
2. Если мы не авторизовались и отключились, а после снова пытаемся подключиться, то мы опять будем иметь состояние соединения new. При этом наш IP адрес уже будет в Списке 1
Соответственно наш IP попадет в список уровня 2 и т.д до тех пор пока нас не заблокирует Правило 13, и уже после этого Правило 12 не будет нам давать возможность новых подключений к роутеру по порту 8291.
3. А если мы авторизовались, то наше соединение перейдет из состояния new в состояние established и обработка соединения уже будет вестись самым верхним правилом 2, которое нам все разрешает.
По сути у злоумышленника может быть всего четыре возможности Авторизоваться у нас на роутере через порт WinBox
/ip firewall filter
add action=drop chain=input comment="1.5. Protected - WinBox Access" src-address-list="Black List Winbox"
add action=add-src-to-address-list address-list="Black List Winbox" address-list-timeout=none-dynamic chain=input connection-state=new dst-port=8291 in-interface-list=Internet log=yes log-prefix="BLACK WINBOX" protocol=tcp src-address-list="Winbox Stage 3"
add action=add-src-to-address-list address-list="Winbox Stage 3" address-list-timeout=1m chain=input connection-state=new dst-port=8291 in-interface-list=Internet protocol=tcp src-address-list="Winbox Stage 2"
add action=add-src-to-address-list address-list="Winbox Stage 2" address-list-timeout=1m chain=input connection-state=new dst-port=8291 in-interface-list=Internet protocol=tcp src-address-list="Winbox Stage 1"
add action=add-src-to-address-list address-list="Winbox Stage 1" address-list-timeout=1m chain=input connection-state=new dst-port=8291 in-interface-list=Internet protocol=tcp
add action=accept chain=input dst-port=8291 in-interface-list=Internet protocol=tcp
1.6. Защита OpenVPN порта от перебора.
Данная защита делается абсолютно аналогично пункту 1.5.
Единственным отличием будут названия OpenVPN вместо WinBox и входящий TCP порт 1194
Поэтому просто повторяем действия
Консольно:
/ip firewall filter
add action=drop chain=input comment="1.6. Protected - OpenVPN Connections" src-address-list="Black List OpenVPN"
add action=add-src-to-address-list address-list="Black List OpenVPN" address-list-timeout=none-dynamic chain=input connection-state=new dst-port=1194 in-interface-list=Internet log=yes log-prefix="BLACK OVPN" protocol=tcp src-address-list="OpenVPN Stage 3"
add action=add-src-to-address-list address-list="OpenVPN Stage 3" address-list-timeout=1m chain=input connection-state=new dst-port=1194 in-interface-list=Internet protocol=tcp src-address-list="OpenVPN Stage 2"
add action=add-src-to-address-list address-list="OpenVPN Stage 2" address-list-timeout=1m chain=input connection-state=new dst-port=1194 in-interface-list=Internet protocol=tcp src-address-list="OpenVPN Stage 1"
add action=add-src-to-address-list address-list="OpenVPN Stage 1" address-list-timeout=1m chain=input connection-state=new dst-port=1194 in-interface-list=Internet protocol=tcp
add action=accept chain=input dst-port=1194 in-interface-list=Internet protocol=tcp
1.7. Разрешающее правило для прохождения любого трафика по VPN туннелям.
/ip firewall filter
add action=accept chain=input comment="1.7. Access OpenVPN Tunnel Data" in-interface-list=VPN
1.8. Разрешающее правило для прохождения только нормальных PING запросов.
/ip firewall filter
add action=accept chain=input comment="1.8. Access Normal Ping" in-interface-list=Internet limit=50/5s,2:packet protocol=icmp
1.9. Запрещающее правило
Нормально закрытый Firewall должен обязательно обладать таким правилом. Иначе все бессмысленно.
Выше мы обрабатываем соединения и разрешаем только то, что нам необходимо. Все остальное блокируем.
Это намного правильней, чем Разрешить все и блокировать только нужное Вам. А всего, что нужно заблокировать Вы наверняка не знаете.
/ip firewall filter
add action=drop chain=input comment="1.9. Drop All Other" in-interface-list=Internet
2. Для ленивых
Если Вы дочитали до конца, значит у Вас пытливый ум и Вы хорошо представляете с чем столкнулись. Вы молодец.
Еще раз хотелось бы обозначить, что данная конфигурация не является идеальной. Я просто старался показать некоторые способы фильтрации трафика. Вам решать, использовать это у себя простым копипастом или подумать и сделать лучше! Но я уверен, что моё решение тоже не плохое =)
Все вышеизложенное в едином виде:
Консольно:
/ip firewall filter
add action=accept chain=forward comment="1.1. Forward and Input Established and Related connections" connection-state=established,related
add action=drop chain=forward connection-state=invalid
add action=drop chain=forward connection-nat-state=!dstnat connection-state=new in-interface-list=Internet
add action=accept chain=input connection-state=established,related
add action=drop chain=input connection-state=invalid
add action=add-src-to-address-list address-list=ddos-blacklist address-list-timeout=1d chain=input comment="1.2. DDoS Protect - Connection Limit" connection-limit=100,32 in-interface-list=Internet protocol=tcp
add action=tarpit chain=input connection-limit=3,32 protocol=tcp src-address-list=ddos-blacklist
add action=jump chain=forward comment="1.3. DDoS Protect - SYN Flood" connection-state=new jump-target=SYN-Protect protocol=tcp tcp-flags=syn
add action=jump chain=input connection-state=new in-interface-list=Internet jump-target=SYN-Protect protocol=tcp tcp-flags=syn
add action=return chain=SYN-Protect connection-state=new limit=200,5:packet protocol=tcp tcp-flags=syn
add action=drop chain=SYN-Protect connection-state=new protocol=tcp tcp-flags=syn
add action=drop chain=input comment="1.4. Protected - Ports Scanners" src-address-list="Port Scanners"
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=none-dynamic chain=input in-interface-list=Internet protocol=tcp psd=21,3s,3,1
add action=drop chain=input comment="1.5. Protected - WinBox Access" src-address-list="Black List Winbox"
add action=add-src-to-address-list address-list="Black List Winbox" address-list-timeout=none-dynamic chain=input connection-state=new dst-port=8291 in-interface-list=Internet log=yes log-prefix="BLACK WINBOX" protocol=tcp src-address-list="Winbox Stage 3"
add action=add-src-to-address-list address-list="Winbox Stage 3" address-list-timeout=1m chain=input connection-state=new dst-port=8291 in-interface-list=Internet protocol=tcp src-address-list="Winbox Stage 2"
add action=add-src-to-address-list address-list="Winbox Stage 2" address-list-timeout=1m chain=input connection-state=new dst-port=8291 in-interface-list=Internet protocol=tcp src-address-list="Winbox Stage 1"
add action=add-src-to-address-list address-list="Winbox Stage 1" address-list-timeout=1m chain=input connection-state=new dst-port=8291 in-interface-list=Internet protocol=tcp
add action=accept chain=input dst-port=8291 in-interface-list=Internet protocol=tcp
add action=drop chain=input comment="1.6. Protected - OpenVPN Connections" src-address-list="Black List OpenVPN"
add action=add-src-to-address-list address-list="Black List OpenVPN" address-list-timeout=none-dynamic chain=input connection-state=new dst-port=1194 in-interface-list=Internet log=yes log-prefix="BLACK OVPN" protocol=tcp src-address-list="OpenVPN Stage 3"
add action=add-src-to-address-list address-list="OpenVPN Stage 3" address-list-timeout=1m chain=input connection-state=new dst-port=1194 in-interface-list=Internet protocol=tcp src-address-list="OpenVPN Stage 2"
add action=add-src-to-address-list address-list="OpenVPN Stage 2" address-list-timeout=1m chain=input connection-state=new dst-port=1194 in-interface-list=Internet protocol=tcp src-address-list="OpenVPN Stage 1"
add action=add-src-to-address-list address-list="OpenVPN Stage 1" address-list-timeout=1m chain=input connection-state=new dst-port=1194 in-interface-list=Internet protocol=tcp
add action=accept chain=input dst-port=1194 in-interface-list=Internet protocol=tcp
add action=accept chain=input comment="1.7. Access OpenVPN Tunnel Data" in-interface-list=VPN
add action=accept chain=input comment="1.8. Access Normal Ping" in-interface-list=Internet limit=50/5s,2:packet protocol=icmp
add action=drop chain=input comment="1.9. Drop All Other" in-interface-list=Internet
Бонус:
Работая с Firewall на родительском hEx роутере, обнаружил большой объем заблокированного трафика.
Решил посмотреть, в чем дело, включил логирование в правилах и обнаружил интересную ситуацию.
Оказалось, что местный провайдер не закрыл широковещательный трафик службы имен NetBIOS Name Service — UDP порт 137 (Остальные порты и информация: https://ru.wikipedia.org/wiki/NetBIOS)
И какой-то «Сосед» воткнул интернет кабель в простой ПК с Windows, тем самым создав тот самый паразитный трафик. Такие запросы с одного ПК могут занимать около 30 кбит/сек на вашем WAN порту.
Думаю можно себе представить если таких ПК в сети будет 100-150. Написали провайдеру, а пока он латает свои дыры, добавил правило блокировки. Только не в Firewall Filter, а в Firewall Raw.
Данная таблица полезна для уменьшения нагрузки на CPU и позволяет блокировать трафик на этапе Prerouting-а
Вот это правило:
/ip firewall raw
add action=drop chain=prerouting dst-port=137,138,139 in-interface-list=Internet protocol=udp
Бонус 2:
Благодарю Вас за Ваше время.
Организацию удаленного доступа я вынес в следующую статью:
Создание домашней сети на базе устройств MikroTik: Часть 7 — Firewall правильное перенаправление портов в сети с двумя шлюзами
Всего хорошего на просторах Интернета 😉
Список всех статей в хронологическом порядке: История статей
UPD 11.10.2018:
Статья обновлена исходя из опыта эксплуатации и дальнейшего перехода на работу со Списками интерфейсов
Для понимания, что это такое, изучите статью MikroTik RouterOS – Списки интерфейсов “Interface List”
UPD 12.08.2019:
В начало статьи добавлена заметка. Ряд читателей почему-то думает, что эта статья это вся настройка Firewall и удивляется, что нет интернета 🙂
Будьте внимательней!
UPD 05.10.2019:
Для тех кого интересует финальный результат и более лучшая защита, то рекомендую после прочтения данной статьи перейти к статье: MikroTik : RouterOS : Стучимся к себе домой. Firewall Filter PortKnocking
UPD: 31.03.2020:
Добавлен «Бонус 2» с правилами для роутера за серым IP провайдера
В правиле
add action=accept chain=forward comment=»ALLOW — Established, Related and connections» connection-state=established,related,untracked
untracked что это и за что отвечает, почему в правиле вначале статьи нету untracked а в бонус2 появилось
untracked — это пакеты не попадающие в Connection Tracker. Эти пакеты появляются когда есть правило в /ip firewall raw с action=notrack
По сути их можно также, как и established,related пропускать до основных правил /ip firewall filter для снижения нагрузки на CPU.
В свою очередь правила с action=notrack применяются в основном для работы с IPsec
Я проводил эксперименты с IPsec и у меня остались включенными untracked в /ip firewall filter
Поправил Бонус 2, чтобы не вводить в заблуждение 🙂
Добрый день! Спасибо за статью. Подскажите, а для домашнего роутера, который находится за NAT и с серым ip можно отключить большинство правил?
Я определил для себя небольшой набор правил. Посмотрите в конце статьи «Бонус 2»
Добрый день, хорошая статья, спасибо за проделанную работу.
Есть вопрос: на разных сайтах по разному написано про защиту от SYN флуда и DDos, много кто советует ставить эти правила в самом верху списка firewall, у вас же они в середине. Как правильно с вашей точки зрения делать? И у вас нет правила FastTrack, как правильно и где его размещать, выше всех правил или как? Особенно имея ipsec…
Благодарю за комментарий. Рад, что эта работа полезна!
Как известно правила обрабатываются сверху вниз по списку. Т.е. идет сравнение каждого нового соединения с правилом до тех пор пока не встретится нужное совпадение.
Для себя я вывел такой принцип:
1. Первыми должны идти правила для Forward трафика и различные разрешающие правила, чтобы быстрее обрабатывался разрешенный трафик. Так меньше нагрузка на CPU. Это важно для маломощных роутеров.
Тут же должно быть и правило FastTrack, причем оно должно быть вообще в самом верху, над всеми правилами.
Правило FastTrack должно ставится для forward трафика и IPsec тут не играет никакой роли. IPsec работает в цепочках input и output, вот для них нужно учитывать IPsec.
2. Далее идут различные проверки и блокировки для Input трафика.
3. Часть из блокировок, в том числе различные Black листы необходимо обрабатывать вообще в другой вкладке Firewall RAW т.к. правила в таблице RAW(prerouting) отрабатывают раньше, чем Firewall Filter
Вы пишете «Оказалось, что местный провайдер не закрыл широковещательный трафик службы имен NetBIOS Name Service – UDP порт 137. И назначили правило»
/ip firewall raw
add action=drop chain=prerouting dst-port=137,138,139 in-interface-list=Internet protocol=udp
И как с таким правилом будет работать внутрення сеть с шарами NetBIOS?
Люди читаю и верят вам.
Александр, здравствуйте.
Вероятно вы были не внимательны.
Подскажите, что по вашему делает пункт in-interface-list=Internet в правиле?
Правило составлено корректно и влияет исключительно на запросы из сети провайдера, а не на NETBIOS запросы внутренней сети.
Настроил файр по вашей статье. Полгода полет был нормальный, но потом провайдер стал блокировать нам интернет по причине атаки на их ДНС сервер. После всестороннего изучения конфигурации, обнаружилось, что на микротике не закрыт 53 порт. Пришлось добавить еще 2 правила —
# Блокируем DNS запросы на внешний интерфейс
add action=drop chain=input comment=»Drop DNS» connection-state=new dst-port=53 in-interface=WAN protocol=udp
add action=drop chain=input connection-state=new dst-port=53 in-interface=WAN protocol=tcp
Кроме того пришлось доработать правило ПИНГ —
# Фильтруем полезный ICMP
add chain=icmp protocol=icmp icmp-options=0:0 action=accept comment=»ICMP echo reply»
add chain=icmp protocol=icmp icmp-options=3:0 action=accept comment=»ICMP net unreachable»
add chain=icmp protocol=icmp icmp-options=3:1 action=accept comment=»ICMP host unreachable»
add chain=icmp protocol=icmp icmp-options=3:4 action=accept comment=»ICMP host unreachable fragmentation required»
add chain=icmp protocol=icmp icmp-options=4:0 action=accept comment=»ICMP allow source quench»
add chain=icmp protocol=icmp icmp-options=8:0 action=accept comment=»ICMP allow echo request»
add chain=icmp protocol=icmp icmp-options=11:0 action=accept comment=»ICMP allow time exceed»
add chain=icmp protocol=icmp icmp-options=12:0 action=accept comment=»ICMP allow parameter bad»
add chain=icmp action=drop comment=»ICMP deny all other types»
Ну вот как-то так.
Алексей, приветствую!
Благодарю за ваш комментарий.
Судя по тому, что вы столкнулись с проблемой DNS, я могу сделать вывод, что ваш Firewall настроен не совсем по этой статье.
Обратите внимание на последнее правило 1.9 (
add action=drop chain=input comment="1.9. Drop All Other" in-interface-list=Internet
)Данное правило закрывает оба ваши правила по DNS т.к. запрещает, все, что не разрешено выше.
По вопросу ICMP, я пришел к полному закрытию Firewall и использую Port_Knocking(вернее ICMP_Knocking) для доступа из вне. Соответственно ICMP снаружи также недоступен и мой статический IP полностью закрыт для злоумышленников.
В целом если вы не стремитесь к таким блокировкам, то ограничение типов и кодов ICMP вполне верный шаг. Главное понимать, какой тип и за что отвечает 🙂
Добрый день.
Я настроил Firewall по вашей статье, но я включил UPnP в настройках. На вкладке NAT увидел появившееся проброшенные порты. А вносить изменения в правила Firewall нужно для корректной работы torrent-клиентов? А то у меня какая-то скорость печальная.
Александр,
UPnP для того и создан, чтобы не вносить правила в Firewall вручную. Если приложение поддерживает UPnP, то соответствующие правила появятся в Firewall.
Важное замечание, набор сетевых протоколов UPnP не является безопасным!
И скорость печальная у вас не из-за UPnP или Firewall, ищите источник проблемы в другом месте.
Добрый день! Благодарю автора за информацию выложенную на этом сайте. У меня такой вопрос: Как ограничить доступ(управление winbox) к роутеру по mac из вне?
Здравствуйте!
Спасибо вам, за комментарий 🙂
Уточните из какого «вне» вы хотите ограничить доступ?
Обычно делается так:
В /ip neighbors отключаются через discovery interfaces те интерфейсы на которых не нужно обнаружение. А точнее указываются на каких оно должно быть активно. Если используете Interface List, то указываете локальную сеть например.
Аналогично в /tool MAC-server
Так вы отключите обнаружение на интерфейсах смотрящих в сторону провайдера.
Ну и сам Firewall должен быть настроен корректно, чтобы на 8291 порт никто не ломился.
Благодарю за статью, всё достаточно понятно, только не работает 🙂
Опишу ситуацию. Роутер 2011UHs, в eth1 воткнут интернет с белым ip, в eth5 — билайн с L2TP.
Когда в route list выбран 0.0.0.0/0 ether1 — всё работает норм, белый айпи пингуется. Но для основного режима необходим выход через eth5, и вот тогда начинаются проблемы — eth1 при этом перестаёт отвечать на пинги и что-либо ещё.
Пытался выставить правило accept для eth1, пытался выставить fasttrack connection для всего порта, пытался пробросить порт — безрезультатно.
В логах видны запросы из внешнего интернета к порту, но ответить он не желает.
Куда рыть?
Здравствуйте!
Вы могли заметить, что статья написана на основе одного соединения от провайдера.
В вашем случае необходимо смотреть в сторону MultiWAN и подобных решений.
Рекомендую изучить Packet Flow и принцип разделения трафика с нескольких внешних соединений
Gregory огромное спасибо, оч классно написано
Но в связи всё же с непониманием философии FireWall и добавления правил,
как мониторить и добавлять в правило новые устройства с новыми портами для их работы в внутри сети
или как мониторить необходимое подключение из вне на новое внешний интерфейс Микроктика.
Как мониторить подключение которое не попадает в созданное правило и отрабатывает, куда же оно тогда попало
Есть Закладка Log — но она в динамике, кнопка freeze есть. но количество информации большое, а поиска или фильтра по правилам , ip и т.п. в этом окне нет.
Как удобно работать логами?
Спасибо
Здравствуйте, Григорий!
При настройке удалённого доступа к видеорегистратору пришлось столкнуться с роутером MikroTik RB952Ui-5ac2ND-TC. Так проникся уважением к этому прибору, что и себе приобрёл. С помощью ваших рекомендаций настроил небольшую домашнюю сеть (спутниковый интернет, USB-модем, подключил Dreambox, лазерный принтер) и просто счастлив! После старенького D-Link это небо и земля! Огромное вам спасибо за опубликованные уроки!
Но у меня возникла проблема. Работаю с файерволом Outpost Firewall Pro от умершей компании Agnitum. И отказываться от этой программы по весьма серьёзным причинам не собираюсь. Беда в том, что когда включён этот сетевой экран, программа Winbox не соединяется с Микротиком. Приходится отключать для настройки. Не всегда это удобно. Все мои усилия решить эту проблему не увенчались успехом. Поддержка, естественно, не работает. Если возможно, помогите, пожалуйста, настроить разрешительное правило для моего Outpost.
Заранее благодарен!
Здравствуйте,
Большое спасибо за ваш отзыв! Приятно видеть, что мой опыт не пропадает зря =)
Точно не подскажу т.к. никогда не пользовался сторонними Firewall и Outpost Firewall в частности, но могу подсказать куда копать.
В Outpost Firewall Pro, как и любом другом визуальном Firewall есть пункты
1. Настройки LAN
2. Сетевые правила
В первом вы можете назначить всю подсеть, как доверенную (если она таковой является). Либо указать конкретные IP и даже скорее всего порты.
Во втором задавать отдельные правила обработки трафика. По типу «с какого IP» на «какой IP и порт».
Посмотрите, возможно сможете подобрать для себя рабочий конфиг.
Спасибо Вам за проделанную работу, я так понимаю по этой схеме можно как то добавить аналогичные правила для отлавливания переборщиков паролей к RDP на определённом порту и кидать в блеклист. Если вам не трудно то подскажите как ето сделать правильно, и в какой последовательности разместить правило
Здравствуйте. Благодарю за ваш комментарий!
Держать RDP наружу просто так это конечно моветон. Но самую простую защиту можно обеспечить и так.
Попробуйте такую конструкцию. Правила размещаете над блокирующими в конце. Заметьте что я привел пример с Filter, NAT и RAW таблицами для снижения нагрузки на CPU.
Респект автору за такую содержательную статью
Благодарю!
Огромное спасибо за Ваши статьи! С микротиком только столкнулся, до этого в основном с циско работал, привык к определенному синтаксису. Непривычно.
Здравствуйте,
Спасибо за ваш отзыв!
Григорий, доброго времени суток!
Если есть возможность, расскажите пожалуйста, как настроить в RouterOS ntp client на сервере ntp поднятом на локальной машине в сети windows 7.
Служба работает, соседние машины синхронизируются. Микротик отказывается.
Сильно не пинайте, т.к только начинаю знакомиться с Микротиками.
Для чего это все — закрытая технологическая сеть, связи с внешним миром нет и не будет.
Юрий, приветствую!
Можете уточнить, где настраивали NTP клиента на Микротике?
Спасибо вам, отличная статья!!
Скажите пожалуйста, я правильно понимаю, что при удачной удалённой авторизации в винбокс, мой ip попадает в список на блокировку на минуту?
Здравствуйте,
Спасибо за отзыв!!
Все верно, при успешной авторизации ваш IP просто попадет в это правило
add action=add-src-to-address-list address-list="Winbox Stage 1" address-list-timeout=1m chain=input connection-state=new dst-port=8291 in-interface-list=Internet protocol=tcp
Подскажите, плз, как правильно настроить МикроТик, чтобы DLNA-сервер из одной подсети (например, 192.168.10.x) был виден в другой (192.168.20.х)?
Подсети родственные, пинги проходят.
Читал, что нужно использовать IGMP Proxy, но не могу разобраться — как именно. Вроде все сделал «по инструкции», но не работает 🙁
Проблема в том что DNLA работает на втором уровне,сооствественно вам нужно соеденить две под сети в один бродкастный домен. Скажем повесить на один бридж сети
DLNA насколько мне известно работает на Host Layer.
4 Уровень модели OSI, он же транспортный т.е. HTTP, TCP запросы и др.
Соответственно рассылка широковещательных пакетов, как multicast, а не broadcast.
Здравствуйте,
Подскажите по какой инструкции делали? (если речь о моей, то она основана только на одной подсети, а вы ведете речь про разные подсети)
У меня DLNA работает т.к. IPv4 с маской /24 во всей локалке.
Здравствуйте
Я недавно изучаю настройку firewall, поэтому не сочтите мой вопрос глупым, просто хочу разобраться
— В данном примере для цепочки input настроен закрытый firewall, в конце стоит правило которое запрещает все что не разрешено вышестоящими правилами?
— А для цепочки forward настроен открытый firewall, разрешаем все кроме того что блокируется правилами, так как в конце нету блокирующего правила для цепочки forward, или оно и не нужно?
А можно последнюю версию для ленивых. У меня в блек листы не закидывает…
Здравствуйте,
Если не закидывает, значит Firewall настроен по другому. Проверяйте очередность правил
Добрый день, Григорий!
Хочу поблагодарить за очень доходчивый туториал по настройке микротика.https://www.freesat.cn/forum/
Все написано очень логично и интересно!!! Так держать!!!!
Теперь я бы хотел задать вопрос, на который Вы возможно сможете ответить.
Я настраивал firewall по вашей инструкции и все работает на ура, но есть ссылка на форум, который я могу открыть только через VPN или используя свой другой роутер.
Ссылка производителя оборудования GTMEDIA для спутника
Я думал что это изза проблемы с MTU и MSS, но нет…мои манипуляции не к чему не привели….может Вы сможете указать на причину ошибки открытии сайта?
Заранее благодарю,
Денис
Денис, приветствую!
Благодарю за отзыв! Очень приятно 🙂
Все очень просто. Доменное имя никем не заблокировано, но вот если его «зарезолвить» т.е. определить его IP адрес и пробить его через«УНИВЕРСАЛЬНЫЙ СЕРВИС проверки ограничения доступа к сайтам и (или) страницам сайтов сети «Интернет»» , то можно обнаружить следующее:15.4 15.3
1. Статья основания внесения в реестр —
Реквизиты основания внесения в реестр (орган принявший решение, номер, дата) — Таганский районный суд г. Москвы 2-1779/2018 13.04.2018
Ограничение доступа — ограничивается к ip
2. Статья основания внесения в реестр —
Реквизиты основания внесения в реестр (орган принявший решение, номер, дата) — Генпрокуратура 27-31-2018/Ид2971-18 16.04.2018
Ограничение доступа — ограничивается к ip
Потому единственным способом попадать на данный ресурс остается
VPNждать когда владельцы сайта примут меры для снятия ограниченийСпасибо за исчерпывающий ответ 🙂
Интересно что МГТС этот ресурс блокирует, а мой 2-ой провайдер Sevensky, где стоит Асус, открывает без проблем. Как то выборочно каждый провайдер подходит к этому вопросу.
Пока что лучшая настройка firewall из всех что я видел. Всё очень продумано, никаких лишних правил фильтра для проброса портов.
Благодарю. Буду заглядывать, за новыми практиками.
Еще бы найти бы такой же хороший шейпер трафика, но пока переделываю чьи то наработки под свой лад.
Здравствуйте у меня микротик gr 750 замучали ддос атаками, процессор нагружается от37 до 70 процентов и по логу смотришь ip адрес один и тотже посылает по 50 — 100 тысяч пакетов. Подскажите что можно прописать от этого
Здравствуйте,
Тут конечно вопрос, как у вас настроен Firewall.
Если интересуют правила для отлова и блокировки, то можете попробовать такой вариант:
/ip firewall raw
add action=drop chain=prerouting src-address-list=DDoS-Blacklist comment="DDoS - Drop IP from blacklist"
/ip firewall filter
add action=jump chain=forward connection-state=new in-interface-list=Internet jump-target=DDoS-Protect comment="DDoS - Main protection"
add action=jump chain=input connection-state=new in-interface-list=Internet jump-target=DDoS-Protect
add action=return chain=DDoS-Protect dst-limit=15,15,src-address/10s
add action=add-src-to-address-list chain=DDoS-Protect address-list=DDoS-Blacklist address-list-timeout=1d
Данный набор правил будет банить на сутки те IP, с которых идут попытки на открытие более 15 новых соединений в секунду.
Хватит ли 15 это уже вам выбирать, подбирайте под себя исходя из загрузки и плотности атак на ваш IP.
Ну и конечно нужно учитывать, что это ни в коем случае не понаценя.
Крупные компании и провайдеры тратят миллионы на борьбу с DDoS и при этом это им не всегда помогает. Что уж говорить про обычный домашний роутер. (пусть даже мы не крупная компания)
От «пионеров» может помочь )))
Добрый день, спасибо за подробную инструкцию. Вчера настроил свой hap ac2. Но через время, уже ночью, появились 2 правила в NAT, с прописанными даже комментариями. При этом пункт активно/не активно не доступен, можно только удалить. Удалил, захожу сегодня утром и вижу ту же историю.
До начала настройки роутера, сброшены настройки, пользователя нового завел, права полные, пароль изменен и длинный, админа удалил. Filter Rules добавлял согласно инструкции, добавил только дополнительно пакет мультикаст для IP-TV. Что самое интересное этих новых добавленных правил в терминале не видно. Из сервисов оставил включенным только WinBox. От провайдера получаю динамический IP.
/ip dns
set allow-remote-requests=yes servers=...........15
/ip firewall filter
add action=accept chain=forward comment="1.1. Forward and Input Established and Related connections" connection-state=established,related
add action=drop chain=forward connection-state=invalid
add action=accept chain=input connection-state=established,related
add action=drop chain=input connection-state=invalid
add action=accept chain=input comment="Allow IGMP" in-interface=eth1-wan protocol=igmp
add action=accept chain=input comment="IPTV UDP incoming" disabled=yes dst-port=1234 in-interface=eth1-wan protocol=udp
add action=accept chain=forward comment="IPTV UDP forwarding" dst-port=1234 protocol=udp
add action=drop chain=forward comment="_" connection-nat-state=dstnat connection-state=new in-interface-list=Internet
add action=add-src-to-address-list address-list=ddos-blacklist address-list-timeout=1d chain=input comment=
"1.2. DDoS Protect - Connection Limit" connection-limit=100,32 in-interface-list=Internet protocol=tcp
add action=tarpit chain=input connection-limit=3,32 protocol=tcp src-address-list=ddos-blacklist
add action=jump chain=forward comment="1.3. DDoS Protect - SYN Flood" connection-state=new jump-target=SYN-Protect protocol=tcp tcp-flags=syn
add action=jump chain=input connection-state=new in-interface-list=Internet jump-target=SYN-Protect protocol=tcp tcp-flags=syn
add action=return chain=SYN-Protect connection-state=new limit=200,5:packet protocol=tcp tcp-flags=syn
add action=drop chain=SYN-Protect connection-state=new protocol=tcp tcp-flags=syn
add action=drop chain=input comment="1.4. Protected - Ports Scanners" src-address-list="Port Scanners"
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=none-dynamic chain=input in-interface-list=Internet
protocol=tcp psd=21,3s,3,1
add action=drop chain=input comment="1.5. Protected - WinBox Access" src-address-list="Black List Winbox"
add action=add-src-to-address-list address-list="Black List Winbox" address-list-timeout=none-dynamic chain=input connection-state=new
dst-port=8291 in-interface-list=Internet log=yes log-prefix="BLACK WINBOX" protocol=tcp src-address-list="Winbox Stage 3"
add action=add-src-to-address-list address-list="Winbox Stage 3" address-list-timeout=1m chain=input connection-state=new dst-port=8291
in-interface-list=Internet protocol=tcp src-address-list="Winbox Stage 2"
add action=add-src-to-address-list address-list="Winbox Stage 2" address-list-timeout=1m chain=input connection-state=new dst-port=8291
in-interface-list=Internet protocol=tcp src-address-list="Winbox Stage 1"
add action=add-src-to-address-list address-list="Winbox Stage 1" address-list-timeout=1m chain=input connection-state=new dst-port=8291
in-interface-list=Internet protocol=tcp
add action=accept chain=input dst-port=8291 in-interface-list=Internet protocol=tcp
add action=accept chain=input comment="1.8. Access Normal Ping" in-interface-list=Internet limit=50/5s,2:packet protocol=icmp
add action=drop chain=input comment="1.9. Drop All Other" in-interface-list=Internet
/ip firewall mangle
add action=mark-connection chain=prerouting connection-state=new dst-port=9999 new-connection-mark=allow_in protocol=tcp
/ip firewall nat
add action=masquerade chain=srcnat out-interface-list=Internet src-address=192.168.88.0/24
add action=redirect chain=dstnat dst-port=9999 in-interface=eth1-wan protocol=tcp to-ports=80
/ip firewall raw
add action=drop chain=prerouting dst-port=137,138,139 in-interface-list=Internet protocol=udp
/ip service
set telnet disabled=yes
set ftp disabled=yes
set www disabled=yes
set ssh disabled=yes
set api disabled=yes
set api-ssl disabled=yes
/ip upnp
set enabled=yes
/ip upnp interfaces
add interface=eth1-wan type=external
add interface=br1-lan type=internal
/routing igmp-proxy
set quick-leave=yes
/routing igmp-proxy interface
add alternative-subnets=10.0.0.0/8 interface=eth1-wan upstream=yes
add interface=br1-lan
Стоит ли паниковать и что я не учел?
Вот эти 2 правила, не знаю как прикрепить сюда скрин
Здравствуйте,
Это динамически созданные правила службой Upnp в вашем ноутбуке.
Возможно какаой-то сервис на вашем пк требует открытых портов и запрашивает их у роутра. Роутер в свою очередь их предоставляет.
Это можно отключить через меню IP->UPnP — снять все галки и нажать ОК
Или подать команду:
/ip upnp set allow-disable-external-interface=no enabled=no show-dummy-rule=no
Спасибо за ответ. Т.е. он это показывает только для информации, что идет перенаправление пакетов через такие-то порты, поэтому и в терминале не выводится.
А 3 правила в Filter Rules, которые отвечают за IP-TV, стоит вообще на первое место выносить?
Это не для информации, это именно перенаправленые порты, но создаются роутером автоматически.
В терминал ничего и не будет выводится. Может быть вы имели в виду лог, но в лог тоже т.к. это динамические правила и там не установлен Log Prefix и не включено логирование для этих правил, ну и самому это донастроить нельзя.
У вас не так много правил, просто следуйте логике, forward обрабатывать в первую очередь, а уже потом input. Ну и established и related соединения тоже нужно приоритет повыше. А дальше уже согласно вашим знаниям и смелости )
Еще такой вопрос:
Настроена сеть между двумя офисами через PPTP, Всё пингуется всё хорошо работает. Но в arp таблице нет ничего кроме своей подсети. — это не сама проблема, но тоже странно.
Сами проблемы:
1) Имена устройств из сети другого офиса — мне недоступны, не могу подключится к ним по по имени.
2) Крутил оба сервера ДНС, друг на друга их назначал. Но они как будто не дружат. Да и вообще ДНС почему то дружит только с интернетом, а локальные Ип адреса в днс не попадают. Почему?
nslookup
Микротик знает прекрасно имя этого сервера в сети.
Пока что ничего не помогает. Может вы мне поможете советом.
Помогите разобраться.
ГлОфис, где PPTP сервер подключется к интернету через DynIP.
Офис клиент через PPTP, доступ к интернету через LT2P.
Еще после попыток получить у днса какие то адреса, в днс появляется запись:
P.S. Взята ваша настройка Firewall, изменены только порты для VPN.
Сергей,
0. Пинги ходят, это здорово, но…
По протоколу ARP компьютер А отправляет широковещательный запрос, адресованный всем компьютерам в одном с ним широковещательном домене.
Поэтому нет ничего удивительного в том, что в другом роутере с другой подсетью вы не видите записей в ARP таблице, они просто ему не отправляются.
1. и 2. Mikrotik хорош только, как ретранслятор DNS запросов.
Подскажите, какой DNS сервис вы используете?
У меня стоит Debian 9 с Bind9 и все отлично работает, но у меня опять таки одна подсеть для всей домашней сети ))
Вообще тема DNS довольно интересная. Поищите, как правильно делать основные доменные зоны, инверсные доменные зоны, A записи, как их связывать с IP адресами.
Также DHCP должны раздавать нужные DNS. Т.е. первым DNS в отдаче Network DHCP должен быть IP сервера DNS в локальной сети.
На вашем изображении Микротик знает хостнейм, а это не одно и тоже, что и доменная зона!
Gregory
Спасибо за статью. У меня сразу возник вопрос по поводу сброса блек-листы, можно ли их очищать к примеру раз в 5 минут, как то опасно иметь блек-листы я могу и 5 и 10 раз ошибиться. А недавно. Использовал старую версию Винбокса, и после обновления прошивки на микротике не мог войти в него, достаточно долго.
Добавьте в неё еще строку с ip firewall nat, а то народ мучается с отсутствием интернета в комментариях.
Настройка фаервола на микротике очень сложная штука.
— чем больше правил фаервола — тем лучше. (безопасность)
— чем меньше правил фаервола — тем лучше. (скорость работы и меньше нагрузка на процессор)
Поэтому захламление листа фаервола неизбежно приводит к замедлению работы всех пользователей в сети интернет. А если еще и начать шейпить интернет трафик, то беда.
Конечно всё зависит от конкретно настраиваемого устройства.
Дальше я веду к тому, что у нас по 4 правила на проверку спама. это в общей сложности 8 правил фаервола — что не очень хорошо, так как каждый переход на след правило — это потеря времени обработки пакета.
И было бы очень хорошо, если бы вы привносили в статью новый опыт.
Да вопрос:
Как проверить, что роутер не вмешивается и не следит за пакетами передаваемыми внутри локально сети ? Есть какое то правило?
Сергей, приветствую,
1. Черный список может сам очищаться, достаточно навесить таймаут сгорания нахождения адреса в адрес листе.
2. Благодарю за отзыв. Возможно не соглашусь с Вами в части того, что 4 правила на проверку спама это не много для домашнего использования со статическим IP.
Нагрузка даже на 1 ядерный hAP ac совершенно не велика. Для блокировки DDoS применяются другие методики.
3. Новый опыт это использование PortKnocking(скоро)
4. Роутер вмешивается или следит за пакетами передаваемыми внутри локально сети? Забавно ))
Ни разу не встречал такой интерпретации, но если хочется…
Нет правила нет, но можно заняться исследованием. Вам придется установить два ПК подключенные через роутер и его внутренний сетевой мост.
Далее устанавливаете Wireshark и отправляете пакет с одного ПК на другой. Получаете пакет и смотрите, были ли внесены изменения, соответствует ли он исходному.
Вообще для MikroTik это сомнительно. Можно было бы побеспокоится об этом для каких-то китайских брендов да и то это связано больше с работой через китайские сервисы.
Здравствуйте, уважаемый Gregory.
Спасибо за проделанную работу и подробные разъяснения.
У меня остались пара вопросов по файерволу.
Первый. Нужно ли разрешать пинговать сам роутер и оборудование LAN?
Тогда правила разрешения будут выглядеть так:
/ip firewall filter
add action=accept chain=input comment="Enable Ping the router (Accept ICMP\_Internet Control Message Protocol )" in-interface-list=WAN limit=50/5s,2:packet protocol=icmp
add action=accept chain=forward comment="Enable Ping device behind the router" protocol=icmp
или же стоит запретить ICMP ответы с WAN портов в цепочке INPUT и отключить MAC Ping
/ip firewall address-list
add address=192.168.88.0/24 list=AllowIPRemoteManagement
/add action=drop chain=input comment="9.3 - Drop IN echo request" icmp-options=8:0 in-interface-list=WAN protocol=icmp src-address-list=!AllowIPRemoteManagement
/tool mac-server ping set enabled=no
И в каком месте файервола следует расположить данные правила?
Вопрос второй.
В файерволе «Из коробки» есть такие правила:
/ip firewall filter
add action=accept chain=forward comment="Accept in ipsec policy" ipsec-policy=in,ipsec
add action=accept chain=forward comment="Accept out ipsec policy" ipsec-policy=out,ipsecicmp
Какой смысл у этих правил? Разрешает прохождение IPSec для L2TP и VPN – тоннелей?
Еще один вопрос по NAT. В файерволе «Из коробки» правило маскарадинга выглядит так:
/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" ipsec-policy=out,none out-interface-list=WAN
Какой смысл параметра ipsec-policy=out,none
Сочту за честь прочитать Ваши ответы
Максим, здравствуйте,
Благодарю за отзыв.
Ответы по первому вопросу.
Я уже давно пришел к тому, что нужно закрывать двери по максимому. Именно поэтому я реализовал для себя Portknocking.
Если из простого, то для получения полноценного доступа, нужно правильно «постучаться» в роутер. Это избавляет от продумывания постоянных уловок для потенициальных попыток взлома.
Из вашего
Лучше так не делать:
add action=accept chain=forward comment="Enable Ping device behind the router" protocol=icmp
Ничего криминального если хотите чтобы ваш IP пинговался снаружи кем угодно:
add action=accept chain=input comment="Enable Ping the router (Accept ICMP\_Internet Control Message Protocol )" in-interface-list=WAN limit=50/5s,2:packet protocol=icmp
Про расположение правил я придерживаюсь логики:
Сначала Forward — для более быстрой обработки уже установленных и проходящих соединений
Потом Input, где правило drop на все, что не разрешено выше, находится в самом низу. (только список WAN! не нужно лочить абсолютно все)
Соответственно разрешающие правила над блокирующим и дополнительные блокировки над разрешающими если требуются.
Ответы по второму вопросу.
ipsec-policy — соответствие политике, используемой IpSec. Направление используется для выбора соответствия политике, используемой для декапсуляции, или политики, которая будет использоваться для инкапсуляции.
in — действует в цепочках PREROUTING, INPUT и FORWARD
out — действует в цепях POSTROUTING, OUTPUT и FORWARD
ipsec — соответствует, если пакет подвергается обработке IpSec
none — соответствует пакету, который не подлежит обработке IpSec (например, транспортный пакет IpSec)
add action=accept chain=forward comment="Accept in ipsec policy" ipsec-policy=in,ipsec
согласно Wiki MikroTik: разрешает прохождение запросов ipsec политик через роутер в цепочке FORWARD, также работает в цепочках PREROUTING и INPUTadd action=accept chain=forward comment="Accept out ipsec policy" ipsec-policy=out,ipsec
согласно Wiki MikroTik: разрешает исходящие запросы ipsec политик проходящих через роутер в цепочке FORWARD, также работает в цепочках POSTROUTING и OUTPUTНапример, если маршрутизатор получает инкапсулированный в ipsec пакет gre, тогда правило ipsec-policy=in,ipsec будет соответствовать пакету gre, при этом правило ipsec-policy=in,none будет соответствовать пакету esp
В этом случае правило
add action=masquerade chain=srcnat comment="defconf: masquerade" ipsec-policy=out,none out-interface-list=WAN
означает, что маскарадинг будет применяться только для соединений в которых нет ipsec пакетов для обработки.Надеюсь я все правильно рассказал. Если что-то не корректно, прошу спецов меня поправить ))
Григорий, добрый день! Очень помогли разобраться с фаерволом (спасибку скоромно уже выразил). А не могли бы подсказать, как правильно переделать правило блокировки Winbox? Чтобы не гонять ip по спискам, а сразу отправлять в бан? Спасибо заранее.
Руслан здравствуйте,
Во первых позвольте вас поблагодарить за поддержку. Все на месте )
Ну и по теме.
Тут нужно немного уточнить, что значит сразу отправлять в бан?
Т.е. получается если вы сами несколько раз неправильно ввели пароль, то и сами себя отправите в бан сразу?
Полагаю, что так лучше не делать.
Основная причина создания так называемой «лестницы» из списков это именно отсутствие стандартного инструмента определения того, сколько раз с одного и того же IP было попыток входа и ввода пароля.
Т.е. к сожалению нельзя обойтись одним магическим правилом, вернее можно, но это просто закрытие всего и вся ) И разрешение только конкретным адресам.
Я у себя уже давно тестирую систему доступа через Port Knocking и она меня устраивает больше, чем любые другие варианты организации firewall.
Уже есть черновик статьи.
Добрый день!
Больше спасибо за развернутое описание!
Я не понял (и это не дает мне покоя) и не смог нагуглить дополнительную информацию по защите локальной сети от атак извне (Цитата: в общедоступной сети злоумышленник может создать простой маршрут, который говорит, что 192.168.88.0/24 находится за вашим общедоступным IP-адресом.
Таким образом злоумышленник может атаковать ваши локальные сетевые устройства).
Я это понимаю так — злоумышленник создает маршрут
route add 192.168.88.1 192.168.88.0/24 (IP шлюза злоумышленника?)
После чего этот самый злоумышленник сможет выполнить команду, например, nmap 192.168.88.1 и просканировать порты устройства за NAT? Мне казалось, это невозможено…
Заранее спасибо за разъяснения.
Поделюсь своим соображением по этому поводу, хоть я только учусь сетевым премудростям.
Если злоумышленник знает ваш белый адрес, то он может на своей машине прописать маршрут до сети ..88.0/24 используя ваш белый как шлюз. Что-типа такого:
route add 192.168.88.0/24 via *your.white.ip*
А дальше пытаться создать соединение с распространенными сервисами, которые светятся открытыми портами в вашей домашней сети и имеют логины/пароли по умолчанию.
Здравствуйте. Очень понравилась ваша статья. Нашел для себя достаточно интересные правила, как в статье, так и в комментариях под ней. У меня вопрос. Зачем данное правило?
/ip firewall filter
add action=accept chain=input comment=»Enable OpenVPN Tunnel» in-interface-list=VPN
Если прямо перед ним в списке стоит:
/ip firewall filter
add action=accept chain=input dst-port=1194 in-interface-list=Internet protocol=tcp
В данном случае, мы уже разрешили трафику бегать по порту OpenVPN, и во втором правиле, разрешающем трафик по списку интерфейсов VPN нет смысла. Поправьте, если я что то упускаю.
Здравствуйте,
Спасибо за Ваш отзыв!
/ip firewall filter
add action=accept chain=input comment=”Enable OpenVPN Tunnel” in-interface-list=VPN
Данное правило работает, когда соединение уже установлено и интерфейс VPN активен. Когда удаленный клиент пытается пройти аутентификацию, он не попадает в это правило и интерфейс VPN в этот момент еще не активен.
/ip firewall filter
add action=accept chain=input dst-port=1194 in-interface-list=Internet protocol=tcp
А это правило просто открывает порт 1194 для аутентификации OpenVPN клиентов.
Прочитав статью, так и не понял смысла (в тестовой среде не воспроизводится)
add action=drop chain=forward connection-nat-state=!dstnat connection-state=new in-interface-list=WANs
Если forward из WAN разрешен только для established,related.
И пользователи ходят через правило:
chain=forward action=accept connection-state=established,related log=no log-prefix=»»
chain=forward action=accept src-address=192.168.88.0/24 in-interface-list=LAN out-interface-list=WAN log=no log-prefix=»»
chain=forward action=drop log=no log-prefix=»»
+ в NAT:
chain=srcnat action=masquerade out-interface-list=WAN log=no log-prefix=»»
К сожалению что не так, я так и не смог разобратся в чем причина, после установки вашей версии firewall интернет пропадает. Буду рад за любую помощь. Спасибо
Спасибо Большое за предложенную Вами конфигурацию Firewall. Есть небольшая проблема, при этой конфигурации не работает интернет. Ошибка Chrome — ERR_CONNECTION_TIMED_OUT
В свою забыл клочить еще
Защита локальной сети от атак из публичного интернета (несколько насов и пк)
/ip firewall filter
add action=drop chain=forward connection-nat-state=!dstnat connection-state=new in-interface-list=WANs
и Защиту WinBox порта от перебора.
/ip firewall filter
add action=drop chain=input comment="1.5. Protected - WinBox Access" src-address-list="Black List Winbox"
add action=add-src-to-address-list address-list="Black List Winbox" address-list-timeout=none-dynamic chain=input connection-state=new dst-port=8291 in-interface-list=WANs log=yes log-prefix="BLACK WINBOX" protocol=tcp src-address-list="Winbox Stage 3"
add action=add-src-to-address-list address-list="Winbox Stage 3" address-list-timeout=1m chain=input connection-state=new dst-port=8291 in-interface-list=WANs protocol=tcp src-address-list="Winbox Stage 2"
add action=add-src-to-address-list address-list="Winbox Stage 2" address-list-timeout=1m chain=input connection-state=new dst-port=8291 in-interface-list=WANs protocol=tcp src-address-list="Winbox Stage 1"
add action=add-src-to-address-list address-list="Winbox Stage 1" address-list-timeout=1m chain=input connection-state=new dst-port=8291 in-interface-list=WANs protocol=tcp
add action=accept chain=input dst-port=8291 in-interface-list=WANs protocol=tcp
В какой последовательности их нужно добавить в предложенную Вами конфигурацию?
Переход на Port Knocking это будет следующий шаг! 🙂
Спасибо
/ip firewall filter
# FORWARD FIRST
add chain=forward action=accept connection-state=established,related comment="1.1. Forward Established and Related connections"
add chain=forward action=drop connection-state=invalid
add chain=forward action=jump connection-state=new jump-target=SYN-Protect protocol=tcp tcp-flags=syn comment="1.2. DDoS Protect - SYN Flood"
# INPUT SECOND
add chain=input action=jump connection-state=new jump-target=SYN-Protect protocol=tcp tcp-flags=syn in-interface-list=WANs
add chain=input action=accept connection-state=established,related comment="1.3. Input Established and Related connections"
add chain=input action=drop connection-state=invalid
add chain=SYN-Protect action=drop connection-state=new protocol=tcp tcp-flags=syn comment="1.4. SYN-Protect chain"
add chain=SYN-Protect action=return connection-state=new limit=200,5:packet protocol=tcp tcp-flags=syn
add chain=input action=tarpit connection-limit=3,32 protocol=tcp src-address-list=ddos-blacklist comment="1.5. DDoS Protect - Connection Limit"
add chain=input action=add-src-to-address-list address-list=ddos-blacklist address-list-timeout=1d connection-limit=100,32 in-interface-list=WANs protocol=tcp
add chain=input action=drop src-address-list="Port Scanners" comment="1.6. Protected - Ports Scanners"
add chain=input action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=none-dynamic in-interface-list=WANs protocol=tcp psd=21,3s,3,1
add chain=input action=accept protocol=icmp icmp-options=0:0 in-interface-list=WANs comment="1.7. Access Normal Ping"
add chain=input action=accept protocol=icmp icmp-options=8:0 in-interface-list=WANs
add chain=input action=accept protocol=icmp icmp-options=11:0 in-interface-list=WANs
add chain=input action=accept protocol=icmp icmp-options=3:3 in-interface-list=WANs
add chain=input action=accept protocol=icmp icmp-options=3:4 in-interface-list=WANs
add chain=input action=accept protocol=icmp limit=2,2:packet in-interface-list=WANs
# INPUT DROP OTHER ALL ON WAN'S
add chain=input action=drop in-interface-list=WANs comment="99. Input Drop other All on WANs"
Вот в такой последовательности
/ip firewall filter
# FORWARD FIRST
add chain=forward action=accept connection-state=established,related comment=”1.1. Forward Established and Related connections”
add chain=forward action=drop connection-state=invalid
add chain=forward action=jump connection-state=new jump-target=SYN-Protect protocol=tcp tcp-flags=syn comment=”1.2. DDoS Protect – SYN Flood”
add chain=forward action=drop connection-state=new connection-nat-state=!dstnat in-interface-list=WANs comment=”1.3. DST-NAT Protect”
# INPUT SECOND
add chain=input action=jump connection-state=new jump-target=SYN-Protect protocol=tcp tcp-flags=syn in-interface-list=WANs
add chain=input action=accept connection-state=established,related comment=”1.4. Input Established and Related connections”
add chain=input action=drop connection-state=invalid
add chain=SYN-Protect action=drop connection-state=new protocol=tcp tcp-flags=syn comment=”1.5. SYN-Protect chain”
add chain=SYN-Protect action=return connection-state=new limit=200,5:packet protocol=tcp tcp-flags=syn
add chain=input action=tarpit connection-limit=3,32 protocol=tcp src-address-list=ddos-blacklist comment=”1.6. DDoS Protect – Connection Limit”
add chain=input action=add-src-to-address-list address-list=ddos-blacklist address-list-timeout=1d connection-limit=100,32 in-interface-list=WANs protocol=tcp
add chain=input action=drop src-address-list=”Port Scanners” comment=”1.7. Protected – Ports Scanners”
add chain=input action=add-src-to-address-list address-list=”Port Scanners” address-list-timeout=none-dynamic in-interface-list=WANs protocol=tcp psd=21,3s,3,1
add chain=input action=accept protocol=icmp icmp-options=0:0 in-interface-list=WANs comment=”1.8. Access Normal Ping”
add chain=input action=accept protocol=icmp icmp-options=8:0 in-interface-list=WANs
add chain=input action=accept protocol=icmp icmp-options=11:0 in-interface-list=WANs
add chain=input action=accept protocol=icmp icmp-options=3:3 in-interface-list=WANs
add chain=input action=accept protocol=icmp icmp-options=3:4 in-interface-list=WANs
add chain=input action=accept protocol=icmp limit=2,2:packet in-interface-list=WANs
add chain=input action=drop src-address-list=”Black List Winbox” comment=”1.9. Protected – WinBox Access”
add chain=input action=add-src-to-address-list address-list=”Black List Winbox” address-list-timeout=none-dynamic connection-state=new dst-port=8291 in-interface-list=WANs log=yes log-prefix=”BLACK WINBOX” protocol=tcp src-address-list=”Winbox Stage 3″
add chain=input action=add-src-to-address-list address-list=”Winbox Stage 3″ address-list-timeout=1m connection-state=new dst-port=8291 in-interface-list=WANs protocol=tcp src-address-list=”Winbox Stage 2″
add chain=input action=add-src-to-address-list address-list=”Winbox Stage 2″ address-list-timeout=1m connection-state=new dst-port=8291 in-interface-list=WANs protocol=tcp src-address-list=”Winbox Stage 1″
add chain=input action=add-src-to-address-list address-list=”Winbox Stage 1″ address-list-timeout=1m connection-state=new dst-port=8291 in-interface-list=WANs protocol=tcp
add chain=input action=accept dst-port=8291 in-interface-list=WANs protocol=tcp
# INPUT DROP OTHER ALL ON WAN’S
add chain=input action=drop in-interface-list=WANs comment=”99. Input Drop other All on WANs”
Добрый день!
Спасибо за схему, работает, атак стало значительно меньше!
Но почему то мои же VPN-клиенты периодически попадают в черный список.
Подскажите пожалуйста как можно немного снизить(повысить) порог отправки в блэк-лист правило 1.6
Здравствуйте,
Рад, что Вы двигаетесь к успешной реализации ))
Снизить порог можно увеличив кол-во шагов с 3 до 5 например или более, до момента когда клиенты перестанут попадать в Блэклист.
На практике проверено, что OpenVPN отрабатывает достаточно стабильно т.к. создает подключение реже, чем тот же PPTP или L2TP
Чем соединение чаще генерирует новые подключения, тем у него больше шанс попасть в Блэклист.
В целом, если это Ваш клиент и он корректно подключается, то активация соединения должна проходить сразу (Т.е. максимум это присутствие IP адреса в первых двух шагах) и далее успешное соединение переходит в постоянное состояние Established и эти правила уже не применяются.
Добрый день, спасибо за Вашу работу и детальное описание, очень помогает для начинающих юзеров.
Прочитав вашу статью у меня, получился вот такой firewall. Посмотрите пожалуйста все ли правильно (последовательность правил и их действий)
Спасибо
/ip firewall filter
add action=drop chain=input comment="Drop access to DNS from WAN" dst-port=53 \
in-interface-list=WANs protocol=tcp
add action=drop chain=input dst-port=53 in-interface-list=WANs protocol=udp
add action=accept chain=forward comment=\
"1.1. Forward and Input Established and Related connections" \
connection-state=established,related
add action=drop chain=forward comment="defconf: drop invalid" \
connection-state=invalid
add action=accept chain=input comment="defconf: accept established,related" \
connection-state=established,related
add action=drop chain=input connection-state=invalid
add action=add-src-to-address-list address-list=ddos-blacklist \
address-list-timeout=1d chain=input comment=\
"1.2. DDoS Protect - Connection Limit" connection-limit=100,32 \
in-interface-list=WANs protocol=tcp
add action=tarpit chain=input connection-limit=3,32 protocol=tcp \
src-address-list=ddos-blacklist
add action=jump chain=forward comment="1.3. DDoS Protect - SYN Flood" \
connection-state=new jump-target=SYN-Protect protocol=tcp tcp-flags=syn
add action=jump chain=input connection-state=new in-interface-list=WANs \
jump-target=SYN-Protect protocol=tcp tcp-flags=syn
add action=return chain=SYN-Protect connection-state=new limit=200,5:packet \
protocol=tcp tcp-flags=syn
add action=drop chain=SYN-Protect connection-state=new protocol=tcp \
tcp-flags=syn
add action=drop chain=input comment="1.4. Protected - Ports Scanners" \
src-address-list="Port Scanners"
add action=add-src-to-address-list address-list="Port Scanners" \
address-list-timeout=none-dynamic chain=input in-interface-list=WANs \
protocol=tcp psd=21,3s,3,1
add action=accept chain=input comment="1.8. Access Normal Ping" \
in-interface-list=WANs limit=50/5s,2:packet protocol=icmp
add action=drop chain=forward comment=\
"defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \
connection-state=new in-interface-list=WANs
add action=drop chain=input comment="defconf: drop all from WAN" \
in-interface-list=WANs
add action=drop chain=input comment=Bogon_Wan_Drop in-interface-list=WANs \
src-address-list=BOGONS
Здравствуйте,
Вообще правила Firewall это очень индивидуальный инструмент. Набор правил очень часто отличается у каждого отдельного пользователя.
В принципе составил из Ваших правил набор более корректный:
/ip firewall filter
# FORWARD FIRST
add chain=forward action=accept connection-state=established,related comment="1.1. Forward Established and Related connections"
add chain=forward action=drop connection-state=invalid
add chain=forward action=jump connection-state=new jump-target=SYN-Protect protocol=tcp tcp-flags=syn comment="1.2. DDoS Protect - SYN Flood"
# INPUT SECOND
add chain=input action=jump connection-state=new jump-target=SYN-Protect protocol=tcp tcp-flags=syn in-interface-list=WANs
add chain=input action=accept connection-state=established,related comment="1.3. Input Established and Related connections"
add chain=input action=drop connection-state=invalid
add chain=SYN-Protect action=drop connection-state=new protocol=tcp tcp-flags=syn comment="1.4. SYN-Protect chain"
add chain=SYN-Protect action=return connection-state=new limit=200,5:packet protocol=tcp tcp-flags=syn
add chain=input action=tarpit connection-limit=3,32 protocol=tcp src-address-list=ddos-blacklist comment="1.5. DDoS Protect - Connection Limit"
add chain=input action=add-src-to-address-list address-list=ddos-blacklist address-list-timeout=1d connection-limit=100,32 in-interface-list=WANs protocol=tcp
add chain=input action=drop src-address-list="Port Scanners" comment="1.6. Protected - Ports Scanners"
add chain=input action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=none-dynamic in-interface-list=WANs protocol=tcp psd=21,3s,3,1
add chain=input action=accept protocol=icmp icmp-options=0:0 in-interface-list=WANs comment="1.7. Access Normal Ping"
add chain=input action=accept protocol=icmp icmp-options=8:0 in-interface-list=WANs
add chain=input action=accept protocol=icmp icmp-options=11:0 in-interface-list=WANs
add chain=input action=accept protocol=icmp icmp-options=3:3 in-interface-list=WANs
add chain=input action=accept protocol=icmp icmp-options=3:4 in-interface-list=WANs
add chain=input action=accept protocol=icmp limit=2,2:packet in-interface-list=WANs
# INPUT DROP OTHER ALL ON WAN'S
add chain=input action=drop in-interface-list=WANs comment="99. Input Drop other All on WANs"
Разрешающие правила добавлять в секцию # INPUT SECOND сразу после правил для Ping(ICMP)
BOGON праила Вам не нужны т.к. последнее правило будет блокировать все, что не разрешено на WAN интерфейсах.
Дальнейшая доработка правил уже будет зависеть только от Вас, что разрешать и в каком виде.
Я уже перешел на Port Knocking полностью ))
Правило защиты от ping flood из пункта 1.8 не имеет смысла т.к. первый же прилетевший пинг создаст новое подключение в коннекшн трекере и все последующие пинги с этого адреса полетят через правило «Established and Related» в любом количестве.
Ну и если быть совсем занудой, то описание «Access Normal Ping» тоже не верно, т.к. правило открывает не только эхо запросы, а весь ICMP трафик. Что бы открыть только запросы надо использовать флаг icmp-options=8:0.
Хм, мне почему-то всегда казалось, что первый прилетевший PING сначала не будет иметь в коннекшн трекере состояния Established, а сначала пройдет через цепочку Input Правил и уже после проверки получит это состояние.
Давайте вместе попробуем собрать корректный набор правил для проверки Ping запросов и определим их последовательность.
У меня получилось набросать такой набор правил:
/ip firewall filter
add chain=input action=accept protocol=icmp icmp-options=0:0 in-interface-list=Internet comment="Access Normal Ping"
add chain=input action=accept protocol=icmp icmp-options=8:0 in-interface-list=Internet
add chain=input action=accept protocol=icmp icmp-options=11:0 in-interface-list=Internet
add chain=input action=accept protocol=icmp icmp-options=3:3 in-interface-list=Internet
add chain=input action=accept protocol=icmp icmp-options=3:4 in-interface-list=Internet
add chain=input action=accept protocol=icmp limit=2,2:packet in-interface-list=Internet
add chain=input action=drop in-interface-list=WAN comment="Input Drop other All on WANs"
Коды:
0:0 — Echo reply (for ping)
8:0 — Echo request (for ping)
11:0 — TTL expired in transit (for traceroute)
3:3 — Destination port unreachable (for traceroute)
3:4 — Fragmentation required, and DF flag set (for path MTU discovery)
Я полагаю, что они должны быть ниже чем правило:
/ip firewall filter
add chain=input action=accept connection-state=established,related comment="Input Established and Related connections"
И снова здравствуйте 🙂
Вернулся сюда еще раз чтобы рассказать о данной конфигурации, она замечательная, спасибо еще раз.
Но как всегда есть «но».
Так вот, все завелось замечательно и работало, до тех пор пока я не поменял свой входящий канал с 100 на 1000.
Bот тут-то и начались танцы с бубном, потому что за роутером скорость на ethernet интерфейсах была 280Мbps,
по 5GHz only AC wifi была 160Мbps, а кабель на входе без роутера отдавал 400.
Танцы с бубном и посиделки на форумах с бородатыми дядьками в больших диоптриях продолжались неделю 🙂
Результат был таки найден:
/interface bridge set bridge protocol-mode=none
/ip firewall filter add chain=forward action=fasttrack-connection connection-state=established,related
(добавить перед правилом 1.1 !)
И чудо! скорость вернулась в норму на всех интерфейсах.
Теперь я даже знаю почему 🙂
Буду рад если это кому-то поможет.
В правилах 1.2,1.4,1.5 и 1.6 — когда сработает правило, указанный address list сам появится и туда будет помещен «нарушитель», или нам предварительно необходимо создать нужный address list?
сам появится и туда будет помещен “нарушитель”
всё спасибо, разобрался. Создал разрешающее правило для 1723 порта и всё заработало для sn.mynetname.net.
Уточняющий вопрос: как я понял правило 1.6 не актуально, его можно закрестить?
правило 1.5 — доступ к WinBox с определённого IP после 5 попыток блокируется навсегда?
Правило 1.6 актуально для различных портов. Т.к у меня использцется OpenVPN, а у Вас PPTP или L2TP, то логично, что можно просто поменять номер TCP порта для этого правила.
Правило 1.5, ограничение по времени можно настроить. В конкретном случае IP адрес отправляется на всегда.
Хорошее описание, разъяснения. Спасибо.
В Часть 6 – Firewall защита доступа. В консольном вводе пропущено правило 3.
Сделал по скриншотам. С копировал почти полностью, всё работает. НО у меня, ПОКА, VPN реализован через sn.mynetname.net , когда получу статический IP попробую по Вашей инструкции настроить OpenVPN, но пока имею, что имею. И последнее запрещающее правило, как и должно вероятно быть, блокирует VPN подключение через sn.mynetname.net. Должно быть разрешающее правило именно для него, стоящее ранее, не поможете его сформулировать?
Здравствуйте,
Немного непонятно про какое правило 3 идет речь.
Доброго вечерочка всем..
Скипт очень понравился по правилам, и не много заточив под себя получилось вот так:
Вы наверно забыли написать то, что получилось )))
Добрый день.
А как защитить сеть есть микротик настроен с двумя провайдерами(Резервирование каналов) и с несколько внешних ip адресами .
Суть вопроса такая.
Я настроил резервирование каналов.У меня есть несколько внешних ip адресов и надо некоторые отдать напрямую в определенный порт.
В поиску гугла я нашел способ bridge .Все настроил и все ок.
НО подойдет ли такая защита если микротик в роли bridge.Установил галку User IP Firewall .
И теперь сегмент моей сети я так понимаю доступен из вне.Может я ошибаюсь ,можете меня ругать =)
Как защитить микротик так что бы спать спокойно .
Спасибо за статью очень все доходчиво и понятно .=)
Здравствуйте,
Спасибо за отзыв! Всегда приятно видеть обратную связь от читателей.
Если Вы внимательно читали цикл статей, то должны были увидеть, что сетевой порт, к которому подключен кабель провайдера, выделяется в отдельный интерфейс и не находится в Bridge.
Bridge должен объединять только локальные порты — Это те порты, которые идут к Вашим домашним/офисным устройствам.
Вообще это базовые сетевые знания, без них нужно будет подучить эти вопросы и желательно основательно, если собираетесь и дальше работать с MikroTik!
Отвечая на Ваш вопрос: Нет, такая «защита» не подойдет просто потому, что это не защита )
Защитой является Firewall.
Прочитайте цикл статей еще раз. Отделите локальные интерфейсы(LAN) от внешних(WAN)
Внесите эти интерфейсы в сетевые списки MikroTik RouterOS – Списки интерфейсов “Interface List”
И уже после этого настраивайте защиту через Firewall (его я тоже советую изучить основательно)
И только после этого будете спать спокойно.
Спасибо за статью, очень доходчивая и главное полезная.
Хотелось бы только добавить два пункта:
— Вы в настройках файервола указываете входящий интерфейс internet, который не описан.
Понятно что это ВАН, но Вы не указали что его нужно создать как новый элемент в закладке «Interface List»
— WiFi интерфейсы по уволчанию выключены, их надо при переименовании включать.
Спасибо еще раз за статью.
Здравствуйте,
Спасибо за Ваш отзыв, очень приятно!
Добавил заметки по Вашим рекомендациям в эту статью и в статью Создание домашней сети на базе устройств MikroTik: Часть 2 – Настройка hAP ac
Улучшаем статью совместно )
Доброго времени суток! Подскажите пожалуйста как делать поиск правила по комментарию, и если оно есть то ничего не делать? Спасибо.
Здравствуйте,
В принципе ничего сложного, можете проверить в терминале. Выдает строку с элементами правила, либо фразу «no such item»
[cc]:put [/ip firewall filter get [find comment=»This is my comment»]][/cc]
[cc]:put [/ip firewall filter get [find comment=»This is my com»]][/cc]
Для применения в скриптах :put не нужен. Например для присвоения результата переменной достаточно просто присвоить
[cc]:global SEARCH [/ip firewall filter get [find comment=»This is my comment»]][/cc]
Есть вариант изящнее. Отдает 1 или 0 в результате
[cc]/ip firewall filter print count-only where comment=»This is my comment»[/cc]
[cc]/ip firewall filter print count-only where comment=»This is my com»[/cc]
[cc]:global SEARCH [/ip firewall filter print count-only where comment=»This is my comment»][/cc]
А далее уже сами решите, что с этим делать
У меня очень похоже настроено, тоже заюзал интерфейс лист так как имею несколько WAN интерфейсов
Здравствуйте,
Вы молодец. Очень приятно видеть читателей, которые стараются изучить данную тематику )
Так держать!
Выкинул в помойку это полотно правил и настроил так:
Игорь, приветствую,
У вас вполне обычный «нормально закрытый Firewall»
В данной статье же рассматривается немного другой тип, часть запросов открыта для публики, т.е. что-то среднее.
Ну и данная статья относится к циклу статей, а не просто руководство, как нужно делать правильно… ни в коем случае, нет.
Надеюсь данная статья не ввела вас в заблуждение
У меня тоже часть открыта, например VPN доступен с адрес листа где прописаны подсети двух опсосов которыми пользуюсь.
Я понял что это длинное полотно правил совсем не нужно, когда можно все порты одним правилом закрыть вместе с пингом. Нет пинга — значит на ip адресе никого нет, значит можно не сканировать, а то что нужно — открываем выше и строго по адрес листам.
Плавно переходим к Port Knocking 🙂
8. Блокируем все остальные соединения, кроме, как из Локальной сети.
И блокируем все остальное, что не разрешено правилами выше!
После добавления этого правила у меня пропадает доступ к локалке удаленного роутера. ( Настройка по Вашим статьям оба роутера hAP ac, и мелкие вариации в соответствии с задачами) Подскажите плз. куда копать?
К сожалению редко читаю, поэтому с MTU разбирался сам, а мог сэкономить время. =)
Здравствуйте,
Настройки аналогичны статье? Какие дополнительные параметры настроили?
Попробуйте применить правило drop только на WAN интерфейс вместо LAN-Bridge и без исключающего флага [!]
add action=drop chain=input comment="Rules 1.8" in-interface=WAN
Добрый день.
«…В частности осветить такую хорошую штуку, как Fasttrack Connection…»
Когда планируете осветить штуку Fasttrack Connection?хотелось бы прочитать.
Здравствуйте,
Очень надеюсь, что в ближайшее время, как только разберусь со временем.
Как-то его очень мало на блог остается. Много статей ожидают своей финализации )
Благодарю за проявленный интерес =)
Отличнейшая статья! Всё доходчиво и четко пояснено. Ждем обновленную статью!
Спасибо!
Благодарю =)
Добрый день!
Статья описывает можно сказать «типовой набор правил» с которыми хоть как-то на первое время можно позакрывать дырки в своем микротике от просто любопытных))
Я бы еще добавить некоторую защиту от немаршрутизируемых сетей (ну так на всякий ..):
/ip firewall address-list
add address=0.0.0.0/8 list=BOGON
add address=10.0.0.0/8 list=BOGON
add address=100.64.0.0/10 list=BOGON
add address=127.0.0.0/8 list=BOGON
add address=169.254.0.0/16 list=BOGON
add address=172.16.0.0/12 list=BOGON
add address=192.0.0.0/24 list=BOGON
add address=192.0.2.0/24 list=BOGON
add address=192.168.0.0/16 list=BOGON
add address=198.18.0.0/15 list=BOGON
add address=198.51.100.0/24 list=BOGON
add address=203.0.113.0/24 list=BOGON
add address=224.0.0.0/4 list=BOGON
add address=240.0.0.0/4 list=BOGON
И правило для их блокировки:
/ip firewall filter
add action=drop chain=input comment=Bogon_Drop in-interface=\
"Ваш WAN интерфейс" src-address-list=BOGON
Необходимо ВСЕ правила, связанные с отловом жульманов из вне, навешивать именно на ВХОДЯЩИЙ интерфейс от провайдера или любого другого источника интернета.
Если вы все сделали правильно, то у вас в окошке IP->Firewall->Address List помимо списков появится огромный список жульманов с перечнем IP адресов и временем их блокировки и с пометкой Port_Scaner
Здравствуйте,
Спасибо за небольшое дополнение )))
Уверен читателям будет это полезно. Вкратце объясню, что такое BOGON Networks:
Bogon — IP-адреса, которые не должны встречаться в таблицах маршрутизации в Интернет.
Этим термином описываются зарезервированные диапазоны адресов, которые не должны использоваться, группы адресов, которые не выделены официально, а также приватный диапазон адресов.
Суть добавления этих адресов и блокировка их на внешнем интерфейсе в том, что это поможет от атак с подменой адресов.
НО! Если Ваш роутер стоит за другим маршрутизатором(соседа, или провайдер использует такие), то эти правила использовать не рекомендуется.
В условно-закрытом файрволле данные правила не имеют смысла, так как завершающее правило:
add action=drop chain=input comment=»1.9. Drop All Other» in-interface-list=Internet
порежет и эти сети тоже.
Здравствуйте, благодарю за хорошие статьи по микротикам. Если говорить о данной статье, есть замечание по поводу правила файрвола 1.6. Роутеру вы разрешили обрабатывать днс-запросы от локальных пользователей командой Allow Remote Requests. Исходящие запросы от вас, через wan-интерфейс, на DNS провайдера уйдут от вас и так, а возвратятся по правилу связанного соединения. Поэтому в этом правиле нет необходимости.
Здравствуйте,
Благодарю за отзыв =)
Вы все верно подметили. Все именно так.
Уже прошло достаточно много времени с написания статьи и некоторые правила я уже пересмотрел. На самом деле эту статью необходимо несколько переписать.
В частности осветить такую хорошую штуку, как Fasttrack Connection.
Как только у меня появится на это время я обязательно обновлю статью.
Что касается правила 1.6 то лично у меня его уже давно нет. Блокировку флуда на 53 порт закрывает правило DROP в самом конце на INPUT WAN, а соединения из локальной сети, как Вы и сказали, проходят согласно базовому принципу работы связанных соединений.
Плоховато реализована последовательность действий с их пояснением, сначала использовалась стрелочка где нажимать «ок» потом и она пропала. Как для начинающего осваивать ось микротика тяжеловато сходу понимать где переход по вкладке, а где новое правило, сейчас я веду речь о настройке фаервола, например ещё, написано «Я специально не буду добавлять скриншоты из закладки Gereal т.к. они все выглядят одинаково (указывается только Input)» только вот если не выбрать протокол tcp то строка tcp flags вообще не будет активна… Хотелось бы статью где не надо ломать голову над тем, что автор хотел сказать, а просто повторять действия.
Здравствуйте,
Спасибо за конструктивную критику.
Постараюсь доработать статью, чтобы новичкам было проще влиться в процесс настройки.
Старался сделать компактней )))
У меня одина железка на ADSL, значит надо вместо WAN везде в правилах его подставлять?
Здравствуйте Роман,
Не совсем понимаю причем тут ADSL и и правила MikroTik.
Уточните топологию вашей сети. Что к чему подключено и что хотите получить?
В этом случае она должна подключаться к mikrotik либо как wan порт, либо можно сделать из mikrotik сетевой мост. В обоих случаях firewall придется использовать в ADSL железке и возможности mikrotik не удастся применить для фильтрации трафика.
один из микротиков поднимает PPPOE через модем ADSL в бридже.
во всех правилах на нем вместо WAN логично подставить PPPOE?
все настроил и вроде работает, но правило 1.6 и 1.7 разрешение 1194 почему то не срабатывают — нулевые.
Все верно, в Вашем случае PPPOE будет вместо WAN.
В принципе можете просто переименовать PPPOE соединение в WAN
Правило с портом 1194 это входящий порт для OpenVPN. Если Вы его не используете, то можете удалить эти правила.
Все написано в рамках статей, а в них мы используем OpenVPN туннелирование.
Я настроил все в точности как у Вас. До этого перепробовал несколько подобных решений но они не работали должным образом. Может сразу файлы с бекапом выкладыаать для совсем ленивых )) и вот почему эти правила не работают? Где я мог ошибиться? Пересмотрел и сравнил 2-3 раза (
Файлы с бекапами выкладывать нельзя. Они достаточно специфичны. При восстановлении на другой версии прошивки можно получить некоторый геморрой.
К тому же я стремлюсь к тому, чтобы читатели искали решение и вникали в него, а не бездумно копипастили правила!!!
Как Вы определили, что правила не работают?
Чтобы понять где Вы ошиблись мне нужно увидеть что у Вас есть. Сделайте файл supout.rif и дайте ссылку на файл(например в Гугл или Яндекс диске, дропбоксе и т.д)