Назад | Перейти на главную страницу

Соединительные туннели OpenVPN

Я борюсь с конкретным сценарием OpenVPN уже несколько месяцев. Изучение Google, чтение Serverfault, просмотр блогов и других форумов, снова и снова возня с моей конфигурацией. Я больше не уверен, работают ли мои требования вообще логически.

Вот сценарий:

У меня есть арендованный Root-Server, который я использую для нескольких сервисов, облачного хранилища, резервного копирования и т.д. Для простоты назовем элементы Client1 и Client2 и Server1.

Server1 использует tun-Device.

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

Я хочу соединить обоих клиентов, чтобы они могли обмениваться данными, как в физической локальной сети, но не могу этого сделать.

Вот мои конфигурации.

Конфигурация сервера:

port 1195
proto tcp-server
dev tun1
ca keys/server1/ca.crt
cert keys/server1/openvpn-server.crt
key keys/server1/openvpn-server.key
dh keys/server1/dh4096.pem
server 192.168.2.0 255.255.255.0
crl-verify keys/server1/crl.pem
ifconfig-pool-persist servers/server1/logs/ipp.txt
cipher AES-256-CBC
user nobody
group nogroup
status servers/server1/logs/openvpn-status.log
log-append servers/server1/logs/openvpn.log
verb 2
mute 20
max-clients 100
local XXX.XXX.XXX.245
management 127.0.0.1 8877
keepalive 10 120
client-config-dir /etc/openvpn/servers/server1/ccd
client-to-client
comp-lzo
persist-key
persist-tun
ccd-exclusive
push "redirect-gateway def1"
push "dhcp-option DNS XXX.XXX.XXX.98"
push "route 192.168.2.0 255.255.255.0"

Конфигурация Client1:

client
proto tcp-client
dev tun
ca ca.crt
dh dh4096.pem
cert user1.crt
key user1.key
remote XXX.XXX.XXX.245 1195
cipher AES-256-CBC
verb 2
mute 20
keepalive 10 120
comp-lzo
persist-key
persist-tun
float
resolv-retry infinite
nobind
push "route-gateway 192.168.2.1"

Конфигурация Client2, кроме сертификатов, точно такая же.

На сервере /etc/sysctl.conf содержит запись net.ipv4.ip_forward = 1 Клиентские брандмауэры были настроены так, чтобы пропускать OpenVPN. IP-переадресация активирована на обоих Клиентах на IPEnableRouter переключатель реестра.

IP-Tables имеет только одно специальное дополнительное правило, разрешающее доступ в Интернет.

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to XXX.XXX.XXX.245

В большинстве часто задаваемых вопросов, руководств или сообщений в блогах говорится о подключении клиентов нескольких разных VPN. Я хотел бы, чтобы мои клиенты были в одной VPN. Я в своем уме, я не могу заставить клиентов даже пинговать друг друга. Возможно ли это вообще, или я совершенно неправильно понял концепцию VPN?

Я был бы признателен за каждый намек, который вы мне дадите, чтобы решить эту проблему, которую я создал сам.

Изменить: Traceroute Client1 -> Server1

traceroute to 192.168.2.1 (192.168.2.1), 30 hops max, 60 byte packets
1  19 ms  18 ms  18 ms  192.168.2.1

Traceroute Client1 -> Client2

traceroute to 192.168.2.10 (192.168.2.10), 30 hops max, 60 byte packets
 1  * * *
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

Traceroute Server1 to Client1 приводит к тому же результату, что и Client1 to Client2

Я не знаю, почему это так, но решение состояло в том, чтобы отключить клиент-клиент. Когда у меня был включен клиент-клиент, openVPN игнорировал установленный мной шлюз, а traceroute даже не доходил до VPN-сервера. После того, как я его выключил, трассировки трассировки наконец-то прошли через шлюз. Настроил брандмауэр на openVPN, и он прошел через 2 перехода.

Честно говоря, это ошеломляет, поскольку клиент-клиент по определению делает прямо противоположное. Я попытаюсь воспроизвести это в новой среде, так как у меня небольшая боль в животе, если я не буду разговаривать с клиентом. Но пока я просто приму это.