LINUX.ORG.RU
ФорумAdmin

СРОЧНО! Роутинг с ВПСа на ВПН-сервис

 openvpn vps iptables vpn


0

1

Приветствую. Нужна помощь знающих людей.
Цель: Имеется ВПС на базе убунту. Этот ВПС является впн-сервером(впн1) для клиента и он же должен стать клиентом для платного впн-сервиса(впн2).
Впн1 работает, и с ВПС можно выйти в инет, а вот с переадресацией трафика в впн2 у меня ничего не получается.
Конфиг сервера впн1(он же ВПС):
port 1194
proto udp
dev tun0
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push «redirect-gateway def1»
push «dhcp-option DNS 208.67.222.222»
push «dhcp-option DNS 208.67.220.220»
keepalive 10 120
comp-lzo
max-clients 2
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
tun-mtu 1480



Конфиг клиента(впн2):
client
dev tun1
proto udp
remote хх.ххх.ххх.ххх 443
resolv-retry infinite
nobind
ns-cert-type server
cipher AES-256-CBC
comp-lzo
verb 3
explicit-exit-notify 5
ca «ca2.crt»
cert «user.crt»
key «user.key»
tun-mtu 1480 (добавил сам без этого ситуация та же)
redirect-gateway def1 (добавил сам без этого ситуация та же)
dhcp-option DNS 208.67.222.222 (добавил сам)
dhcp-option DNS 208.67.220.220 (добавил сам)
iroute 10.8.0.0 255.255.255.255 (добавил сам)


С последней строкой связана некоторая закономерность:
Если эта строка отсутствует, то при запуске опенвпн пропадает возможность приконектиться к впс по 22 порту и клиент опенвпн(впн1) тоже не подключается застывая на строке коннекта к серверу, ifconfig показывает tun1(впн1) и tun2(впн2), tun2 получает IP 10.4.51.62(P-t-p 10.4.51.61).

Когда строка прописана, то коннектиться к серверу по 22порту можно и Клиент опенвпн(впн1) подключается удачно, но ifconfig показывает только tun1(впн1).
Надеюсь на вашу объективную помощь в настройке!



Последнее исправление: devtun (всего исправлений: 1)

Читаем на тему маршрутизации, в частности iproute2 команда ip rule. С остальным разберётесь и не забудьте sNAT/MASQUERADE.

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

Help

Случайно не знаете где найти нужную русскоязычную доступную документацию? Спасибо за подсказку, я добавлял такие правила и не помогло:


ip rule add fwmark 1 table vpn.out
iptables -t mangle -A PREROUTING -s 10.8.0.0/24 -i tun1 -j MARK --set-mark 1
iptables -t nat -A POSTROUTING -m mark --mark 1 -s 10.8.0.0/24 -o tun2 -j MASQUERADE
ip route add default dev tun2 table vpn.out

devtun
() автор топика

Так, у вас PPP с серым IP? Тогда да, придется немного погеморроиться, наверное.

ValdikSS ★★★★★
()

СРОЧНО!

[зевая] пойду, попью кофе...

Chaser_Andrey ★★★★★
()
Ответ на: Help от devtun

ээм, на кой чёрт вас потянуло метки ставить на пакеты? Документация называется LARTC, есть на опеннете.

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

Если вам нужен default gateway на ваших клиентах по цепочке - ваш впс - внешний сервис, то создаёте на ВПС в /etc/iproute2/rt_tables запись для новой таблицы (это для удобства сделано, все таблицы в ядре представлены числами), например

...
100 tout
потом в скрипте поднятия клиентского соединения с ВПС до внешнего сервера добавляет маршрут по-умолчанию и включаем НАТ, если он не создан.
#!/bin/sh

ip route add default via $5 table tout
RES=`iptables -nvL POSTROUTING -t nat|grep -E "SNAT.*$1.*10\.8\.0\.0"`;
if [ "$RES" == "" ];then
    iptables -t nat -A POSTROUTING -o $1 -s 10.8.0.0/24 -j SNAT --to-source $4;
fi;

А для входящих соединений/внутренней сети ваших клиентов достаточно при старте ВПС (старте системы) добавлять

ip rule add from 10.8.0.0/24 table tout
И все пакеты приходящие на ВПС с этой подсети будут перенаправляться в таблицу tout, в которой также в стартовом скрипте можете добавить все необходимые направления. А в скрипте up для клиентов уже делать маршруты до клиентов.

Таким нехитрым способом, вы разделите мух от котлет, то есть основной маршрут ВПС будет нетронут, а маршруты внутренней сети будут лежать в отдельной таблице.

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

help

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

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