Configuration d'un environment chrooted pour une connexion SSH sécuritaire (PLESK)

Configuration d'un environment chrooted pour une connexion SSH sécuritaire (PLESK)
Problème
Avec un accès standard, les utilisateurs de Plesk peuvent se connecter par SSH et ont accès à pratiquement l'ensemble des fichiers du serveur, ce qui cause une faille de sécurité majeure.
Solution
Étape 1 (une seule fois, au besoin) :
Si vous prévoyez utiliser git
et/ou ssh
avec les comptes utilisateurs chrooted, il faut les ajouter au chroot template de Plesk puisqu'ils ne sont pas actifs par défaut.
- Connectez-vous en root au serveur par SSH.
- Exécuter le code suivant dans votre dossier
home (~)
ou autre.
wget https://plesk.zendesk.com/hc/article_attachments/360009607573/update_chroot.tar.gz
tar xf update_chroot.tar.gz
./update_chroot.sh --devices tty
./update_chroot.sh --add ssh
./update_chroot.sh --add touch
./update_chroot.sh --add nano
./update_chroot.sh --add curl
./update_chroot.sh --add /usr/bin/git*
./update_chroot.sh --apply all
Si vous voulez ajouter plus de fonctionnalités à l'environnement, vous pouvez le faire avec la commande ./update_chroot.sh --add <nom-du-programme>
et ensuite appliquer les changements ./update_chroot.sh --apply all
.
Étape 2 : activer l'environnement chrooted dans Plesk
- Dans Plesk, créer un nouveau Service Plan
SSH Chrooted Access
- Dans l'onglet Permissions, pour l'option
Management of access to the server over SSH
, sélectionnerCan allow access only to a chrooted environment
afin de prévenir l'utilisation d'un shell non-chrooted par les utilisateurs. - Appliquer ce Service Plan aux comptes ayant un accès SSH.
Les utilisateurs ne devraient plus avoir accès au serveur en entier et peuvent maintenant seulement voir leurs propres fichiers.
NOTE: Comme les symlinks ne fonctionnent pas comme prévus dans un environnement chrooted, si une subscription utilise un symlink pour pointer un dossier vers un autre disque, vous devez utiliser mount
à la place pour faire pointer le dossier. Plus de détails ici
Étape 3 : Utilisation de Git de Plesk
Utiliser la formule suivante pour accéder au repositories git gérés par Plesk, sans ajouter ssh://
:
<user>@<hostname>:~/git/<gitrepo>
par exemple :
jmcouillard@jmcouillard.com:~/git/jmcouillard.git
LA SECTION SUIVANTE NE SEMBLE PLUS NÉCESSAIRE
Pour pouvoir utiliser l'auto-deploy de Plesk lorsqu'on fait un push dans un répertoire git, il faut ajuster des paramètres.
Dans un environnement chroot, pour une certaine raison, il est impossible de trouver le serveur par l'adresse localhost
, mais seulement par 127.0.0.1
.
Ce qui fait en sorte que l'auto-deploy ne fonctionne pas puisqu'il essaie de communiquer avec le serveur par curl
avec localhost
.
La solution trouvée pour corriger le problème est de changer les nameservers de Google de l'environnement chroot par ceux de CloudFlare.
Editer le fichier /var/www/vhosts/chroot/etc/resolv.conf
et remplacer par ceci:
nameserver 1.1.1.1
nameserver 1.0.0.1
options rotate
options timeout:3
Ensuite refaire ceci pour distribuer le fichier :
cd ~
./update_chroot.sh --apply all