GNU/Linux >> LINUX-Kenntnisse >  >> Linux

CentOS / RHEL :So deaktivieren Sie ssh für Nicht-Root-Benutzer (ssh nur für Root-Benutzer zulassen)

Standardmäßig können sich alle Benutzer mit einem gültigen Passwort/öffentlichen Schlüssel per SSH in ein System einloggen. Für bestimmte dedizierte Server mit bestimmten Rollen, wie z. B. FTP-Server, E-Mail-Server usw.; Es wird normalerweise empfohlen, Nicht-Root-Benutzern die Anmeldung über SSH zu untersagen. Der Beitrag beschreibt die Schritte zum Deaktivieren des SSH-Anmeldezugriffs von Nicht-Root-Benutzern auf Systeme. Hier werden 3 verschiedene Möglichkeiten diskutiert. Der Zweck kann mit einer der drei folgenden Möglichkeiten erreicht werden.

Methode 1 – Verwenden der Datei /etc/ssh/sshd_config

Diese Methode kann verwendet werden, um einigen Benutzern die SSH-Anmeldung zu ermöglichen. Bearbeiten Sie die Datei /etc/ssh/sshd_config (OpenSSH SSH-Daemon-Konfigurationsdatei) und fügen Sie das Schlüsselwort AllowUsers hinzu mit dem Argument root .

# vi /etc/ssh/sshd_config
AllowUsers root
Hinweis :Bei Schlüsselwörtern wird zwischen Groß- und Kleinschreibung unterschieden, und bei Argumenten wird ebenfalls zwischen Groß- und Kleinschreibung unterschieden.

Starten Sie nun den sshd-Dienst neu:

# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]

Stellen Sie sicher, dass sich Nicht-Root-Benutzer nicht über SSH anmelden können, der Root-Benutzer jedoch schon.

# ssh test@host1
test@host1's password: 
Permission denied, please try again.
test@host1's password: 
Permission denied, please try again.
test@host1's password: 
Permission denied (publickey,gssapi-with-mic,password).
# ssh root@host1
root@host1's password: 
Last login: Wed Sep 13 10:47:14 2017 from 10.10.10.10
[root@host1 ~]#

Methode 2 - Verwenden der /etc/nologin-Datei

Dies ist der schnellste Weg, alle Nicht-Root-Benutzer von der SSH-Anmeldung zu sperren.

1. Erstellen Sie eine Datei /etc/nologin auf dem entfernten Host.

# touch /etc/nologin
# ls -lrt /etc/nologin
-rw-r--r-- 1 root root 0 Sep 13 13:23 /etc/nologin
Hinweis :Wenn diese Datei existiert, darf sich nur der Root-Benutzer über SSH am System anmelden. Wenn die Datei /etc/nologin.txt existiert, zeigt nologin dem Benutzer seinen Inhalt anstelle der Standardmeldung an.

Stellen Sie sicher, dass sich die folgende Zeile in der Datei /etc/pam.d/sshd befindet :

account    required     pam_nologin.so
Note: backup the file /etc/pam.d/sshd before modifying it.

Starten Sie dann den sshd-Dienst neu:

# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]

Überprüfen Sie die SSH-Anmeldung von Nicht-Root-Benutzern:

# ssh test@host1
test@host1's password: 
Connection closed by 192.168.10.10

Methode 3 - Verwenden der Datei /etc/sshd/sshd.allow

Die Datei /etc/sshd/sshd.allow wird verwendet, um eine Liste von Benutzern anzugeben, denen wir SSH-Zugriff gewähren möchten. Wenn wir in dieser Datei nur den Benutzer root erwähnen, wird allen anderen Benutzern der SSH-Zugriff auf den Host verweigert.

1. Fügen Sie der Datei /etc/sshd/sshd.allow den Root-Benutzer hinzu (Wenn Verzeichnis/Datei nicht existiert, erstellen Sie es manuell).

# cat /etc/sshd/sshd.allow 
root

2. Ersetzen Sie die Authentifizierungszeile wie unten in der Datei /etc/pam.d/sshd :

auth required pam_listfile.so item=user sense=allow file=/etc/sshd/sshd.allow onerr=fail

Hier ist
auth erforderlich pam_listfile.so :Name des Moduls, das beim Authentifizieren von Benutzern erforderlich ist.
item=user :Überprüfen Sie den Benutzernamen des Elements.
sense=allow :Benutzer zulassen.
file=/etc/sshd/sshd.allow :Benutzerlistendatei.
onerr=fail :Wenn der Benutzername nicht in der Datei enthalten ist, kann er sich nicht anmelden.

3. Starten Sie den sshd-Dienst neu, sobald Sie mit allen oben genannten Änderungen fertig sind.

# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]

4. Überprüfen Sie die SSH-Anmeldung von Nicht-Root-Benutzern:

# ssh test@host1
test@host1's password: 
Permission denied, please try again.
test@host1's password: 
Permission denied, please try again.
test@host1's password: 
Permission denied (publickey,gssapi-with-mic,password).

Überprüfen Sie auch, ob Sie mit dem Root-Benutzer ssh können:

# ssh root@host1
ssh root@host1's password: 
Last login: Wed Sep 13 14:53:47 2017 from 10.10.10.10
[root@host1 ~]#


Linux
  1. So führen Sie rsyslog als Nicht-Root-Benutzer in CentOS/RHEL 7 aus

  2. Passwortloses SSH funktioniert nicht für lokale Benutzer auf LDAP-Servern – CentOS/RHEL 7

  3. CentOS / RHEL :So legen Sie das Chroot-Gefängnis für vsftp nur für bestimmte Benutzer fest

  4. So richten Sie SSH-Schlüssel für die „kennwortlose“ SSH-Anmeldung unter CentOS/RHEL ein

  5. Wie funktionieren Dateiberechtigungen für den Root-Benutzer?

So erstellen Sie einen SFTP-Benutzer für einen Webserver Document Root

So deaktivieren Sie den Root-SSH-Zugriff unter CentOS 7

So richten Sie SSH unter CentOS und RHEL ein

So beschränken Sie den Root-Benutzer in CentOS

Wie deaktiviere ich die SSH-Anmeldung für den Root-Benutzer in Linux?

So deaktivieren Sie die Benutzerliste auf dem GNOME-Anmeldebildschirm in CentOS/RHEL 8