Рейтинг:0

Когда отключать учетную запись root на сервере Ubuntu

флаг jp

Я настроил Ubuntu 20.xx в качестве веб-сервера в облаке, предоставленном Digital Ocean, и хочу установить Node, Express, Mongo и, возможно, NginX. В нескольких статьях упоминается отключение пользователя root для повышения безопасности и создания нового пользователя с административным доступом. Для этого я создал нового пользователя, а затем использовал его для настройки всех приложений, но столкнулся с проблемой с nginx.

Должен ли я вместо этого использовать пользователя root, чтобы сначала настроить все приложения и разрешить приложениям запускаться под root? Затем создайте второго пользователя-администратора с доступом по ssh, а затем отключите ssh для root?

ОБНОВЛЕНИЕ1: Всем спасибо за помощь, я обновил вопрос и добавил облачную установку.

ОБНОВЛЕНИЕ2:

Спасибо за подробное объяснение. Как я понимаю :

  1. Пользователь Sudo имеет те же привилегии, что и root
  2. Пользователь Sudo может отслеживать, кто выполнял действия (актуально, когда речь идет о нескольких пользователях).
  3. Веб-приложения (node, pm2, mongo) можно установить ЛИБО с root и/или учетные записи пользователей sudo, поскольку эти приложения должны работать с собственными учетными записями пользователей по умолчанию.
  4. Со временем отключите root ssh, чтобы защититься от атак грубой силы.
Рейтинг:3
флаг cn

On a stock install of Ubuntu Server on bare metal or a self-hosted VM, the root user is already disabled. DON'T enable root. Use Ubuntu the way that it's designed to be used.

On a cloud install of Ubuntu, you're not installing; the finished container/VM is handed to you. Cloud users often have a functioning root prompt so they can create admin sudo users. Advice: After you create those users and install their SSH keys, disable root login (and all password login) to protect your system from attackers.

If you are encountering a problem with nginx, please open a new question specifically about that problem.

Orange Juice Jones avatar
флаг jp
Я использую образ Digital Ocean, и root включен. Есть статья, в которой объясняется, как создать нового пользователя и отключить root — https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-20-04.
Orange Juice Jones avatar
флаг jp
Вопрос в том, какую учетную запись следует использовать для установки и запуска Node.Js Mongo и PM2. Спасибо
user10489 avatar
флаг in
Ваш вопрос комментария (и оригинал) показывает фундаментальное непонимание того, почему root должен быть отключен и что sudo делает вместо него. Какая учетная запись используется для установки, является спорным. Какая учетная запись для запуска приложений должна быть спорной, или часть загрузочных скриптов для их запуска.
user535733 avatar
флаг cn
Из вашего вопроса не ясно, что это облачный экземпляр. Между облачными экземплярами и установками на «голое железо»/VM есть некоторые различия. Большое редактирование по адресу.
Orange Juice Jones avatar
флаг jp
Спасибо, я обновил вопрос после вашего отзыва.
Рейтинг:1
флаг in

Причина «отключения root» и использования sudo с обычной учетной записью вместо этого имеет несколько целей, ни одна из которых не влияет на ответ на ваш вопрос.

Системное программное обеспечение всегда устанавливается с правами root. Иногда прикладное программное обеспечение устанавливается от имени конкретного пользователя приложения, но обычно это не так. Отключение входа в систему для учетной записи root не меняет этого и не меняет способ запуска приложений при загрузке.

Смысл отключения учетной записи root заключается в том, что вы входите в систему как обычный пользователь и выполняете сеанс пользователя, как обычный пользователь, а не root. Затем вы используете sudo, чтобы подняться до root, чтобы установить программное обеспечение и сделать другие опасные вещи. Это также имеет побочный эффект, заключающийся в том, что когда вы используете sudo, учетная запись пользователя, которая это сделала, также регистрируется, что не так интересно, если только нет нескольких учетных записей пользователей, которые могут использовать sudo, и в этом случае легче назначить вину, когда ошибка сделана. Таким образом, установка программного обеспечения по-прежнему выполняется с правами root — просто через sudo вместо прямого входа в систему.

Когда приложение (например, NginX, mysql, mogodb и т. д.) настроено на запуск при загрузке, обычно сценарии загрузки systemd (или initd) запускают приложение от имени специального пользователя приложения. Этот пользователь создается при установке приложения. Вы не должны запускать приложение вручную, а разрешать его запускать установленным системным сценариям (например, с помощью systemctl start...), чтобы оно работало с правильными разрешениями в правильной среде. Философия дизайна, лежащая в основе этого, заключается в том, что приложение изолировано внутри своего собственного пользователя, и проблемы безопасности с приложением (надеюсь) будут связаны с этим идентификатором пользователя. Большинство приложений не следует запускать напрямую от имени пользователя root.

Сказав все это, в системе с одним администратором регистрация того, кто использует sudo, менее интересна, и если у вас есть облачные образы, которые вы можете просто скопировать и перезагрузить из новой копии, то, какой пользователь запускает вещи, как внутри контейнера, также менее важно. Вероятно, поэтому ваш облачный образ поставляется с включенным root и без отдельного пользователя с правами администратора.

Orange Juice Jones avatar
флаг jp
Спасибо за объяснение, я обновил вопрос с учетом моего понимания - есть ли у вас какие-либо комментарии по этому поводу?
user10489 avatar
флаг in
Почти. учетная запись sudo не совпадает с корневой. Учетная запись с доступом sudo имеет права обычной учетной записи, за исключением того, что она может запускать sudo, чтобы стать пользователем root. Дело не в том, что учетная запись sudo и учетная запись root совпадают, дело в том, что учетная запись sudo может запускать вещи как root, используя sudo.
Orange Juice Jones avatar
флаг jp
Когда создается новый пользователь (sudo или не-sudo), в домашнем каталоге также создается каталог с именем пользователя. Когда веб-приложения устанавливаются с использованием этой новой учетной записи, будет ли этот новый каталог каким-либо образом задействован для установки или он содержит только определенную информацию для пользователя?
user10489 avatar
флаг in
Это зависит от установки. Например, если вы устанавливаете программное обеспечение с помощью `sudo apt install`, оно ничего не использует из каталога пользователя.
Рейтинг:1
флаг cn

Когда отключать учетную запись root на сервере Ubuntu?

Я бы предложил не делать этого, а делать что-то, чтобы максимизировать безопасность. Посмотрим правде в глаза, если правительство захочет получить доступ к вашему серверу, они воспользуются простым способом просмотра ваших файлов. Мы беспокоимся только о хакерах снаружи.

У меня есть экземпляр на RamNode, который я использую для своих веб-сайтов. Когда я впервые узнал, как настроить автоматический сервер Ubuntu, я обнаружил несколько важных вещей. Как только вы настроите сервер, кто-нибудь попытается взломать его!

  1. Создайте надежный пароль root. Длина должна быть не менее 32 символов. Не дублируйте ключи рядом друг с другом. Используйте все символьные клавиши на клавиатуре в случайном порядке, кроме клавиши обратной кавычки '. Используйте специальные символы, такие как $%&, и не используйте слова или фразы. Я храню свои данные для входа следующим образом в текстовом файле на моем основном компьютере: ssh [email protected] 6^g0)6)nS3@sGh^7*9L:pR%bS@3d9

  2. Как только вы создали свой сервер, сделайте следующее: ufw разрешить ssh ufw включить удачное обновление список подходящих --обновляемый удачное обновление

Теперь вы заблокировали всех, кто пытается проникнуть в ваш корень, и обновили файлы Ubuntu. Никакие другие порты не открыты для любого другого доступа, кроме ssh.

Я также использую только ipv4, поэтому я блокирую доступ ipv6 через файл sshd_config, файл /etc/default/ufw и файл /etc/default/grub.

Чтобы увидеть, кто атакует, используйте эту команду: статус службы sshd Вы можете быть удивлены, увидев, как быстро они начинают пытаться проникнуть в ваш сервер. Я получаю удары из Китая почти без перерыва. КПК десятилетиями воровала данные откуда только могла. Но это другая история.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.