LINUX.ORG.RU

Тонкая настройка WebRTC и Loopback адаптера

 , , , ,


0

1

Всем добрый день. Написал на 2 форума по данному вопросу, тишина или глупые ответы, надежда на Вас. Итак начну. Есть вот такая инструкция по настойке WebRTC на виртуальной машине под Windows. Как сделать так же, только под локальный хост на Ubuntu? Были сделаны следующие попытки:
1) Прописаны правила iptables, для блокировки лишнего udp трафика :

iptables -A OUTPUT -o lo -j ACCEPT #Разрешаем локальный трафик
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT #Разрешаем трафик для DNS сервера
iptables -A OUTPUT -p udp -j DROP #Запрещаем остальной udp трафик

2) Далее по идеи нужно настроить маршрут, и вот тут возникли проблемы. Скажем, что я хочу, чтобы мой внешний WebRTC был 127.0.0.1. Я прописываю следующие:
route add -net 127.0.0.1 netmask 255.255.255.255 gateway 100.76.74.62 ppp0
Но ничего не изменилось(networking перезапускал). Вот что говорит команда ifconfig :
enp3s0    Link encap:Ethernet  HWaddr 4c:72:b9:46:d9:53  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Локальная петля (Loopback)  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:2149 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2149 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:144334 (144.3 KB)  TX bytes:144334 (144.3 KB)

ppp0      Link encap:Протокол PPP (Point-to-Point Protocol)  
          inet addr:100.76.74.62  P-t-P:0.0.0.0  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:392596 errors:0 dropped:0 overruns:0 frame:0
          TX packets:244084 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:510464211 (510.4 MB)  TX bytes:22995525 (22.9 MB)

wlp4s0    Link encap:Ethernet  HWaddr 00:08:ca:f9:2d:e2  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
wlp4s0 - это внутренняя сетевая карта. ppp0 - usb модем(в этом примере он выступает в роли устройства, через которое осуществлен выход в интернет), enp3s0 - lan кабель. Вопрос : что я делаю не так? И так ли вообще делаю? Что скажите?
UDP : 127.0.0.1 взят для примера. Насколько я правильно понял, для нужного ip нужно менять адрес lo адаптера и изменять под него настройки соответственно.


Для начала все пакеты на адрес 127.0.0.1 пойдут сначала на интерфейс которому присвоен этот адрес (lo). Или убивать роут на девайс, либо сам девайс.

В любом случае пере направление 127.0.0.1 куда-то либо может привести к смерти кучи локальных служб и делать это настоятельно не рекомендую.

И судя по всему, просто надо завернуть весь WebRTC трафик через туннель.

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

И судя по всему, просто надо завернуть весь WebRTC трафик через туннель.

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

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

Если вы хотите скрыть свои приватные адресса чтоб при заходе на всякие не понятные сайты они не получали информацию о вашей внутренней сетке то тут маршруты / фаерволы не помогут. Так как браузер просто по запросу из JS выдает список ВСЕХ локальных IP адрессов на данном компьютере, и не нужно отправлять вообще ни одного пакета в сеть для этого.

На втором этапе используется ICE где внутри протакола на TURN/STUN сервер отправляются информация о локальной сетке но это уже нужно если есть желание получить как приватный так и публичный NAT адресс.

А вообще проблема потеряла свою актуальность, так как в новых браузерах по умолчанию WebRTC API работает только на доверенных сайтах (HTTPS с валидным сертификатом либо локалхост).

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

Получается, нужно весь UDP трафик с 3478 порта перенаправить через TCP на Socks или SSH? И вроде как все должно работать? Или его перенаправлять туда, куда идет трафик DNS сервера, то есть на 53 порт (если DNS фильтруется конечно)

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

Проблема абсолютно не потеряла актуальность, поскольку для создания p2p соединения оглашаются все адреса клиентов друг другу.

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

ДНС тут не причем. zaz все правильно написал, сам клиент сообщает все локальные адреса STUN серверу, который в свою очередь к этому всему прибавляет IP от которого пришла вся эта инфа, то самое делается с другим клиентом, если STUN сервер видит возможность p2p соединения между клиентами он передает всю инфу клиентам о противоположном клиенте и тогда как раз IP и палится.

Тут надо пускать весь WebRTC+TURN/STUN трафик через анонимизирующий сервер и как-то вмешиваться в работу клиента и отправлять только те адреса которые не жалко по палить.

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

Тут надо пускать весь WebRTC+TURN/STUN трафик через анонимизирующий сервер и как-то вмешиваться в работу клиента и отправлять только те адреса которые не жалко по палить.

Есть идеи как это организовать?

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

TCP трафик фильтруется с помощью Redsocks. UDP с помощью DNS SOCKS Proxy.

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

По прежнему нет предположений, как можно это сделать?

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