Здравствуйте, озадачился созданием Double VPN в качестве изучения темы. Делал по мануалу с Youtube:
Настройка DoubleVPN-OpenVPN серверов на Ubuntu 17.10/14.04У автора все хорошо запускается и работает, у меня нет. Помогите разобраться.
Два отличия конфигов от мануала видео:
1) на первом сервере у меня виртуализация OpenVZ, поэтому при настройке маршрутизации в скрипте использую SNAT к внешнему IP первого сервера вместо MASQUERADE (листинги приведу ниже)
2) У автора конфиг клиента на первом сервере запускается через
systemctl enable openvpn-client@client2, у меня выдает:
Failed to execute operation: No such file or directory. Запускаю указанием на конфиг
openvpn /etc/openvpn/client/client2.confКонфиг первого сервераport 11194
proto tcp
dev tun0
ca ca.crt
cert server1.crt
key server1.key
dh dh2048.pem
tls-auth ta.key 0
remote-cert-tls client
cipher AES-256-CBC
server 10.0.0.0 255.255.255.0
keepalive 10 120
persist-key
persist-tun
status server1.log
verb 3
log /var/log/server1.log
status /var/log/server1.log
sndbuf 0
rcvbuf 0
comp-lzo
push «redirect-gateway def1»
push «dhcp-option DNS 8.8.8.8»
push «dhcp-option DNS 8.8.4.4»
push «route 10.0.0.0 255.255.255.0»
script-security 2
up /etc/openvpn/server1_up.sh
down /etc/openvpn/server1_down.sh
исполняемые файлы up и downnano server1_up.sh#!/bin/bash
/sbin/ip rule add from 10.0.0.0/24 table vpn_net
/sbin/ip route add default dev tun1 table vpn_net
/sbin/iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o tun1 -j SNAT --to-source 185.ХХХ.ХХХ.ХХХ
nano server1_down.sh#!/bin/bash
/sbin/ip rule del from 10.0.0.0/24 table vpn_net
/sbin/ip route del default dev tun1 table vpn_net
/sbin/iptables -t nat -D POSTROUTING -s 10.0.0.0/24 -o tun1 -j SNAT --to-source 185.ХХХ.ХХХ.ХХХ
Конфигурирую rt_tables:nano /etc/iproute2/rt_tables
150 vpn_netфорвардингnano /etc/sysctl.conf
net.ipv4.ip_forward=1
net.ipv4.conf.tun0.rp_filter=0
net.ipv4.conf.tun1.rp_filter=0
echo 1 > /proc/sys/net/ipv4/ip_forward
Конфиг для клиента, для основной машиныclient
dev tun
proto tcp
remote ip_server1 11194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
tls-auth ta.key 1
cipher AES-256-CBC
comp-lzo
log client1.log
verb 3
sndbuf 0
rcvbuf 0
auth-nocache
remote-cert-tls server
ВТОРОЙ СЕРВЕРКонфиг сервераport 1194
proto tcp
dev tun
ca ca.crt
cert server2.crt
key server2.key
dh dh2048.pem
tls-auth ta.key 0
remote-cert-tls client
cipher AES-256-CBC
server 10.0.1.0 255.255.255.0
keepalive 10 120
persist-key
persist-tun
verb 3
status /var/log/server2.log
log /var/log/server2.log
sndbuf 0
rcvbuf 0
comp-lzo
push «route 10.0.1.0 255.255.255.0»
Форвардингnano /etc/sysctl.conf
net.ipv4.ip_forward=1iptablesiptables -t nat -A POSTROUTING -s 10.0.1.0/24 -o eth0 -j MASQUERADE
iptables-save > /root/iptables-rules
nano /etc/rc.local
//добавляю строку
iptables-restore < /root/iptables-rules
Перекидываю ключи пользователя с сервера2 на сервер1:
ca.crt client2.crt client2.key ta.key в папку /etc/openvpn/clientКлиентский конфиг на первом сервереclient
dev tun1
proto tcp
remote ip_server2 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client2.crt
key client2.key
tls-auth ta.key 1
cipher AES-256-CBC
comp-lzo
log client2.log
verb 3
sndbuf 0
rcvbuf 0
auth-nocache
remote-cert-tls server
Пингую исходя из схемы: host--->server1--->server2
HostГугл пингуется
ping 10.0.1.6 - пингуется
При трассировке по гуглу видно, что не идет на второй сервер, выходит с server1.
В тоже время серверы друг друга видят:
server1: ping 10.0.1.1 - ok!
server2: ping 10.0.1.6 - ok!
Может кто подскажет, почему пакеты не направляются на второй сервер?