Как мне защитить свой сервер Asterisk?

Наш сервер звездочки был взломан. в прошлые выходные были сделаны звонки в страны Азии.

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

но мы не знаем, что искать, основываясь на звездочке по умолчанию:

Какие соображения безопасности вы принимаете при установке сервера Asterisk?

4 ответа

Решение

Так я защищаю свой сервер Asterisk, который непрерывно работает с 2006 года.

Брандмауэр

Открытые входящие порты только для необходимых сервисов. (Вам действительно нужно открыть широкий диапазон для потоков RTP, но обычно это не проблема, поскольку в этом диапазоне портов ничего не прослушивается.)

  • 22/tcp SSH (для управления, конечно)
  • 4520/udp DUNDi (если вы используете DUNDi)
  • 4569/tcp IAX2 (если вы используете IAX)
  • 5060/udp Регистрация SIP
  • 10000-20000/udp RTP - медиа транспорт
    Некоторые устройства имеют гораздо более узкий диапазон портов, которые они используют для потоков RTP. Например, некоторые устройства Cisco (ранее Linksys/Sipura; номера деталей начинаются с PAP, SPA или WRP) используют только устройства 16384-16482,

расширения

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

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

Установите надежные пароли для всех расширений SIP. Это должно быть очевидно, но не всегда так.

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

использование alwaysauthreject=yes в sip.conf, Это лишает злоумышленников возможности определить, существует ли расширение SIP с помощью грубой силы.

использование allowguest=no в sip.conf, Это предотвращает звонки неаутентифицированных клиентов.

администрация

Измените все пароли по умолчанию для пользователей UNIX, баз данных и административных интерфейсов, таких как FreePBX.

Задавать bindaddr = 127.0.0.1 в manager.conf чтобы интерфейс управления Asterisk не был открыт для всего мира.

Другой

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

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


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

У нас была похожая проблема некоторое время назад. В дополнение к ответу Майкла Хэмптона. Три вещи, которые мы сделали, исправили это.

1) Установка fail2ban. Он сканирует файлы журналов в поисках попыток сбить пароль. Слишком много, и это будет брандмауэр IP. Он работает не только для звездочек, но и для SSH и любых других услуг, которые вам требуются.

2) Белый список или черный список IP-адресов из стран, которые вы хотите / не хотите разрешать. Например, вы хотите разрешить SIP доступ из Китая? Вы можете получить списки IP от nirsoft

3) Если вы транкируете или подключаетесь к вышестоящему провайдеру, посмотрите, сможете ли вы получить дневной кредитный лимит. Это ограничит размер счета, который вы получите от них в случае неудачи любого из первых двух. И если вы обнаружите проблему, купите хотя бы некоторое время, прежде чем она действительно выйдет из-под контроля.

Я бы добавил "хороший мониторинг" к предложениям, перечисленным в других ответах. Мониторинг систем (для проверки журналов предлагаются названия logwatch или logcheck). Посмотрите на доступные инструменты создания отчетов о звездочках (я не знаю никаких названий, но в разделе Asterisk Monitoring перечислены некоторые из них) и выясните, может ли ваш поставщик исходящей телефонной связи контролировать ваше использование и предупреждать о незапланированном увеличении стоимости вызовов.

Существует четыре типа безопасности, которые необходимо учитывать при настройке УАТС:

  1. периметр
  2. Конфигурация звездочки
  3. Обнаружение взлома (обнаружение вторжения)
  4. Обнаружение мошенничества

1. Периметр. Этот тип защиты обычно применяется на брандмауэре (не на УАТС). Большинство межсетевых экранов просто направляют пакеты SIP/IAX/RTP/etc на УАТС. Таким образом, они действительно не выполняют никакой защиты (но они могут по крайней мере блокировать соединения SSH/telnet/etc). Первый (принятый) ответ ссылается на правила на хосте (УАТС) с использованием iptables. Это не рекомендуется - не позволяйте злоумышленникам пройти охрану периметра. Знайте, что злоумышленники / хакеры / мошенники должны быть заблокированы по периметру.

