Настраиваем Honeypot для внутренней сети на роутерах Mikrotik

  • Автор:

Honeypot-LAN-Mikrotik-000.png Не так давно мы рассматривали, как настроить классический Honeypot (приманку) на роутерах Mikrotik. Такой подход позволяет выявить и впоследствии заблокировать адреса, с которых проявляют нездоровый интерес к вашей сети, однако в современных условиях эффективность данного метода низкая. В тоже время имеет смысл создать подобную приманку и внутри локальной сети, благодаря этому мы сможем своевременно выявить вредоносную активность внутри периметра, а также различные подозрительные действия пользователей, которые могут и не являться вредоносными, но выходить за рамки их должностных обязанностей.

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

Про то, как настроить Honeypot для внешней сети вы можете прочитать в нашей статье:

Настраиваем Honeypot на роутерах Mikrotik

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

Что касается внутренних пользователей, то мы будем применять два метода. Первый из них направлен на выявление вредоносной активности и чрезмерно любопытных пользователей и представляет тот же Honeypot, но только внутри сети. Здесь мы исходим из того, что любой вредонос прежде всего начнет сетевое сканирование доступных узлов, либо попытки подключиться на известный набор портов. Тоже самое касается и излишне активных пользователей, если рядовой сотрудник интересуется портом Winbox - то это уже повод присмотреться к нему внимательнее.

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

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

Следующий вопрос - где именно мы будем ловить наши пакеты. Обычно он с завидной регулярностью вызывает дальнейшие расспросы. Это можно сделать как в таблице mangle, так и в таблице filter. Так как нам нужно разделять локальный и транзитный трафик, то мы будем использовать цепочки INPUT и FORWARD.

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

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

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

  • TCP: 22- SSH, 23 - Telnet, 25 - SMTP, 135-139,445 - Netbios, 3389 - RDP, 5060 - SIP, 8291 - Winbox
  • UDP: 123 - NTP, 135-139,445 - Netbios, 3389 - RDP, 5060 - SIP.

Кроме стандартных портов также есть смысл указывать некоторые нестандартные, которые часто используются в реальной жизни, например, 3390 - RDP, или 2222 или 2223 - SSH. При этом не стоит указывать все порты в одном правиле, потому что в таком случае вы без анализа логов не сможете понять куда именно пытался подключиться попавший в списки узел. Имеет смысл сделать отдельные правила для SSH, RDP, Netbios и т.д. и формировать отдельные списки.

Начнем, перейдем в IP - Firewall - Mangle и создадим правило, в нем мы будем контролировать обращения на порты 22 и 23 - SSH и Telnet: Chain - input, Protocol - tcp, Dst. Port - 22,23, In. Interface - внутренний интерфейс, в нашем случае bridge1.

Honeypot-LAN-Mikrotik-001.pngНа закладке Action добавим действие - add src to address list и указываем список для адресов, например, SSH. В поле Timeout указываем срок пребывания адреса в листе, в нашем случае сутки. Такое время выбрано исходя из того, чтобы не засорять листы, которые мы будем отправлять на почту администратору раз в сутки. Также для последующего анализа включим запись события в лог, для чего присвоим ему собственный префикс !!!SSH.

Honeypot-LAN-Mikrotik-002.pngВ терминале это можно быстро сделать командой:

/ip firewall mangle
add action=add-src-to-address-list address-list=SSH address-list-timeout=1d \
chain=input dst-port=22,23 in-interface=bridge1 log=yes log-prefix=!!!SSH \
protocol=tcp

Здесь возникает еще один тонкий момент: как быть, если указанным сервисом легально пользуются некоторые сотрудники, тем же SSH могут пользоваться администраторы. Все просто - добавим их в исключение, для этого перейдем в IP - Firewall - Address Lists и создадим новый список, например, Admins, куда внесем все адреса администраторов.

/ip firewall address-list
add address=192.168.111.125 list=Admins

После чего в правиле на закладке Advanced добавим дополнительный критерий: Src. Address List - ! Admins, что исключит его срабатывание на адреса источников из этого списка.

Honeypot-LAN-Mikrotik-003.png

В терминале:

/ip firewall mangle
add action=add-src-to-address-list address-list=SSH address-list-timeout=1d \
chain=input dst-port=22,23 in-interface=bridge1 log=yes log-prefix=!!!SSH \
protocol=tcp src-address-list=!Admins

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

Отдельно стоит упомянуть про сканирование портов, RouterOS имеет собственные инструменты для выявления сканирования, для этого создадим правило: Chain - input, Protocol - tcp, In. Interface - bridge1.

Honeypot-LAN-Mikrotik-008.png

На закладке Extra развернем блок PSD, для начала можно оставить настройки по умолчанию, смысл их довольно прост: за 3 секунды сканирующий должен набрать 21 очко, за каждый "низкий" порт (0-1023) присваивается 3 очка, за каждый "высокий" (1024-65535) - одно очко.

Honeypot-LAN-Mikrotik-009.pngДействия на закладке Action аналогичные предыдущему правилу: добавляем адрес источник в отдельный список адресов и делаем запись в логе с уникальным префиксом:

Honeypot-LAN-Mikrotik-010.pngЭти же действия в терминале:

/ip firewall mangle
add action=add-src-to-address-list address-list=PSD address-list-timeout=1d \
chain=input in-interface=bridge1 log=yes log-prefix=!!!PSD protocol=tcp \
psd=21,3s,3,1

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

Вот с RDP мы и начнем. Снова возвращаемся в IP - Firewall - Mangle и создаем правило: Chain - forward, Protocol - tcp, Dst. Port - 3389,3390, In. Interface - bridge1.

Honeypot-LAN-Mikrotik-004.png

На закладке Action также добавляем адрес-источник в список адресов на сутки и пишем событие в лог с собственным префиксом.

Honeypot-LAN-Mikrotik-005.png

Если у вас есть собственные внешние сервера, то создайте еще один список адресов, скажем - MyServers, в который внесите их IP-адреса и укажите его как исключение на закладке Advanced для адресов назначения: Dst. Address List - ! MyServers.

Honeypot-LAN-Mikrotik-006.png

В терминале:

/ip firewall mangle
add action=add-src-to-address-list address-list=EXT-RDP address-list-timeout=1d \
chain=forward dst-address-list=!MyServers dst-port=3389,3390 \
in-interface=bridge1 log=yes log-prefix=!!!RDP protocol=tcp

В случае с внешними ресурсами нас интересует не только кто, но и куда. Поэтому имеет смысл добавлять в тот-же список и адреса назначения, т.е. куда пытались подключиться наши пользователи. Для этого делаем копию правила и на закладке Action меняем действие add src to address list на add dst to address list и выключаем логирование, чтобы не делать дублирующую запись в логе.

Honeypot-LAN-Mikrotik-007.png

В терминале:

/ip firewall mangle
add action=add-dst-to-address-list address-list=EXT-RDP address-list-timeout=\
1d chain=forward dst-port=3389,3390 in-interface=bridge1 protocol=tcp

Итак, правила созданы, наполняются адресами и теперь нам нужно настроить их отправку нужным сотрудникам, для этого напишем небольшой скрипт. Перейдем в System - Scripts и создадим новый скрипт с именем SendListsToMail в который добавим следующие строки:

/ip firewall address-list print file=PSD-list where list="PSD"
/ip firewall address-list print file=EXTRDP-list where list="EXT-RDP"

/tool e-mail send to=andrey@example.com server=[:resolve "mail.example.com"] port=587 \
start-tls=yes user=mikrotik@example.com password=PaSSworD_1 from=mikrotik@example.com \
subject="Address Lists" body="Address Lists" file=PSD-list.txt,EXTRDP-list.txt

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

  • send to - адрес получателя
  • server - адрес сервера, если используем FQDN, то используем синтаксис [:resolve "mail.example.com"]
  • port - порт для отправки почты
  • start-tls - включаем использование START-TLS
  • user - логин пользователя на почтовом сервере
  • password - пароль пользователя на почтовом сервере
  • from - почтовый адрес отправителя
  • subject - тема письма
  • body - тело письма
  • file - файлы вложения, несколько файлов разделяем запятой без пробелов.

Сохраняем скрипт нажав Apply и проверяем кнопкой Run Script:

Honeypot-LAN-Mikrotik-011.pngЕсли все сделано правильно, то вы получите на указанную почту файлы со списками. Теперь нужно добавить данный скрипт в планировщик. Переходим в System - Scheduler и добавим новое задание, в нем нас интересует два параметра: Start Time - время срабатывания и Interval - периодичность выполнения. На время отладки можно задать срабатывание на ближайшие несколько минут, чтобы проверить задание, а потом установить нужное время, интервал указываем равный суткам.

В поле On Event пишем команду запуска нашего скрипта:

/system script run SendListsToMail

Honeypot-LAN-Mikrotik-012.pngДожидаемся времени исполнения и проверяем почту, списки должны прийти строго по расписанию:

Honeypot-LAN-Mikrotik-013.pngКонечно, данная статья не охватывает всех возможностей данного решения, мы только лишь дали необходимую базу, а дальше каждый из вас может сам гибко настроить его под свои потребности. Надеемся, что данный материал окажется вам полезен.

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

Дополнительные материалы:


Mikrotik

  1. Оборудование MikroTik класса SOHO. Общий обзор и сравнение возможностей
  2. Производительность младших моделей Mikrotik hEX и hAP. Экспресс-тестирование
  3. Базовая настройка роутера MikroTik
  4. Расширенная настройка DNS и DHCP в роутерах Mikrotik
  5. Автоматическое резервное копирование настроек Mikrotik на FTP
  6. Проброс портов и Hairpin NAT в роутерах Mikrotik
  7. Настройка IPTV в роутерах Mikrotik на примере Ростелеком
  8. Настройка VPN-подключения в роутерах Mikrotik
  9. Настройка черного и белого списков в роутерах Mikrotik
  10. Настройка выборочного доступа к сайтам через VPN на роутерах Mikrotik
  11. Настройка OpenVPN-сервера на роутерах Mikrotik
  12. Безопасный режим в Mikrotik или как всегда оставаться на связи
  13. Настройка Proxy ARP для VPN-подключений на роутерах Mikrotik
  14. Настраиваем Port Knocking в Mikrotik
  15. Резервирование каналов в Mikrotik при помощи рекурсивной маршрутизации
  16. Настраиваем родительский контроль на роутерах Mikrotik
  17. Настраиваем IKEv2 VPN-сервер на роутерах Mikrotik с аутентификацией по сертификатам
  18. Расширенная настройка Wi-Fi на роутерах Mikrotik. Режим точки доступа
  19. Mikrotik CHR - виртуальный облачный роутер
  20. Настройка контроллера CAPsMAN (бесшовный Wi-Fi роуминг) на Mikrotik
  21. Настройка VPN-подключения на роутерах Mikrotik если подсети клиента и офиса совпадают
  22. Настраиваем использование DNS over HTTPS (DoH) на роутерах Mikrotik
  23. Настройка PPTP или L2TP VPN-сервера на роутерах Mikrotik
  24. Установка Mikrotik CHR на виртуальную машину Proxmox
  25. Защита RDP от перебора паролей при помощи оборудования Mikrotik
  26. Настройка SSTP VPN-сервера на роутерах Mikrotik
  27. Настройка выборочного доступа к сайтам через VPN с автоматическим получением маршрутов по BGP на роутерах Mikrotik
  28. Особенности эксплуатации CA на роутерах Mikrotik: резервное копирование, экспорт и импорт сертификатов
  29. Настройка туннелей GRE и IPIP на роутерах Mikrotik
  30. Правильное использование Fast Path и FastTrack в Mikrotik
  31. DHCP Snooping - настройка защиты от неавторизованных DHCP-серверов на оборудовании Mikrotik
  32. Работа оборудования Mikrotik в режиме беспроводной станции (клиента)
  33. Используем режим ARP reply-only для повышения безопасности сети на оборудовании Mikrotik

The Dude

  1. The Dude. Установка и быстрое начало работы
  2. Централизованное управление обновлением RouterOS при помощи The Dude
  3. Централизованный сбор логов Mikrotik на сервер The Dude

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал



Loading Comments