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

Проблема с пробросом порта во внутрь OpenVPN

 , , ,


0

1

Доброе...

Нужно сделать так: я обращаюсь к ip_инет:80 он меня перенаправляет на 10.1.1.6:8080

Проблем в том, что именно во внутрь openvpn и не пускает.

Если делаю без впн, работает:

-A POSTROUTING -s 10.1.1.1/24 -j MASQUERADE.
-A PREROUTING -d 100.100.100.100 -p tcp -m tcp --dport 80 -j DNAT --to-destination 222.222.222.222:8080
-A POSTROUTING -p tcp -d 222.222.222.222 --dport 8080 -j SNAT --to-source 100.100.100.100
-A POSTROUTING -m mark --mark 0x9 -j MASQUERADE

Если меняю адрес принимающей стороны на адрес впнКлиента - то не работает:

-A POSTROUTING -s 10.1.1.1/24 -j MASQUERADE.
-A PREROUTING -d 100.100.100.100 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.1.1.6:8080
-A POSTROUTING -p tcp -d 10.1.1.6 --dport 8080 -j SNAT --to-source 100.100.100.100
-A POSTROUTING -m mark --mark 0x9 -j MASQUERADE

На клиенте разрешил этот порт

пробовал на сервере 100.100.100.100 - tcpdump host 10.1.1.6 - ничего нет

tcpdump host 10.1.1.1 - то же ничего нет, ну пока не начну его пинговать с 10.1.1.6

Что я забыл разрешить? То есть он даже не перенаправляет в впн, а стоит поменять на внешний адрес другого сервера, все сразу работает.

CentOS 6.6 - iptables)

Спасибо.

Я еще не ковырял нормально, но периодически клиенты слетают пока с него не пинганешь сервер. А клиент-клиент работает

minakov ★★★★★ ()

На сервере 222.222.222.222 прописал -A FORWARD -p tcp -d 10.1.1.6 --dport 8080 -j ACCEPT

и на 111.111.111.111 tcpdump -i tun0 выдал:

03:54:46.906318 IP vps51.host.com.49320 > 10.1.1.6.8080: Flags [S], seq 3877270114, win 8192, options [mss 1440,nop,wscale 2,nop,nop,sackOK], length 0

А на сервере 222.222.222.222 tcpdump -i tun0 выдал:

11:57:45.161638 IP 111.111.111.111.49785 > 10.1.1.6.8080: Flags [S], seq 3657928257, win 8192, options [mss 1306,nop,wscale 2,nop,nop,sackOK], length 0

но перенаправление не сработало пока )

firefedot ()

На OpenVPN-клиенте OpenVPN — маршрут по умолчанию? Если нет, то нужно маршруты настроить, а то скорее всего принимающая сторона пытается отправить ответ по маршруту по умолчанию, а не через OpenVPN.

te111011010 ()
Ответ на: комментарий от minakov

пробовал ставить его, точней он стоит, но в данном случае тоже не пробрасывает.

С других адресов пробрасывает. а тут - нет

firefedot ()

Конфиг сервера

Может что не так прописал

port 1194
local 111.111.111.111
proto tcp

dev tun

ca  /etc/openvpn/keys/ca.crt
cert  /etc/openvpn/keys/server.crt
key  /etc/openvpn/keys/server.key

dh /etc/openvpn/keys/dh2048.pem

server 10.68.2.0 255.255.255.0

ifconfig-pool-persist ipp.txt

client-config-dir /etc/openvpn/ccd
push "route 10.68.0.0 255.255.255.0"

push "route-gateway 10.68.2.1"

keepalive 5 240
client-to-client
tls-server
tls-auth /etc/openvpn/keys/ta.key 0
tls-timeout 120

duplicate-cn

auth SHA512

cipher AES-256-CBC   # AES

comp-lzo

status-version 2

user nobody
group nobody

persist-key
persist-tun

status openvpn-status.log

verb 3

mute 10
management localhost 7557
firefedot ()
Ответ на: Конфиг сервера от firefedot

Есди добавляю push «redirect-gateway def1» то все работает. но при этом весь трафик с 222.222.222.222 идет через впн, а просто добавить маршрут не могу, точней он добавляется, но толку пока нет....

firefedot ()
Ответ на: комментарий от firefedot

Вот что в логах, то есть маршрут не устанавливается на клиенте

Fri Mar 27 19:45:03 2015 /sbin/route add -net 10.68.0.0 netmask 255.255.255.0 gw 10.68.0.1
SIOCADDRT: Network is unreachable

firefedot ()
Ответ на: комментарий от firefedot

В общем дело получается в маршруте....

Если делай маршрут default впна. то все работает, но если оставить маршрут по-умолчанию как и был - не работает)

А руками прописать не дает , выдает ошибку, что сеть не доступна

firefedot ()
Ответ на: комментарий от firefedot

Решено )

Поправил правило в iptables на первом сервере

-A PREROUTING -d 111.111.111.111 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 10.68.0.6:8060
-A POSTROUTING -p tcp -d 10.68.0.6 --dport 8060 -j SNAT --to-source 10.68.0.1
firefedot ()
Ответ на: Решено ) от firefedot

Обобщение)

На сервере 111

*nat
-A PREROUTING -d 111.111.111.111 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 10.68.0.6:8060
-A POSTROUTING -p tcp -d 10.68.0.6 --dport 8060 -j SNAT --to-source 10.68.0.1
-A POSTROUTING -m mark --mark 0x9 -j MASQUERADE
COMMIT

*filter
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8060 -j ACCEPT

на клиента 222

*filter
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8060 -j ACCEPT
-A FORWARD -p tcp -d 10.68.0.6 --dport 8060 -j ACCEPT

*nat
:PREROUTING ACCEPT [46:4899]
:POSTROUTING ACCEPT [58:5145]
:OUTPUT ACCEPT [58:5145]
-A PREROUTING -d 10.68.0.6 -p tcp -m tcp --dport 8060 -j DNAT --to-destination 10.15.0.1:39635
-A POSTROUTING -m mark --mark 0x9 -j MASQUERADE
COMMIT

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