Наш сервер звездочки был скомпрометирован. в минувшие выходные было совершено несколько звонков в страны Азии.
Думая, что мы улучшили конфигурацию нашей сети, мы все еще хотим определить, как было совершено вторжение, мы думаем, что в наших файлах журнала звездочки есть подсказки.
но мы не знаем, что искать, основываясь на звездочке по умолчанию:
Так я защищаю свой сервер Asterisk, который непрерывно находится в производстве с 2006 года.
Открывайте входящие порты только для необходимых сервисов. (Вы должны открыть широкий диапазон для потоков RTP, но обычно это не проблема, поскольку в этом диапазоне портов обычно ничего не прослушивает.)
22/tcp
ssh (для управления, конечно)4520/udp
DUNDi (если вы используете DUNDi)4569/tcp
IAX2 (если вы используете IAX)5060/udp
SIP регистрация10000-20000/udp
RTP - медиа-транспорт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-транкинга отключить эту возможность на своей стороне. Вы также можете настроить сервер Asterisk так, чтобы он не маршрутизировал такие вызовы.
Это должно охватывать основы и по большей части убережет вас от неприятностей. Если вы развертываете какие-либо необычные службы или пишете свои собственные конфигурации, вам может потребоваться дополнительная работа для их защиты.
Некоторое время назад у нас была похожая проблема. В дополнение к ответу Майкла Хэмптона. Мы исправили это с помощью трех вещей.
1) Установка fail2ban. Это проверяет файлы журналов на предмет попыток сбоя пароля. Слишком много, и IP-адреса будут брандмауэрами. Он работает не только со звездочкой, но и с SSH и любым другим сервисом, который вам нужен.
2) Внесите в белый или черный список IP-адреса из стран, которые вы хотите / не хотите разрешать. например Вы хотите разрешить SIP-доступ из Китая? Вы можете получить списки IP-адресов из нирсофт
3) Если вы выполняете транкинг или сопряжение с вышестоящим провайдером, посмотрите, можете ли вы получить дневной лимит кредита. Это ограничит размер счета, который вы получите от них, если один из первых двух не сработает. А если вы обнаружите проблему, по крайней мере выиграйте время, прежде чем она действительно выйдет из-под контроля.
Я бы добавил «хороший мониторинг» к предложениям, перечисленным в других ответах. Наблюдайте за системами (предлагаемые названия для проверки журналов - logwatch или logcheck). Посмотрите доступные инструменты отчетности звездочки (я не знаю ни одного названия, но в пункте "Мониторинг Asterisk" перечислены некоторые) и посмотрите, может ли ваш провайдер телефонной связи отслеживать ваше использование и предупреждать о незапланированном увеличении стоимости вызовов.
При настройке УАТС необходимо учитывать четыре типа безопасности:
1. Периметр Этот тип безопасности обычно применяется на межсетевом экране (не на УАТС). Большинство межсетевых экранов просто направляют пакеты SIP / IAX / RTP / и т. Д. На УАТС. Таким образом, они действительно не защищают (но могут, по крайней мере, блокировать соединения SSH / telnet / etc). Первый (принятый) ответ ссылается на правила хоста (PBX) с использованием iptables. Это не рекомендуется - не пропускайте злоумышленников за периметр защиты. Знайте, что злоумышленники / хакеры / мошенники должны быть заблокированы по периметру.
2. Конфигурация Asterisk Сегодня это здравый смысл, и большинство генераторов конфигурации уже позаботятся об этом за вас. Но если вы работаете с Asterisk напрямую, используйте сложные имена устройств и сложные секреты. Отключите гостевой доступ (allowguest) и не позволяйте злоумышленникам давать осмысленные ответы об ошибках (alwaysauthreject). Также будьте осторожны с командой набора номера (в Asterisk), так как неправильный параметр может позволить вызывающему абоненту выполнить мгновенный вызов и набрать любую внешнюю линию. Измените все пароли по умолчанию, не позволяйте Asterisk работать под root, и если вы решите использовать генератор конфигурации, измените и пароли по умолчанию там.
3. Обнаружение взлома (обнаружение вторжений) Такие инструменты, как fail2ban, тривиальны (на самом деле Digium предупреждает пользователей НЕ использовать fail2ban в качестве брандмауэра / устройства безопасности). Тем не менее, если у вас действительно нет навыков, чтобы настроить что-то еще, тогда fail2ban лучше, чем ничего. Большинство людей не понимают, что fail2ban полностью зависит от Asterisk для обнаружения и отклонения попытки набора / регистрации до того, как IP-адрес может быть заблокирован. Поэтому, если атака не вызывает этих ошибок Asterisk, тогда fail2ban ничего не делает. (Кроме того, с помощью fail2ban вы блокируете злоумышленников на АТС, а не на межсетевом экране).
Теперь о самом взломе. Как узнать, использует ли злоумышленник искаженные SIP-пакеты? В этом случае загляните в "фыркань" или другие анализаторы пакетов SIP. Что делать, если злоумышленник перемещается через большую подсеть, если IP-адреса или IP-адреса VPN? Убедитесь, что ваш инструмент обнаружения может это отслеживать. А как насчет блокировки IP на основе геозоны? Расширенные брандмауэры могут это сделать, а также некоторые брандмауэры с открытым исходным кодом, например "pfsense" и проприетарные системы безопасности Asterisk, такие как «СекАст».
Генераторы конфигурации (например, FreePBX) имеют плохую историю безопасности, особенно в отношении эксплойтов в GUI конечного пользователя. Если вы решили предоставить доступ к графическому интерфейсу HTTP в Интернете, вам лучше установить обнаружение взлома на основе хоста, например "tripwire".
4. Обнаружение мошенничества Серьезные хакеры перехватывают пакеты и даже сами взламывают телефоны, чтобы украсть действительные учетные данные. Как остановить хакеров с действующими учетными данными? Есть несколько инструментов с открытым исходным кодом для отслеживания SIP-каналов, которые можно использовать для определения количества каналов по источнику (напишите свои собственные сценарии обнаружения) или коммерческих продуктов, таких как «СекАст» которые отслеживают скорость набора, количество установок вызовов в секунду (поскольку мошенники стремятся использовать учетные данные для мошенничества с платными вызовами, прежде чем будут отключены добавочные номера / IP-адреса / соединительные линии).
А как насчет обнаружения подозрительного количества звонков с / на определенные DID, как это часто бывает при мошенничестве с телефонной связью? Такие инструменты, как «СекАст» может отслеживать их и даже сравнивать с телефонными номерами, которые, как известно, используются для мошенничества (даже если злоумышленник поддерживает низкий общий объем своего канала).
Как и в случае № 3, если ваши пользователи работают в четко определенных географических областях, тогда расширения геозоны, даже если у них есть действительные учетные данные. Расширенные брандмауэры могут это сделать, а также некоторые брандмауэры с открытым исходным кодом, например "pfsense" и Cisco и собственные системы безопасности Asterisk, такие как «СекАст».
Резюме Таким образом, вы можете и должны сделать МНОГОЕ для защиты своей УАТС. Выше я перечислил несколько продуктов с открытым исходным кодом, которые позволяют достичь разумного уровня безопасности (если у вас достаточно навыков). Я также упомянул некоторые проприетарные инструменты, которые обычно выполняют все вышеперечисленное за вас, но вам придется потратить немного денег на их использование. Однако после вашего первого счета за телефон на 400 000 долларов вы можете обнаружить, что дешево сейчас означает дороже позже (погуглите телефонный счет Astricon на 400 000 долларов, и вы поймете, что я имею в виду)