SIP TLS

Краткое содержание:

1. FreesWitch требует агента.PEM -файл с правильными разрешениями выступать в качестве сервера TLS.

2. Безопасность транспортного уровня (TLS) – это протокол, используемый для защиты сообщений SIP.

3. TLS является эволюцией более раннего протокола SSL, используемого для шифрования веб -сайта.

4. Сертификаты и асимметричная криптография являются ключевыми компонентами TLS.

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

6. Симметричная и асимметричная криптография используется для шифрования и дешифрования данных.

7. TLS использует симметричную криптографию для аутентификации и асимметричной криптографии для шифрования объемных данных.

8. TLS можно использовать для надежного установления разговоров SIP по небезопасному Интернету.

9. FreesWitch поддерживает зашифрованную сигнализацию (SIP) с подписанными сертификатами и зашифрованным аудио/носителем (SRTP).

10. Freeswitch позволяет настройку порта для SIP в профиле SIP.

Вопросы:

1. Какой файл требуется FreesWitch для выступления в качестве сервера TLS?

Отвечать: FreesWitch требует агента.PEM -файл.

2. Почему важно иметь правильные разрешения для агента.пем?

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

3. Для чего используется TLS в SIP?

Отвечать: TLS используется для защиты сообщений SIP от перехвата.

4. В чем разница между TLS и SSL?

Отвечать: TLS является эволюцией SSL и используется как для веб-протоколов, так и для протоколов в реальном времени, таких как SIP.

5. Для чего используются сертификаты в TLS?

Отвечать: Сертификаты используются для аутентификации объектов.

6. Какова цель властей сертификата?

Отвечать: Сертификатные органы проверяют подлинность сертификатов.

7. Какие два типа криптографии используются в TLS?

Отвечать: Симметричная и асимметричная криптография.

8. Как работает симметричная криптография?

Отвечать: Данные зашифрованы и расшифрованы с использованием того же ключа.

9. Как работает асимметричная криптография?

Отвечать: Данные зашифрованы и расшифрованы с использованием открытого ключа и закрытого ключа.

10. Что TLS использует симметричную криптографию для?

Отвечать: TLS использует симметричную криптографию для аутентификации.

11. Что использует асимметричную криптографию TLS?

Отвечать: TLS использует асимметричную криптографию для шифрования объемных данных.

12. Можно ли использовать TLS для установления безопасных разговоров SIP по поводу небезопасного Интернета?

Отвечать: Да, TLS можно использовать для безопасных разговоров SIP по небезопасному Интернету.

13. Что поддерживает FreesWitch с точки зрения зашифрованной сигнализации?

Отвечать: FreesWitch поддерживает зашифрованную сигнализацию, известную как SIPS.

14. Что такое порт по умолчанию для SIPS?

Отвечать: Порт по умолчанию для SIPS – порт TCP 5061.

15. Что можно настроить в профиле SIP в FreesWitch?

Отвечать: Порт для SIP может быть настроен в профиле SIP в FreesWitch.

SIP TLS

Freeswitch требует только одного файла для выступления в качестве сервера TLS, и это агент.PEM -файл. Он содержит сертификат и ключ, который он будет использовать для прослушивания. Обратите внимание, что чрезвычайно важно, чтобы ваш агент.PEM (и, необязательно, Cacert.PEM) имеют разрешения на чтение для пользователя FreesWitch будут работать как. Это означает, что если вы используете -u freeswitch, вы хотите «chmod 640 Agent.Pem Cacert.pem “и” Chown Root.агент FreesWitch.Pem Cacert.пем “. Неправильные разрешения не позволят слушателю TLS должным образом вращаться. На ваших VARS.XML:

Понимание безопасности транспортного уровня (TLS)

В течение нескольких статей в блоге я’У упоминается некоторые из аспектов безопасности SIP. Доказывая это с аутентификацией SIP, я обсуждал использование ответных сообщений и заголовков аутентификации. Такая безопасность обеспечивается на уровне протокола. Другими словами, клиенты SIP и серверы обмениваются сообщениями, которые обеспечивают безопасность на уровне личности. Конечно, так как сам SIP-это текстовый протокол, нам нужно что-то, что защищает сообщения и их содержание от придумывания глаз. Входить Безопасность транспортного уровня (TLS).

TLS – это эволюция более раннего протокола под названием Защитный слой сокета (Сбл). SSL был разработан несколько лет назад Netscape (помните Netscape?) и использовался для шифрования данных, отправленных между веб -браузером и веб -сервером. Вы знали, что использовали SSL, когда содержалась адресная строка вашего браузера “https” и не “http.” Некоторые браузеры также отображают символ блокировки, когда использовался SSL.

Как и большинство других протоколов, используемых SIP, TLS контролируется Целевая группа по интернет -инженерии (IETF). Сначала TLS и SSL были’T все, что отличается друг от друга. Однако с момента своего первоначального определения в 1999 году TLS продолжает развиваться в высоко безопасный транспортный протокол как для веб-протоколов, так и для протоколов в реальном времени, таких как SIP.

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

Во -первых, сертификат – это форма цифрового идентификатора, которую предприятие использует для идентификации себя. Думайте об этом как о водителе’S лицензия для компонентов IP. Тем не менее, чтобы не допустить, чтобы противные люди создавали этих водителей’S лицензии, Сертификат власти (Калифорнийский) существуют, которые используются для проверки подлинности сертификата. Есть частные CAS, которыми управляет предприятие. Есть также общественные CAS, которые доступны через Интернет. Verisign является примером известного общественного CA.

Далее идет симметричная и асимметричная криптография. Оба имеют отношение к тому, как данные зашифрованы и незашифрованы. В случае симметричной криптографии данные зашифруются с помощью ключа. Это’S также незашифрован с тем же ключом. Таким образом, если у двух разных сущностей есть этот ключ, они могут отправлять зашифрованные данные вперед и назад, и никто без этого ключа не поймет, что они говорят. Сила симметричной криптографии заключается в том, что она быстро и использует минимальное количество обработки мощности. Слабость в том, что вам нужен безопасный механизм для обмена ключом.

Данные также зашифрованы с асимметричной криптографией, но в этом случае есть два ключа – общественный и частный ключ. Общественный ключ обычно содержится в сертификате объекта IP, и у всех, у кого есть этот сертификат, будет открытый ключ. Частный ключ хранится в секрете и никого не раскрывается. Эти два ключа работают вместе, чтобы зашифровать и расшифровать данные, отправленные на IP -соединение.

Данные, зашифрованные с помощью открытого ключа. Данные, зашифрованные с личным ключом, могут быть незашифрованными только с соответствующим открытым ключом. Эта форма шифрования известна как Криптография открытого ключа. Это требует большей мощности обработки, чем симметричная криптография, но создает безопасную ссылку данных, которую могут расшифровать только клиент и сервер.

Я написал, что TLS использует как симметричную, так и асимметричную криптографию. Он использует симметричную для аутентификации и асимметрично для шифрования объемных данных. В нашем случае, что объемные данные будут сообщениями SIP и ответами. Обратите внимание, что эти данные не включают фактический поток медиа, такой как G.711 или г.729. Что данные зашифрованы с помощью Безопасный протокол в реальном времени (SRTP) – блог на другой день.

Если вы все еще читаете, я приветствую ваше упорство. Это нелегко понять. Имейте в виду следующее, и все будет в порядке. Сертификаты используются для проверки подлинности клиентов и серверов. Сертификатные органы существуют, чтобы убедиться, что сертификаты не созданы. Общественные и частные ключи используются для шифрования сообщений, которые обмениваются между сущностями SIP. Это означает, что при TLS вы можете безопасно использовать небезопасный Интернет, чтобы установить безопасные разговоры SIP. Даже если ваши сообщения SIP перехвачены, они выиграли’ТО СДЕЛАЕТ ПОЛНОСТЬЮ, ПОТОМУ НЕ МОЖЕТ ПОСЕТИТЬ, что говорится.

SIP TLS

FreesWitch поддерживает как зашифрованную сигнализацию, известную как SIP, которые могут быть SSL или TLS с подписанными сертификатами, а также зашифрованные аудио/носитель, известный как SRTP. Типичная согласия состоит в том, чтобы иметь незашифрованный канал управления SIP на порту 5060 UDP (хотя стандарты также позволяют использовать также использование порта 5060 TCP), а также шифруемый SSL или шифрованный канал управления SIP SIP, известный как SIP на порту TCP 5061 . На приведенных ниже иллюстрациях изображен SIP как на порту 5060, и плит как на порту 5061 и порт (x). FreesWitch позволяет настроить этот порт в профиле SIP.

Данные RTP используют UDP, но порт, который использует RTP, является динамичным тем, что он переговоров в канале управления SIP. FreesWitch может быть настроен на использование конкретного диапазона портов для потоков RTP. В разделе 1 этой страницы мы рассмотрим анатомию подключения SIP и возможные конфигурации, чтобы вы могли выбрать, какая конфигурация лучше всего подходит для вашего сценария и соответственно настроить вашу систему FreeSwitch.

Анатомия подключения SIP

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

На рисунке 1 вы заметите, что действительно есть три отдельных соединения, одно TCP для управления, а два других – UDP для передачи аудио -потоков в переключатель и обратно. Канал управления облегчает ряд возможностей, но в отношении шифрования те, которые нас в первую очередь обеспокоены, – это цифры DTMF, набранные во время вызова, такие как банковский PIN -код или какой -то другой код доступа, который является личным и, что наиболее важно, частной информации. Со сценарием, изображенным на рисунке 1, любой в сети может нюхать и декодировать эти ценные данные.

Анатомия соединения SIPS

Ответ на эту проблему изображен на рисунке 2 и для шифрования канала SIP с помощью обертки SSL или TLS так, чтобы кто -нибудь, нюхающий пакеты на проводе, не может расшифровать данные в канале управления. Вы заметите, что на рисунке 2 мы изображаем это в порте 5061, но с помощью Freeswitch вы можете настройки его на любой конкретный порт, который вы желаете. Этот сценарий здесь по -прежнему оставляет пакеты для аудиоданте. Кто -то, нюхающий пакеты.

* Примечание: IP -телефоны могут рекламировать, что они поддерживают шифрование, но вы можете проверить спецификации, чтобы подтвердить, что они поддерживают как SSL, так и TLS, подписанные сертификаты.

Анатомия SIP и SRTP -соединения

На рисунке 3 вы заметите, что не только зашифрованы канал управления, но и потоки RTP также зашифруются и отправляются в виде SRTP. Таким образом, и только таким образом, весь ваш разговор достаточно защищен от подслушивающих. Это также важно, так как цифры DTMF также могут быть отправлены и в данных RTP (Inband). Наличие как SIP, так и SRTP -шифрования – ваш лучший вариант, когда дело доходит до того, чтобы ваши вызовы SIP были безопасными.

* Примечание: IP -телефоны могут рекламировать, что они поддерживают шифрование, вам нужно будет проверить спецификации телефонов, чтобы определить, поддерживает ли он SRTP. По этому ниже будет сказано больше, а также проблемы с совместимостью с определенными телефонами внизу этой страницы.

Возможности шифрования FreesWitch

Эта страница будет охватывать только шифрование TLS, SSL и SRTP.

Шифрование TLS, SSL и SRTP

FreesWitch поддерживает SIP через SSL и/или TLS, а также возможности шифрования SRTP. Неясно, будет ли Freeswitch шифровать видеопотоки, поскольку это не было проверено в лаборатории KJV, однако я подозреваю, что это будет. Если вы проводите тестирование, шифруя видео SRTP, во что бы то ни стало, добавьте свои результаты в вики.

ZRTP шифрование ZRTP теперь депрессируется и будет удален из документов

ZRTP – это возможность оппортунистического шифрования, которая может быть составлена ​​в FreesWitch. Смотрите страницу ZRTP для выполнения и дополнительной информации, относящейся к ZRTP.

Гибридное шифрование

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

На рисунке 4 вы заметите, что канал управления SIP от телефона к переключате. Важно понимать, что в этой ситуации управление SIP и RTP (аудио) данные не являются незашифрованными между IP -телефоном и FreesWitch. Следовательно, если ваш телефон SIP IP -телефон находится где -то за маршрутизатором NAT на кабельном модемом, а Freeswitch не стоит за этим маршрутизатором, а локальная сеть телефона и подключение к Интернету с Freeswitch полностью открыты, что означает, что кто -то может нюхать эти пакеты и получить ценную информацию.

Кроме того, данные RTP (аудио) между FreesWitch и удаленной конечной точкой, иллюстрированной как «Другие SIP -PBX», также не зашифрованы и могут быть перехвачены, однако канал управления для этого соединения зашифруется и, следовательно, достаточно безопасно. Если Freeswitch находился на той же локальной сети, что и телефон, возможность перехвата меньше, но аудиодата все еще способна перехватить.

На рисунке 5 вы заметите, что данные SIP и RTP с IP -телефона незашифрованы, в то время как данные SIP и RTP на другой SIP -PBX являются как SIP, так и SRTP зашифрованы. Эта опция будет шифровать как канал управления, так и аудиоданные для соединений между FreesWitch и другими конечными точками, которые поддерживают шифрование.

По -прежнему нужно понимать, что соединение от телефона к FreesWitch полностью способна перехватить пакет.

Выбор между вариантами шифрования

Существует множество вариантов шифрования для FreesWitch, как описано выше. TLSV1 шифрует все над соединением TCP; Это имеет недостаток, который может возникнуть дрожание или задержки из -за TCP. UDP, как правило, предпочтительнее RTP, и с использованием TLSV1 есть дополнительные накладные расходы на трафик. Наконец есть SSLV23; Это шифрует канал управления SIP через зашифрованное соединение TCP с использованием сертификатов SSL, но по умолчанию ничего не предоставляет для данных RTP. Информация о входе в систему и метаданные вызова передаются по каналу управления, поэтому, если это то, что вы заботитесь о защите этого, и не добавляет накладных расходов на данные RTP. Если вы хотите зашифровать сами голосовые данные (так что голосовые данные не могут быть поняты) их можно объединить с SRTP. SRTP включает шифрование данных RTP с незначительными накладными расходами на каждый из пакетов RTP UDP. Это имеет то преимущество, что данные вызовов зашифрованы, но все еще превышают UDP, поэтому практически не должно быть разницы с SRTP, так как в случае с ним. Ключ шифрования, используемый для SRTP, обменивается над каналом управления (который шифрует SSLV23), поэтому дает вам что -то из лучших в обоих мирах. Как правило, SSLV23 + SRTP является наиболее дружественным к брандмауэру/имеет наименьшее количество изменений для существующих установок. SSLV23 + SRTP также довольно проста в настройке на сервере FreesWitch и, скорее всего, наиболее поддерживаемый метод шифрования для большинства клиентов и SIP -телефоны, так что, как правило, должен быть там, где кто -то должен начать для шифрования данных вызовов.

О IP -телефонах и шифровании

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

  • Телефон может поддерживать SSL и/или TLS зашифровать SIP, то есть «SWIP».
  • Телефон может зайти так далеко, чтобы поддержать TLS с подписанными сертификатами.
  • Помимо этих предостережений, телефон может зайти настолько далеко, что поддерживает зашифрованные звуковые данные SRTP.
  • И последнее, но не менее важное: убедитесь, что IP -телефон поддерживает стандартный Шипы и/или шифрование SRTP. По сути, для производителя не слишком далека придумать метод шифрования с волосами, который работает только с их продуктами.

ПРЕДУПРЕЖДЕНИЕ: Проверьте спецификации и выполните свое исследование перед покупкой любого телефона SIP IP, который рекламирует себя как способную выполнять шифрование. Вы также можете проверить, есть ли какие -либо проблемы с версией прошивки SIP.

Ограничения реализации FreesWitch TLS/SSLV23 (FS-3877)

К сожалению, Lib _ Sofia Stack и Configuration Freeswitch имеет одно поведение (возможно, неожиданное) поведение, которое может вызвать трудно диагностировать проблемы шифрования. Когда клиент подключается к серверу, он создает зашифрованный TCP -канал, используемый для связи с сервером. В любое время, когда он звонит, регистрируется и т. Д., Это использует этот сеанс TCP. К сожалению, когда Freeswitch пытается общаться с клиентом, чтобы рассказать о входящем вызове, уведомлениях и т. Д., Он устанавливает второй TCP -канал с сервера к клиенту. Хотя это зашифровано, это может вызвать некоторые проблемы для некоторых конфигураций брандмауэра и для многих вариантов безопасности TLS/SSL в FreesWitch. Если Freeswitch не сможет установить этот канал, клиент сможет совершать звонки, но он не сможет получать звонки (или что -то еще, что происходит от сервера до клиента). Кроме того, многие функции TLS могут действовать неожиданно, поэтому направление важно учитывать. Например, TLS-Verify-Policy, установленная на «Out», приведет к тому, что FreesWitch попытается проверить сертификат клиента, когда он подключается к клиенту, поэтому, хотя клиент первоначально подключается к серверу, и это пропустит валидацию для вызовов от клиента Server->, FreesWitch проверит его. Кроме того, это может открыть дыры безопасности, например, установление политики в «в» для проверки входящих клиентов не будет проверять сертификат клиента, когда сервер подключается к клиенту, что позволит там произойти атака MITM. Такие вещи, как проверка предмета, также может быть сложным, особенно если Freeswitch действует как клиент. Например, проверка субъекта проверяет имя хоста, с которым FreesWitch подключается к общему имени сертификата, в то время как хорошая проверка безопасности не может быть сделана, когда сервер подключается к FreesWitch (как и в этой точке FreesWitch фактически пытается проверить IP -адрес с общим именем). Кроме того, цель проверки цели (убедившись, что когда FreesWitch подключается к серверу, его сертификат, который был выпущен для сервера, а не клиента, или наоборот) в настоящее время не поддерживается. Это позволяет атаковать MITM против сервера FreesWitch, используя сертификат клиента (или наоборот), но из -за подключения, идущего в обоих направлениях, в настоящее время не поддерживается целевая проверка (как входящее соединение может быть из сертификата сервера при подключении). Таким образом, в то время как Freeswitch’s Gentls _ Cert правильно назначает цель, которую в настоящее время не используется самим Freeswitch. Одним из решений, чтобы избежать этой дыры MITM, состоит в том, чтобы на данный момент выпускать клиентские сертификаты из другого CA.

Конфигурация

Freeswitch поддерживает шифрование трафика сигналов SIP через SSL и/или TLS. Конвенция состоит в том, чтобы запустить SIP на порту 5061 . Возможны более сложные конфигурации, однако они не будут рассмотрены в этой документации.

Вам понадобится следующее, чтобы компилировать FreesWitch с поддержкой шифрования TLS:

  • Установлен пакет Libssl-Dev (OpenSSL Development).

Если у вас нет установленного пакета Libssl-DEV, проблема будет профиль SIP, который содержит директивы на конфигурацию шифрования, указанные ниже на шаге 2, не сможет запустить.

Если вы собрали FreesWitch без установки этого пакета, не будет поддержки для шифрования, и вам нужно будет перекомпилировать его после установки пакета Libssl-Dev.

Для Debian Do Aptitude установить libssl-dev (на Lenny Install Libcurl4-openssl-dev), а затем компилируется.

Шаг 1 – Сгенерируйте сертификат CA (корень)

Для использования TLS/SSL вам нужны как минимум два сертификата: сертификат ROOT (CA) и сертификат для каждого сервера. Есть сценарий на // freeswitch/bin/gentls _ cert или в источнике тарбола /сценарии/джентльс _ cert Это помогает генерировать эти файлы. Предполагая, что название DNS вашего Freeswitch PBX – это УАБХ.Freeswitch.орг, с

./gentls_cert setup -cn pbx.Freeswitch.org -Alt dns: pbx.Freeswitch.орг -орг FreesWitch.орг

Это создаст сертификат CA и ключ вместе с каталогом CONF/SSL/CA и сертификатом в папке CONF/SSL.

[ Примечание: Имя, указанное для -CN и -ALT, должно быть таким же, как и название DNS вашей установки FreeSwitch, и используется в качестве имени регистратора на телефоне (по крайней мере, на Polycoms). ] Вы можете изменить строку «Дни = 2190» в файле CERT _. Однако, делая его слишком долго.

Шаг 2 – Сгенерируйте сертификат сервера

./gentls_cert create_server -cn pbx.Freeswitch.org -Alt dns: pbx.Freeswitch.орг -орг FreesWitch.орг

создает сертификат сервера на // freeswitch/conf/ssl/агент.пем. Этот файл содержит сертификат и закрытый ключ. Он должен содержать доменное имя в общем и альтернативном имени. Если вам нужно генерировать сертификаты для других серверов, используйте флаг -out для джентла _ cert, чтобы указать выходной сертификат/имя ключа и скопируйте его на удаленном сервере.

Чтобы настроить новый CA и создать новый сертификат под Windows Go здесь.

Для того, чтобы новый сертификат вступил в силу (единственный способ для его использования Freeswitch), FreesWitch должен быть перезапущен.

Примечание: Имя, указанное для -CN и -ALT, должно быть таким же, как и название DNS вашей установки FreeSwitch, и используется в качестве имени регистратора на телефоне (по крайней мере, на Polycoms). Это требуется для глаз (и, вероятно, тоже панголин).

