Настройка модема моего провайдера, чтобы я мог звонить через стационарный телефон, когда меня нет дома, используя внутренний скрытый SIP-сервер

258
Lorenzo

Мой провайдер предлагает своим пользователям VDSL возможность использовать любой смартфон в качестве беспроводного домашнего телефона, используя официальное приложение.

Они не предоставляют никакой документации или исходного кода, но кто-то сумел де-запутать приложение и обнаружил, что оно работает благодаря SIP-серверу, который работает на модеме / маршрутизаторе, который интернет-провайдер предоставляет своим клиентам. Нет способа настроить его, он полностью скрыт для обычного пользователя.

Этот парень также нашел способ, которым приложение получает учетные данные, необходимые для входа в систему, что позволяет любому устройству с установленным на нем SIP-клиентом подключаться к маршрутизатору, а также принимать и совершать звонки на стационарной линии.

Адрес, который приложение использует для входа в систему, представляет собой строку ( modemtelecom.homenet.telecomitalia.it), которая преобразуется в адрес локальной сети маршрутизатора (по умолчанию 192.168.1.1). Если я пытаюсь войти в систему, user@192.168.1.1он работает нормально; в любом случае, если я попытаюсь войти на сервер, используя в качестве адреса узла мой внешний IP-адрес, произойдет сбой.

Я попытался настроить маршрутизатор для пересылки трафика, поступающего из WAN через SIP-порт, на его собственный адрес, но он отказывается это сделать (я не знаю, может ли это быть ограничением со стороны интернет-провайдера или чем-то, что просто невозможно делать).

Как вы думаете, может ли быть способ обмануть мой маршрутизатор, позволяя мне войти в систему на SIP-сервере, когда я нахожусь вне моей домашней локальной сети?


Как предложил мне MariusMatutiae, я установил сервер OpenVPN на ПК, подключенном к моей локальной сети; Затем я приступил к маскировке трафика из OpenVPN и успешно подключил свой Android-смартфон к VPN и SIP-серверу внутри моей локальной сети. Пока что кажется, что я могу только отправлять аудио, но не могу ничего получить.

В любом случае, это выглядит как правильный путь: чтобы попытаться получить помощь по вопросам, с которыми я столкнулся, я задал еще один вопрос здесь .

2
Ваша таблица маршрутизации сильно отличается от таблицы моих маршрутизируемых OpenVPN: как вы ее настраиваете? Можете ли вы добавить вывод * ip link show dev tun0 *? Вы установили пакет * bridge-utils *? Вы должны иметь: сделайте это, затем перезагрузите компьютер и попробуйте снова. Ваши мысли верны, но в OpenVPN то, что вы говорите, должно быть сделано автоматически. MariusMatutiae 7 лет назад 0
@MariusMatutiae спасибо за предложения. Я обновил ОП; У меня не было установлено утилиты bridge, поэтому я сделал, как вы предложили, но, к сожалению, ничего не изменилось. Lorenzo 7 лет назад 0
изменилась ли ваша таблица маршрутизации? MariusMatutiae 7 лет назад 0
@MariusMatutiae Боюсь, что нет. Могу я спросить, как это должно выглядеть? Lorenzo 7 лет назад 0
@MariusMatutiae, может быть, я бы открыл новый вопрос? Название стало немного устаревшим, учитывая прогресс, который я сделал благодаря вам: теоретически у нас есть решение, теперь проблема в том, как заставить OpenVPN работать должным образом. Lorenzo 7 лет назад 0
Для таблицы маршрутизации, пожалуйста, см. Мой Edit. Вы можете задать другой вопрос. Ту студийные концерты, Лоренцо? MariusMatutiae 7 лет назад 0
@MariusMatutiae Я переместил часть контента, который я в последний раз добавил в свой ОП, в новый вопрос, поскольку тема кардинально изменилась. Я хочу поблагодарить вас еще раз за идеи, которые вы дали мне. Кстати, я не учусь за границей, что заставило тебя так думать? Lorenzo 7 лет назад 0
Время, когда вы подключаетесь. Но тогда я должен ошибаться, я часто ошибаюсь. MariusMatutiae 7 лет назад 0
@MariusMatutiae У меня напряженная неделя, поэтому я могу подключиться только тогда, когда здесь рано утром или поздно ночью. Должно быть, это ввело вас в заблуждение, но это не проблема :) Lorenzo 7 лет назад 0

1 ответ на вопрос

2
MariusMatutiae

Если я пытаюсь войти на user@192.168.1.1, он работает нормально; в любом случае, если я попытаюсь войти на сервер, используя в качестве адреса узла мой внешний IP-адрес, произойдет сбой.

Конечно, это терпит неудачу: если бы это не так, я (и многие, многие другие люди ;-)) звонили бы через ваш SIP-сервер за ваш счет.

Чтобы заставить его работать, убедитесь, что ваш телефон, находясь за пределами вашего дома, имеет IP-адрес в вашей локальной сети. Этого можно достичь, если вы настроите маршрутизируемый сервер OpenVPN на Linux-компьютере дома (это можно сделать с помощью Raspberry pi 3, небольшого компьютера, который стоит чуть более 40 евро).

Существует приложение OpenVPN для Android и iOS (и, возможно, некоторых других ОС, но я не уверен, что вам придется проверять), которое позволяет телефонам использовать маршрутизируемые OpenVPN ( не подключенные OpenVPN, осторожно). Единственный недостающий компонент - это использование правила MASQUERADE на Linux-коробке,

sudo iptables -t nat -A POSTROUTING -o eth0 ! -d 10.0.0.0/24 -j MASQUERADE 

(если вы используете подсеть 10.0.0.0/24 для ваших клиентов OpenVPN, в противном случае измените соответствующим образом). В этот момент весь трафик с вашего телефона направляется к локальной сети, включая сервер SIP, будет отображаться как прибывающие из коробки Linux, который делает иметь IP - адрес в локальной сети, и, таким образом, ваш телефон сможет получить доступ к серверу SIP ,

Это будет работать, но, возможно, неидеально. Если качество звука не является идеальным, если есть заикание или прерывистые соединения, вам нужно научиться расставлять приоритеты VoIP-трафика в вашей локальной сети. Но так как он уже настроен через модем вашего провайдера, я уверен, что он будет работать из коробки.

Это немного сложный, но очень весело. Все шаги хорошо документированы на сайтах gazillion, просто используйте ваш Google.

РЕДАКТИРОВАТЬ

Ваша таблица маршрутизации должна выглядеть так:

default via 192.168.1.254 dev eth0 10.8.73.128/26 via 10.8.73.130 dev tun0  10.8.73.130 dev tun0 proto kernel scope link src 10.8.73.129  192.168.1.0/24 dev br0 proto kernel scope link src 192.168.1.128  192.168.73.0/24 dev brlan proto kernel scope link src 192.168.73.1  

Мой маршрутизатор Debian имеет два интерфейса, eth0 - это WAN, а brlan - это LAN. 192.168.73.0/24 - это локальная сеть, 192.168.1.0/254 - в подключении к моему модему на стороне WAN, 10.8.73.128/26 - это сеть OpenVPN, и то, чего вам не хватает, является важным утверждением

10.8.73.130 dev tun0 proto kernel scope link src 10.8.73.129 

который определяет туннель.

Android имеет PPTP VPN в качестве поддерживаемой опции, многие маршрутизаторы имеют такой запас. В зависимости от системы ОП. это может быть более аккуратный вариант. Также стоит учесть, что у него может быть нестатический IP-адрес, что делает его более увлекательным. Journeyman Geek 7 лет назад 0
Большое спасибо! В настоящее время я пытаюсь настроить OpenVPN, как только мне удастся заставить его работать, я дам вам знать. Lorenzo 7 лет назад 0
Хорошо, я настроил все на ПК, подключенном к локальной сети, и на своем мобильном телефоне. После небольшой работы мне удалось войти в систему и совершать звонки, но я не могу ничего слушать, только номер, по которому я звоню, может получить звук. Lorenzo 7 лет назад 0
Ты хоть представляешь, в чем может быть вина? (отредактировал бы мой последний комментарий, но у меня недостаточно прав) Lorenzo 7 лет назад 0
@MariusMatutiae Хорошо, я записал как `eth0`, так и` tun0` с момента подключения смартфона к OpenVPN; Затем я вошел на SIP-сервер, позвонил на домашний телефон и через несколько секунд отключился. Lorenzo 7 лет назад 0
@MariusMatutiae Вывод очень длинный, может быть, было бы уместнее задать новый вопрос? Или я должен опубликовать это на pastebin? (извините, что сделал еще один дублирующий комментарий, я привык вводить новую строку после окончания разговора о концепции, но я не могу вспомнить, чтобы при комментировании он напрямую отправлял сообщение) Lorenzo 7 лет назад 0
@MariusMatutiae pastebin.com/RpJD9d53 (`eth0`) и pastebin.com/ydfWBAJe (` tun0`); Я начал звонить в 22:23:02 и принял звонок на ПК в 22:23:09. На мобильном телефоне не было слышно звука. Lorenzo 7 лет назад 0
@MariusMatutiae, это я должен поблагодарить вас :) на самом деле, я понял, что команда `iptables` не работает, поэтому я гуглил и нашел такую:` iptables -t nat -I POSTROUTING -o eth0 -s 10.8 .0.0 / 24 -j MASQUERADE`, который дает мне тот же результат, что и тот, который вы обновили, к сожалению. Так что до сих пор нет входящего звука. Мне было интересно, хотя, есть ли способ назначить мобильному телефону его собственный локальный IP-адрес, как если бы он был физически подключен к локальной сети, используя OpenVPN? Я не могу понять, как пакеты, поступающие с 192.168.1.1 и отправляющиеся на компьютер OpenVPN, должны знать, что они должны идти на мой мобильный телефон. Lorenzo 7 лет назад 0
@MariusMatutiae спасибо, я добавил в ОП вывод и несколько мыслей, которые у меня были. Lorenzo 7 лет назад 0

Похожие вопросы