теоретик? половина утилит пишет asterisk 1.4.x, это не говоря о том, что вы вводите деяток сложных правил вместо одного в iptables/
meral ( 2012-11-18 17:27:53 +0400 )редактироватьВсем доброго времени. Повадились ко мне редиски пароли к номерам подбирать. В результате регулярно в логах наблюдаю: "chan_sip.c: Sending fake auth rejection for device 5550000<sip:5550000@my_internal_ip>;tag=71b060d8".
Собственно вопрос: как получить ip адрес неугомонного брутфорсера, чтобы передать его в fail2ban? На одном из форумов нашел такой совет:
В файле chan_sip.c в районе строки №23937 и №21298 ты найдешь функции, которые и генерят это сообщение. Чуть выше есть похожая, но с выдачей IP. Просто сделай copy-paste, и будет тебе счастье. Ну и в fail2ban новое правило пропиши, основанное на этом сообщении. Как-то так.Как-то так.
Но у меня нет файла chan_sip.c или я не то и не там ищу. Короче буду рад любым советам. Спасибо.
спросил 2012-04-17 16:13:36 +0400
Аноним
В Asterisk 11 появилось более детальное логирование подключений
в logger.conf добавьте строку
security_log => security
Так же нужно переписать правила поиска регулярок в fail2ban.
ну и конечно добавить строки блокировки сканера в Iptables, как подcказал Meral
При попытке взлома могут появляться вот такие сообщения в full:
chan_sip.c: Sending fake auth rejection for device 5550000<sip:5550000@[external_ip]>;tag=71b060d8".
Сейчас не видно с какого IP адреса идет атака, необходимо пересобрать астериск со следующими параметрами:
Открываем исходники астериска файл /../asterisk-1.8.17.0/channels/chan_sip.c
ищем строки:
ast_log(LOG_NOTICE, "Sending fake auth rejection for device %s\n", get_header(req, "From"));
В окне поиска вводим: Sending fake auth rejection for device
Меняем строку:
ast_log(LOG_NOTICE, "Sending fake auth rejection for device %s\n", get_header(req, "From"));
на:
ast_log(LOG_NOTICE, "Sending fake auth rejection for device %s [IP: %s]\n", get_header(req, "From"), ast_sockaddr_stringify(addr));
после этого должен отображаться Ip адрес атакующего. В версии 1.8.17.0 пришлось заменить 4 строки.
Вообще, сканят voip несколькими утилитами, и при сканировании утилиты вставляют свой юзер агент. Тоесть, достаточно заставить iptables дропать пакеты с нужными юзер агентами:
iptables -I INPUT -p udp --dport 5060 -m string --string "friendly-scanner" --algo bm -j DROP
список остальных агентов: sip-scan, sundayddr, iWar, sipsak, sipvicious. У меня, после добавления этих правил, fail2ban просто перестал срабатывать, все отбивается даже не доходя до него.
теоретик? половина утилит пишет asterisk 1.4.x, это не говоря о том, что вы вводите деяток сложных правил вместо одного в iptables/
meral ( 2012-11-18 17:27:53 +0400 )редактироватьВобщем для всех остальных кто найдет этот топик для решения проблемы таких сообщений:
chan_sip.c: Sending fake auth rejection for device 5550000<sip:5550000@192.168.x.x>;tag=71b060d8
Приведенное здесь решение с помощью iptables будет работать только при условии
--seconds 2 --hitcount 60
не менее 60 пакетов в 2 секунды. Или, если не править начальные настройки Linux (hitcount = 20), то можно выставить не менее 20 пакетов в 1 секунду. То есть, если с одного адреса на порт назначения прийдет более 20 пакетов в секунду, то правило сработает.
Обратите внимания, что правлио заносит сообщения в лог. Для отброса пакетов надо добавить второе правило.
iptables -A INPUT -p udp --dport 5060 -m recent --update --seconds 1 --hitcount 20 --name SIP
-j LOG --log-prefix "SIP flood detected: "
iptables -A INPUT -p udp --dport 5060 -m recent --update --seconds 1 --hitcount 20 --name SIP
-j DROP
Или разбираться с фильтрами fail2ban.
ух. chan_sip.c это исходник канала SIP астериска. оно тебе не надо
можно сделать так
asterisk -rx "sip show channel"
там будет куча адресов.
но правильно сделать детект через iptables
iptables -A INPUT -p udp --dport 5060 -m recent --update --seconds 2 --hitcount 60 --name SIP \
-j LOG --log-prefix "SIP flood detected: "
а еще правильнее нанять специалиста. может у вас еще дырки есть.
Спасибо за ссылку, но fail2ban у меня настроен и гадов регулярно отлавливает. Только у меня нет уверенности, что он банит виновников сообщения "Sending fake auth rejection for device".
Bansher ( 2012-04-17 16:25:35 +0400 )редактироватьну так если он будет работать по iptables то да, его можно настроит так, чтоб он банил всех кто часто регистрируется. и да оно работает.
meral ( 2012-04-17 16:27:55 +0400 )редактироватьВопрос в том что там вместо IP адреса злоумышленника указывается IP адрес сервера с asterisk. Как бы человек и задавал вопрос, как узнать IP злоумышленника, чтобы fail2ban корректно отрабатывал.
SIlverJoe ( 2012-08-24 19:44:23 +0400 )редактироватьпо ссылке вы наверно поленилися пройти? там какраз написано как.
meral ( 2012-08-24 22:49:25 +0400 )редактироватьПрошел конечно, стандартное описание установки fail2ban.
Повторяю, уточняю, объясняю вопрос ТС еще раз :) А что делать, если: chan_sip.c: Sending fake auth rejection for device 5550000<sip:5550000@ --->>>MY-IP<<<----- >;tag=71b060d8
Где MY-IP = IP адресу АСТЕРИСК сервера во внутренней сети?????
Себя же банить бессмысленно, где взять IP который адрес злоумышленника?
SIlverJoe ( 2012-08-25 10:08:35 +0400 )редактироватьставить fail2ban с репортом из iptables...вы всетаки дочитайте то что по ссылке.
meral ( 2012-08-25 18:40:35 +0400 )редактироватьВы уж меня простите, но ткните как говорится носом :) Не могу поянт где. Вижу только станартную настройку fail2abn
SIlverJoe ( 2012-08-27 19:38:08 +0400 )редактироватьвы вообще нормальный? asterisk-iptables секцию прочитайте(прокрутите вниз на 75%)
meral ( 2012-08-27 21:17:30 +0400 )редактироватьТам значится что fail2ban будет применять действие iptables-allports при совпадении шаблонов указанных в фильтре /etc/fail2ban/filter.d/asterisk.conf со строками в лог файле астериска.
А где то что спрашивал ТС???? Вы внимательно читали вопрос? У меня так настроено на двух серверах, и все работает за исключением этого момента. За сим возвращаю вам вопрос - вы нормальный?
SIlverJoe ( 2012-08-28 12:03:19 +0400 )редактироватьВот выхлоп из лога [2012-08-26 22:18:46] NOTICE[1390] chan_sip.c: Sending fake auth rejection for device ru<sip:ru@172.16.8.4>;tag=12dc9e10
172.16.8.4 - IP адрес на сетевухе сервера где стоит asterisk. Кого банить?
SIlverJoe ( 2012-08-28 12:11:05 +0400 )редактироватьПроверил. Только с --hitcount 20. В логах от iptables пусто. В логах астериска сабжевые сообщения имеются.
SIlverJoe ( 2012-09-28 14:39:54 +0400 )редактироватьа уменя работает. тут вобщето полный скрипт выложен гдето. мной. там еще иногда надо логи правильн настроить(типа чтоб вообще писало в лог).
meral ( 2012-09-28 14:50:37 +0400 )редактироватьимеется в виду что если вы не можеет сделать сами, ищите в интернете как это делается. если у вас iptables не логирует,то причем тут астериск?
meral ( 2012-09-28 19:33:30 +0400 )редактироватьЗадан: 2012-04-17 16:13:36 +0400
Просмотрен: 9,737 раз
Обновлен: Jul 20 '13
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.