Приветствую, коллеги! В разных организациях принято закрывать внутреннюю сеть, ограждая ее от промышленного шпионажа и других угроз, связанных с работой собственных сотрудников. Такие сервисы удаленного подключения, как TeamViewer, Ammyy admin, AnyDesk и др. являются огромной "дырой" в безопасности любой организации. Как ее "немного прикрыть" мы рассмотрим в данной статье, на примере работы с роутером MikroTik.
Итак, если на пальцах, то нам надо поставить маркеры на определенные слова и словосочетания, которые будут помечать трафик (любой, не только из браузера) и делать с ним все, что нам захочется: хоть блокировать, хоть перенаправлять, хоть пустить в пешее кругосветное путешествие через всю нашу сеть. Голь на выдумки хитра. Но здесь я рассмотрю только вариант с блокировкой.
Для начала нам надо определиться что именно мы будем блокировать. Идем в IP -> Firewall на последнюю вкладку Layer 7 Protocols.
Здесь мы создаем регулярки для определения того, что будем блочить. Это могут быть совершенно разные сайты: хоть социалки, хоть видео-хостинги, радио или просто вам сайт АвтоВАЗа, например, не хочется видеть. Забиваем регулярные выражения в следующем виде.
Забиваем "^.+(что-то | еще что-то).*$" - без пробелов и кавычек. Средняя вертикальная палка разделяет выражение в скобках. Например, "^.+(facebook|vk).com*$" - будет блокировать только обращения к facebook.com и vk.com, но другие домены (.ru | .ua | .cn) будут работать. Т.е. очень гибко можно настроить на любые задачи. Но это еще не блокировка - это маркер. Переходим к следующей вкладке в разделе Firewall - Mangle.
В трех этих вкладках при создании нового мангла, нужно указать: внутренний адрес ус-ва (если пусто, то все), указать как L7 лист использовать для маркировки трафика от данного устройства, указать как помечать трафик, который удовлетворяем уже 2 нашим условиям: таблицы регуляров BlockList и внутреннему адресу ус-ва. Имя Connection mark может быть любым. Готово. Далее сама блокировка.
На вкладке Filter Rules - самой первой вкладке раздела Firewall, создаем новое правило.
Когда нажмете "плюсик", то не надо заполнять все поля - чем меньше их заполнено, тем более обширно правило. Заполняя поля вы сужаете область применения данного правила. Нам достаточно следующих: connection mark, который мы создали предыдущим шагом, и в разделе action выбрать что делать - в нашем случае дропать.
И самое важное, поднять наше новое правило в разделе filter rules как можно выше, так как правила во всех фаерволах всегда и везде выполняются по очереди до первого совпадения. Т.е. если вы создали правило под номером 10, а до него есть правило номер 7, которое все разрешает, то все правила после 7 не будут выполняться вообще. Еще один нюанса микрота - замыкающее, конечное правило, надо создать дропать все. Т.е. все поля пустые, а action - drop. Т.к. базово оно не прописано, как у других производителей, где последнее правило всегда "запрещает все всем". Тут такого нет, поэтому создаем.
Как видите, на данной машине перестали открываться сайты, в имени которых встречаются слова, с которых мы начали данную статью.
Окно программы AnyDesk тоже не может связаться с сервером, чтобы получить ID для удаленного подключения.
В заключении хочу обозначить пару моментов, которые лежат на поверхности, но многие об этом не задумываются при блокировке этих или других сервисов. Будь то фейсбук, вк или амазон с ютубом - не важно. Блокировка сторонних ресурсов всегда должна быть согласована и подтверждена руководством письменно. В идеале у вас должно быть минимум распоряжение, на которое вы сможете ссылаться, когда очередной мини-вип-царек по телефону будет вспоминать всю вашу родословную, искать вам новую работу или еще что похуже. Вы обезопасите себя и свои нервные клетки. В идеале также убедить руководство, что никаких исключений быть не должно и реализовать их будет проблематично и напряжно для роутера: гораздо проще обработать команду блочить 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 - не забудьте исправить на нужное и поднять новое правило в самый верх!
/ip firewall filter
add action=reject chain=forward comment=TeamViewer_AnyDesk dst-address-list=team_block reject-with=icmp-network-unreachable src-address=192.168.0.0/24
/ip firewall address-list
add address=20.49.104.16/28 list=team_block
add address=20.50.2.0/28 list=team_block
add address=37.252.224.64/28 list=team_block
add address=37.252.231.128/28 list=team_block
add address=37.252.232.96/29 list=team_block
add address=37.252.246.96/28 list=team_block
add address=37.252.247.96/28 list=team_block
add address=46.4.112.224/28 list=team_block
add address=51.91.80.112/28 list=team_block
add address=51.178.65.176/29 list=team_block
add address=51.178.65.224/28 list=team_block
add address=51.178.91.232/29 list=team_block
add address=51.195.5.128/26 list=team_block
add address=88.99.1.24/29 list=team_block
add address=88.99.99.120/30 list=team_block
add address=88.198.34.108/30 list=team_block
add address=92.223.88.224/28 list=team_block
add address=94.16.6.160/28 list=team_block
add address=116.202.114.36/30 list=team_block
add address=116.202.162.8/29 list=team_block
add address=116.202.162.88/29 list=team_block
add address=116.202.172.144/28 list=team_block
add address=116.202.208.16/28 list=team_block
add address=116.202.216.240/29 list=team_block
add address=116.202.225.96/27 list=team_block
add address=136.243.4.8/29 list=team_block
add address=136.243.39.32/30 list=team_block
add address=136.243.50.28/30 list=team_block
add address=136.243.56.12/30 list=team_block
add address=136.243.59.24/29 list=team_block
add address=136.243.61.12/30 list=team_block
add address=136.243.71.24/29 list=team_block
add address=136.243.74.96/29 list=team_block
add address=136.243.77.36/30 list=team_block
add address=136.243.81.152/29 list=team_block
add address=136.243.132.24/29 list=team_block
add address=136.243.137.0/30 list=team_block
add address=138.199.36.96/27 list=team_block
add address=138.201.7.152/29 list=team_block
add address=138.201.40.140/30 list=team_block
add address=138.201.217.168/30 list=team_block
add address=144.76.103.20/30 list=team_block
add address=148.251.127.84/30 list=team_block
add address=158.176.86.0/28 list=team_block
add address=159.8.88.128/28 list=team_block
add address=159.8.229.224/27 list=team_block
add address=159.122.182.192/28 list=team_block
add address=161.156.67.96/27 list=team_block
add address=178.255.154.128/28 list=team_block
add address=178.255.155.160/28 list=team_block
add address=185.102.219.80/30 list=team_block
add address=188.65.76.128/29 list=team_block
add address=188.172.192.96/28 list=team_block
add address=188.172.198.128/27 list=team_block
add address=188.172.219.128/27 list=team_block
add address=188.172.223.96/28 list=team_block
add address=188.172.233.160/28 list=team_block
add address=188.172.235.128/27 list=team_block
add address=188.172.245.136/30 list=team_block
add address=188.172.246.160/27 list=team_block
add address=188.172.254.128/28 list=team_block
add address=195.181.174.160/27 list=team_block
add address=213.227.162.96/28 list=team_block
add address=213.227.168.128/27 list=team_block
add address=213.227.185.128/28 list=team_block
add address=213.227.186.128/27 list=team_block
add address=217.146.4.128/28 list=team_block
add address=217.146.8.64/29 list=team_block
add address=217.146.13.128/28 list=team_block
add address=217.146.14.128/29 list=team_block
add address=217.146.21.136/30 list=team_block
Для других удаленных клиентов пока не подготовил таких списков, если необходимо - оставляйте в комментах запросы.
Спасибо, что заставляете актуализировать информацию по старым статьям (написана она была, практически, еще в прошлой жизни - 1 дек 2020), значит проблема удаленных подключений еще актуальна. А это значит, что надо искать более эффективные способы борьбы с ними... Буду стараться, честно! Спасибо за лайки и комменты, подписывайтесь, будем продолжать познавать сети и сетевые технологии вместе! Удачи!