OKВсе сервисы работают штатно
InfrawireЛоготип InfrawireДокументация

Настройка Fail2ban на VPS Linux

Fail2ban анализирует журналы и временно банит IP при злоупотреблениях (перебор SSH, сканирование HTTP и т.д.). Дополняет UFW и усиление SSH.

Требования

  • Ubuntu/Debian (или производная) с sudo
  • Уже работающий защищаемый сервис (например sshd, nginx)

Установка

Bash
sudo apt update && sudo apt install -y fail2ban sudo systemctl enable fail2ban sudo systemctl start fail2ban

Базовая конфигурация

Пользовательские файлы — в /etc/fail2ban/jail.d/, чтобы обновления пакета их не перезаписывали.

Создайте /etc/fail2ban/jail.d/local.conf:

INI
1[DEFAULT] 2bantime = 1h 3findtime = 10m 4maxretry = 5 5ignoreip = 127.0.0.1/8 ::1 6 7[sshd] 8enabled = true 9port = ssh 10logpath = %(sshd_log)s 11backend = %(sshd_backend)s

Если порт SSH изменён, укажите его, например port = 2222.

Перезапуск:

Bash
sudo systemctl restart fail2ban sudo fail2ban-client status sudo fail2ban-client status sshd

Защита Nginx (слишком агрессивный HTTP)

При необходимости добавьте, например:

INI
[nginx-http-auth] enabled = true port = http,https logpath = /var/log/nginx/error.log

Пути к логам подстройте под свою установку.

Рекомендации

  • Добавьте свой фиксированный IP в ignoreip, чтобы не заблокировать себя при тестах.
  • Следите за sudo fail2ban-client status sshd после внедрения.
  • Баны временные (bantime) — настройте под свою политику.

Разбан IP вручную

Bash
sudo fail2ban-client set sshd unbanip 198.51.100.10

Устранение неполадок

  • Нет банов — проверьте enabled = true, корректность logpath и что сервис пишет неудачи в лог.
  • Забанили вас — консоль хостера / IPMI или другой IP, затем ignoreip или разбан.