Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| tutoriel:coupler_vsftpd_et_apache [Le 14/07/2017, 13:25] – [Création de la base d'utilisateurs] 80.214.217.112 | tutoriel:coupler_vsftpd_et_apache [Le 31/05/2018, 14:24] (Version actuelle) – obsolète L'Africain | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag> | ||
| - | ---- | ||
| - | |||
| - | ====== Comment coupler Vsftpd avec Apache ? ====== | ||
| - | |||
| - | Ce tutoriel décrit comment donner un accès Ftp aux sites web d'un serveur mutualisé, afin que ceux ci soient directement accessibles par le serveur apache, sans problème de droits. | ||
| - | |||
| - | Pour cela, nous allons mettre en œuvre un serveur Vsftpd, en utilisant des utilisateurs virtuels. | ||
| - | |||
| - | ===== Pré-requis ===== | ||
| - | |||
| - | * Disposer des [[: | ||
| - | * Ce tutoriel fonctionne sur un serveur 10.4.1 | ||
| - | | ||
| - | | ||
| - | |||
| - | ===== Installation ===== | ||
| - | |||
| - | Nous allons installer le serveur apache, le serveur vsftpd, et un outil qui nous permettra la création d'une base de données des utilisateurs. | ||
| - | < | ||
| - | sudo aptitude install apache2 vsftpd db4.8-util | ||
| - | </ | ||
| - | ===== Création des répertoires ===== | ||
| - | Les données des sites seront stockées sous / | ||
| - | Les données de configuration de vsftpd seront stockées sous / | ||
| - | Les fichiers de configurations de chaque utilisateur seront stockés dans le répertoire / | ||
| - | < | ||
| - | sudo mkdir -p / | ||
| - | sudo chown -R www-data: | ||
| - | sudo mkdir -p / | ||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | ===== Création de la base d' | ||
| - | Pour rester concis, nous utiliserons une base de données la plus simple possible. | ||
| - | Dans le cadre d'un déploiement plus important, il est très facile d' | ||
| - | |||
| - | Nous allons créer un simple fichier texte, qui contiendra les couples login/ | ||
| - | < | ||
| - | < | ||
| - | sudo touch / | ||
| - | sudo chmod 700 / | ||
| - | </ | ||
| - | |||
| - | Nous pouvons remplir ce fichier texte avec deux exemples : | ||
| - | < | ||
| - | user1 | ||
| - | password1 | ||
| - | user2 | ||
| - | password2 | ||
| - | </ | ||
| - | < | ||
| - | |||
| - | Compilons ce fichier texte et changeons les droits de la base de données : | ||
| - | < | ||
| - | sudo db4.8_load -T -t hash -f / | ||
| - | sudo chmod 600 / | ||
| - | </ | ||
| - | |||
| - | ===== Configuration de PAM ===== | ||
| - | Vsftpd utilise PAM pour l' | ||
| - | |||
| - | Remplacez le contenu du fichier / | ||
| - | < | ||
| - | auth required | ||
| - | account required | ||
| - | </ | ||
| - | < | ||
| - | |||
| - | ===== Configuration de VSFTPD ===== | ||
| - | Il ne reste plus que Vsftpd lui même à configurer. | ||
| - | |||
| - | Toute l' | ||
| - | |||
| - | Editons le fichier / | ||
| - | < | ||
| - | # Pas d' | ||
| - | anonymous_enable=NO | ||
| - | local_enable=YES | ||
| - | # Active les utilisateurs virtuels | ||
| - | # Vsftpd utilise en fait l' | ||
| - | guest_enable=YES | ||
| - | guest_username=www-data | ||
| - | nopriv_user=www-data | ||
| - | write_enable=YES | ||
| - | # On restreint l' | ||
| - | chroot_local_user=YES | ||
| - | # Utilisation de PAM pour l' | ||
| - | pam_service_name=vsftpd | ||
| - | # Configuration par utilisateur | ||
| - | user_config_dir=/ | ||
| - | </ | ||
| - | |||
| - | La dernière ligne du fichier de configuration permet d' | ||
| - | |||
| - | ===== Configuration par utilisateur ===== | ||
| - | Nous disposons, via le fichier users.db, d'un compte utilisateur et d'un mot de passe. Pour chaque utilisateur, | ||
| - | |||
| - | Exemple pour l' | ||
| - | < | ||
| - | vim / | ||
| - | anon_world_readable_only=NO | ||
| - | local_root=/ | ||
| - | write_enable=YES | ||
| - | anon_upload_enable=YES | ||
| - | anon_mkdir_write_enable=YES | ||
| - | anon_other_write_enable=YES | ||
| - | </ | ||
| - | |||
| - | ===== Test du système ===== | ||
| - | Nous pouvons relancer le service SFTPD : | ||
| - | < | ||
| - | sudo service vsftpd restart | ||
| - | </ | ||
| - | |||
| - | et tenter une connexion ftp : | ||
| - | < | ||
| - | $ ftp | ||
| - | ftp> open 192.168.1.102 | ||
| - | Connected to 192.168.1.102. | ||
| - | 220 Welcome to blah FTP service. | ||
| - | Name (192.168.1.102: | ||
| - | 331 Please specify the password. | ||
| - | Password: | ||
| - | 230 Login successful. | ||
| - | Remote system type is UNIX. | ||
| - | Using binary mode to transfer files. | ||
| - | ftp> | ||
| - | </ | ||
| - | |||
| - | Copiez un fichier via ftp, et vérifier ses droits sur le serveur. | ||
| - | < | ||
| - | ls -l / | ||
| - | </ | ||
| - | Le fichier doit appartenir à l' | ||
| - | |||
| - | |||
| - | |||
| - | ===== Configuration apache ===== | ||
| - | Encore pour des raisons de concisions, nous allons paramétrer un alias dans apache. Bien entendu, il est possible de créer des vhosts. | ||
| - | |||
| - | Modifions le fichier / | ||
| - | < | ||
| - | sudo vim / | ||
| - | </ | ||
| - | |||
| - | ajoutons un simple alias : | ||
| - | |||
| - | < | ||
| - | Alias /site1/ "/ | ||
| - | < | ||
| - | Options Indexes MultiViews FollowSymLinks | ||
| - | AllowOverride None | ||
| - | Order allow,deny | ||
| - | Allow from all | ||
| - | </ | ||
| - | </ | ||
| - | |||
| - | Relançons apache : | ||
| - | < | ||
| - | sudo service apache2 restart | ||
| - | </ | ||
| - | |||
| - | et accèdons à notre site pour vérifier la présence du fichier téléchargé en FTP précédemment. | ||
| - | |||
| - | ===== Conclusion===== | ||
| - | Nous avons rapidement mis en oeuvre une solution pour créer des sites web sur un serveur mutualisé qui peuvent être mis à jour par FTP. | ||
| - | Cette solution ouvre de nombreuses portes vers des solutions plus élaborées : stockage des comptes dans une base mysql, cryptage des mots de passe, etc. | ||
| - | |||
| - | Un excellent tutoriel (voir rubrique Voir aussi) du site developpez.com va beaucoup plus loin dans la démarche. Sa lecture est vivement conseillée. | ||
| - | |||
| - | ===== Voir aussi ===== | ||
| - | |||
| - | * **(fr)** [[http:// | ||
| - | * **(fr)** [[: | ||
| - | |||
| - | |||
| - | ---- | ||
| - | // | ||
