Порт 22 часто брутфорсят. Ниже: смена порта, лимиты и жёсткие опции (осторожно с блокировкой).
📋 Требования
- VPS с sudo, активная SSH-сессия
- UFW
⚠️ Две сессии SSH
🔧 Смена порта
Выберите порт 1024–65535, избегая 80, 443, 3306, 5432. Примеры: 2222, 2200, 1022.
Bashsudo nano /etc/ssh/sshd_config
Строка Port 22 → Port 2222 (ваш порт).
Bash1sudo sshd -t 2sudo ufw allow 2222/tcp 3sudo ufw delete allow 22/tcp 4sudo ufw reload 5sudo systemctl restart sshd 6sudo systemctl status sshd
Новый терминал:
Bashssh -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
Bashsudo adduser myuser sudo usermod -aG sudo myuser
✅ Проверка
Bashsudo systemctl status sshd sudo ss -tlnp | grep ssh sudo sshd -T | grep port sudo tail -f /var/log/auth.log
🛡️ fail2ban
Bashsudo apt update && sudo apt install -y fail2ban sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local sudo nano /etc/fail2ban/jail.local
INI1[sshd] 2enabled = true 3port = 2222 4maxretry = 3 5bantime = 3600 6findtime = 600
Bashsudo systemctl enable fail2ban && sudo systemctl start fail2ban sudo fail2ban-client status sshd
Или используйте готовый гайд: Fail2ban.
🆘 Заблокировали себя
- Вторая SSH-сессия
- Консоль хостера / VNC
- Восстановить
Port 22вsshd_configи перезапуститьsshd
📚 Ссылки
❓ FAQ
Какой порт? Нестандартный в диапазоне, не занятый другими сервисами.
Достаточно смены порта? Сильно снижает шум; fail2ban и ключи — плюс.
Подключение: ssh -p НОМЕР user@host
Безопасной работы.