Запрещаем вход под root по SSH: создание пользователя sudo и PermitRootLogin no
Почему прямой вход под пользователем root по SSH крайне опасен
Учетная запись root (суперпользователь) существует абсолютно на каждом Linux-сервере в мире. Злоумышленникам уже известно имя учетной записи — им остается лишь подобрать пароль. Если хакер подберет пароль к root, он мгновенно получает неограниченный контроль над всем сервером. Правильный стандарт безопасности (CIS Benchmarks) требует: полностью запретить прямой вход под root по SSH и работать через персональные учетные записи с повышением привилегий через sudo.
Преимущества отключения входа root
- Злоумышленник не знает логинов реальных пользователей системы.
- Персонализированный аудит: в системных журналах четко фиксируется, кто именно выполнил опасную команду.
- Защита от случайных фатальных ошибок администратора при работе в терминале.
Пошаговый регламент закрытия прямого доступа root
Шаг 1: Создание нового системного пользователя
Подключитесь к серверу и создайте нового пользователя (замените adminuser на желаемое имя):
sudo adduser adminuserСистема попросит задать надежный пароль и подтвердить его.
Шаг 2: Выдача пользователю прав администратора (группа sudo)
Добавьте созданного пользователя в группу системных администраторов:
sudo usermod -aG sudo adminuserШаг 3: Проверка работы sudo под новым пользователем
Переключитесь на нового пользователя и проверьте выполнение команды с повышением прав:
su - adminuser
sudo whoami(Система должна запросить пароль пользователя adminuser и вернуть ответ: root).
Шаг 4: Отключение прямого входа root в конфигурации SSH
Откройте файл конфигурации демона OpenSSH:
sudo nano /etc/ssh/sshd_configНайдите директиву PermitRootLogin и измените ее значение на no:
PermitRootLogin noСохраните файл (Ctrl + O -> Enter -> Ctrl + X).
Шаг 5: Проверка конфигурации и перезапуск SSH
sudo sshd -t
sudo systemctl restart sshШаг 6: Проверка блокировки в НОВОЙ вкладке терминала
Не закрывая текущую сессию, откройте новую вкладку терминала и попробуйте подключиться под root:
ssh root@IP_вашего_сервераСервер должен отклонить попытку (Permission denied). Затем подключитесь под новым пользователем: ssh adminuser@IP_вашего_сервера — вход должен пройти успешно.
Типовые ошибки администраторов
- Отключение PermitRootLogin до проверки прав нового пользователя: Если вы запретите вход root, не убедившись, что новый пользователь успешно входит в группу sudo, вы рискуете навсегда потерять административный доступ к серверу.
- Забытый перенос SSH-ключей: Если на сервере отключен парольный вход, не забудьте скопировать ваш публичный ключ в папку
~/.ssh/authorized_keysнового пользователя.
ITSTM внедрит аутентификацию серверов через Active Directory / FreeIPA / LDAP с автоматическим отзывом прав при увольнении сотрудников.
Частые вопросы (FAQ)
В чем разница между 'PermitRootLogin no' и 'PermitRootLogin prohibit-password'?
Значение 'no' полностью запрещает любой вход под root по SSH. 'prohibit-password' (или without-password) запрещает вход по паролю, но разрешает подключение под root с использованием криптографических SSH-ключей.
Как вернуть доступ, если случайно заблокировал себе вход?
Войдите через аварийную KVM/VNC консоль хостинга под учетной записью root (локальный вход через консоль не блокируется директивой SSH) и исправьте sshd_config.
Как скопировать SSH-ключ от пользователя root новому пользователю?
Выполните команды: sudo cp -r /root/.ssh /home/adminuser/ && sudo chown -R adminuser:adminuser /home/adminuser/.ssh.
Как полностью удалить учетную запись root?
Удалять системную учетную запись root с UID 0 категорически запрещено — на ней завязана вся архитектура ядра Linux и системных демонов.