Какое лучшее решение для управления паролем root тысяч серверов


12

Я системный администратор. В производственной среде мне нужно управлять тысячами серверов. Мы с коллегами используем центральный сервер управления и распространяем его открытый ключ через другие серверы. Таким образом, мы можем использовать этот сервер управления для SSH к другим серверам.

Иногда нам нужно использовать пароль root, например, когда сервер не работает, нам нужно использовать iLO, чтобы определить причину.

В настоящее время мы используем общий пароль root. Это небезопасно. Я также рассмотрел какое-то одно серверное решение, например OPIE(одноразовые пароли во всем), но поскольку у нас так много серверов, это не очень хорошая идея.

РЕДАКТИРОВАТЬ:

Что я хочу от решения для управления паролями:

  1. Это должно быть безопасно, поэтому одноразовый пароль - отличное решение.
  2. Пароль можно легко ввести, иногда нам нужно подключить монитор к серверу или с помощью iLO, как я уже упоминал выше.
  3. Решение должно работать, даже если сервер находится в автономном режиме (без подключения к сети)

Поэтому не очень хорошая идея устанавливать пароль root на длинную и случайную строку, хотя она генерируется какой-то известной командой (например openssl passwd). Трудно запомнить, а иногда трудно генерировать (без моего ноутбука)


1
Вы уже используете систему управления конфигурацией, как Puppet? Что вы используете?
Zoredache

Кукольный ++ для этого.
Том О'Коннор

Мы используем cfengine :-)
yegle

Ответы:


5

Вы можете использовать Puppet для отправки смены пароля на все ваши серверы. Вы бы определили rootиспользование userтипа следующим образом:

    user { 'root':
            ensure => present,
            password => '$1$blablah$blahblahblahblah',
    }

Чтобы создать зашифрованный пароль:

openssl passwd -1 -salt "blah"

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


3

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

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

Конечно, это может означать, что вместо этого вы должны выяснить, как защитить ваш загрузчик паролем.


0

Вы можете использовать одноразовые пароли с центральным управлением. Я знаю, что это не подходит для "должен работать, когда eth находится в автономном режиме и доступ к серверу осуществляется с помощью iLO".

В любом случае: вопрос в том, как часто сервер находится в автономном режиме.

Таким образом, вы можете подумать о следующей настройке:

Используйте централизованно управляемое решение OTP, такое как privacyidea ( http://www.privacyidea.org ). Вы можете назначить несколько разных OTP-токенов пользователю root. Каждый токен имеет свой OTP PIN-код и является другим устройством. Таким образом, все ваши коллеги могут войти в систему как пользователь root, но в журнале аудита вы увидите, какой токен прошел проверку подлинности, чтобы вы могли узнать, какой коллега вошел в систему в это время.

На серверах вам нужно настроить pam_radius для передачи запроса аутентификации в RADIUS и privacyIDEA.

Облом. Теперь ваш сервер отключается. В этом случае вы должны играть со своим стеком пам. Я мог бы придумать что-то вроде:

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 .

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.