2. Конфигурация Asterisk Это здравый смысл сегодня, и большинство генераторов конфигурации уже позаботились об этом за вас. Но если вы работаете с Asterisk напрямую, используйте сложные имена устройств и сложные секреты. Отключите гостевой доступ (allowguest) и не допускайте осмысленных ответов об ошибках злоумышленникам (всегда отвергать). Также будьте осторожны с вашей командой набора номера (в Asterisk), так как неправильный параметр может позволить вызывающему абоненту перепрограммировать трубку и набрать любую внешнюю линию. Измените все пароли по умолчанию, не позволяйте Asterisk работать под root, и если вы решите использовать генератор конфигурации, измените там и пароли по умолчанию.

3. Обнаружение взлома (обнаружение вторжения) Такие инструменты, как fail2ban, тривиальны (на самом деле Digium предупреждает пользователей НЕ использовать fail2ban в качестве брандмауэра / устройства безопасности). Тем не менее, если у вас действительно нет навыков для настройки чего-то большего, то fail2ban лучше, чем ничего. Большинство людей не понимают, что fail2ban полностью зависит от Asterisk, чтобы обнаруживать и отклонять попытку набора / регистрации до того, как IP-адрес может быть заблокирован. Так что, если атака не вызывает этих ошибок Asterisk, то fail2ban ничего не делает. (Кроме того, с помощью fail2ban вы блокируете злоумышленников на АТС, а не на брандмауэре).

Теперь о настоящем взломе. Как узнать, использует ли злоумышленник искаженные SIP-пакеты? В этом случае посмотрите на "snort" или другие анализаторы пакетов SIP. Что если злоумышленник вращается через большую подсеть, если IP или VPN IP? Убедитесь, что ваш инструмент обнаружения может отслеживать это. А как насчет блочных IP на основе геозон? Продвинутые брандмауэры могут сделать это, как и некоторые брандмауэры с открытым исходным кодом, такие как "pfsense" и проприетарные системы безопасности Asterisk, такие как "SecAst".

Генераторы конфигурации (например, FreePBX) имеют плохую историю безопасности, особенно в том, что касается эксплойтов в GUI конечного пользователя. Если вы решите открыть HTTP-интерфейс в Интернете, лучше установить обнаружение взлома на основе хоста, например "tripwire".

4. Обнаружение мошенничества Серьезные хакеры перехватывают пакеты и даже сами взламывают телефоны, чтобы украсть действительные учетные данные. Как вы останавливаете хакеров с действительными учетными данными? Существует несколько инструментов с открытым исходным кодом для отслеживания SIP-каналов, которые вы можете использовать для определения количества каналов по источнику (напишите свои собственные сценарии обнаружения), или коммерческие продукты, такие как "SecAst", которые отслеживают скорость набора номера, количество установок вызова в секунду (так как мошенники мчатся, чтобы использовать учетные данные для мошеннического набора, прежде чем расширения /IP / транки будут закрыты).

Как насчет обнаружения подозрительного количества звонков в / из определенных DID, как это часто бывает при мошенничестве междугородной связи. Такие инструменты, как "SecAst", могут отслеживать их и даже сравнивать с телефонными номерами, о которых известно, что они используются для мошенничества (даже если злоумышленник удерживает общий уровень громкости своего канала на низком уровне).

Аналогично #3, если ваши пользователи работают в четко определенных географических областях, тогда расширения геозоны, даже если они имеют действительные учетные данные. Усовершенствованные брандмауэры могут сделать это, как и некоторые брандмауэры с открытым исходным кодом, такие как "pfsense" и Cisco, и проприетарные системы безопасности Asterisk, такие как "SecAst".

Резюме Итак, в целом есть много, что вы можете и должны сделать для защиты вашей АТС. Выше я перечислил несколько продуктов с открытым исходным кодом, которые позволяют вам достичь разумного уровня безопасности (если ваши навыки достаточны). Я также упомянул некоторые проприетарные инструменты, которые обычно обрабатывают все вышеперечисленное для вас, но вам придется потратить немного денег, чтобы их использовать. Однако, после вашего первого счета за телефон в 400000 долларов, вы можете обнаружить, что дешевый теперь означает более дорогой позже (счет за телефон Google в 400000 долларов Astricon, и вы поймете, что я имею в виду)

Другие вопросы по тегам