На днях у меня случилась неприятная история с одним из серверов Asterisk. Пользователи стали жаловаться на то, что не работает межгород. Звонят по нему редко, так что заметили не сразу. Я проверил, и правда не звонит. Сервер оператора возвращает 500-ю ошибку:
Got SIP response 500 "Service Unavailable"
Звоню в тех. поддержку. Там ответили, что мы вас отключили ещё 2 недели назад за подозрительные звонки на Кубу. Тут я запереживал немного, стал проверять. Действительно было немного звонков туда от одной учётной записи. Пароль сменил, международные звонки вообще отключил. Позвонил оператору и попросил нас разбанить.
Я всегда запрещаю по максимому все звонки и вообще к телефонии отношусь очень аккуратно. На этом сервере удалённые подключения долго были запрещены, пиры только из офиса и vpn подключались. Потом меня очень попросили сделать возможность пользоваться телефонией со смартфонов. Я настроил отдельную группу номеров, которые могут подключаться извне, но разрешены были только локальные звонки.
Потом пришла удалёнка и люди со своими аппаратами разъехались по домам. Ограничить доступ стало невозможно, потому что каждому дома не настроишь VPN до офиса на его железе. Пришлось разрешить все звонки и таким удалёнщикам. Международные звонки по прежнему были отключены, но они нужны. Открывал их вручную по заявкам, но в какой-то момент это надоело, так как оперативно не получалось решить вопрос, а звонить надо здесь и сейчас. Открыл для всех. Закончилось это историей, с которой я всё начал.
На сервере настроен мониторинг исходящих звонков и активных подключений. Спам звонками заметил бы. Fail2ban тоже был и работал для защиты от переборов и некоторой другой активности. Подстраховался как мог, но всё равно не помогло. Слитая учётка особо не отсвечивала и звонила редко, раз в 5-10 минут. Повезло, что у оператора стояла защита на подозрительные направления. Международные звонки отключили сразу.
Как на 100% защититься от такой ситуации - не знаю. Сейчас все по домам сидят, работают. Всем нужна связь. Спасти может только сам оператор своими методами защиты и лимитом дневного бюджета. Рекомендую заранее связаться с провайдером и спросить, что будет, если учётка уйдёт на сторону и начнутся звонки на Кубу. Как уже сказал, я у себя международные звонки опять отключил, настроил уведомление себе на почту при попытке позвонить по 8-10... Раньше так и было, но расслабился. Так хотя бы сразу засветится проблемный пир.
Кстати, косвенно помогла моя педантичность в выписывании масок для звонков. Я не разрешаю одним правилом всё подряд, а аккуратно выписываю разрешённые направления. В логах была куча попыток позвонить через номера, начинающиеся с 00, 01, 02, 03, ~1, +1, +2 и т.д. То есть куча левых направлений. Но все они отфутболились, потому что для них не было настроенных масок для звонков. Только _810X. и внутрироссийские.
А вы как защищаетесь от таких атак? Понятно, что самый надёжный способ подключать пиров только через VPN, но мне кажется, это малореально в текущих условиях. Придётся преднастроенные смартфоны и телефоны сразу с настроенными роутерами выдавать. Я, кстати, так тоже делал, но это немассовое решение (юзеру выдавался настроенный mikrotik и sip телефон комплектом). Также покупал аппараты с поддержкой OpenVPN внутри. Были такие Грандстримы. Но ненадёжно работало и трудно дебажить проблемы связи, пришлось отказаться.
Напишите в комментариях, кому интересно, стоит мне отдельным постом написать, как я мониторю и защищаю сервер Asterisk. Тема узкая и, думаю, что мало кому интересная в наши дни.
#asterisk #sip #security