Введение
Все машины на базе Linux по умолчанию устанавливаются с пользователем root, обладающим всеми правами в системе; по умолчанию вы всегда действуете как пользователь root (суперпользователь). Рекомендации по безопасности рекомендуют отключить вход root по SSH для предотвращения несанкционированного доступа к вашей машине на базе Linux. Отключение входа root блокирует доступ root по SSH к вашей машине Linux, что означает, что никто не сможет воспользоваться неограниченными привилегиями. Следуя рекомендациям по безопасности, вам следует создать дополнительного пользователя с практически всеми правами суперпользователя для входа в систему.
В этом руководстве вы отключите вход в систему с правами root в Ubuntu, чтобы предотвратить несанкционированный доступ root через SSH и повысить безопасность вашей системы на базе Linux.
Предпосылки
Для выполнения этого урока вам понадобится следующее:
- Сервер Ubuntu 20.04 с пользователем без прав root и привилегиями sudo, брандмауэром и не менее 1 ГБ оперативной памяти, который вы можете настроить, следуя нашему руководству по начальной настройке сервера Ubuntu 20.04.
Шаг 1 — Войдите в систему и проверьте auth.log
На этом этапе вы входите на сервер как пользователь без прав root с привилегиями sudo, чтобы проверить попытки аутентификации. Проверяя журнал аутентификации, вы можете увидеть как авторизованные, так и неавторизованные попытки входа.
На подготовительных этапах вы создали нового пользователя и добавили его в группу sudo, предоставив ему права администратора. Вы будете использовать этого пользователя sudo для доступа к системе, так как после отключения возможности входа под учетной записью root вы не сможете войти в систему как пользователь root.
В зависимости от выбранного способа входа, используйте SSH для входа на сервер. Если при первоначальной настройке сервера вы использовали SSH-ключ для входа в учётную запись root, вам следует использовать механизм на основе ключей, поскольку аутентификация по паролю при использовании ключа отключена. В противном случае используйте вход по паролю, используя пароль пользователя sudo.
ssh sammy@your_server_ipЕсли вы используете метод входа на основе ключа, используйте следующую команду для входа на сервер как пользователь sudo:
ssh -i your_private_key sammy@your_server_ipФлаг -я Указывает на идентификационный файл, из которого считывается ваш закрытый ключ для аутентификации.
Затем проверьте файл auth.log с помощью следующей команды:
cd /var/log/
sudo cat auth.logПри необходимости введите пароль.
Вы получите примерно такой вывод:
Output
May 29 18:46:32 ubuntu sshd[3886]: Disconnected from invalid user cally 43.155.90.144 port 47454 [preauth]
May 29 18:51:56 ubuntu sshd[3890]: Received disconnect from 195.38.129.16 port 10017:11: Bye Bye [preauth]
May 29 18:51:56 ubuntu sshd[3890]: Disconnected from authenticating user root 195.38.129.16 port 10017 [preauth]
May 29 18:52:24 ubuntu sshd[3892]: Received disconnect from 178.128.234.248 port 58660:11: Bye Bye [preauth]
May 29 18:52:24 ubuntu sshd[3892]: Disconnected from authenticating user root 178.128.234.248 port 58660 [preauth]
May 29 18:52:34 ubuntu sshd[3894]: Received disconnect from 43.134.106.128 port 33854:11: Bye Bye [preauth]
May 29 18:52:34 ubuntu sshd[3894]: Disconnected from authenticating user root 43.134.106.128 port 33854 [preauth]
May 29 18:53:07 ubuntu sshd[3896]: Invalid user projects from 176.183.60.72 port 42070
May 29 18:53:07 ubuntu sshd[3896]: Received disconnect from 176.183.60.72 port 42070:11: Bye Bye [preauth]
May 29 18:53:07 ubuntu sshd[3896]: Disconnected from invalid user projects 176.183.60.72 port 42070 [preauth]
May 29 18:57:27 ubuntu sshd[3900]: Received disconnect from 92.255.85.135 port 20436:11: Bye Bye [preauth]
May 29 18:57:27 ubuntu sshd[3900]: Disconnected from authenticating user root 92.255.85.135 port 20436 [preauth]
May 29 19:06:40 ubuntu sshd[3903]: Invalid user default from 27.71.207.190 port 57513
May 29 19:06:41 ubuntu sshd[3903]: Connection closed by invalid user default 27.71.207.190 port 57513 [preauth]
...После входа в систему и проверки журнала аутентификации вы можете заметить множество несанкционированных запросов, получаемых вашим сервером. Это может указывать на необходимость отключить вход под учетной записью root и регулярно менять ключи и пароли.
Шаг 2 — Отключите вход под учетной записью root
На этом этапе вам нужно будет открыть файл sshd_config, чтобы отключить вход с правами root, а затем перезапустить службу sshd, чтобы прочитать конфигурацию после внесения изменений.
Файл sshd_config содержит файлы конфигурации SSH, в которых хранятся параметры, используемые службой sshd. Служба sshd отвечает за управление SSH-подключениями. Для применения изменений конфигурации необходимо перезапустить службу sshd.
sudo nano /etc/ssh/sshd_configПросмотрите файл и найдите строку PermitRootLogin:
Output
...
#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
...Затем, сумма PermitRootLogin от да К нет Изменять:
Output
...
#LoginGraceTime 2m
PermitRootLogin no
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
...Сохраните и закройте файл, затем перезапустите службу sshd, чтобы изменения конфигурации вступили в силу:
sudo systemctl restart sshdШаг 3 — Тест входа в систему root
После отключения входа под учетной записью root попробуйте войти как пользователь root по SSH. Чтобы войти с помощью пароля или SSH-ключа, выполните следующие команды:
ssh root@your_server_ipВход в систему под учетной записью root приведет к появлению такого сообщения об ошибке:
root@your_server_ip: Permission denied (publickey).Чтобы восстановить доступ к серверу, используйте для входа учетные данные пользователя без прав root с привилегиями sudo:
ssh sammy@your_server_ipРезультат
В этой статье вы настроили sshd для отключения входа root в Ubuntu. Теперь вы знаете, как отключить вход root на компьютерах с Linux и тем самым повысить безопасность своих систем.









