Назад | Перейти на главную страницу

Небезопасно ли иметь доступного пользователя с sudo без пароля?

Я новичок в Ansible. Большинство руководств по настройке VPS, которые я видел до сих пор, делают следующее:

  1. отключить root от входа в систему
  2. создать нового пользователя, который может войти только с ssh (не пароль)
  3. добавить нового пользователя в wheel группа, с sudo без пароля разрешение

Я понимаю (1) и (2), но не (3).

Конечно без пароля sudo это похоже на вход как root? Я понимаю выгоду (удобство), но разве это не небезопасно?

Я понимаю, что администраторы управляют своими сетями по-разному, и поэтому это можно назвать «субъективным», но это ОЧЕНЬ распространенная практика, она даже показана в различных официальных доступных документах, а также в руководствах, опубликованных хостинговыми компаниями. Это противоречит здравому смыслу. Какая логика за этим?

Если учетная запись службы может выполнять sudo без пароля, вам необходимо защитить доступ к этой учетной записи.

Имея аккаунт не иметь пароль и использовать только ключи ssh для входа в систему, при условии, что вы также можете защитить закрытый ключ ssh.

Новый пользователь, созданный в (2), может войти в систему только с ключом SSH, без пароля. Ключ SSH дает косвенный root-доступ. Таким образом, это эквивалентно простому разрешению входа в систему root с помощью ключа.

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

Проблема в том, что ansible предназначен для администраторов и автоматизации, поэтому, если вам нужно ввести пароль для запуска скрипта, это не лучший способ. Также небезопасно хранить пароль для sudo в файле или базе данных и получать его каждый раз при запуске playbook. Таким образом, комбинация sudo без пароля и аутентификации с помощью ключей ssh ​​- лучший метод обеспечения безопасности и отсутствия правильных проблем при запуске playbook. Также вы администратор и знаете, что программируете в playbook. Таким образом, playbook не может уничтожить ваши серверы.