Отключение входа по паролю и запрет авторизации для root
Дата публикации: 24.04.2026

Отключение входа по паролю и запрет авторизации для root

ccb9a536


Отключение входа по паролю и запрет авторизации для root: как защитить сервер от 90% атак

Вы когда-нибудь оставляли ключи от квартиры под ковриком, потому что "вдруг забуду"? А теперь представьте, что ваш сервер — это квартира с миллионом долларов внутри, а пароль root и вход по паролю — те самые ключи под ковриком. 9 из 10 взломов серверов начинаются именно с этого.

В этом уроке вы научитесь: ✅ Полностью отключать вход по паролю (только ключи SSH — как электронный пропуск). ✅ Блокировать прямой доступ к root (даже если злоумышленник узнает пароль, он не сможет им воспользоваться). ✅ Настраивать безопасный доступ через отдельного пользователя с ограниченными правами (как выдача временного пропуска охраннику вместо главного ключа).

Это не просто "хорошая практика" — это минимальная необходимость для любого сервера, который хранит данные, принимает платежи или работает с трафиком. Даже если вы арендуете VPS за $5 в месяц.


Почему это критично важно?

1. Пароли — это уязвимость №1

  • Брутфорс-атаки: Боты перебирают миллионы паролей в секунду. Даже сложный пароль P@ssw0rd!2024 будет взломан за часы.
  • Утечки данных: Пароли сливаются из баз (как это было с LinkedIn, Yahoo, LastPass). Если вы используете один пароль на нескольких сервисах — сервер под угрозой.
  • Кеyloггеры и фишинг: Вирусы на вашем ПК могут красть пароли, а фишинговые сайты — обманом их выманивать.

Аналогия: Представьте, что ваш сервер — это сейф в банке. Вход по паролю — это кодовый замок, который можно подобрать. А SSH-ключи — это отпечаток пальца: уникальный, невоспроизводимый, и его нельзя "угадать".


2. Root-доступ — это бомба замедленного действия

  • Один неправильный шаг — и сервер скомпрометирован: Если злоумышленник получит root-доступ, он может:
    • Установить майнер криптовалюты (ваш сервер будет "греться" на чужую пользу).
    • Удалить все данные или зашифровать их (ransomware).
    • Использовать сервер для DDoS-атак или рассылки спама (ваш IP попадёт в чёрные списки).
  • Логи не помогут: Root может очистить все следы своего присутствия.

Аналогия: Root-доступ — это как отдать незнакомцу генеральный ключ от отеля. Он может зайти в любой номер, вынести всё ценное и поджечь здание, а вы даже не узнаете, кто это сделал.


Что мы будем настраивать?

Мы сделаем три ключевых изменения в конфигурации SSH:

Действие Зачем это нужно? Аналогия
Отключить вход по паролю Исключает возможность подбора пароля брутфорсом. Убрать кодовый замок, оставить только сканер отпечатков.
Запретить вход для root Даже если пароль root известен, войти будет невозможно. Спрятать главный ключ в сейф.
Создать отдельного пользователя Работать под пользователем с ограниченными правами, а root использовать только при необходимости. Выдать охраннику пропуск только в холл, а не во всё здание.

Пошаговая инструкция

Шаг 1: Подготовка — создаём нового пользователя

Прежде чем отключать root, нужно создать альтернативного пользователя с правами sudo (чтобы можно было выполнять администраторские команды).

  1. Подключитесь к серверу по SSH (если ещё не подключены):

    ssh root@ваш_сервер_ip
  2. Создайте нового пользователя (например, admin):

    adduser admin
    • Система попросит ввести пароль и дополнительную информацию (можно пропустить, нажимая Enter).
  3. Дайте пользователю права sudo:

    usermod -aG sudo admin
    • Теперь пользователь admin может выполнять команды от имени root с помощью sudo.
  4. Проверьте, что всё работает:

    • Откройте новый терминал и подключитесь под новым пользователем:
      ssh admin@ваш_сервер_ip
    • Выполните команду с sudo (например, обновите пакеты):
      sudo apt update
      • Если система попросит пароль — введите пароль пользователя admin.

Шаг 2: Настраиваем SSH-ключи (альтернатива паролю)

