Comment créer un serveur ftp

De Free 4 Funs
Révision de 9 mai 2015 à 10:56 par Let's Go (discuter | contributions) (Configuration avec MySQL)

Aller à : navigation, rechercher
Proftpd.jpg

Introduction

Ce Tutoriel a été réalisé afin de vous montrez comment installer un serveur FTP ainsi que d'ajouter des utilisateurs sur votre serveur dédié.

Installation Standalone

Requis

Installation avec MySQL

Requis

  • Un serveur MySQL

Pensez à mettre à jour votre machine.

Installation

Deux choix vous seront proposés :

  • inetd Icon11.gif Le serveur FTP sera démarré à la demande (l'idéal si vous ne l'utiliser pas régulièrement)
  • indépendamment Icon11.gif Le serveur FTP sera démarré de façon permanente et donc toute connexion entrante sera accepté (l'idéal si vous l'utiliser régulièrement).

Exécuter :

apt-get install proftpd proftpd-mod-mysql

Nous choisissons le choix 2.


Configuration avec MySQL

nano /etc/proftpd/proftpd.conf

Personnaliser le message d'accueil :

ServerName "Serveur FTP by Free 4 Funs"

Lorsque vous ou d'autres se connecteront notamment via Filezilla à leur ftp ils auront ce message qui s'affichera.

Vérifiez bien que ServerType soit sur standalone bien que celle-ci est par défaut !

Trouvez la ligne

   DefaultRoot ~

Retirer le symbole #

Activer cette fonction empêchera les utilisateurs de naviguer sur le FTP des autres utilisateurs, il sera bloqué dans son répertoire pour résumé.

Chercher (ligne 133):

   #Include /etc/proftpd/sql.conf

Remplacer par :

   Include /etc/proftpd/sql.conf

Chercher (ligne 38):

   # RequireValidShell

Remplacer par :

   RequireValidShell

Une fois les modifications faites vous faite la manipulation clavier CTRL + X ensuite vous appuyez sur o et validez par la touche Entrée.

On active le module SQL pour le serveur FTP :

   nano /etc/proftpd/modules.conf

Chercher (ligne 22):

   #LoadModule mod_sql.c

Remplacer par :

   LoadModule mod_sql.c

Chercher (ligne 38):

   #LoadModule mod_sql_mysql.c

Remplacer par :

   LoadModule mod_sql_mysql.c


On modifie la configuration MySQL :

   nano /etc/proftpd/sql.conf

Active l'authentification MySQL Chercher :

   #SQLBackend

Remplacer par :

   SQLBackend

Mot de passe crypté Chercher :

   #SQLAuthTypes

Remplacer par :

   SQLAuthTypes

Information de connexion Chercher :

   #SQLConnectInfo proftpd@sql.example.com proftpd_user proftpd_password

Remplacer par :

   SQLConnectInfo proftpd@localhost_ou_AdresseIP votre_user votre_mot_de_passe

Structure de la table utilisateur Chercher :

   #SQLUserInfo users userid passwd uid gid homedir shell

Remplacer par :

   SQLUserInfo users userid passwd uid gid homedir shell

Structure de la table des groupes

Chercher :

   #SQLGroupInfo groups groupname gid members

Remplacer par :

   SQLGroupInfo groups groupname gid members

Ajouter à la fin :

   SQLDefaultUID   2001
   SQLDefaultGID   2001

2001 correspond à l'UID et GID définis ci-dessous donc pensez à le modifier si vous n'appliquez pas le tutoriel dans son intégralité.

Création d'un utilisateur et de son groupe :

   groupadd -g 2001 ftpgroup
   useradd -u 2001 -s /bin/false -d /bin/null -c "Utilisateur ProFTPD" -g ftpgroup votre_user_ftp

Création de la base de donnée :

   mysql -uroot -pvotre_mot_de_passe
   CREATE DATABASE IF NOT EXISTS proftpd;

Créez la table pour la liste des groupes PENSER A MODIFIER ftpgroup par le votre

   CREATE TABLE ftpgroup (
groupname varchar(16) NOT NULL default ,
gid smallint(6) NOT NULL default '2001',
members varchar(16) NOT NULL default ,
KEY groupname (groupname)
   ) ENGINE=MyISAM COMMENT='ProFTP group table';


