Wie verwende ich AllowGroups und AllowUsers in sshd_config?

28

Ich versuche zu ändern /etc/ssh/sshd_configsowohl auf meinem dedizierten Server debian7 AllowUsersund AllowGroups. Ich kann jedoch nicht beide dazu bringen, zusammenzuarbeiten.


Die Einrichtung

  • Es gibt einen Benutzer namens testuser.
  • Dieser Benutzer gehört zu einer Gruppe mit dem Namen ssh-users:

    $ groups testuser
    testuser : testuser ssh-users
    
  • testuserversucht eine Verbindung herzustellen ssh testuser@<server_ip>und das Passwort einzugeben.

  • Meine sshd_configkann hier gefunden werden: http://pastebin.com/iZvVDFKL - Ich denke, die einzigen Änderungen, die ich von der Standardeinstellung vorgenommen habe, waren:
    • zu setzen PermitRootLogin no
    • und füge zwei Benutzer hinzu mit AllowUsers(die tatsächlichen Benutzernamen unterscheiden sich auf meinem Server)
  • service ssh restartwird nach jeder Änderung ausgeführt sshd_config.

Das Problem

  • testuser kann eine Verbindung herstellen, wenn eingestellt mitAllowUsers:

    AllowUsers user1 user2 testuser
    
  • testuserVerbindung kann NICHT hergestellt werden , wenn AllowGroupsfür die Gruppe Folgendes festgelegt wird :

    AllowUsers user1 user2
    AllowGroups ssh-users
    

    die Ergebnisse in Permission denied, please try again.wann testusertritt ihr Passwort in der SSH - Passwort - Eingabeaufforderung.


Die Frage

  • Does AllowUsersüberschreiben AllowGroups?
  • Was ist der beste Weg, dies zu beheben, ohne den Benutzernamen manuell hinzuzufügen AllowUsers? Idealerweise möchte ich in Zukunft nur noch Benutzer zur ssh-usersGruppe hinzufügen können, ohne sie sshd_configerneut berühren zu müssen.
Johannes
quelle
5
Ideally I'd like to be able to just add users to the ssh-users group in the future without having to touch sshd_config again.- Warum verwenden Sie AllowUsers überhaupt? Setzen Sie einfach alle in die Gruppe / Gruppen.
Zoredache

Antworten:

24

Ja, AllowUsershat Vorrang vor AllowGroups. Falls angegeben, können nur die Benutzer, die dem in angegebenen Muster entsprechen, AllowUserseine Verbindung zur SSHD-Instanz herstellen.

Laut sshd_config Manpage :

Das Zulassen / Ablehnen Richtlinien in der folgenden Reihenfolge verarbeitet werden: DenyUsers, AllowUsers, DenyGroups, und schließlich AllowGroups.

Die Lösung für Ihr Problem ist wahrscheinlich die Verwendung der einen oder anderen, möglicherweise der Gruppenzugriffsanweisungen, wenn Gruppen Ihre bevorzugte Methode zur Verwaltung von Benutzern sind.

Jeff-Inventor ChromeOS
quelle
Würde es also nur AllowGroups user1 user2 ssh-usersArbeit geben? Ich bevorzuge Ihre Bestätigung vor dem Testen, da es passiert ist, als ich versehentlich meine eigenen ssh-Berechtigungen entfernt habe und den Support durchlaufen musste, um das Problem zu beheben. Wie wäre es mit dem MatchBlock? Ich bitte dort um Rat, da ich, obwohl ich mir die Manpage angesehen habe, nicht die Intuition / Erfahrung habe, um zu wissen, wie es in der Praxis funktionieren würde. Zum Beispiel mit der Reihenfolge der Verarbeitung, die ich dachte, da AllowGroups nach AllowUsers kommt, würde es es überschreiben, wenn es verarbeitet wird, aber meine Intuition war dort falsch :)
Johannes
2
Wenn alle drei Gruppen auf Ihrem System vorhanden sind, sollte dies funktionieren. Wenn Benutzer1 und Benutzer2 nur Benutzer sind, können Sie sie zu ssh-Benutzern hinzufügen und mit AllowGroups ssh-Benutzern auskommen.
Jeff-Inventor ChromeOS
@ Johannes, wenn Sie so etwas testen, müssen Sie sicherstellen, dass eine Shell auf dem Computer geöffnet ist. Durch einen Neustart von sshd wird Ihre Sitzung nicht unterbrochen. Wenn Sie keine neue öffnen können, können Sie das Problem mit der vorhandenen beheben.
Jean-Bernard Jansen
6

Jeffs Antwort deckt die Besonderheiten der Frage , wie detailliert, aber ich fand diese Frage suchen , um den Einsatz AllowUsersund AllowGroupsin einem etwas anderen Szenario. Ich wollte eingehende Verbindungen auf Benutzer in einer Gruppe (SSH) beschränken, die aus bestimmten Subnetzen stammen.

Die Verbindungsregeln in sshd_config sind ein Filter. Da jede zusätzliche Regel angewendet wird, kann die Anzahl der zulässigen Benutzer nur verringert werden. Erklären SiePATTERNS in ssh_config (5) die Form dieser Regeln.

Zusätzlich gemäß dem AllowUsersAbschnitt von sshd_config:

Wenn das Muster die Form USER @ HOST hat, werden USER und HOST separat geprüft, um die Anmeldung auf bestimmte Benutzer von bestimmten Hosts zu beschränken. HOST-Kriterien können zusätzlich Adressen enthalten, die im CIDR-Adress- / Maskenformat übereinstimmen.

AllowGroups akzeptiert das USER @ HOST-Formular nicht.

So akzeptieren Sie Benutzer 1) in der SSH-Gruppe und 2) aus bestimmten Subnetzen / Hosts:

AllowUsers *@192.168.1.0/24 *@*.example.com *@1.2.3.4
AllowGroups ssh
bjacobowski
quelle
AllowGroups doesn't accept the USER@HOST form. Nicht sicher, was Sie damit meinen und was die Konfigurationsdatei oder die Dokumente nicht aussagen. Allow Groups erlaubt Ihnen definitiv, sich mit ssh [email protected] anzumelden.
AndrewD
1
@AndrewD AllowGroups akzeptiert nur Gruppennamen - das können Sie zB nicht AllowGroups [email protected]. HOST ist die Quelle, von der aus Sie senden.
Bjacobowski
3

Wir haben folgende Lösung gefunden:

AllowUsers user1 user2
Match group ssh-users
    AllowUsers *
Vimja
quelle