Serveur LAMP (CentOS 6.5) 6/7 : Installation et configuration de VSFTPD
Installation du serveur FTP (VSFTPD)
Avoir un site disponible sur le net, c’est bien. Pouvoir y mettre des fichiers, c’est mieux . Et c’est le but de VSFTPD qui est un serveur FTP très sécurisé. Nous installons donc VSFTPD via la commande suivante :
|
|
Configuration de VSFTPD en mode « utilisateur virtuel »
On va devoir modifier la configuration de VSFTPD. Pour cela, on effectue une sauvegarde. Cela permettra de revenir en arrière en cas de souci via les commandes suivante :
|
|
La base de données
Nous allons maintenant utiliser la base de donnés Berkeley. Ce type de base de données est extrêmement simple, c’est pourquoi nous l’utilisons. Il se base sur un fichier de type texte contenant nos différentes informations, entrées une à une. En fait, il n’y a pas de tables, ni de champs à configurer ! On va juste convertir un fichier contenant nos données sous cette forme :
|
|
On crée donc un fichier login.txt (le .txt n’est là que pour indiquer que ce sera nos données brutes ! Vous pouvez le nommer comme bon vous semble !). Puis on va le convertir en base de données.
|
|
On génere la base donnée via la commande suivante :
|
|
On modifie les droits sur les fichiers login.db et login.txt pour qu’ils ne soient accessible qu’a l’utilisateur root via les commandes suivantes :
|
|
On va maintenant informer le module PAM d’utiliser notre base de données nouvellement créée. Pour cela :
|
|
Si OS en 32 bits :
|
|
Si OS en 64 bits :
|
|
On copie le fichier vsftpd.pam dans le répertoire /etc/pam.d/ qui contient les fichiers de configuration PAM via la commande suivante :
|
|
Si le système nous informe que le fichier existe déjà, on l’écrase.
Création d’un utilisateur local
Nous allons créer un utilisateur local qui n’aura pas le droit de s’authentifier sur le serveur via la commande suivante :
|
|
Modification de vsftpd.conf
Pour pouvoir utiliser nos utilisateurs virtuels, nous devons reconfigurer le fichier vsftpd.conf Nous allons supprimer ce dernier via la commande suivante :
|
|
Pour ensuite en créer un nouveau :
|
|
Copier la configuration suivante dans le fichier nouvellement créé :
|
|
Sauvegardez puis quittez.
Paramétrer les utilisateurs
On va maintenant chrooter (modifier le répertoire racine) nos utilisateurs dans leur répertoire respectif. Pour cela, on crée le répertoire qui sera utilisé pour contenir nos différents fichiers par utilisateur. Et on crée le fichier pour chaque utilisateur dans notre base de données.
|
|
Puis on créé le fichier /etc/vsftpd/vsftpd_user_conf/monsiteweb.fr :
|
|
Et on y ajoute :
|
|
On enregistre et on ferme. Avant de modifier les paramètres SELinux, il faut arrêter le démon httpd via la commande suivante :
|
|
On modifie le propriétaire du répertoire /var/www/html/monsiteweb.fr via la commande suivante :
|
|
On modifie le contexte SELinux du répertoire /var/www/html/monsiteweb.fr afin de pouvoir écrire dedans via la commande suivante :
|
|
Afin de prévenir un retour au context par défaut lors d’une prochaine mise à jour de l’OS, on enregistre le contexte SELinux à appliquer au répertoire /var/www/html/monsiteweb.fr dans le fichier /etc/selinux/targeted/contexts/files/file_contexts.local via la commande suivante :
|
|
On modifie le contexte SELinux du répertoire /var/www/html/monsiteweb.fr pour le rendre accessible en écriture à Apache via la commande suivante :
|
|
On modifie le contexte SELinux du répertoire /var/www/html/monsiteweb.fr pour le rendre accessible en écriture à Apache via la commande suivante :
|
|
Démarrage et test
On ouvre les ports dans le firewall iptables via les commandes suivantes :
|
|
On sauvegarde la configuation d’iptables via la commande suivante :
|
|
On démarre notre serveur FTP via la commande suivante :
|
|
Et il ne nous reste plus qu’à nous connecter à notre compte FTP pour vérifier que tout fonctionne en utilisant les informations suivantes :
- IP: ip du serveur
- Port : 21
- Login: monsiteweb.fr
- Password: password
Dans le cas où vous ne pouvez pas uploader de fichiers, c’est que les droits ne sont pas bons. Vérifiez bien que le répertoire /var/www/html/monsiteweb.fr/ ait les droits vsftpd:users pour propriétaire et groupe :
|
|
Afin d’éviter de potentiel problème de droit, nous allons appliquer les bonnes sur le répertoire /var/www/html/monsiteweb.fr via la commande suivante :
|
|
Si vous rencontrez des problèmes de transfert de fichiers, vérifier que le mode de transfert est bien « Actif » dans votre client FTP.