Jump to content
Калькуляторы

Подключение удалённых сотрудников к АТС

Есть корпоративная АТС (около 30 абонентов, возможно увеличение на порядок) на Астере. Что рекомендуют Best Practices на тему подключения удаленных сотрудников к ней? Выставлять её в инет тупо фаерволлом? Через SBC? Или ходить на неё через VPN?

Пока интересуют только вопросы безопасности.

Share this post


Link to post
Share on other sites
58 минут назад, dr Tr0jan сказал:

Есть корпоративная АТС (около 30 абонентов, возможно увеличение на порядок) на Астере. Что рекомендуют Best Practices на тему подключения удаленных сотрудников к ней? Выставлять её в инет тупо фаерволлом? Через SBC? Или ходить на неё через VPN?

Пока интересуют только вопросы безопасности.

Я бы сделал через VPN

Share this post


Link to post
Share on other sites

Через SBC кошернее.

Через VPN в принципе тоже нормально, только нужно автоподключение и маршруты настроить.

Через FW будет хуже всего, в плане безопасности.

Share this post


Link to post
Share on other sites

А безопасность какого плана?
Просто чтобы аккаунт не хакнули и не назвонили в Зимбаве или нужно шифрование с вашей корпоративной АТС?
Если у вас нет шифрования то весь UDP трафик SIP идет в открытом виде от конечных клиентов, его перехватить и восстановить можно..

Share this post


Link to post
Share on other sites

Интересуют векторы атаки и проблемы.

Из атак вижу брут/воровство логинов/паролей. DoS.

Из проблем - возня с directmedia.

Что ещё может быть?

38 minutes ago, MobileOneWiFi said:

Просто чтобы аккаунт не хакнули и не назвонили в Зимбаве

Это необходимо в первую очередь.

38 minutes ago, MobileOneWiFi said:

Если у вас нет шифрования то весь UDP трафик SIP идет в открытом виде от конечных клиентов, его перехватить и восстановить можно..

SIP как раз шифровать можно путём SIPS, насколько я знаю. С RTP всё немного сложнее, насколько я понимаю. Но подслушивание разговора не считаю за проблему в рамках обсуждаемой темы.

Share this post


Link to post
Share on other sites

Если так, лайтово, то ставьте нестандартый порт и сложные пароли, этого будет достаточно.
Подборы все равно будут - каждые несколько секунд к вам будут ломиться.
По IP адресам смысла блокировать нет - все подборы будут идти с разных адресов, с разных хостеров со всего мира.
А клиенты у вас будут какие?
Если десктопные или IP телефоны, то можно и впн, но опять таки, будут ломиться и на впн, впн это больше от прослушек.
Если клиенты мобильные, то смысла в впн нет - он еще больше будет сажать батарейку вместе с клиентом.

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

Share this post


Link to post
Share on other sites
3 часа назад, MobileOneWiFi сказал:

будут ломиться и на впн, впн это больше от прослушек.

На IKE не будут.

 

11 часов назад, dr Tr0jan сказал:

SIP как раз шифровать можно путём SIPS

Поддержка этого добра в железных аппаратах все еще сырая...Поликом вон до сих пор не все железки адаптировал. Плюс, у каждого вендора свое, особенное видение требований к сертификату - этому SAN подавай, это wildcard не понимает, Yealink в последних аппаратах хочет SHA2, да вот для старых прошивки не торопится обновить, а их жизнь к SHA2 не готовила...

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
17 hours ago, MobileOneWiFi said:

А клиенты у вас будут какие?

Любые. Преимущественно десктоп и мобила.

 

17 hours ago, MobileOneWiFi said:

будут ломиться и на впн, впн это больше от прослушек.

В ВПНе двухфактора и TLS чуть ли не из коробки, пущай перебирают.

 

17 hours ago, MobileOneWiFi said:

Если клиенты мобильные, то смысла в впн нет - он еще больше будет сажать батарейку вместе с клиентом.

На батарейку пофиг (это первоочередное). Кстати, непонятно зачем сажать батарейку - для отправки кип-элайвов нужно много ресурсов?

 

14 hours ago, jffulcrum said:

Поддержка этого добра в железных аппаратах все еще сырая...

