@Voron095
Системный администратор, аналитик, архитектор...

Openvpn и несколько сетей

Дано:
Сеть на сервере
auto eth0
iface eth0 inet static #DMZ
address 172.17.0.15
netmask 255.255.255.0
gateway 172.17.0.1
dns-nameservers 8.8.8.8
post-up iptables-restore < /etc/iptables.up.rules
auto eth1
iface eth1 inet static #LAN
address 192.168.0.248
netmask 255.255.254.0

iptables на сервере
*filter
:INPUT ACCEPT [1686:236913]
:FORWARD ACCEPT [902:97103]
:OUTPUT ACCEPT [582:97191]
-A FORWARD -i tun0 -o eth0 -j ACCEPT
-A FORWARD -i eth0 -o tun0 -j ACCEPT

COMMIT
*nat
:PREROUTING ACCEPT [530:58069]
:INPUT ACCEPT [65:7234]
:OUTPUT ACCEPT [72:4464]
:POSTROUTING ACCEPT [72:4464]
-A POSTROUTING -o eth0 -j MASQUERADE (в DMZ клиентам нужно заглядывать)
-A POSTROUTING -o eth1 -j MASQUERADE
COMMIT

openvpn.conf на сервере
local 172.17.0.15
port 1194
proto udp
dev tun0
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh1024.pem
server 192.168.10.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-config-dir /etc/openvpn/ccd
push «route 192.168.0.0 255.255.255.0»
push «route 172.17.100.0 255.255.255.0»

keepalive 10 120
#comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
log-append openvpn.log
verb 4
mute 20
client-to-client
route 192.168.4.0 255.255.255.0
route 192.168.3.0 255.255.255.0


Клиент 1 openvpn.conf
remote 21X.XXX.XXX.XXX 1194
client
dev tun
proto udp
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/parsrv.crt
key /etc/openvpn/parsrv.key
#comp-lzo
verb 3
mute 20


1. Сервер имеет доступ к сети 192.168.4.0/24
2. Клиенты за VPN имеют доступ к сети 192.168.0.0/23
3. Клиенты из сети за сервером openvpn (которые болтаются за интерфейсом eth1) имеют доступ только к 192.168.10.1 (т.е. только к нему же только на интерфейсе tun0)

За eth1 аппаратный шлюз обслуживающий сеть 192.168.0.0/23
на нем есть маршрут (для надежности)
192.168.10.0/24 192.168.0.248
192.168.3.0/24 192.168.0.248
192.168.4.0/24 192.168.0.248
route -n на сервере
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.17.0.1 0.0.0.0 UG 100 0 0 eth0
172.17.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.254.0 U 0 0 0 eth1
192.168.3.0 192.168.10.2 255.255.255.0 UG 0 0 0 tun0
192.168.4.0 192.168.10.2 255.255.255.0 UG 0 0 0 tun0
192.168.10.0 192.168.10.2 255.255.255.0 UG 0 0 0 tun0
192.168.10.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0


ping c сервера
ping 192.168.4.1
PING 192.168.4.1 (192.168.4.1) 56(84) bytes of data.
64 bytes from 192.168.4.1: icmp_req=1 ttl=64 time=59.3 ms
64 bytes from 192.168.4.1: icmp_req=2 ttl=64 time=57.7 ms


tcpdump на сервере при ping 192.168.4.1 с клиента
Клиент за eth1 пингует 192.168.4.1
tcpdump -i eth1 src 192.168.1.42
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
19:51:49.287200 ARP, Request who-has 192.168.4.1 tell 192.168.1.42, length 46

Притом на tun0 тихо как в танке


Я уже перепробовал все что только смог придумать, и просто запутался в комбинациях.
Что нужно поправить дабы Клиент из за сервера мог достучаться в другие сети за vpn?
  • Вопрос задан
  • 5526 просмотров
Пригласить эксперта
Ответы на вопрос 4
@smartlight
Нарисуйте схему, так будет проще понять, где не хватает маршрутов.
На 90% уверен, что в них дело.
Ответ написан
Комментировать
tocha4
@tocha4
Важно обратить внимание на обратный маршрут. Его отсутствие, является частой ошибкой.
Ответ написан
Комментировать
@alz
У Вас на клиенте (192.168.1.42) какая маска для сети прописана? Смущает то, что в tcpdump видно ARP запрос, т.е. клиент считает, что он с хостом 192.168.4.1 находится в одной ethernet сети
Ответ написан
merlin-vrn
@merlin-vrn
Опция «server» превращает сам OpenVPN как бы в отдельный роутер. Т.е. в нём самом внутри становится нужно настраивать маршруты.

В общем, начинайте с рисования схемы, а процесс OpenVPN рисуйте как роутер, и соответственно учитывайте, что в нём тоже есть таблица маршрутизации и какая она должна быть.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы