Я настраиваю VPN-туннель для некоторых сервисов. Я создал пользователя/группу vpntunnel/vpntunnel, которые перенаправляются на интерфейс tun0 на основе идентификатора группы. Это прекрасно работает. Команды ниже выполняются как обычный пользователь:
curl -4 ifconfig.io <= возвращает мой публичный IPv4 ip
curl -6 ifconfig.io <= возвращает мой публичный IPv6 ip
Поскольку мой VPN-провайдер еще не поддерживает IPv6, мой IP-адрес может быть раскрыт. Поэтому я добавил правило ip6tables:
ip6tables -A ВЫВОД -o tun0 -m владелец --gid-owner vpntunnel -j ОТКЛОНИТЬ
Теперь те же команды выполняются от имени пользователя vpntunnel.
sudo -u vpntunnel -i -- curl -4 ifconfig.io <= возвращает мой IP-адрес VPN
sudo -u vpntunnel -i -- curl -6 ifconfig.io <= соединение отклонено
Отказ в соединении — это нормально, так как я заблокировал ВЫХОД IPv6 на tun0.
Так что я думал, что все в порядке, но я сделал последнюю проверку: я продолжил https://torguard.net/checkmytorrentipaddress.php, скопировал магнет-ссылку и стал ждать результатов. Я был очень удивлен, увидев, что мой IPv6 появился. Мой IPv4 - это IP-адрес VPN, поэтому моя маршрутизация не полностью нарушена, передача использует туннель VPN.
Я попытался добавить больше правил:
ip6tables -A INPUT -i tun0 -j DROP
ip6tables -I ВПЕРЕД -i tun0 -o enp3s0 -j ОТКЛОНИТЬ
Но ничего не помогло.
Я не хочу отключать IPv6 на машине, мне это нужно.
Есть идеи?
Спасибо!