Да уж... Логично. :(

 

14 minutes ago, Dagobert said:

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

Тоже идея, спасибо.

Share this post


Link to post
Share on other sites

запускающим телефонию через 4G через VPN  нужно переодически проворачивать яйца через блендер и мясорубку

 

Share this post


Link to post
Share on other sites
27 минут назад, dr Tr0jan сказал:

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

Много.
По сути у вас телефон должен быть всегда онлайн, чтобы сип регу слать, и еще впн держать.
В айфоне такое вообще невозможно будет сделать, т.к. если экран у айфона потухнет, то iOS прибьет все приложения - и впн и сипклиента, хотите вы этого или нет.

Нет, если у вас не стоит задача дозваниваться на ваших удаленных сотрудников, то тогда все ок.
Т.е. вы не сможете им позвонить, они только смогут звонить, односторонняя связь типа.

 

 

19 минут назад, LostSoul сказал:

запускающим телефонию через 4G через VPN  нужно переодически проворачивать яйца через блендер и мясорубку 

:))

Share this post


Link to post
Share on other sites

Ничего нет сложного к любой звонилке с открытым исходным кодом push   приделать. Я раньше думал что плптный аккаунт разработчика нужен, нет даже это не надо

Share this post


Link to post
Share on other sites
30 минут назад, LostSoul сказал:

Ничего нет сложного к любой звонилке с открытым исходным кодом push   приделать

Зачем в стандартной сипзвонилке пуш?
И куда его приделывать?
Стандартная сипзвонилка регится на сипсервер и шлет туда постоянно регистрационные пакеты.
Если вы приделываете пуш, то к чему вы его приделаете?
Как сипсервер поймет что звонилка ушла в сон, он же ждет пакеты от клиента.
Т.е. нужен еще один сервер или сервер с пушем вместо старого.
Я сейчас про схему со стандатным пушем от Гугла и Эпла - там вам точно нужно быть разработчиком.
Помимо пуша должен быть еще сервер, с которым этот пуш взаимодействует, там же логика звонка совсем другая будет.
т.е. я что хочу сказать - нельзя просто взять и переделать приложение чтобы оно работало со стандартным сипсервером с пушем, нет такого.

Другое дело что есть опенсурс, которые делают свои пуш сервисы.
Ну это типа как например их делал Фейсбук.
Ну то есть нормально они не будут работать :)
Но что-то от пуша там будет, но также работать как от гугла и Эпла это естественно никогда не будет.

 

Share this post


Link to post
Share on other sites
22 минуты назад, MobileOneWiFi сказал:

Если вы приделываете пуш, то к чему вы его приделаете?

К диалплану. Регистрации андроид слать не дает , уводит в сон

 

25 минут назад, MobileOneWiFi сказал:

Как сипсервер поймет что звонилка ушла в сон, он же ждет пакеты от клиента.

Никак . Она будет в неведении. Главное чтоб перед вызовом клиента был пуш на пробуждение направлен. И звонилка бодрячком включилась и регистрацию освежила

 

27 минут назад, MobileOneWiFi сказал:

Я сейчас про схему со стандатным пушем от Гугла и Эпла - там вам точно нужно быть разработчиком

У гугла точно не нужно. Платный аккаунт нужен для публикации поиложения в маркет.  Для отправки пушей через gcm приложению , установленному с другого репозитария или сайта требуется только бесплатная регистрация в firebird 

Share this post


Link to post
Share on other sites
30 минут назад, MobileOneWiFi сказал:

Помимо пуша должен быть еще сервер, с которым этот пуш взаимодействует

Да.   asterisk сервер. Одна табличка в нем добавляется , какой номер экстеншена какому номеру сессии в гугл gcm соответсвует.

Номер сессии этот звонилка получает при подписке на пуши и как дополнительный заголовок в register передает.

А в диалплане входящего звонка смотрит в эту табличку и шлет http post запрос в gcm  в соответсвующую сессию, что давай вася wake up

Share this post


Link to post
Share on other sites
53 минуты назад, MobileOneWiFi сказал:

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

Вы мне анекдот про горбачева рабочего и водку на заводе напоминаете

Share this post


Link to post
Share on other sites

Интересный костыль.
И как работает?
На iOS тоже?

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

Share this post


Link to post
Share on other sites
1 час назад, MobileOneWiFi сказал:

На iOS тоже?

у меня нет iPhone , не могу ничего сказать, не занимаюсь этой экосистемой.

 

Вот вариант для XMPP ( jabber )  который я уже запустил и он работает

 

https://github.com/iNPUTmice/p2

 

принцип работы примерно такой - заходим через аккаунт гугл в firebird console .  создаем приложение, получаем google applicationin id ,    sender id ,   и application key ( private )

application id и sender id  нужно будет вбить как константы в приложение .  на основе этих двух констант а так же уникального google secure id для каждого аппарата ,  в gcm направляется запрос и получается token.

Этот token клиент xmpp сообщает xmpp push proxy ( серверу нашему ) ,  а тот с помощью своего приватного application key   извлекает session id  ,  и заносит к себе в табличку.

 

дальше когда xmpp серверу надо что-то послать уснувшему клиенту , то он пинает гугл , направляя wake up запрос на соответствующую session.

 

так вот,  для подобного использования Firebird  достаточно бесплатного тарифного плана.

 

 

 

 

 

Share this post


Link to post
Share on other sites

@LostSoul, ты лучше за VoIP over VPN over LTE расскажи. :)

А то я в другой задаче L2 over MPLS over GRE over LTE строю. Там хоть и голос, но не SIP. :-/

Edited by dr Tr0jan

Share this post


Link to post
Share on other sites
9 часов назад, MobileOneWiFi сказал:

а где связка с астериском?

Интеграция в  asterisk в статьях про push для SIP  ( которых тоже миллион примеров ).

Но на механизм работы push proxy и порядок взаимодействия между сервером приложения ( sip или xmpp ) , push proxy на нем запущенном , клиентским приложением на телефоне и службами google в гугле , замена xmpp на sip или на любой иной сессионный протокол никак не влияет.

 

Вот пример настройки push proxy в диалплане для Zoiper ( в данном случае предлагается дергать proxy запущенный у них,  так как в версии приложения, собранной для  google play уже прописаны их google application id и sender id )  , но если пересобрать свой apk пакет, то можно использовать push proxy на своем asterisk сервере .

 

https://www.zoiper.com/en/tutorials/push-notifications

 

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

 

Вот коммит, добавляющий push через apns  в исходники клиента linphone

https://gitlab.linphone.org/BC/public/linphone-iphone/commit/7380d4099e8cd491837874b2049c7bb41492d4e2

 

вот описание настройки серверной и push части для linphone при организации самостоятельного push proxy

 

https://wiki.linphone.org/xwiki/wiki/public/view/Flexisip/Configuration/Push notifications/

 

пример для apple
 

Цитата


Apple

Make the authentication certificates

Apple push authentication service authenticates the nodes which are authorized to send push notification by using client TLS certificates. Following instructions

  1. On macOS, open Keychain Access > Certificate Assistant > Request a certificate from a Certificate Authority. Enter your email and check "Saved to disk" box (this file will be deleted soon).
  2. Connect to Apple developer website and ask for an Apple Push Notification Service SSL certificate (either SandBox or Production)
  3. Select your application in the list and select the file you generated earlier when a CSR file is requested. Finalize the procedure.
  4. Now, you must export your certificate (named "Apple Development iOS Push Services: <bundle-id>"), including the private key from Keychain Access, to p12 format.
  5. Then, you need to convert your p12 certificate into PEM format. The PEM certificate MUST NOT be protected by a password. OpenSSL utilities may be used for such conversion:
    • for Sandbox certificates: openssl pkcs12 -nodes -in <generated-file>.p12 -out <bundle-id>.dev.pem
    • for Production certificates: openssl pkcs12 -nodes -in <generated-file>.p12 -out <bundle-id>.prod.pem

 

В общем, все достаточно просто.

 

 

5 часов назад, dr Tr0jan сказал:

А то я в другой задаче L2 over MPLS over GRE over LTE строю. Там хоть и голос, но не SIP. :-/

тут все нормально.

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

например l2tp  ( хендшейк через TCP , да еще и ipsec хендшейк перед этим .  то есть для нормального открытия сесиии надо чтоб пакетов 6 минимум без потерь туда-обратно пробежало иначе жесткое подвисание)  или особые маньяки openvpn через tcp запускают , или какой нибудь там sstp через https.    и там полные вилы с перепосылкой потеряных кадров и.т.п.

 

SIP  использует rtp и ориентирован на то, что в случае выпадания пакета никто за ним не бегает, и повторно не пересылает, типа звук выпал на мгновение и ладно.    А в случае с vpn с гарантированной доставкой ( с отслеживанием номеров последовательности пакетов, их пересборкой в нужном порядке и.т.п. )  связь просто встает колом.

 

Share this post


Link to post
Share on other sites
4 часа назад, LostSoul сказал:

Интеграция в  asterisk в статьях про push для SIP  ( которых тоже миллион примеров ).

Покажите плз, я не нашел.
Чтобы было так как вы говорите - берем стандартный Астер, добавляем скриптик, берез стандартную звонилку, тоже добавляем что-то и вуаля - пуш работает.
Я реально на нашел..
 

 

4 часа назад, LostSoul сказал:

Вот коммит, добавляющий push через apns  в исходники клиента linphone

https://gitlab.linphone.org/BC/public/linphone-iphone/commit/7380d4099e8cd491837874b2049c7bb41492d4e2

 

вот описание настройки серверной и push части для linphone при организации самостоятельного push proxy

 

https://wiki.linphone.org/xwiki/wiki/public/view/Flexisip/Configuration/Push notifications/

Здесь все заточено на их сервер FlexSip:

PushNotification module allows Flexisip to wake a liblinphone-basd application up when a chat message or call invite cannot be delivered because the application is unavailable.

 

4 часа назад, LostSoul сказал:

Вот пример настройки push proxy в диалплане для Zoiper ( в данном случае предлагается дергать proxy запущенный у них,  так как в версии приложения, собранной для  google play уже прописаны их google application id и sender id )  , но если пересобрать свой apk пакет, то можно использовать push proxy на своем asterisk сервере .

 

https://www.zoiper.com/en/tutorials/push-notifications

Здесь говорится об Windows phone 8 и сама статья старая...

 

4 часа назад, LostSoul сказал:

А в случае с vpn с гарантированной доставкой ( с отслеживанием номеров последовательности пакетов, их пересборкой в нужном порядке и.т.п. )  связь просто встает колом.

На PPTP  впн такого не наблюдал...
PPTP  вообще встроен во многих IP телефонах и VOIP шлюзах

 

4 часа назад, LostSoul сказал:

 

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

Вы привели кусок, где описывается как сделать сертификат для пуша.
И там написано:
Connect to Apple developer website and ask for an Apple Push Notification Service SSL certificate (either SandBox or Production)


т.е. вроде как подразумевается что есть доступ в девелопер консоль.
Кстати у эпла девелопер стоит около 120$ в год, а у гугла всего 50$ одноразово.

 

 

Share this post


Link to post
Share on other sites
10 минут назад, MobileOneWiFi сказал:

Я реально на нашел..

Ну если ваш уровень пользования компьютером "домохозяйка" , то  надо на компьютерные курсы записаться.

 

 

11 минут назад, MobileOneWiFi сказал:

Здесь все заточено на их сервер FlexSip:

какая разница какой push proxy использовать? делает он одно и тоже , наиболее удачно из того что на глаза попадалось в первой статье про xmpp написано.

 

 

12 минут назад, MobileOneWiFi сказал:

Здесь говорится об Windows phone 8 и сама статья старая...

может быть, но суть не меняется ни для windows ни для android ни для apple.

 

 

 

13 минут назад, MobileOneWiFi сказал:

т.е. вроде как подразумевается что есть доступ в девелопер консоль.
Кстати у эпла девелопер стоит около 120$ в год, а у гугла всего 50$ одноразово.

Для входа в developer console  с обычной учетной записью ( тот же что для iTunes )  не требуется ничего кроме обычной учетной записи.

Платный тарифный план за те самые доллары , требуется если вы хотите публиковать приложения в Itunes и Google Play , вертифицировать номера телефонов средствами google и прочие дополнительные платные услуги.

 

Share this post


Link to post
Share on other sites
1 час назад, LostSoul сказал:

Ну если ваш уровень пользования компьютером "домохозяйка" , то  надо на компьютерные курсы записаться.

 

1 час назад, LostSoul сказал:

какая разница какой push proxy использовать? делает он одно и тоже , наиболее удачно из того что на глаза попадалось в первой статье про xmpp написано.

Станлартной реализации нет для Астериска - все пилят свои костыли - прокси.
Например на профильном русскоязычном форуме:

Re: SoftPhone + iPhone

Сообщение ded » 24 мар 2020, 13:12

Судя по этому вопросу вы не до конца понимаете механизм push. И ваша просьба - это рецепт "волшебного порошка", типа - "дайте волшебный порошок, я посыплю, и всё у меня заработает. Или подскажите где достать волшебный порошок."!
Я посоветую самостоятельно изучать проблемы и их причины, основываясь на мировом опыте.
Я стараюсь именно так делать.

 

https://forum.asterisk.ru/viewtopic.php?f=3&amp;t=17272&amp;p=92568&amp;hilit=push#p92568

 


На англоязычных ищут за деньги кто бы это им сделал и т.д.

Т.е. что я хочу сказать - нет стандартного решения - включил и поставил.
Об этом речь..

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now