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

Исключение пакетов fwmark (ed) из туннеля Wireguard

В описанном сценарии Вот, Я получил эту конфигурацию в клиенте (конечный сервер WG имеет два общедоступных IP-адреса)

[Interface]
Address = <ip_to_use>/32
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

[Peer]
PublicKey = yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
AllowedIPs = 0.0.0.0/0
Endpoint = <wg_server_ip>:51820
PersistentKeepalive = 10

Теперь я хотел бы исключить из туннеля Wireguard либо все процессы от пользователя или все пакеты (к и от) определенных портов.

Мое внимание было обращено на то, что это можно сделать с помощью fwmark, установленного самой WG, и мне не нужно использовать другую метку, как было предложено. Вот.

Это IPtables 1.6 в Ubuntu 16.04. Как я могу исключить из туннеля WG, используя отметку, созданную wg-quick, для каждого пользователя или порта?

Решение, которое я нашел, заключалось в обновлении до Ubuntu 18.04.1, что позволило использовать следующую новую функцию для решения проблемы в одной строке:

PostUp = ip rule add uidrange 0-0 lookup main
PostDown = ip rule del uidrange 0-0 lookup main

Запуск 16.04.5 с ядром 4.15 не позволял uidrange. Использование uidrange также требует, чтобы iproute2 был более поздней версии, чем это предусмотрено репозиторием Xenial. Одного Iptables 1.6.1 недостаточно.