PowerStore : fonctionnement des limites shell liées à rbash et à d’autres implémentations de sécurité

Summary: Afin de renforcer la sécurité générale, il a été décidé de verrouiller le shell PowerStore en activant rbash (shell bash restreint) parallèlement à d’autres implémentations de sécurité. Autre exemple : le dossier de base de l’utilisateur de service est /home/service/user et non /home/service comme on aurait pu s’y attendre. Il s’agit de l’un des rares emplacements sur lequel l’utilisateur de service dispose d’autorisations en écriture. ...

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

Les erreurs suivantes ont été observées après la prise de ces mesures :

  • rbash: cd: restricted (au cours de la navigation entre les répertoires)
  • rbash: xxxx: restricted: cannot redirect output (au cours de la redirection des résultats vers un fichier à l’aide de « > »)
  • rbash: xxxx: command not found (au cours de l’exécution de commandes ne se trouvant pas dans la liste autorisée)
  • rbash: ./example_script: restricted: cannot specify `/' in command names (au cours de l’exécution de scripts)
  • Impossible d’initialiser le protocole SFTP L’hôte exécute-t-il un serveur SFTP ? (au cours de la configuration d’outils de transfert de fichiers de type WinSCP)
  • Échec de la commande « cd "xxxx" » accompagné du code de retour 1 et d’un message d’erreur. -rbash: line 47: cd: restricted (au cours de la modification des répertoires avec WinSCP)

Cause

La mise en œuvre de rbash signifie qu’il est possible de modifier le comportement du shell en désactivant certaines actions et fonctionnalités, notamment :

  • Remplacer des répertoires grâce à la commande cd builtin.
  • Paramétrer ou déparamétrer les valeurs des variables SHELL, PATH, ENV ou BASH_ENV.
  • Indiquer des noms de commande contenant des slashs.
  • Spécifier un nom de fichier contenant un slash comme argument de la commande . builtin.
  • Spécifier un nom de fichier contenant un slash comme argument de l’option -p de la commande de hachage builtin.
  • Importer au démarrage des définitions de fonction à partir de l’environnement shell.
  • Analyser au démarrage la valeur de SHELLOPTS à partir de l’environnement shell.
  • Rediriger la sortie à l’aide des opérateurs de redirection ‘>’, ‘>|’, ‘<>’, ‘>&’, ‘&>’, et ‘>>’.
  • Utiliser le fichier exécutable builtin pour remplacer le shell par une autre commande.
  • Ajouter ou supprimer des commandes builtin à l’aide des options -f et -d de la commande builtin active.
  • Utiliser la commande builtin active pour activer les builtin shell désactivés.
  • Indiquer l’option -p pour la commande builtin.
  • Désactiver le mode restreint à l’aide de « set +r » ou « set +o restricted ».

Pour de plus amples informations, consultez la page suivante :
https://www.gnu.org/software/bash/manual/html_node/The-Restricted-Shell.html 

Resolution

Nous vous présentons ici quelques options visant à faciliter la navigation dans le système et l’interaction avec celui-ci en dépit des limitations évoquées ci-dessus.

Transferts de fichiers 

Utilisez SCP plutôt que le protocole SFTP ou FTP lors de la configuration d’outils de transfert de fichiers de type WinSCP.   
SLN321130_en_US__1icon Rappel :
Les utilisateurs ne peuvent pas modifier les répertoires (cd non autorisé). Par conséquent, tous les éléments à télécharger depuis le nœud ou l’appliance doivent d’abord être copiés vers /home/service/user.
Seules les ressources de support normales font exception à la règle. Afin de faciliter le téléchargement, des liens sont automatiquement placés dans le répertoire de base pour chaque ensemble disponible de documents de support.

Si vous souhaitez télécharger les fichiers directement à partir du répertoire dans lequel ils se trouvent, vous devrez d’abord trouver le chemin complet à partir du shell PowerStore. Ensuite, vous pourrez utiliser des outils de type PSCP (à partir de l’interface de ligne de commande Windows) ou SCP (à partir de Linux).
Exemple PSCP Windows :

Syntaxe :
Usage: pscp [options] [user@]host:source target
pscp [options] source [source...] [user@]host:target
Remarque : dans certaines nouvelles versions de Windows 10, vous devez peut-être spécifier le port (-P 22).

Exemple de téléchargement :
pscp -scp -P 22 service@<appliance or node IP>:/path/to/file/to/download C:\Local\dowwnload-save\location

pscp -scp service@xx.xx.xx.xx:/cyc_var/cyc_service/data_collection/xxxxxxxx/powerstore_xxxxxxxx_2020-05-06_00-00-00_service-data.tgz C:\LOGS
service@xx.xx.xx.xx's password:
powerstore_xxxxxxxxx | 10944 kB | x.x kB/s | ETA: 00:00:00 | 100%

Exemple de chargement :
pscp -scp -P 22 C:\Logs\somefile.txt service@xx.xx.xx.xx:/home/service/user
service@xx.xx.xx.xx's password:
somefile.txt           | 211 kB | 212.0 kB/s | ETA: 00:00:00 | 100%

 

Navigation

Vous ne pouvez pas utiliser la commande « cd » pour la navigation, mais vous pouvez utiliser les commandes « ls » ou « cat/less » pour le listage du contenu du répertoire ou la lecture des fichiers. La seule différence réside dans le fait que vous devez toujours utiliser des chemins complets.
Le même principe s’applique à tout le reste (grep, etc.).

Exemple de listage des sous-répertoires dans le répertoire des ressources de support :
[SVC:service@xxxxxxx-B user]$ ls -l /cyc_var/cyc_service/data_collection/                                     
total 80
drwxrwsr-x+ 2 cyc cycg 4096 Apr  8 14:48 0941c91a-431d-4bfb-b5b2-062b02c45950
drwxrwsr-x+ 2 cyc cycg 4096 Apr 25 15:27 20439835-3654-4d93-af3b-ebfc0ae222fd
drwxrwsr-x+ 2 cyc cycg 4096 Apr 19 15:27 3d2011a8-0aa2-48d7-9f3f-1f234df2abfb
drwxrwsr-x+ 2 cyc cycg 4096 Apr 19 13:08 473ed1cb-0ebb-4bd6-bbf6-e87e61af8578
drwxrwsr-x+ 2 cyc cycg 4096 Apr 22 14:01 48a522ff-0aaa-4f83-a936-973f6f1097b2
drwxrwsr-x+ 2 cyc cycg 4096 Apr 22 15:26 4ba1375c-c23b-47c6-bc04-1498e3443b39
drwxrwsr-x+ 2 cyc cycg 4096 Apr 27 15:26 6faf6d88-58c6-4891-b001-8e0311e9e00d
drwxrwsr-x+ 2 cyc cycg 4096 Apr 24 14:36 798b13df-70bb-4fd3-9691-608b735207e9
drwxrwsr-x+ 2 cyc cycg 4096 Apr 28 15:27 8187fc5d-d389-4676-a69f-23db20c06602
drwxrwsr-x+ 2 cyc cycg 4096 Apr 26 15:12 83cb57dc-dee3-4dae-8585-e3b670d4b52a
drwxrwsr-x+ 2 cyc cycg 4096 Apr 18 12:50 a038d9ac-6ecc-4c49-8bb3-ae6623b418f6
drwxrwsr-x+ 2 cyc cycg 4096 Apr 21 13:43 b02e88fb-3f80-47a3-8f6d-3547afad7c35
drwxrwsr-x+ 2 cyc cycg 4096 Apr 24 15:26 b4bdd7c3-dbd0-4ac7-93ac-2e3e7ea1ff93
drwxrwsr-x+ 2 cyc cycg 4096 Apr 23 14:18 bf965b7e-e136-42ba-b46c-5fc565b6cf58
drwxrwsr-x+ 2 cyc cycg 4096 Apr 20 13:26 d96caca8-4395-4f15-aea1-60dd7a2490f5
drwxrwsr-x+ 2 cyc cycg 4096 Apr 23 15:26 e101bd57-fd3d-421a-b15a-341456a52f1f
drwxrwsr-x+ 2 cyc cycg 4096 Apr 25 14:54 e57e625d-e393-4919-b0d1-5efd89042897
drwxrwsr-x+ 2 cyc cycg 4096 Apr 20 15:26 ea40f70d-3cbf-4c84-9643-627fdbf9f0bd
drwxrwsr-x+ 2 cyc cycg 4096 Apr 21 15:26 ea9d95dd-1c72-4b2b-929a-ab6ec9cbedc1
drwxrwsr-x+ 2 cyc cycg 4096 Apr 17 12:34 fa02405b-ae24-4d7d-b178-97a99a2b717f
[SVC:service@xxxxxxx-B user]$ 

Affected Products

PowerStore, PowerStore 1000X, PowerStore 1000T, PowerStore Expansion Enclosure, PowerStore 3000X, PowerStore 3000T, PowerStore Rack, PowerStore 5000X, PowerStore 5000T, PowerStore 7000X, PowerStore 7000T, PowerStore 9000X, PowerStore 9000T
Article Properties
Article Number: 000126621
Article Type: Solution
Last Modified: 27 Apr 2021
Version:  8
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.