installation ftp ubuntu serveur 0

A quoi sert l’installation d’un serveur FTP

La réponse la plus logique qui est en générale donnée est la possibilité d’envoyer des fichiers sur son serveur. La réponse n’est qu’à moitié exacte. L’envoie de fichiers peut très bien se faire via une connection ssh avec le compte root. Vous aurez cependant 2 problèmes

  • Les droits sur les dossiers et fichiers seront donnés à « root » ce qui signifie qu’apache/php (identifié sous www-data’ n’aura aucun droit d’écriture)
  • Vous ne pouvez pas restreindre l’accès à une dossier particulier comme par exemple www

Nous allons donc décrire dans ce présent tutoriel l’installation d’un serveur FTP avec droit apache/php

Pour rappel le changement de propriétaire d’un fichier dossier se fait de la manière suivante

chown www-data:www-data /var/www

et de manière récursive (dossiers + sous dossiers)

chown -R www-data:www-data /var/www

Installation de vsftp (very secured ftp)

apt-get install vsftpd

Une fois vsftp installé il vous faudra créer une utilisateurs avec des droits spécifiques. Afin de sécuriser l’ensemble nous allons utiliser la librairie d’encrypatge Berkeley (ainsi que les tools associés). Celle ci n’étant pas disponible dans les paquets officiels, le plus simple est d’utiliser la commande wget et de l’installer via la commande dpkg.

wget http://fr.archive.ubuntu.com/ubuntu/pool/universe/d/db6.0/libdb6.0_6.0.19-3ubuntu1_amd64.debdpkg -i libdb6.0_6.0.19-3ubuntu1_amd64.debapt-get -f install
wget http://fr.archive.ubuntu.com/ubuntu/pool/universe/d/db6.0/db6.0-util_6.0.19-3ubuntu1_amd64.debdpkg -i db6.0-util_6.0.19-3ubuntu1_amd64.debapt-get -f install

Si la librairie n’est pas à jour vous pourrez trouver la plus récente dans les packages universe d’ubuntu :

http://packages.ubuntu.com/fr/trusty/database/

Création d’un user (utilisateur ftp)

Nous allons créer deux dossiers

  • /etc/vsftpd/users.conf/ dans lequel sera présente notre utilisateur avec les droits et les accès aux répertoires
  • /etc/vsftpd/ dans lequel nous allons créer l’utilisateur avec son mot de passe encrypté
mkdir /etc/vsftpdmkdir /etc/vsftpd/users.confvi /etc/vsftpd/users

Dans ce fichier vous devez renseigner l’identifiant et le mot de passe

adminun_mot_de_passeadmin2un_mot_de_passe2

Attention ! il ne faut surtout pas ajouter de saut de ligne supplémentairement vide

Nous encryptons le fichier

db6.0_load -T -t hash -f /etc/vsftpd/users /etc/vsftpd/users.db

Puis nous restreignons les droits

chmod 600 /etc/vsftpd/userschmod 600 /etc/vsftpd/users.db

Enfin nous donnons des droits d’accès aux fichiers en créant le fichier admin (admin2 ou tout autre identifiant d’utilisateur choisis précédemment)

vi /etc/vsftpd/users.conf/admin

Nous remplissons ce fichier de la manière suivante

anon_world_readable_only=NOlocal_root=/var/www/write_enable=YESanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YES

Ou local_root sera le dossier auquel l’utilisateur admin aura accès

Nous éditons le fichier vsftpd dans le dossier pam.d afin de donner le chemin vers le fichier users.db précédement créé (sans l’extention .db)

vi /etc/pam.d/vsftpd

Commenter l’ensemble du fichier et ajouter ces deux lignes à la fin

auth    required   pam_userdb.so  db=/etc/vsftpd/usersaccount required    pam_userdb.so  db=/etc/vsftpd/users

Configuration de vsftpd

Dernière étape, il suffit de configurer le fichier vsftpd.conf. Les lignes

  • guest_username=www-data et nopriv_user=www-data

permettent d’affecter www-data (soit le couple apache/php) comme propriétaire des fichiers envoyé via ftp

vi /etc/vsftpd.conf

Vous devrez activer les élements suivant dans le fichier vsftpd.conf

# Pas d'accès anonyme, que des utilisateurs locauxanonymous_enable=NOlocal_enable=YES# Active les utilisateurs virtuels# Vsftpd utilise en fait l'utilisateur www-dataguest_enable=YESguest_username=www-datanopriv_user=www-datawrite_enable=YES# On restreint l'utilisateur à son dossier de connexionchroot_local_user=YES# Utilisation de PAM pour l'authentificationpam_service_name=vsftpd# Configuration par utilisateuruser_config_dir=/etc/vsftpd/users.confallow_writeable_chroot=YES

Rendre les fichiers htaccess / htpasswd visible

Pour pouvoir voir et ouvrir les fichiers htaccess et htpasswd visible avec votre logiciel ftp il suffit de rajouter dans le fichier conf de vsftpd les lignes suivantes

force_dot_files=YES