LINUX.ORG.RU

Перевод пакетов из туннеля в прокси-коннект (tun to socks,http,...)

 , , ,


1

2

Имеется archlinux, openVpn коннект на tup0 интерфейс.
Нужно преобразовывать пакеты из tun0 в прокси-коннект и обратно — тоесть реалиозовать сплит-туннелирование (на локальном устройстве без раздачи во вне). К примеру отдельный браузер что бы мог подключаться к этому прокси-коннекту и работать через туннель openVpn, а вся остальная система работала по дефолт подключению.

Тем очень много просмотрел, но конкретно такой задачи вроде бы нигде не нашёл с применением готового решения.

Не могу найти как раз вот эту утилиту, которая бы делала этот мост tun->proxyConnect и proxyConnect->tun.

Прошу помощи в нахождении такой готовой утилиты, либо возможно каких-либо иных решений.

п.с. пробовал dante, 3proxy, tun2socks — все они не смогли сделать то что я хочу (dante вроде бы должен был, но почему-то отказался подключаться — нейронка выдала, что у моего vpn-коннекта маска подсети получается 31 и он не может в такую сеть подключаться).

п.п.с. возможно стоит самому реализовать такой софт — возможно есть какието подсказки про то, в какую сторону смотреть лучше — возможно asio или нечто более конкретное.


Перевод пакетов из туннеля в прокси-коннект (tun to socks,http,...) (комментарий)
Перевод пакетов из туннеля в прокси-коннект (tun to socks,http,...) (комментарий)
Перевод пакетов из туннеля в прокси-коннект (tun to socks,http,...) (комментарий)
Перевод пакетов из туннеля в прокси-коннект (tun to socks,http,...) (комментарий)

★★

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

преобразовывать пакеты из tun0 в прокси-коннект и обратно

Как ты себе представляешь преобразование dns udp или icmp пакета в соединение?

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

Запусти squid и направь его policy-based роутингом в тот интерфейс (а слушает пусть 127.0.0.1 куда браузер и будет подключаться).

сплит-туннелирование

Какие-то плохие словечки.

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

как осуществить этот policy-based роутинг наиболее простым способом? вот и ищу конкретную прогу, которая сразу бы всё превращала.
Мне хочется что бы было типа OpenVPN-socks5-proxy как будто.

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

Какие-то плохие словечки.

а в чём плоховость? возможно я не вник в мем какойто...

safocl ★★
() автор топика

кажется нашлось решение — throne

получается что direct-подключение на tun0 делает то что я и хотел — а сам он высылает на прокси-подключение, по параметрам в настройках.

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

Не знаю.

Если вдруг захочешь использовать фрибсд, то там это одна команда файрволла:

ipfw fwd адрес_гейта ip from any to any jail название_контейнера_с_прогой

(вместо jail можно другие признаки для распознавания трафика проги использовать на твой выбор)

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

Любой http или socks прокси, лучше http, потому что они все умеют по доменам посылать в разные места. У меня на роутере пара tinyproxy и три socks. socks забиндены на разные интерфейсы (использую ciadpi - он и как легковесный просто socks хорош), tinyproxy по большой таблице масок доменов раскидывает на один из трёх ciadpi. Второй tinyproxy - для разрешённых для ребёнка сайтов (белый список).

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

а, я вроде понял, что с dante - там, похоже, вообще не используется опция SO_BINDTODEVICE. Даже если указать имя сетевого интерфейса, то он просто возьмет его IP, что недостаточно (не будет работать корректно без source-based routing).
Из умеющих SO_BINDTODEVICE socks-прокси - https://github.com/dariost/soks (по наводке отсюда)

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

засмотрел код — выглядит на первый взгляд очень прилично — подобно как мне думалось про таковую реализацию.
Возможно стоит её взять как референс на пути возделывания С++ кода (жаль лицензия MPL2, а не GPL).

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

Для этого не надо править заголовок в ерунду, надо просто нажать «Отметить как решённую»

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

ну хз хз... дата последнего коммита напрягает слегка:
https://github.com/slingamn/namespaced-openvpn/commit/a3fa42b2d8645272cbeb685...
(slingamn committed on Sep 3, 2020)

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

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

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

#!/usr/bin/python3 ну что ты выдумываешь? Использую этот скрипт каждый день уже много лет.

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

ну, там много всего добавили. На фоне всё ещё живого ipfw в FreeBSD это прям либо простые случаи, либо разбираться, что от чего зависит - т.е. обычные правила уже не работают, а default route может ставиться в разных местах (ну ещё это и собственные погремушки OpenWRT в uCI)

Shadow ★★★★★
()

Я не очень понял о чем речь, но обычно трафик пускают в socks, а далее в tun. Напрямую только через iptables. Есть готовые утилиты для последнего. В Линуксах нет программ с кнопкой вкл/выкл впн, или я плохо искал

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

Не, я страдаю с OpenWRT, а там - linux + uCI. Я неделю приводил в понятное состояние «включил и работай» тревел-роутер, чтобы он поднимал до моей квартиры тоннель из любой сети, прозрачно для своих клиентов. Главное веселье было - состыковать интерфейсы, NAT роутинг и роутинг. То у NAT гонка подъёма роутинга, то uCI в неочевидном порядке поднимает.

Руками поднимаешь-прописываешь - всё работает. перезагружаешь - вроде роутинг такой же, а ничего не работает.

Вроде бы, дело оказалось в (L)uCI - она творчески перезапускает скрипты своего фаервола при перезапуске некоторых интерфейсов, и иногда не совсем корректная настройка начинает работать. И вот в этом состоянии я два дня искал, почему после этого при ребуте не работает.

В этом плане FreeBSD - это образец UI/UX.

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

Новость на опёнке: Альтернативная расширенная сборка PuTTY, поддерживающая файловые сессии. Лучший комментарий там: Отдельно хочется поздравить всех пользователей ФриБСД с обновлением UI для их любимой ОС.

mumpster ★★★★★
()
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария