« ProFTPd » : différence entre les versions

De NCad Wiki
Aller à la navigation Aller à la recherche
Ligne 7 : Ligne 7 :
== Installation ==
== Installation ==


=== Service FTP ===
* '''proFTPd''' est inclut dans les dépôts d''''apt-get''' :
 
proFTPd est inclut dans les dépôts d'apt-get.


{{ Box_Console | objet=apt-get install proftpd }}
{{ Box_Console | objet=apt-get install proftpd }}


<br />
== Paramétrage ==
 
{{ Box_Information | objet=Il existe une interface graphique pour gérer le service. Cependant, nous n'aborderons pas ici comment utiliser cette interface. }}


=== Connexion au serveur ===
=== Connexion au serveur ===


Le service FTP exploite le protocole tcp et écoute sur deux ports :
* Le service FTP exploite le protocole tcp et écoute sur deux ports :
* '''TCP 20 :''' pour le transfert de fichiers;
** '''TCP 20 :''' pour le transfert de fichiers;
* '''TCP 21 :''' pour l'authentification.
** '''TCP 21 :''' pour l'authentification.


Cependant, si le serveur est hébergé derrière un firewall faisant du nat, il sera indispensable de mettre en place des ports d'écoute supplémentaires pour le mode passif.
* Cependant, si le serveur est hébergé derrière un pare-feu faisant du '''nat''', il sera indispensable de mettre en place des ports d'écoute supplémentaires pour le '''mode passif'''.


Editer le fichier de configuration '''/etc/proftpd/proftpd.conf''' puis renseigner les deux lignes suivantes :
* Editer le fichier de configuration '''/etc/proftpd/proftpd.conf''' puis renseigner les deux lignes suivantes :
  PassivePorts 5000 5020        # choisir une plage de port supérieur à 1024.
  PassivePorts 5000 5020        # choisir une plage de port supérieur à 1024.
  MasqueradeAddress 193.55.12.65 # adresse IP publique
  MasqueradeAddress 193.55.12.65 # adresse IP publique
Ligne 33 : Ligne 29 :
=== Limiter les vus des répertoires ===
=== Limiter les vus des répertoires ===


Par défaut, les utilisateurs ont une vue de l'arborescence complète du disque. Pour limiter cette vue uniquement à leur répertoire, il suffit de dé-commenter la ligne suivante :
* Par défaut, les utilisateurs ont une vue de l''''arborescence complète''' du disque. Pour limiter cette vue uniquement à leur répertoire '''home''', il suffit de dé-commenter la ligne suivante :
  DefaultRoot                    ~
  DefaultRoot                    ~


=== Module Sql ===
=== Module Sql ===


Le module sql permet de déporter l'authentification sur une base de données SQL. Dans notre cas, nous utiliserons une base de type MySQL.
* Le module sql permet de déporter l'authentification sur une base de données SQL. Dans notre cas, nous utiliserons une base de type MySQL.


{{ Box_Console | objet=apt-get install proftpd-mod-mysql }}
{{ Box_Console | objet=apt-get install proftpd-mod-mysql }}
Ligne 46 : Ligne 42 :
==== Création des tables ====
==== Création des tables ====


Créer une base de données pour le service proFTPd. Lors de l'authentification, ce dernier ira consulter deux tables :
* Créer une '''base de données''' pour le service '''proFTPd'''. Lors de l'authentification, ce dernier ira consulter deux tables :
* users
** users
* groups
** groups


Voici, la structure de ces tables et la requêtes Sql pour leur création :
* Voici, la structure de ces tables et la requêtes Sql pour leur création :


  CREATE TABLE users (
  CREATE TABLE users (
Ligne 69 : Ligne 65 :
==== Activation de l'authentification MySQL ====
==== Activation de l'authentification MySQL ====


Le service proFTPd doit disposer de trois modules pour gérer l'authentification via une base de données sql/mysql. Pour cela, éditer le fichier de configuration '''/etc/proftpd/modules.conf''' et décommenter les lignes suivantes :
* Le service '''proFTPd''' doit disposer de trois modules pour gérer l''''authentification''' via une base de données '''sql/mysql'''. Pour cela, éditer le fichier de configuration '''/etc/proftpd/modules.conf''' et décommenter les lignes suivantes :
  LoadModule mod_sql.c
  LoadModule mod_sql.c
  LoadModule mod_sql_mysql.c
  LoadModule mod_sql_mysql.c
Ligne 76 : Ligne 72 :
==== Paramètres d'accès à la base ====
==== Paramètres d'accès à la base ====


Pour permettre au service proFTPd d'interroger la base de données MySQL, il faut lui indiquer les informations de connexion et les méthodes d'authentification dans le fichier '''/etc/proftpd/sql.conf''' :
* Pour permettre au service '''proFTPd''' d'interroger la '''base de données MySQL''', il faut lui indiquer les informations de connexion et les méthodes d'authentification dans le fichier '''/etc/proftpd/sql.conf''' :
  <IfModule mod_sql.c>
  <IfModule mod_sql.c>
  SQLBackend mysql
  SQLBackend mysql

Version du 13 juillet 2024 à 22:19

Présentation

proFTPd est un serveur de fichiers basé sur le protocole FTP (File Transfer Protocol).

Le protocole FTP est un protocole non sécurisé. Pour cette raison, il est à proscrire. Préférer l'utilisation de SFTP. Pour de plus amples informations, reportez-vous à l'article Configuration du service SSH pour SFTP

Installation

  • proFTPd est inclut dans les dépôts d'apt-get :

apt-get install proftpd

Paramétrage

Connexion au serveur

  • Le service FTP exploite le protocole tcp et écoute sur deux ports :
    • TCP 20 : pour le transfert de fichiers;
    • TCP 21 : pour l'authentification.
  • Cependant, si le serveur est hébergé derrière un pare-feu faisant du nat, il sera indispensable de mettre en place des ports d'écoute supplémentaires pour le mode passif.
  • Editer le fichier de configuration /etc/proftpd/proftpd.conf puis renseigner les deux lignes suivantes :
PassivePorts 5000 5020         # choisir une plage de port supérieur à 1024.
MasqueradeAddress 193.55.12.65 # adresse IP publique
Un utilisateur exploitera 5 slots pour le transfert de fichier. Dans l'exemple ci-dessus, 4 utilisateurs maximum pourront effectuer des transferts de fichier.

Limiter les vus des répertoires

  • Par défaut, les utilisateurs ont une vue de l'arborescence complète du disque. Pour limiter cette vue uniquement à leur répertoire home, il suffit de dé-commenter la ligne suivante :
DefaultRoot                     ~

Module Sql

  • Le module sql permet de déporter l'authentification sur une base de données SQL. Dans notre cas, nous utiliserons une base de type MySQL.

apt-get install proftpd-mod-mysql

Authentification Sql

Création des tables

  • Créer une base de données pour le service proFTPd. Lors de l'authentification, ce dernier ira consulter deux tables :
    • users
    • groups
  • Voici, la structure de ces tables et la requêtes Sql pour leur création :
CREATE TABLE users (
   userid VARCHAR(30) NOT NULL UNIQUE,
   passwd VARCHAR(80) NOT NULL,
   uid INTEGER UNIQUE,
   gid INTEGER,
   homedir VARCHAR(255),
   shell VARCHAR(255)
 )
CREATE TABLE groups (
   groupname VARCHAR(30) NOT NULL,
   gid INTEGER NOT NULL,
   members VARCHAR(255)
 )

Activation de l'authentification MySQL

  • Le service proFTPd doit disposer de trois modules pour gérer l'authentification via une base de données sql/mysql. Pour cela, éditer le fichier de configuration /etc/proftpd/modules.conf et décommenter les lignes suivantes :
LoadModule mod_sql.c
LoadModule mod_sql_mysql.c
LoadModule mod_sql_passwd.c

Paramètres d'accès à la base

  • Pour permettre au service proFTPd d'interroger la base de données MySQL, il faut lui indiquer les informations de connexion et les méthodes d'authentification dans le fichier /etc/proftpd/sql.conf :
<IfModule mod_sql.c>
SQLBackend mysql
SQLEngine on
SQLAuthenticate on
SQLAuthTypes Crypt Plaintext

# Paramètres de connexion à la base à adapter :
SQLConnectInfo user_proftpd@serveur_sql db_proftps passwd_proftpd
#

SQLUserInfo users userid passwd uid gid homedir shell
SQLGroupInfo groups groupname gid members

</IfModule>

À Propos