Essayez avec ce manuel. Peut-être fonctionnera-t-il pour vous.
Comment faire
Installer vsftpd et une bibliothèque PAM
Modifier /etc/vsftpd.conf
et/etc/pam.d/vsftpd
Créez des comptes utilisateur avec des répertoires personnalisés (dans / var / www / par exemple)
Définir des répertoires avec la bonne chmod
etchown
Créer un utilisateur administrateur avec un accès complet au serveur
- Installer
vsftpd
(Deamon FTP très sécurisé) et libpam-pwdfile
créer des utilisateurs virtuels
Je voulais créer des utilisateurs FTP mais je ne voulais pas ajouter d'utilisateurs locaux Unix (pas d'accès shell, pas de répertoire personnel, etc.). Un PAM (Pluggable Authentication Modules) vous aidera à créer des utilisateurs virtuels.
sudo apt-get install vsftpd libpam-pwdfile
- modifier
vsftpd.conf
Vous devez d'abord sauvegarder le fichier d'origine
sudo mv /etc/vsftpd.conf /etc/vsftpd.conf.bak
Ensuite, créez-en un nouveau
sudo vim /etc/vsftpd.conf
Copiez et collez les lignes suivantes. Le fichier ne doit contenir que ces lignes:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
nopriv_user=vsftpd
virtual_use_local_privs=YES
guest_enable=YES
user_sub_token=$USER
local_root=/var/www/$USER
chroot_local_user=YES
hide_ids=YES
guest_username=vsftpd
- Enregistrer des utilisateurs virtuels
Pour enregistrer un utilisateur que vous utilisez htpasswd
, je suppose que vous apache2
travaillez sur votre serveur. Créez un vsftpd
dossier puis placez-y les fichiers de configuration.
sudo mkdir /etc/vsftpd
puis
sudo htpasswd -cd /etc/vsftpd/ftpd.passwd user1
-c signifie que nous allons créer le fichier s'il n'existe pas encore -d force MD5, vous en avez besoin sur Ubuntu 12.04, utilisez-le toujours
La commande vous demandera un mot de passe.
Si vous souhaitez ajouter de nouveaux utilisateurs par la suite:
sudo htpasswd -d /etc/vsftpd/ftpd.passwd user2
- Configurer PAM dans
/etc/pam.d/vsftpd
Encore une fois, vous devez sauvegarder le fichier d'origine
sudo mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
et en créer un nouveau
sudo vim /etc/pam.d/vsftpd
Copiez et collez ces 2 lignes (cela devrait être le seul contenu). J'insiste seulement sur ces 2 lignes, j'ai perdu beaucoup de temps à garder les originaux et je les ai juste ajoutés.
auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd
account required pam_permit.so
- Créer un utilisateur local sans accès au shell
sudo useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd
Vous pouvez vérifier qu'il a été créé avec la commande id: id vsftpd. Nous définissons l'utilisateur avec le shell / bin / false en raison du paramètre check_shell (même si vous ne l'utilisez pas). Lorsque l'utilisateur final se connecte au serveur FTP, ils seront utilisés pour les droits et la propriété:
chmod
et chown
.
- Redémarrer
vsftpd
La manière courante utilise init.d comme tous les démons
sudo /etc/init.d/vsftpd restart
sudo service vsftpd restart
- Créer des répertoires
Selon la configuration, tous les utilisateurs seront placés dans ce dossier: / var / www / user1.
Vous devez les créer avec des droits particuliers: le dossier racine ne peut pas être accessible en écriture!
/ [root = /var/www/user1] => 555
www [ /var/www/user1/www ] => 755
docs [ /var/www/user1/docs ] => 755
Remarque: l'utilisateur ne peut pas créer de fichiers ou de dossiers dans le répertoire racine.
Dans vsftpd.conf
ce chroot_local_user=YES
cas, l'utilisateur ne peut rien voir en dehors de son dossier. Pour lui, le serveur ressemble à ceci:
Il suffit donc d'exécuter ces commandes:
mkdir /var/www/user1`
chmod -w /var/www/user1
mkdir www/user1/www
chmod -R 755 /var/www/user1/www
chown -R vsftpd:nogroup /var/www/user1
Le /var/www/user1
dossier doit exister ou la connexion échouera.
Pour le moment, vous pouvez essayer de vous connecter avec votre FTP
- Créez un utilisateur Admin pour accéder à l'ensemble du serveur
Pour créer un utilisateur administrateur, nous devons enregistrer un nouvel utilisateur avec htpasswd
.
Avant de le faire, je vous conseille de vérifier dans le /etc/ftpusers
fichier qui définit certains utilisateurs qui ne sont pas autorisés à se connecter avec ftp. Je pense que c'est uniquement pour les utilisateurs locaux et non les utilisateurs virtuels, mais au cas où ne choisissez pas un nom contenu dans ce fichier.
sudo htpasswd -d /etc/vsftpd/ftpd.passwd theadmin
Maintenant, nous devons ajouter une nouvelle ligne dans /etc/vsftpd.conf
chroot_list_enable=YES
Cela signifie que votre utilisateur sera placé dans son dossier (comme une prison) SAUF les utilisateurs dans / etc /
vsftpd.chroot_list
Créons ce fichier et ajoutons notre utilisateur, le fichier est une simple ligne contenant "theadmin". Ajoutez un utilisateur par ligne. Cela signifie que vous N'AVEZ PAS besoin de créer un /var/www/theadmin
dossier, l'utilisateur se connectera et démarrera /home/vsftpd
.
Redémarrez le serveur et vous avez terminé!