Я системный администратор. В производственной среде мне нужно управлять тысячами серверов. Мы с коллегами используем центральный управляющий сервер и распространяем его открытый ключ через другие серверы. Таким образом, мы можем использовать этот управляющий сервер для ssh на других серверах.
Иногда нам нужно использовать пароль root, например, когда сервер не работает, нам нужно использовать iLO, чтобы определить причину.
В настоящее время мы используем общий пароль root. Это небезопасно. Я также посмотрел на решение для одного сервера, например OPIE
(Одноразовые пароли во всем), но, поскольку у нас так много серверов, это не очень хорошая идея.
РЕДАКТИРОВАТЬ:
Что я хочу от решения для управления паролями:
Поэтому не очень хорошая идея устанавливать пароль root в виде длинной и случайной строки, хотя он сгенерирован какой-то известной командой (например, openssl passwd
). Трудно вспомнить, а иногда и создать (без моего ноутбука)
Вы могли бы использовать Кукольный протолкнуть смену пароля на все ваши серверы. Вы бы определили root
используя user
тип вот так:
user { 'root':
ensure => present,
password => '$1$blablah$blahblahblahblah',
}
Чтобы сгенерировать зашифрованный пароль:
openssl passwd -1 -salt "blah"
Я бы посоветовал, возможно, менять его каждый месяц или около того - возможно, используя схему, которую запомнили ваши SA. Вы также можете распространить его безопасным способом или положить в сейф.
Вы всегда можете просто установить отключенный пароль. Это предотвратит любой сетевой доступ к root, и если вы загрузитесь в однопользовательском режиме, большинство дистрибутивов загрузятся прямо в оболочку.
Вероятно, это не такая большая проблема безопасности, как вы могли подумать. В любом случае легко обойти пароль root, если вы не заблокировали grub паролем, почти любой может просто сказать grub, чтобы он запускал bash вместо initrd.
Конечно, это может означать, что вы должны вместо этого выяснить, как защитить паролем свой загрузчик.
Вы можете использовать одноразовые пароли с централизованным управлением. Я знаю, что это не соответствует принципу «должно работать, когда eth отключен, а доступ к серверу осуществляется с помощью iLO».
В любом случае: вопрос в том, как часто сервер отключен.
Итак, вы можете подумать о следующей настройке:
Используйте централизованно управляемое решение OTP, такое как privacyidea (http://www.privacyidea.org). Вы можете назначить пользователю root несколько разных токенов OTP. Каждый токен имеет другой PIN-код OTP и является отдельным устройством. Таким образом, все ваши коллеги могут войти в систему как пользователь root, но в журнале аудита вы увидите, какой токен аутентифицирован, чтобы вы могли знать, какой коллега вошел в систему в какое время.
На серверах вам необходимо настроить pam_radius для передачи запроса аутентификации в RADIUS и privacyIDEA.
Облом. Теперь ваш сервер отключен. В этом случае вам следует играть со своим стэком pam. Я мог придумать что-то вроде:
auth sufficient pam_unix.so
auth required pam_radius.so use_first_pass
Таким образом, вы можете войти в систему с фиксированным паролем в автономном режиме, в противном случае пароль будет передан pam_radius и подтвержден как OTP против privacyIDEA.
Смотрите это как https://www.howtoforge.com/manage-two-factor-authentication-in-your-serverfarm-with-privacyidea.