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

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

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

Limited Shell einbauen

Verwenden Sie den folgenden Befehl, um das LSHELL -Paket in Ihrem Debian -basierten System zu installieren. Für andere Betriebssystem.

$ sudo apt-get install lshell 

Benutzer auf LSHELL wechseln

Stellen Sie nun die LSHELL als Standardhell ​​für Benutzer fest, für die Sie benötigt werden. Zum Beispiel, um die Hülle der Benutzer Sarah zu ändern.

$ sudo chsh sarah ändert die Anmeldeschale für Sarah Eingeben Sie den neuen Wert ein oder drücken Sie die Eingabetaste für die Standard -Anmeldeschale [/bin/lshell]:/usr/bin/lshell  

Sie können die LSHELL auch als Standardhell ​​für den Benutzer während der Erstellung des Benutzerkontos wie folgt festlegen.

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

Konfigurieren Sie LSHELL

Beginnen Sie nun mit der Konfiguration von LSHELL. Bearbeiten Sie die LSHELL -Konfigurationsdatei /etc/lshell.Conf. In der Konfigurationsdatei befinden sich 4 grundlegende Abschnitte.

  • [global]: In diesem Abschnitt definieren wir die Einstellungen, die weltweit angewendet wurden. Zum Beispiel Protokolle.
  • [Standard] : In diesem Abschnitt setzen wir Standardwerte, die alle Benutzer und Gruppen angewendet haben. Die Einstellungen dieses Abschnitts können mit Benutzer- und gruppenspezifischen Einstellungen überschrieben werden.
  • [NUTZERNAME] : In diesem Abschnitt geben wir benutzerspezifische Einstellungen an. Diese Abschnitteinstellungen werden nur an den Benutzer angewendet
  • [GRP: GroupName]: In diesem Abschnitt geben wir Gruppenspezifische Einstellungen an. Diese Einstellungen für den Abschnitt werden für alle Benutzer der Gruppe angewendet

A [Standard] Das Profil wird für alle Benutzer mit LSHELL angewendet. Sie können erstellen [Nutzername] Abschnitt oder eine Gruppe [GRP: GroupName] Abschnitt zum Anpassen von Benutzern und gruppenspezifischen Einstellungen.

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

[global] logpath:/var/log/lshell/loglevel: 2 [Standard] erlaubt: ['ls', 'pwd', 'cd', 'cat', 'cp'] verboten: [';', '&', '|', '>', '<', '$(', '$'] 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: Rad] WARNUNG_COUNTER: 5 OVERSCH: - ['LS'] [Raj] erlaubt: 'all' - ['su', 'rm', 'mv'] path: ['/etc', '/usr'] - ['/usr/local'] home_path: '/home/raj' [Sarah] erlaubt: + ['ping'] - ['ls'] path: - ['/usr/local'] streng: 1 scpforce: '/home/sarah/uploads/' 

Zum Beispiel gehören Benutzer 'RJA' und Benutzer 'Sarah' beide zur "Wheel" Unix -Gruppe:
Gruppenrad:

  • Benutzer der Radgruppe haben einen Warnschalter auf 5 eingestellt
  • Benutzer der Radgruppe sind nicht zulässig 'LS' Befehl.

Benutzer Raj:

  • Kann zugreifen /etc und /var, aber nicht /usr /local
  • Kann auf alle Befehle in seinem Pfad zugreifen. Execpt -Befehle - SU, RM, VM
  • hat einen Warnschalter auf 5 [Standard]
  • Hat seinen Heimweg auf '/home/raj' gesetzt '

Benutzer Sarah:

  • Kann Zugang /Zuhause und /usr, aber nicht /usr /lokal
  • ist ein Standardbefehl 'Ping' zulässig, aber nicht 'ls'
  • Strenge ist auf 1 gesetzt (er darf keinen unbekannten Befehl eingeben)
OptionsnameErläuterung
Logwegen Protokollverzeichnis (Standard/var/log/lshell/)
Loglevel Legen Sie die Protokollebene auf 0, 1, 2, 3 oder 4 fest (0: keine Protokolle, 1: am wenigsten ausführlich, 4: Protokoll alle Befehle log)
logFileName Log -Dateinamen konfigurieren (Standard ist %u i.e. Nutzername.Protokoll)
erlaubt Liste der zulässigen Befehle oder "alle", um alle Befehle auf dem Weg des Benutzers zuzulassen
verboten Eine Liste von verbotenem Charakter oder Befehlen - verweigern Sie Vim, da sie es ermöglicht, Lshell zu entkommen
sudo_commands Eine Liste der zulässigen Befehlsbefehls mit sudo (8)
Warnung_counter Anzahl der Warnungen, wenn der Benutzer einen verbotenen Wert eingibt.
Aliase Befehl aliases Liste (ähnlich wie die Alias ​​-Richtlinie von Bash)
Intro Einführungstext zum Drucken (beim Eingeben von LSHELL)
prompt Konfigurieren Sie Ihren Promt mit %u oder %H (Standard: Benutzername)
forderung_short Sortieren Sie die aktuelle Verzeichnis -Aktualisierung der Sortierung (Standard: 0)
Timer Ein Wert in Sekunden für den Sitzungs -Timer
Weg PATH -Liste, um den Benutzer „geografisch“ einzuschränken, um einzuschränken
Home_Path Stellen Sie den Home -Ordner Ihres Benutzers fest
env_path Legen Sie die Umgebungsvariable $ Pfad des Benutzers fest
erlaubt_cmd_path eine Liste von Pfad; Alle ausführbaren Dateien in diesem Pfad sind zulässig
env_vars Umgebungsvariablen hinzufügen
scp die Verwendung von SCP zulassen oder verbieten (auf 1 oder 0 eingestellt)
scp_upload Verbot SCP -Upload
scp_download Verbot SCP -Download
sftp Erlauben Sie der Verwendung von SFTP (auf 1 oder 0 eingestellt)
übertrieben Liste des Befehls, der über SSH ausgeführt werden kann
strikt Striktheit anmelden. 1 Für einen unbekannten Befehl wird als verboten und 0 als unbekannt angesehen
scpforce Erzwingen Sie die über SCP in ein bestimmtes Verzeichnis gesendeten Dateien
history_size Historie -Datei Maximale Größe
history_file Legen Sie den Historie -Dateinamen fest (Standard ist/home/%u/.lhistory)
login_script Definieren Sie das Skript, das bei der Benutzeranmeldung ausgeführt werden soll