Настройка Asterisk для защиты от взлома

В интернете гуляет много историй о взломах астериска и последующей кары от оператора. Где-то лежала байка о некой маленькой компании в Австралии, которую угораздило залететь на $15000-20000. Думаю никто не хочет оказаться в подобной ситуации. Гораздо лучше, не дожидаясь беды, провести некоторый комплекс мероприятий, который значительно сократит количество вариантов взлома и минимизирует опасность.

Защита динамическими правилами фаервола

Защита программой fail2ban . Работает тоже довольно эффективно, однако существует некоторая загвоздка. Asterisk не поддерживает таймаут между попытками регистрации и по-этому злоумышленник за очень короткий период времени (несколько секунд), пока реагирует fail2ban, может успеть провести гораздо больше попыток подбора, чем мы указываем в настройках. У меня есть примеры, когда блокировка происходила на ~95й попытке подбора, что не есть гуд.

Нестандартный порт вместо 5060

Если имеется техническая возможность – ОБЯЗАТЕЛЬНО меняем стандартный порт 5060 на любой другой. Чем он будет больше непохож на стандартный – тем лучше. Настройка порта производится в файле sip.conf

[general]:
bindport=5060 => bindport=5172

После таких действий, количество подборщиков уменьшится практически до нуля.

Отключаем guest-звонки

Если у вас необходимости принимать звонки без регистрации, обязательно выключаем следующую опцию в sip.conf:

allowguest=yes => allowguest=no ; Allow or reject guest calls (default is yes)

Отключаем оповещение о неверном пароле

По умолчанию астериск выдает одну ошибку о неверном пароле для существующего аккаунта и другую для несуществующего аккаунта. С помощью спец. софта для подбора паролей, злоумышленник может быстро перебрать все короткие номера и подбирать пароли только к существующим аккаунтам, которые ответили «неверный пароль». Чтобы препятствовать этому, меняем опцию в sip.conf:

alwaysauthreject = no => alwaysauthreject = yes

После такой настройки, астериск будет давать одинаковый отбой для любых неверных авторизаций.

Используем сложные пароли для аккаунтов

Без комментариев

Используем deny/permit для аккаунтов

Обязательный момент! Указываем для всех аккаунтов, которые не подразумевают подключение из интернета следующие строки:

[100]
...
deny=0.0.0.0/0.0.0.0
permit=192.168.0.0/20
permit=172.16.0.0/24

Где 192.168.0.0,172.16.0.0 – диапазоны локальных адресов, с которых будет производится подключение. Подключения с других адресов asterisk принимать не будет.

Устанавливаем лимит звонков

В случае взлома, для уменьшения затрат, рекомендуется установить лимит одновременных звонков для аккаунтов в 1-3, чтобы злоумышленник не мог одновременно звонить на много направлений и, тем самым, быстрее расходовать ваши деньги.

[100]
call-limit=1
...

Не используем default-экстеншн без необходимости

Не надо оно нам. Все, что должно быть в дефолте:

[default]
exten => _X.,1,Hangup

Не делаем одно универсальное правило для всех звонков

Скажем нет правилам вида:

exten => _X.,1,Dial(SIP/${EXTEN}@operator)

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

;Экстренные службы
exten => _0X,1, Dial(SIP/${EXTEN}@operator)
exten => _0X,n, Hangup
;Москва
exten => _8495XXXXXXX,1, Dial(SIP/${EXTEN}@operator)
exten => _8495XXXXXXX,n, Hangup
exten => _8499XXXXXXX,1, Dial(SIP/${EXTEN}@operator)
exten => _8499XXXXXXX,n, Hangup
exten => _XXXXXXX,1, Dial(SIP/${EXTEN}@operator)
exten => _XXXXXXX,n, Hangup
;Межгород Россия/Мобильные
exten => _8XXXXXXXXXX,1, Dial(SIP/${EXTEN}@operator)
exten => _8XXXXXXXXXX,n, Hangup

Источник http://www.mahno.su/freebsd/asterisk-freebsd/zashhita-asterisk-ot-vzloma

nastrojka_asterisk_dlja_zaschity_ot_vzloma.txt · Последние изменения: 2016/12/24 18:51 — adm1n
GNU Free Documentation License 1.3
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 Яндекс.Метрика