freeswitchforum.com

Форум поддержки FreeSWITCH

FreeSWITCH is a registered trademark of Anthony Minessale. Official FreeSWITCH site.

Текущее время: 28 мар 2024 16:01

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
СообщениеДобавлено: 12 дек 2016 17:10 

Зарегистрирован: 03 июл 2012 12:09
Сообщения: 41
Представляю свой вариант реализации 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 сообщение ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 33


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB