Туннель поднимается, журнал сообщает о подключении, а одно приложение по-прежнему никуда не попадает. На клиенте Linux это обычно означает, что брандмауэр дистрибутива фильтрует путь, которым клиент VPN никогда не управлял. Два менеджера могут быть активны одновременно, у каждого свои представления об интерфейсе, зоне и направлении трафика. Определить владельца до любых правок быстрее, чем перебирать правила, пока что-нибудь не заработает.

Найдите менеджер и бэкенд

Начните с того, что действительно загружено, а не с того, что установлено. Дистрибутив может поставлять firewalld, ufw и обычную службу nftables, и только одна из них владеет работающим набором правил. Пакеты мирно сосуществуют, а правило, введённое через неправильный фронтенд, никогда не доходит до ядра. Прочитайте активную службу, затем прочитайте набор правил, который она создала.

Бэкенд так же важен, как фронтенд. Установка firewalld может управлять nftables или старым бэкендом iptables в зависимости от версии и конфигурации, и оба дают разный вывод проверки. Запишите дистрибутив, версию и бэкенд в заявку, прежде чем сравнивать систему с любым руководством.

Согласуйте направление и интерфейс

Исходящий запрос клиента, входящий слушатель и пересылаемый пакет проходят через разные хуки, и правило для одного не покрывает остальные. Зона, разрешающая локальную LAN, часто не включает интерфейс туннеля или пул адресов VPN. Интерфейс туннеля обычно попадает в зону по умолчанию, которая нередко строже зоны физического адаптера. Это несоответствие объясняет, почему просмотр работает в LAN и прекращается в момент поднятия туннеля.

Спросите, какое направление отказало, прежде чем выбирать правило. Приложению, которое не может подключиться наружу, нужен исходящий путь, а входящей службе нужен входящий путь на интерфейсе туннеля. Добавление правила в неправильную цепочку даёт изменение, которое выглядит применённым и не делает ровным счётом ничего.

Держите владельцев правил в согласии

Хук клиента VPN, среда выполнения контейнеров и служба дистрибутива могут менять сеть, и они не согласуют действия друг с другом. Правила, введённые вручную, исчезают при следующей перезагрузке, а правила, вставленные в цепочку менеджера, могут оцениваться в порядке, который вы не задумывали. Используйте постоянную конфигурацию менеджера и проверяйте получившийся набор правил, а не файл, который вы написали. Отключение всего брандмауэра из-за недоступности одной службы меняет маленькую проблему на большую.

Узкие счётчики — дешёвый способ найти отклонённый поток. Правило журналирования, ограниченное одним адресатом и одним портом, показывает, происходит ли отбрасывание локально, не перехватывая чужой трафик. Удалите правило журналирования по окончании расследования, поскольку это диагностика, а не политика, и документация firewalld по зонам объясняет, как сочетаются интерфейсы и службы.

Проверьте исправление, не потеряв блокировку

Проверьте применённое состояние тем менеджером, который им владеет, командами, соответствующими записанному бэкенду. Список ниже предполагает, что отвечает firewalld; подставьте эквивалент для nftables или ufw вместо того, чтобы запускать всё. Смешивание инструментов в одной сессии — это путь к тому, что машина получает два конфликтующих набора правил.

sudo firewall-cmd --get-active-zones
sudo firewall-cmd --zone=trusted --list-all
sudo nft list ruleset | head -40

Первая команда называет зоны и назначенные им интерфейсы, что показывает, куда туннель действительно попал. Вторая печатает правила и службы зоны, чтобы вы видели, покрыт ли интерфейс VPN вообще. Список nftables — основная истина для используемого бэкенда, а правило, существующее только в файле конфигурации, там не появляется. Сравните три вывода с добавленным правилом, и несоответствие обычно называет себя само.

Затем повторите исходный запрос и требуемое поведение при сбое. Сайт, который только что заработал, недостаточен, если то же изменение сняло блокировку клиента, поэтому проверьте и незащищённый путь. Запишите менеджер, бэкенд, интерфейс и назначение правила, потому что обновление пакета, которое оживит второй менеджер, иначе построит всю путаницу заново.

Похожие статьи