Публикация домашнего VPN: что вы на самом деле открываете
Вы открыли один порт, а не одну службу. Прежде чем полагаться на туннель, отдельно проверьте публичный прослушиватель, принятого клиента и частные ресурсы.
Вы перенаправляете один порт для туннеля и говорите себе, что изменение ограничено. На практике порт пропускает только пакеты; то, что стоит за ним, и есть экспозиция. Её определяют три вещи: сокет, слушающий на публичной стороне, идентичность, которую принимает туннель, и назначения, до которых эта идентичность затем может добраться. Каждой нужен свой ответ, потому что осторожный выбор в одной не ограничивает остальные.
Перенаправление порта — не служба
Правило маршрутизатора перемещает пакеты к хосту; оно не называет процесс, который их читает. Страница перенаправления и слушающий сокет живут в разных местах, поэтому правило может указывать на машину, которая больше не запускает службу. Чтобы узнать, что действительно отвечает, посмотрите на хосте: ss -lntup перечисляет каждый слушающий сокет вместе с процессом, которому он принадлежит. Затем сопоставьте этот процесс с компонентом, версией и владельцем.
Удаление правила, которое вы помните как созданное, не закрывает дверь. Сопоставление UPnP могло добавиться само, адрес IPv6 может оставаться доступным после исчезновения записи IPv4, а второй способ публикации может существовать на другой машине. Прочитайте список сопоставлений UPnP маршрутизатора и его статические записи, затем проверьте снаружи сети.
Вход — не разрешение LAN
Туннель решает, кто может подключиться; ресурсы решают, что может открыть подключённый клиент. Руководство NIST по нулевому доверию делает то же разделение в масштабе сети: адрес ничего не доказывает об авторизации. Дайте одному зарегистрированному ноутбуку одну задачу, например чтение файлового ресурса на названном хосте, и запишите эту пару. Адрес туннеля не должен наследовать административный доступ к остальному дому.
Проверьте и пути, которые опускает сводка: трафик клиент-клиент, членство в мосту, перенаправление в интернет и трансляцию источника. Каждый может соединить две системы, которые ваша письменная задача никогда не упоминает. Отключите ненужные задаче, затем перечислите, куда клиент всё ещё может добраться.
Чистое сканирование доказывает очень мало
Открытый порт — факт об одном адресе и одном протоколе; успешный вход — факт об одном учётном данных. Ни то, ни другое не говорит, что будет дальше. Проверьте предполагаемую операцию на предполагаемом хосте, затем попробуйте идентичность, которая никогда не регистрировалась, службу, которую никто не одобрил, и интерфейс управления, который должен оставаться частным. Последняя проверка обычно и проваливается.
Проверьте оба семейства адресов и каждый путь, который публикуете. Сканирование адреса IPv4 ничего не говорит о слушающей службе IPv6, а внутренняя проверка не увидит проблему петли NAT или фильтр выше по потоку. Выполните хотя бы одну проверку снаружи, на соединении, которое не возвращается через тот же маршрутизатор.
Запишите экспозицию
Короткая таблица превращает обзор в то, что следующий человек сможет проверить. Заполняйте её снаружи внутрь, одна строка на доступную службу, и храните вместе с конфигурацией, а не в чате. Если у строки нет владельца, это находка.
| Public address and port | Receiving host | Process on the socket | Intended actor | Who may reach it |
|---|---|---|---|---|
| 203.0.113.10:51820 | nas | wg-quick@wg0 | my laptop | enrolled peers only |
Строки, которые говорят только «VPN», ещё не строки. Строке нужны сокет, хост, идентичность и назначение, потому что именно это проверял бы аудитор или атакующий.
Спланируйте вывод из эксплуатации заранее
Туннель, который нельзя отозвать, — это постоянная дверь. Заранее решите, как отозвать учётные данные устройства, завершить активный сеанс и восстановить доступ после того, как обновление сломает службу. Держите путь восстановления, не проходящий через туннель, потому что чинить вы будете именно туннель. Храните его там, где можно добраться без этой машины.
Обзор завершён, когда нужное назначение работает, а ненужные — нет. Это не гарантия отсутствия уязвимостей, и зелёная метка сканера не заменяет ни то, ни другое. Передайте таблицу и заметку о восстановлении тому, кто унаследует настройку.