Как заблокировать сайт микротиком

Как быстро закрыть доступ к сайту

Начнем с самого простого. У нас есть роутер Mikrotik, утилита winbox и желание конкретному пользователю установить запрет на посещение определенного сайта. Подключаемся к роутеру и идем в раздел IP -> Firewall , открываем закладку Filter Rules :

Нажимаем на + и добавляем новое правило блокировки сайта:

На первой вкладке General заполняем:

  1. Указываем цепочку Forward.
  2. Указываем адрес пользователя, которому будет закрыт доступ к сайту.
  3. Выбираем протокол TCP.

Дальше переходим на вкладку Advanced :

В поле Content указываем адрес сайта, который нужно заблокировать, например vk.com. Переходим на вкладку Action :

Здесь выполняем следующие действия:

  1. В поле Action выбираем reject.
  2. В пункте Reject With указываем tcp reset.
  3. Нажимаем OK.

На этом основная настройка закончена. В данный момент правило по фильтрации сайта уже работает. Мы с помощью стандартных средств mikrotik смогли заблокировать vk.com. Это нетрудно проверить на клиенте. При попытке открыть адрес сайта популярной соц. сети он получит следующее сообщение в браузере chrome:

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

MikroTik настройка firewall. Как защитить роутер от DDoS-атаки

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

Защитить MikroTik от DDoS атак можно с помощью двух методов:

  • Connection Limit;
  • Destination Limit.

Рассмотрим эти способы подробнее.

Защита MikroTik от DDoS-атак с помощью Connection Limit

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

Обработка большого количества соединений с помощью Connection Limit вызывает большую нагрузку на процессор.

Откроем пункт меню «Advanced»:

Следующим условием мы укажем количество подключений с одного IP-адреса при достижении которого хост попадет в черный список:

Добавляем в черный список:

Создадим запрещающее правило для адресов из черного списка «BAN_black_list»:

Расположим правила firewall следующим образом:

Если у вас внутри локальной сети есть сервис “смотрящий” наружу и подверженный DDoS атаке, то необходимо создать аналогичное правило для цепочки «Forward», как показано на рисунке выше.

На этом настройка защиты MikroTik от DDoS-атаки методом Connection Limit закончена.

Защита MikroTik от DDoS-атаки с помощью Destination Limit

Настроим защиту firewall MikroTik от DDoS атак так, что роутер будет передавать все новые попытки подключения на пользовательскую цепочку, которая проверяет условие:

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

Перенаправляем новые попытки подключения в пользовательскую цепочку:

Далее:

Перейдем к конфигурированию пользовательской цепочки:

Следующим шагом:

Добавляем хосты, которые подошли под условия в черный список:

Создадим запрещающее правило блокирующее данный лист:

Расположим правила firewall так:

Не забывайте, если у вас есть сервис внутри локальной сети, “смотрящий” наружу, то необходимо добавить правило в “Forward”.

На этом настройка firewall MikroTik от DDoS-атак закончена.

Блокирование сайтов с помощью Proxy-сервера

Закрыть доступ к сайтам можно также с использованием прозрачного proxy-сервера MikroTik.

Разрешим использование прокси-сервера и настроим его. Для этого откройте New Terminal и выполните следующие команды:

Делаем proxy-сервер прозрачным:

Закрываем доступ к прокси-серверу со стороны интернета:

Настройка некоторых параметров оборудования Mikrotik. Если вы администратор какой либо сети, то вам рано или поздно, придется столкнуться с задачей, когда необходимо закрыть доступ к определенным сайтам. Если это корпоративная сеть, то это скорей всего будут сайты социальных сетей и разного рода развлекательные сайты. Да и дома, порой, возникает потребность защитить детей, от сайтов нежелательного содержания. Как это сделать в Mikrotik RouterOS? Существует несколько способов, самый простой из них, создать запрещающее правило в Firewall с соответствующим адресом сайта.

