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

Защита SSH от перебора паролей

Порт 22 часто брутфорсят. Ниже: смена порта, лимиты и жёсткие опции (осторожно с блокировкой).

📋 Требования

  • VPS с sudo, активная SSH-сессия
  • UFW

⚠️ Две сессии SSH

🔧 Смена порта

Выберите порт 1024–65535, избегая 80, 443, 3306, 5432. Примеры: 2222, 2200, 1022.

Bash
sudo nano /etc/ssh/sshd_config

Строка Port 22Port 2222 (ваш порт).

Bash
1sudo sshd -t 2sudo ufw allow 2222/tcp 3sudo ufw delete allow 22/tcp 4sudo ufw reload 5sudo systemctl restart sshd 6sudo systemctl status sshd

Новый терминал:

Bash
ssh -p 2222 user@IP

Если ок — старую сессию на 22 можно закрыть.

🔒 Дополнительно

Запрет root по паролю (нужен пользователь с sudo):

PermitRootLogin no

Лимиты:

MaxAuthTries 3
LoginGraceTime 30

Только ключи (после проверки ключей!):

PasswordAuthentication no
PubkeyAuthentication yes

Прочее:

Protocol 2
X11Forwarding no
AllowTcpForwarding no
ClientAliveInterval 300
ClientAliveCountMax 2

После правок: sudo sshd -t и sudo systemctl restart sshd.

Пользователь с sudo

Bash
sudo adduser myuser sudo usermod -aG sudo myuser

✅ Проверка

Bash
sudo systemctl status sshd sudo ss -tlnp | grep ssh sudo sshd -T | grep port sudo tail -f /var/log/auth.log

🛡️ fail2ban

Bash
sudo apt update && sudo apt install -y fail2ban sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local sudo nano /etc/fail2ban/jail.local
INI
1[sshd] 2enabled = true 3port = 2222 4maxretry = 3 5bantime = 3600 6findtime = 600
Bash
sudo systemctl enable fail2ban && sudo systemctl start fail2ban sudo fail2ban-client status sshd

Или используйте готовый гайд: Fail2ban.

🆘 Заблокировали себя

  1. Вторая SSH-сессия
  2. Консоль хостера / VNC
  3. Восстановить Port 22 в sshd_config и перезапустить sshd

📚 Ссылки

❓ FAQ

Какой порт? Нестандартный в диапазоне, не занятый другими сервисами.
Достаточно смены порта? Сильно снижает шум; fail2ban и ключи — плюс.
Подключение: ssh -p НОМЕР user@host


Безопасной работы.