LINUX.ORG.RU

Как поднять 100 туннелей VPN?

 ,


0

2

Вот тут xtraeft мне сообщил, что такое возможно, но он точно не знает как:

Поднять сто клиентов думаю труда не составит, а насчет роутинга и редиректа - тут я не очень разбираюсь

Вот мне бы знать как это сделать. Кейс - парсинг. Каждый запрос на сайт направлять через новый VPN

Всем заранее спасибо

★★★★★

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

Не очень понимаю пока

Тоже не очень понимаю что именно нужно, но завернуть ip-адрес через тоннель можно так (допустим адрес a.b.c.d нужно пускать в tun3):

# ip route add a.b.c.d/32 dev tun3
Deleted
()
Ответ на: комментарий от Deleted

Нужно из vpn сделать прокси типа. Чтоб к туннелю подключаться 127.0.0.1:port
И у каждого туннеля свой порт

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

Ну можно повесить по прокси на каждый тоннельный интерфейс

Или сделать NAT

Если забираете данные с сайта с помощью curl/wget - им можно сказать с какого интерфейса ходить

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

Кстати да, проще всего курлу сказать через какой интерфейс идти.

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

Не curl, но если с ним так можно - переделаю на него.

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

Если мы про curl/wget то без указания интерфейса пойдет маршрутом по умолчанию

Можно зарезать на интерфейсе с маршрутом по умолчанию трафик к этому вашему сайту (iptables'ом например)

UPD: на тoннельных интерфейсах можно разрешить трафик только к одному сайту (тем же iptables)

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

Вот, подключаю VPN и весь трафик начинает ходить через него - браузеры/шмаузеры, торренты. Надо чтоб ходили только по указанию интерфейса (кто умеет). Открыл .ovpn файл, закомментировал

redirect-gateway def1
- все равно все через vpn.Что нужно сделать?

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

- все равно все через vpn.Что нужно сделать?

Может сервер пушит эту опцию? Посмотри в логах.

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

Не помогло((( Не работает. К примеру,
curl --interface tap1 -k http://pirat.ca/index.php
выдает текст с заглушкой о блокировке, т.е. не работает((
Что делать?

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

При route-noexec все идёт мимо впн даже при прямом указании интерфейса, а при route-nopull жалуется на отсутствие маршрутов((

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

Не работает

Да, нужно еще добавить маршрут

В файл /etc/iproute2/rt_tables допишите строку 3000 viatun0

Потом выполните

$ sudo ip rule add from 10.9.8.17 lookup viatun0
$ sudo ip route add default via 10.9.8.18 dev tun0 table viatun0

10.9.8.17 - это адрес тоннельного интерфейса. Щас проверил, у меня так работает. curl забирает с разных интерфейсов (ну и соответственно с разных адресов)

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

И где вообще почитать для понимания всего этого хозяйства?

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

А 10.9.8.18 это что?

Другой конец тоннеля. В выводе ifconfig это должно выглядеть приблизительно так:

 inet addr:10.9.8.17  P-t-P:10.9.8.18  Mask:255.255.255.255

Что такое viatun0?

Это просто идентификатор. Можно выбрать любой. Цифра 3000 тоже от балды. Если тоннелей будет реально 100, то имя интерфейса в идентификаторе будет удобнее, все эти списки можно легко генерировать скриптом

И где вообще почитать для понимания всего этого хозяйства?

Вам какая степень погружения нужна? Есть LARTC ( http://www.lartc.org/ ), наверное есть еще что-то посовременнее. Если не планируете входить слишком глубоко, проще несколько раз погуглить

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

Спасибо! А что вообще цифра 3000 означает?
Мне этих строк
3000 viatapX
добавлять по числу интерфейсов? Цифра везде одинаковая?

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

что вообще цифра 3000 означает?

Идентификатор таблицы

Цифра везде одинаковая?

Не, у каждой таблицы должна быть разная

3000 viatap0
3001 viatap1
3002 viatap2
...
Deleted
()
Ответ на: комментарий от Deleted

А у меня никакого другого конца тоннеля нет( Что делать?

tap0      Link encap:Ethernet  HWaddr 82:42:46:7e:07:c3  
          inet addr:10.115.40.71  Bcast:10.127.255.255  Mask:255.224.0.0
          inet6 addr: fe80::8042:46ff:fe7e:7c3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9 errors:0 dropped:0 overruns:0 frame:0
          TX packets:36 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:378 (378.0 B)  TX bytes:7195 (7.1 KB)

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

А что показывает sudo ip route ? Там должно быть что-то типа 10.x.0.0/? via 10.a.b.c dev tap0

Вот этот 10.a.b.c. и нужен

Deleted
()
Ответ на: комментарий от Deleted
sudo ip route
default via 192.168.1.1 dev eth0  proto static 
10.96.0.0/11 dev tap0  proto kernel  scope link  src 10.115.40.71 
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.252  metric 1 
192.168.11.0/24 dev eth1  proto kernel  scope link  src 192.168.11.130  metric 1
Qwentor ★★★★★
() автор топика
Ответ на: комментарий от Deleted

Т.е. у меня будет выглядеть так?

$ sudo ip rule add from 10.115.40.71 lookup viatap0
$ sudo ip route add default via 10.96.0.0 dev tap0 table viatap0

Или так?

$ sudo ip rule add from 10.96.0.0 lookup viatap0
$ sudo ip route add default via 10.115.40.71 dev tap0 table viatap0

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

Запустил второй VPN

sudo ip route
default via 192.168.1.1 dev eth0  proto static 
10.96.0.0/11 dev tap0  proto kernel  scope link  src 10.115.40.71 
10.96.0.0/11 dev tap1  proto kernel  scope link  src 10.100.232.116 
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.252  metric 1 
192.168.11.0/24 dev eth1  proto kernel  scope link  src 192.168.11.130  metric 1


10.96.0.0/11 в обоих - это нормально?

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

via 10.96.0.0

Нет, тут должен быть маршрут для тап-интерфейса

Хотя я вот щас еще раз попробовал, сработало и без указания адреса

$ sudo ip rule add from 10.115.40.71 lookup viatap0
$ sudo ip route add default dev tap0 table viatap0

UPD. Пробовал на тун-интерфейсе, конечно. Непонятно, будет ли это работать на тап и сможет ли биндить прикладной софт на тап-интерфейс

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

В ip route только 10.96.0.0/11 - никакого маршрута (выше выкладывал).
Попробую
Если что как эти маршруты удалить?

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

попробовал - не работает((
что еще сделать можно?

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

Короче, если делаю route-noexec - оно тупо все равно не работает, а если route-nopull все равно тащит весь трафик через впн

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

если делаю route-noexec - оно тупо все равно не работает

Ну а маршруты добавились нормально? Если да, то надо смотреть что происходит

В одном окошке запускайте

$ sudo tcpdump -n -i tap0 icmp

Во втором

$ ping -I tap0 ya.ru

И смотрите, появляется ли трафик на тап-интерфейсе.

А что, кстати, показывает sudo ip addr show tap0 ?

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

после маршрутов все сломалось - не подключается к VPN
либо connection timeout либо циклические переподключения. Хорошо, сохранил копию виртуалки. сейчас попробую еще.

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

Без маршрутов:

5: tap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
    link/ether 22:4c:6d:b0:37:8a brd ff:ff:ff:ff:ff:ff
    inet 10.115.40.71/11 brd 10.127.255.255 scope global tap0
       valid_lft forever preferred_lft forever
    inet6 fe80::204c:6dff:feb0:378a/64 scope link 
       valid_lft forever preferred_lft forever

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

Без маршрутов идет трафик вроде..

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tap0, link-type EN10MB (Ethernet), capture size 65535 bytes
12:29:28.526326 IP 10.115.40.71 > 93.158.134.3: ICMP echo request, id 3855, seq 1, length 64
12:29:28.672753 IP 93.158.134.3 > 10.115.40.71: ICMP echo reply, id 3855, seq 1, length 64
12:29:29.136368 IP 10.115.40.71 > 93.158.134.3: ICMP echo request, id 3855, seq 2, length 64
12:29:29.242967 IP 93.158.134.3 > 10.115.40.71: ICMP echo reply, id 3855, seq 2, length 64
12:29:30.144286 IP 10.115.40.71 > 93.158.134.3: ICMP echo request, id 3855, seq 3, length 64
12:29:30.257770 IP 93.158.134.3 > 10.115.40.71: ICMP echo reply, id 3855, seq 3, length 64
12:29:31.152288 IP 10.115.40.71 > 93.158.134.3: ICMP echo request, id 3855, seq 4, length 64
12:29:31.256272 IP 93.158.134.3 > 10.115.40.71: ICMP echo reply, id 3855, seq 4, length 64
12:29:32.161092 IP 10.115.40.71 > 93.158.134.3: ICMP echo request, id 3855, seq 5, length 64

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

а с curl трафик не идет
Сейчас еще раз сохраню виртуалку, попробую еще раз маршруты прописать что ли

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

нет) туплю, не обратил внимания
Щас виртуалка докопируется (5 мин) и проверю опять

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

Не работает. Выставлять фильтр tcp? Без него идут ARP сразу.
ничего похожего на запрос http
Да и выдает

<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href='http://block.mgts.ru/'>here</a>.</h2>
</body></html>

Т.е. идет мимо тоннеля Это с маршрутами

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

Так. Если я правильно понял, пинг с указанием интерфейса (-I tap0) идет в тоннель, а курл не идет, так?

А если запустить tcpdump -n -i tap0 port 80 и в другом окошке telnet -b 10.115.40.71 google.com 80 ?

Появляется трафик? В обе стороны?

Если нет, то непонятно. Или что-то не так набираете, или действительно с tap-интерфейсом надо по-другому поприседать

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

Нет, не надо. Если маршруты прописаны правильно он забиндится на локальный адрес (-b 10.115.40.71) и поймет что надо идти с тоннельного интерфейса. У меня с тун-интерфейса телнет идет в тоннель, как и задумывалось

Deleted
()
Ответ на: комментарий от Deleted
telnet -b 10.115.40.71 google.com 80
Trying 212.188.7.221...
Connected to google.com.
Escape character is '^]'.

и в tcpdump пусто

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

А насчет повесить прокси на интерфейс? Или будет то же самое?

Qwentor ★★★★★
() автор топика
Ответ на: комментарий от val-amart

Ну, я не эксперт в линуксовом сетевом стеке, но можно маркировать трафик в iptables по разным условиям (по pid'у как вариант) и по марке уже маршрутизировать

Может быть можно как-то и по-другому

ТС'у хотелось бы подсказать вариант попроще, конечно

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

Да, в этом посте я нифига не понял(
В iptables не разбираюсь от слова вообще
а нужно сегодня( Мне можно и сложно, но пошагово

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

нужно сегодня

А заменить tap на tun можете?

насчет повесить прокси на интерфейс? Или будет то же самое?

Если не настроить маршрутизацию то и с прокси не получится

Вообще непонятно. Пинги же пошли через тоннель? Можете опять вернуть к тому состоянию и попробовать tcp телнетом?

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