LINUX.ORG.RU
ФорумAdmin

Openvpn с socks5/ssh tunnel на выходе (возможно ли?)

 , , , ,


2

2

Привет, ребята! Вы можете мне помочь? Заранее извиняюсь если не совсем понятно сформулировал.

У меня несколько VPS:

SERVER1 с openvpn, SERVER2 - просто ssh, SERVER3-socks5 и т. д

Я хочу подключиться к openvpn с той же конфигурацией клиента (без какого-либо редактирования на стороне клиента и ссш-туннеля), но получить IP в конце от SERVER2/SERVER3/etc и иметь возможность быстро изменить его на стороне сервера с openvpn (для этого хочу написать скрипт когда пойму как правильно реализовать маршрутизацию).

Я думаю, что я должен настроить прозрачный прокси, который перенаправляет весь трафик через локальный socks5 (туннель ssh от SERVER1 до SERVER2) или удаленный socks5 (SERVER3).

т.е. как-то так:

CLIENT (permanent openvpn config) => SERVER1 (VPN tun0) => SERVER1 (LOCAL TRANSPARENT SOCKS5) => SERVER2 (SSH TUNNEL) => INTERNET

или

CLIENT (permanent openvpn config) => SERVER1 (VPN tun0) => SERVER1 (LOCAL TRANSPARENT SOCKS5) => SERVER3 (REMOTE SOCKS5) => INTERNET

Есть ли способ перенаправить UDP или только TCP ? Я читал, что можно использовать shadowsocks-libev как прозрачный udp прокси -https://github.com/shadowsocks/shadowsocks-libev / https://hub.docker.com/r/gists/shadowsocks-libev/, но я не могу понять, как правильно настроить маршрутизацию.

Я нашел это

#!/bin/sh
_trans_port="9040"
_int_if="tun0"
iptables -t nat -A PREROUTING -i $_int_if -p udp --dport 53 -j REDIRECT --to-ports 53 iptables -t nat -A PREROUTING -i $_int_if -p tcp --syn -j REDIRECT --to-ports $_trans_port

«Кстати, запомните этот код. Это универсальный способ перенаправления всего трафика с данной сетевой карты через прозрачный прокси» (с)

Так же находил на просторах сети tun2socks, но похоже данный софт уже не поддерживается и я не смог собрать его из исходников.

Еще интересует как будут обстоять дела с днс-трафиком если все же получится реализовать такую схему.

Можете ли вы на практическом примере показать как правильно осуществить такую маршрутизацию (с номерами портов и т.д.)?

Заранее спасибо!



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

Выкинь openvpn. Возьми wireguard соедени два сервера туннелем. 1ый сервер будет работать и как клиент и как сервер. Т.е. как дабл будет, на 2 сервере, берёшь redsocks2 и заворачиваешь весь tcp трафф. через сокс(ssh -D до 3 сервера). Если ты ждёшь, что тебе напишут решение этой задачи по командно, то такого не будет.

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

Спасибо за совет. Ну за всех тоже отвечать не стоит, может быть кто-то и подскажет по iptables с командами, кто соображает в маршрутизации хорошо)

Задача стоит именно с openvpn. И очень желательно UDP протокол.

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

мне Guest_1488 помог настроить проброс траффика от одного клиента OpenVPN через другого клиента (а не как пишут в инете - через сервер). Для этого он использовал GRE тунель.

Вот, что у меня в записях осталось:


# адресация такая: openvpn подсеть 10.10.10.0/24                                
# клиент-маршрутизатор у которого есть второй выход в интернет 10.10.10.4       
# простой клиент который подключается к серверу (и берет интернет у 10.10.10.4) 10.10.10.8
                                                                                
# на сервере (адрес 10.10.10.1)                                                 
# создаем GRE-тоннель, адрес 172.16.0.1 из произвольной серой подсети           
ip tunnel add gre1 mode gre remote 10.10.10.4 local 10.10.10.1 ttl 255          
ip link set gre1 up                                                             
ip addr add 172.16.0.1 dev gre1                                                 
                                                                                
# заворачиваем трафик в этот GRE-тоннель                                        
ip rule add from 10.10.10.8 table ovpn                                          
ip route add default dev gre1 table ovpn                                        
                                                                                
                                                                                
# на клиенте-маршрутизаторе (10.10.10.4)
ip tunnel add gre1 mode gre remote 10.10.10.1 local 10.10.10.4 ttl 255          
ip link set gre1 up                                                             
ip addr add 172.16.0.4 dev gre1                                                 
                                                                                
# трафик из GRE-тоннеля маршрутизируем наружу                                   
ip rule add from 10.10.10.8 dev gre1 table 200                                  
ip rule add to 10.10.10.8 table 200                                             
                                                                                
# 192.168.1.1 и интерфейс br0 - адрес и интерфейс маршрута в интернет           
ip route add default via 192.168.1.1 dev br0 table 200                          
ip route add 10.10.10.0/24 dev gre1 table 200                                   
                                                                                
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o br0 -j MASQUERADE

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