Swabber відповідає за управління фактичною забороною IP-адрес, ідентифікованих Banjax або Learn2ban.
Для зв’язку він використовує механізм pub-sub на основі ZMQ і забороняє задані IP-адреси через IP-таблиці для блокування виявлених зловмисних IP-адрес на рівні TCP. Swabber має декілька параметрів, які можна налаштувати для більшої гнучкості:
- Час блокування (bantime) – описує час, на який шкідливі IP-адреси мають бути заборонені для подальших HTTP-запитів.
- Зв’язки (bindstrings) – надає список адрес, які потрібно прослідкувати для заборони.
- Інтерфейс (interface) – законне джерело заборон, з яким необхідно взаємодіяти.
- Внутрішня частина (backend) – Swabber підтримує наступні методи заборони:
- Необроблений формат даних (raw)
- Бібліотека python-iptables
- host.deny
Документація
Переважна більшість документації та деталей доступна на Github.
Requirements
Вимоги до Swabber можна встановити через pip. Мінімальна підтримувана версія python – 2.6. У коді використовується ключове слово “as” та інші умовні позначення, які присутні тільки у версії 2.6 і вище.
*pip – інсталятор пакетів для Python.
Вимоги
Swabber використовує систему pub/sub через ZMQ, за допомогою якої сам Swabber намагається під’єднатися (тобто підписатися) до порту (зазвичай на localhost), де щось публікує блокування, починаючи прослуховування (публікацію) на тому ж порту.
Swabber сприймає блокування як IP-адресу. Якщо IP-адресу ще не заблокували, вона буде заблокована. Якщо її вже заблоковували, блокування буде продовжене на попередньо визначений час блокування. Він визначається в конфігураційному файлі swabber.yaml, за замовчуванням цей час дорівнює двом хвилинам.
Manual Execution
Ви можете використовувати скрипт init, щоб запустити swabber як демон, як зазвичай:
/etc/init.d/swabberd start
Або, якщо хочете побачити більше інформації про налагодження:
swabberd -v