К примеру, нам нужно запретить доступ, к сайту odnoklassniki.ru.

Для этого, в утилите Winbox мы заходим в раздел Firewall, и на вкладке Filter Rules добавляем новое правило, нажатием кнопки “+”.

На вкладке General, в параметре Chain выбираем значение forward, в параметре Protocol выбираем значение 6(tcp), Dst. Port, мы пишем 80, а в In Interface ставим “!” возле значения и выбираем наш порт, к которому подключен кабель провайдера, например eather1.

Потом на вкладке Action в параметре Action, выбираем значение drop, чтобы запретить этот сайт.

Сохраняем наше правило кнопкой Ok

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

Если это правило включено, не один компьютер в вашей сети, не сможет посещать сайт Одноклассники.

Но ведь таких сайтов, может быть и 2 и даже 10, а то и 50! Как же быть в таком случае? Ведь 20-30 правил создавать не будешь. так как это создаст большую нагрузку на роутер, и может сказаться на качестве работы всей сети. Для этого мы воспользуемся более сложным, но не менее эффективным способом.

Сперва, мы должны узнать IP адрес или адреса сайта, который мы хотим запретить. Открываем на нашем компьютере консоль, и даем команду nslookup site.com, например для Одноклассников

Мы видим что IP адрес этого сайта 217.20.147.94.

Теперь открываем раздел Firewall, и заходим на вкладку Address List, где кнопкой “+”, добавляем новый адрес. В поле Name мы вписываем название нового списка, например, BlockedSites, а в поле адрес, вписываем адрес этого сайта. И сохраняем кнопкой Ok.

Теперь, таким же способом, определяем IP следующего сайта, скажем — Вконтакте

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

Совет для продвинутых пользователей: не обязательно вводить все адреса по одному. легко выяснить с помощью whois сервиса, что компании Vkontakte Ltd принадлежит сеть 87.240.128.0/18 и забанить ее всю, как и сеть 93.186.224.0/22.

Таким образом, мы имеем список всех адресов сайтов, которые мы хотим запретить. И список этот у нас называется BlockedSites.

Теперь мы просто создаем правило в котором мы запрещаем весь этот список.

Для этого, как и в первом случае, в разделе Firewall, переходим на вкладку Filter Rules и добавляем новое правило, нажатием кнопки “+”.

На вкладке General, в параметре Chain выбираем значение forward, в параметре Protocol выбираем значение 6(tcp), Dst. Port, мы пишем 80, а в In Interface ставим “!” возле значения и выбираем наш порт, к которому подключен кабель провайдера, например eather1.

Переходим на вкладку Adwenced, где в поле Dst. Address List, выбираем в качестве параметра, созданный нами список BlockedSites.

И по аналогии с первым вариантом, на вкладке Action в параметре Action, выбираем значение drop, чтобы запретить эти сайты.

Сохраняем наше правило кнопкой Ok.

И поднимаем наше правило в самый верх списка.

Теперь, чтобы запретить любой другой сайт, нам достаточно просто добавить его адрес или адреса, в список BlockedSites на вкладке Address List.

Как ходит трафик в Микротик?

Это нужно знать наизусть. Иначе можно многое напутать…

Представьте компьютер с двумя сетевыми картами. Будем называть его ШЛЮЗ.

В одну карту входит интернет. Со второй выходит к свитчу.

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

За этими компьютерами люди в интернете выходят.

Так вот. Трафик идущий от людей в интернет и обратно – это для шлюза транзитный-проходящий трафик FORWARD

Это левая диаграмма. Как раз наш случай с Микротик.

А если на самом  шлюзе запускаются браузер, почта и пр.

То это уже Входящий и Исходящий трафик для шлюза. Не транзитный. INPUT и OUTPUT.

Т.к. конечная точка всех пакетов – это сам шлюз, а не компы за шлюзом.

Это левая и правая диаграмма, только без центрального блока FORWARD.

В Микротике правая практически никогда не задействована.

Так что про INPUT-OUTPUT забудьте.

Только для блокировки входящих пакетов.

Filter – разрешает-запрещает пакеты, совпадающие по условию записи в Filter.NAT – это чаще всего правило SrcNat-Masquerade – чтоб люди могли ходить в интернет.И DstNat-DstNat – чтоб с интернета можно было добраться до компьютеров и роутеров в вашей сети.Mangle – продвинутый маркировщик пакетов.

Предположим клиент вашей сети имеет адрес локальный 192.168.0.2, а IP Микротика 80.80.80.1 – это интернет адрес.Когда клиент запрашивает веб-страницу, к нему идут пакеты.Но не на его адрес, а на адрес Микротика. Потому как адрес 192.168.0.2 локальный, и само собой напрямую на этот адрес прийти ничего не может.Т.е. Микротику приходит пакет с Dst.Address – 80.80.80.1

1. Mangle Prerouting, Nat Prerouting – правила в этих 2 цепочках Самые первые обрабатывают пакет.

Никаких локальных адресов в пакете нет, только внешний адрес Микротика!

2. Далее срабатывает Firewall – NAT.

Происходит подмена (из таблицы NAT) для входящих пакетов внешнего IP на локальный.

или DstNat (это для тех, кто пытается достучаться до локальных IP-адресов из интернета)

Т.е. теперь  Dst.Address пакета не 80.80.80.1, а уже локальный адрес клиента – 192.168.0.2.

3. Теперь срабатывают правила в цепочках Mangle Forward и Filter Forward.

Тут уже можно фильтровать клиентов вашей сети.

4.Далее снова срабатывает NAT.

Здесь создаются записи в таблице NAT для исходящих пакетов. Т.е. срабатывает SRC-NAT.

По этим записям будет происходить обратная замена IP, когда придут ответные пакеты.

И для исходящих пакетов происходит подмена локального IP  192.168.0.2  на IP Микротика 80.80.80.1.

5. И последний этап – Mangle Postrouting, Nat Postrouting.

Никаких локальных адресов в пакете нет, только внешний адрес  Микротика!

Далее все это направляется в шейпер. Queue Tree и Simple Queue.

Для Транзитного трафика: сеть -> mangle PREROUTING -> nat PREROUTING -> mangle FORWARD -> filter FORWARD -> mangle POSTROUTING -> nat POSTROUTING -> сеть

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

Google является самым популярным рекламодателем, если не желаете видеть эти рекламные объявления — заблокируйте следующие домены рекламной сети:

  • adservice.google.com;
  • tpc.googlesyndication.com.

Внесите домен в в адресный лист AdNetworks:

Таким же образом внесите и другие доменные имена или выполните в терминале:

Так же можно заблокировать сервис Google Tag Manager, который используется для добавления сторонних скриптов на веб страницу:

Если вы используете русскоязычные сайты, внесите в список блокировки местные рекламные сети Yandex и Relap:

Для других стран можно внести в список блокировки, рекламную сеть Criteo:

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

Перед настройкой файрвола

В этой и следующей части статьи используется следующая топология сети:

  • WAN – 172.30.10.26/24, Default Gateway 172.30.10.1
  • DMZ – 10.10.10.1./24
  • LAN – 192.168.88.1/24

Для начала необходимо отключить неиспользуемые на маршрутизаторе сервисы. Фактически для настройки и работы с маршрутизатором нам достаточно сервисов:

  • Winbox – порт 8291 TCP;
  • Ssh – порт 22 TCP;
  • www – порт 80 TCP;

Этап 1. Отключение ненужных сервисов

Открываем меню IP / Services и воспользовавшись кнопкой Disable отключаем ненужные нам сервисы.

Если вы используете для работы с Mikrotik протокол ssh, хорошей идеей будет изменить его стандартный порт на какой-нибудь другой, например 65522. Для этого дважды щелкаем по строке с ssh и в открывшемся окне меняем порт:

