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