Как мне защитить свой сервер Asterisk?
Наш сервер звездочки был взломан. в прошлые выходные были сделаны звонки в страны Азии.
Несмотря на то, что мы улучшили нашу сетевую конфигурацию, мы все еще хотим определить, как было выполнено вторжение, мы думаем, что есть ключи в наших файлах журнала звездочки.
но мы не знаем, что искать, основываясь на звездочке по умолчанию:
Какие соображения безопасности вы принимаете при установке сервера Asterisk?
4 ответа
Так я защищаю свой сервер Asterisk, который непрерывно работает с 2006 года.
Брандмауэр
Открытые входящие порты только для необходимых сервисов. (Вам действительно нужно открыть широкий диапазон для потоков RTP, но обычно это не проблема, поскольку в этом диапазоне портов ничего не прослушивается.)
22/tcp
SSH (для управления, конечно)4520/udp
DUNDi (если вы используете DUNDi)4569/tcp
IAX2 (если вы используете IAX)5060/udp
Регистрация SIP10000-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. Периметр. Этот тип защиты обычно применяется на брандмауэре (не на УАТС). Большинство межсетевых экранов просто направляют пакеты 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, и вы поймете, что я имею в виду)