Outils pour utilisateurs

Outils du site


proftp

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
proftp [2022/10/11 07:33] – [Prise en charge de l'authentification par MySQL] adminproftp [2022/10/11 07:35] (Version actuelle) – ancienne révision (2022/10/11 07:31) restaurée admin
Ligne 136: Ligne 136:
 </Anonymous> </Anonymous>
 </code> </code>
- 
-===== PROFTP et authentification déportée ===== 
- 
-Par défaut, l'authentification des utilisateurs par ProFTP se fait par les comptes existant sous Linux.  
-Il est possible de reporter sur un système plus souple cette authentification : un fichier de comptes et groupes (non traité), un annuaire, ou une base de données.  
-Pour ce faire, on devra activer certains modules et renseigner certains paramètres dans les fichiers de configuration, après avoir installé les modules correspondant. 
- 
-==== Configuration avec MySQL pour l'authentification ==== 
-<WRAP left round box 75%> 
-  - Si besoin, procéder à l'installation de MySQL (on peut aussi utiliser un service MySQL distant) 
-  - Installer le paquetage de //proftpd-mod-mysql// 
-  - Créer la base pour //proftpd// sous MySQL, les tables //ftpgroup// et //ftpuser//, le compte MySQL de connexion (voir script en [[proftp#ANNEXE|Annexe]] de cette fiche). 
-  - Insérer dans la table //ftpuser// le compte de connexion de l'utilisateur Linux 
-  - Configurer le fichier //sql.conf// 
-  - Appeler //sql.conf// dans //proftpd.conf// (clause //Include//) 
-  - Demander à charger les modules //sql// et //mysql// dans le fichier //modules.conf// 
-  - Redémarrer le service //proftpd// 
- </WRAP><WRAP clear/> 
- 
- 
  
 ===== Client FTP ===== ===== Client FTP =====
Ligne 164: Ligne 144:
   * la ligne de commande (ou du script)   * la ligne de commande (ou du script)
   * des fonctions de langage de programmation : voir par exemple ici pour PHP.   * des fonctions de langage de programmation : voir par exemple ici pour PHP.
- 
  
 ==== Connexion avec un serveur ==== ==== Connexion avec un serveur ====
Ligne 196: Ligne 175:
 !md nomDossier  </code> | !md nomDossier  </code> |
    
 +===== PROFTP et authentification déportée =====
 +
 +Par défaut, l'authentification des utilisateurs par ProFTP se fait par les comptes existant sous Linux. 
 +Il est possible de reporter sur un système plus souple cette authentification : un fichier de comptes et groupes (non traité), un annuaire, ou une base de données. 
 +Pour ce faire, on devra activer certains modules et renseigner certains paramètres dans les fichiers de configuration, après avoir installé les modules correspondant.
 +
 +==== Configuration avec MySQL pour l'authentification ====
 +<WRAP left round box 75%>
 +  - Si besoin, procéder à l'installation de MySQL (on peut aussi utiliser un service MySQL distant)
 +  - Installer le paquetage de //proftpd-mod-mysql//
 +  - Créer la base pour //proftpd// sous MySQL, les tables //ftpgroup// et //ftpuser//, le compte MySQL de connexion (voir script en [[proftp#ANNEXE|Annexe]] de cette fiche).
 +  - Insérer dans la table //ftpuser// le compte de connexion de l'utilisateur Linux
 +  - Configurer le fichier //sql.conf//
 +  - Appeler //sql.conf// dans //proftpd.conf// (clause //Include//)
 +  - Demander à charger les modules //sql// et //mysql// dans le fichier //modules.conf//
 +  - Redémarrer le service //proftpd//
 + </WRAP><WRAP clear/>
 +
 +==== Prise en charge de l'authentification par un annuaire ====
 +
 +ProFTP peut être complété par un module de gestion de la prise en charge de l'authentification par un annuaire LDAP. On installera le paquetage //proftpd-mod-ldap//.
 +On procèdera aux paramétrages ci-dessous dans les fichiers correspondant.
 +
 +=== Fichier proftpd.conf ===
 +
 +Dans ce fichier, on inclue le paramétrage relatif à LDAP présent dans un autre fichier et on désactive la gestion par Linux. 
 +<code apache>
 +Include /etc/proftpd/ldap.conf # à dé-commenter pour l'utilisation d’un serveur LDAP
 +#Include /etc/proftpd/sql.conf # à dé-commenter pour l'utilisation d'une base de données
 +RequireValidShell  off # permet l’utilisation de comptes non présents sous Linux
 +AuthPAM  off         # évite la recherche des comptes Linux
 +AuthOrder    mod_ldap.c # définit l’ordre de recherche pour l’authentification (LDAP en premier)
 +</code>
 +
 +
 +=== Fichier modules.conf ===
 +
 +Le fichier indique les modules à charger parmi ceux présents dans le dossier /usr/lib/proftpd. 
 +Dans le cas de l'utilisation d'un annuaire LDAP, on dé-commentera les lignes suivantes :
 +<code apache>
 +LoadModule mod_ldap.c # prise en charge de l'authentification par un annuaire
 +</code>
 +
 +=== Fichier ldap.conf ===
 +
 +C'est ici qu'on décrira l’adresse de l’annuaire, le compte pour interroger l’annuaire, le chemin pour chercher les comptes. Seules les options de base sont décrites ici.
 +<code apache>
 +<IfModule mod_ldap.c>                     # paramétrages si le module LDAP est activé
 +LDAPServer ldap://adresse_annuaire[:port]     #adresse (IP, FQDN) du serveur d’annuaire
 +LDAPBindDN "cheminLDAPCompteLecture" "mot_passe"    # compte pour interroger l’annuaire
 +LDAPAttr attributAnnuaire variable             # renomme les attributs LDAP selon les variables du contexte
 +LDAPUsers "cheminLDAPversOU" "renvoi_vers_le_compte_utilisateur_soumis" #infos pour l’authentification avec le compte
 +</IfModule>
 +</code>
 +
 +== Exemple de fichier LDAP ==
 +<code apache>
 +<IfModule mod_ldap.c> # paramétrages si le module LDAP est activé
 +# FQDN de l’annuaire (le serveur ProFTP doit pouvoir résoudre le domaine gsbeu.intra)
 +LDAPServer ldap://LABANNU.gsbeu.intra/ ??sub
 +#Compte utilisé pour parcourir l’annuaire. Ne devrait pas être l’administrateur du domaine 
 +#mais un compte avec les droits suffisants.
 +LDAPBindDN "cn=gestAnnuaire,cn=Users,dc=gsbeu,dc=intra" "mp123GES"  # exemple à adapter selon le contexte
 +#renommage du champ LDAP cn sous l’intitulé SamAccountName
 +LDAPAttr cn SamAccountName
 +#chemin de recherche dans l’unité « services » en utilisant le compte soumis au serveur FTP
 +LDAPUsers "ou=services,dc=gsbeu,dc=intra" (SamAccountName=%u)
 +</IfModule>
 +</code>
 +
 +==== Prise en charge de l'authentification par MySQL ====
 +
 +ProFTP peut être complété par un module de gestion de la prise en charge de l'authentification par une base de données. Pour MySQL, on installera le paquetage **//proftpd-mysql//**.
 +On procèdera aux paramétrages ci-dessous dans les fichiers correspondant.
 +
 +=== Fichier proftpd.conf ===
 +
 +Dans ce fichier, on se contente d'inclure le paramétrage relatif à SQL présent dans un autre fichier. 
 +<code apache>
 +#Include /etc/proftpd/ldap.conf   # si on utilise un serveur LDAP
 +Include /etc/proftpd/sql.conf   # à dé-commenter pour l'utilisation d'une base de données
 +</code>
 +
 +=== Fichier modules.conf ===
 +
 +Le fichier indique les modules à charger parmi ceux présents dans le dossier ///usr/lib/proftpd//
 +Dans le cas de l'utilisation d'une base de données MySQL, on dé-commentera les lignes suivantes :
 +<code apache>
 +LoadModule mod_sql.c          # prise en charge de l'authentification par un SGBD
 +LoadModule mod_sql_mysql.c # nom du SGBD avec lequel on est en contact
 +</code>
 +
 +=== Fichier sql.conf ===
 +
 +C'est ici qu'on décrira le type d'authentification, le nom des tables et les champs dans lesquels on ira vérifier les informations d'authentification transmises
 +<code apache>
 +<IfModule mod_sql.c> # paramétrage utilisé si le module SQL est  activé
 +SQLBackend mysql        # nom du SGBD qui contient les tables des comptes
 +#SQLEngine on
 +SQLAuthenticate users* groups* # indique le niveau de droits (utilisateurs, groupes, les deux)
 +SQLAuthTypes Crypt Plaintext # mode de gestion des mots de passe crypté et/ou en clair
 +#SQLAuthTypes Backend Crypt     # si on veut que ce soit MySQL qui fasse l'authentification
 +SQLConnectInfo proftpDB@localhost root mproot # base, serveur et coordonnées d'un compte MySQL (à adapter)
 +SQLUserInfo ftpuser userid passwd uid gid homedir shell # table contenant les comptes d'utilisateurs et champs étudiés 
 +#SQLUserWhereClause "LoginAllowed = 'true'" # n'accepte que les comptes actifs
 +SQLGroupInfo ftpgroup groupname gid members #table/champs étudiés pour groupes 
 +SQLLogFile /var/log/proftpd/mysql.log #  journaux liés aux échanges avec la base
 +</IfModule> 
 +</code>
 +
 +Voir ci-dessous pour les éléments de création d’une base MySql pour cette configuration.
  
 === Annexe === === Annexe ===
proftp.1665473593.txt.gz · Dernière modification : 2022/10/11 07:33 de admin