Здравствуйте. В интернете имеется OpenVPN сервер на CentOS. Режим Tap (ethernet мост). IP адреса для всех клиентов указаны вручную.
Служебным серверам выдаются адреса из подсети 0 (10.30.0.0)
Нашему офису при подключении к серверу выдаются адреса из подсети 1 (10.30.1.0).
Нашим клиентам выдаются адреса подсетей 2,3,4 (10.30.2.0, 10.30.3.0, 10.30.4.0) и т.д.
Маска, которая устанавливается всем - 255.255.0.0.
Устраивает всё, кроме одного момента. Все видят друг друга.
Требование, чтобы наши клиенты не имели доступ друг к другу, но имели доступ к нашим служебным серверам.
Ну а наш офис естественно должен иметь доступ ко всем точкам, как и служебные серверы. Они тоже должны видеть всех.
Первое, что приходит в голову, как то разрулить правилами iptables на сервере OpenVPN, основываясь на подсети.
А может есть какие то решения для этого. В какую сторону хотя бы копать, направьте пожалуйста.
Антон Артёмов, тем , что клиент может установить любой дополнительный адрес на этот интерфейс и попасть туда, куда ему не следует и вы это не контролируете.
Дмитрий, А вот такой уточняющий момент: а что, если нам не нужно объединять СЕТИ клиентов? У нас их очень много (клиентов). У всех стоят НАШИ сервера доступ к которым мы и хотим получать посредством VPN. Т.е. по сути нам нужны машины в едином пространстве, как это сделано сейчас с удобным разделением по подсетям. Это же меняет дело?
Дмитрий, так и есть в принципе. Сеть сейчас работает. Но нужно, чтобы из сервера одного нашего клиента не был доступен сервер другого клиента.
Пытаюсь на VPN сервере делать нечто
-A FORWARD -i tap0 -s 10.86.2.0/24 -d 10.86.3.0/24 -j DROP
чтобы запретить из 2 подсети ходить в 3-ю. Но такое ощущение, что netfilter (iptables) вообще не участвует в трафике между клиентами VPN сети и не может его контролировать.
Антон Артёмов, советую посмотреть tcpdump или wireshark что откуда приходит и куда уходит. У меня в похожей конфигурации, но на TUN такого не происходит. И ещй вопрос, как 108.86.2.0/24 знает маршрут до 10.86.3.0/24 ?
Дмитрий, Я пробовал tun с subnet. Так же.
"как 10.86.2.0/24 знает маршрут до 10.86.3.0/24" - у всех подключенных маска 255.255.0.0
Буду пробовать tcpdump
Дмитрий, /24 только в правилах iptables, т.к. применять правила я хочу для 24-х подсетей.
А так у клиентов в подключениях присваивается /16.
На всю ВПН мы взяли 16 подсеть, т.к. очень много клиентов (наших серверов).
Антон Артёмов, так вот у неё должна быть маска 255.255.255.0 А так машина думает что находится в той же сети и отправляет пакет напрямую, а не на адрес vpn сервера. А так как сеть у нас TAP (Ethernet) то пакет уходит как будто в brigde и не проходит через iptables. Но это только моё предположение.
Дмитрий, tcpdump на ВПН сервере не палит трафик между клиентами. Видимо реально по бриджу проходит незаметно.
tcpdump ловит трафик между клиентом и самим сервером. Т.е. когда я со своего компа шлю пакет ВПН серверу, то он капает ему в tap0 и tcpdump его видит.
Если я шлю пакет другому клиенту, то на tap0 ВПН сервера походу ничего не приходит.
С tun (topology subnet) аналогично.