Межсетевой экран микротик

Межсетевой экран микротик Хостинг

Базовая настройка защиты роутера MikroTik: настройка устройства, настройка сетевого экрана, защита от сканирования портов, защита от подбора пароля.

? В статье даны примеры команд в терминале MikroTik. Если при вставке команды в терминал, происходит автоматическая вставка команд (при выполнении вы получаете ошибку bad command name или expected end of command), нажмите сочетание Ctrl+V, чтобы отключить эту возможность.

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

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

Если доступ к устройству имеют несколько пользователей, вы можете более подробно задать права выбранному пользователю. Создайте новую группу и определите права пользователей этой группы.

Сервисы

Отключаем сервисы MikroTik, которые не планируем использовать.

Изменить порт Winbox

Измените номер порта Winbox по умолчанию — 8291, на другой, свободный номер порта — Port (в примере порт 30122).

При изменении порта, следите чтобы не назначить Winbox порт используемый другой службой, список — здесь.


Межсетевой экран микротик

MikroTik отключение неиспользуемых сервисов и изменение порта Winbox

Обновление

В оборудовании MikroTik (как и в оборудовании других сетевых вендоров) периодически находят уязвимости — своевременное выполнение обновлений необходимая мера для обеспечения безопасности устройства.

Если обновление версии будет найдено, выполните обновление устройства.

? Скрипт Проверка обновления RouterOS, пришлет уведомление о выходе новой версии прошивки.

Интерфейсы

Объединим внутренние (доверенные) и внешние (недоверенные) интерфейсы в списки, для удобства дальнейшего управления.

Список «Внутренние интерфейсы»

Помещаем в этот список интерфейсы локальной сети, VPN подключения и т.д.

/interface list add name=InternalInterfaces comment=»Trusted network interfaces (internal, clients vpn, etc).»

Список «Внешние интерфейсы»

Помещаем в этот список внешние интерфейсы (интернет и т.д.).

/interface list add name=ExternalInterfaces comment=»Untrusted network interfaces (internet, external etc).»


Межсетевой экран микротик

Укажем доверенные и не доверенные интерфейсы

Соседи

Настроим обнаружение устройства используя Neighbor Discovery только для внутренних интерфейсов или разрешенных интерфейсов.

Разрешаем обнаружение только с интерфейсов перечисленных в списке InternalInterfaces.

/ip neighbor discovery-settings set discover-interface-list=InternalInterfaces


Межсетевой экран микротик

Настройка MikroTik Neighbor Discovery

Межсетевой экран

Настраиваем ограничения доступа к роутеру и устройствам сети с помощью межсетевого экрана MikroTik.

⚠️ Перед добавлением ограничивающих правил — включите Безопасный режим MikroTik!

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

Правило «Trusted» — разрешаем уже установленные и связанные подключения, для снижения нагрузки на центральный процессор роутера.

/ip firewall filter add action=accept chain=input connection-state=established,related comment=»Rule #0 «Trusted»: allow established, related connections.»

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

Правило «Drop Invalid Packet» — отбрасывает недействительные пакеты.

/ip firewall filter add chain=input action=drop connection-state=invalid comment=»Chain: Input. Rule #1 «Drop Invalid Packet»: drop packets connection state: invalid.»

Разрешить ICMP

Правило «ICMP» — разрешает ICMP трафик на устройство.

/ip firewall filter add chain=input protocol=icmp action=accept comment=»Chain: Input. Rule #3 «ICMP»: accept icmp packets.»

Черный список

Создаем список BlackList, в который будем помещать IP адреса, которым по какой-то причине запрещен доступ к MikroTik или защищаемым устройствам.

/ip firewall address-list add list=BlackList comment=»Deny access to the router and local network, from IP addresses from this list.»

Создать правило

Создадим правило «BlackList» отклоняющее запросы от IP адресов из списка BlackList.

Для экономии ресурсов центрального процессора, запрещающее правило разместим в таблице Prerouting.

/ip firewall raw add chain=prerouting src-address-list=BlackList action=drop comment=»Rule #10 «BlackList»: reject the connection with a device from the Blacklist.»

⚠️ Правила размещенные в Prerouting выполняются до разделения трафика на цепочки Input и Forward!


Межсетевой экран микротик

На скриншоте видно дополнительные правила:

Блокировка сканеров портов

Правило превентивной блокировки — блокируем ботов/пользователей сканирующих порты устройств в интернете, для поиска уязвимостей. Составим список не используемых портов нашим роутером, внесем в BlackList IP адреса устройств, кто пытается обратиться к указанным портам.

Для защиты от сканеров, которые целенаправленно ищут устройства MikroTik — добавим в список неиспользуемые порты (сервисы MikroTik) и стандартный порт Winbox 8291 (который мы сменили по рекомендации). Добавим популярные уязвимые порты роутеров (если злоумышленник проверяет на роутере данные порты, полностью заблокируем ему доступ).

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

TCP порты ловушки

Помещаем IP адрес недоверенного устройства в BlackList, на 10 часов:


Межсетевой экран микротик

Блокировать сканеры портов

? За 10 часов в BlackList находится около 500 IP адресов выполняющих попытки сканировать «уязвимые порты» роутера MikroTik.

Разрешим порт Winbox

Правило «Winbox» — разрешаем подключение на порт Winbox (в примере — 30122).

/ip firewall filter add chain=input protocol=tcp dst-port=30122 action=accept comment=»Chain: Input. Rule #10 «Winbox»: accept Winbox port connections.»

Сбрасываем неразрешенные соединения

Правило «Drop all» — отбросим все соединения, которые не были разрешены раньше и не входят в список доверенных (внутренних) интерфейсов (InternalInterfaces).

/ip firewall filter add action=drop chain=input in-interface-list=!InternalInterfaces comment=»Chain: Input. Rule #15 «Drop All»: drop_all packets that do not meet the early conditions, except from trusted interfaces.»

Поместите правило на последнюю позицию в правилах Firewall Filter Rules.

Блокируем Bruteforce

Правило «Bruteforce» — поместим IP адрес устройства в BlackList, при повторной неудачной попытке авторизации на устройстве.

Помещаем IP адрес устройства в BlackList, на 70 минут.

Правило блокировки подбора пароля

? Защита MikroTik — базовая настройка безопасности, обсуждалось в этой статье. Я надеюсь, что теперь вы смогли настроить сервисы роутера и правила файрволла, улучшив защиту роутера MikroTik и устройств локальной сети. Однако, если вы столкнетесь с каким-то проблемами при настройке, не стесняйтесь написать в комментариях. Я постараюсь помочь.

Basic configuration of MikroTik router protection: device configuration, firewall configuration, port scan protection, password guessing protection.

? The article gives examples of commands in the MikroTik terminal. If, when pasting a command into the terminal, commands are automatically inserted (while executing you get a bad command name or expected end of command error), press Ctrl+V to disable this feature.

Content

Article in other languages:?? – Protección MikroTik (configuración básica de seguridad del dispositivo) ?? – Защита MikroTik (базовая настройка безопасности устройств) ?? – MikroTik Protection (paramètre de sécurité de base de l’appareil) ?? – MikroTik-Schutz (grundlegende Geräte Sicherheitseinstellung) ?? – MikroTik Protection (basisinstelling apparaatbeveiliging)

Читайте также:  Пошаговое руководство: настройка сети в CentOS

Users

Disable MikroTik services that we do not plan to use.

Change Winbox Port

Change the default Winbox port number – 8291, to another free port number – Port (in the example, port 30122) .

When changing the port, make sure not to assign Winbox a port used by another service, the list is here.

Disable unused services and change Winbox port

Update

Vulnerabilities are periodically found in MikroTik equipment (as in the equipment of other network vendors) – timely updates are a necessary measure to ensure device security.

If a version update is found, update the device.