Нажав ОК, подтверждаем выбор.

Также можно поменять порты winbox и www. Однако мы не наблюдали, чтобы порт 8291 (winbox) подвергался атаке по подбору пароля.

А вот в случае атаки порта ssh к маршрутизатору, находящемуся на внешнем IP адресе, производится до нескольких сотен попыток несанкционированного подключения в сутки.

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

Для этого дважды щелкаем по строке с www и заполняем поле available from :

Нажав кнопку ОК, подтверждаем выбор.

Этап 2. Отключение поиска соседей и mac-сервера на внешних интерфейсах

Заходим в меню ip/neighbors, переходим на закладку Discovery Interfaces и отключаем все кроме интерфейса LAN, нажатием на кнопку Disable.

Далее идем в меню Tools/MAC Server и на закладках Telnet Interfaces и WinBox Interfaces добавляем интерфейс LAN, удаляем если есть любые другие интерфейсы и отключаем интерфейс «*all»

Это не даст возможности подключиться к маршрутизатору снаружи, при помощи MAC — Telnet

Если кто-то считает что это излишние меры безопасности, вот что видит на WAN -портах один из установленных в работу маршрутизаторов.

При этом на два из них удалось зайти mac-telnet и получить доступ к управлению.

Этап 3. Пользователь и пароль

Теперь надо заменить пользователя по умолчанию и установить ему пароль.

Переходим в меню System/Users.

Создаем нового пользователя с правами администратора.

После чего закрываем программу Winbox, запускаем его заново и заходим под новым пользователем, открываем меню System/Users и отключаем учетную запись администратора.

На этом подготовительные операции можно считать законченными. Переходим к настройке firewall.

Настройка файрвола

В предыдущей части статьи мы с вами узнали, что:

  1. Трафик, идущий на маршрутизатор, попадает в цепочку файрвола input;
  2. Трафик, создаваемый маршрутизатором, попадает в цепочку файрвола output;
  3. Трафик, идущий через маршрутизатор, попадает в цепочку forward;
  4. Существуют четыре состояния соединения: new, established, related, invalid.

То есть, исходя из состояний соединения и цепочек, общие правила защиты маршрутизатора можно сформулировать как:

  1. Мы работаем только с цепочкой input;
  2. Мы пропускаем соединения с состоянием established и related, как уже установленные;
  3. Мы пропускаем протокол ICMP;
  4. Мы считаем как WAN, так и DMZ недоверенными сетями;
  5. Мы разрешаем прохождение некоторого трафика на маршрутизатор. Остальной трафик блокируем.

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

  1. TCP порт 8291 – winbox, удаленное управление снаружи;
  2. 65522 ssh на измененном порту;
  3. Предположим, что у нас в дальнейшем будет настраиваться VPN-сервер по протоколу PPTP и мы разрешим порт 1723 по протоколу TCP.

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

Определяем так называемые bogon-сети (сети приватных или не распределенных IP-адресов).

  • /ip firewall address-list
  • add address=0.0.0.0/8 disabled=no list=BOGON
  • add address=10.0.0.0/8 disabled=no list=BOGON
  • add address=100.64.0.0/10 disabled=no list=BOGON
  • add address=127.0.0.0/8 disabled=no list=BOGON
  • add address=169.254.0.0/16 disabled=no list=BOGON
  • add address=172.16.0.0/12 disabled=no list=BOGON
  • add address=192.0.0.0/24 disabled=no list=BOGON
  • add address=192.0.2.0/24 disabled=no list=BOGON
  • add address=192.168.0.0/16 disabled=no list=BOGON
  • add address=198.18.0.0/15 disabled=no list=BOGON
  • add address=198.51.100.0/24 disabled=no list=BOGON
  • add address=203.0.113.0/24 disabled=no list=BOGON
  • add address=224.0.0.0/4 disabled=no list=BOGON
  • add address=240.0.0.0/4 disabled=no list=BOGON

Должно получится вот так:

И запрещаем с этих подсетей соединения на WAN-порт маршрутизатора

  • /ip firewall filter
  • add action=drop chain=input in-interface=WAN src-address-list=BOGON

Разрешаем все уже установленные подключения (connection state=established)

  • /ip firewall filter
  • add chain=input connection-state=established

Разрешаем все зависимые подключения (connection state=related):

  • /ip firewall filter
  • add chain=input connection-state=related

Разрешаем ICMP:

  • /ip firewall filter
  • add chain=input protocol=icmp

Разрешаем новые соединения по портам 65522 и 8291 с любого интерфейса

  • /ip firewall filter
  • add chain=input connection-state=new dst-port=8291,65522 protocol=tcp

Разрешаем новые соединения по порту 1723 (PPTP) любого интерфейса:

  • /ip firewall filter
  • add chain=input dst-port=1723 protocol=tcp

И блокируем все новые соединения со всех интерфейсов, кроме LAN:

  • /ip firewall filter
  • add action=drop chain=input connection-state=new in-interface=!LAN

Должно получиться следующее:

На этом базовая настройка безопасности маршрутизатора завершена.

Создаем демилитаризованную зону (DMZ)

Теперь, после небольшого теоретического отступления про собственные цепочки, которые мы с вами будем использовать, мы переходим к обещанному созданию DMZ. Исходя из второй части статьи у нас есть 3 интерфейса:

  • WAN (Выход в интернет);
  • DMZ (Демилитаризованная зона);
  • LAN (Локальная сеть).

Разделим их по уровню доверия.

LAN – самая доверенная сеть. Из нее можно ходить как в WAN, так и в DMZ без ограничений. Чтобы из других сетей попасть в LAN, требуется отдельное правило на файрволле.

DMZ – сеть с промежуточным уровнем доверия. Из нее можно ходить в WAN, однако в LAN без специального разрешения доступ закрыт.

WAN – самая небезопасная сеть. С нее по умолчанию закрыт доступ как в LAN, так и в DMZ.

Графически это можно представить так:

Так же предположим, что в DMZ у нас есть www-сервер с адресом 10.10.10.100, который должен быть доступен из WAN (Вопросы настройки NAT в этой статье не рассматриваются). Так же из DMZ разрешено обращение на порт 22(ssh) хоста 192.168.88.200 расположенного в LAN.

Запретить социальные сети в mikrotik

Сейчас на примере списка социальных сетей разберу еще один подход к блокировке сайтов в mikrotik. Он будет основываться не на резолве доменных имен в ip адреса, а на анализе содержимого пакетов с помощью Layer7 Protocol. Его преимущество именно в том, что он анализирует содержимое пакетов. Теоретически, это более надежный способ блокировки, так как ip адреса сайтов могут меняться. В случае статических правил с ip адресами это может приводить к тому, что в какой-то момент они станут не актуальны. С эти тоже можно бороться, обновляя списки, но это отдельная тема.

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

Для этого создаем правило Layer7 Protocol в соответствующем разделе Winbox IP -> Firewall -> Layer7 Protocols для блокировки социальной сети facebook.

/ip firewall layer7-protocol
add name=facebook regexp="^.+(facebook).*\$"

Теперь нам нужно промаркировать все соединения и пакеты в dns запросах, где будет совпадение с созданным ранее правилом. Идем во вкладку Mangle и добавляем правило маркировки соединений.

Чтобы не перепутать какие-то параметры, можете просто ввести в консоли команду и проверить созданное правило.

/ip firewall mangle
add action=mark-connection chain=prerouting protocol=udp dst-port=53 connection-mark=no-mark layer7-protocol=facebook new-connection-mark=facebook_conn passthrough=yes

И еще одно правило для маркировки пакетов на основе промаркированного выше соединения.

add action=mark-packet chain=prerouting connection-mark=facebook_conn new-packet-mark=facebook_packet

