Категорії
Uncategorized

Swabber

Swabber відповідає за управління фактичною забороною IP-адрес, ідентифікованих Banjax або Learn2ban.

Для зв’язку він використовує механізм pub-sub на основі ZMQ і забороняє задані IP-адреси через IP-таблиці для блокування виявлених зловмисних IP-адрес на рівні TCP. Swabber має декілька параметрів, які можна налаштувати для більшої гнучкості:

  • Час блокування (bantime) – описує час, на який шкідливі IP-адреси мають бути заборонені для подальших HTTP-запитів.
  • Зв’язки (bindstrings) – надає список адрес, які потрібно прослідкувати для заборони.
  • Інтерфейс (interface) – законне джерело заборон, з яким необхідно взаємодіяти.
  • Внутрішня частина (backend) – Swabber підтримує наступні методи заборони:
    • Необроблений формат даних (raw)
      • команди IP-таблиць
    • Бібліотека 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