? Script Checking for RouterOS update, will send a notification about the release of a new firmware version.

Interfaces

Let’s combine internal (trusted) and external (untrusted) interfaces into lists for the convenience of further management.

Список «Внутренние интерфейсы»

Заносим в этот список интерфейсы локальной сети, VPN-подключения и т.д.

Список «Внешние интерфейсы»

В этот список мы поместили внешние интерфейсы (интернет и т.д.).

Указать доверенные и недоверенные интерфейсы

Соседи

Настроим обнаружение устройств с помощью Neighbor Discovery только для внутренних интерфейсов или разрешенных интерфейсов.

Разрешить обнаружение только с интерфейсов, перечисленных в списке InternalInterfaces.

Настройка MikroTik Neighbor Discovery

Брандмауэр

Настраиваем ограничения доступа к роутеру и сетевым устройствам с помощью межсетевого экрана MikroTik.

⚠️ Прежде чем добавлять ограничительные правила – включите безопасный режим MikroTik!

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

Правило «Доверенные» — разрешать уже установленные и связанные соединения для снижения нагрузки на центральный процессор роутера.

Поместите правило первым в списке правил фильтрации (поместите правило на основе его номера в комментарии).

Удаление недействительных пакетов

Правило «Drop Invalid Packet» – отбрасывает недействительные пакеты.

Разместите правило после доверенного правила в списке правил фильтрации (поместите правило на основе его номера в комментарии).

Разрешить ICMP

Правило «ICMP» — разрешает ICMP-трафик на устройство.

Разместите правило в соответствии с его номером в комментарии.

Черный список

Создаем BlackList, в который будем заносить IP-адреса, которым по каким-то причинам запрещен доступ к MikroTik или защищенным устройствам.

Создать правило

Создадим правило «Черный список», которое отклоняет запросы с IP-адресов из черного списка.

Для экономии ресурсов процессора поместите запрещающее правило в таблицу Prerouting.

/ip firewall raw add chain=prerouting src-address-list=BlackList action=drop comment=»Правило №10 «Черный список»: отклонить соединение с устройством из черного списка.»

⚠️ Правила, размещенные в Prerouting, выполняются до разделения трафика на цепочки Input и Forward!

Межсетевой экран микротик

Правило черного списка: удалять все пакеты с IP-адресов из черного списка

На скриншоте показаны дополнительные правила:

Блокировать сканеры портов

Мы будем применять правило только для новых подключений.

Перехватывать порты TCP

Заносим IP-адрес недоверенного устройства в черный список, на 10 часов:

Разместите правило по номеру в комментарии.

? За 10 часов в BlackList находится около 500 IP-адресов, осуществляющих попытки сканирования «уязвимых портов» устройства MikroTik.

Разрешить порт Winbox

Правило «Winbox» — разрешить подключение к порту Winbox (в примере — 30122).

Удаление запрещенных соединений

Правило «Drop all» — будем отбрасывать все соединения, которые ранее не были разрешены и не входят в список доверенных (внутренних) интерфейсов (InternalInterfaces).

Окончательные правила брандмауэра

Поместите правило на последнюю позицию в правилах фильтрации брандмауэра

Блокирующий брутфорс

Правило «Bruteforce» — заносить IP-адрес устройства в черный список, если повторная попытка авторизации на устройстве не удалась.

Заносим IP-адрес устройства в BlackList, на 70 минут.

? Защита MikroTik (базовая настройка безопасности устройства), рассмотренная в этой статье. Надеюсь, теперь вы смогли настроить службы маршрутизатора и правила брандмауэра, улучшив защиту маршрутизатора MikroTik и устройств локальной сети. Однако, если у вас возникнут какие-либо проблемы при настройке, не стесняйтесь писать в комментариях. Я постараюсь помочь.

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

Улучшение настроек

