Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
linux:proftpd [2009/07/22 00:59] matthieu |
linux:proftpd [2011/01/08 15:24] (Version actuelle) matthieu |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag>fr fr:linux fr:serveur fr:transfert_de_fichier}} | ||
====== Proftpd ====== | ====== Proftpd ====== | ||
Proftpd est un serveur FTP offrant de nombreuses fonctions. | Proftpd est un serveur FTP offrant de nombreuses fonctions. | ||
Ci dessous est expliquée l'intallation d'un FTP utilisant une authentification LDAP ou Mysql. | Ci dessous est expliquée l'intallation d'un FTP utilisant une authentification LDAP ou Mysql. | ||
- | |||
- | Utilisé pour le [[bender]]. | ||
===== Principaux avantages ===== | ===== Principaux avantages ===== | ||
Ligne 44: | Ligne 43: | ||
===== Configuration générale ===== | ===== Configuration générale ===== | ||
- | Après une installation standard, voici quelques paramètres à modifier dans /etc/proftpd/proftpd.conf | + | Après une installation standard, voici quelques paramètres à modifier dans ///etc/proftpd/proftpd.conf// |
* modifier le nom du serveur : | * modifier le nom du serveur : | ||
Ligne 132: | Ligne 131: | ||
</code> | </code> | ||
- | * editier /etc/proftpd/proftpd.conf et décommenter la ligne : | + | * editier ///etc/proftpd/proftpd.conf// et décommenter la ligne : |
Include /etc/proftpd/tls.conf | Include /etc/proftpd/tls.conf | ||
- | * dans /etc/proftpd/tls.conf, décommenter les lignes : | + | * dans ///etc/proftpd/tls.conf//, décommenter les lignes : |
<code> | <code> | ||
TLSEngine on | TLSEngine on | ||
Ligne 146: | Ligne 145: | ||
</code> | </code> | ||
- | * toujours dans /etc/proftpd/tls.conf, indiquer les fichiers de clef et de certificat : | + | * toujours dans ///etc/proftpd/tls.conf//, indiquer les fichiers de clef et de certificat : |
<code> | <code> | ||
TLSRSACertificateFile /etc/proftpd/ftp.bouthors.fr.crt | TLSRSACertificateFile /etc/proftpd/ftp.bouthors.fr.crt | ||
Ligne 155: | Ligne 154: | ||
Pour un exemple de configuration de client ftp en ftps, voir [[desktop:filezilla]]. | Pour un exemple de configuration de client ftp en ftps, voir [[desktop:filezilla]]. | ||
+ | |||
+ | :!: Un mise à jour récente provoque un blocage de la négociation TLS.\\ | ||
+ | Message d'erreur : mod_tls/2.2.2: client-initiated session renegotiation detected, aborting connection\\ | ||
+ | Solution : ajouter l'option "TLSOptions AllowClientRenegotiations"\\ | ||
+ | Plus d'info : http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=558597 | ||
===== Authentification LDAP ===== | ===== Authentification LDAP ===== | ||
Ligne 166: | Ligne 170: | ||
Pour pouvoir utiliser l'authentification LDAP, installer le paquet proftpd-mod-ldap. | Pour pouvoir utiliser l'authentification LDAP, installer le paquet proftpd-mod-ldap. | ||
- | ==== Activation de le LDAP ==== | + | ==== Activation de l'authentification LDAP ==== |
- | Dans /etc/proftpd/modules.conf, décommenter : | + | Dans ///etc/proftpd/modules.conf//, décommenter : |
LoadModule mod_ldap.c | LoadModule mod_ldap.c | ||
- | Dans /etc/proftpd/proftpd.conf, décommenter : | + | Dans ///etc/proftpd/proftpd.conf//, décommenter : |
Include /etc/proftpd/ldap.conf | Include /etc/proftpd/ldap.conf | ||
==== Configuration ==== | ==== Configuration ==== | ||
- | Dans /etc/proftpd/proftpd.conf, effectuer la configuration suivante : | + | Dans ///etc/proftpd/proftpd.conf//, effectuer la configuration suivante : |
* AuthOrder active et définit l'ordre les authentifications. | * AuthOrder active et définit l'ordre les authentifications. | ||
Ligne 188: | Ligne 192: | ||
- | Dans /etc/proftpd/ldap.conf, effectuer la configuration suivante : | + | Dans ///etc/proftpd/ldap.conf//, effectuer la configuration suivante : |
* Nom/IP du serveur ldap avec LDAPServer : | * Nom/IP du serveur ldap avec LDAPServer : | ||
Ligne 221: | Ligne 225: | ||
==== Configuration des restrictions ==== | ==== Configuration des restrictions ==== | ||
- | En utilisant les directives Directory et Limit, il est possible de limiter les accès au serveur FTP dans /etc/proftpd/proftpd.conf. | + | En utilisant les directives Directory et Limit, il est possible de limiter les accès au serveur FTP dans ///etc/proftpd/proftpd.conf//. |
Voici un exemple simple qui limite l'accès au serveur FTP aux seuls membres du groupe "ftp" : | Voici un exemple simple qui limite l'accès au serveur FTP aux seuls membres du groupe "ftp" : | ||
Ligne 295: | Ligne 299: | ||
===== Authentification SQL ===== | ===== Authentification SQL ===== | ||
+ | :!: Paragraphe archivé non mis à jour. | ||
+ | |||
Cette partie décrit comment configurer l'authentification SQL. Etant donné que j'utilise actuellement LDAP, il se peut que la configuration différe dans les nouvelles versions. | Cette partie décrit comment configurer l'authentification SQL. Etant donné que j'utilise actuellement LDAP, il se peut que la configuration différe dans les nouvelles versions. | ||
==== Installation ==== | ==== Installation ==== | ||
Afin d'activer le support de mysql, il faut ajouter le paquet : | Afin d'activer le support de mysql, il faut ajouter le paquet : | ||
- | * proftpd-mysql | + | * proftpd-mod-mysql |
Concernant la création des utilisateurs, voir [[authent_sql|Utiliser une base sql pour l'authentification]]. | Concernant la création des utilisateurs, voir [[authent_sql|Utiliser une base sql pour l'authentification]]. | ||
- | ==== Configuration ==== | + | ==== Activation de l'authentification SQL ==== |
+ | Dans ///etc/proftpd/modules.conf//, décommenter : | ||
+ | LoadModule mod_sql.c | ||
- | === RequireValidShell === | + | Dans ///etc/proftpd/proftpd.conf//, décommenter : |
- | Si vous utilisez des shells invalides pour vos utilisateurs ftp (pour éviter qu'ils se loguent), désactivez la validation du shell : | + | Include /etc/proftpd/sql.conf |
- | RequireValidShell off | + | |
- | === AuthPAM === | + | ==== Configuration ==== |
- | Pour désactiver le PAM (qui permet d'utiliser l'authentification classique du Linux), utilisez l'option suivante : | + | Dans ///etc/proftpd/proftpd.conf//, effectuer la configuration suivante : |
- | AuthPAM off | + | * AuthOrder active et définit l'ordre les authentifications. |
- | === AuthOrder === | ||
- | AuthOrder active et définit l'ordre les authentifications. | ||
AuthOrder mod_sql.c mod_auth_unix.c | AuthOrder mod_sql.c mod_auth_unix.c | ||
mod_auth_unix.c est utilisé pour récupérer le nom des groupes ainsi que pour authentifier les utilisateurs du système. | mod_auth_unix.c est utilisé pour récupérer le nom des groupes ainsi que pour authentifier les utilisateurs du système. | ||
- | === SQLConnectInfo === | + | * Pour désactiver le PAM (qui permet d'utiliser l'authentification classique du Linux), ajouter l'option suivante : |
- | SQLConnectInfo définit la connexion SQL : le serveur, la base de données, l'utilisateur et son mot de passe. | + | |
+ | AuthPAM off | ||
+ | |||
+ | * Si vous utilisez des shells invalides, désactiver la validation du shell pour le FTP en décommentant : | ||
+ | |||
+ | RequireValidShell off | ||
+ | |||
+ | Dans ///etc/proftpd/sql.conf//, effectuer la configuration suivante : | ||
+ | * SQLConnectInfo définit la connexion SQL : le serveur, la base de données, l'utilisateur et son mot de passe. | ||
SQLConnectInfo users@localhost proftpd ***password*** | SQLConnectInfo users@localhost proftpd ***password*** | ||
- | === SQLUserInfo === | + | * SQLUserInfo définit la table qui contient les utilisateurs : |
- | SQLUserInfo définit la table qui contient les utilisateurs : | + | - le nom de la table |
- | - le nom de la table | + | - la colonne des utilisateurs |
- | - la colonne des utilisateurs | + | - la colonne des mots de passe |
- | - la colonne des mots de passe | + | - la colonne des UID |
- | - la colonne des UID | + | - la colonne des GID |
- | - la colonne des GID | + | - la colonne des répertoires utilisateurs |
- | - la colonne des répertoires utilisateurs | + | - la colonne des shells+ |
- | - la colonne des shells+ | + | |
SQLUserInfo auth username password uid gid homedir shell | SQLUserInfo auth username password uid gid homedir shell | ||
- | === SQLAuthTypes === | + | * SQLAuthTypes définit le type de cryptage utilisé pour les mots de passe : |
- | SQLAuthTypes définit le type de cryptage utilisé pour les mots de passe : | + | |
SQLAuthTypes Crypt | SQLAuthTypes Crypt | ||
- | === SQLAuthenticate === | + | * SQLAuthenticate définit comment le mod SQL doit authentifier : |
- | SQLAuthenticate définit comment le mod SQL doit authentifier : | + | |
SQLAuthenticate users* usersetfast | SQLAuthenticate users* usersetfast | ||
+ | |||
Dans cet exemple, on demande une authentification uniquement des utilisateurs (sans table de groupe) en indiquant une optimisation des requetes SQL au détriment de la mémoire. | Dans cet exemple, on demande une authentification uniquement des utilisateurs (sans table de groupe) en indiquant une optimisation des requetes SQL au détriment de la mémoire. | ||
- | === SQLNamedQuery === | + | * SQLNamedQuery permet de définir des requêtes SQL utilisée par les options ci-après : |
- | SQLNamedQuery permet de définir des requêtes SQL utilisée par les options ci-après : | + | |
SQLNamedQuery updatecount UPDATE "count=count+1 WHERE username='%u'" auth | SQLNamedQuery updatecount UPDATE "count=count+1 WHERE username='%u'" auth | ||
SQLNamedQuery count SELECT "count from auth where username='%u'" | SQLNamedQuery count SELECT "count from auth where username='%u'" | ||
- | * Updatecount réalise l'incrémentation du champ "count" de l'utilisateur. | + | Updatecount réalise l'incrémentation du champ "count" de l'utilisateur.\\ |
- | * Count renvoie le champ count de l'utilisateur. | + | Count renvoie le champ count de l'utilisateur. |
- | === SQLLog === | + | * SQLLog permet d'exécuter une requête SQL en fonction des actions de l'utilisateur :\\ |
- | SQLLog permet d'exécuter une requête SQL en fonction des actions de l'utilisateur : | + | |
Par exemple, l'option suivante exécute la requête //updatecount// lorsque l'utilisateur se connecte : | Par exemple, l'option suivante exécute la requête //updatecount// lorsque l'utilisateur se connecte : | ||
+ | |||
SQLLog PASS updatecount | SQLLog PASS updatecount | ||
- | === SQLShowInfo === | + | * SQLShowInfo permet d'afficher des informations à l'utilisateur en utilisant un requête SQL.\\ |
- | SQLShowInfo permet d'afficher des informations à l'utilisateur en utilisant un requête SQL. | + | |
Par exemple, la ligne suivante indique le nombre de connexions de l'utilisateur : | Par exemple, la ligne suivante indique le nombre de connexions de l'utilisateur : | ||
+ | |||
SQLShowInfo PASS "230" "Vous vous êtes logué(e) %{count} fois, %u" | SQLShowInfo PASS "230" "Vous vous êtes logué(e) %{count} fois, %u" | ||
- | === SQLMinID === | + | * SQLMinID définit les valeurs par défaut pour UID et GID : |
- | SQLMinID définit les valeurs par défaut pour UID et GID : | + | |
SQLMinID 499 | SQLMinID 499 | ||
- | === SQLDefaultUID === | + | * SQLDefaultUID définit la valeur par défaut de UID : |
- | SQLDefaultUID définit la valeur par défaut de UID : | + | |
SQLDefaultUID 500 | SQLDefaultUID 500 | ||
- | === SQLDefaultGID === | + | * SQLDefaultGID définit la valeur par défaut de GID : |
- | SQLDefaultGID définit la valeur par défaut de GID : | + | |
SQLDefaultGID 500 | SQLDefaultGID 500 | ||
- | === SQLDefaultHomedir === | + | * SQLDefaultHomedir définit le répertoire home par défaut : |
- | SQLDefaultHomedir définit le répertoire home par défaut : | + | |
SQLDefaultHomedir /ftp | SQLDefaultHomedir /ftp | ||
+ | ==== Exemple de configuration complète ==== | ||
+ | :!: Archive ! à adapter ! | ||
- | |||
- | ==== Exemple de configuration complète ==== | ||
Fichier ///etc/proftpd.conf// | Fichier ///etc/proftpd.conf// | ||
<file> | <file> | ||
Ligne 638: | Ligne 652: | ||
===== Backup ===== | ===== Backup ===== | ||
- | * /etc/proftpd.conf | + | * /etc/proftpd/ |
- | * /etc/cron.monthly/proftpd | + | * /etc/logrotate.d/proftpd |
- | * /home/scripts/ftp/maintenance_ftp | + | * /home/scripts/maintenance_ftp |
* /ftp/welcome.msg | * /ftp/welcome.msg | ||
+ | * /var/log/proftpd | ||
* le répertoire du ftp | * le répertoire du ftp | ||
- | |||
- | |||
===== Links ===== | ===== Links ===== | ||
- | * [[start]] | ||
- | * [[bender]] | ||
* [[mysql]] | * [[mysql]] | ||
* [[openldap]] | * [[openldap]] |