Je suis dans le processus ardu et douloureux de la mise en place d'utilisateurs sécurisés sur un nouveau serveur web LEMP avec Ubuntu 12.04. J'allais initialement configurer quelque chose comme vsftpd ou proftpd, mais beaucoup ont suggéré d'utiliser SFTP directement, donc je vais le faire. En fin de compte, j'ai un seul utilisateur principal (que j'utilise simplement pour empêcher les connexions root). J'ai créé ce nouvel utilisateur, généré une paire de clés publiques, téléchargé la clé publique sur le serveur des utilisateurs. ~/.ssh
comme authorized_key
a changé le numéro de port SSH, a supprimé la connexion de l'utilisateur root et a également configuré passwordauthentication
sur NON pour que l'utilisateur soit obligé d'utiliser sa clé pour se connecter. C'est assez simple (bien que travailler sur un PC semble être beaucoup plus un casse-tête pour cela que mes homologues OSX/NIX).
J'essaie maintenant de créer de nouveaux utilisateurs (pour mes développeurs web) qui auront simplement un accès SFTP et limiteront leur exposition simplement au répertoire web de leur charge. Chaque répertoire a le format suivant :
/var/www/sitename.com/public/
Mon mal de tête commence maintenant. Créer un nouvel utilisateur ? Facile. Ajouter un mot de passe ? Je n'en ai pas vraiment besoin étant donné que je demande des clés publiques/privées (et qu'ils n'auront jamais d'accès sudo) mais c'est bon. J'ai cependant du mal avec ce qui suit :
- Comment stocker réellement la clé publique de ce nouvel utilisateur sur le serveur ? Si je me connecte en tant qu'utilisateur root et que je crée simplement le fichier
authorized_keys
dans leur répertoire personnel, il aura les droits de propriétaire et de groupe root et ils ne pourront pas se connecter au serveur. De même, ces nouveaux utilisateurs ne peuvent pas se connecter et créer le fichier eux-mêmes, car ils ne sont pas autorisés à se connecter par mot de passe.
(note : j'ai aussi du mal à configurer le sftp et à les limiter à leurs répertoires web respectifs, mais je pense que je pourrai y arriver plus tard par moi-même).
Des conseils ?
Modifier
Actuellement, le processus est le suivant :
- obtenir la clé publique de l'individu
-
passer par les commandes suivantes :
sudo mkdir -p /home/newuser/.ssh
sudo nano /home/newuser/.ssh/authorized_key
(copy key into single line and save)
chown -R newuser:newuser /home/newuser
chmod 700 /home/newuser/.ssh
chmod 600 /home/newuser/.ssh/authorized_key
Je suppose que ce n'est pas absolument horrible mais si nous avons un grand nombre de développeurs (plus le temps qu'il va me falloir pour les configurer avec la partie SFTP et la limitation aux répertoires), cela semble être une énorme douleur.