Несколько способов безопаснее использовать публичный IPv6
Categories:
Некоторым людям нужно использовать публичный IPv6 для доступа извне, в отличие от VPN, таких как tailscale/zerotier, которым для установления прямого соединения необходимо пробурение тоннелей для проброса через NAT, IPv6 обеспечивает прямое соединение. Мобильные сети большинства операторов сотовой связи обычно имеют IPv6, поэтому доступ извне очень удобен.
Ранее я публиковал статью под названием «Использование общих поддоменов DDns для домашнего широкополосного доступа может привести к снижению качества обслуживания», в которой описывалась ловушка, устроенная провайдерами при использовании IPv6. Кратко говоря, домены могут быть просканированы, утечка собственного домена равносильна утечке IPv6, что может привести к сканированию и снижению качества обслуживания широкополосной связи при большом количестве входящих соединений.
В том посте упоминалось только сканирование домена, но не упоминалось «сканирование киберпространства», при котором сканирование производится непосредственно по пулу IP-адресов, не обращая внимания на какую-либо утечку информации, и такую ситуацию трудно предотвратить.
«Сканирование киберпространства» обычно включает в себя следующие аспекты:
- Обнаружение активности IP: использование протоколов ARP, ICMP, TCP и других для идентификации активных узлов.
- Обнаружение портов/сервисов: сканирование портов для определения открытых портов активных узлов и получения информации об обслуживании узлов, информации о версии и информации об операционной системе.
- Обнаружение операционной системы: анализ пакетов ответа для определения типа и версии операционной системы целевого узла.
- Сбор трафика: мониторинг сетевого трафика для выявления аномального поведения или моделей атак.
- Разрешение псевдонимов: для маршрутизаторов с несколькими IP-адресами устанавливается соответствие между IP-адресами и маршрутизаторами.
- Обнаружение DNS: установление соответствия между IP-адресами и доменными именами через обратное разрешение IP-адресов.
Вот несколько способов избежать обнаружения при сканировании киберпространства:
- Внутренний DNS-сервер не возвращает записи AAAA.
- Внутренние сервисы разрешены только для доступа по домену, прямой доступ по IP запрещен.
- Использование частного DNS-сервиса AdGuardPrivate.
Внутренний DNS-сервер не возвращает записи AAAA
При посещении различных веб-сайтов в Интернете таким образом можно раскрыть исходный IPv6, сервер на другой стороне может получить исходный IPv6, если на стороне пользователя не включен брандмауэр, этот IPv6 может быть помещен в пул приоритетного сканирования киберпространства.
Также можно поместить IPv6-адрес с префиксом /56 в пул сканирования, перебирая только низкие 16 бит, что может значительно сократить диапазон сканирования.
На основе многолетнего опыта использования IPv6, я чувствую, что в повседневном использовании Интернета IPv6 не сильно отличается от IPv4. Таким образом, мы можем пожертвовать внешним доступом IPv6, используя его только для прямого доступа извне.
Метод настройки, чтобы не возвращать разрешение IPv6
На внутреннем DNS-сервере установите настройку, чтобы не возвращать записи AAAA.
Внутренние DNS-сервисы обычно используют AdGuardHome, см. настройки:

После настройки внутренние устройства при доступе во внешнюю сеть будут использовать только IPv4, а не IPv6.
Внутренние сервисы разрешены только для доступа по домену
Возможно, что сервисы, размещенные дома, можно просканировать по портам, что очень легко обнаружить.
При создании сервиса лучше не устанавливать прослушивание 0.0.0.0 и ::, опытные пользователи понимают, что почти все инструкции по запуску сервиса по умолчанию прослушивают только 127.0.0.1 и ::1, потому что прослушивание публичного IP представляет риски.
Метод настройки обратного прокси только для домена
Пример nginx
Ключевым моментом является установка server_name в домен, не устанавливайте в _ или IP.
server {
listen 80;
server_name yourdomain.com; # Замените yourdomain.com на ваш реальный домен
# Возвращает 403 Forbidden тем пользователям, которые пытаются получить доступ по IP-адресу
if ($host != 'yourdomain.com') {
return 403;
}
location / {
# Здесь находится корневая директория вашего веб-сайта и другие настройки
root /path/to/your/web/root;
index index.html index.htm;
}
# Другие настройки...
}
Пример IIS
Ключевым моментом является установка host name в домен, не оставляйте пустым.

Использование частного DNS-сервиса
Добавьте пользовательское разрешение в свой частный DNS-сервис, чтобы поддельный домен разрешился на внутренний сервис.

Это имеет несколько явных преимуществ.
- Во-первых, домен можно создавать произвольно, не нужно покупать домен, что экономит деньги на домене. Если такой поддельный домен будет обнаружен при сканировании, то злоумышленникам нужно будет запросить ваш частный DNS-сервис, чтобы получить правильный результат разрешения.
- Необходимо одновременно раскрыть адрес вашего частного DNS-сервиса и виртуальный домен, затем сканеру нужно изменить логику разрешения домена, запросить виртуальный домен у раскрытого частного DNS-сервера, а затем вставить виртуальный домен в заголовки сконструированного запроса, чтобы начать сканирование.
sequenceDiagram
participant Scanner as Сканер киберпространства
participant DNS as Частный DNS-сервер
participant Service as Внутренний сервис
Scanner->>DNS: 1. Обнаружение адреса частного DNS-сервера
Scanner->>DNS: 2. Запрос разрешения виртуального домена
DNS-->>Scanner: 3. Возвращает IP-адрес внутреннего сервиса
Scanner->>Service: 4. Использование виртуального домена для создания заголовков
Note right of Service: Если в заголовках нет правильного виртуального домена<br/>доступ будет отклонен
alt Заголовки правильные
Service-->>Scanner: 5a. Возвращает ответ сервиса
else Заголовки неправильные
Service-->>Scanner: 5b. Возвращает ошибку 403
endТолько выполнив все вышеуказанные шаги, сканер сможет обнаружить внутренний сервис, что значительно усложняет сканирование.
На AdGuardPrivate можно создать частный DNS-сервис, используя функцию пользовательского разрешения для добавления поддельных доменов, а также можно использовать [dnspod.cn].
Эти две компании предоставляют различные сервисы, AdGuardPrivate основан на оригинальном AdGuardHome, функционально значительно превосходит dnspod, оцените самостоятельно.
Заключение
- Внутренний DNS-сервер не возвращает записи AAAA
- Предварительные условия
- Есть публичный IPv6
- Есть внутренний DNS-сервер
- Настройка
- Не возвращать записи AAAA
- Предварительные условия
- Внутренние сервисы разрешены только для доступа по домену, прямой доступ по IP запрещен
- Предварительные условия
- Есть свой домен
- Доменный регистратор предоставляет DDNS
- Внутри сети есть обратный прокси-сервис
- Настройка
- Установить задачу DDNS
- Разрешить доступ только по домену
- Предварительные условия
- Использование частного DNS-сервиса
- Предварительные условия
- Есть частный DNS-сервис
- Частный DNS-сервис предоставляет пользовательское разрешение
- Частный DNS-сервис предоставляет DDNS
- Настройка
- Установить задачу DDNS
- Добавить пользовательское разрешение, поддельный домен разрешается на внутренний сервис
- Предварительные условия
В заключение,
- Самый простой и безопасный способ доступа извне - это успешно проброшенный через NAT tailscale/zerotier, но иногда из-за различных сетевых причин проброс может не удаться.
- Не подключайтесь к незнакомым Wi-Fi сетям, это может привести к утечке всей информации сразу. Получите большую SIM-карту с большим трафиком, на время доверьтесь оператору связи, если нужна большая SIM-карта с большим трафиком, свяжитесь со мной (шутка), мне тоже нужна.