LINUX.ORG.RU
ФорумAdmin

Перенаправление SOCKS4/5 трафика на разные тунели OpenVPN

 , , ,


1

2

всем привет!

суть такая, есть с десяток активных OpenVPN соединений на одной машинке, и есть столько же Socks 4/5 прокси серверов, к которым подключены люди - в зависимости от порта прокси сервера, трафик выходит через разные OpenVPN тунели. сейчас все сделано через маркировку пакетов, те каждый прокси сервер запускается от разных пользователей, пакеты от пользователя маркируются и в зависимости от маркера отправляются в нужный OpenVPN тунельчек - но может есть менее геморройная реализация такой системы?

просто сейчас стоит вопрос о динамическом добавлении новых тунелей/проксей и хотелось бы что-нить попроще.

Если твой прокси умеет использовать заданный адрес для инициирования соединения, то можно обойтись без маркировки в iptables. ip rule будет выглядеть при этом так:

ip rule add from x.x.x.1 table user1
ip rule add to x.x.x.1 table user1
ip rule add from x.x.x.2 table user2
ip rule add to x.x.x.2 table user2
Проще этого уже вряд ли получится.

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

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

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

Для n туннелей понадобится n дополнительных таблиц маршрутизации, для каждой нужно будет условие попадания туда. Остальное уже зависит от нужд и решается на уровне самого прокси, в настройке которого я не помощник :)

Deleted
()

в зависимости от порта прокси сервера, трафик выходит через разные OpenVPN тунели

Получается, можно трафик от прокси маркировать по исходящему порту?

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

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

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

А. Я неправильно понял схему. Ну если прокси выполняется в одном процессе, можно маркировать по его PID'у. Т.е. запускаем прокси со своим конфигом, его PID пишем в файл, потом что-то вроде iptables -A OUTPUT -m owner --pid-owner `cat user77.pid` -j MARK --set-mark 77.

Или маркировать по session id, если прокси порождает дочерние процессы

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

не слышал про namespace, нужно будет детальнее почитать.

но вариант с PID'ами вроде то что нужно )

спасибо!

x77cc33x
() автор топика
10 ноября 2016 г.
Ответ на: комментарий от x77cc33x

C PID`ами наверно не получится, --pid-owner $PID я так понимаю больше не работает (отменили), я тоже так хотел маркировать но не получилось iptables выдает ошибку на этот критерий как неизвестный. Я тоже сделал на UID но до конца пока не сделал, у меня интернет пропадает когда я маркировку включаю. Поднимается все это дело автоматически из php скрипта с другого сервера через ssh. Помоги закончить настройку (покажи как у тебя), я покажу что и как php скрипт делает, ну все что настраивал.

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