Безопасное управление сервером: почему SSH-ключи — это база, а пароли — ошибка

Управление сервером Хостинги

Новый VPS подвергается брутфорс-атакам в среднем через 3–5 минут после получения публичного IP-адреса. Если сервер доступен по стандартному порту 22 с использованием пароля, его взлом — лишь вопрос времени.

Ниже приведена инженерная последовательность базовой защиты (харднинга) сервера на Ubuntu, исключающая компромиссы с парольной аутентификацией.

Криптографический фундамент: генерация ключа ed25519

Современный стандарт безопасности для SSH — алгоритм ed25519. Он обеспечивает высокую криптографическую стойкость при минимальной длине ключа, заменяя устаревший RSA.

Разница в подходах

Сгенерируйте ключ на вашей локальной машине (не на сервере):

ssh-keygen -t ed25519 -C "admin-server-key"

Система предложит путь сохранения по умолчанию (~/.ssh/id_ed25519) и попросит задать кодовую фразу. Кодовая фраза обязательна: она защитит ключ, если ваш локальный компьютер будет скомпрометирован.

Перенесите публичную часть ключа на сервер:

ssh-copy-id -i ~/.ssh/id_ed25519.pub root@ваш_ip_сервера

Критическое условие (права доступа): Если вы переносите ключ вручную без ssh-copy-id, директория ~/.ssh на сервере должна иметь права 700 (chmod 700 ~/.ssh), а файл authorized_keys600 (chmod 600 ~/.ssh/authorized_keys). При неверных правах SSH-сервер отклонит ключ.

Проверьте подключение:

ssh -i ~/.ssh/id_ed25519 root@ваш_ip_сервера

Пароль больше запрашиваться не должен.

Харднинг конфигурации SSH (sshd_config)

Заблокируйте уязвимости на уровне демона SSH. Откройте конфигурационный файл:

nano /etc/ssh/sshd_config

(В современных дистрибутивах настройки можно выносить в отдельные файлы директории /etc/ssh/sshd_config.d/, но логика параметров сохраняется).

Внесите изменения в следующие директивы:

  • Смена стандартного порта: Port 2222 (используйте любой свободный порт в диапазоне 1024–65535, чтобы снизить количество автоматического сканирования).

  • Запрет входа по паролю: PasswordAuthentication no

  • Запрет пустого пароля: PermitEmptyPasswords no

  • Ограничение root-доступа: PermitRootLogin prohibit-password (разрешает вход суперпользователю только по SSH-ключу).

Перезапустите службу SSH:

systemctl restart ssh

Важно: не закрывайте текущую сессию терминала, пока в новом окне не проверите успешность подключения по новому порту с использованием SSH-ключа.

Настройка сетевого экрана UFW

Фаервол

Изолируйте сеть, закрыв лишние порты. Установите и включите UFW, если он еще не установлен:

ufw default deny incoming
ufw default allow outgoing

Разрешите доступ только к новому SSH-порту и необходимым веб-службам:

ufw allow 2222/tcp
ufw allow 80/tcp
ufw allow 443/tcp

Активируйте фаервол:

ufw enable

Защита от брутфорса: установка и настройка Fail2ban

Боты продолжат сканировать SSH-порт даже без доступа по паролю, перегружая логи. Установите Fail2ban, чтобы автоматически блокировать IP-адреса после серии неудачных попыток подключения.

Защита

Установите пакет:

apt install fail2ban -y

Создайте локальный конфигурационный файл, чтобы обновления пакета не затерли ваши настройки:

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Настройте секцию [sshd] в файле /etc/fail2ban/jail.local:

[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 86400
findtime = 600

Данные параметры означают блокировку на 24 часа (86400 секунд) после 3 неудачных попыток входа за 10 минут (600 секунд).

Перезапустите службу:

systemctl restart fail2ban

Модель сбоя: что делать, если ключ утерян?

Главная ошибка при переходе на SSH-ключи — отключить вход по паролю до проверки работоспособности самого ключа.

Если сессия прервалась, а ключ не работает, доступ по SSH будет потерян. Единственный способ его восстановить — авторизоваться через VNC/Web-консоль в панели управления хостингом, загрузиться в режиме восстановления, смонтировать корневой раздел и вручную изменить параметр на PasswordAuthentication yes в конфигурации SSH.

Эти меры безопасности критичны, если вы выбрали сервер по нашей матрице офшорных юрисдикций.

Оцените статью
autoparse.tech
Добавить комментарий