Назад | Перейти на главную страницу

Разрешить исходящие соединения IPv6 для VPN-клиентов

У меня есть сервер OpenVPN. Клиент, подключающийся к этому серверу, получает внутренний IPv4-адрес (10.2.52.X) и внешний IPv6-адрес. Мне нужно выполнить маскировку (NAT) для IPv4, но мне не нужно ничего выполнять для IPv6 (может блокировать входящие соединения, кроме выбранных портов).

В настоящее время, если я systemctl stop firewalld, соединение IPv6 работает нормально: я могу ping6 адреса или я могу открывать подключения к 80 порту, используя telnet или браузер. Но если я включу firewalld, то смогу только ping6-адреса. Исходящие TCP-соединения кажутся заблокированными.

eth0 это мой внешний интерфейс, tun0 это мой внутренний интерфейс VPN. До сих пор я назначал внешние / внутренние зоны интерфейсам (это включало маскировку для IPv4) и добавил службу openvpn во внешнюю зону (чтобы разрешить входящие UDP-соединения на порт 1194)

# firewall-cmd --get-active-zones
internal
  interfaces: tun0
external
  interfaces: eth0

Получается, что firewalld по умолчанию отклоняет все в цепочке FORWARD, и я не нашел простого способа это изменить. Я создал «прямое» правило.

firewall-cmd --permanent --direct --add-rule ipv6 filter FORWARD_direct 0 -i tun0 -o eth0 -j ACCEPT

Теперь все работает как положено.