Créez la table pour la liste des utilisateurs PENSER A MODIFIER ftpuser par le votre

   CREATE TABLE ftpuser (
id int(10) unsigned NOT NULL auto_increment,
userid varchar(32) NOT NULL default ,
passwd varchar(32) NOT NULL default ,
uid smallint(6) NOT NULL default '2001',
gid smallint(6) NOT NULL default '2001',
homedir varchar(255) NOT NULL default ,
shell varchar(16) NOT NULL default '/sbin/nologin',
count int(11) NOT NULL default '0',
accessed datetime NOT NULL default '0000-00-00 00:00:00',
modified datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (id),
UNIQUE KEY userid (userid)
   ) ENGINE=MyISAM COMMENT='ProFTP user table';


Mettre le groupe dans la table "ftpgroup"

   INSERT INTO `ftpgroup` (`groupname`, `gid`, `members`) VALUES ('ftpgroup', 2001, 'ftpuser');

Mettre un utilisateur dans la table "ftpuser", son nom est "domain.tld", son mot de passe "password", et il a accès uniquement au dossier /var/www/sites/domain.tld/. Vous devrez naturellement créer ce dossier avant de continuer. PENSER A MODIFIER les valeurs : votredomain.com, password et /var/www/sites/domain.tld/ (emplacement de votre site web)

   INSERT INTO `ftpuser` (`id`, `userid`, `passwd`, `uid`, `gid`, `homedir`, `shell`, `count`, `accessed`, `modified`) VALUES (, 'votredomain.com', ENCRYPT('password'), 2001, 2001, '/var/www/sites/domain.tld/', '/sbin/nologin', 0, , );

EN COURS DE REDACTION

--

Configuration

nano /etc/proftpd/proftpd.conf

Si vous n'utilisez pas IPV6, vous pouvez le désactiver :

 UseIPv6                         off

Personnaliser le message d'accueil :

ServerName                      "Serveur FTP by Free 4 Funs"

Lorsque vous ou d'autres se connecteront notamment via Filezilla a leur ftp ils auront ce message qui s'affichera. Vous n'êtes pas obligé de le modifier, c'est juste une personnalisation.

Vérifiez bien que ServerType soit sur standalone bien que celle-ci est par défaut !

Trouvez la ligne

  1. DefaultRoot ~

Retirer le symbole #

Activer cette fonction empêchera les utilisateurs de naviguer sur le FTP des autres utilisateurs, il sera bloqué dans son répertoire pour résumé.

Une fois les modifications faites vous faite la manipulation clavier CTRL + X ensuite vous appuyez sur "o" et validez par la touche Entrée.

On redémarre le serveur FTP

/etc/init.d/proftpd restart

Créer un compte ftp

adduser wiki

Il vous demandera ensuite le mot de passe et la confirmation.

Des informations complémentaires vous seront demandées, ignorer ces étapes en appuyant sur la touche Entrée jusqu’à ce qu'il vous demande d'appuyer sur O ou n, vous ferez donc o puis Entrée.

Avec cette méthode, l'utilisateur n'aura accès qu'à son dossier (/home/wiki).

Vous pouvez également créer un utilisateur qui aura un accès spécifique à son dossier. Par exemple /var/www/votredomaine.fr

Pour créer ce genre de compte il vous suffit de taper :

mkdir -p /var/www/votredomaine.fr
adduser wiki --home /var/www/votredomaine.fr


Installation avec MySQL

Requis

 * Un serveur MySQL

Pensez à mettre à jour votre machine.

Deux choix vous seront proposés :

 * inetd Icon11.gif Le serveur FTP sera démarré à la demande (l'idéal si vous ne l'utiliser pas régulièrement)
 * indépendamment Icon11.gif Le serveur FTP sera démarré de façon permanente et donc toute connexion entrante sera accepté (l'idéal si vous l'utiliser régulièrement).

Exécuter :

apt-get install proftpd proftpd-mod-mysql

Nous choisissons le choix 2.

Configuration avec MySQL

   nano /etc/proftpd/proftpd.conf

Personnaliser le message d'accueil :

   ServerName                      "Serveur FTP by Free 4 Funs"

Lorsque vous ou d'autres se connecteront notamment via Filezilla à leur ftp ils auront ce message qui s'affichera.

Vérifiez bien que ServerType soit sur standalone bien que celle-ci est par défaut !

Trouvez la ligne

   DefaultRoot ~

Retirer le symbole #

Activer cette fonction empêchera les utilisateurs de naviguer sur le FTP des autres utilisateurs, il sera bloqué dans son répertoire pour résumé.

