AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

О безопасности

Asterisk IP PBX 56 сообщений 17.12.2010 08:38 - 09.04.2014 12:38
#1

О безопасности


встретилась ссылка на наге, на мой взгляд всё по делу:
http://www.sipmarket.net/RU/news_text.aspx?id=56

из неотмеченного в статье - возможен подбор не только по словарю, но и брутфорс. по слухам, на "толстом" канале брутфорс против asterisk'а достаточно эффективен.
усугубляет проблему то, что для "железячных" sip-аккаунтов обычно выбираются недлинные цифровые пароли.

применительно к asterisk:
- в sip.conf в секции [general] прописываете "урезанный" контекст по умолчанию и/или прописываете allowguest=no;
- для тех аккаунтов, которые могут использоваться только из локальной сети, запрещаете доступ "снаружи", например
Код:
deny=0.0.0.0/0.0.0.0
permit=10.0.0.0/255.0.0.0

- не ленитесь ставить нормальные пароли для остальных аккаунтов;
- отключайте загрузку неиспользуемых каналов в modules.conf (список загруженных можно посмотреть, набрав в консоли core show channeltypes, имена загруженных модулей - module show).


Последний раз редактировалось: edo1 (Вт Авг 10, 2010 14:59)
#2

есть реальный случай который произошел примерно 1,5 мес назад. Людям наговорили в направление Словения моб. около 1500 уе.
#5

Честно меня всегда интересовал вопрос, вот в триксбоксе, практически без разницы какая версия (думаю вообще всё равно какая), если оставить не запароленную директорию user, считай твой сервак нагнули, заливают туды скриппты, потом всё под рутом получают доступ, меняют ps, top.... и тому подобное короче уже не найти концов, шелов не видно, пока всё руками не почистить не удалить, не поменять.
Вообще как это делается, и не кажется это странным, что триксбоксовцы (на оф сайте) оставляют директорию user открытой и чёт прямого указания такого не делать не видел я.
#6

в файл /etc/fail2ban/filter.d/asterisk.conf добавьте новое правило:
Код:
NOTICE.* .*: Registration from '.*' failed for '' - Peer is not supposed to register
#8

Подскажите, на одной машине заметил, длина значимого пасса на maint 8 символов, так и задумано, или чаго-то в системе накрутилось не то (кое чаго переставлял), если да то что нужно смотреть, что бы длину увеличить?
#9

Попробовав использовать fail2ban для более чем 1-2 логов, напоролся на множество граблей.
Нашёл ему более мощную и более универсальную замену: http://www.ossec.net/
Рекомендую.
#10

а что за грабли, можно поподробней?
#11

Ага, подробности интересуют. Самого похачили в ноябре, звонили на кубу
#13

Мда... штука рабочая, попробовал чпокнуть свой сервак, но fail2ban на 100-той попытке забанил айпишник. Хороший тестер. А вообще, лучше в iptables открывать только тем доступ, в ком уверен.
#14

почему только на сотой? или у вас машина дико тормозит или вы сами в его конфиге увеличили количество попыток. по умолчанию это 5, я рекомендую ставить 3-4. так же там есть опция как часто перечитывать файл лога, по умолчанию это 5 минут (если не ошибаюсь), можно поставить минуту. это на тот случай если с машиной у вас все в порядке и в конфиге не увеличиывли кол-во попыток - тогда должно уже быть вместо ста всего штук 20 попыток, а то и меньше.
#15

Последние 2 дня большой источник зла ip адрес: 184.154.126.114. fail2ban отрабатывает нормально.
Но, все же, запросы продолжаются, и за последние сутки "набрутил" на 3.86 GB нашего входящего трафика.
#16

Подскажите какие механизмы безопасности реализованы в Asterisk.
Т.е. я скачиваю и устанавливаю Asterisk, то какие механизмы безопасности уже реализованы на исходной стадиии?

Спасибо
#17

раз вы скачиваете и устанавливаете Астериск, то значит и читаете документацию которая идет в пакете с ним.
#18

