Каждый публичный VPS ежедневно подвергается тысячам попыток подбора паролей SSH. Fail2ban анализирует логи и автоматически блокирует атакующие IP-адреса.
Установка Fail2ban
sudo apt update
sudo apt install -y fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
Настройка защиты SSH
Создайте локальный конфиг (не редактируйте jail.conf — он перезатирается при обновлениях):
sudo nano /etc/fail2ban/jail.local
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5
ignoreip = 127.0.0.1/8 ВАШ_ДОМАШНИЙ_IP
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 86400
sudo systemctl restart fail2ban
Основные команды
# Статус всех тюрем
sudo fail2ban-client status
# Статус SSH-тюрьмы
sudo fail2ban-client status sshd
# Разблокировать IP вручную
sudo fail2ban-client set sshd unbanip 203.0.113.42
# Посмотреть заблокированные IP
sudo iptables -L f2b-sshd -n --line-numbers
Защита Nginx от DDoS и сканирования
# Добавить в jail.local:
[nginx-http-auth]
enabled = true
logpath = /var/log/nginx/error.log
[nginx-botsearch]
enabled = true
logpath = /var/log/nginx/access.log
maxretry = 2
✅ Смените порт SSH с 22 на нестандартный (например, 2222) в
/etc/ssh/sshd_config — это снизит количество атак на 95%.⚠️ Перед сменой порта SSH обязательно откройте новый порт в UFW:
sudo ufw allow 2222/tcp