Как я уже как-то раз рассказывал, довелось мне вывести неподготовленный астериск в интернет и забыть об этом.. Буквально через пару недель мне об этом напомнили счета от SIP-провайдера, где красовались значительные суммы. Мне еще повезло, что провайдер заблокировал аккаунт по достижении лимита кредита и мы не ушли в глубокий и далекий… хмм… минус Во избежание повторения проблем, я опишу примерный список мероприятий, которые я с тех пор провожу над asterisk перед выводом его в интернет.
В интернете гуляет много историй о взломах астериска и последующей кары от оператора. Где-то лежала байка о некой маленькой компании в Австралии, которую угораздило залететь на $15000-20000. Думаю никто не хочет оказаться в подобной ситуации. Гораздо лучше, не дожидаясь беды, провести некоторый комплекс мероприятий, который значительно сократит количество вариантов взлома и минимизирует опасность.
Защита динамическими правилами фаэрвола
Я уже писал про защиту программой fail2ban . Работает тоже довольно эффективно, однако существует некоторая загвоздка. Asterisk не поддерживает таймаут между попытками регистрации и по-этому злоумышленник за очень короткий период времени (несколько
секунд), пока реагирует fail2ban, может успеть провести гораздо больше попыток подбора, чем мы указываем в настройках. У меня есть примеры, когда блокировка происходила на ~95й попытке подбора, что не есть гуд.
Нестандартный порт вместо 5060
Если имеется техническая возможность – ОБЯЗАТЕЛЬНО меняйте стандартный порт 5060 на любой другой. Чем он будет больше непохож на стандартный – тем лучше. Злоумышленники очень быстро найдут ваш астериск обычным сканированием портов по диапазону адресов. Это произойдет очень быстро – первые попытки подбора пароля у меня обнаружились уже через 3 дня после вывода asterisk в интернет.
Настройка порта производится в файле sip.conf в секции [general]:
bindport=5060 => bindport=5172
После таких действий, количество подборщиков уменьшится практически до нуля.
Отключаем guest-звонки
Если у вас нет необходимости принимать звонки без регистрации, обязательно выключите следующую опцию в sip.conf:
allowguest=yes => allowguest=no ; Allow or reject guest calls (default is yes)
Отключаем оповещение о неверном пароле
Практически у всех существуют аккаунты asterisk вида 100, 200, 700 и т.п. По умолчанию астериск выдает одну ошибку о неверном пароле для существующего аккаунта и другую для несуществующего аккаунта. С помощью спец. софта для подбора паролей, злоумышленник может быстро перебрать все короткие номера и подбирать пароли только к существующим аккаунтам, которые ответили «неверный пароль». Чтобы препятствовать этому, меняем опцию в sip.conf:
alwaysauthreject = no => alwaysauthreject = yes
После такой настройки, астериск будет давать одинаковый отбой для любых неверных авторизаций.
Используем сложные пароли для аккаунтов
Любой пароль можно подобрать, вопрос только во времени. Поскольку настройка sip-устройств производится один раз и надолго, не скупитесь на сложные пароли. Для себя я использую длинные пароли с комбинациями больших и маленьких букв + цифр такого вида:
ОБЯЗАТЕЛЬНО уберите все пароли совпадающие с логинами. Это – первые пароли, используемые для паролей.
Используем deny/permit для аккаунтов
Обязательный момент! Указываем для всех аккаунтов, которые не подразумевают подключение из интернета следующие строки:
Где 10.1.1.1,10.1.2.1 – диапазоны локальных адресов, с которых будет производится подключение. Подключения с других адресов asterisk принимать не будет.
Устанавливаем лимит звонков
В случае взлома, для уменьшения затрат, рекомендую установить лимит одновременных звонков для аккаунтов в 1, чтобы злоумышленник не мог одновременно звонить на много направлений и, тем самым, быстрее расходовать ваши деньги.
Не используем default-экстеншн без необходимости
Не надо оно нам Все, что должно быть в дефолте:
Не делаем одно универсальное правило для всех звонков
Скажем нет правилам вида:
Прописываем четко все необходимые комбинации номеров, передаваемых оператору. Если нет необходимости использовать международную связь – не описывайте правила для нее вообще. Практически все случаи взломов используются для звонков заграницу.
На этом пожалуй закончим
Источник http://www.mahno.su/freebsd/asterisk-freebsd/zashhita-asterisk-ot-vzloma
В интернете гуляет много историй о взломах астериска и последующей кары от оператора. Где-то лежала байка о некой маленькой компании в Австралии, которую угораздило залететь на $15000-20000. Думаю никто не хочет оказаться в подобной ситуации. Гораздо лучше, не дожидаясь беды, провести некоторый комплекс мероприятий, который значительно сократит количество вариантов взлома и минимизирует опасность.
Защита динамическими правилами фаэрвола
Я уже писал про защиту программой fail2ban . Работает тоже довольно эффективно, однако существует некоторая загвоздка. Asterisk не поддерживает таймаут между попытками регистрации и по-этому злоумышленник за очень короткий период времени (несколько
секунд), пока реагирует fail2ban, может успеть провести гораздо больше попыток подбора, чем мы указываем в настройках. У меня есть примеры, когда блокировка происходила на ~95й попытке подбора, что не есть гуд.
Нестандартный порт вместо 5060
Если имеется техническая возможность – ОБЯЗАТЕЛЬНО меняйте стандартный порт 5060 на любой другой. Чем он будет больше непохож на стандартный – тем лучше. Злоумышленники очень быстро найдут ваш астериск обычным сканированием портов по диапазону адресов. Это произойдет очень быстро – первые попытки подбора пароля у меня обнаружились уже через 3 дня после вывода asterisk в интернет.
Настройка порта производится в файле sip.conf в секции [general]:
bindport=5060 => bindport=5172
После таких действий, количество подборщиков уменьшится практически до нуля.
Отключаем guest-звонки
Если у вас нет необходимости принимать звонки без регистрации, обязательно выключите следующую опцию в sip.conf:
allowguest=yes => allowguest=no ; Allow or reject guest calls (default is yes)
Отключаем оповещение о неверном пароле
Практически у всех существуют аккаунты asterisk вида 100, 200, 700 и т.п. По умолчанию астериск выдает одну ошибку о неверном пароле для существующего аккаунта и другую для несуществующего аккаунта. С помощью спец. софта для подбора паролей, злоумышленник может быстро перебрать все короткие номера и подбирать пароли только к существующим аккаунтам, которые ответили «неверный пароль». Чтобы препятствовать этому, меняем опцию в sip.conf:
alwaysauthreject = no => alwaysauthreject = yes
После такой настройки, астериск будет давать одинаковый отбой для любых неверных авторизаций.
Используем сложные пароли для аккаунтов
Любой пароль можно подобрать, вопрос только во времени. Поскольку настройка sip-устройств производится один раз и надолго, не скупитесь на сложные пароли. Для себя я использую длинные пароли с комбинациями больших и маленьких букв + цифр такого вида:
1 | secret=f64GCD74ssdZ42 |
Используем deny/permit для аккаунтов
Обязательный момент! Указываем для всех аккаунтов, которые не подразумевают подключение из интернета следующие строки:
1 2 3 4 5 | [100] ... deny=0.0.0.0/0.0.0.0 permit=10.1.1.1/24 permit=10.1.2.1/24 |
Устанавливаем лимит звонков
В случае взлома, для уменьшения затрат, рекомендую установить лимит одновременных звонков для аккаунтов в 1, чтобы злоумышленник не мог одновременно звонить на много направлений и, тем самым, быстрее расходовать ваши деньги.
1 2 3 | [100] call-limit=1 ... |
Не используем default-экстеншн без необходимости
Не надо оно нам Все, что должно быть в дефолте:
1 2 | [default] exten => _X.,1,Hangup |
Не делаем одно универсальное правило для всех звонков
Скажем нет правилам вида:
1 | exten => _X.,1,Dial(SIP/${EXTEN}@operator) |
1 2 3 4 5 6 7 8 9 10 11 12 13 | ;Экстренные службы 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
Комментариев нет:
Отправить комментарий