« ProFTPd » : différence entre les versions

De NCad Wiki
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
 
(2 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
{{Serveur Web}}
== Présentation ==
== Présentation ==


'''proFTPd''' est un serveur de fichiers basé sur le protocole '''FTP ''(File Transfer Protocol)'''''.
'''proFTPd''' est un serveur de fichiers basé sur le protocole '''FTP ''(File Transfer Protocol)'''''.
{{ Box Attention | objet=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 [[:Installer_Apache2#Configuration_du_service_SSH_pour_SFTP|Configuration du service SSH pour SFTP]]}}


== 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 31 : Ligne 31 :
=== 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 44 : Ligne 44 :
==== 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 67 : Ligne 67 :
==== 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 74 : Ligne 74 :
==== 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

Dernière version du 13 juillet 2024 à 22:19

Serveur Web

Installation d'Apache2 Paramétrage courant

Certificats SSL Web | .htaccess | Authentification par carte à puce | Certificats Let's Encrypt


Archives : Ancien article sur Apache2 | Module Whois | ProFTPd


Note de version

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