На примере SSH
Ставим пакеты:
sudo apt install ufw fail2ban rsyslog
Разрешаем ssh и включаем ufw:
ufw allow ssh
ufw enable
Переходим в папку /etc/fail2ban и копируем файл jail.conf в эту же папку под названием jail.local
Меняем параметры:
bantime = ... # Время на которое блокируется IP-адрес
findtime = ... # За какой период просматривать записи для блокировки
maxretry = ... # Количество неудачных попыток
banaction = ufw
[sshd]
enable = true
bancation = ufw[application=OpenSSH, blocktype=reject] # Для блокировки IP-адреса только на 22-м порту
Полезные команды:
fail2ban-client status sshd
ufw status