Мне нужно настроить VPN для нескольких компьютеров со следующими характеристиками:
Первая часть, хаб и 20 пользователей, работают так, как мне нужно. В этой настройке мне нужно:
Простая ванильная конфигурация OpenVPN без использования клиент-клиент.
Теперь я хочу добавить 5 администраторов с некоторыми сверхспособностями связи. В этой новой настройке мне нужно:
Я думаю, что для получения такой детализации управления мне нужно включить client-to-client
в server.conf
. При этом у меня уже разговаривают пользователи (170.0.0 / 16) и администраторы (10.171.0.0/16). Проблема в том, что мне нужно обеспечить соблюдение указанных выше ограничений. Я уверен, что это должна быть проблема с iptables, но я уже много часов пытаюсь признать, что не могу заставить ее работать. Пока мой iptables.conf
выглядит так:
*filter
:INPUT DROP [1000:900000]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 127.0.0.1 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 389 -j ACCEPT
-A INPUT -p udp -m udp --dport 1194 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 13 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 30 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 10.170.0.0/16 -d 10.170.0.1 -j ACCEPT
-A FORWARD -s 10.170.0.0/16 -d 10.171.0.0/16 -j ACCEPT
-A FORWARD -s 10.170.0.0/16 -d 10.170.0.0/16 -j REJECT
-A FORWARD -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
COMMIT
я думаю forwards
в той же подсети есть проблема ... но даже не знаю с чего начать.
Это могло быть довольно сложно. Параметр «клиент-клиент» в OpenVPN просто сокращает то, что в противном случае можно было бы выполнить с помощью маршрутизации, поэтому я бы вообще не использовал его, так как это даст вам больше контроля.
Когда клиент подключается с помощью OpenVPN, это фактически создает туннель с его собственной подсетью с 4 адресами. Самый низкий адрес - это сетевой адрес, затем у вас есть по одному адресу для каждой стороны и, наконец, широковещательный адрес. Таким образом, в этом случае включение потока трафика от администраторов к пользователям, но не наоборот, является простым вопросом введения такого правила:
-A FORWARD -s 10.170.0.0/16 -d 10.171.0.0 -m state --state NEW, ESTABLISHED, RELATED -j ACCEPT
-A ВПЕРЕД -s 10.171.0.0/16 -d 10.170.0.0 -j ПРИНЯТЬ
Это гарантирует, что любой трафик от пользователей обратно к администраторам будет принят только в том случае, если он является ответом на пакет, пришедший другим путем. Так что это исправляет. Для этого вам могут потребоваться некоторые правила маршрутизации, но обычно они должны вводиться демоном OpenVPN автоматически. Поскольку вы все еще не используете «клиент-клиент», администраторы также не могут видеть друг друга.
Все идет нормально. Теперь сложнее всего включить соединения между одними администраторами, но не другими. Для этого вам, вероятно, придется установить заранее определенные распределения адресов для каждой машины, подключающейся к VPN, а затем установить определенные правила брандмауэра для включения / отключения трафика между ними (на основе приведенного выше в качестве шаблона).