Installer et configurer une solution FTP Version : 2.0 Groupe : David LE FLEM, Guillaume RIVIERE, Gwendal PELARD Date : 11/03/2016 Page 1 sur 7
Sommaire Création d un utilisateur :... 3 Instalaltion de pure-ftpd et MySQL... 3 Création d un base MySQL... 3 MySQL.conf... 4 Configuration Pure-Ftpd :... 4 Activer la configuration MySQL :... 5 Ajoutez des utilisateurs capables d utiliser le service FTP :... 5 Changer le dossier de destination des utilisateurs du FTP :... 5 Se connecter au serveur FTP en tant que client :... 6 Port à autoriser... 6 Page 2 sur 7
Objectifs : Projet GSB Installation d un serveur FTP sous Debian 8.0 Installer et configurer un serveur ftp fonctionnel afin de pouvoir déposer et récupérer des fichiers. Manipulations : Création d un utilisateur : Passez les commandes : Groupadd g 500 ftpgroup Useradd u 500 s /bin/false d /bin/null c pureftpd user g ftpgroup ftpuser Installation de pure-ftpd et MySQL apt-get install pure-ftpd-mysql Création d une base MySQL mysql -u root -h localhost -p mysql mysql> CREATE DATABASE pureftpd DEFAULT CHARACTER SET utf8 DEFAULT mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON pureftpd.* TO pureftpd@localhost IDENTIFIED BY 'motdepasse'; mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON pureftpd.* TO pureftpd@'172.16.2.%' IDENTIFIED BY ' motdepasse '; mysql> FLUSH PRIVILEGES; mysql> USE pureftpd; mysql> CREATE TABLE ftpd ( User varchar(16) NOT NULL default '', Status enum('0','1') NOT NULL default '0', Password varchar(64) NOT NULL default '', Uid varchar(11) NOT NULL default '-1', Gid varchar(11) NOT NULL default '-1', Dir varchar(128) NOT NULL default '', ULBandwidth smallint(5) NOT NULL default '0', DLBandwidth smallint(5) NOT NULL default '0', Comment tinytext NOT NULL, IPaccess varchar(15) NOT NULL default '*', QuotaSize smallint(5) NOT NULL default '0', QuotaFiles int(11) NOT NULL default 0, PRIMARY KEY (User), UNIQUE KEY User (User) ) ENGINE=InnoDB; Page 3 sur 7
Si vous faites un show tables ;» vous verrez la table «ftpd». Quittez MySQL. MySQL.conf Ajouter ou modifier le fichier de la façon suivante : MYSQLServer localhost MYSQLPort 3306 # MYSQLSocket /var/run/mysqld/mysqld.sock MYSQLUser pureftpd MYSQLPassword not24get MYSQLDatabase pureftpd MYSQLCrypt any MYSQLGetPW SELECT Password FROM ftpd WHERE User="\L" AND MYSQLGetUID SELECT Uid FROM ftpd WHERE User="\L" AND Status="1" AND (IPaccess="*" OR IPaccess LIKE "\R") MYSQLDefaultUID 500 MYSQLGetGID SELECT Gid FROM ftpd WHERE User="\L" AND Status="1" AND (IPaccess="*" OR IPaccess LIKE "\R") MYSQLDefaultGID 500 MYSQLGetDir SELECT Dir FROM ftpd WHERE User="\L" AND Status="1" AND (IPaccess="*" OR IPaccess LIKE "\R") MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User="\L" AND MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User="\L" AND MySQLGetQTASZ SELECT QuotaSize FROM ftpd WHERE User="\L" AND MySQLGetQTAFS SELECT QuotaFiles FROM ftpd WHERE User="\L" AND MySQLTransactions On Configuration Pure-Ftpd : Passez les commandes : echo "yes" >/etc/pure-ftpd/conf/allowdotfiles echo "no" >/etc/pure-ftpd/conf/anonymouscancreatedirs echo "yes" >/etc/pure-ftpd/conf/anonymouscantupload echo "no" >/etc/pure-ftpd/conf/anonymousonly echo "yes" >/etc/pure-ftpd/conf/antiwarez echo "no" >/etc/pure-ftpd/conf/brokenclientscompatibility echo "yes" >/etc/pure-ftpd/conf/chrooteveryone echo "no" >/etc/pure-ftpd/conf/createhomedir echo "yes" >/etc/pure-ftpd/conf/displaydotfiles Page 4 sur 7
echo "yes" >/etc/pure-ftpd/conf/dontresolve echo "20000 10" >/etc/pure-ftpd/conf/limitrecursion echo "30" >/etc/pure-ftpd/conf/maxclientsnumber echo "5" >/etc/pure-ftpd/conf/maxclientsperip echo "15" >/etc/pure-ftpd/conf/maxidletime echo "500" >/etc/pure-ftpd/conf/minuid echo "no" >/etc/pure-ftpd/conf/nochmod echo "no" >/etc/pure-ftpd/conf/pamauthentication echo "ftp" >/etc/pure-ftpd/conf/syslogfacility echo "113 002" >/etc/pure-ftpd/conf/umask echo "no" >/etc/pure-ftpd/conf/verboselog Activer la configuration MySQL : Vérifiez que vous pouvez vous connecter à MySQL avec la commande : mysql -u pureftpd -h localhost -p pureftpd Enfin redémarrez les services : service pure-ftpd-mysql restart Ajoutez des utilisateurs capables d utiliser le service FTP : Par exemple rentrez la commande suivante : mysql -u pureftpd -p pureftpd -e "INSERT INTO ftpd (User, Status, Password, Uid, Gid, Dir, Comment) VALUES ('toto','1',password('not24get'),'500','500','/srv/ftp/toto','utilis ateur toto');" Changer le dossier de destination des utilisateurs du FTP : Ici les utilisateurs sont automatiquement redirigés vers leur HOME lorsqu ils font du FTP. Dans le cadre du projet GSB il faut qu ils atterrissent tous au même endroit. Nous allons créer le dossier de destination suivant : mkdir p /home/gsb/partage/comptes-rendu Ensuite il suffit de modifier le «Dir» dans la table ftpd de la façon suivante : mysql -u pureftpd -p pureftpd use pureftpd; UPDATE 'ftpd' SET 'Dir'= /home/gsb WHERE 'User'= toto ; Page 5 sur 7
Se connecter au serveur FTP en tant que client : Vous pouvez d abord télécharger un logiciel client de FTP tel que Filezilla. Il vous suffit ensuite de rentrer vos informations de connexion au serveur FTP, adresse ip du serveur, nom d utilisateur, mot de passe et port utilisé (par défaut le 21). Vous pouvez ensuite uploader ou télécharger des fichiers par un simple cliqué-glissé. Port à autoriser Si dans votre réseau vous passer par un pare-feu vous devrez ouvrir les ports 20 et 21. De plus le FTP en mode passif qu utilise Filezilla par défaut à besoin d accéder à une range de ports qui est définie sur le serveur FTP. Sur le serveur FTP rendez vous dans /etc/pure-ftpd/conf/ et faite un : nano PassivePortRange Page 6 sur 7
Précisez ensuite la range de port que vous utiliserez pour le mode passif, comme ceci par exemple : Ici le FTP en mode passif utilisera les ports 50000 à 50100. Enregistrez le fichier et rendez vous sur votre pare-feu pour définir les règles adéquates. Page 7 sur 7