Wie kann ich allen Konsolenzugriff mit Ausnahme von SSH mit Schlüsselauthentifizierung verhindern?

5

Ich habe eine Serverumgebung, für die die einzige Anmeldemethode SSH oder ein lokales Terminal im Datencenter wäre. Ich habe dies so eingerichtet, dass sich ein bestimmter Benutzer nur mit einem Schlüssel anmelden kann, nicht mit einem Passwort (explizit deaktiviert). Dieser Benutzer hat auch kein Passwort gesetzt.

Aufgrund der Dinge, die dieser Benutzer auf dem Server ausführen muss, habe ich den passwortfreien Sudo-Zugriff gewährt (in der Sudoers-Datei):

username ALL=(ALL) NOPASSWD: ALL

Natürlich kann dies ein Sicherheitsrisiko sein. Ich muss sicherstellen, dass sich der Benutzer nicht über SSH unter Verwendung unserer streng bewachten SSH-Schlüssel auf dem Server anmelden kann. Alle SSH-Anmeldungen sind äußerst gut geschützt und auch an eine bestimmte IP-Adresse gebunden, so dass sie zusammen mit der schlüsselbasierten Anmeldung sicher sind (wie es sein kann). Ich möchte die Möglichkeit der Anmeldung über unser Rechenzentrum ausschließen, um sicherzustellen, dass sich der Benutzer nicht von dort aus anmelden kann und nur SSH.

Wie verhindere ich diese nicht autorisierten Zugriffsversuche?

John Porter
quelle
"Dieser Benutzer hat auch kein Passwort festgelegt." Das heisst...?
Ignacio Vazquez-Abrams
Ein Benutzer unter Linux muss kein Kennwort haben
John Porter
Das beantwortet die Frage nicht.
Ignacio Vazquez-Abrams
Haben Sie in Erwägung gezogen, ein Kennwort für den Benutzer festzulegen, das aus über 30 zufälligen Zeichen besteht (von denen einige fast unmöglich sind), um Nicht-SSH-Anmeldungen zu verhindern?
killermist
Das ist eine gute Idee.
John Porter

Antworten:

1

Sie können ein Kennwort für den Benutzer festlegen, das aus über 30 zufälligen Zeichen besteht (einige sind fast nicht einzugeben), um Nicht-SSH-Anmeldungen zu verhindern.

Dies hindert den Benutzer jedoch nicht daran, das Kennwort über SSH zu ändern und dann das Datencenterterminal für den direkten Zugriff zu verwenden.

killermist
quelle
Ich habe die massive Kennwortidee verwendet und es fühlt sich sicherer an. Wie in einem Kommentar oben hinzugefügt, ist die SSH sicher, da sie auf Schlüsseln basiert und der Computer, auf dem sich der Schlüssel befindet, in meinem Büro ist. Danke für Ihre Hilfe.
John Porter
2

Ich habe immer eine bessere Lösung gefunden, den Passwort-Hash (in / etc / shadow) auf einen ungültigen Wert zu setzen. Normalerweise verwende ich die Zeichenfolge %% NP %%. Dadurch wird die Kennwortauthentifizierung für diesen Benutzer effektiv deaktiviert, und jede Art von Brute-Force-Cracking des Kennworts wird verhindert. Da keine Eingaben in den Passwort-Hash-Algorithmus jemals mit dem Hash in der Schattendatei übereinstimmen, ist dies äußerst sicher.

Unter Linux können Sie statt (oder zusätzlich) zu den obigen Parametern Zugriffssteuerungsparameter in /etc/security/access.conf festlegen. Es gibt mehrere Beispiele in dieser Datei, die Ihnen das geben sollten, was Sie brauchen. Ein Nachteil bei diesem Ansatz ist, dass Sie root ganz einfach daran hindern können, sich über die Konsole anzumelden. Dies ist im Notfall eine sehr schlechte Idee.

Michael
quelle