Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue

linux:proftpd [2009/07/22 00:56]
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 608: Ligne 622:
  
 ==== Rotation des logs ==== ==== Rotation des logs ====
-La rotation des logs est gérée par  ///etc/cron.monthly/proftpd//, qui contient par défaut :+La rotation des logs est gérée par  ///etc/logrotate.de/proftpd-basic//, qui contient par défaut :
 <file> <file>
-#!/bin/sh +/var/log/proftpd/proftpd.log 
-+/var/log/proftpd/controls.log 
-# cron script to rotate the proftpd server logfile, based on the +/var/log/proftpd/xferlog 
-# wu-ftpd script by Peter Tobias <tobias@et-inf.fho-emden.de>+/var/log/proftpd/xferreport 
- +
-[ -x /usr/sbin/ftpstats ] || exit 0 +        weekly 
- +        missingok 
-cd /var/log/proftpd +        rotate 7 
-savelog -q -u root -g adm -m 640 -c 12 /var/log/proftpd/xferreport +        compress 
-ftpstats -a -r -l 2 -d 2>/dev/null >/var/log/proftpd/xferreport +        delaycompress 
-savelog -q -u root -g adm -m 640 -c 7 /var/log/proftpd/xferlog +        notifempty 
-savelog -q -u root -g adm -m 640 -c 7 /var/log/proftpd/proftpd.log +        create 640 root adm 
-savelog -q -u root -g adm -m 640 -c 7 /var/log/proftpd/controls.log+        sharedscripts 
 +        postrotate 
 +                # reload could be not sufficient for all logs, restart is safer 
 +                invoke-rc.proftpd restart 2>/dev/null >/dev/null || true 
 +        endscript 
 +}
 </file> </file>
  
-Pour conserver les logs 1 an, il suffit de modifier la ligne +Pour conserver les logs 1 an, il suffit de modifier la ligne rotate : 
-  savelog -q -u root -g adm -m 640 -c 12 /var/log/proftpd/xferlog+  rotate 12
  
 ===== Debug ===== ===== Debug =====
Ligne 633: 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]]
linux/proftpd.1248216993.txt.gz · Dernière modification: 2009/07/22 00:56 par matthieu
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki