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. ...
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
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 :
| Usage: pscp [options] [user@]host:source target pscp [options] source [source...] [user@]host:target |
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
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]$ |