В описанном сценарии Вот, Я получил эту конфигурацию в клиенте (конечный сервер 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 недостаточно.