LINUX.ORG.RU
ФорумAdmin

3proxy + OpenVpn

 , ,


0

2

Привет!

Имеется такая задача- Есть vps, на котором установлен ubuntu 20(условно в Германии). На Vps установлен OpenVpn client, который подключается к Vpn(пусть будет ExpressVpn). Также на Vps установлен 3proxy, с помощью которого подключаюсь удаленно к серверу и использую его в качестве прокси..

Задача- Нужно чтобы при вводе в браузере прокси —ip:port:login:pass на рабочем ноуте, который использую на постоянной основе выдавало конечный ip адрес, к которому подключается OpenVpn(Условно Франция)..

Проще говоря- чтобы при подключение по прокси он выдавал не ip адрес vps(Германия), а ip адрес, который выдает ExpressVpn через подключении по openVpn-условно Франция..

Получается связка: -Pc-Connect with 3proxy to Ubuntu server with OpenVpn-Мы во Франции..

3proxy работает, когда подключаюсь к серверу в качестве проксей.. OpenVpn работает, но когда включаешь openVpn- 3proxy перестает работать.. Я так понимаю причина в том, что OpenVpn делает шлюз по умолчанию..

3proxy работает на одном сетевом интерфейсе-des3 OpenVpn создает свой сетевой интерфейс tun0

В iptables пусто- только разрешен доступ всем input, forward, output.. C 3proxy config включен port -n -a p8001 net4ip что-то там forward проставил = 1(включено)

Как реализовать схему?- пробовал обращаться к ChatGpt и каждый раз он выдает разные решения..

Ответ на: комментарий от Bers666

У ТС по советам ChatGpt может быть конфигурация 3proxy с указанием исходящего ip-адреса. Пакеты с «левым» ip-адресом лучше не маршрутизировать в VPN-тунель.

Или всё и так зароучивается в VPN и надо наоборот убрать зароучивание для подключений к 3proxy.

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

chatGpt выдает, что нужно редактировать 3proxy config и прописать:

Проксирование через VPN для TCP

proxy -p<LOCAL_PROXY_PORT> -a -i<VPN_SERVER_IP> -e<VPN_PORT> -u<VPN_USERNAME>:<VPN_PASSWORD>

Не знаю насколько правильно, но вот только на постоянной основе у vpn доменное имя, по которому идет подключение, а не статический ip

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

- в iptables маркируем маркой 1 исходящие пакеты от 3proxy в интернет.
- кроме тех что идут с порта прокси в сторону клиентов (например sport 8000).
- создаем таблицу роутинга 100, в которой дефолт шлюз только VPN.
- создаем ip rule который направляет промаркированные маркой 1 пакеты в эту таблицу 100.

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

Я вообще не понимаю, как это все работает- делаю все с помощью chatGpt и инфе на форуме в разных топиках. Прописал команды:

  1. iptables -t mangle -A OUTPUT -j MARK –set-mark 1(маркировка исходящих пакетов)

  2. sudo sh -c «echo ‘200 tb’ >> /etc/iproute2/rt_tables»(создание таблицы роутинга- только 100 он не давал, я назвал TB)

  3. sudo ip route add default via 10.7.7.1 dev tun0 table tb(дефолтный шлюз Vpn в таблицу добавил)

  4. sudo ip rule add from all lookup tb(это тоже добавил в таблицу)

  5. sudo ip rule add fwmark 1 table tb(промакрированые пакеты в таблицу tb)

Что сделал не так?

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

Что сделал не так?

Я вообще не понимаю, как это все работает

@

делаю все с помощью chatGpt


------

Начните с чтения Linux Advanced Routing and Traffic Control HOWTO.

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

Сверху товарищ отписал по правилам, что и как нужно сделать. Я правильно понимаю логику?- Нужно чтобы с одного интерфейса отправлялись данные на другой интерфейс?

Как раз для этого и создаем таблицу маршрутизации и подтягиваем nat. Как я вычитал в nat мы разрешаем пересылку пакетов, и указываем через какой интерфейс выходим в интернет..

iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

По идеи команда выше правильная, но все также не работает..

Может ли быть причина в том, что все также шлюз по умолчанию идет opevpn и поэтому 3proxy не работает? или мы все правилами маршрутизации разруливаем?

lolipop5577
() автор топика
Ответ на: комментарий от Anoxemian
Ответ на: комментарий от anc

Так в чем причина, что не подключается?

пометку 1 для исходящий соединений с 3proxy по uid сделал.. Таблицу создал.. Отправку пакетов в таблицу 1 сделал.. nat для выхода в интернет с интерфейса openvpn сделал..

ip forward включил.. Появилась новая строка в route -n..

Но все также по логин пасс не подключается к серверу.. Порт прослушивания добавил.. Фаервол разрешил tcp доступ на порт

В других ветках читал как и что делал- по идеи тоже самое и все работало..

Может быть причина в том, что изначально сетевого интерфейса нету у openvpn и он сам его создает?

lolipop5577
() автор топика
Ответ на: комментарий от anc

ОК.

Купил сервак ubuntu, который находится в Германии. Запускаю его. Подключаюсь по ssh. Ставлю 3proxy, прописываю авторизацию.. Открываю порт. Закидываю прокси формата: ip:port:login:pass, для проверки работает ли- работает, но выход в интернет идет через ipv6. Удаляю в сетевом интерфейсе ens3 запись об ipv6- трафик начинает ходить через ipv4 сервака Германии.

Устанавливаю openvpn. Закидываю через pscp exe файл конфигурации клиентский Vpn. Смотрю route -n - изначально только 1 интерфейс ens3. Запускаю файл конфигурации через команду: sudo openvpn –config /home/8.ovpn –daemon