Просмотрите свой сертификат

Вы можете просмотреть информацию о своем сертификате с помощью команды:

openssl x509 -noout -inform pem -ext -in/usr/local/freeswitch/conf/ssl/агент.пем

Шаг 3 – Конфигурация профиля Sofia

Freeswitch требует только одного файла для выступления в качестве сервера TLS, и это агент.PEM -файл. Он содержит сертификат и ключ, который он будет использовать для прослушивания. Обратите внимание, что чрезвычайно важно, чтобы ваш агент.PEM (и, необязательно, Cacert.PEM) имеют разрешения на чтение для пользователя FreesWitch будут работать как. Это означает, что если вы используете -u freeswitch, вы хотите «chmod 640 Agent.Pem Cacert.pem “и” Chown Root.агент FreesWitch.Pem Cacert.пем “. Неправильные разрешения не позволят слушателю TLS должным образом вращаться. На ваших VARS.XML:

Внимание: TLS отключен по умолчанию; Установить внутреннюю _ ssl _ enable и/или внешний _ ssl _ включить «true», чтобы включить.

Шаг 4 Конфигурация клиента

У всех клиентов должен быть установлен сертификат корневого сертификата CA, чтобы обеспечить безопасность. Без разрешения проверки цепочки (что сертификат сервера был выдан утвержденным CA) Атака MITM возможна против клиента. Сертификат CA – это CONF/SSL/CAFILE.PEM он содержит только сертификат, и клиенты используют его, чтобы гарантировать, что сертификат сервера выдан CA. Кроме того, вы можете захотеть (или придется в зависимости от устройства) установить сертификат клиента, выданный тем же CA. Вы можете сгенерировать сертификат клиента, используя команду:

./gentls_cert create_client -cn client1 -out client1

Это создаст клиент1.PEM (обратите внимание, что общее имя здесь не имеет значения, редко бы было разрешено сервер, чтобы проверить тему сертификата клиента, чтобы вы могли установить это на то, что вы хотите). Эта пара сертификата/ключей должна быть установлена ​​на клиенту (рекомендуется для каждого клиента для обеспечения безопасности), но не нужно оставаться на сервере, даже если вы хотите, чтобы сервер проверил сертификат клиента. Если клиент является еще одним сервером FreeSwitch, который клиент1.PEM, вы бы хотели переименовать в агент.пем. Примечание, если другой сервер FreeSwitch также будет использовать этот сертификат в качестве сервера, а не просто клиент, обязательно выполните приведенные выше шаги, используя команду Create _ Server для создания сертификата сервера.

Коммерческие сертификаты

Большинство коммерческих сертификатов веб -сервера должны работать на FreesWitch. Например, известно, что сертификаты Thawte SSL123 (их самый дешевый вариант) работают как минимум в одной установке. Если у вас есть сомнения относительно того, будет ли сертификат работать, вы должны приобрести сертификат только у компании, предлагающей 30-дневную политику возврата средств.

Несколько профилей TLS

Если у вас есть несколько профилей Sofia SIP, вы можете обнаружить, что вы можете включить TLS для каждого из профилей. Тем не менее, каждый может быть представлен третьим лицам, используя различную запись DNS. В этом случае просто создайте новый каталог под // freeswitch/conf/ssl/для каждой записи DNS . Затем поместите агента.PEM и Cafile.PEM в каждый из каталогов. Укажите каждый профиль в отдельный каталог, который содержит его конкретный агент.PEM -файл.

Устранение неполадок

Проблемы с TLSV1

Если вы выбрали эту конфигурацию в вашем профиле SIP:

Есть ряд GotChas и Snafus с TLS. TLS работает на TCP, а не UDP, поэтому убедитесь, что любые брандмауэры настроены на работу с TCP. Генерируйте надлежащий сертификат и убедитесь, что он загружен в телефон или ATA. Кроме того, убедитесь, что время настраивается правильно в вашей конечной точке, так как вы получите загадочные сообщения об ошибках «плохой сертификат», если время будет слишком далеко, и это не удастся правильно выполнить. (Например, сертификаты имеют «недопустимые раньше» и «Недостаточно после» атрибутов.) Если ваш телефон не зарегистрируется или не работает должным образом, вы можете рассмотреть возможность проверки списка взаимодействия, и/или документации по телефону и пересмотр прошивки. Если он все еще не работает должным образом, вы можете считать SSLV23 как запасной.

Проблемы с SSLV23

Если вы выбрали эту опцию конфигурации в вашем профиле SIP:

Это даст вам возможность шифровать данные. Безопасность аналогична безопасности с веб -серверами, можно проверить корни доверенных сертификатов, поддерживается аутентификация сертификатов клиента, могут быть подтверждены субъекты и даты сертификатов (некоторые из них зависят от поддержки клиента для функции). На самом деле это может быть тем, что вы хотите, и, учитывая, что несколько телефонов не поддерживают TLS, но выполните поддержку SSL, вы можете настроить соответствующим образом.

Если ваш профиль SIP не может запустить

Если вы попадете в CLI FreeSwitch и введите:

Вы можете обнаружить, что ваш профиль SIP, для которого вы настраивали настройки TLS/SSL, отсутствует. Если это так, вы, вероятно, упускаете пакет Libssl-Dev или агент.Файл PEM не на месте или имеет неправильные разрешения. Убедитесь, что пользователь FreeSwitch работает, как и разрешения на чтение в сертификатах и ​​ключах. Включение журнала Debug Sofia Tport в High поможет распечатать ошибки в отношении того, почему он не запускается должным образом. Обратитесь к своему распространению, чтобы установить пакет OpenSSL разработки. Это необходимо для кода, который выполняет шифрование в Freeswitch, чтобы быть составленным в двоичный файл. Включение более высокого уровня отладки в Софии (Sofia loglevel All 9, или Sofia loglevel Tport 9 обычно дают достаточно), а в консоли может помочь отладки и проблемы с рукопожатием.

Ошибка переговоров TLS «Нет подходящего шифра»

Если вы получите сообщение об ошибке «без сопоставления шифров», сначала проверьте, чтобы убедиться, что вы включили свой сертификат в свой агент.PEM -файл. Если вы все еще получаете ошибку, регенерируйте как ключ, так и сертификат и сделайте новый агент.PEM с новым ключом и сертификатом, затем попробуйте еще раз.

Дальнейшие шаги отладки

Если у вас все еще есть проблемы с запуск TLS, предложены следующие:

  • ) Установите Sofia loglevel на 9 ( < param name="log-level" value="9"/>) в AutoLoad _ Configs/Sofia.конфликт.XML
  • ) Установите FreeSwitch Console Loglevel для отладки (F8)
  • ) Перезагрузить мод _ sofia и просмотреть журналы
  • ) Если все выглядит нормально на стороне сервера, попробуйте использовать Softhones на основе FreesWitch или на основе FreesWitch, такие как FSClient или FSCOMM. Это позволит вам сделать то же самое на стороне клиента (включая привлечение к ним FS _ CLI, чтобы получить данные журнала), чтобы попытаться увидеть любые ошибки, которые может иметь клиент
  • ) Последний курорт поместите все журналы на Pastebin и попросите о помощи.

Использование FreesWitch в качестве клиента SSL/TLS

Freeswitch может общаться с другим сервером и действовать в качестве клиента SIP (он же используйте другой шлюз). Для этого у вас должно быть Cafile.PEM на клиенте в папке Conf/SSL с сертификатом CA. Вам также понадобится агент.Файл PEM (это может быть случайно сгенерированной парой общедоступных/частных ключей или действительный сертификат клиента) в той же папке, которая использовалась в качестве сертификата клиента.

Расширенные варианты TLS

Freeswitch поддерживает некоторые расширенные параметры TLS в настройках профиля см. В файлах конфигурации Sofia для получения подробной информации.

Быстрая настройка SSLV23 с SRTP

Быстрая установка в внутренний профиль, если внутреннее имя хоста вашего сервера – PBX.Freeswitch.орг:

./gentls_cert setup -cn pbx.Freeswitch.org -Alt dns: pbx.Freeswitch.орг -орг FreesWitch.орг ./gentls_cert create_server -cn pbx.Freeswitch.org -Alt dns: pbx.Freeswitch.орг -орг FreesWitch.орг

Если ваши клиенты поддерживают/проверяют сертификат сервера, скопируйте сертификат CA conf/ssl/cafile.PEM своим клиентам.

