
Wie viele Benutzer wissen, betreibe ich viele Debian-Server für private, berufliche und ehrenamtliche Organisationen. Ich sehe in letzter Zeit viele Beiträge sowohl auf Superuser als auch auf IT-Sicherheit über das Deaktivieren von Passwörtern und die Verwendung einer schlüsselbasierten Authentifizierung.
Ich verwende eine schlüsselbasierte Authentifizierung für alle root
Zugriffe von meinem persönlichen Server, meinem Arbeitslaptop und dem Computer, den ich die meiste Zeit außerhalb der Arbeit verwende. Um jedoch auf einen der Server zuzugreifen, die WinSCP nicht verwenden (wo ich meine Schlüssel gespeichert habe, zumindest für meinen Windows-PC), melde ich mich mit meinem Standardbenutzerkonto an und melde mich dann su
bei root an, wobei ich das sehr lange Passwort verwende.
Auf den Servern, die ich nicht für Arbeitszwecke verwalte, bewahre ich diese Schlüssel nur an diesen drei Orten auf, hauptsächlich für Backups. Ich verwende sehr starke Passwörter (meiner Meinung nach) und nur PermitRootLogin withoutpassword
(ich liebe es, wenn ich sie in Konfigurationsdateien in Sätzen verwenden kann!). Wenn ich mich von einem anderen Ort aus anmelde, verwende ich mein normales Konto mit einem starken Passwort, weilIch habe keinen Ort, an dem ich meine Schlüssel aufbewahren und aufrufen kann, wenn ich mich von einem neuen Gerät aus normal anmelden muss.
Meiner Ansicht nach gibt es hierfür zwei mögliche Lösungen:
- Ich speichere die Schlüssel im Klartext oder verschlüsselt an einem entfernten Ort und deaktiviere alle kennwortbasierten Authentifizierungsmethoden für meine Server. Wenn ja, wo und wie kann ich sie sicher speichern, damit sie nichtwahrscheinlichkompromittiert werden?
- Verwenden Sie ein starkes Passwort für normale Benutzer und ändern Sie es alle 90 Tage. Das ist sicher eine gute Vorgehensweise, aber mein Gedächtnis ist wirklich schlecht. Ich bin sicher, dass ich trotzdem immer dasselbe Passwort verwenden würde, nur aus reiner Gewohnheit, was den ganzen Sinn dieser Vorgehensweise zunichte macht.
Ich würde wirklich gerne Methode 1 verwenden, aber ich weiß nicht, was die beste Vorgehensweise wäre, wenn es so viele Server gibt und viele davon unterschiedliche Passwörter verwenden, nur um sich von einem neuen Standort aus anzumelden. Ich verwende beispielsweise regelmäßig mein Mobiltelefon, um nach Hause zu tunneln oder den Status eines Dienstes an einem entfernten Standort zu überprüfen.
Antwort1
Sowohl die Erfahrung als auch die Forschung haben gezeigt, dass die sichersten Passwörter diejenigen sind,eher lang als komplex, was für Leute mit schlechtem Gedächtnis (mich eingeschlossen!) wirklich nervt. Daher ist meiner Meinung nach die Verwendung einer schlüsselbasierten Authentifizierung der richtige Weg, wenn es um die Verwaltung einer großen Anzahl von Servern geht.
Gleichzeitig ist alles, was mit Sicherheit zu tun hat,Fernspeicherungim selben Satz ist normalerweise ein Ohrenschmaus. Ich sage nichtbeliebigEin abgelegener Ort ist möglicherweise unsicher, aber Sie können nicht wissen, ob er es tatsächlich ist. Auf der anderen Seite, in Bezug auf die Praktikabilität,du wirst habenum den SSH-Schlüssel an einem Remote-Speicherort zu speichern.
Nachdem ich alle diese Zutaten vermischt habe, habe ich zwei Vorschläge:
Verwenden Sie einen IT-Konfigurationsmanager
Beispiele sind: Puppet, Chef-Server oder ähnliches.
Sie erwähnen, dass Sie einen persönlichen Server haben. Wahrscheinlich ist dies deram wenigsten schlechterOrt, an dem Sie Ihren zentralen Konfigurationsserver hosten können. Sie könnten ein Modul erstellen, das Ihren SSH-Schlüssel verschlüsselt speichert und es Ihrem persönlichen Computer, Ihrem Arbeitslaptop und potenziellen neuen Geräten ermöglicht, ihn einzusetzen.
Wir gebrauchenChef-Serverum diese Aufgaben auszuführen. Es hat eine Funktion namens Datentaschen, und sehr interessante Art von diesen namensverschlüsselte DatenbeutelDamit können Sie tatsächlich alle Ihre Passwörter, SSH-Schlüssel und alle sensiblen Daten speichern.
Unabhängig davon, welchen Konfigurationsmanager Sie wählen, können Sie ihn verwenden, um die Schlüssel auf beiden Servern bereitzustellen.Undpersönliche Computer.
Dieser Ansatz hat einen großen Vorteil: Wenn Ihr privater Schlüssel durch eine Änderung kompromittiert wird, ändern Sie ihn an einer Stelle und er wird ohne Zeitverlust auf allen Servern und Clients bereitgestellt.
Es hat jedoch einen Nachteil. Wenn Sie planen, von mobilen Geräten wie Mobiltelefonen, Tablets usw. auf Ihre Server zuzugreifen, haben Sie wahrscheinlich keinenChef|Puppet|Fügen Sie hier Ihren bevorzugten Konfigurationshandler-Server einKunde dort.
Weitere Informationen hierzu:
Verwenden Sie einen verschlüsselten lokalen Dateimanager
Es gibt Software, die Ihre Schlüssel verschlüsselt, egal ob es sich um Passwörter, SSH-Schlüssel oder Bankdaten handelt. Das hat einen offensichtlichen Nachteil: Um Ihre Passwörter zu schützen, benötigen Sie ein Passwort (und wahrscheinlich ein sehr gutes). Wenn Ihnen dieser Ansatz gefällt, können Sie Ihren verschlüsselten Schlüssel auf jeden Fall auf einem USB-Stick speichern und ihn überallhin mitnehmen.
Dies hat einen weiteren potenziellen Nachteil: Sie können Ihren USB-Stick verlieren, jemand könnte ihn stehlen... In diesem Fall ist esTrotzdemverschlüsselt, aber Sie werden wahrscheinlich ein paar Tassen Kaffee trinken wollen, um den SSH-Schlüssel auf allen Ihren Debian-Servern und -Clients zu ändern, was Sie wahrscheinlich zu der Annahme verleiten wird, dass Ansatz 1 deutlich skalierbarer ist.
Auf jeden Fall kenne ich nur eine Software dieser Art, die sicher genug ist, um alle Ihre Schlüssel zu speichern (übrigens: Sie können Ihre Passwortdatei mit einem Passwort (wie erwähnt), einer Schlüsseldatei oder beidem schützen).
Wenn Ihnen dieser Ansatz gefällt, möchten Sie wahrscheinlich einen Blick darauf werfenBewahre den Arsch.