Я борюсь с конкретным сценарием OpenVPN уже несколько месяцев. Изучение Google, чтение Serverfault, просмотр блогов и других форумов, снова и снова возня с моей конфигурацией. Я больше не уверен, работают ли мои требования вообще логически.
Вот сценарий:
У меня есть арендованный Root-Server, который я использую для нескольких сервисов, облачного хранилища, резервного копирования и т.д. Для простоты назовем элементы Client1 и Client2 и Server1.
Server1 использует tun-Device.
Client2 Физический IP: 192.168.178.22
Виртуальная сеть Server1: 192.168.2.0/24
Оба клиента могут без проблем подключаться к 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 перехода.
Честно говоря, это ошеломляет, поскольку клиент-клиент по определению делает прямо противоположное. Я попытаюсь воспроизвести это в новой среде, так как у меня небольшая боль в животе, если я не буду разговаривать с клиентом. Но пока я просто приму это.