Outils pour utilisateurs

Outils du site


informatique:linux:proftpd

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
informatique:linux:proftpd [2009/03/13 15:11] – benoitinformatique:linux:proftpd [2009/05/05 12:08] (Version actuelle) – benoit
Ligne 1: Ligne 1:
 ======  PROFTPD ====== ======  PROFTPD ======
  
-===== Installation ===== 
  
 +
 +===== Installation =====
 +==== Pré-requis ====
 Installer les paquetages pré-requis à la compilation de proftpd : Installer les paquetages pré-requis à la compilation de proftpd :
   * gcc-4.1.2-44.el5.i386.rpm   * gcc-4.1.2-44.el5.i386.rpm
Ligne 22: Ligne 24:
   * perl-DBI-1.52-2.el5.i386.rpm   * perl-DBI-1.52-2.el5.i386.rpm
   * mysql-devel-5.0.45-7.el5.i386.rpm   * mysql-devel-5.0.45-7.el5.i386.rpm
 +
 +==== Installation ====
  
 Récupérer l'archive de proftpd sur http://www.proftpd.org Récupérer l'archive de proftpd sur http://www.proftpd.org
Ligne 31: Ligne 35:
 Installation et compilation de proftpd : Installation et compilation de proftpd :
   cd /ap01/ftpserver/src/proftpd-1.3.2rc4   cd /ap01/ftpserver/src/proftpd-1.3.2rc4
-  ./configure --prefix=/usr/local/proftpd --sysconfdir=/usr/local/proftpd/etc --localstatedir=/ap01/ftpserver/appl/proftpd/var  --with-modules=mod_tls:mod_sql:mod_sql_mysql --with-includes=/usr/include/mysql --with-libraries=/usr/lib/mysql+  CFLAGS=-DHAVE_OPENSSL LIBS=-lcrypto 
 +  ./configure --prefix=/ap01/ftpserver/appl/proftpd --sysconfdir=/ap01/ftpserver/appl/proftpd/etc --localstatedir=/ap01/ftpserver/appl/proftpd/var  --with-modules=mod_tls:mod_sql:mod_sql_mysql --with-includes=/usr/include/mysql:/usr/include/openssl --with-libraries=/usr/lib/mysql:/usr/lib/openssl
   make clean   make clean
   make   make
Ligne 37: Ligne 42:
  
 ===== Configuration ===== ===== Configuration =====
 +
 +
  
 ==== Configuration basic ==== ==== Configuration basic ====
Ligne 43: Ligne 50:
   # Permet de cloisonner les utilisateurs dans leur répertoire :   # Permet de cloisonner les utilisateurs dans leur répertoire :
   DefaultRoot ~   DefaultRoot ~
 +  
   # L'utilisateur FTP n'est pas obligé d'avoir un SHELL valide (telque bash, ksh etc...) pour se connecter    # L'utilisateur FTP n'est pas obligé d'avoir un SHELL valide (telque bash, ksh etc...) pour se connecter 
   RequireValidShell               no   RequireValidShell               no
 +  
   # Evite les requetes DNS du serveur et permet donc une authentification plus rapide   # Evite les requetes DNS du serveur et permet donc une authentification plus rapide
   IdentLookups                    off   IdentLookups                    off
   UseReverseDNS                   off   UseReverseDNS                   off
 +  
 +  # Permet de définir la plage de ports pour les connexion passive
 +  # Plage de port à laisser passer par le FireWall
 +  PassivePorts 49152 49500
 +  
 +  # Ceci permet de limiter l'accès FTP à /var/ftp
 +  <Directory />
 +    DenyAll
 +  </Directory>
 +  <Directory /var/ftp>
 +    AllowAll
 +  </Directory>
  
 ==== Configuration avec SSL ==== ==== Configuration avec SSL ====
  
 === Générer le certificat === === Générer le certificat ===
-Se positionner dans le répertoire de configuration apache :+Se positionner dans le répertoire de configuration de proftpd :
   cd /usr/local/proftpd/etc   cd /usr/local/proftpd/etc
  
