Люди, заботящиеся о безопасности, часто предлагают отключить ssh как root в Linux. У меня такой вопрос:
Допустим, вы обычно пишете множество скриптов, которые используют ssh для большого количества Linux-серверов и выполняют различные задачи корневого уровня. Если вы отключите ssh как root, как вы будете проводить ежедневное обслуживание, требующее прав root?
Конечно, sudo - это вариант, но тогда вам придется вводить пароль каждый раз, когда вы запускаете команду. что, если ваши скрипты выполняют множество задач? Что, если вам придется запустить этот сценарий на большом количестве хостов?
Конечно, вы можете установить параметр NOPASSWD, но разве это не угроза безопасности?
Просто размышляю здесь. Хотите получить обратную связь от сообщества. Я ищу относительно безопасный способ подключения по ssh к ящикам Linux и выполнения задач корневого уровня.
Вы можете многое сделать. Это неполный список:
Если сценарий действительно должен запускаться периодически, поместите его в crontab и прекратите запускать его вручную.
Используйте такую систему, как MCollective (относящуюся к марионетке, но не совсем ее часть) для удаленного запуска команд на большом количестве машин одновременно.
Используйте ключи ssh, чтобы разрешить вход в систему с правами root от определенных пользователей. Это несет в себе аудиторский риск, так как человек, который вошел в систему, может не войти в систему, поэтому это действительно подходит только для очень небольших установок.
В /etc/sudoers
укажите только те скрипты, которые можно запускать без пароля; для чего-нибудь еще потребуется пароль.
Если вы регулярно «пишете сценарий для запуска задач с правами root по ssh», вам следует серьезно подумать о настройке Puppet / Chef / CFEngine / Ansible / Salt / Rundeck.
Если вам нужно выполнить несколько конкретных команд, вы можете настроить sudo (через /etc/sudoers
file), чтобы разрешить определенному списку пользователей (и / или групп) выполнять эти команды без пароля.
Вам не нужно вводить пароль каждый раз: если вы запускаете sudo в течение относительно короткого времени, вам не нужно его вводить. Если нужны более длинные задачи, можно запустить sudo -s
получить рут-оболочку.
Преимущество использования sudo для этого по сравнению с прямым ssh в качестве root заключается в том, что а) вам не нужно сообщать пароль root нескольким людям, б) можно читать журналы, чтобы выяснить, кто использовал sudo. Это может быть необязательно, пока вы один, но это может измениться.