. Для соединений по PPPoE, например, WAN-интерфейсом будет pppoe-out1, а для DHCP — ether1. Если экспортировать конфиг файрвола с одного маршрутизатора, то ничего не выйдет, потому что у второго нет просто внешнего интерфейса pppoe-out1. Или представь себе, что в одном филиале локальная сеть посещает ether9, а в другом стоит маршрутизатор с пятью портами, из-за чего настройка девятого порта просто не встанет и вылетит с ошибкой.

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

Мы уже рассматривали списки интерфейсов. Это фича для оперирования несколькими интерфейсами как одним. Создадим листы WAN и LAN, а затем добавим туда нужные интерфейсы. Теперь правила файрвола будем привязывать к интерфейс-листам, а не к отдельным интерфейсам. Перед экспортом правил на другой роутер просто создадим на нем нужные листы, и конфиг встанет без ошибок.


Межсетевой экран микротик

Но это еще не все. Понятно, что в каждом филиале у нас будет своя подсеть LAN: где-то 192.168.10.0/24, где-то 192.168.11.0/24. Чтобы не путаться с этими значениями и не менять конфиг при переносе с одного роутера на другой, оперировать будем не адресами и подсетями, а списками адресов. На каждом роутере создаем список LAN и дальше работаем только с ним.

В прошлый раз мы создавали адрес-лист MGMT, в котором открывали доступ к управлению роутером только с определенных адресов. А еще раньше рассматривали решение Port Knocking, которое предоставляет доступ к управлению, только если со стороны клиента выполнить секретные манипуляции. Для доступа к роутеру из доверенной сети (LAN) вполне подходит вариант с адрес-листом, а для доступа снаружи — Port Knocking. Было бы хорошо совместить эти варианты в нашей конфигурации. Еще будет удобно разделить цепочку input на две части: input со стороны интернета и input со стороны локалки. Тогда можно применять разные политики фильтрации к разным сегментам сети. В этом нам помогут пользовательские цепочки.

Все, что пришло снаружи, перекидываем в новую цепочку WAN_INPUT. Все, что изнутри, — в LAN_INPUT:

/ip firewall filter
add action=jump chain=input in-interface-list=WAN jump-target=WAN_INPUT
add action=jump chain=input in-interface-list=LAN jump-target=LAN_INPUT

Теперь политики фильтрации будут разными для разного источника трафика. Для внешнего трафика будем использовать цепочку WAN_INPUT и более жесткие ограничения, для внутреннего — LAN_INPUT и правила попроще. Цепочка input нам больше не нужна, теперь мы все будем делать в новых цепочках. Причем указывать интерфейсы или списки интерфейсов в правилах больше не понадобится. Однако этот подход может использоваться в сложных решениях, например когда у тебя два провайдера с разными политиками фильтрации или локалка поделена на разные VLAN. Но об этом позже.

Читайте также:  Как настроить контактную форму 7 для wordpress? — инструкция и описание

В статье о безопасной настройке роутера мы настраивали Port Knocking для доступа к управлению роутером. Ограничивать таким образом доступ изнутри локальной сети — излишество. Поэтому поменяем в правилах цепочку с input на WAN_INPUT. Изнутри сети разрешим доступ к WinBox только с нужных адресов: мы уже делали это в статье про основы файрвола. Оставим в правиле только порт WinBox — TCP 8291. А для SSH разрешим подключения из всей нашей сети, но предотвратим возможность брутфорса (да, изнутри сети тоже может произойти брутфорс SSH, потому что отсутствие троянов в ней не гарантировано).

add action=drop chain=LAN_INPUT comment=»drop ssh brute forcers» src-address-list=ssh_blacklist
add action=add-src-to-address-list address-list=ssh_blacklist address-list-timeout=1w3d chain=LAN_INPUT connection-state=new dst-port=22 protocol=tcp src-address-list=ssh_stage3
add action=add-src-to-address-list address-list=ssh_stage3 address-list-timeout=1m chain=LAN_INPUT connection-state=new dst-port=22 protocol=tcp src-address-list=ssh_stage2
add action=add-src-to-address-list address-list=ssh_stage2 address-list-timeout=1m chain=LAN_INPUT connection-state=new dst-port=22 protocol=tcp src-address-list=ssh_stage1
add action=add-src-to-address-list address-list=ssh_stage1 address-list-timeout=1m chain=LAN_INPUT connection-state=new dst-port=22 protocol=tcp src-address-list=!ssh_open
add action=accept chain=LAN_INPUT dst-port=22 protocol=tcp

