Comment restreindre l'accès SSH pour l'utilisateur avec LSHELL (Shell Limited)
- 4888
- 24
- Zoe Dupuis
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'option | Explication |
---|---|
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 |
- « Comment passer à Fedora 23 de Fedora 22 en utilisant DNF
- Client AUTHZ_COREERROR refusé par la configuration du serveur »