-Lancer la commande pour générer la clé privée RSA : +Pour générer le certificat voir : [[openssl#creer_un_certificat_ssl|Créer un certificat SSL avec OpenSSL]]
-  openssl genrsa -out server.key 1024 +
- +
-A partir de notre clé privée nous allons créer notre fichier de demande de signature (Certificate Signing Request) : +
-  openssl req -new -key server.key -out request.csr +
- +
-Auto-signer la clé et créer le certificat  : +
-  openssl x509 -req -days 365 -in request.csr -signkey server.key -out server.crt+
  
 === Configuration === === Configuration ===
Ligne 116: Ligne 130:
   * Filezilla : http://filezilla-project.org   * Filezilla : http://filezilla-project.org
   * CoreFTP : http://www.coreftp.com   * CoreFTP : http://www.coreftp.com
 +
 +
 +
 +
 +
  
  
 ==== Configuration avec Mysql ==== ==== Configuration avec Mysql ====
  
 +Pour activer proftpd avec Mysql et authentifier les utilisateurs avec un compte de la base de données
 +
 +  AuthOrder       mod_sql.c mod_auth_unix.c
   SQLEngine on   SQLEngine on
   SQLBackend mysql   SQLBackend mysql
-  SQLAuthenticate on+  SQLAuthenticate user
      
-  # Type de cryptage +  # Indique le type de mot de passe s'il est clair ou chiffré choix : Plaintext Crypt OpenSSL 
-  SQLAuthTypes Plaintext Crypt OpenSSL+  SQLAuthTypes OpenSSL
      
   # Auth base Mysql   # Auth base Mysql
-  SQLConnectInfo proftpd@mysqlserver proftpd password +  SQLConnectInfo proftpd@mysqlserver:4020 proftpd password 
-  # Nom des champs (respecter l'ordre)+   
 +  # SQLUserInfo [ user-table user-name passwd uid gid home-dir shell]
   SQLUserInfo users username password uid gid homedir shell   SQLUserInfo users username password uid gid homedir shell
      
   # Activation ou non du compte   # Activation ou non du compte
-  SQLUserWhereClause "LoginAllowed = 'true'"+  #SQLUserWhereClause "LoginAllowed = 'true'"
      
   # Evite affichage nom compte systeme   # Evite affichage nom compte systeme
Ligne 142: Ligne 165:
   SQLNegativeCache on   SQLNegativeCache on
  
 +Si le mode **OpenSSL** est choisi pour la directive **SQLAuthTypes** le chiffrement du mot de passe se fera par exemple ainsi :
 +  /bin/echo "{sha256}"$(/bin/echo -n "secret" | openssl dgst -binary -sha256 | openssl enc -base64)
 +
 +Le résultat de la commande doit être inséré dans le champs mot de passe de la base.
 +
 +Exemple de configuration pour logguer l'activité dans la base :
 +
 +  SQLNamedQuery R SELECT "max(NbReboot) from reboot"
 +  SQLLog PASS,ERR_PASS updatecount
 +  SQLNamedQuery updatecount UPDATE "count=count+1 WHERE username='%u'" users
 +  SQLLog RETR,ERR_RETR emissions
 +  SQLNamedQuery emissions INSERT "'','%u',now(),now(), '%h','%f', %b,'%r','%s',%P,%R" emissions
 +  SQLLog STOR,ERR_STOR receptions
 +  SQLNamedQuery receptions INSERT "'','%u',now(),now(), '%h','%f', %b,'%r','%s',%P,%R" receptions
 +  SQLLog PASS,ERR_PASS debutconnexions
 +  SQLNamedQuery debutconnexions INSERT "'','%u',now(),now(),NULL,NULL, '%h','%r','%s',%P,%R" connexions
 +  SQLLog EXIT,ERR_EXIT finconnexions
 +  SQLNamedQuery finconnexions UPDATE "DateFinConn=now(),HFinConn=now(), CommandConn='%r', CodeConn='%s' WHERE IdFtpd='%P' AND NbReboot='%R'"   connexions
 +  SQLLog MKD,ERR_MKD creationsr
 +  SQLNamedQuery creationsr INSERT "'','%u',now(),now(), '%h','%f','%r','%s',%P,%R" creationsr
 +  SQLLog RMD,ERR_RMD suppressionsr
 +  SQLNamedQuery suppressionsr INSERT "'','%u',now(),now(), '%h','%f','%r','%s',%P,%R" suppressionsr
 +  SQLLog DELE,ERR_DELE suppressionsf
 +  SQLNamedQuery suppressionsf INSERT "'','%u',now(),now(), '%h','%f','%r','%s',%P,%R" suppressionsf
 +  SQLLog RNTO,ERR_RNTO renames
 +  SQLNamedQuery renames INSERT "'','%u',now(),now(), '%h','%f','%r','%s',%P,%R" renames
 +
 +===== Documentation =====
 +  * http://www.proftpd.org/docs/
informatique/linux/proftpd.1236957104.txt.gz · Dernière modification : (modification externe)