J'ai lu pas mal de messages concernant l'utilisation de PermitUserEnvironment
et le fichier ~/.ssh/environment
afin de passer des variables env à un shell ssh. Les documents officiels de sshd et quelques autres ressources font allusion à certains risques de sécurité de faire cela.
L'activation du traitement de l'environnement peut permettre aux utilisateurs de contourner les restrictions d'accès dans certaines configurations à l'aide de mécanismes tels que LD_PRELOAD.
Quels sont les problèmes de sécurité probables liés à l'activation PermitUserEnvironment
? Je cherchais à conserver les détails de connexion DB dans ces variables d'environnement, est-ce conseillé?
security
ssh
environment-variables
Rob Squires
la source
la source
Réponses:
Tout d'abord, si vous n'essayez pas de faire quoi que ce soit d'extraordinaire avec les restrictions d'accès utilisateur - c'est-à-dire si vous offrez un accès shell interactif - il n'y a probablement aucun risque de sécurité supplémentaire à autoriser l'utilisation du
.ssh/environment
fichier, car l'utilisateur pourrait accomplir avec ce fichier, ils pourraient également le faire de manière interactive dans leur shell.Si vous utilisez des commandes forcées SSH pour limiter ce que les gens peuvent faire via ssh (par exemple, si vous limitez les gens à utiliser uniquement
sftp
ouscp
), autoriser quelqu'un à définir des variables d'environnement telles queLD_PRELOAD
(ou peut-être mêmePATH
) leur permettrait de détourner votre restrictions en remplaçant les appels de bibliothèque de base par leur propre code. En revanche, si vous créez.ssh/environment
le compte de vos utilisateurs et qu'ils ne sont pas capables de le gérer autrement, vos risques sont relativement faibles.Sans en savoir plus sur votre cas d'utilisation particulier, il est difficile de fournir une réponse définitive.
la source