freeswitchforum.com https://freeswitchforum.com/ |
|
[ANN] SpyLog. Мониторинг логов для FreeSWITCH https://freeswitchforum.com/viewtopic.php?f=6&t=779 |
Страница 1 из 1 |
Автор: | moteus [ 12 дек 2016 17:10 ] |
Заголовок сообщения: | [ANN] SpyLog. Мониторинг логов для FreeSWITCH |
Представляю свой вариант реализации Fail2Ban под Windows - SpyLog. SpyLog состоит из 3 процессов Filter, Jail, Action. Связь между процессами организована через PUB/SUB ZeroMQ сокеты. Это означает что связь возможно настроить как многие-ко-многим и запускать процессы на разных машинах. В пределах одной машины SpyLog можно запускать как один многопоточный процесс или как несколько однопоточных процесса. SpyLog написан на Lua и по умолчанию использует регулярные выражения Lua, но при необходимости возможно использовать библиотеку PCRE. SpyLog способен обрабатывать лог записи из различных источников: * текстовые файлы * SysLog (SpyLog работает как UDP SysLog сервер) * SNMP Trap сообщения * Windows EventLog (через проброс сообщений как SNMP Trap) * FreeSWITCH ESL подключение (SpyLog подключается к FS и подписывается на `LOG` сообщения) * Raw TCP подключение (SpyLog устанавливает TCP соединение и читает данные как текстовый поток) Для выполнения действий SpyLog предоставляет 3 базовых метода * spawn - запуск внешнего процесса * mail - отсылка электронной почты * growl - отсылка Growl сообщения Так же на основе `spawn` реализованы действия * ipsec - для добавления IP адреса в IPSec фильтр * advfirewall - для создания новых правил в Windows Firewall. Все настройки IPSec/Firewall необходимо производить отдельно. Важные отличия от Fail2Ban * При остановке SpyLog не выполняет ни каких `unban` действий. Т.е. все заблокированные IP остаются заблокированными. * Т.к. Jail и Action это разные и независимые процессы то SpyLog не предоставляет возможности реализации `actionstart` и `actionstop` для Jail. * Нет переменной `<HOST>` и в правилах надо использовать явные правила * SpyLog не предоставляет способа разблокировать определенный IP. (Еще не уверен как это лучше сделать) Пример реализации простого правила для FreeSWITCH для подсчета кол-ва неудачных попыток авторизации. Код: -- config/sources/freeswitch.lua
SOURCE{"freeswitch", "esl:ClueCon@127.0.0.1:8021", level = 'WARNING'; } -- config/filters/freeswitch.lua FILTER{ "freeswitch-auth-fail"; enabled = true; source = "freeswitch"; failregex = { "^(%d%d%d%d%-%d%d%-%d%d %d%d:%d%d:%d%d%.%d+) %[WARNING%] sofia_reg.c:%d+ SIP auth failure %([A-Z]+%) on sofia profile %'[^']+%' for %[.-%] from ip ([0-9.]+)%s*$"; } }; -- config/jails/freeswitch.lua JAIL{"voip-auth-fail"; enabled = true; filter = {"freeswitch-auth-fail"}; findtime = 600; maxretry = 3; bantime = 3600 * 24; action = {"ipsec", "mail"}; } |
Страница 1 из 1 | Часовой пояс: UTC + 4 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |