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]] | ||