Я пытаюсь настроить сервер OpenVPN на Debian 6.0.5 (устанавливается через apt), но у меня проблема с маршрутизацией.
Это моя конфигурация сети:
Client <-> Router+Firewall <-> OVPN Server <-> Subnet A AND Subnet B
172.17.17.6 197.174.211.77 197.174.211.0/27 197.174.211.64/27
Я могу подключиться к серверу и получить IP-адрес, но не могу получить доступ к серверам в обеих подсетях. Я убедился, что OpenVPN может пинговать, wget и т. Д. С серверами в подсети A и B.
Вот моя конфигурация сервера:
port 1194
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key # This file should be kept secret
dh dh1024.pem
server 172.17.17.0 255.255.255.0
ifconfig-pool-persist ipp.txt
route 197.174.211.0 255.255.255.224
route 197.174.211.64 255.255.255.224
push "route 197.174.211.0 255.255.255.224"
push "route 197.174.211.64 255.255.255.224"
client-to-client
duplicate-cn
keepalive 10 120
comp-lzo
max-clients 20
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status-tcp.log
log-append /var/log/openvpn-tcp.log
verb 5
Моя таблица маршрутов сервера:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.17.17.2 * 255.255.255.255 UH 0 0 0 tun0
197.174.211.64 172.17.17.2 255.255.255.224 UG 0 0 0 tun0
197.174.211.64 * 255.255.255.224 U 0 0 0 eth0
172.17.17.0 172.17.17.2 255.255.255.0 UG 0 0 0 tun0
default 197.174.211.65 0.0.0.0 UG 0 0 0 eth0
Когда я делаю
cat /proc/sys/net/ipv4/ip_forward
1
Итак, я предполагаю, что ip_forward активирован ...
Я вижу, что OpenVPN получает трафик из туннеля, но не пересылает его ...
**root@vpn:/etc/openvpn# tcpdump -i tun0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 65535 bytes
15:24:42.913610 IP 172.17.17.6 > : ICMP echo request, id 1, seq 729, length 40
15:24:47.743495 IP 172.17.17.6 > 197.174.211.11: ICMP echo request, id 1, seq 730, length 40
Но я не получил ответа в моем клиенте :-(
Я не использую iptables или какой-либо брандмауэр на моем сервере ...
Есть у кого-нибудь идеи?
Клиент (172.17.17.6) <-> Маршрутизатор + Брандмауэр <-> OVPN Srv (WAN: 197.174.211.77) <-> Подсеть A 197.174.211.0/255.255.255.224 И Подсеть B 197.174.211.64/255.255.255.224
Итак, ваш сервер OpenVPN находится в подсети B. Я предполагаю, что ваши серверы в подсети A могут маршрутизировать в подсеть B.
route 197.174.211.0 255.255.255.224 <---- You don't need this, remove it
route 197.174.211.64 255.255.255.224 <---- You don't need this, remove it
push "route 197.174.211.0 255.255.255.224"
push "route 197.174.211.64 255.255.255.224"
Destination Gateway Genmask Flags Metric Ref Use Iface
172.17.17.2 * 255.255.255.255 UH 0 0 0 tun0
197.174.211.64 172.17.17.2 255.255.255.224 UG 0 0 0 tun0 <-- Bad
197.174.211.64 * 255.255.255.224 U 0 0 0 eth0
172.17.17.0 172.17.17.2 255.255.255.0 UG 0 0 0 tun0
default 197.174.211.65 0.0.0.0 UG 0 0 0 eth0
Теперь 197.174.211.65 - ваш маршрутизатор по умолчанию. Вам необходимо настроить его для маршрутизации 172.17.17.0/24 на 197.174.211.77. Для этого вам также необходимо настроить маршрутизатор в подсети A.
Другое решение (с установленным iptables):
iptables -t nat -A POSTROUTING -s 172.17.17.0/24 -o eth0 -j MASQUERADE