Тут применяется механизм динамических адрес-листов с тайм-аутами. Мы рассматривали их в статье «Защищаем MikroTik. Хитрости безопасной настройки роутера». При первой попытке подключения пакет обработается правилом 5, и адрес хакера попадет в адрес-лист ssh_stage1. Вторая попытка подключения обработается правилом 4 и добавит брутфорсера в лист ssh_stage2. И так далее вплоть до листа ssh_blacklist, где адрес будет храниться десять дней, а весь трафик, идущий с адресов из этого списка, будет дропаться.

В прошлой статье мы создавали правила, разрешающие коннекты established, related и запрещающие invalid. Давай продублируем эти правила и перенесем их в новые цепочки, а из input удалим. В результате мы получим четыре правила вместо двух. На прохождение трафика это не повлияет, зато позволит видеть статистику по трафику с разных сторон. В правиле с established, related поставь галочку untracked. Чуть позже объясню, зачем она. Думаю, адаптировать остальные правила под новую логику не составит труда. В конце каждой цепочки не забудь указать правило дропа.


Межсетевой экран микротик

Должно получиться примерно так

Две цепочки позволят нам уменьшить количество переходов трафика по правилам, а значит, и немного снизить нагрузку на CPU. Счетчики в разных цепочках дадут возможность увидеть чуть более детальную статистику трафика. Хоть правил и стало больше, но они не применяются ко всему объему трафика: при первом джампе весь трафик будет обрабатываться уже новой цепочкой и в другую никогда не попадет. Подобный подход также упрощает поддержку за счет того, что по названию цепочки сразу видно, что это за трафик и откуда он идет. Можно для разных типов трафика создавать свои цепочки, например отдельную цепочку для management-трафика. За возврат трафика в родительскую цепочку отвечает action return.

Защищаемся от атак

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

Есть зарезервированные адреса, которые не используются в интернете. Они называются «богон-адресами». Отсечем пакеты с таких адресов:

Мы ожидаем пакеты только с юникаст-адресов, поэтому запретим все, кроме них.


Межсетевой экран микротик

Drop non unicast

Port Scan Detect — функция, позволяющая обнаружить сканер портов. Как она работает? Портам задается некий условный вес — Weight. Причем для системных портов (до 1024-го) весовой коэффициент низкий (Low ports), а для остальных — высокий (High ports). Если в течение времени Delay Threshold от одного хоста на роутер прилетят пакеты на порты, сумма весов которых окажется больше, чем Weight Threshold, то адрес отправителя будет добавлен в блек-лист. В нашем примере, если с одного хоста за три секунды поступят десять пакетов на порты до 1024-го (общий вес 10 * 2 = 20) и двадцать пакетов на порты выше 1024-го (20 * 1 = 20), общий их вес составит 40. Обрати внимание, что Port Scan Detect работает только для TCP- или UDP-трафика.


Межсетевой экран микротик

Защищаемся от сканеров

Один из самых распространенных видов атак — это атака на отказ в обслуживании, или DDoS. Защититься от нее своими силами практически нереально. Но с помощью простого правила можно отсечь самые простые попытки атаки. Находим хост, который насоздавал к нам больше 100 сессий, и добавляем его в блек-лист. В этом правиле обязательно нужно использовать параметр connection-state=new. Но мы ведь уже разрешили все established, related и untracked, а invalid дропнули, поэтому сюда дойдут только пакеты new. Оставлять или нет этот флажок в правиле — твое дело. Отмечу, что с помощью этой же фичи можно выявлять в своей сети торрентокачальщиков.


Межсетевой экран микротик

Защищаемся от DDoS

ICMP — один из важных протоколов в любой сети. Многие админы любят блокировать его, но это очень плохой подход. Именно ICMP позволяет работать трассировке, указывать на недоступность UDP-портов, отправлять разные служебные сообщения. И если запретить его полностью, можно наловить кучу багов. У каждого сообщения ICMP свое предназначение, и уже по этому параметру нетрудно понять, имеет ли смысл разрешить какие-то типы ICMP изнутри сети или снаружи. Например:

Остальное легко найти в интернете, а лучше почитать RFC 792.

Создадим цепочку ICMP и отправим в нее весь ICMP-трафик (можно создать две цепочки: для LAN и WAN — и настроить разные политики). Разрешаем только нужные типы сообщений и ограничиваем обработку пятью пакетами в секунду:


Межсетевой экран микротик

Пример правила ICMP

TCP тоже поддерживает кучу флагов, часть которых не может содержаться в одном пакете. Комбинации этих флагов часто используются сканерами портов, чтобы пробить плохо настроенную защиту. Сделаем отдельную цепочку для TCP и дропнем подобные «подозрительные» пакеты:

/ip firewall filter
add action=jump chain=WAN_INPUT comment=»Invalid TCP» jump-target=invalid_tcp protocol=tcp
add action=jump chain=LAN_INPUT comment=»Invalid TCP» jump-target=invalid_tcp protocol=tcp
add action=jump chain=forward comment=»Invalid TCP» jump-target=invalid_tcp protocol=tcp
add action=drop chain=invalid_tcp comment=»Invalid TCP — !(FIN/SYN/RST/ACK)» protocol=tcp tcp-flags=!fin,!syn,!rst,!ack
add action=drop chain=invalid_tcp comment=»Invalid TCP — FIN/SYN» protocol=tcp tcp-flags=fin,syn
add action=drop chain=invalid_tcp comment=»Invalid TCP — FIN/RST» protocol=tcp tcp-flags=fin,rst
add action=drop chain=invalid_tcp comment=»Invalid TCP — FIN/!ACK» protocol=tcp tcp-flags=fin,!ack
add action=drop chain=invalid_tcp comment=»Invalid TCP — FIN/URG» protocol=tcp tcp-flags=fin,urg
add action=drop chain=invalid_tcp comment=»Invalid TCP — SYN/RST» protocol=tcp tcp-flags=syn,rst
add action=drop chain=invalid_tcp comment=»Invalid TCP — RST/URG» protocol=tcp tcp-flags=rst,urg
add action=drop chain=invalid_tcp comment=»Invalid TCP — Source Port 0″ protocol=tcp src-port=0
add action=drop chain=invalid_tcp comment=»Invalid TCP — Destination Port 0″ dst-port=0 protocol=tcp

Читайте также:  Обновите свою виртуальную инфраструктуру бесплатно с помощью подписки Proxmox


Межсетевой экран микротик

Пример с TCP-флагами

То же самое для UDP:

add action=drop chain=invalid_udp comment=»Invalid UDP — Source Port 0″ protocol=udp src-port=0
add action=drop chain=invalid_udp comment=»Invalid UDP — Destination Port 0″ dst-port=0 protocol=udp

Цепочка Forward

До сих пор мы в основном смотрели на трафик, прилетевший в input-цепочку, а дальше по каким-то признакам направляли его в разные цепочки. Но весь этот трафик предназначался самому роутеру. Цепочку output используют редко, но ты можешь отфильтровать в ней, например, ICMP-ответы от роутера или IPsec-трафик. Понятно, что большая часть трафика будет попадать в forward — ведь на то он и роутер, чтобы перенаправлять пакеты из одной сети (локалка) в другую (интернет или второй VLAN локалки). И в этой цепочке мы будем управлять трафиком пользователей.

