LINUX.ORG.RU
решено ФорумAdmin

Нет доступа к программе сидящей в OpenVPN сети с внешнего IP сервера той OpenVPN сети

 , ,


0

1

Есть OpenVPN сервер с внешним адресом 172.31.1.1 (NAT 1:1 к 50.50.50.51 ) и VPN подсетью 10.10.100.0/24. Один из клиентов этой подсети (10.10.100.9) является роутером для другой локальной сети 172.16.0.0/24. Так же, на этом роутере торрент-демон привязан к адресу OpenVPN подсети (к 10.10.100.9). На самом сервере с помощью DNAT пробрасываются порт 50002 на адрес 10.10.100.9:50002 - это веб-морда торрент-демона. И теперь проблема: вся подсеть 172.16.0.0/24 роутится на роутере дефолтным маршрутом на VPN сервер (вся 172.16.0.0/24 подсеть сидит на 10.10.100.9) и соответственно клиенты из 172 подсети сидят в интернете под IPшником 50.50.50.51. Так вот, с него недоступна веб-морда торрент-демона по адресу 50.50.50.51:50002, хотя если заходить по этому адресу с любого компа без роута на этот VPN сервер, то всё заходит хорошо. tcmdump показывает что пакеты идут до адреса назначения (10.10.100.9), но в обратную сторону тишина. А если заходить с любого другого компа вне VPN сети, то они курсируют и туда, и сюда.

Роуты на роутере (только для 172.16.0.0/24):

default via 10.10.100.9 dev tun0 
10.10.100.0/24 via 10.10.100.9 dev tun0 
50.50.50.51 dev ppp0 scope link 
172.16.0.0/24 via 172.16.0.1 dev eth2 

Роуты на сервере VPN:

default via 172.31.1.1 dev eth0 onlink 
10.10.100.0/24 via 10.10.100.2 dev tun0 
10.10.100.2 dev tun0 proto kernel scope link src 10.10.100.1 
172.31.1.0/24 dev eth0 proto kernel scope link src 172.31.1.100 

iptables на роутере:

-A FORWARD -s 172.16.0.0/24 -o tun0 -j ACCEPT
-A FORWARD -i tun0 -d 172.16.0.0/24 -j ACCEPT
-A FORWARD -i tun0 -o tun0 -j ACCEPT

iptables на сервере VPN:

*nat
-A POSTROUTING -s 10.10.100.0/24 -j MASQUERADE
-A PREROUTING -p tcp -d 172.31.1.100 --dport 60003 -j DNAT --to-destination 10.10.100.9:50002
*filter
-A FORWARD -i tun+ -o tun+ -j ACCEPT
-A FORWARD -i tun+ -j ACCEPT
-A FORWARD -o tun+ -j ACCEPT

ccd для клиента-роутера:

iroute 10.10.100.0 255.255.255.0
ifconfig-push 10.10.100.9 10.10.100.10
iroute 172.16.0.0 255.255.255.0

конфиг OpenVPN сервера:


Сам OpenVPN сервер не передаёт клиентам дефолтный роут на него - клиенты сами настраивают маршруты.

port 10100
proto udp
dev tun

server 10.10.100.0 255.255.255.0
sndbuf 524288
rcvbuf 524288
client-config-dir ccd

push "sndbuf 524288"
push "rcvbuf 524288"
keepalive 10 120

cipher AES-256-CBC
auth SHA256
tls-server
tls-timeout 160
hand-window 160

max-clients 32
client-to-client

user nobody
group nogroup

persist-key
persist-tun


verb 5

Конфиг OpenVPN клиента:

client
route-nopull

dev tun
proto udp
remote 50.50.50.51 10100
resolv-retry infinite
nobind


cipher AES-256-CBC
auth SHA256
tls-client

verb 5

Простая схема этой солянки: https://ibb.co/ha1F3m

Где-то роута не хватает, но вот где - голову сломал.

Сломал мозг понимать что у вас там нафигачено. Засуньте в iptables в INPUT правило для пакетов на этот порт 50002 с адреса с которого проверяете и смотрите по счётчику. Если счётчик растёт, значит пакеты доходят до сокета, значит либо web-морда не хочет эти src-ip адреса, либо они уходят через другие интерфейсы (ловите их там tcpdump'ом). Если счётчик не растёт, значит пакеты рубит rp_filter.

mky ★★★★★ ()
Ответ на: комментарий от FluffyPillow

Угу, наврочено, конечно, так, что без пол-литра не разобраться.

Присоединяюсь к предложению ловить пакеты сниффером на разных интерфейсах, чтобы понять, на каком этапе сбой происходит...

Serge10 ★★★★★ ()
Последнее исправление: Serge10 (всего исправлений: 1)
Ответ на: комментарий от Serge10

В общем, разобрался. К торрент-демону можно спокойно подключится с IPшника который отличается от внешнего IP VPN сервера. С чем это связано - без понятия. Может роута действительно где-то не хватает, а может правила фаерволла. Прокурю позже эту проблему.

Вроде как «решено».

FluffyPillow ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.