Was sind die Auswirkungen von passwortlosem SSH?

Was sind die Auswirkungen von passwortlosem SSH?

Wenn UNIX-Benutzer Server über SSH erreichen und wir nur Pubkey-Anmeldungen zulassen möchten, gibt es noch weitere Elemente, die dieser Liste hinzugefügt werden müssen und auf die ich achten sollte?

  1. Lassen Sie pubkey logindie sshd_configDatei auf dem Server zu.
  2. Überlegungen zu einem Standardkennwort, wie beispielsweise"!"oder"*"

Antwort1

Es wäre gut gewesen, Ihnen mitzuteilen, nach welchem ​​SSH-Server Sie gefragt haben und um welche (Gruppe von) Unix-Systemen es sich handelte.

!und *sind keine Passwörter, wenn Sie sie in /etc/passwdoder sehen /etc/shadow(verwenden Sie sie, getentum diese Einträge zu lesen).

Sie kennzeichnen, ob das Konto über ein Passwort verfügt oder nicht und ob es gesperrt ist oder nicht.

Dies ist eine wichtige Unterscheidung, abhängig von der Konfiguration und Version von PAM und der Distribution,wenn Sie Linux verwenden. Wenn es gesperrt ist, ist die Wahrscheinlichkeit geringer, dass Sie sich anmelden können, andererseits ist es möglich, dass es auf älteren Systemen sofort funktioniert (das ist zumindest meine Erfahrung).

Mit können Sie (als Superuser) passwd -l <name>ein Konto sperren ( !) oder passwd -d <name>dessen Kennwort löschen ( *). Sie können beides auch kombinieren, wodurch lediglich sichergestellt wird, dass ein eventuell vorhandenes Kennwort entfernt wird: passwd -dl <name>.

Sie sagen es nicht, aber unter der Annahme von OpenSSH lauten die relevanten Anweisungen in /etc/ssh/sshd_config(Pfad kann variieren):

HostKey ...

Der Server muss über einen Hostschlüssel oder RSA2 oder DSA verfügen (und modernere Implementierungen fügen auch zwei elliptische Kurvenimplementierungen hinzu). RSA1 wird von allen gängigen SSH-Serverimplementierungen schon lange nicht mehr verwendet.

Dann:

RSAAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication no

Ich würde auch immer empfehlen, die Anmeldung über SSH ( ) /etc/sudoerskomplett zu untersagen . Dieses sicherere Setup kann jedoch einen kleinen Nachteil haben, wenn die Festplatte voll ist und Ihr nicht privilegiertes Mitglied nicht auf die Festplatte schreiben kann, dies aber könnte (aufgrund des reservierten Speicherplatzes). Sie können also Ihre Anforderungen erfüllen.rootPermitRootLogin nosudoroot

Zwei weitere Ratschläge

Weisen Sie eine Gruppe zu, um den SSH-Zugriff einzuschränken

Erstellen Sie eine Gruppe ssh-users(oder einen beliebigen Namen) und legen Sie die entsprechende Direktive fest sshd_config. Stellen Sie sicher, dass dies rootgemäß der Richtlinie, die Sie anhand der obigen Informationen ausgewählt haben, Mitglied dieser Gruppe ist oder nicht.

AllowGroups ssh-users

Weisen Sie eine Gruppe zu, auf die Benutzer beschränkt werden sollennurSFTP-Zugriff

Im sshd_configFolgenden wird dann dafür gesorgt, dass Benutzer nicht entkommen können /homeund bestimmte Funktionen für sie deaktiviert werden.

Match group sftponly
    ChrootDirectory /home
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
    PasswordAuthentication no

Abschluss

Also ja, PAM müsste unter Linux berücksichtigt werden.

Außerdem, ob die Agentenweiterleitung zugelassen oder Ihren Benutzern überlassen werden soll.

Und nicht zuletzt, ob Sie ihnen erlauben, Ports oder X11-Verbindungen weiterzuleiten. Insbesondere Ports können unerwünscht sein, da sie es einem Benutzer ermöglichen, Ihren Server als Proxy zu verwenden.

Mit der MatchDirektive können Sie Benutzer auch hinsichtlich des Verbindungsorts einschränken (das kann auch eine Firewall oder die TCP-Wrapper tun).

Möchten Sie, dass Ihre Benutzer die Schlüssel verwalten dürfen oder möchten Sie dies abstrahieren und authorized_keysihnen den direkten Zugriff verwehren?

Sicherlich gibt es noch weitere Aspekte, diese liegen aber meist auf einer feineren Detailebene und sind somit Variationen der zuvor genannten Punkte.

Antwort2

Was auch immer der Benutzer möchte, unter Berücksichtigung aller Richtlinien zur Passwortkomplexität. Wenn der einzige Zugriff über SSH erfolgt PasswordAuthenticationundnosshd_config, dann ist es egal, wie das Passwort lautet. Beachten Sie auch, dass Einträge inshadowsind verschlüsselte Passwörter, daher sind die Werte von !und *nichtPasswörter- sondern Zeichenfolgen, die keine gültigen verschlüsselten Werte sind und somit eine passwortbasierte Anmeldung verhindern.

Antwort3

Vorausgesetzt, Sie führen etwas Ähnliches wie RHEL/CentOS mit OpenSSH aus, sind dies die Dinge, die ich normalerweise mache, wenn ich auf ein Passwort verzichte:

  • Konfigurieren Sie sshd_config, um nur Pubkey-Authentifizierung zu akzeptieren ( PubkeyAuthentication yes, PasswordAuthentication no, ChallengeResponseAuthentication no, UsePAM no)
  • Für alle bestehenden Benutzer ein ungültiges Passwort festlegen ( chpasswd -e 'pubkey!!' <username>)
  • Entfernen Sie das Ablaufdatum des Passworts aller bestehenden Benutzer ( chage -M -1 <username>)
  • Wenn Sie sudo verwenden, stellen Sie sicher, dass alle Benutzerangaben mit NOPASSWD gekennzeichnet sind (z. B. %wheel ALL=(ALL) NOPASSWD: ALL).
  • Stellen Sie sicher, dass Ihr Benutzererstellungsprozess diese Anforderungen erfüllt (z. B. useradd -p 'pubkey!!' -K MAX_PASS_DAYS=-1 <username>)

Bevor Sie den Passwortzugriff sperren, vergewissern Sie sich doppelt, dass Sie sich erfolgreich über den öffentlichen Schlüssel authentifizieren können. Stellen Sie sicher, dass sich Ihre /home-Partition nicht auf einem Netzwerk-Mount befindet (oder an einem anderen Ort, der möglicherweise nicht immer verfügbar ist). Es gibt kaum etwas Schlimmeres, als den Zugriff auf Ihren Server zu verlieren, weil er nicht auf Ihren öffentlichen Schlüssel zugreifen kann. Wenn das System ohne Monitor ist, stellen Sie sicher, dass Sie im Notfall schnell direkten Zugriff auf die Konsole erhalten können (KVM, virtuelle Konsole, Crash Cart usw.).

Dennoch würde ich in Betracht ziehen, jedem Konto mit vollem Sudo-Zugriff ein Passwort zuzuweisen und Sudoers so zu konfigurieren, dass von ihnen ein Passwort verlangt wird. Wenn alles andere wie oben konfiguriert ist, können sie sich mit diesem Passwort zwar immer noch nicht beim Server anmelden, aber es bietet Ihnen ein wenig zusätzlichen Schutz vor jemandem, der sich an die Eingabeaufforderung setzt und „schlechte Dinge (tm)“ tut.

Antwort4

Wenn es sich um eine UNIX-Maschine (HP UX) und nicht um Linux handelt, müssen Sie rcommandIhre pam.conf unter dem SSHD-Konto ergänzen.

sshd     account sufficient /usr/lib/security/libpam_ldap.1 rcommand

Andernfalls werden Sie beim Versuch, sich per SSH auf den Computer zuzugreifen, zu einer Kennwortabfrage aufgefordert, die jedoch nicht ausgeführt wird.

verwandte Informationen