Я не стану детально рассказывать о том, что надо разрешить или запретить, — об основных приемах настройки и так уже написано несколько статей и есть куча примеров в интернете. Рассмотрим более интересный кейс: репутацию сети.

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

Попробуем защитить свою премию. Для этого нужно понять, по какому поводу нас могут внести в списки. Причин этому несколько:

Некоторые читатели этой статьи вполне могли участвовать в DDoS-ботнете, сами того не осознавая. Атаки UDP Amplification основаны на некорректных настройках сервисов, когда можно обратиться к ним с просьбой узнать что-то у другого сервера. Например, к нам может прилететь DNS-запрос с просьбой отрезолвить адрес жертвы. И таких, как мы, миллионы. Когда к жертве поступит миллион пакетов в секунду, она не обрадуется, а мы увидим загрузку CPU под 100%, жуткие тормоза и однажды окажемся в блек-листе. Такая же схема работает и с другими UDP-сервисами, например NTP. Вывод простой: блокируй трафик к этим сервисам снаружи. Но это все еще про INPUT.

Не только роутер может быть частью такого ботнета, но и машины внутри сети. Для детекта таких хостов воспользуемся уже известной фичей connection limit.

фильтр брандмауэра /ip
добавить action=add-src-to-address-list address-list=dns-flood address-list-timeout=none-dynamic chain=forward comment=»DNS Flood» connection-limit=100,32 dst-port=53 в -interface-list=Протокол локальной сети=udp
add action=add-src-to-address-list address-list=smb-flood address-list-timeout=none-dynamic chain=forward comment=»SMB Flood» connection-limit=100,32 dst-port=445 в -interface-list=протокол локальной сети=tcp
add action=add-src-to-address-list address-list=telnet-flood address-list-timeout=none-dynamic chain=forward comment=»Telnet Flood» connection-limit=20,32 dst-port=23 in -interface-list=протокол локальной сети=tcp
add action=add-src-to-address-list address-list=ssh-flood address-list-timeout=none-dynamic chain=forward comment=»SSH Flood» connection-limit=20,32 dst-port=22 in -interface-list=протокол локальной сети=tcp
add action=add-src-to-address-list address-list=snpp-flood address-list-timeout=none-dynamic chain=forward comment=»SNPP Flood» connection-limit=20,32 dst-port=444 в -interface-list=протокол локальной сети=tcp
добавить action=add-src-to-address-list address-list=msf-indication address-list-timeout=none-dynamic chain=forward comment=»Metasploit Indication» connection-limit=20,32 dst-port=4444 в -interface-list=Протокол локальной сети=tcp

Слишком «толстые» потоки тоже вызывают подозрения. Залогируем их:

add action=log chain=forward comment=»Abnormal Traffic» connection-bytes=80000000 in-interface-list=префикс журнала LAN=Abnormal-Traffic

По порту назначения можно определить, к какому сервису обращаются хосты изнутри нашей сети. И если это общеизвестный порт, например СУБД, все а наши назначения внутри периметра, логично заболеваемость, что сотни в среднем к этому порту в интернете с компьютером бухгалтера — не простая ошибка и не личный интерес самого бухгалтера. Отбрасываем подозрительные пакеты и возвращаемся в потребительскую цепочку (последнее правило):

add action=jump chain=forward comment=»Перейти к цепочке вирусов» disabled=no jump-target=Virus
add action=drop chain=Virus comment=»Drop Blaster Worm» disabled=no dst-port=135-139 protocol=tcp
add action=drop chain=Virus comment=»Drop Blaster Worm» disabled=no dst-port=445 protocol=tcp
add action=drop chain=Virus comment=»Drop Blaster Worm» disabled=no dst-port=445 protocol=udp
add action=drop chain=Virus comment=»Drop Messenger Worm» disabled=no dst-port=135-139 protocol=udp
add action=drop chain=Вирусный комментарий=Conficker disabled=no dst-port=593 protocol=tcp
add action=drop chain=Virus comment=Червь отключен=no dst-port=1024-1030 protocol=tcp
add action=drop chain=Virus comment=»ndm requester» disabled=no dst-port=1363 protocol=tcp
add action=drop chain=Virus comment=»ndm server» disabled=no dst-port=1364 protocol=tcp
add action=drop chain=Вирусный комментарий=»трансляция экрана» disabled=no dst-port=1368 protocol=tcp
add action=drop chain=Вирус комментарий=hromgrafx disabled=no dst-port=1373 protocol=tcp
add action=drop chain=Virus comment=»Drop MyDoom» disabled=no dst-port=1080 protocol=tcp
add action=drop chain=Вирус comment=cichlid disabled=no dst-port=1377 protocol=tcp
add action=drop chain=Вирус комментарий=Червь отключен=нет dst-port=1433-1434 протокол=tcp
add action=drop chain=Вирус comment=»Drop Dumaru.Y» disabled=no dst-port=2283 protocol=tcp
add action=drop chain=Virus comment=»Drop Beagle» disabled=no dst-port=2535 protocol=tcp
add action=drop chain=Вирус comment=»Drop Beagle. CK» disabled=no dst-port=2745 protocol=tcp
add action=drop chain=Virus comment=»Drop MyDoom» disabled=no dst-port=3127-3128 протокол=tcp
add action=drop chain=Virus comment=»Drop Backdoor OptixPro» disabled=no dst-port=3410 protocol=tcp
add action=drop chain=Virus comment=»Drop Sasser» disabled=no dst-port=5554 protocol=tcp
add action=drop chain=Вирус комментарий=Червь отключен=нет dst-port=4444 протокол=tcp
add action=drop chain=Вирус комментарий=Червь отключен=нет dst-port=4444 протокол=udp
add action=drop chain=Вирус comment=»Drop Beagle.B» disabled=no dst-port=8866 protocol=tcp
add action=drop chain=Virus comment=»Drop Dabber. AB» disabled=no dst-port=9898 protocol=tcp
add action=drop chain=Вирус comment=»Drop Dumaru.Y» disabled=no dst-port=10000 protocol=tcp
add action=drop chain=Вирус comment=»Drop MyDoom.B» disabled=no dst-port=10080 protocol=tcp
add action=drop chain=Virus comment=»Drop NetBus» disabled=no dst-port=12345 протокол=tcp
add action=drop chain=Virus comment=»Drop Kuang2″ disabled=no dst-port=17300 protocol=tcp
add action=drop chain=Virus comment=»Drop SubSeven» disabled=no dst-port=27374 протокол=tcp
add action=drop chain=Virus comment=»Drop PhatBot, Agobot, Gaobot» disabled=no dst-port=65506 protocol=tcp
add action=drop chain=Virus comment=»Drop MemCached Flood» disabled=no dst-port=11211 protocol=udp
add action=return chain=Вирус comment=»Возврат из цепочки вирусов» disabled=no

Заключение

Мы разработали более продвинутые методы настройки файрвола. Эту статью не нужно воспринимать как инструкцию по настройке: у каждой сети свои особенности и сервисы. Роутеры у всех тоже разные — у кого-то он спокойно обработает тысячи неоптимизированных правил файрвола, для других сотня правил будет обрабатываться с трудом. Поэтому подходи к настройке файрвола с умом.

В две статьи всё не вместишь, и мы не затронули еще несколько больших тем: таблицы NAT, RAW, IPv6 Firewall, Bridge Firewall, фильтрацию по контенту, определение типа трафика по его содержимому (когда мы меняем порт у HTTP, а файрвол все равно понимает, что внутри HTTP), проксирование трафика.

Все эти темы рассматриваются в официальном обучающем курсе MikroTik — MikroTik Certified Traffic Control Engineer. Но чтобы на него попасть, нужно пройти курс MikroTik Certified Network Associate, где изучаются общие принципы настройки роутера и работа TCP/IP.

Оцените статью
Хостинги