Пакеты промаркировали. Теперь создаем 2 блокирующих правила для цепочек input и forward. Для этого идем во вкладку Filter Rules и добавляем 2 правила. Я не буду показывать картинки, их и так уже полно в статье. Правила простые, введите их в консоль сами.

add action=drop chain=forward packet-mark=facebook_packet
add action=drop chain=input packet-mark=facebook_packet

Далее важно эти правила правильно расположить в списке правил. Они обязательно должны быть выше разрешающих правил для цепочек input и forward

Примерно так.

add action=drop chain=input comment="block facebook" log=yes packet-mark=facebook_packet
add action=accept chain=input comment="Local Input" in-interface=!ether2-wan src-address=192.168.13.0/24

add action=drop chain=forward comment="block facebook" log=yes packet-mark=facebook_packet
add action=accept chain=forward comment="accept forward from local to internet" in-interface=!ether2-wan

На время отладки я включаю логирование правил, обнуляю счетчики и начинаю тестировать. Если что-то пойдет не так, проверьте так же счетчики в разделе Mangle. Если там будет пусто, значит ошибка либо в правиле Layer7 Protocols, либо в самих правилах маркировки. Я, когда тестировал, неправильно расположил правила в Firewall. В итоге в правилах маркировки счетчики росли, пакеты маркировались, но блокировки не было. Это было видно по нулевым счетчикам в Firewall. После того, как правильно расположил правила, блокировка социальной сети facebook заработала как надо.

Объясняю логику работы данной блокировки. Мы маркируем все соединения к dns серверу, удовлетворяющие указанному regex в правиле Layer7. Далее маркируем все пакеты из этого соединения. Потом в фаерволе блокируем эти соединения. Если клиент использует DNS сервер на микротике, запросы блокируются правилом цепочки input, если используется сторонний, то в блок пакеты попадают по правилу цепочки forward. В итоге у клиента не работает резолвинг доменного имени в ip и он не может попасть на сайт через браузер. Конечно, при желании, эту блокировку соцсети можно обойти. Для наибольшей эффективности надо комбинировать оба предложенных в статье способа.

Для тех, кому интересно, почему я описал именно такой способ блокирования нежелательных сайтов, поясню. Подсмотрел его в недавно переведенной мной презентации от сотрудника Mikrotik, где он дает рекомендации по настройке. Я просто попробовал его реализовать и все получилось. Решил его добавить в эту статью. Все вопросы и претензии по реализации прошу отправлять автору метода, не мне :) Мопед, как говорится, не мой.

Фильтрация и отключение служб через Services

Как я и писал выше, все что вы не используете вы должны отключить, в моем случае, мне для управления моим MikroTik RB4011iGS достаточно веб интерфейса, поэтому я отключу: ftp, ssh, telnet. Для этого слева есть столбец с кнопкой «D».

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

Пробуем проверить доступность порта из Германии, как видим 22 порт SSH закрыт, это хорошо, значит его больше не будут брутфорсить.

Если вы используете, например SSH, но хотите его оградить от перебора паролей, то вы можете пойти на хитрость и разрешить обращение к нему, только с определенной сети или IP-адреса. Для этого на включенной службе, щелкните два раза. В результате чего у вас откроется редактор правила фильтрации, где вам в поле «Port» необходимо указать по какому порту будет работать служба, для большей безопасности советую менять стандартные значения, на диапазон после 1024 и в поле «Avaliable From» указать сеть или IP-адрес, кому будет разрешено. Сохраняем правило.

В итоге у меня получилось вот так, пробуем проверить с другого IP доступ до служб.

Самое интересное, что порт при SSH при проверке с внешнего сервера показывал статус «Open», что слегка обескураживало

Но если вы попытаетесь подключиться через клиента Putty или его аналоги, то увидите ошибку подключения «Network error: Software caused connection abort», что доказывает, что созданное правило фильтрации на уровне службы работает.

Пробовал настроить фильтрацию служб и через WinBox, но результат тот же

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Техноарена
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: