Почему блокировка портов VPN не останавливает несанкционированные туннели
Списки портов упускают туннели на 443 или на номерах протоколов. Управляйте полномочиями устройства, одобренными назначениями и наблюдаемыми потоками, а не избранными.
Правило межсетевого экрана отклоняет трафик, которому оно соответствует. Оно не отклоняет каждое использование соединения, которое разрешает, и именно в этом зазоре терпят неудачу большинство политик против несанкционированных туннелей. Блокировка портов клиента, популярного пять лет назад, оставляет нетронутым всё, что идёт через 443, и ничего не говорит об устройстве, способном переписать собственные маршруты. Стройте контроль вокруг полномочий и назначений, а затем читайте потоки, которые вы действительно разрешаете.
Почему список портов — не политика
Порты — понятие транспортного уровня, и несколько туннельных технологий вообще их не используют. Другие намеренно делят порт с обычным веб-трафиком, потому что именно этот порт гарантированно пропускают. Правило, привязанное к историческому порту, поэтому перечисляет горстку реализаций, а не класс поведения. Оно и стареет плохо: в тот момент, когда провайдер меняет значения по умолчанию, список описывает прошлое.
Хуже того, успешную блокировку одного порта можно прочитать как доказательство того, что вся проблема решена, и это откладывает меры контроля, которые имели бы значение.
Номера протоколов и порты — разные пространства имён
GRE присвоен номер протокола IP 47. Это не TCP-порт 47 и не UDP-порт 47, и фильтр, написанный для порта, его не затрагивает. ESP и AH находятся на номерах протоколов 50 и 51 с тем же свойством. Инкапсулированный трафик может также прятаться внутри разрешённого соединения, поэтому категория или сигнатура может помочь, но никогда сама по себе не удостоверяет цель. Уверенность и охват относятся к конкретному продукту и выпуску, а не к концепции.
nft list ruleset | grep -nE 'gre|esp|ah|47|50|51'
cat /proc/net/protocols | head -20
ss -tn state established '( dport = :443 )'
Первая команда показывает, что вы действительно написали; вторая показывает таблицу протоколов, которую знает стек; третья показывает, сколько сеансов используют веб-порт прямо сейчас. Ни одна из них не говорит, для чего эти сеансы. Перехват TLS — отдельное решение с собственными издержками для доверия, конфиденциальности и совместимости с клиентами. Это не предварительное условие для отказа в именованном назначении и не гарантия распознавания туннелей.
Управляйте полномочиями, которые есть у устройства
Устройство, способное изменить собственную таблицу маршрутизации и фильтрацию, имеет возможности, которых нет у обычного приложения. Управление допуском и конфигурацией — это то, что устраняет такую возможность, и оно действует независимо от того, какой порт использовал бы туннель.
Это означает, что одобренные подключения получают заявленную роль вместо неограниченного разрешения пересылать за другие устройства, и означает, что права на установку и администрирование сети являются частью политики, а не запоздалой мыслью.
Наблюдайте за потоками, которые остаются. Сопоставляйте идентичность устройства, назначенную роль и метаданные потока, и относитесь к классификации как к доказательству с ограничениями, а не как к приговору.
conntrack -L | awk '{print $1, $4, $5}' | sort | uniq -c | sort -rn | head
ip -br addr show
ip route show default
Долгоживущий зашифрованный сеанс или большой объём байтов не является доказательством злоупотребления: резервные копии, инструменты поддержки и связи между площадками выглядят одинаково. Ограничьте сбор рамками расследования и сохраняйте найденное в рамках процесса, которому оно принадлежит.
Сделайте исключения явными
В любой среде есть назначения, которые должны оставаться доступными для обновлений, аутентификации и восстановления. Запишите их с целью и ответственным и пересматривайте, вместо того чтобы обнаруживать их по одному сбою за раз.
Когда бизнес действительно разрешает широкий внешний сервис, оценивайте полномочия, которые этот сервис предоставляет, а не предполагайте, что ярлык назначения делает любое использование приемлемым.
Непроверенное исключение — это дыра с номером заявки. Исключение с именем, причиной и датой пересмотра — это решение.
Принимайте с письменным планом, а не с лозунгом
Приёмка состоит из двух половин: одобренная работа по-прежнему выполняется, а конкретные запрещённые случаи терпят неудачу в авторизованном тесте. Обе нужно записать до изменения и повторить после него.
Включите в этот пересмотр изменения конечных точек и политики, потому что маршрут, добавленный на ноутбуке, может отменить фильтр, который безупречно работал на периферии.
Результат — собственная граница выхода с известным списком остаточного риска. Утверждение, что несколько закрытых портов положили конец несанкционированному использованию VPN, — это не оно.