Когда fail2ban ставите на свой дистр., незабывайте сразу же подправить правила logrotate,
если запускаете asterisk не из-под root'a.
Так должны выглядеть настройки /etc/logrotate.d/asterisk для asterisk'a запущенного от имени пользователя asterisk
/var/log/asterisk/debug /var/log/asterisk/console /var/log/asterisk/full /var/log/asterisk/messages /var/log/asterisk/*log {
weekly
missingok
rotate 52
compress
delaycompress
notifempty
create 640 asterisk asterisk
sharedscripts
postrotate
/usr/sbin/asterisk -rx 'logger reload' > /dev/null 2> /dev/null
endscript
}


В статьях, которые я видел, про это не упоминается.

PS: Вообще неплохой инструмент fail2ban, но медленный - если плотность запросов очень высока, то может пропускать сверх лимита установленного в правилах.
Надо попробовать ossec. Есть у кого-то готовый рецепт ossec для астериска?
#19

Для версии 1.8 нужны изменения в файле /etc/fail2ban/filter.d/asterisk.conf

в строках

NOTICE.* .*: Registration from '.*' failed for ' - Wrong password
NOTICE.* .*: Registration from '.*' failed for '' - No matching peer found
NOTICE.* .*: Registration from '.*' failed for '' - Username/auth name mismatch
NOTICE.* .*: Registration from '.*' failed for '' - Device does not match ACL
NOTICE.* .*: Registration from '.*' failed for '' - Peer is not supposed to register

нужно заменить '' на ':.*'
т.к. астериск пишет не только хост например 192.168.1.1 но и порт 192.168.1.1:5071

С этими строками еще не разбирался

NOTICE.* failed to authenticate as '.*'$
NOTICE.* .*: No registration for peer '.*' \(from \)
NOTICE.* .*: Host failed MD5 authentication for '.*' (.*)
NOTICE.* .*: Failed to authenticate user .*@.*

Может кто подскажет....
#20

код на перле

делаем:
iptables -N asterisk
iptables -A INPUT -j asterisk
iptables -A FORWARD -j asterisk

Потом запускаем ip_blocker.pl. Скаснирует весь лог, так что прогон займет время.
A вообще хакают сип телефоны, одним моим знакомым назвонили на на почти 20000 евро, другим на 4000.

Так что надо смотреть также:
количество попыток набора (20 в минуту с редайлами хватит самому нервному менеджеру);
странность трафика, звонки идут в необычном для этого клиента направлении;

Надо ограничивать кол-во линий, сип акаунту обычному хватит двух (на трансферы и ожидание).

Сип телефоны ставить запароленные а не с обычным сип акаунтом (веб пароль), а то в последнем случае ломанли ребят через сип телефон, что на паблик айпи стоял с дефолтным доступом (админ/админ).
#21

Ломают Freepbx!


Вчера взломали Freepbx. Апдейты всех модулей были установлены до сентября.
Как понимаю, воспользовались недавно найденной уязвимостью
http://issues.freepbx.org/browse/FREEPBX-8070
Веб светился наружу.

Мы были не первые. Ломалщик один и тот же.
Все совпадает, как здесь http://community.freepbx.org/t/critical- ... 7235/24536
Именует себя mgknight
Атаки были с облачного сервиса во Франкфурте. Скорее всего ломаная вм.
По логам позвонил на номер +380823490329.
Не пойму, что за номер. Вроде как в Украине.
Потом с периодичностью в 10 сек стал названивать на +29096255.
Такую активность заметили и все позакрывали.
Может кто подскажет, что это за номера?
#22

Да, действительно +380 это код Украины, но оператора 82 в Украине не существует.
+290 – Saint Helena; Tristan da Cunha.
#23

В Севастополь +78692 хххххх
#24

Есть наработки или что-то готовое по fraud мониторингу, а то я нашёл хамбург платный и SecAst вроде бесплатный, но мне почему-то показался не совсем простым и с кучей не понятного.
Хочется ищет в ами постоянно, видит плохое творить, заставляет звонить другой или этот Астер, а сам тушит Астер или маршрут меняет, в общем другой скрипт запускает.
Думаю для себя что-то наваять, но чувствую что-то не додумаю и как следствие не доделаю, до полного счастья.
#25

Присоединяйся: http://frod.subnets.ru/
_________________
mega-net.ru - IT аутсорсинг
#26

Спасибо
#27 17.12.2010 08:38

такой трафик в Black Hole может завернуть ваш провайдер, достаточно письма
#28 18.12.2010 01:04

iptables -A INPUT -s 184.154.126.114 -j DROP
#29 21.12.2010 09:19

Shurman писал(а):
Попробовав использовать fail2ban для более чем 1-2 логов, напоролся на множество граблей.

anest писал(а):
а что за грабли, можно поподробней?
#30 21.12.2010 11:42

По поводу fail2ban

1. Пришлось править код fail2ban-а, чтобы при старте/остановке соответствующие цепочки выставлялись-удалялись с некоторой задержкой. Иначе вылезали ошибки, причём в разных местах/случаях (иногда, например, при запуске все три нужные мне цепочки создадутся, иногда - две, иногда - одна, иногда - ни одной.
2. Когда добавил три логфайла, за которыми надо следить - стало крайне криво работать само слежение - то есть тупо игнорировались записи в файлах (попадающие под регэкспы).
В общем - если следишь за одним или максимум за двумя логами - он более-менее нормально работает. Больше - уже нет.
Заменил его ossec-ом - и очень остался доволен, он и мощней, и работает надёжно.
#31 21.12.2010 12:22

странно.. но спасибо всеравно.
а конфигом для астериска под ossec не поделитесь с народом?
#33 04.06.2011 20:08
Семь простых шагов по укреплению SIP безопасности на Астериск

1. Не разрешайте SIP аутентификацию со ВСЕХ ИП адресов. Используйте опции “permit=” и “deny=” в sip.conf как в глобальной секции, так и в параметрах пиров. Разрешайте только ожидаемые диапазоны ИП адресов. Даже если принимаете входящие "отовсюду" (через контекст [default]) не забывайте об аутентификации!

2. Укажите “alwaysauthreject=yes” в глобальной секции файла sip.conf. Эта опция доступна давно (уже с версии 1.2?) но по дефолту она в “no”, что позволяет получить информацию о внутренних номерах даже при неудавшейся регистрации. Устанавливая этот паратметр в “yes” мы отправляем такой же "reject" для существующего внутреннего номера, как и в случае несуществующего. Это уменьшает возможности удалённых хакеров получить список номеров, по которым уже начинается атака по подбору паролей методом brute force.

3. Используйте СЛОЖНЫЕ пароли для всех SIP пиров и юзеров. Это возможно наиболее важный шаг, который вы можете предпринять. Не используйте последовательно два одинаковых слова,разделите их хоть "1". Если бы вы видели инструменты по подбору паролей вы бы поняли смысл этой казалось бы простой рекомендации, так как такое задваивание является ничтожной помехой для современных процессоров. Используйте символы, цифры и буквы обеих регистров длиной не менее 12 знаков.

4. Блокируйте доступ к порту AMI. Используйте “permit=” и “deny=” параметры в manager.conf чтобы сократить число возможных подключений только с доверенных хостов. Используйте сложные пароли минимум из 12-ти знаков в различных сочетаниях символов, цифр и букв разного регистра.

5. Разрешайте только один или два одновременных вызова с каждого внутреннего SIP абонента, если возможно. В любом случае любые ограничения против мошенников являются мудрым шагом. Не допускайте разрешённым пользователям, которые имеют доступ к настройкам, хранить пароли в обозреваемом месте (например записаные снизу на телефоне).

6. Делайте SIP usernames отличными от внутренних номеров. Обычно внутренний номер “1234″ соответствует SIP пиру “1234″, который имеет аналогично SIP user “1234″, это лёгкая цель для хакеров в попытке угадать аутентифицированые SIP names. Используйте МАС адреса устройств или другие комбинации известных фраз + MD5 хэширование внутреннего номера (например исполните команду “md5 -s ThePassword5000″)

7. Убедитесь, что контекст [default] достаточно рационален. Не допускайте неаутентифицированным входящим соединениям попадать в любые контексты, откуда исполняются платные вызовы. Ограничивайте количество активных звонков в дефолтном контексте (используя функцию “GROUP” в качестве счётчика). Запретите неаутентифицированные звонки (если вы действительно их не хотите) установкой параметра “allowguest=no” в секции [general] файла sip.conf.


Взял с http://asterisk.ru/news/archive
http://asterisk.ru/news/142
#34 01.12.2011 17:47
добавлю от себя: т.к. абсолютной защиты не существует
Самое первое что нужно сделать, это договориться с оператором:
1. о полном запрете ненужных вам направлений, типа Куба, Африка.
2. работать исключительно по предоплате или установить лимит на стоимость исходящих звонков, тогда ваши максимальные потери будут равны остатку на счете или кредитному лимиту. Это конечно не всегда удобно, но зато гарантированно убережет вас от необходимости продавать машину или квартиру.
а потом уже можете разбираться с разными программными защитами.
#36 17.06.2012 08:05
Спасибо!
#37 10.08.2012 06:28
Asterisk 1.8.15.0. Недавно начали надоедать господа из оккупированных палестинских территорий. В логах можно заметить такое:

Код: Выделить всё

Sending fake auth rejection for device 5550000;tag=f140a208 
Естественно правило fail2ban сработает только блокировкой внешнего IP Asterisk. Здесь на форуме предлагали лекарство правкой исходника, но оно не работает на 1.8.
Открыв исходник chan_sip.c, можно увидеть в нескольких местах строчки:

Код: Выделить всё

ast_log(LOG_NOTICE, "Sending fake auth rejection for device %s\n", get_header(req, "From")); 
Поиском по форуму digium, нашлось решение. Заменил в исходнике вышеуказанные строчки на вот такую конструкцию:

Код: Выделить всё

ast_log(LOG_NOTICE, "Sending fake auth rejection for device %s (%s)\n", get_header(req, "From"), ast_sockaddr_stringify(addr)); 
Теперь в логах детектится IP адрес:

Код: Выделить всё

Sending fake auth rejection for device 5550000;tag=b80e9671 (83.244.6.160:10045) 
Правило в /etc/fail2ban/filter.d/asterisk.conf:

Код: Выделить всё

NOTICE.* .*: Sending fake auth rejection for device.* \(:.*\)
Теперь палестинцы успешно отправляются в бан.

Update: 23.12.2014
В 1.8.21.0-1.8.32.1 в исходниках небольшие изменения. В 4-х местах:

Код: Выделить всё

ast_log(LOG_NOTICE, "Failed to authenticate device %s\n", get_header(req, "From"));
Меняем на:

Код: Выделить всё

ast_log(LOG_NOTICE, "Failed to authenticate device %s (%s)\n", get_header(req, "From"), ast_sockaddr_stringify(addr));
Естественно правило в /etc/fail2ban/filter.d/asterisk.conf:

Код: Выделить всё

NOTICE.* .*: Failed to authenticate device.* \(:.*\)
#38 31.01.2013 09:52

xtables-addons

А почему бы не использовать блокировку по странам?


1) Ставим из репозитория xtables-addons.
2) Скачиваем базу по странам GEOIP:
./xt_geoip_dl (в зависимости от дистрибутива файл может быть в разных папках).
3) Конвертируем базу для xtables-geoip:
Узнаём откуда она будет брать правила:

Код: Выделить всё

iptables -A INPUT ! -i lo -m geoip ! --source-country RU,UA -j DROP Could not open /usr/share/xt_geoip/LE/RU.iv4: No such file or directory 
/usr/share/xt_geoip/LE/ - место где ищет базу модуль geoip iptables. Запоминаем это место(в зависимости от дистрибутива может быть другим).
Создаём саму базу по требуемому пути.

Код: Выделить всё

 /usr/share/doc/xtables-addons-1.46/geoip/xt_geoip_build -D /usr/share/xt_geoip/LE/
4) Добавляем страны в черный/белый список используя синтаксис iptables(параметры -m geoip --source-country.код_страны)
К примеру дропать весь китай:

Код: Выделить всё

iptables -A INPUT -m geoip --source-country CH -j DROP 
[spoiler="Для пользователей Fedora"]
В fedora надо выполнить

Код: Выделить всё

chmod +x /usr/share/doc/xtables-addons-1.46/geoip/xt_geoip_dl chmod +x /usr/share/doc/xtables-addons-1.46/geoip/xt_geoip_build
1.46 версия, она может отличаться.
[/spoiler]

Так же как вариант для защиты TCP порта(вдруг) использовать TARPIT, а не DROP.
Можно так же настроить ipset со списком сетей/адресов(к примеру своего города) как белый список.

[spoiler="Как замена fail2ban с быстрой реакцией на количество попытко входа"]Ещё можно попробовать сделать так:
recent,hashlimit
Так дропается самим iptables не доходя до астериска, то есть ресурсы на проверку регистрации тратится не будут + не надо парсить лог, да и скорость реакции естественно выше чем в варианте fail2ban
[/spoiler]
#40 07.06.2013 22:35
добавить в правила файрвола еще одну строчку - открыть порт для vpn. из китая всеравно никакого нативного воипа не получится а вот vpn клиент в смартфоне пригодится в любом месте и всегда. раз настроил и забыл про наты и файрволы навсегда.
#41 08.06.2013 17:23
Походу секурити в астере (доработано в F2B) более глобально для отлова хакеров по IP ( Работает астер 11 и 12) ...
#42 11.08.2013 14:23
собрал патч для исправления логов для fail2ban для астериск 11.5.0
юзать так:

Код: Выделить всё

[email protected]:/usr/src/asterisk-11.5.0# patch -p0 < ../sip_fail2ban.patch 
раньше логи были такие:

Код: Выделить всё

[Aug 11 14:18:27] NOTICE[2296][C-0000009d] chan_sip.c: Failed to authenticate device 401;tag=b832c932 [Aug 11 14:18:28] NOTICE[2296][C-0000009e] chan_sip.c: Failed to authenticate device 401;tag=a32efdbc [Aug 11 14:18:30] NOTICE[2296][C-0000009f] chan_sip.c: Failed to authenticate device 401;tag=edd8e5f9 
теперь такие:

Код: Выделить всё

[Aug 11 15:40:03] NOTICE[13245][C-0000000e] chan_sip.c: Failed to authenticate device 11;tag=f5bb5a21 (176.58.75.70:19498) [Aug 11 15:40:04] NOTICE[13245][C-0000000f] chan_sip.c: Failed to authenticate device 11;tag=a46203d8 (176.58.75.70:19498) [Aug 11 15:40:06] NOTICE[13245][C-00000010] chan_sip.c: Failed to authenticate device 11;tag=fbafc92e (176.58.75.70:19498) 
[spoiler]
sip_fail2ban.patch

Код: Выделить всё

--- channels/chan_sip.c.org 2013-05-14 01:05:38.000000000 +0400 +++ channels/chan_sip.c 2013-08-11 14:31:14.111704400 +0400 @@ -18520,7 +18520,7 @@ return; } if (res < 0) { /* Something failed in authentication */ - ast_log(LOG_NOTICE, "Failed to authenticate device %s\n", sip_get_header(req, "From")); + ast_log(LOG_NOTICE, "Failed to authenticate device %s (%s)\n", sip_get_header(req, "From"), ast_sockaddr_stringify(addr)); transmit_response(p, "403 Forbidden", req); sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT); return; @@ -24616,7 +24616,7 @@ return 0; } if (res < 0) { /* Something failed in authentication */ - ast_log(LOG_NOTICE, "Failed to authenticate device %s\n", sip_get_header(req, "From")); + ast_log(LOG_NOTICE, "Failed to authenticate device %s (%s)\n", sip_get_header(req, "From"), ast_sockaddr_stringify(addr)); transmit_response(p, "403 Forbidden", req); sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT); return 0; @@ -25279,7 +25279,7 @@ goto request_invite_cleanup; } if (res < 0) { /* Something failed in authentication */ - ast_log(LOG_NOTICE, "Failed to authenticate device %s\n", sip_get_header(req, "From")); + ast_log(LOG_NOTICE, "Failed to authenticate device %s (%s)\n", sip_get_header(req, "From"), ast_sockaddr_stringify(addr)); transmit_response_reliable(p, "403 Forbidden", req); p->invitestate = INV_COMPLETED; sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT); @@ -27325,7 +27325,7 @@ p->lastinvite = seqno; return 0; } else if (auth_result < 0) { - ast_log(LOG_NOTICE, "Failed to authenticate device %s\n", sip_get_header(req, "From")); + ast_log(LOG_NOTICE, "Failed to authenticate device %s (%s)\n", sip_get_header(req, "From"), ast_sockaddr_stringify(addr)); transmit_response(p, "403 Forbidden", req); sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT); ast_string_field_set(p, theirtag, NULL); @@ -27540,7 +27540,7 @@ if (res == AUTH_CHALLENGE_SENT) /* authpeer = NULL here */ return 0; if (res != AUTH_SUCCESSFUL) { - ast_log(LOG_NOTICE, "Failed to authenticate device %s for SUBSCRIBE\n", sip_get_header(req, "From")); + ast_log(LOG_NOTICE, "Failed to authenticate device %s for SUBSCRIBE (%s)\n", sip_get_header(req, "From"), ast_sockaddr_stringify(addr)); transmit_response(p, "403 Forbidden", req); pvt_set_needdestroy(p, "authentication failed"); 
[/spoiler]
#43 12.08.2013 00:04
зачётно! но было бы еще лучше отправить этот патч разработчику f2b. ведь нужно всем по большому счету.
#44 12.08.2013 13:50
ИМХО его надо тупо интегрировать в астериск. Но пинать их мне пока опыта не хватает - я только около пары месяцев с астериском работаю.
#45 07.09.2013 10:26
я ошибся, конечно в астериск. достаточно отправить в багтрак заявку, уверен народ поддержит бодро ибо необходим этот патчик потенциально всем.
[spoiler]ps: просьба не злоупотреблять цитированием без особой на то нужды, спасибо.[/spoiler]
#46 11.09.2013 14:07
обновил под asterisk-11.5.1:
[spoiler]
nano chan_sip.patch

Код: Выделить всё

--- channels/chan_sip.c 2013-08-27 12:25:11.000000000 -0700 +++ channels/chan_sip.c.new 2013-09-11 06:16:10.673613358 -0700 @@ -18520,7 +18520,7 @@ return; } if (res < 0) { /* Something failed in authentication */ - ast_log(LOG_NOTICE, "Failed to authenticate device %s\n", sip_get_header(req, "From")); + ast_log(LOG_NOTICE, "Failed to authenticate device %s (%s)\n", sip_get_header(req, "From"), ast_sockaddr_stringify(addr)); transmit_response(p, "403 Forbidden", req); sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT); return; @@ -24616,7 +24616,7 @@ return 0; } if (res < 0) { /* Something failed in authentication */ - ast_log(LOG_NOTICE, "Failed to authenticate device %s\n", sip_get_header(req, "From")); + ast_log(LOG_NOTICE, "Failed to authenticate device %s (%s)\n", sip_get_header(req, "From"), ast_sockaddr_stringify(addr)); transmit_response(p, "403 Forbidden", req); sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT); return 0; @@ -25279,7 +25279,7 @@ goto request_invite_cleanup; } if (res < 0) { /* Something failed in authentication */ - ast_log(LOG_NOTICE, "Failed to authenticate device %s\n", sip_get_header(req, "From")); + ast_log(LOG_NOTICE, "Failed to authenticate device %s (%s)\n", sip_get_header(req, "From"), ast_sockaddr_stringify(addr)); transmit_response_reliable(p, "403 Forbidden", req); p->invitestate = INV_COMPLETED; sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT); @@ -27325,7 +27325,7 @@ p->lastinvite = seqno; return 0; } else if (auth_result < 0) { - ast_log(LOG_NOTICE, "Failed to authenticate device %s\n", sip_get_header(req, "From")); + ast_log(LOG_NOTICE, "Failed to authenticate device %s (%s)\n", sip_get_header(req, "From"), ast_sockaddr_stringify(addr)); transmit_response(p, "403 Forbidden", req); sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT); ast_string_field_set(p, theirtag, NULL); @@ -27540,7 +27540,7 @@ if (res == AUTH_CHALLENGE_SENT) /* authpeer = NULL here */ return 0; if (res != AUTH_SUCCESSFUL) { - ast_log(LOG_NOTICE, "Failed to authenticate device %s for SUBSCRIBE\n", sip_get_header(req, "From")); + ast_log(LOG_NOTICE, "Failed to authenticate device %s for SUBSCRIBE (%s)\n", sip_get_header(req, "From"), ast_sockaddr_stringify(addr)); transmit_response(p, "403 Forbidden", req); pvt_set_needdestroy(p, "authentication failed"); 
[/spoiler]
#47 12.09.2013 21:22
В Asterisk 12 внёс те же изменения что и в 11 -й версии всё работает ! :) .
#49 31.12.2013 17:36
Потестил китай - работет круто тока через IAX2 - между серваками (GSM-GSM) . Проблема в том что пинг 430 -520 (19 хопов ) , постоянный IP Там стоит 150 грн. укр. в месяц ((( . dyn-dns - при смене IP плохо отрабатывает надо перезагружать роутер в китае .
Сейчас буду тестить Zoiper по IAX ((( .
в f2b надо добавить строчку - полная копия в конце написано - No matchig peer found$ === скопируйте эту строку ниже и удалите не нужные (:[0-9]+)? !!!!
в 1.6 версии точно .
#50 04.01.2014 18:51
Рабочий вариант fail2ban без правки исходников для Asterisk10+:
1. Включаем лог security
Добавить в logger_logfiles_custom.conf

Код: Выделить всё

security => security 
убедится, что в logger.conf прописано

Код: Выделить всё

dateformat=%F %T
перезапускаем логгер:
#asterisk -rx "logger reload"

2. /etc/fail2ban/filter.d/asterisk.conf
[spoiler]

Код: Выделить всё

# Fail2Ban configuration file # # # $Revision: 250 $ # [INCLUDES] # Read common prefixes. If any customizations available -- read them from # common.local #before = common.conf [Definition] #_daemon = asterisk # Option: failregex # Notes.: regex to match the password failures messages in the logfile. The # host must be matched by a group named "host". The tag "" can # be used for standard IP/hostname matching and is only an alias for # (?:::f{4,6}:)?(?P\S+) # Values: TEXT # failregex = SECURITY.* SecurityEvent=\"InvalidPassword\".*RemoteAddress=\"IPV4/UDP// SECURITY.* SecurityEvent=\"FailedACL\".*RemoteAddress=\"IPV4/UDP// SECURITY.* SecurityEvent=\"InvalidAccountID\".*RemoteAddress=\"IPV4/UDP// SECURITY.* SecurityEvent=\"ChallengeResponseFailed\".*RemoteAddress=\"IPV4/UDP// # Option: ignoreregex # Notes.: regex to ignore. If this regex matches, the line is ignored. # Values: TEXT # ignoreregex = 
[/spoiler]

3.jail.conf
добавить в конец:
[spoiler]

Код: Выделить всё

[asterisk-iptables] enabled = true filter = asterisk action = iptables-allports[name=ASTERISK, protocol=all] sendmail-whois[name=ASTERISK, dest=root, [email protected]] logpath = /var/log/asterisk/security maxretry = 3 findtime = 60000 bantime = 259200
[/spoiler]

У меня работает, при обновлении астериска не надо будет ничего патчить.
#51 05.01.2014 05:22
Я такого описания уже штук 100 под копирку видел.
Только не забывайте что кроме астера существует другие процессы в linux и один из них logrotate
который не знает не про какой файл security и через полгода он распухнет до пару гигов и перезапуск fail2ban будет веть машину на полчаса

правильный вариант:

security_log => security

[asterisk-iptables]

enabled = true
filter = asterisk
action = iptables-allports[name=ASTERISK, protocol=all]
sendmail-whois[name=ASTERISK, dest=root, sender=[email protected]]
logpath = /var/log/asterisk/security_log
maxretry = 3
findtime = 60000
bantime = 259200

logrotate от астера по умолчанию правильно работает с файлами с окончанием *log
или надо брать уже обновленный вариант где уже прописаны файлы security или править самому.
#52 05.01.2014 06:33
logrotate от астера по умолчанию правильно работает с файлами с окончанием *log
Интересно, а где это настраивается? Или где про это почитать?

Везде описан стандартный logrotate через файл /etc/logrotate.d/asterisk
и типовая его конфигурация будет обрабатывать все файлы в папке включая security
#53 03.02.2014 03:28
ASTERISK
Security Hardening Guide v1.0


читается на одном дыхании
#54 09.02.2014 11:53
Следующие пара строк заставит отвалиться 90% "кулхацкеров" из Китая, Мексики, Африки etc.

Запросы сканеров даже до астериска не дойдут, их на месте прибивает iptables.

Код: Выделить всё

...... -A INPUT -p udp -m udp --dport 5060 -j SIP-BORDER-CONTROLLER ...... -A SIP-BORDER-CONTROLLER -m string --string "friendly-scanner" --algo bm -j DROP -A SIP-BORDER-CONTROLLER -m string --string "sip-cli" --algo bm -j DROP ...... 
Упс, Поднебесная, не подфартило :)
#55 17.02.2014 20:39
Здравствуйте!

В тестовом режиме решил использовать IDS систему OSSEC. Rules для asterisk есть и подгружаются при старте (идут по default). Проверял работу системы через sipvicious, результат 0.
Asterisk и OSSEC на одном сервере.

Соответственно вопрос, у кого есть рабочий пример ossec-server.conf и asterisk_rules.xml и active-response.

Заранее благодарен.

Настроил, использовал syslog в logger.conf и syslog.conf

Но, в alerts.log вижу попытки подбора, написано active-response на конкретный rule_id, но не срабатывает скрипт firewall-drop.sh.

Подскажите!