1

Таким образом , я создал достаточно основной tun OpenVPN сервер, и у меня возникают проблемы при получении его так , что сервер может взаимодействовать со всеми подключенными клиентами.

В настоящее время у меня есть два набора клиентов, некоторые из которых не используют VPN для подключения к Интернету (просто для общения с другими клиентами), а некоторые используют redirect-gateway для отправки всего своего трафика через VPN.

Когда я его настрою, все подключенные клиенты смогут общаться с сервером и с другими клиентами. Однако с сервера я могу связаться (например, с помощью ping) только с теми клиентами, которые используют redirect-gateway для отправки всего своего трафика через VPN. Клиенты, не использующие эту конфигурацию, могут пропинговать сервер, но сервер не может пропинговать (они не отвечают на него, и время ожидания истекло).

Как настроить маршрутизацию так, чтобы сервер мог по-прежнему связываться с клиентами, даже если они не используют VPN в качестве шлюза по умолчанию?

Вот соответствующая конфигурация сервера:

port 1194
proto udp
dev tun
topology subnet
push "topology subnet"
server 10.7.0.0 255.255.255.0
ifconfig-pool-persist /etc/openvpn/ipp.txt
client-config-dir /etc/openvpn/ccd
client-to-client
keepalive 10 120
cipher AES-256-CBC
comp-lzo
user nobody
group nobody
persist-key
persist-tun
explicit-exit-notify 1

В каталоге конфигурации клиента на сервере у каждого клиента есть такой файл (просто чтобы дать каждому статический IP-адрес):

ifconfig-push 10.7.0.10 255.255.255.0

Соответствующие биты конфигурации локального клиента:

client
dev tun
proto udp
remote {server's public ip} 1194
float
keepalive 15 60
ns-cert-type server
key-direction 1
tun-mtu 1500
cipher AES-256-CBC
keysize 256
comp-lzo yes
nobind

Клиенты, использующие VPN для доступа в Интернет, добавляют в свою конфигурацию redirect-gateway def1 bypass-dhcp .

Я использую ufw для брандмауэра моего сервера - вот соответствующий конфиг (в /etc/ufw/before.rules):

*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.7.0.0/8 -j SNAT --to-source {server's public ip}

Поскольку это работает на VPS OpenVZ, я не могу использовать MASQUERADE , но вышеприведенное, кажется, работает так же хорошо.

Есть идеи, как правильно это настроить? Заранее спасибо. Если это имеет значение, на сервере работает CentOS.

0