GNU/Linux >> Linux Esercitazione >  >> Linux

Come limitare l'accesso SSH per l'utente con LShell (shell limitata)

LShell o Limited Shell è scritto in python per limitare l'utente per un insieme specifico di comandi e directory. Puoi creare un ambiente utente con accesso limitato, puoi anche abilitare i comandi di disabilitazione sull'accesso SSH.

Installa una shell limitata

Usa il comando seguente per installare il pacchetto LShell sul tuo sistema basato su Debian. Per altri sistemi operativi, devi cercare su Google il pacchetto di lshell per la tua distribuzione.

$ sudo apt-get install lshell

Passa utente a LShell

Ora imposta LShell come shell predefinita per gli utenti per i quali sei richiesto. Ad esempio per cambiare la shell dell'utente sarah.

$ 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 

Puoi anche impostare lshell come shell predefinita per l'utente durante la creazione dell'account utente come segue.

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

Configura LShell

Ora inizia con la configurazione di lshell. Modifica il file di configurazione di lshell /etc/lshell.conf . Ci sono 4 sezioni di base nel file di configurazione.

  • [globale] : In questa sezione definiamo le impostazioni applicate a livello globale. Ad esempio i log.
  • [predefinito] : In questa sezione abbiamo impostato i valori predefiniti che hanno applicato tutti gli utenti e i gruppi. Le impostazioni di questa sezione possono essere sovrascritte con impostazioni specifiche dell'utente e del gruppo.
  • [NOME UTENTE] : In questa sezione specifichiamo le impostazioni specifiche dell'utente. Impostazioni di questa sezione applicate solo all'utente
  • [grp:GROUPNAME] : In questa sezione specifichiamo le impostazioni specifiche del gruppo. Impostazioni di questa sezione applicate a tutti gli utenti del gruppo

Un [predefinito] profile viene applicato a tutti gli utenti che utilizzano lshell. Puoi creare [nome utente] sezione o un gruppo [grp:groupname] sezione per personalizzare utenti e gruppi di preferenze specifiche.

L'ordine di priorità è Utente>> Gruppo>> Predefinito . La sezione utente ha la priorità più alta e quella predefinita ha la priorità più bassa.

[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/'

Ad esempio, l'utente "rja" e l'utente "sarah" appartengono entrambi al gruppo UNIX "wheel":
Ruota del gruppo:

  • Gli utenti del gruppo ruota hanno un contatore di avviso impostato su 5
  • Agli utenti del gruppo di ruote non è consentito il comando "ls".

Utente raj:

  • Può accedere a /etc e /var ma non a /usr/local
  • Può accedere a tutti i comandi nei suoi comandi execpt PATH – su, rm, vm
  • ha un contatore di avvisi impostato su 5 [predefinito]
  • ha il suo percorso di casa impostato su "/home/raj"

Utente sarah:

  • Può accedere a /home e /usr ma non a /usr/local
  • è consentito il comando predefinito "ping" ma non "ls"
  • La rigidità è impostata su 1 (non è autorizzato a digitare un comando sconosciuto)
Nome opzione Spiegazione
percorso log directory di registro (predefinita /var/log/lshell/ )
livello log imposta il livello del registro su 0, 1, 2, 3 o 4 (0:nessun registro, 1:meno dettagliato, 4:registra tutti i comandi)
nomefile di registro configura il nome del file di registro (il valore predefinito è %u, ovvero nomeutente.log)
consentito elenco dei comandi consentiti o "tutti" per consentire tutti i comandi nel PERCORSO dell'utente
proibito un elenco di caratteri o comandi proibiti — nega vim, poiché permette di sfuggire a lshell
sudo_comandi un elenco di comandi consentiti da utilizzare con sudo(8)
contatore_avvisi numero di avvisi quando l'utente inserisce un valore proibito prima di uscire da lshell, impostare su -1 per disabilitare.
alias elenco di alias di comando (simile alla direttiva alias di bash)
introduzione testo di introduzione da stampare (quando si entra in lshell)
richiesta configura il tuo prompt usando %u o %h (predefinito:nome utente)
prompt_short imposta ordinamento prompt aggiornamento directory corrente (predefinito:0)
timer un valore in secondi per il timer della sessione
percorso elenco di percorsi per limitare "geograficamente" l'utente
percorso_casa imposta la cartella home del tuo utente
env_path imposta la variabile di ambiente $PATH dell'utente
percorso_cmd_permesso un elenco di percorsi; tutti i file eseguibili all'interno di questo percorso saranno consentiti
env_vars aggiungi variabili d'ambiente
scp consentire o vietare l'uso di scp (impostato su 1 o 0)
scp_upload Vieta il caricamento di scp
scp_download Vieta download scp
sftp consenti di vietare l'uso di sftp (impostato su 1 o 0)
overssh elenco di comandi che possono essere eseguiti su ssh
rigoroso rigore di registrazione. 1 per qualsiasi comando sconosciuto è considerato vietato e 0 come sconosciuto
scpforce forza i file inviati tramite scp a una directory specifica
history_size dimensione massima del file della cronologia
file_storia imposta il nome del file della cronologia (l'impostazione predefinita è /home/%u/.lhistory)
login_script definire lo script da eseguire all'accesso dell'utente

Linux
  1. Come creare un nuovo utente con accesso Ssh?

  2. Come dare accesso ssh a un utente in Ubuntu

  3. Come posso creare un utente con accesso in sola lettura a tutti i file? (ovvero root senza permessi di scrittura)

  4. Come limitare un utente SSH a consentire solo il tunneling SSH?

  5. accesso solo tunneling ssh

Come consentire o negare l'accesso SSH a un particolare utente o gruppo in Linux

Come limitare l'accesso SSH a determinati utenti in Linux

Come creare un utente SFTP per una radice del documento del server Web

Come abilitare SSH (accesso shell) per l'account cPanel esistente?

Come aggiungere la chiave SSH per l'accesso SSH cPanel

Come disabilitare l'accesso SSH per l'utente root in Linux?