Доброй ночи.
Есть openvpn сервер, форвардинг включен. Для некоторых клиентов хочется порезать доступ, а именно чтобы у них не было доступа ко всем клиентам кроме указанных.
Изначально идея решения была следующая: с помощью iptables дропнуть все, что приходит с IP клиента (в сети VPN), а затем разрешить пакеты от этого IP клиента только для некоторых destination.
Ничего не получилось. Удалось фильтрануть только трафик от клиента к серверу, а все остальное форвардится абсолютно игнорируя подобные правила. Решил разобраться и начал снифить.
tcpdump -i tap0 src <client-ip-in-vpn-network>
Как я понял, все пакеты, которые форвардятся сервером и направляются к другим клиентам VPN сети, в src имеют адрес не tap-интерфейса, а видимо инкапсулируются через eth-пакеты (в src имеют IP адрес, который на eth).
Если так оно и есть, возникает вопрос: а как же мне отследить пакеты которые отправляются с определенного адреса VPN сети к другим клиентам (зная только адрес клиента в VPN сети)? Ну и с помощью фаервола резануть форвардинг.