Chercher (ligne 133):

   #Include /etc/proftpd/sql.conf

Remplacer par :

   Include /etc/proftpd/sql.conf

Chercher (ligne 38):

   # RequireValidShell

Remplacer par :

   RequireValidShell

Une fois les modifications faites vous faite la manipulation clavier CTRL + X ensuite vous appuyez sur o et validez par la touche Entrée.

On active le module SQL pour le serveur FTP :

   nano /etc/proftpd/modules.conf

Chercher (ligne 22):

   #LoadModule mod_sql.c

Remplacer par :

   LoadModule mod_sql.c

Chercher (ligne 38):

   #LoadModule mod_sql_mysql.c

Remplacer par :

   LoadModule mod_sql_mysql.c


On modifie la configuration MySQL :

   nano /etc/proftpd/sql.conf

Active l'authentification MySQL Chercher :

   #SQLBackend

Remplacer par :

   SQLBackend

Mot de passe crypté Chercher :

   #SQLAuthTypes

Remplacer par :

   SQLAuthTypes

Information de connexion Chercher :

   #SQLConnectInfo proftpd@sql.example.com proftpd_user proftpd_password

Remplacer par :

   SQLConnectInfo proftpd@localhost_ou_AdresseIP votre_user votre_mot_de_passe

Structure de la table utilisateur Chercher :

   #SQLUserInfo users userid passwd uid gid homedir shell

Remplacer par :

   SQLUserInfo users userid passwd uid gid homedir shell

Structure de la table des groupes

Chercher :

   #SQLGroupInfo groups groupname gid members

Remplacer par :

   SQLGroupInfo groups groupname gid members

Ajouter à la fin :

   SQLDefaultUID   2001
   SQLDefaultGID   2001

2001 correspond à l'UID et GID définis ci-dessous donc pensez à le modifier si vous n'appliquez pas le tutoriel dans son intégralité.

Création d'un utilisateur et de son groupe :

   groupadd -g 2001 ftpgroup
   useradd -u 2001 -s /bin/false -d /bin/null -c "Utilisateur ProFTPD" -g ftpgroup votre_user_ftp

Création de la base de donnée :

   mysql -uroot -pvotre_mot_de_passe
   CREATE DATABASE IF NOT EXISTS proftpd;

Créez la table pour la liste des groupes PENSER A MODIFIER ftpgroup par le votre

   CREATE TABLE ftpgroup (
groupname varchar(16) NOT NULL default ,
gid smallint(6) NOT NULL default '2001',
members varchar(16) NOT NULL default ,
KEY groupname (groupname)
   ) ENGINE=MyISAM COMMENT='ProFTP group table';


Créez la table pour la liste des utilisateurs PENSER A MODIFIER ftpuser par le votre

   CREATE TABLE ftpuser (
id int(10) unsigned NOT NULL auto_increment,
userid varchar(32) NOT NULL default ,
passwd varchar(32) NOT NULL default ,
uid smallint(6) NOT NULL default '2001',
gid smallint(6) NOT NULL default '2001',
homedir varchar(255) NOT NULL default ,
shell varchar(16) NOT NULL default '/sbin/nologin',
count int(11) NOT NULL default '0',
accessed datetime NOT NULL default '0000-00-00 00:00:00',
modified datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (id),
UNIQUE KEY userid (userid)
   ) ENGINE=MyISAM COMMENT='ProFTP user table';


Mettre le groupe dans la table "ftpgroup"

   INSERT INTO `ftpgroup` (`groupname`, `gid`, `members`) VALUES ('ftpgroup', 2001, 'ftpuser');

Mettre un utilisateur dans la table "ftpuser", son nom est "domain.tld", son mot de passe "password", et il a accès uniquement au dossier /var/www/sites/domain.tld/. Vous devrez naturellement créer ce dossier avant de continuer. PENSER A MODIFIER les valeurs : votredomain.com, password et /var/www/sites/domain.tld/ (emplacement de votre site web)

   INSERT INTO `ftpuser` (`id`, `userid`, `passwd`, `uid`, `gid`, `homedir`, `shell`, `count`, `accessed`, `modified`) VALUES (, 'votredomain.com', ENCRYPT('password'), 2001, 2001, '/var/www/sites/domain.tld/', '/sbin/nologin', 0, , );

EN COURS DE REDACTION

--