4

Рекомендуется удалить возможность пользователя root войти в систему через ssh. Однако мне нужно выполнить некоторые команды Ansible, и в настоящее время я подключаюсь через пользователя с именем "amdhske", а затем настроил этого пользователя так, чтобы ему не нужно было вводить пароль для выполнения sudo противном случае Ansible необходимо, чтобы пароль пользователя оставался без изменений.

Так какой смысл отключать root-доступ в этом случае? Любой злоумышленник , который получает в к "amdhske" учетной записи пользователя через SSH может затем sudo щеколды из сервера. Я предполагаю, что единственным преимуществом здесь является то, что при выборе длинного случайного имени пользователя маловероятно, что злоумышленник узнает об этом, тогда как "root" - это имя пользователя по умолчанию для "root". Есть ли другая причина?

3 ответа3

4

Довольно легко. Две причины:

  1. Вы можете ограничить то, что вы можете sudo без пароля с вашим пользователем. Вы просто вводите правильную конфигурацию в файлы sudoers:

    amdhske ALL=NOPASSWD: /usr/bin/somecommand
    

Если вы войдете в систему как root, у вас есть все права на что-либо.

  1. Каждый сценарий, которого знает ребенок, знает, что имя вашей учетной записи суперпользователя - root. Как вы думаете, какое имя пользователя они будут пытаться использовать в вашей системе? Правильно, root.

Вот почему это хорошая практика безопасности, чтобы отключить root ssh логин.

1

Здесь происходит несколько вещей, и я могу пропустить некоторые, но здесь идет.

  1. Безопасность по неизвестности: проверь свой лог авторизации некоторое время. Скорее всего, каждый день существуют сотни попыток входа в систему с помощью автоматических сценариев, и запрещение входа этим пользователем блокирует некоторые из них.

  2. Устаревшие политики: с аутентификацией на основе ключей это не так уж сложно, но с более старыми моделями аутентификации было невероятно плохой практикой оставлять открытую учетную запись root. Эти лучшие практики не изменились, потому что, во-первых, нет никакой реальной выгоды для root-входа.

  3. Ведение журнала: Если у каждого пользователя есть своя учетная запись, вы можете легко определить, кто что сделал в вашей системе.

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

1

Чтобы решить проблему с "Ansible", не отключая вопрос о пароле для sudo , вы можете выполнить тривиальную команду sudo, например sudo ls а затем продолжить с sudo Ansible . Это всего лишь обходной путь, и через некоторое время срок действия sudo истекает, поэтому это может не полностью решить проблему.

PS. Я понимаю, что это не касается прямого вопроса ОП, но я пытаюсь решить его / ее коренную (каламбур) проблему.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .