Was ist die beste Lösung, um das Root-Passwort von Tausenden Servern zu verwalten?

12

Ich bin ein Systemadministrator. In der Produktionsumgebung muss ich Tausende von Servern verwalten. Meine Kollegen und ich verwenden einen zentralen Verwaltungsserver und verteilen den öffentlichen Schlüssel über andere Server. So können wir diesen Verwaltungsserver verwenden, um zu anderen Servern zu sshen.

Manchmal müssen wir das root-Passwort verwenden, zum Beispiel, wenn der Server ausfällt, müssen wir iLO verwenden, um den Grund zu bestimmen.

Derzeit verwenden wir ein gemeinsames root-Passwort. Es ist unsicher. Ich habe mir auch eine Einzelserverlösung wie OPIE(One-Time Passwords In Everything) angesehen, aber da wir so viele Server haben, ist dies keine sehr gute Idee.

BEARBEITEN:

Was ich von der Kennwortverwaltungslösung möchte, ist:

  1. Es sollte sicher sein, daher ist das Einmalpasswort eine großartige Lösung.
  2. Das Passwort kann einfach eingegeben werden, manchmal müssen wir den Monitor an den Server anschließen oder mit iLO, wie oben erwähnt.
  3. Die Lösung sollte funktionieren, auch wenn der Server offline ist (ohne Netzwerkverbindung)

Daher ist es keine gute Idee, das Root-Passwort auf eine lange und zufällige Zeichenfolge festzulegen, obwohl es aus einem bekannten Befehl (wie openssl passwd) generiert wurde . Es ist schwer zu merken und manchmal schwer zu generieren (ohne meinen Laptop)

Yegle
quelle
1
Verwenden Sie bereits ein Konfigurationsmanagementsystem wie Puppet? Was benutzt du?
Zoredache
Puppet ++ dafür.
Tom O'Connor
Wir verwenden Cfengine :-)
Yegle

Antworten:

5

Sie können Puppet verwenden , um die Kennwortänderung an alle Ihre Server weiterzuleiten. Sie würden rootden userTyp folgendermaßen definieren :

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

So generieren Sie das verschlüsselte Passwort:

openssl passwd -1 -salt "blah"

Ich würde vorschlagen, es vielleicht jeden Monat oder so zu ändern - vielleicht mit einem Schema, das Ihre SAs auswendig gelernt haben. Sie können es auch über eine sichere Methode verteilen oder in einem Safe aufbewahren.

Belmin Fernandez
quelle
3

Sie können immer nur ein deaktiviertes Passwort festlegen. Dies würde jeglichen Netzwerkzugriff auf root verhindern, und wenn Sie im Einzelbenutzermodus booten, booten die meisten Distributionen direkt in eine Shell.

Dies ist wahrscheinlich kein so großes Sicherheitsproblem, wie Sie vielleicht denken. Es ist trivial, das root-Passwort zu umgehen, es sei denn, Sie haben grub mit einem Passwort gesperrt, so ziemlich jeder könnte grub einfach anweisen, bash anstelle von initrd zu starten.

Dies kann natürlich bedeuten, dass Sie stattdessen überlegen sollten, wie Sie Ihren Bootloader mit einem Kennwort schützen können.

Zoredache
quelle
0

Sie können Einmalpasswörter mit einer zentralen Verwaltung verwenden. Ich weiß, dass dies nicht zu "Muss funktionieren, wenn eth offline ist und auf den Server mit iLO zugegriffen wird" passt.

Wie auch immer: Die Frage ist, wie oft der Server offline ist.

Man könnte sich also folgendes Setup vorstellen:

Verwenden Sie eine zentral verwaltete OTP-Lösung wie privacyidea ( http://www.privacyidea.org ). Sie können dem Root-Benutzer mehrere verschiedene OTP-Token zuweisen. Jedes Token hat eine andere OTP-PIN und ist ein anderes Gerät. Auf diese Weise können sich alle Ihre Kollegen als Benutzer root anmelden. Im Überwachungsprotokoll sehen Sie jedoch, welches Token authentifiziert ist, sodass Sie wissen, welcher Kollege sich zu welcher Zeit angemeldet hat.

Auf den Servern müssen Sie pam_radius so konfigurieren, dass die Authentifizierungsanforderung an RADIUS und privacyIDEA weitergeleitet wird.

Schade. Ihr Server wird jetzt offline geschaltet. In diesem Fall sollten Sie mit Ihrem Pam Stack spielen. Ich könnte an etwas denken wie:

auth sufficient pam_unix.so
auth required pam_radius.so use_first_pass

Damit Sie sich offline mit einem festen Passwort anmelden können, wird das Passwort an pam_radius übergeben und als OTP gegen privacyIDEA validiert.

Weitere Informationen finden Sie unter https://www.howtoforge.com/manage-two-factor-authentication-in-your-serverfarm-with-privacyidea .

cornelinux
quelle