...
| Информация |
|---|
Если к user-interface привязан sip profile с включенным игнорированием OPTIONS, то при получении OPTIONS от зарегистрированных абонентов ESBC будет обрабатывать эти запросы и отвечать 200 OK. Если OPTIONS приходят не с зарегистрированных абонентов, то такие запросы игноригуютсяигнорируются. |
Настройка медиапрофилейЯкорь media_profile media_profile
| media_profile | |
| media_profile |
Использование медиапрофилей позволяет гибко управлять типом медиаданных путем фильтрации медиасекций в SDP, транкодированием транскодированием аудио и видео, шифрованием RTP потока, контролем сессии по наличию RTP-потока.
Медиапрофили используются в абонентских интерфейсах, транках и транк-группах. Медиапрофиль, используемый для транка, входящего в транк-группу, переопределяет настройки медиа профиля медиапрофиля, используемого в транк-группе.
...
По умолчанию ESBC работает в режиме проксирования медиатрафика без использования транскодирования. Список паттернов кодеков, доступных для проксирования через ESBC, задается командой:
| Блок кода |
|---|
codec allow {all | <CODEC_PATTERN> [<PT>]} |
...
1. Запретить использование видео для транка Trunk2транка TRUNK_2.
| Блок кода |
|---|
vesbc# configure vesbc(config)# esbc # Содать медиа профильмедиапрофиль для транка Trunk2 TRUNK_2 vesbc(config-esbc)# media profile FOR_TRUNK_2 # Запретить использование всех видео кодеков vesbc(config-esbc-media-profile)# no codec allow H26 vesbc(config-esbc-media-profile)# no codec allow H261 vesbc(config-esbc-media-profile)# no codec allow H263 vesbc(config-esbc-media-profile)# no codec allow VP vesbc(config-esbc-media-profile)# exit # Привязать медиа профильмедиапрофиль к транку vesbc(config-esbc)# trunk sip TRUNK_2 vesbc(config-esbc-trunk-sip)# media profile FOR_TRUNK_2 vesbc(config-esbc-trunk-sip)# do commit vesbc(config-esbc-trunk-sip)# do confirm |
В результате конфигурация медиа профиля медиапрофиля будет выглядеть следующим образом:
...
В данном примере, для транка Trunk1 TRUNK_1 не требуется использование отдельного медиапрофиля, т. к. при вызовах, поступающих в Trunk1 TRUNK_1, и, маршрутизируемых в Trunk2 TRUNK_2, все видеокодеки из SDP будут удалены в соответствии с медиапрофилем используемом для транка Trunk2, используемым для транка TRUNK_2.
Для вызовов поступающих в Trunk2 все видеокодеки из SDP будут удалены вне зависимости от направления маршрутизации.
2. Запретить использование кодеков G729 и G726 для транка Trunk1TRUNK_1.
| Блок кода |
|---|
vesbc# configure vesbc(config)# esbc # Содать медиа профильмедиапрофиль для транка Trunk1 TRUNK_1 vesbc(config-esbc)# media profile FOR_TRUNK_1 # Запретить использование кодеков G729 и G726 vesbc(config-esbc-media-profile)# no codec allow G729/ vesbc(config-esbc-media-profile)# no codec allow G72 vesbc(config-esbc-media-profile)# exit # Привязать медиамедиапрофиль профиль к транку vesbc(config-esbc)# trunk sip TRUNK_1 vesbc(config-esbc-trunk-sip)# media profile FOR_TRUNK_1 vesbc(config-esbc-trunk-sip)# do commit vesbc(config-esbc-trunk-sip)# do confirm |
В результате конфигурация медиа профиля медиапрофиля будет выглядеть следующим образом:
| Блок кода |
|---|
media profile FOR_TRUNK_1
codec allow AMR
codec allow CLEARMODE
codec allow CN
codec allow G722/ 9
codec allow G728 15
codec allow GSM 3
codec allow H26
codec allow H261 31
codec allow H263 34
codec allow ILBC
codec allow L16/44100 11
codec allow L16/44100/2 10
codec allow OPUS
codec allow PCMA 8
codec allow PCMU 0
codec allow SPEEX
codec allow T38 t38
codec allow VP
codec allow telephone-event
exit |
В данном примере в транк Trunk1 TRUNK_1 приходит INVITE c SDP Offer1, в котором наиболее приоритетным кодеком является G729, а также указан кодек G726, но т. к. настройками медиа профиля медиапрофиля FOR_TRUNK_1 данные кодеки запрещены, то в транк Trunk2 TRUNK_2 будет отправлен SDP Offer2 без данных кодеков. UA Trunk2 TRUNK_2 выбирает в качестве приоритетного кодек PCMA (SDP Answer2), и в результате ESBC отправляет в SDP Answer1 наиболее приоритетный кодек из SDP Offer1 (кроме G729) - PCMA.
3. Разрешить использование кодека QCELP для обоих транков (в дополнение к паттернам по -молчаниюумолчанию).
| Блок кода |
|---|
vesbc# configure vesbc(config)# esbc # Содать медиамедиапрофиль профиль для использования в обоих транках vesbc(config-esbc)# media profile FOR_TRUNKS # добавитьДобавить паттерн для кодека QCELP vesbc(config-esbc-media-profile)#codec allow QCELP vesbc(config-esbc-media-profile)# exit # Привязать медиа профильмедиапрофиль к обоим транкам vesbc(config-esbc)# trunk sip TRUNK_1 vesbc(config-esbc-trunk-sip)# media profile FOR_TRUNKS vesbc(config-esbc-trunk-sip)# exit vesbc(config-esbc)# trunk sip TRUNK_2 vesbc(config-esbc-trunk-sip)# media profile FOR_TRUNKS vesbc(config-esbc-trunk-sip)# exit vesbc(config-esbc)# do commit vesbc(config-esbc)# do confirm |
В результате конфигурация медиа профиля медиапрофиля будет выглядеть следующим образом:
| Блок кода |
|---|
media profile FOR_TRUNKS codec allow AMR codec allow CLEARMODE codec allow CN codec allow G72 codec allow G722/ 9 codec allow G728 15 codec allow G729/ 18 codec allow GSM 3 codec allow H26 codec allow H261 31 codec allow H263 34 codec allow ILBC codec allow L16/44100 11 codec allow L16/44100/2 10 codec allow OPUS codec allow PCMA 8 codec allow PCMU 0 codec allow QCELP codec allow SPEEX codec allow T38 t38 codec allow VP codec allow telephone-event exit |
В данном примере в транк Trunk1 TRUNK_1 приходит INVITE c SDP Offer1, в котором содержится кодек QCELP, и т. к. настройками медиа профиля медиапрофиля FOR_TRUNKS этот кодек разрешен, то он будет передаваться SDP Offer2, отправляемый в транк Trunk2TRUNK_2. UA Trunk2 TRUNK_2 выбирает кодек QCELP, и в результате он будет согласован в SDP Answer1.
4. Разрешить использование только кодека PCMA для Trunk1TRUNK_1.
| Блок кода |
|---|
vesbc# configure vesbc(config)# esbc # Содать медиа профильмедиапрофиль для транка Trunk1 TRUNK_1 vesbc(config-esbc)# media profile FOR_TRUNK_1 # Удалить все паттерны vesbc(config-esbc-media-profile)# no codec allow all # Добавить паттерн только для кодека PCMA vesbc(config-esbc-media-profile)# codec allow PCMA 8 vesbc(config-esbc-media-profile)# exit # Привязать медиа профильмедиапрофиль к транку vesbc(config-esbc)# trunk sip TRUNK_1 vesbc(config-esbc-trunk-sip)# media profile FOR_TRUNK_1 vesbc(config-esbc-trunk-sip)# do commit vesbc(config-esbc-trunk-sip)# do confirm |
В результате конфигурация медиа профиля медиапрофиля будет выглядеть следующим образом:
| Блок кода |
|---|
media profile FOR_TRUNK_1
codec allow PCMA 8
exit |
В данном примере в транк Trunk1 TRUNK_1 приходит INVITE c SDP Offer1 с набором кодеков. Т. к. настройками медиа профиля медиапрофиля FOR_TRUNK_1 запрещены все кодеки кроме PCMA, то в транк Trunk2 TRUNK_2 будет отправлен SDP Offer2, содержащий только кодек PCMA.
...
Эта возможность позволяет:
- Гибко гибко справляться со сложными сетевыми соединениями и широким спектром медиакодеков;
- Оптимизировать оптимизировать доступную полосу пропускания, принудительно используя различные кодеки сжатия;
- Нормализовать нормализовать трафик в сети предприятия, используя один кодек;
- Заключать заключать соглашения о взаимодействии между сетями VoIP для использования одобренных кодеков.
ESBC предоставляет возможности транскодирования на границе сети вместо использования ресурсов сети предприятия для тех же функций.
Список кодеков, поддерживаемых в режиме транскодирования:
Аудиокодеки | Видеокодеки AMR | |||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AMR | AMR-WB |
G722 | G722
| G7221-24 |
| G7221-32 | G7221C-24 | G7221C-32 | G7221C-48 | G726-16 | G726-24 | G726-32 | G726-40 | G729 | GSM | ILBC | L16-MONO | OPUS | PCMA | PCMU | SPEEX-NB | SPEEX-UWB | SPEEX-WB | H263-1998 | H264 | VP8 | VP9 |
Поддержка кодеков для транскодирования осуществляется командами:
| Блок кода |
|---|
codec {audio | video | image} {all | <CODEC>}
no codec {audio | video | image} {all | <CODEC>} |
<CODEC> – — название кодека. Указывается из списка поддержанных для транскодирования кодеков.
all - — включает транскодирование всех доступных кодеков заданного типа медиаданных.
...
- Offer SDP фильтруется согласно разрешённым кодекам на плече A.
- Offer SDP фильтруется согласно разрешённым кодекам на плече B.
- Если в медиапрофиле на плече А включен транскодинг, и во входящем SDP присутствуют кодеки из списка разрешенных, то в конец Offer SDP добавляются недостающие кодеки, транскодинг которых включен в media profile на плече B.
- Answer SDP фильтруется согласно разрешённым кодекам на плече B.
- В конец Answer SDP добавляются недостающие кодеки, транскодинг которых включен в media profile на плече A.
- Перед отправкой Answer SDP в плечо А производится согласование кодеков.
В результате, транскодирование включается, если самые приоритетные кодеки из Offer и Answer SDP на двух плечах не совпадают. В таком случае в Answer SDP будет выбран наиболее приоритетный кодек, который был получен в Offer SDP, и для которого включена поддержка транскодирования в медиа профиле медиапрофиле на плече А.
Иначе, при совпадении приоритетных кодеков в Offer SDP и Answer SDP, будет использоваться проксирование медиаданных.
С целью снижения нагрузки на ESBC, транскодирование включается только в случае, когда использовать проксирование медатрафика медиатрафика невозможно.
Для включения транскодирования необходимо ипользовать использовать медиапрофили с включенным транкодированием транскодированием (codec audio/video) на обоих направлениях.
Если на одном из направлений не используется медиапрофиль (т. е. используется медиа профиль медиапрофиль по умолчанию), или в профиле не настроено ни одно правило codec audio/video, то транскодирование осуществляться не будет.
Пример:
В транке Trunk1 TRUNK_1 используется медиапрофиль FOR_TRUNK_1, в котором разрешены кодеки PCMA и PCMU для проксирования, и не указаны кодеки разрешенные для транскодирования.
В транке Trunk2 TRUNK_2 используется медиапрофиль FOR_TRUNK_2, в котором также кодеки PCMA и PCMU разрешены для проксирования, и кодек G729 разрешен для транскодирования.
В SDP Offer1, полученном с транка Trunk1 TRUNK_1, указаны кодеки PCMA и PCMU, и т. к. в медиа профиле медиапрофиле FOR_TRUNK_1 отсутствуют кодеки, разрешенные для транскодирования, в SDP Offer2, который будет отправлен в Trunk2 TRUNK_2, кодек G729 не будет добавлен. Соответственно при вызовах из Trunk1 в Trunk2 TRUNK_1 в TRUNK_2 (и в обратном направлении) возможно только проксирования проксирование медиаданных.
Если в медиапрофиле не содержится ни одного паттерна для проксирования кодеков, а указаны только кодеки, доступные для транскодирования, то при наличае наличии одинаковых кодеков в медиапрофилях, используемых на входящем и исходящем напрвлениях направлениях, медиаданные будут передаваться в режмие режиме проксирования.
Т. о. включение поддержки транскодирования для кодеков комадндами командами codec {audio | video | image} {all | <CODEC>} не означает, что медиаданные передаваемы передаваемые через ESBC медиаданные всегда будут транскодироваться.
Пример:
Для транков Trunk1 и Trunk2 TRUNK_1 и TRUNK_2 используется один и тотже тот же медиапрофиль FOR_TRUNKS, в котором указан только кодек PCMA, разрешенный для транскодирования, и отсутствуют паттерны кодеков для проксирования.
В SDP Offer1, полученном с транка Trunk1 TRUNK_1, указаны кодеки PCMA и PCMU, и т. к. в медиа профиле медиапрофиле FOR_TRUNKS не указан кодек PCMU (ни для проксирования, ни для транскодирования),то в SDP Offer2, который будет отправлен в Trunk2 TRUNK_2, кодек PCMU не будет добавлен. При получении SDP Answer2 происходит согласование кодека PCMA, и в Trunk1 TRUNK_1 будет отправлен SDP Answer1 с кодеком PCMA. При этом медиаданные будут передаваться в режиме проксирования, т. к. наиболее приоритетные кодеки в SDP Offer и SDP Answer совпадают.
Примеры использования медиа профилей медиапрофилей для управления кодеками в режиме транскодирования
...
| Блок кода |
|---|
vesbc# configure vesbc(config)# esbc # Содать медиа профиль для транка Trunk1TRUNK_1 vesbc(config-esbc)# media profile FOR_TRUNK_1 # Запретить использование всех кодеков в режмиережиме проксирования vesbc(config-esbc-media-profile)# no codec allow all # Включить поддержку кодека PCMA в режиме транскодирования vesbc(config-esbc-media-profile)# codec audio PCMA vesbc(config-esbc-media-profile)# exit # Привязать медиа профильмедиапрофиль к транку Trunk1TRUNK_1 vesbc(config-esbc)# trunk sip TRUNK_1 vesbc(config-esbc-trunk-sip)# media profile FOR_TRUNK_1 vesbc(config-esbc-trunk-sip)# exit # Содать медиа профильмедиапрофиль для транка Trunk2TRUNK_2 vesbc(config-esbc)# media profile FOR_TRUNK_2 # Запретить использование всех кодеков в режмиережиме проксирования vesbc(config-esbc-media-profile)# no codec allow all # Включить поддержку кодека PCMU в режиме транскодирования vesbc(config-esbc-media-profile)# codec audio PCMU vesbc(config-esbc-media-profile)# exit # Привязать медиа профильмедиапрофиль к транку Trunk2TRUNK_2 vesbc(config-esbc)# trunk sip TRUNK_2 vesbc(config-esbc-trunk-sip)# media profile FOR_TRUNK_2 vesbc(config-esbc-trunk-sip)# do commit vesbc(config-esbc-trunk-sip)# do confirm |
В результате конфигурации медиа профилей конфигурация медиапрофилей будет выглядеть следующим образом:
| Блок кода |
|---|
media profile FOR_TRUNK_1
codec audio PCMA
exit
media profile FOR_TRUNK_2
codec audio PCMU
exit |
В SDP Offer1, полученном с транка Trunk1 TRUNK_1, указан кодек PCMA, и т. к. в медиа профиле медиапрофиле FOR_TRUNK_2 указан только кодек PCMU для транскодирования, в SDP Offer2, который будет отправлен в Trunk2 TRUNK_2, кодек кодек PCMA будет заменен на PCMU. Соответственно при вызовах из Trunk1 в Trunk2 TRUNK_1 в TRUNK_2 (и в обратном направлении) возможно только транскодирование медиаданных.
Если в В SDP Offer1, полученном с транка Trunk1 TRUNK_1, будут указаны любые кодеки кроме PCMA, то вызов не будут установлен, ESBC отправит на INVITE ответ 488.
2. Использование медиапрофилей для проксирования и транскодирования аудиоданных.
Для транков Trunk1 и Trunk2 TRUNK_1 и TRUNK_2 используются медиапрофили, позволяющие проксировать все кодеки и транскодировать аудио G722 <---> G729 и GSM <---> G729
Настройка медиа профилеймедиапрофилей:
| Блок кода |
|---|
vesbc# configure vesbc(config)# esbc # Содать медиа профильмедиапрофиль для транка Trunk1TRUNK_1 vesbc(config-esbc)# media profile FOR_TRUNK_1 # Включить поддержку кодеков G722 и GSM в режиме транскодирования vesbc(config-esbc-media-profile)# codec audio G722 vesbc(config-esbc-media-profile)# codec audio GSM vesbc(config-esbc-media-profile)# exit # Привязать медиамедиапрофиль профиль к транку Trunk1 TRUNK_1 vesbc(config-esbc)# trunk sip TRUNK_1 vesbc(config-esbc-trunk-sip)# media profile FOR_TRUNK_1 vesbc(config-esbc-trunk-sip)# exit # Содать медиа профильмедиапрофиль для транка Trunk2 TRUNK_2 vesbc(config-esbc)# media profile FOR_TRUNK_2 # Включить поддержку кодека G729 в режиме транскодирования vesbc(config-esbc-media-profile)# codec audio G729 vesbc(config-esbc-media-profile)# exit # Привязать медиа профиль к транку Trunk2 TRUNK_2 vesbc(config-esbc)# trunk sip TRUNK_2 vesbc(config-esbc-trunk-sip)# media profile FOR_TRUNK_2 vesbc(config-esbc-trunk-sip)# do commit vesbc(config-esbc-trunk-sip)# do confirm |
В результате конфигурации медиа профилей конфигурация медиапрофилей будет выглядеть следующим образом:
| Блок кода |
|---|
media profile FOR_TRUNK_1
codec audio GSM
codec audio G722
codec allow AMR
codec allow CLEARMODE
codec allow CN
codec allow G72
codec allow G722/ 9
codec allow G728 15
codec allow G729/ 18
codec allow GSM 3
codec allow H26
codec allow H261 31
codec allow H263 34
codec allow ILBC
codec allow L16/44100 11
codec allow L16/44100/2 10
codec allow OPUS
codec allow PCMA 8
codec allow PCMU 0
codec allow SPEEX
codec allow T38 t38
codec allow VP
codec allow telephone-event
exit
media profile FOR_TRUNK_2
codec audio G729
codec allow AMR
codec allow CLEARMODE
codec allow CN
codec allow G72
codec allow G722/ 9
codec allow G728 15
codec allow G729/ 18
codec allow GSM 3
codec allow H26
codec allow H261 31
codec allow H263 34
codec allow ILBC
codec allow L16/44100 11
codec allow L16/44100/2 10
codec allow OPUS
codec allow PCMA 8
codec allow PCMU 0
codec allow SPEEX
codec allow T38 t38
codec allow VP
codec allow telephone-event
exit |
2.1 В SDP Offer1, полученном с транка Trunk1 TRUNK_1, указаны кодеки PCMA, PCMU, G726 и G722. Т. к. в медиа профиле медиапрофиле FOR_TRUNK_1 есть кодек G722, разрешенный для транскодирования, то в SDP Offer2, который будет отправлен в Trunk2 TRUNK_2, будет добавлен кодек G729. Остальные кодеки будут передавться передаваться из SDP Offer1 в SDP Offer2, т. к. на обоих медиапрофилях настроены паттерны, разрешающие проксирование этих кодеков. В SDP Answer2, полученном из Trunk2 TRUNK_2, указан кодек PCMU. Этот кодек будет согласован ESBC в SDP Answer1. Т. к. этот кодек был в SDP Offer1, то будет выбран режим проксирования медиаданных.
2.2 В SDP Offer1, полученном с транка Trunk1 TRUNK_1, указаны кодеки PCMA, PCMU, G726 и G722. Т. к. в медиа профиле медиапрофиле FOR_TRUNK_1 есть кодек G722, разрешенный для транскодирования, то в SDP Offer2, который будет отправлен в Trunk2 TRUNK_2, будет добавлен кодек G729. Остальные кодеки будут передавться передаваться из SDP Offer1 в SDP Offer2, т. к. на обоих медиапрофилях настроены паттерны, разрешающие проксирование этих кодеков. В SDP Answer2, полученном из Trunk2 TRUNK_2, указан кодек G729. Т. к. этого кодека не было в SDP Offer1, то будет согласован единственный возможный кодек для Trunk1 - TRUNK_1 — G722. Т. к. кодеки на плечах Trunk1 и Trunk2 TRUNK_1 и TRUNK_2 отличаются, будет включено транскодирование медиаданных G722 <---> G729.
2.3 В SDP Offer1, полученном с транка Trunk1 TRUNK_1, указаны кодеки PCMA, PCMU, GSM, G726 и G722. Т. к. в медиа профиле медиапрофиле FOR_TRUNK_1 есть кодеки G722 и GSM, разрешенные для транскодирования, то в SDP Offer2, который будет отправлен в Trunk2 TRUNK_2, будет добавлен кодек G729. Остальные кодеки будут передавться из SDP Offer1 в SDP Offer2, т. к. на обоих медиапрофилях настроены паттерны, разрешающие проксирование этих кодеков. В SDP Answer2, полученном из Trunk2 TRUNK_2, указан кодек G729. Т. к. этого кодека не было в SDP Offer1, то будет согласован наиболее приоритетный кодек для Trunk1 - TRUNK_1 — GSM.
Т. к. кодеки на плечах Trunk1 и Trunk2 TRUNK_1 и TRUNK_2 отличаются, будет включено транскодирование медиаданных GSM <---> G729.
| Scroll Pagebreak |
|---|
...
Если выбран режим mandatory и включены оба метода, то на втором плече будет выбран DTLS-SRTP, как более приоритетный.
| Примечание |
|---|
По умолчанию поддержка SRTP выключена. |
По умолчанию , при использовании DTLS-SRTP используются сертификаты сгенерированные автоматически. Для использования сертификатов, загруженных пользователем, необходимо в медиапрофиле указать криптопрофиль с необходимыми сертификатами командой crypto profile. Подробное описание криптопрофилей приведено в разделе Настройка криптопрофилей.
...
В конфигурации есть два транка, настроена маршрутизация. Вызов, который приходит из TRUNK_IN, уходит в TRUNK_OUT. На TRUNK_OUT включаем обязательное использование SRTP с методом обмена ключами – — SDES.
| Блок кода | ||
|---|---|---|
| ||
vesbc# vesbc# configure vesbc(config)# esbc #Создание медиапрофиля NEW_MEDIA_PROFILE: vesbc(config-esbc)# media profile NEW_MEDIA_PROFILE vesbc(config-esbc-media profile)# #Настройка SRTP (включили обязательный режим использования, метод обмена ключами — SDES): vesbc(config-esbc-media-profile)# srtp keying dtls-srtp Enable DTLS-SRTP keying method sdes Enable SDES keying method vesbc(config-esbc-media-profile)# srtp keying sdes vesbc(config-esbc-media-profile)# srtp mode disable SRTP is disabled mandatory SRTP is mandatory optional SRTP is optional vesbc(config-esbc-media-profile)# srtp mode mandatory vesbc(config-esbc-media-profile)# vesbc(config-esbc-media-profile)# exit vesbc(config-esbc)# #Привязать медиапрофиль к транку TRUNK_OUT: vesbc(config-esbc)# trunk sip TRUNK_OUT vesbc(config-esbc-trunk-sip)# media profile NEW_MEDIA_PROFILE vesbc(config-esbc-trunk-sip)# #Применить и подтвердить изменения: vesbc(config-esbc-trunk-sip)# do commit Configuration has been successfully applied and saved to flash. Commit timer started, changes will be reverted in 600 seconds. vesbc(config-esbc-trunk-sip)# do confirm Configuration has been confirmed. Commit timer canceled. |
...
Контроль источника RTP
Контроль источника RTP позоволяет позволяет принимать медиатрафик только с IP-адреса и порта, указанного в SDP встречной стороны, повышая безопасность взаимодействия при использовании публичной сети передачи данных.
Включение/выколючение выключение режима осуществляется командами rtp source-verification и no rtp source-verification соответственно. При отключенной проверке IP-адрес и порт источника RTP не проверяется.
...
| Примечание |
|---|
При использовании опции "Контроль источника RTP" совместно с включенной опцией nat comedia в транке или абонентском интерфейсе, RTP-трафик будет передаваться на IP-адрес и порт из входящего потока. |
...
Модуль занимается анализом возникающих ошибок для дальнейшей блокировки источников "подозрительного SIP-трафика". При возникновении ошибки в модуль отправляется информация о типе ошибки и об источнике. При накоплении достаточного количества ошибок источник блокируется.
Виды ошибок:
- Ошибка ошибка регистрации;
- Ошибка ошибка вызова;
- Ошибка ошибка подписки;
- Флуд флуд SIP-пакетов;
- Некорректный некорректный SIP-пакет;
- Срабатывание срабатывание флуд-фильтра;
- Получение получение пакета вне транка/абонентского интерфейса.
Лимит количества ошибок зависит от нескольких факторов:
- Вес вес ошибки;
- Интервал интервал времени между ошибками;
- Количество количество ошибок одного вида;
- Количество количество AOR, которые использовались в SIP-сообщениях с одного IP-адреса;
- Количество количество IP-адресов, которые присылали SIP-сообщения с одним AOR.
При добавлении адреса в чёрный список указывается причина блокировки. Чёрный список можно просмотреть в CLI командой show esbc black-list или в WEB на странице Мониторинг→Списки доступа→Чёрный список.
Причины блокировки:
ACCOUNT HACKING - — превышен лимит по количеству ошибок с одинаковым AOR/User-Agent;
PACKET FLOODING - — превышен лимит по количеству ошибок с одного IP-адреса;
BURST ERRORS - — превышен глобальный лимит по количеству ошибок в секунду;
GLOBAL RPS LIMIT - — превышен глобальный лимит по количеству заблокированных запросов в секунду;
IP RPS LIMIT - — превышен лимит по количеству заблокированных запросов в секунду c одного IP-адреса;
MONITORED ADDRESSES LIMIT - — превышено максимальное количество IP-адресов с ошибками;
DISTRIBUTED SPAM - — превышено максимальное количество IP-адресов с одинаковым заблокированным атрибутом (AOR, User-Agent);
BLOCKED ATTRIBUTES LIMIT - — превышено максимальное количество заблокированных атрибутов (AOR, User-Agent);
IP BLOCKED ATTRIBUTES LIMIT - — превышено максимальное количество заблокированных атрибутов (AOR, User-Agent) с одного IP-адреса.
Фильтрация SIP-флуда
ESBC поддерживает создание флуд-фильтров для механизма конфигурируемой защиты от SIP-flood, а также для фильтрации клиентских приложений. Фильтр применяется ко всему SIP-сообщению (включая тело - — SDP, XML и т. д.).
В настройках фильтра можно указать до 64 масок/паттернов, по которым происходит поиск. В случае нахождения сообщение определяется как флуд и отбрасывается.
...
После применения изменений все входящие инициирующие запросы с абонентских интерфейсов UI_1, UI_2, UI_3 будут проверяться на наличие подстрок "7543546" и "flood". Если хотя бы одна подстрока будет найдена в сообщении, то оно отбросится, а в модуль fail2ban отправится уведомление о срабатывании флуд-фильтра, при накоплении достаточного количества ошибок источник блокируется.
| Информация |
|---|
Для того , чтобы фильтр применялся ко всем сообщениям, а не только к инициирующим запросам нужно , необходимо включить опцию apply-to-created. |
...
С адреса 192.168.80.134 через абонентский интерфейс приходят сообщения INVITE с AOR 123@anonymous.invalid, вызовы без регистрации на интерфейсе запрещены, поэтому эти запросы отбиваются 403 Forbidden.
Если в профиле безопасности, привязанному к абонентскому интерфейсу, отключена блокировка по AOR, то через определенное количество запросов заблокируется только IP-адрес, и запросы с него больше обрабатываться не будут.
| Информация |
|---|
IP black-list: |
...
С нескольких адресов 192.168.80.13x через абонентский интерфейс приходят сообщения INVITE с User-Agent: sipflood, вызовы без регистрации на интерфейсе запрещены, поэтому эти запросы отбиваются 403 Forbidden.
Если в профиле безопасности, привязанному к абонентскому интерфейсу, отключена блокировка по User-Agent, то через определенное количество запросов заблокируются только IP-адреса, и запросы с них больше обрабатываться не будут:
| Информация |
|---|
IP black-list: |
...
| Информация |
|---|
IP black-list: |
...
Если в профиле безопасности, привязанному к абонентскому интерфейсу, отключено объединение ошибок по адресу, то через определенное количество запросов заблокируется только IP-адрес и запросы с него больше обрабатываться не будут:
| Информация |
|---|
IP black-list: |
...
Все запросы с любого адреса, в котором будут заблокированные AOR во From, обрабатываться не будут.
| Информация |
|---|
IP black-list: |
...
При использовании протоколов TLS или WebSocket Secure (WSS) в качестве SIP-транспорта, а также протокола DTLS-SRTP для шифрования RTP-трафика, возможно использование сертификатов, автоматически сгенерированных самим ESBC, сгенерированных по требованию пользователя на ESBC или загруженных пользователем. По умолчанию используются сертификаты, автоматически сгенерированные самим ESBC, дополнительных настроек для их использования не требуется.
...
| Примечание |
|---|
Путь для сохранения сертификатов ca и cert - — crypto:cert/ Путь для сохранения private-key - — crypto:private-key/ |
Для управления пользовательскими сертификатами и версией TLS используется crypto profile.
Приммер Пример настройки crypto profile:
| Блок кода | ||
|---|---|---|
| ||
vesbc# vesbc# configure vesbc(config)# esbc vesbc(config-esbc)# crypto profile CRYPTO-PROFILE #Установка сертификата удостоверяющего центра (CA certificate) vesbc(config-esbc-crypto-profile)# ca default_ca.pem #Установка клиентского сертификата (X.509) vesbc(config-esbc-crypto-profile)# cert default_cert.pem #Установка private-key vesbc(config-esbc-crypto-profile)# private-key default_cert_key.pem #Установка пароля private-key (не обязательнонеобязательно) vesbc(config-esbc-crypto-profile)# password private-key PASSWORD #Установка минимальной и максимальной версии TLS (не обязательнонеобязательно) vesbc(config-esbc-crypto-profile)# tls min 1.1 vesbc(config-esbc-crypto-profile)# tls max 1.2 vesbc(config-esbc-crypto-profile)# exit |
| Примечание |
|---|
Если не устанавливать значения версии TLC то при установлении соединения будут использоваться любая версия 1.0-10–1.3. Настройки tls min и tls max используются только при применении crypto profile для SIP-транспорта и не используются для шифрования DTLS-SRTP, при использовании crypto-profile в медиа профилемедиапрофиле. |
Для того чтобы использовать crypto profile для SIP-транспорта, необходимо его указать в настройках нужного транспорта:
...
Настройки crypto profile будут использоваться, только если выбран режим работы SIP-транспорта tls или wss, для остальных режимов настройки игнорируются.
Для того чтобы использовать crypto profile для шифрования DTLS-SRTP, необходимо его указать в настройках медиа профиля:
...
Настройки crypto profile будут использоваться, только если выбран режим шифрования srtp keying dtls-srtp, для остальных режимов настройки игнорируются.
...
Задача:
Использовать сертификат, загруженный пользователем на ESBC, для абонентских подключений по tls версии 1.3 и шифрования медиа DTLS-SRTP.
User -----------tls/srtp-dtls--------ESBC------------udp/rtp--------------ECSS-10.
10.0.0.1:5061 20.0.0.1:5061 192.168.1.1:5070 192.168.1.2:5070
СХЕМУ СДЕЛАТЬ КРАСИВО
Решение:
1. Выполнить базовую настройку ESBC для обеспечения маршрутизации абонентских подключений в сторону ECSS-10:
...
| Блок кода | ||
|---|---|---|
| ||
vesbc(config-esbc)# crypto profile CRYPTO_PROFILE vesbc(config-esbc-crypto-profile)# ca ca.crt vesbc(config-esbc-crypto-profile)# cert cert.crt vesbc(config-esbc-crypto-profile)# private-key key.pem vesbc(config-esbc-crypto-profile)# tls min 1.3 vesbc(config-esbc-crypto-profile)# tls max 1.3 vesbc(config-esbc-crypto-profile)# exit |
4. Создать медиа-профиль медиапрофиль для использования DTLS-SRTP и привязать к нему crypto profile:
...

























