П риветствую, коллеги! В разных организациях принято закрывать внутреннюю сеть, ограждая ее от промышленного шпионажа и других угроз, связанных с работой собственных сотрудников. Такие сервисы удаленного подключения, как TeamViewer, Ammyy admin, AnyDesk и др. являются огромной «дырой» в безопасности любой организации. Как ее «немного прикрыть» мы рассмотрим в данной статье, на примере работы с роутером MikroTik.
Тот самый зловредный сайт TeamViewer’а
И так, если на пальцах, то нам надо поставить маркеры на определенные слова и словосочетания, которые будут помечать трафик (любой, не только из браузера) и делать с ним все, что нам захочется: хоть блокировать, хоть перенаправлять, хоть пустить в пешее кругосветное путешествие через всю нашу сеть. Голь на выдумки хитра. Но здесь я рассмотрю только вариант с блокировкой.
Д ля начала нам надо определиться что именно мы будем блокировать. Идем в IP -> Firewall на последнюю вкладку Layer 7 Protocols.
Программы удаленного доступа к телефону (iPhone)
Описание регулярных переменных для отслеживания работы L7 модели OSI
З десь мы создаем регулярки для определения того, что будем блочить. Это могут быть совершенно разные сайты: хоть социалки, хоть видео-хостинги, радио или просто вам сайт АвтоВАЗа, например, не хочется видеть. Забиваем регулярные выражения в следующем виде.
Список регулярок
З абиваем » ^.+(что-то | еще что-то).*$ » — без пробелов и кавычек. Средняя вертикальная палка разделяет выражение в скобках. Например, » ^.+(facebook|vk).com*$ » — будет блокировать только обращения к facebook.com и vk.com, но другие домены (.ru | .ua | .cn) будут работать. Т.е. очень гибко можно настроить на любые задачи. Но это еще не блокировка — это маркер.
Переходим к следующей вкладке в разделе Firewall — Mangle.
В трех этих вкладках при создании нового мангла, нужно указать: внутренний адрес ус-ва (если пусто, то все), указать как L7 лист использовать для маркировки трафика от данного устройства, указать как помечать трафик, который удовлетворяем уже 2 нашим условиям: таблицы регуляров BlockList и внутреннему адресу ус-ва. Имя Connection mark может быть любым. Готово. Далее сама блокировка.
Н а вкладке Filter Rules — самой первой вкладке раздела Firewall, создаем новое правило.
Filter rules, создание нового правила
К огда нажмете «плюсик», то не надо заполнять все поля — чем меньше их заполнено, тем более обширно правило. Заполняя поля вы сужаете область применения данного правила. Нам достаточно следующих: connection mark, который мы создали предыдущим шагом, и в разделе action выбрать что делать — в нашем случае дропать.
И самое важное, поднять наше новое правило в разделе filter rules как можно выше, так как правила во всех фаерволах всегда и везде выполняются по очереди до первого совпадения. Т.е. если вы создали правило под номером 10, а до него есть правило номер 7, которое все разрешает, то все правила после 7 не будут выполняться вообще.
Как настроить неконтролируемый доступ AnyDesk
Еще один нюанса микрота — замыкающее, конечное правило, надо создать дропать все. Т.е. все поля пустые, а action — drop. Т.к. базово оно не прописано, как у других производителей, где последнее правило всегда «запрещает все всем». Тут такого нет, поэтому создаем.
Результат нашей борьбы с удаленным подключением
К ак видите, на данной машине перестали открываться сайты, в имени которых встречаются слова, с которых мы начали данную статью.
Окно AnyDesk
О кно программы AnyDesk тоже не может связаться с сервером, чтобы получить ID для удаленного подключения.
Ammyy Admin тоже отвалился
TeamViewer просит проверить подключение
В заключении хочу обозначить пару моментов, которые лежат на поверхности, но многие об этом не задумываются при блокировке этих или других сервисов. Будь то фейсбук, вк или амазон с ютубом — не важно. Блокировка сторонних ресурсов всегда должна быть согласована и подтверждена руководством письменно.
В идеале у вас должно быть минимум распоряжение, на которое вы сможете ссылаться, когда очередной мини-вип-царек по телефону будет вспоминать всю вашу родословную, искать вам новую работу или еще что похуже. Вы обезопасите себя и свои нервные клетки. В идеале также убедить руководство, что никаких исключений быть не должно и реализовать их будет проблематично и напряжно для роутера: гораздо проще обработать команду блочить 1,2,3,4 для всех, чем 1,2 для группы1, 2,4 для группы2, а группа 3 только по праздникам может ходить в 1,3. Это все реализуемо, но нервов у вас высосет тонну. Работа ради работы.
В общих чертах, наверное, все. Надеюсь было интересно и познавательно. Спасибо за лайк и подписку — это поднимет популярность статьи и больше людей ее смогут увидеть. Если не сложно — буду признателен!
=== Дополнение к статье ===
Как заметил один из моих подписчиков, данный способ перестал работать с какого-то момента, когда данные компании решили работать по спискам ip-адресов, не полагаясь на dns-записи. На данный момент я еще не нашел эффективного способа, как отфильтровать трафик этих клиентов и разделить его с браузерным, ведь порты эти программы используют, в том числе, 80 и 443. Предлагаю сделать следующий ход ушами: я собрал список всех адресов, которые используются клиентами TeamViewer и AnyDesk и, объединив их общими масками в предполагаемые подсети, которые принадлежат данным компаниям, заблокировал целиком диапазоны. Адреса собирал программой TCPView, просто запустив клиент и занося все адреса, к которым он пытался подключиться, добившись его полной неработоспособности.
Далее сразу выложу весь скрипт, который можно вставить или через ssh или Winbox в менюшке «New Terminal». Данный скрипт рассчитан на локальную подсеть 192.168.0.0 255.255.255.0 — не забудьте исправить на нужное и поднять новое правило в самый верх!
Источник: dzen.ru
Как заблокировать программы удаленного доступа
Обнаружена блокировка рекламы: Наш сайт существует благодаря показу онлайн-рекламы нашим посетителям. Пожалуйста, подумайте о поддержке нас, отключив блокировщик рекламы на нашем веб-сайте.
Запретить программы удаленного управления TeamVieweretc
Обсуждение ПО и его настройки
Есть ли у кого положительная практика блокировки использования популярного софта для удаленного доступа на рабочих станциях в сети средствами RouterOS?
На SQUID-е вполне эффективно решается указанием основного домена с точкой:
.teamviewer.com .dyngate.com .ammyy.com .radmin.ru .anydesk.com .litemanager.ru
1618378378.996 0 192.168.21.89 TCP_DENIED/403 3859 GET http://ping3.teamviewer.com/din.aspx? — NONE/- text/html 1618378379.008 0 192.168.21.89 TCP_DENIED/403 3868 GET http://master12.teamviewer.com/din.aspx? — NONE/- text/html 1618378346.860 0 192.168.24.49 TCP_DENIED/403 3726 GET http://router1.teamviewer.com/cname.aspx — NONE/- text/html 1618390698.005 0 192.168.9.148 TCP_DENIED/403 3624 CONNECT boot-01.net.anydesk.com:6568 — NONE/- text/html 1618390706.008 0 192.168.9.148 TCP_DENIED/403 3634 CONNECT boot-02.net.anydesk.com:443 — NONE/- text/html 1618390708.008 0 192.168.9.148 TCP_DENIED/403 3620 CONNECT boot-02.net.anydesk.com:80 — NONE/- text/html 1618390680.004 0 192.168.9.148 TCP_DENIED/403 3645 CONNECT relay-505c1ed0.net.anydesk.com:6568 — NONE/- text/html
Все попытки соединения с серверами дропаются и проги не могут выйти в статус готовности к подключению (не зеленеют), на микроте адрес-листы такой синтаксис не поддерживают, а опробованные конструкции на Layer7 что-то не заработали у меня.
^.*(get|GET).+(teamviewer.com|dyngate.com|anydesk.com).*$ ^.+(teamviewer.com|dyngate.com|anydesk.com).*$ ^.+(teamviewer|dyngate|anydesk).*$
/ip firewall filter add action=drop chain=forward layer7-protocol=Backdoor2 log=yes src-address=192.168.210.0/24
Частично трафик дропается по правилам, в т.ч. сами сайты тима и эни недоступны, но приложения по-прежнему подключаются((
https://vikilpet.wordpress.com/2017/12/ . e-control/
Мне интересными показались эти строки
Чтобы заблокировать полностью, нужно на DNS сервере блокировать адреса по регулярному выражению:
.+.teamviewer.com
Попробуйте адреса в этом виде развернуть на 127.0.0.1 на DNS static
Ну и конечно помним об establised и related соединениях. То есть уже установленные соединения не пропадут по мановению волшебной палочки. Только со временем или после принудительного отключения всех соединений и паузы.
Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? . Тогда Netinstal’ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам.
Если не подскажем, хоть посочувствуем.
Возможно вопрос нужно решать другим способом — на рабочих станциях запретить использование и даже запуск посторонних програм с помощю Software Restriction Policies ?
14 апр 2021, 22:26
https://vikilpet.wordpress.com/2017/12/ . e-control/
Мне интересными показались эти строки
Полезный материал.
Через статический dns пропадает возможность избирательно управлять использованием удаленного доступа в случае согласованной необходимости.
Более предпочтительным видится вариант блокировки через fw с возможностью использования белых списков.
add action=reject chain=input comment=DROP_TEAMVIEWER content=teamviewer dst-port=53 in-interface=LAN protocol=udp reject-with=icmp-admin-prohibited src-address-list= !REMOTE_ALLOWED
Тим рубится наглухо, а вот приложение энидеска, повисев какое-то время на соединении, в конечном итоге подключается и работает, сволочь. Видимо, после неуспешных обращений по доменному имени лезет после по IP и авторизируется, хотя со сквидом выше такое у него не катит, при этом алгоритм блокировки тот же, только в случае со сквидом пользователю кроме порта сквида более ничего не доступно наружу. Отсюда вывод, Эни пользуется дополнительными IP-подсетями для подключения к своим серверам.
С регулярными выражениями в статическом днс поведение аналогичное — тим мертв, эни пролазит с задержкой.
Заворачивать запросы от «пользователя» на сторонние днс минуя микротика пробовалось, на решение задачи не повлияло.
15 апр 2021, 08:04
Возможно вопрос нужно решать другим способом — на рабочих станциях запретить использование и даже запуск посторонних програм с помощю Software Restriction Policies ?
Возможно в определенных случаях со стороны клиента да, но задача блокировать и управлять согласованным доступом на уровне маршрутизатора.
На просторах еще находил реализацию с маркировками соединений и пакетов на основе layer7 для минимизации нагрузки на оборудование. Но Эни замедляеет также максимум ненадолго.
Кэш днс на роутере и клиенте зачищается, все соединения на вкладшке коннекшинс сбрасываются перед проверкой, но Эни пофиг.
/ip firewall layer7-protocol add name=remotes regexp=»^.*(anydesk.com).*$» /ip firewall mangle add action=mark-connection chain=prerouting connection-mark=no-mark dst-port=53 layer7-protocol=remotes new-connection-mark=remotes-conn passthrough=yes protocol=udp add action=mark-packet chain=prerouting connection-mark=remotes-conn new-packet-mark=remotes-packet /ip firewall filter add action=reject chain=input packet-mark=remotes-packet reject-with=icmp-host-unreachable place-before=0 add action=reject chain=forward packet-mark=remotes-packet reject-with=icmp-host-unreachable place-before=0
Вообще, конечно, правы те админы, которые в подобных случаях начинают жестко регламентировать работу не только самой сети, но и устройств в ней. Не смотря на сопротивление хитропопых сотрудников. Грамотно составленная докладная с реальными данными на столе у руководства в большинстве случаев приводит к нужным результатам. Они у всех разные.
* По одной схеме рабочие станции сотрудников получают возможность подключаться лишь к ограниченному числу хостов.
* По другой схеме сотрудник получает ограниченное число трафика в месяц и при перерасходе не имеет выхода в сеть до конца месяца без объяснительной на имя руководства.
* Станции строго админятся, обычные юзеры имеют минимум прав. Запрет на запуск левых программ ( в том числе и portable).
* Все вводятся в домен, администрирование не в пример гибче.
* Пускаем все через программу для контроля за трафиком, результаты ежемесячно на стол к руководству с комментариями по злостным нарушения.
Вон попросите, народ поделится рабочими схемами, на их основе построите свою.
Бороться же с этим силами только Микротика не очень эффективная затея. Будут обходить.
Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? . Тогда Netinstal’ом железку прошей и настрой ее заново. Что, все равно не фурычит?
Тогда к нам. Если не подскажем, хоть посочувствуем.
Не, все это конечно стратегически и организационно красиво, понятно и правильно, но речь совсем не о комплексном административно-техническом подходе, а коллективным разумом справиться с конкретными задачами посредством инструментария, предлагаемым микротиком.
Ещё раз:
Бороться же с этим силами только Микротика не очень эффективная затея. Будут обходить.
Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? . Тогда Netinstal’ом железку прошей и настрой ее заново. Что, все равно не фурычит?
Тогда к нам. Если не подскажем, хоть посочувствуем.
Вас услышали с первого раза, а будут обходить, будем решать по мере поступления проблем, в т.ч. организационно-административными мерами. Повторюсь, вопрос интересен именно технической реализацией инструментарием маршрутизатора.
Источник: forummikrotik.ru
Анализ возможности блокировки приложения для удаленного управления компьютером по сети, на примере AnyDesk
Когда в один прекрасный день начальник поднимает вопрос: «Почему у некоторых есть удаленный доступ к раб.компьютеру, без получения дополнительных разрешений на использование?»,
возникает задача «прикрыть» лазейку.

Приложений по удаленному управлению по сети предостаточно: Сhrome remote desktop, AmmyAdmin, LiteManager, TeamViewer, Anyplace Control и др. Если у «Сhrome remote desktop» есть официальный мануал по борьбе с наличием доступа к сервису, у TeamViewer есть лицензионные ограничения по времени либо запросам из сети и пользователи «скрипя зубами» так или иначе «светятся» у админов, то любимчик многих для личного пользования — AnyDesk пока требует особого внимания, тем более если начальник сказал «Нельзя!».
![]() |
Если Вы знаете что такое блокировка сетевого пакета по его содержимому и Вас она устраивает, то остальной материал не предназначен для Вас. |
Пробуя пойти от обратного, на самом сайте говорится о том, что должно быть разрешено для работы программы, соответственно была заблокирована DNS запись *.net.anydesk.com. Но AnyDesk не прост, блокировка доменного имени ему нипочем.
Update 15.08.2020
Правильное решение по блокировке AnyDesk подсказал prymalbeets123:
собрать адреса от хоста relays.net.anydesk.com
на данный момент их 391 адрес. Со знанием этого, остальная часть статьи становится просто беллетристикой.
Когда-то у меня была решена задача по блокировке «Anyplace Control» который попадал к нам с каким-то сомнительным ПО и решена она была блокировкий всего нескольких IP (я подстраховывал антивирус). Задача же с AnyDesk, после того как я вручную собрал больше десятка IP адресов, подзадорила уйти от рутинного ручного труда.
Также было обнаружено что в «C:ProgramDataAnyDesk» есть ряд файлов с настройками и т.п., а в файл ad_svc.trace собираются события о подключениях и неудачах.
1. Наблюдение
Как уже было сказано блокировка *.anydesk.com не дала никаких результатов в работе программы, было решено поанализировать поведение программы в стрессовых ситуациях. TCPView от Sysinternals в руки и вперед!

1.1. Видно что «висит» несколько интересующих нас процессов, и лишь тот который связывается с адресом извне нам интересен. Порты к которым подключается перебираются, из того что я видел это: 80, 443, 6568. 🙂 80 и 443 нам точно блокировать нельзя.
1.2. После блокировки адреса через роутер, спокойно выбирается другой адрес.
| 1.3. Консоль наше ВСЁ! Определяем PID и тут мне немного подфартило, что AnyDesk был установлен сервисом, соответсвенно искомый PID единственный. | 1.4. Определяем по PID процесса IP адрес сервера сервисов. |
2. Подготовка
Так как программа для выявления IP адресов вероятно будет работать только на моем ПК, у меня нет никаких ограничений в удобстве и лени поэтому C#.
2.1. Все методы по выявлению искомого IP адреса уже известны осталось реализовать.
string pid1_;//узнаем PID сервиса AnyDesk using (var p = new Process())
Аналогично находим сервис который установил соединение, приведу только основную строку
p.StartInfo.Arguments = «/c » netstat -n -o | findstr /I » + pid1_ + » | findstr «ESTABLISHED»»»;
Результатом которой будет:

Из строки аналогично перыдущему шагу извлекаем 3й столбец, и убираем все что после «:». Как результат имеем наш искомый IP.
2.2. Блокировка IP в Windows. Если в Linux есть Blackhole и iptables, то метод блокировки IP адреса в одну строку, без использования брандмауэра, в Windows оказался непривычним,
но уж какие инструменты были…
route add наш_найденный_IP_адрес mask 255.255.255.255 10.113.113.113 if 1 -p
Ключевой параметр «if 1» посылаем маршрут на Loopback (Отобразить доступные интерфейсы можно выполнив route print ). И ВАЖНО! Теперь программу требуется запускать с правами администратора, поскольку изменение маршрута требует повышения прав.
2.3. Отображение и сохранение выявленых IP адресов задача тривиальная и пояснения не требует. Если подумать, то можно обрабатывать и файл ad_svc.trace самого AnyDesk, но об этом я сразу не подумал + возможно на него стоит ограничение.
2.4. Странное неодинаковое поведение программы заключается в том, что при «taskkill» процесса службы в Windows 10 она перезапускается автоматически, в Windows 8 завершается, оставляя только процесс консоли и без переподключения, в общем нелогично и это неточно.
Удаление подключившегося к серверу процесса, позволяет «форсировать» переподключение на следующий адрес. Реализуется аналогично предыдущим командам, поэтому привожу только:
p.StartInfo.Arguments = «/c taskkill /PID » + pid1_ + » /F»;
Дополнительно запускаем программу AnyDesk.
//запускаем программу которая расположена по пути path_pro if (File.Exists(path_pro))
2.5. Проверять состояние AnyDesk будем 1 раз в минуту (или чаще?), и если она подключилась т.е. соединение ESTABLISHED — этот IP блокировать, и опять все заново — ждать пока подключится, блокировать и ждать.
3. Нападение
Был «набросан» код, для визуализации процесса решено «+» указывать найденный и блокированный IP, а «.» — повтор проверки без успешного сосединения со стороны AnyDesk.


Программа работала на нескольких компьютерах с разными Windows ОС, с версиями AnyDesk 5 и 6. За 500 итераций собиралось около 80 адресов. За 2500 — 87 и так далее…
Со временем количество блокируемых IP дошло до 100+.
Ссылка на финальный текстовый файл (blacklist) с адресами: >>раз и >>два
Дело сделано! Пул IP адресов через скрипт добавлен в правила основного роутера и AnyDesk просто не может создать внешнее соединение.
Есть странный момент, по первоначальным логам видно что в передаче информации участвует адрес boot-01.net.anydesk.com. Мы конечно заблокировали все хосты *.net.anydesk.com общим правилом, но странность не в этом. Каждый раз при обычном пинге с разных компьютеров это доменное имя дает разный IP. Проверка в Linux:
как и DNSLookup дают только один IP адрес, но этот адрес вариативен. При анализе соединенией TCPView нам возвращаются PTR записи IP адресов типа relay-*.net.anydesk.com.
Теоретически: раз пинг иногда проходит на неизвестный незаблокированный хост boot-01.net.anydesk.com мы можем найти эти ip и заблокировать, эту реализацию сделать обычным скриптом под ОС Linux, тут как раз устанавливать AnyDesk не нужно. Анализ показал что эти IP часто «пересекаются» с найденными из нашего списка. Возможно это как раз этот хост, к которому и подключается программа до того, как начинает «перебирать» известные IP. Вероятно я позже дополню статью 2й частью поисков хостов, хотя на данный момент сама программа внутри сети не устанавливает внешнее соединение вообще.
Надеюсь ничего противоправного Вы не увидели в вышеизложенном, а создатели AnyDesk отнесутся к моим действиям по-спортивному.
- сетевое администрирование
- консоль windows
- удаленное управление
- c#
- Информационная безопасность
- Системное администрирование
- Программирование
- Сетевые технологии
Источник: habr.com