OpenVpn запускается. Пробиваю Ip адрес- Подключено к Франции. Проверяю подключение по ip:port:login:pass- прокси не отвечает..

Перезапускаю сервер- Прокси отвечает, openvpn отключился.. Запускаю заново OpenVpn- прокси не отвечает. В route -n появляется новые записи-default via 10.7.7.1 dev tun0(как я вычитал- все соединения отправлять на интерфейс tun0).. Запись с интерфейсом ens3- уходит на нижние строки..

Захожу в systcl что-то там- разкоментирую строчку ipv4 forward.. тут cat /proc/sys/net/ipv4/ip_forward с 0 меняется на 1 при разкоментировании..

Пробиваю uid процесса 3proxy- пишу команду: iptables -t mangle -A OUTPUT -m owner –uid-owner=276 -j MARK –set-mark 1

проверяю: пишу iptables -t mangle -L - запись появилась

пишу команду: sudo sh -c «echo ‘200 tb’ >> /etc/iproute2/rt_tables» Проверяю создана ли таблица: команду уже потерял, так как вкладок дофига открыто.. Таблица создана

пишу команду: sudo ip route add default via 10.7.7.1 dev tun0 table 200 по идеи команда создает шлюз по умолчанию и помещает в таблицу с id 200

пишу команду: sudo ip rule add fwmark 1 table 200

пишу команду: iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE как понял- выход в интернет с tun0

пишу команду: route -n появляется запись, что подключены к франции по Ip адресу машины(скрин скинул выше)

Проверяю подключение по ip:port:Login:pass- прокси не отвечает

lolipop5577
() автор топика
Ответ на: комментарий от Anoxemian

я несколько раз переустанавливал систему, дабы обнулить все..

Первое правило в последние разы не добавлял, так как в другой ветке там товарищ тоже самое делал и там были команды на добавление

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

На секунду задумайся, что трафик, который генерит прокси, является локальным, а не транзитным и тебе придется классифицировать именно тот, что должен уходить в туннель. И дальше изучай чего и как работает в этих наших интернетах)

Anoxemian ★★★★★
()

Упрощаем задачу. Берем китайский прокси gost.run и он сам умеет маркировать исходящий трафик (до сайтов) и выбирать исходящий ip. Так что оп'у остаётся только настроить ip rule, ip route. Ну и попариться с настройкой gost, конечно.

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

Мне нужно именно в моей связке сделать подобное с данным Vpn.. Человек выше написал, что я видимо не добавил какое-то правило или неправильно прописал..

Мне как-то нужно интернет трафик отправлять в туннель.. Только какой..

У нас есть 3proxy- мы на него отправляем входящие пакеты.. Исходящие мы прописали помечать меткой и скидывать в таблицу..

Или локальный трафик нужно отправлять в туннель..

Крч я уже совсем ничего не понимаю, так как мозги поплыли..

lolipop5577
() автор топика
Ответ на: комментарий от anc

От чего люди такие токсичные?) Что такого происходит с людьми, что они становятся такими злыми?) Кто их так обидел?)

То что я впервые лезу в linux, и нифига в этом не понимаю-это нормально) Мы все в чем-то сильны, в чем-то слабы)

Да и подкалывать понемногу тоже в порядке вещей) НО чтобы так много уделять внимания этому- вот это мне кажется уже ненормальным)

Это как смеяться над калекой, который пытается пойти) Самое интересное, что из нас двоих калека точно не я)00)

Не хочу далее вступать с вами в дисскусию- вы деструктивный) Не обижайтесь плиз :)

lolipop5577
() автор топика
Ответ на: комментарий от Bers666

Свежий головой читаю- видимо я не добавил исключение sport, так как по идеи(но это не точно), мы ответ с openvpn перекидываем на 3 proxy, а у нас установлено правило, что все исходящие пакеты у 3proxy идут на openvpn- т.е. отправляются обратно..

Попробую погуглить эту мысль и проверить

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

От чего люди такие токсичные?) Что такого происходит с людьми, что они становятся такими злыми?) Кто их так обидел?)

Я вам полное название мануала написал, а вы про «токсичность» пишите? Дядь, вы не офейхуели ли?

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

Самое интересное, что от вас прозвучало несколько подколов: «ой как лирично».. «ой нам так всем интересно».. «ой было б чему плыть».. «ой мама ради меня обратно»..

В ответ написал, человек обиделся(((

Вы ж любите шутки-подколы) Так что вы обиделись то, что в вашу сторону подкол прозвучал?) «Я вам вот так, а вы..» Вы токсично шутили-Я токсично пошутил, вы обиделись..

Вы подкололи-Вас подкололи) 1:1)) Не обижайтесь)

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

Это как на рыбалку ты собираешься в первый раз, а тебе батя скинул статьи, какие бывают спининги, какие лески, какие водоемы, как нужно кидать- технология закидывания и прочее..

Смысл в том, что ты не собираешься быть рыбаком- тебе нужно всего один раз сделать задачу(которая к тебе никак не относится, не твоя компетенция и тд и тп) и больше к этому не возвращаться..

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

тебе нужно всего один раз сделать задачу(которая к тебе никак не относится, не твоя компетенция и тд и тп)

Тогда не надо браться за то, что не умеете. Или вы вариант «насяльника, что делать будем, раковину на потолок или на пол крепить?»...

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

Родненький мой, видимо вы не вчитывались, но повторю еще раз- Я не программист, я не брался за задачу- мне ее поставили(по той причине, что когда-то обучался на сис админа, но направление было построение локальный сетей, прокладка кабеля и прочее)..

Мне просто поставили задачу и #бись как хочешь.. Повторюсь- я не прогер.. Никого не #бет умею ли я что там или нет- Вот задача, разбирайся..

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