В дополние к материалм из первого сообщения добавляю новые материалы, для внесеняи полной ясности в настройку Fail2ban.
Итак, начнем сначала. Устанавливаем fail2ban:
sudo apt-get install fail2ban
Настраиваем fail2ban через правку конфига:
jail.conf (/etc/fail2ban/jail.conf)
[Definition]
loglevel = 3 # уровень детализации логов (1-4)
logtarget = /var/log/fail2ban.log # лог-файл
socket = /var/run/fail2ban/fail2ban.sock # сокет демона
[DEFAULT]
ignoreip = 127.0.0.1 212.26.248.138 # Игнорируемые адреса - эти адреса не будут забанены никогда
bantime = 600 # Время бана в секундах
maxretry = 3 # Число разрешенных попыток по умолчанию
backend = polling # Способ слежения за изменением логов.
# В большинстве случаев нас устроит дефолтное значение polling (допустимы также gamin и auto).
# С методом gamin в Debian существуют некоторые проблемы.
destemail = user@test.ru # e-mail для отчетов о банах
banaction = iptables-multiport # С помощю чего блокируем
protocol = tcp # Протокол
# Действие - забанить и выслать whois информацию о брутфорсере на указанный выше e-mail
action = iptables[name=%(__name__)s, port=%(port)s]
mail-whois-lines[name=%(__name__)s, dest=%(destemail)s, logpath=%(logpath)s]
# Далее идут настройки для каждого из сервисов
[ssh]
enabled = true # разрешен
port = ssh # можно указывать числовое значение (в данном случае - 22)
filter = sshd # название фильтра (см. директорию /etc/fail2ban/filter.d)
logpath = /var/log/auth.log # к какому лог-файлу применить фильтр
maxretry = 5 # разрешенное число неудачных попыток
# Список сервисов можно расширить самому (изучайте регулярные выражения!)
# Нашел в интернете готовый конфиг из которого выкинуто много мне ненужного для большинства серверов, т.к. по дефолту тут масса всего.
[pam-generic]
enabled = true
filter = pam-generic
port = all
banaction = iptables-allports
port = anyport
logpath = /var/log/auth.log
maxretry = 6
[xinetd-fail]
enabled = false
filter = xinetd-fail
port = all
banaction = iptables-multiport-log
logpath = /var/log/daemon.log
maxretry = 2
[ssh-ddos]
enabled = true
port = ssh
filter = sshd-ddos
logpath = /var/log/auth.log
maxretry = 3
[apache]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache*/*error.log
maxretry = 3
[apache-multiport]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache*/*error.log
maxretry = 3
[apache-noscript]
enabled = true
port = http,https
filter = apache-noscript
logpath = /var/log/apache*/*error.log
maxretry = 3
[apache-overflows]
enabled = true
port = http,https
filter = apache-overflows
logpath = /var/log/apache*/*error.log
maxretry = 2
[proftpd]
enabled = true
port = ftp,ftp-data,ftps,ftps-data
filter = proftpd
logpath = /var/log/proftpd/proftpd.log
maxretry = 3
После конфигурирования сервиса нужное его перезапустить или запустить (если он небыл запущен). Список дополнительных команд которыйе могут пригодится:
- invoke-rc.d fail2ban start # Старт сервиса fail2ban
- /etc/init.d/fail2ban restart Перезапуск fail2ban
- service fail2ban restart Перезапуск fail2ban
Материалы слиты с разных сайтов и собраны в кучу для удобства.