Попросите ваших клиентов подключиться к FreesWitch на порту 5061 вместо 5060 и включить TLS (и, если возможно, SRTP) на клиенту. Если ваш клиент находится в FreeSwitch Установка Transport = TLS под TLS-Bind-Params в дополнение к параметрам включения выше с сервера. Наконец, на вашем сервере FreeSwitch для вызовов, связанных с клиентом, вы захотите позволить им пройти через SRTP, установив RTP _ Secure _ Media = true для вызова (см. Шаг 5 ниже для получения более подробной информации о том, как сделать это более программатически для клиентов, которые только поддерживают это).

Перезагрузите ваш сервер FreesWitch (или перезагрузить MOD _ SOFIA) и пусть ваш клиент подключится, и вы сможете совершать и получать безопасные вызовы! Чтобы улучшить безопасность, проверьте полные параметры TLS и включить проверку сертификатов (также для остановки MITM).

Шаг 5 – Защита каналов RTP (необязательно)

Вызовы, которые происходят с телефона. Проверьте глобальное расширение. Есть раздел, прокомментированный, что потребует SRTP на исходящей ноге, если входящая нога зашифрована. Включение этого будет проблематично с большинством ITSP, поскольку они не поддерживают TLS.

Для вызовов, которые происходят из (или проходят через) FreesWitch и прекращаются на пользовательском/ конечной точке (E.г., Вызовы по телефону), следующее изменение позволит SRTP, если конечная точка зарегистрирована в TLS. Обратите внимание, что это действительная конфигурация для регистрации в TLS, но не требует SRTP. Это отключает эту действительную опцию конфигурации для пользователя/ конечных точек. Это также потребует дальнейшей уточнения для поддержки ZRTP на пользователях/ конечных точках, которые соединяются с TLS. В этом случае лучшим подходом будет установить что -то на запись в каталоге пользователя, в котором указывается, какое шифрование RTP для поддержки. (Другими словами, есть причина, по которой это не настройка по умолчанию.)

РЕДАКТИРОВАТЬ Conf/Directory/Default.XML и изменить набрать Param to:

Почему это хорошая идея

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

SRTP сама по себе без TLS не является безопасным, так как ключи обмениваются между двумя конечными точками в чистоте над SIP, что небезопасно без TLS или SSL.

Смотрите страницу Secure RTP для развертывания SRTP.

Обратите внимание, что параметр sip_secure_media больше не реализован, и вам следует установить rtp_secure_media

Для полного безопасного соединения (сигнализация + носитель) используйте TLS + SRTP. TLS без SRTP обеспечивает SIP. SRTP без TLS на самом деле не защищает RTP!

Шаг 6 – DNS NAPTR & SRV Records (необязательно)

Настройка DNS NAPTR и SRV для TLS

Это не требуется, так как TLS будет функционировать без него, но это рекомендуется. Если вы собираетесь настроить TLS, вы можете потратить время, чтобы настроить правильные DNS SRV и NAPTR Records.

Вот пример записей NAPTR, которые вам понадобятся (сделайте субтитирование для &laquo;домена&raquo;.com “по мере необходимости):

домен.компонент. В NAPTR 10 0 “S” “SIPS+D2T” “” _SIPS._tcp.домен.компонент.
домен.компонент. В NAPTR 20 0 “S” “SIP+D2T” “” _SIP._tcp.домен.компонент.
домен.компонент. В NAPTR 30 0 “S” “SIP+D2U” “” _SIP._UDP.домен.компонент.

Если вы настраиваете с -енбл-STCTP и загрузили SCTP на Linux, вы можете добавить эту запись:

домен.компонент. В NAPTR 10 0 “S” “SIPS+D2S” “” _SIP._sctp.домен.компонент.

Тогда вы захотите настроить эти записи SRV в дополнение к вышеуказанному NAPTR:

_sips._tcp.домен.компонент. В SRV 10 0 5061 SIP.домен.компонент.
_глоток._UDP.домен.компонент. В SRV 10 0 5060 SIP.домен.компонент.
_глоток._tcp.домен.компонент. В SRV 10 0 5060 SIP.домен.компонент.

Если вы настраиваете с -енбл-STCTP и загрузили SCTP на Linux, вы можете добавить эту запись:

_глоток._sctp.домен.компонент. В SRV 10 0 5060 SIP.домен.компонент.

Пример: телефоны SNOM в полной мере чтят как NAPTR, так и SRV, как и Sofia-SIP на исходящих звонках, происходящих из FreesWitch.