Мой сервер использует CentOS 6.4 64 бит и имеет 2 сетевых адаптера. 1-й адаптер имеет интернет-IP: 192.241.190.x 2-й адаптер - это сеть LAN с ip: 10.60.5.62
Я установил на нем openvpn и конфигурацию для сервера, мой клиент подключается к серверу по ip 192.241.190.x.
Вот моя конфигурация сервера:
port 11592
proto udp
dev tun
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
key /etc/openvpn/easy-rsa/2.0/keys/server.key
dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem
server 10.8.1.0 255.255.255.0
topology subnet
push "route 10.60.5.0 255.255.255.0"
ifconfig-pool-persist ipp.txt
keepalive 10 120
persist-key
persist-tun
status openvpn-status.log
log-append openvpn.log
verb 3
Я уже добавил push "route 10.60.5.0 255.255.255.0", но мой клиент не может подключиться к другому серверу с IP-адресом, например 10.60.5.64.
Как правильно маршрутизировать трафик на ip 10.60.5.x через VPN. Я открываю /etc/sysctl.conf для редактирования и устанавливаю значение net.ipv4.ip_forward на 1, но не работаю.
Вам нужно настроить некоторые iptables, чтобы система маскировала ваш трафик. Вот мой пример. Некоторые из них могут не понадобиться для работы
bond0 это моя внутренняя подсеть
bond1 - это моя общедоступная подсеть, к которой подключаются клиенты openvpn с IP-адресом 1.2.3.4
10.113.0.0/16 - моя подсеть VPN-клиентов
Я удалил большинство своих правил, но позволил некоторым показать вам, как это будет выглядеть
iptables -A POSTROUTING -s 10.113.0.0/24 -o bond0 -j MASQUERADE
iptables -A POSTROUTING -d 10.113.0.0/24 -j SNAT --to-source 1.2.3.4
Это в значительной степени сработало для меня ... Позволило мне подключиться к VPN, и до тех пор, пока правильные маршруты отправлены клиентам, позволяет им отправлять внутренний трафик через сервер openvpn в один интерфейс и выходить из другого и позволяет ему маршрутизировать обратно.