Как сменить порт SSH и базово защитить сервер
Смена стандартного порта SSH (22) на нестандартный убирает большую часть автоматических атак-переборщиков из логов. Это не замена ключам и фаерволу, но полезное дополнение. Разберём, как сделать это без риска потерять доступ к серверу.
Шаг 1. Откройте конфигурацию SSH
sudo nano /etc/ssh/sshd_config
Найдите строку с Port. Часто она закомментирована:
#Port 22
Раскомментируйте и укажите новый порт (выберите число от 1024 до 65535, например 2222):
Port 2222
Шаг 2. Откройте новый порт в фаерволе
Это критичный шаг. Если включён ufw, сначала разрешите новый порт, иначе после перезапуска SSH вы потеряете доступ:
sudo ufw allow 2222/tcp
Проверьте, что правило добавилось:
sudo ufw status
Шаг 3. Перезапустите SSH и проверьте
Перезапустите службу:
sudo systemctl restart ssh
Не закрывайте текущую сессию. Откройте новое окно терминала и подключитесь по новому порту:
ssh -p 2222 deploy@ВАШ_IP
Если подключение прошло — можно закрыть старую сессию и убрать правило для порта 22:
sudo ufw delete allow OpenSSH
Дополнительная базовая защита
Смена порта — лишь один слой. Добавьте ещё несколько в sshd_config.
Запретите вход под root:
PermitRootLogin no
Отключите вход по паролю (если настроены ключи):
PasswordAuthentication no
Ограничьте список пользователей:
AllowUsers deploy
После правок перезапустите службу командой sudo systemctl restart ssh.
Защита от подбора: fail2ban
fail2ban автоматически блокирует IP после нескольких неудачных попыток входа:
sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban
Проверить статус защиты SSH:
sudo fail2ban-client status sshd
Сводка мер
| Мера | Где настраивается | Эффект |
|---|---|---|
| Смена порта | Port в sshd_config |
Меньше шума от ботов |
| Запрет root | PermitRootLogin no |
Нет входа под root |
| Только ключи | PasswordAuthentication no |
Нет подбора пароля |
| fail2ban | пакет fail2ban | Блокировка перебора |
| Фаервол | ufw | Закрытые порты |
Частые вопросы
Смена порта действительно защищает? Она скрывает SSH от массовых сканеров и уменьшает объём логов, но целенаправленную атаку не остановит. Используйте её вместе с ключами и fail2ban.
Что делать, если потерял доступ после смены порта?
Подключитесь через KVM-консоль в панели управления сервером, откройте sshd_config и верните рабочий порт или исправьте правило фаервола.
Какой порт выбрать? Любой свободный выше 1024, чтобы не пересекаться с системными службами. Избегайте портов известных сервисов (80, 443, 3306).
Нужен ли fail2ban, если отключён вход по паролю? Он всё равно полезен: снижает нагрузку от ботов и защищает другие службы. Но при только-ключевом доступе перебор пароля уже невозможен.
Итог
Смена порта, запрет root, вход по ключам и fail2ban вместе дают надёжную базовую защиту. Главное правило — всегда проверяйте новое подключение в отдельной сессии, прежде чем закрывать текущую.
Готовы применить это на своём сервере? Возьмите VPS на Linux, оформите аренду VPS или закажите Администрирование серверов, если защиту удобнее доверить специалистам.
