URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID15
Нить номер: 4253
[ Назад ]

Исходное сообщение
"Роутинг для отдельного пользователя на wifi"

Отправлено Ананем кто же еще , 30-Авг-15 01:50 
Столкнулся с такой проблемой, т.к. в настройке сетей не силен спрошу тут.

Имею впн и пытаюсь сделать конфиг когда все ходить через впн, но одна прога/юзер может ходить через реальный адрес

Гугление выдает решения типа
http://blog.sebastien.raveau.name/2009/04/per-process-routin...

Но тут требуется прописать роут, в еще нескольких похожих решениях тоже. А на wifi я не могу прописать роут, т.к. могу просто пойти в другое место и подключиться к другой сетке, а там будет другой гейтвей.
Сетку в этом плане конфигурирует нетворкменеджер и мне хотелось бы подключатсья к любой сети из гуя, ковыряться в консоли каждый раз зайдя в макдональдс не хочется совсем.
Можно конечно скриптик накостылять который будет парсить роут добавленный нетворкменеджером и реконфигурироват конфиг с пометкой трафика, но это костыль еще тот.

Как сделать красиво и правильно, чтоб прога/юзер ходили через определенный интерфейс?

Я пробовал забиндить curl на интерфейс, на это работает только из под рута и оно не реагирует на пришедший syn+ack ответ и не делает конект, по сути не работает.


Содержание

Сообщения в этом обсуждении
"Роутинг для отдельного пользователя на wifi"
Отправлено Etch , 30-Авг-15 08:32 
> Но тут требуется прописать роут, в еще нескольких похожих решениях тоже. А
> на wifi я не могу прописать роут, т.к. могу просто пойти
> в другое место и подключиться к другой сетке, а там будет
> другой гейтвей.

Так сделайте наоборот - пропишите отдельную таблицу роутинга для впн и заруливайте туда всё, что не помечено для отправки напрямую:

ip rule add not fwmark 42 table 42

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

"Роутинг для отдельного пользователя на wifi"
Отправлено Ананем кто же еще , 30-Авг-15 22:36 
Спасибо за идею, сделал. Делюсь своим нубским конфигом

for f in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 0 > $f; done
echo 1 > /proc/sys/net/ipv4/route/flush

iptables -t mangle -A OUTPUT -m owner ! --uid-owner юзер_который_будет_ходить_напрямую -j MARK --set-mark 42
iptables -t mangle -A OUTPUT -d ИП_ВПН -j MARK --set-mark 0

iptables -t nat -A POSTROUTING -m mark --mark 42 -j SNAT --to-source локальный_ип_назначенный_впном

ip rule add fwmark 42 table 42
ip route add default via гейтвей_впна dev tun0 table 42