Comment restreindre l'accès SSH pour l'utilisateur avec LSHELL (Shell Limited)

Comment restreindre l'accès SSH pour l'utilisateur avec LSHELL (Shell Limited)

Lshell ou Shell Limited est écrit en Python pour limiter l'utilisateur pour un ensemble spécifique de commandes et répertoires. Vous pouvez créer un environnement utilisateur avec un accès limité, vous pouvez également activer les commandes de désactiver sur l'accès SSH.

Installer une coque limitée

Utilisez la commande suivante pour installer le package LSHELL sur votre système basé sur Debian. Pour d'autres systèmes d'exploitation, vous devez Google pour le paquet de lshell pour votre distribution.

$ sudo apt-get install lshell 

Passer à l'utilisateur sur LSHELL

Définissez maintenant le shell LSHELL en tant que Shell par défaut pour les utilisateurs pour lesquels vous êtes requis. Par exemple pour changer le shell de l'utilisateur Sarah.

$ sudo chsh Sarah Modification du shell de connexion pour Sarah Entrez la nouvelle valeur, ou appuyez sur Entrée pour la coque de connexion par défaut [/ bin / lshell]: / usr / bin / lshell  

Vous pouvez également définir le shell LSHELL en tant qu'utilisateur par défaut lors de la création d'un compte utilisateur comme suivant.

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

Configurer LSHELL

Commencez maintenant par la configuration de LSHELL. Modifier le fichier de configuration LSHELL / etc / lshell.confli. Il y a 4 sections de base dans le fichier de configuration.

  • [mondial] : Dans cette section, nous définissons les paramètres qui s'appliquent à l'échelle mondiale. Par exemple les journaux.
  • [défaut] : Dans cette section, nous définissons les valeurs par défaut qui ont appliqué tous les utilisateurs et groupes. Les paramètres de cette section peuvent être remplacés par des paramètres spécifiques de l'utilisateur et du groupe.
  • [NOM D'UTILISATEUR] : Dans cette section, nous spécifions des paramètres spécifiques de l'utilisateur. Cette section Paramètres appliqués à l'utilisateur uniquement
  • [Grp: GroupName]: Dans cette section, nous spécifions des paramètres spécifiques au groupe. Cette section Paramètres appliqués à tous les utilisateurs du groupe

UN [défaut] Le profil est appliqué à tous les utilisateurs à l'aide de LSHELL. Vous pouvez créer [nom d'utilisateur] Section ou groupe [Grp: GroupName] Section pour personnaliser les utilisateurs et les préférences spécifiques du groupe.

L'ordre prioritaire est Utilisateur >> Groupe >> Défaut. La section utilisateur a la priorité la plus élevée et la valeur par défaut a la priorité la plus faible.

[mondial] logPath: / var / log / lshell / loglevel: 2 [défaut] autorisé: ['ls', 'pwd', 'cd', 'cat', 'cp'] interdit: [';', '&', '|', ", '>', '<', '$(', '$'] 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: roue] WARNING_COUNTER: 5 Oversser: - ['ls'] [Raj] Autorisé: 'All' - ['su', 'rm', 'mv'] chemin: ['/ etc', '/ usr'] - ['/ usr / local'] home_path: '/ home / raj' ' [Sarah] Autorisé: + ['ping'] - ['ls'] chemin: - ['/ usr / local'] strict: 1 scpforce: '/ home / sarah / uploads /' 

Par exemple, l'utilisateur «RJA» et l'utilisateur «Sarah» appartiennent tous deux au groupe UNIX «Wheel»:
Roue de groupe:

  • Les utilisateurs du groupe de roues ont un compteur d'avertissement réglé sur 5
  • Les utilisateurs du groupe de roues ne sont pas autorisés.

User Raj:

  • Peut accéder / etc. et / var mais pas / usr / local
  • Peut accéder à toutes les commandes dans ses commandes de chemin Execpt - su, rm, VM
  • a un compteur d'avertissement défini sur 5 [par défaut]
  • a son chemin à domicile réglé pour '/ home / raj'

Utilisateur Sarah:

  • Peut accéder / home et / usr mais pas / usr / local
  • est autorisé la commande par défaut «ping» mais pas «ls»
  • La rigueur est définie sur 1 (il n'est pas autorisé à taper une commande inconnue)
Nom d'optionExplication
log Répertoire de journal (par défaut / var / log / lshell /)
logevel Définissez le niveau du journal sur 0, 1, 2, 3 ou 4 (0: pas de journaux, 1: le moins verbeux, 4: enregistrer toutes les commandes)
logfilename configurer le nom du fichier journal (la valeur par défaut est% u i.e. nom d'utilisateur.enregistrer)
autorisé Liste des commandes autorisées ou «tout» pour autoriser toutes les commandes sur le chemin de l'utilisateur
interdit Une liste de caractères ou de commandes interdits - nier Vim, car il permet d'échapper à Lshell
sudo_commands Une liste de commande autorisée à utiliser avec sudo (8)
WARNING_COUNTER Nombre d'avertissements lorsque l'utilisateur entre dans une valeur interdite avant de se faire sortir de LSHELL, réglé sur -1 pour désactiver.
alias Liste des alias de commande (similaire à la directive d'alias de Bash)
introduction INTRODUCTION Texte à imprimer (lorsque vous entrez en lshell)
rapide Configurez votre promont en utilisant% u ou% h (par défaut: nom d'utilisateur)
prompt_short Définir la mise à jour du répertoire actuel de l'invite de tri (par défaut: 0)
minuteur une valeur en secondes pour la minuterie de session
chemin Liste du chemin pour restreindre l'utilisateur «géographique»
home_path Définissez le dossier de votre utilisateur
Env_path Définir la variable d'environnement $ chemin de l'utilisateur
autorisé_cmd_path une liste de chemin; Tous les fichiers exécutables à l'intérieur de ces chemins seront autorisés
env_vars Ajouter des variables d'environnement
SCP Autoriser ou interdire l'utilisation de SCP (réglé sur 1 ou 0)
scp_upload interdire le téléchargement SCP
scp_download Télécharger SCP interdit
SFTP Autoriser l'interdiction de l'utilisation de SFTP (réglé sur 1 ou 0)
outre-art Liste de commande autorisée à exécuter sur SSH
strict strictage de l'exploitation. 1 pour toute commande inconnue est considérée comme interdite et 0 comme inconnue
scpforce Force les fichiers envoyés via SCP à un répertoire spécifique
HISTORY_SIZE Fichier d'historique Taille maximale
HISTORY_FILE Définir le nom du fichier (par défaut est / home /% u /.lhistory)
login_script Définissez le script pour s'exécuter à la connexion de l'utilisateur