Installer et configurer une solution FTP Version : 2.0 Groupe : David LE FLEM, Guillaume RIVIERE, Gwendal PELARD Date : 11/03/2016 Page 1 sur 8
Sommaire Création d un utilisateur :... 3 Installation de pure-ftpd et MySQL... 3 Création d une base MySQL... 3 MySQL.conf... 4 Configuration Pure-Ftpd :... 5 Activer la configuration MySQL :... 5 Ajoutez des utilisateurs capables d utiliser le service FTP :... 5 Changer le dossier de destination des utilisateurs du FTP :... 6 Comptes FTP administrateur :... 6 Se connecter au serveur FTP en tant que client :... 7 Port à autoriser... 7 Page 2 sur 8
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 : Commencez par vous connecter au serveur WEB en SSH : Ip : 172.17.0.2 Identifiant : root Mot de passe : P@ssw0rd 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, Page 3 sur 8
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; Si vous faites un show tables ;» vous verrez la table «ftpd». Quittez MySQL : exit ; MySQL.conf Faites un nano de «/etc/pure-ftpd/db/mysql.conf» et ajoutez ou modifiez le fichier MySQL.conf 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 Page 4 sur 8
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 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');" Page 5 sur 8
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 que les visiteurs médicaux 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 ; Comptes FTP administrateur : Nous allons créer un profil administrateur de la façon suivante : "INSERT INTO ftpd (User, Status, Password, Uid, Gid, Dir, Comment) VALUES('admin','1',PASSWORD('not24get'),'0','0','/','Administrateur' );" De ce fait il atterira à la racine du serveur WEB et pourra ainsi faire toutes les modifications qu il desire, comme par exemple uploader de nouvelles pages WEB. Page 6 sur 8
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 : echo "50000 50100" >/etc/pure-ftpd/conf/passiveportrange Page 7 sur 8
Le fichier sera créé comme ci-dessous : Ici le FTP en mode passif utilisera les ports 50000 à 50100. Maintenant rendez vous sur le pare-feu pour définir les règles adéquates. Page 8 sur 8