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

So beschränken Sie den SSH-Zugriff für Benutzer mit LShell (Limited Shell)

LShell oder Limited Shell ist in Python geschrieben, um den Benutzer auf bestimmte Befehle und Verzeichnisse einzuschränken. Sie können eine Benutzerumgebung mit eingeschränktem Zugriff erstellen, Sie können auch Deaktivierungsbefehle über den SSH-Zugriff aktivieren.

Eingeschränkte Shell installieren

Verwenden Sie den folgenden Befehl, um das LShell-Paket auf Ihrem Debian-basierten System zu installieren. Für andere Betriebssysteme müssen Sie das lshell-Paket für Ihre Distribution bei Google suchen.

$ sudo apt-get install lshell

Benutzer zu LShell wechseln

Legen Sie nun die LShell als Standard-Shell für Benutzer fest, für die Sie erforderlich sind. Zum Beispiel, um die Shell des Benutzers sarah zu ändern.

$ sudo chsh sarah

Changing the login shell for sarah
Enter the new value, or press ENTER for the default
	Login Shell [/bin/lshell]: /usr/bin/lshell 

Sie können die lshell auch während der Erstellung des Benutzerkontos wie folgt als Standard-Shell für Benutzer festlegen.

$ sudo adduser --shell /usr/bin/lshell raj

LShell konfigurieren

Beginnen Sie nun mit der Konfiguration von lshell. Bearbeiten Sie die lshell-Konfigurationsdatei /etc/lshell.conf . Es gibt 4 grundlegende Abschnitte in der Konfigurationsdatei.

  • [weltweit] : In diesem Abschnitt definieren wir die Einstellungen, die global gelten. Zum Beispiel Protokolle.
  • [Standard] : In diesem Abschnitt legen wir Standardwerte fest, die für alle Benutzer und Gruppen gelten. Die Einstellungen dieses Abschnitts können mit benutzer- und gruppenspezifischen Einstellungen überschrieben werden.
  • [BENUTZERNAME] : In diesem Abschnitt legen wir benutzerspezifische Einstellungen fest. Diese Abschnittseinstellungen gelten nur für Benutzer
  • [grp:GROUPNAME] : In diesem Abschnitt legen wir gruppenspezifische Einstellungen fest. Diese Abschnittseinstellungen gelten für alle Benutzer der Gruppe

A [Standard] profile wird für alle Benutzer angewendet, die lshell verwenden. Sie können [Benutzername] erstellen Abschnitt oder eine Gruppe [grp:groupname] Abschnitt zum Anpassen von benutzer- und gruppenspezifischen Einstellungen.

Die Prioritätsreihenfolge ist Benutzer>> Gruppe>> Standard . Der Benutzerabschnitt hat die höchste Priorität und der Standard hat die niedrigste Priorität.

[global]
logpath         : /var/log/lshell/
loglevel        : 2

[default]
allowed         : ['ls','pwd','cd','cat','cp']
forbidden       : [';', '&', '|','`','>','<', '$(', '${']
sudo_commands   : ['ls', 'more']
warning_counter : 2
aliases         : {'ll':'ls -l', 'vim':'rvim'}
prompt          : "%[email protected]%h"
timer           : 0
path            : ['/home', '/usr']
env_path        : ':/usr/bin/usr/local/bin'
env_vars        : {'foo':1, 'bar':'helloworld'}
scp             : 1 # or 0
sftp            : 1 # or 0
overssh         : ['rsync','ls']
strict          : 0
history_file    : "/home/%u/.lshell_history"

[grp:wheel]
warning_counter : 5
overssh         : - ['ls']

[raj]
allowed         : 'all' - ['su','rm','mv']
path            : ['/etc', '/usr'] - ['/usr/local']
home_path       : '/home/raj'

[sarah]
allowed         : + ['ping'] - ['ls']
path            : - ['/usr/local']
strict          : 1
scpforce        : '/home/sarah/uploads/'

Beispielsweise gehören Benutzer „rja“ und Benutzer „sarah“ beide zur UNIX-Gruppe „wheel“:
Gruppenrad:

  • Benutzer der Wheel-Gruppe haben einen Warnungszähler von 5
  • Benutzern der Radgruppe ist der Befehl „ls“ nicht gestattet.

Benutzer raj:

  • Kann auf /etc und /var zugreifen, aber nicht auf /usr/local
  • Kann auf alle Befehle in seinem PATH zugreifen, außer Befehle – su, rm, vm
  • hat einen Warnungszähler auf 5 gesetzt [Standard]
  • hat seinen Home-Pfad auf „/home/raj“ gesetzt

Benutzer Sarah:

  • Kann auf /home und /usr zugreifen, aber nicht auf /usr/local
  • erlaubt den Standardbefehl „ping“, aber nicht „ls“
  • Strenge ist auf 1 gesetzt (er darf keine unbekannten Befehle eingeben)
Optionsname Erklärung
Protokollpfad Protokollverzeichnis (Standard /var/log/lshell/ )
Protokollebene Protokollstufe auf 0, 1, 2, 3 oder 4 setzen (0:keine Protokolle, 1:am wenigsten ausführlich, 4:alle Befehle protokollieren)
Protokolldateiname Protokolldateinamen konfigurieren (Standard ist %u, d. h. username.log)
erlaubt Liste der erlaubten Befehle oder „alle“, um alle Befehle im PATH des Benutzers zuzulassen
verboten eine Liste verbotener Zeichen oder Befehle – deny vim, da es erlaubt, lshell zu entkommen
sudo_commands eine Liste erlaubter Befehle zur Verwendung mit sudo(8)
warning_counter Anzahl der Warnungen, wenn der Benutzer einen verbotenen Wert eingibt, bevor er die lshell verlässt, zum Deaktivieren auf -1 setzen.
Aliasse Befehls-Alias-Liste (ähnlich der Alias-Direktive von Bash)
Einführung Einleitungstext zum Drucken (bei Eingabe von lshell)
Eingabeaufforderung konfiguriere deinen Promt mit %u oder %h (Standard:Benutzername)
prompt_short set sort prompt aktuelle Verzeichnisaktualisierung (Standard:0)
Zeitgeber ein Wert in Sekunden für den Sitzungstimer
Pfad Pfadliste, um den Benutzer „geografisch“ einzuschränken
home_path Legen Sie den Home-Ordner Ihres Benutzers fest
env_path setzen Sie die Umgebungsvariable $PATH des Benutzers
allowed_cmd_path eine Pfadliste; alle ausführbaren Dateien in diesem Pfad sind erlaubt
env_vars Umgebungsvariablen hinzufügen
scp die Verwendung von scp zulassen oder verbieten (auf 1 oder 0 setzen)
scp_upload SCP-Upload verbieten
scp_download SCP-Download verbieten
sftp Zulassen oder Verbieten der Verwendung von sftp (auf 1 oder 0 setzen)
overssh Liste der Befehle, die über ssh ausgeführt werden dürfen
streng Strenge der Protokollierung. 1 für einen unbekannten Befehl gilt als verboten und 0 als unbekannt
scpforce erzwingt Dateien, die über scp gesendet werden, in ein bestimmtes Verzeichnis
Verlaufsgröße Maximale Größe der Verlaufsdatei
Verlaufsdatei Verlaufsdateinamen festlegen (Standard ist /home/%u/.lhistory)
login_script definieren Sie das Skript, das bei der Benutzeranmeldung ausgeführt werden soll

Linux
  1. So gewähren Sie einem Benutzer in Ubuntu ssh-Zugriff

  2. Wie kann ich einen Benutzer mit Lesezugriff auf alle Dateien erstellen? (dh root ohne Schreibrechte)

  3. Wie man als anderer Benutzer ssh

  4. Wie kann man einen SSH-Benutzer darauf beschränken, nur SSH-Tunneling zuzulassen?

  5. Zugriff nur über SSH-Tunneling

So gewähren oder verweigern Sie einem bestimmten Benutzer oder einer bestimmten Gruppe in Linux den SSH-Zugriff

So beschränken Sie den SSH-Zugriff auf bestimmte Benutzer in Linux

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

Wie aktiviere ich SSH (Shell-Zugriff) für das vorhandene cPanel-Konto?

So fügen Sie einen SSH-Schlüssel für den cPanel-SSH-Zugriff hinzu

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