Допустим, у нас есть настройка Wireguard, как показано на диаграмме ниже (см. ссылку imgur, не удалось опубликовать изображение без репутации) со следующими PostUp и PostDown:
PostUp = iptables -A FORWARD -i wg0 -j ПРИНЯТЬ; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ПРИНЯТЬ; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
https://i.stack.imgur.com/nXEmF.png
Где клиенты могут получить доступ к нашей частной сети через Wireguard (серверы не являются клиентами Wireguard, а просто имеют второй сетевой интерфейс, который подключен к нашей частной сети. В этом случае, если мы посмотрим на журналы доступа в службах, работающих на наших серверах, мы увидим что IP-адрес клиента является IP-адресом сервера Wireguard (172.16.2.1). Это правильно, потому что используется MASQUERADE, который заменяет исходный IP-адрес при переадресации. Наш предпочтительный результат — видеть IP-адреса клиентов в службах, работающих на наших серверах. (например, 172.16.2.2 или 172.16.2.3). Есть ли способ настроить маршрутизацию на сервере Wireguard таким образом, чтобы исходный IP-адрес сохранялся при пересылке запросов через Wireguard? Таким образом, мы могли бы блокировать и разрешать клиентам на основе их IP-адрес клиента на самих серверах плюс есть журналы доступа, которые отслеживаются до конкретных клиентов?
P.S.Я знаю, как настроить iptables таким образом, чтобы оттуда устраивался контроль доступа, но это не самое предпочтительное решение, так как нет возможности отследить, кто что делал в сети.