SSH-ключи — это пара файлов:

  • Приватный ключ (id_rsa) — хранится только на вашем ПК (никогда не передаётся по сети!).
  • Публичный ключ (id_rsa.pub) — загружается на сервер (как замок под отпечаток пальца).

Генерация ключей на вашем ПК

  1. Откройте терминал на своём компьютере (не на сервере!) и выполните:

    ssh-keygen -t rsa -b 4096
    • -t rsa — тип ключа (RSA).
    • -b 4096 — длина ключа (4096 бит — надёжнее, чем стандартные 2048).
  2. Система спросит, куда сохранить ключи — нажмите Enter (стандартное расположение: ~/.ssh/id_rsa).

  3. Задайте парольную фразу (passphrase):

    • Это дополнительная защита: даже если кто-то украдёт ваш приватный ключ, без фразы он бесполезен.
    • Важно: Не теряйте эту фразу! Без неё вы не сможете подключиться к серверу.

Копируем публичный ключ на сервер

  1. Скопируйте ключ с вашего ПК на сервер (под пользователем admin):

    ssh-copy-id admin@ваш_сервер_ip
    • Если этой команды нет (например, на Windows), вручную скопируйте содержимое ~/.ssh/id_rsa.pub и добавьте его в файл ~/.ssh/authorized_keys на сервере.
  2. Проверьте подключение по ключу:

    ssh admin@ваш_сервер_ip
    • Если всё настроено правильно, система не спросит пароль, а сразу запросит парольную фразу (если вы её задавали).

Шаг 3: Отключаем вход по паролю и блокируем root

Теперь редактируем конфигурационный файл SSH (/etc/ssh/sshd_config).

  1. Откройте файл для редактирования:

    sudo nano /etc/ssh/sshd_config

    (Можно использовать любой другой редактор, например vim.)

  2. Найдите и измените следующие строки:

    Параметр Значение Пояснение
    PermitRootLogin no Запрещает вход под root.
    PasswordAuthentication no Отключает вход по паролю (только по ключам).
    ChallengeResponseAuthentication no Дополнительная защита от старых методов аутентификации.
    UsePAM no Отключает модуль PAM (может быть использован для обхода ограничений).

    Пример правильного файла:

    # Authentication:
    PermitRootLogin no
    PasswordAuthentication no
    ChallengeResponseAuthentication no
    UsePAM no
  3. Сохраните изменения:

    • В nano: Ctrl + OEnterCtrl + X.
  4. Перезапустите SSH-сервис, чтобы изменения вступили в силу:

    sudo systemctl restart sshd

Шаг 4: Проверка безопасности (критически важно!)

Прежде чем закрывать текущую сессию, убедитесь, что вы не заблокировали себя:

  1. Откройте новый терминал и попробуйте подключиться под пользователем admin:

    ssh admin@ваш_сервер_ip
    • Если подключение прошло без запроса пароля (только по ключу) — всё работает.
  2. Попробуйте подключиться под root:

    ssh root@ваш_сервер_ip
    • Должно появиться сообщение:
      Permission denied (publickey).

      Это означает, что вход для root полностью заблокирован.

  3. Проверьте, что можно получить root-права через sudo:

    sudo su -
    • Система должна запросить пароль пользователя admin и переключить вас на root.

⚠️ ВАЖНО:

  • Если что-то пошло не так (например, вы потеряли доступ), не закрывайте текущую сессию! Исправьте ошибки в /etc/ssh/sshd_config и перезапустите SSH снова.

Дополнительные меры безопасности (рекомендуется)

Мера Как настроить Зачем нужно
Смена порта SSH В /etc/ssh/sshd_config измените Port 22 на другой (например, 2222). Уменьшает количество автоматических атак (боты сканируют стандартный порт 22).
Fail2Ban Установите sudo apt install fail2ban и настройте для SSH. Блокирует IP после нескольких неудачных попыток входа.
Двухфакторная аутентификация Настройте Google Authenticator или ключи безопасности (YubiKey). Дополнительный слой защиты даже если ключ SSH скомпрометирован.
Ограничение по IP В /etc/ssh/sshd_config добавьте AllowUsers admin@ваш_ip. Разрешает подключение только с вашего IP (если он статический).

Частые ошибки и как их избежать

Ошибка Последствия Как исправить
Забыли парольную фразу для ключа Не можете подключиться к серверу. Сохраните фразу в менеджере паролей (KeePass, 1Password) или на бумаге в сейфе.
Не проверили доступ перед выходом Риск остаться без доступа. Всегда тестируйте новый способ входа, не закрывая старую сессию.
Не обновили SSH на сервере Уязвимости в старых версиях. Выполните sudo apt update && sudo apt upgrade -y.
Используют слабые ключи (1024 бит) Ключ можно взломать. Всегда генерируйте ключи 4096 бит.
Хранят приватный ключ на облачном диске Ключ могут украсть при взломе облака. Храните ключ только на своём ПК в зашифрованном виде.

Практика для закрепления

Упражнение 1: Проверка текущих настроек SSH

  1. Подключитесь к серверу и выполните:
    sudo sshd -T | grep -E "permitrootlogin|passwordauthentication"
  2. Вопрос: Что выводит команда? Соответствует ли это нашим настройкам (no для обоих параметров)?

Упражнение 2: Симуляция атаки

  1. Попробуйте подключиться к серверу с другого устройства (или через VPN) по паролю:
    ssh admin@ваш_сервер_ip
    • Система должна отказать в доступе.
  2. Вопрос: Почему вход не произошёл, даже если пароль верный?

Упражнение 3: Восстановление доступа (если что-то пошло не так)

Сценарий: Вы отключили вход по паролю, но потеряли SSH-ключ.

  1. Как восстановить доступ через:
    • Панель управления хостингом (например, Virtuzzo или SolusVM)?
    • Аварийную консоль (например, KVM в OVH или Hetzner)?
  2. Вопрос: Какие шаги вы предпримете, чтобы снова не потерять доступ?

Упражнение 4: Настройка Fail2Ban

  1. Установите Fail2Ban:
    sudo apt install fail2ban
  2. Создайте файл конфигурации для SSH:
    sudo nano /etc/fail2ban/jail.local

    Добавьте:

    [sshd]
    enabled = true
    port = ssh
    filter = sshd
    logpath = /var/log/auth.log
    maxretry = 3
    bantime = 1h
  3. Перезапустите Fail2Ban:
    sudo systemctl restart fail2ban
  4. Вопрос: Что произойдёт, если кто-то 4 раза подряд введёт неправильный SSH-ключ?

Упражнение 5: Аудит безопасности

  1. Выполните сканирование портов своего сервера с помощью nmap (установите на своём ПК):
    nmap -sV ваш_сервер_ip
  2. Вопросы:
    • Какие порты открыты?
    • Виден ли SSH-порт (22 или ваш кастомный)?
    • Если да, почему это потенциально опасно и как это исправить?

Итоги урока

Вы научились:

  • Отключать вход по паролю и переходить на SSH-ключи (как электронный пропуск).
  • Блокировать прямой доступ к root (как убрать главный ключ из двери).
  • Создавать отдельного пользователя с правами sudo (как выдавать временные пропуска).
  • Проверять настройки и не блокировать себя при изменениях.

🚀 Следующий шаг:

  • Настройте двухфакторную аутентификацию (2FA) для SSH.
  • Изучите, как ограничить доступ по IP (если у вас статический IP).
  • Автоматизируйте обновления безопасности (unattended-upgrades).

Помните: Безопасность — это не одноразовая настройка, а постоянный процесс. Регулярно проверяйте логи (/var/log/auth.log) на подозрительные попытки входа!


Вопросы? Пишите в комментариях — разберём любые сложные моменты!


Генератор паролей с длинной 64 символа
Женская одежда с бахромой
Кадастровые работы в Бийске
Как Aptum хостинг помогает малым бизнесам в управлении CRM-системами
Как выбрать планировку сайта для блогов на DreamHost
Как выбрать Vdsina вечный хостинг для своего проекта
Казань окна VEKA - профессионализм и опыт
Курьерская вода
Новостройки Оренбурга: недвижимость с отличной ценой
Онлайн чат-партнерство
Пиломатериалы для возведения бани
Почему VDSina — лучший выбор хостинга
Секреты Вконтакте: тонкости и хитрости
Скидки до 50% на тур в Коста-Рике
Видеочат рулетка бесплатно
рейтинг хостингов 2026 Быстрые VDS серверы