Fail2Ban Howto: заблокировать IP-адрес, используя Fail2ban и IPTables
Fail2ban сканирует файлы журналов для различных служб (SSH, FTP, SMTP, Apache и т. Д.) И блокирует IP-адрес, который вызывает слишком много сбоев пароля. Он также обновляет правила брандмауэра, чтобы отклонить эти IP-адреса.
Fail2ban — это среда предотвращения вторжений, написанная на языке программирования Python.
Основная цель Fail2ban — предотвращать атаки с использованием грубой силы.
Установить Fail2ban
Чтобы установить fail2ban из исходного кода, загрузите его из sourceforge .
Используйте apt-get для установки Fail2ban в системе на основе Debian, как показано ниже.
# apt-get install fail2ban
Вы также можете установить Fail2ban вручную, загрузив пакет deb2 fail2ban .
# dpkg -i fail2ban_0.10.2-2.1_all.deb
Как настроить fail2ban
Все файлы конфигурации Fail2ban находятся в каталоге /etc/fail2ban.
/etc/fail2ban/fail2ban.conf
Основное назначение этого файла — настроить директивы, относящиеся к журналу fail2ban.
- Loglevel: установить выход уровня журнала.
- logtarget: укажите путь к файлу журнала
Действия, предпринятые Fail2ban, регистрируются в файле /var/log/fail2ban.log. Вы можете изменить многословие в файле conf на одно из: 1 — ОШИБКА, 2 — ПРЕДУПРЕЖДЕНИЕ, 3 — ИНФОРМАЦИЯ или 4 — ОТЛАДКА.
/etc/fail2ban/jail.conf
Файл jail.conf содержит объявление конфигураций сервиса. Этот файл конфигурации разбит на разные контексты. Настройки DEFAULT применяются ко всем разделам.
В следующем разделе DEFAULT файла jail.conf говорится, что после пяти неудачных попыток доступа с одного IP-адреса в течение 600 секунд или 10 минут (время поиска) этот адрес будет автоматически заблокирован на 600 секунд (время запрета).
[DEFAULT] ignoreip = 127.0.0.1 maxretry = 5 findtime = 600 bantime = 600
- ignoreip: Это список разделенных пробелами IP-адресов, которые не могут быть заблокированы fail2ban.
- maxretry: максимальное количество неудачных попыток входа в систему до того, как хост заблокирован fail2ban.
- bantime: время в секундах, в течение которого хост блокируется, если он был пойман fail2ban (600 секунд = 10 минут).
Сервисные конфигурации
По умолчанию некоторые сервисы вставляются как шаблоны. Ниже приведен пример раздела служб ssh.
[ssh] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log action = iptables
- enabled: включить проверку fail2ban для службы ssh
- port: сервисный порт (указанный в файле /etc/services)
- filter: имя фильтра, который будет использоваться службой для обнаружения совпадений. Это имя соответствует имени файла в /etc/fail2ban/filter.d; без расширения .conf. Например: «filter = sshd» относится к «/etc/fail2ban/filter.d/sshd.conf».
- logpath: файл журнала, который fail2ban проверяет на неудачные попытки входа в систему.
- action: эта опция указывает fail2ban, какое действие предпринять, когда фильтр соответствует. Это имя соответствует имени файла в /etc/fail2ban/action.d/ без расширения .conf. Например: ‘action = iptables’ относится к /etc/fail2ban/action.d/iptables.conf ‘.
Fail2ban будет отслеживать файл /var/log/auth.log на предмет неудачных попыток доступа, и если он обнаружит повторные неудачные попытки входа в систему через ssh с того же IP-адреса или хоста, fail2ban останавливает дальнейшие попытки входа с этого IP-адреса / хоста, блокируя его с помощью fail2ban правило брандмауэра iptables.
Fail2ban Фильтры
Каталог /etc/fail2ban/filter.d содержит регулярные выражения, которые используются для обнаружения попыток взлома, сбоя пароля и т. д. Для различных служб.
Например:
- sshd.conf — Fail2ban ssh связанные фильтры
- apache-auth.conf — Fail2ban фильтры службы apache
Мы также можем добавить наше собственное регулярное выражение для поиска нежелательных действий.
Fail2ban Действия
Каталог /etc/fail2ban/action.d содержит различные сценарии, определяющие действия, которые будут выполняться при совпадении фильтра. Для каждой услуги разрешен только один фильтр, но можно указать несколько действий в отдельных строках.
Например:
- IPtables.conf — блокировать и разблокировать IP-адрес
- Mail.conf — отправка почты настроенному пользователю
Запуск / остановка службы Fail2ban
После внесения изменений в конфигурацию остановите и запустите демон Fail2ban, как показано ниже.
# /etc/init.d/fail2ban stop # /etc/init.d/fail2ban start