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
Prochaine révision
Révision précédente
proftp [2022/10/11 07:27] – [Configuration] adminproftp [2022/10/11 07:35] (Version actuelle) – ancienne révision (2022/10/11 07:31) restaurée admin
Ligne 9: Ligne 9:
   - Vérifier le fonctionnement à partir d'un navigateur (ou d'un client FTP, port 21) : [[ftp://@Serveur]] (s'authentifier avec un compte autre que //root//). Vous devez voir le dossier ///home// de l'utilisateur.   - Vérifier le fonctionnement à partir d'un navigateur (ou d'un client FTP, port 21) : [[ftp://@Serveur]] (s'authentifier avec un compte autre que //root//). Vous devez voir le dossier ///home// de l'utilisateur.
 </WRAP><WRAP clear/> </WRAP><WRAP clear/>
- 
-L'installation passe par la commande <code lscript>apt update 
-apt install proftpd</code> 
- 
 ===== Fichiers de configuration ===== ===== Fichiers de configuration =====
-Les principaux fichiers sont (dans /etc/proftpd)+Les principaux fichiers sont situés dans <wrap em>/etc/proftpd</wrap>
 ^Fichier ^Usage ^ ^Fichier ^Usage ^
-|proftpd.conf |Définit les principales caractéristiques techniques du service FTP : nom de la machine vu sur le réseau, durée de session, nombre de connexions simultanées, modules appelés (SGBD, sécurité, etc), répertoires partagés (pour compte anonyme ou compte authentifiés), éléments de sécurité, ports d'écoute, etc | +^proftpd.conf |Définit les principales caractéristiques techniques du service FTP : nom de la machine vu sur le réseau, durée de session, nombre de connexions simultanées, modules appelés (SGBD, sécurité, etc), répertoires partagés (pour compte anonyme ou compte authentifiés), éléments de sécurité, ports d'écoute, etc | 
-|sql.conf |Définit les options pour la mise en relation avec une base de données (MySQL ou PostGreSQL) : SGBD, mode d'authentification, compte de connexion à la base, tables utilisées | +^sql.conf |Définit les options pour la mise en relation avec une base de données (MySQL ou PostGreSQL) : SGBD, mode d'authentification, compte de connexion à la base, tables utilisées | 
-|ldap.conf |Définit les options de connexion à un annuaire par le protocole LDAP : nom de connexion, domaine, localisation du serveur, etc  | +^ldap.conf |Définit les options de connexion à un annuaire par le protocole LDAP : nom de connexion, domaine, localisation du serveur, etc  | 
-|tls.conf |Définit les options de configuration pour l'usage d'une connexion sécurisée : certificat, forcer l'authentification, etc | +^tls.conf |Définit les options de configuration pour l'usage d'une connexion sécurisée : certificat, forcer l'authentification, etc | 
-|modules.conf |Précise les modules à charger lors du démarrage du service : base de données, sécurité, quotas, etc | +^modules.conf |Précise les modules à charger lors du démarrage du service : base de données, sécurité, quotas, etc | 
-|virtuals.conf |Gestion d'hôtes virtuels (un serveur, plusieurs domaines) |+^virtuals.conf |Gestion d'hôtes virtuels (un serveur, plusieurs domaines) |
  
  
Ligne 29: Ligne 25:
 Le monde libre propose de multiples déclinaisons du protocole FTP sous forme de services : wuFTP, ProFTP, vsFTP… Le monde libre propose de multiples déclinaisons du protocole FTP sous forme de services : wuFTP, ProFTP, vsFTP…
 Nous étudierons ici les grandes lignes de ProFTP qui a la réputation d'être un peu complexe d'administration (mais proche d'Apache), « couplable » avec de l'authentification (MySQL ou LDAP), gérant des droits de partage par utilisateur ou groupe, mieux sécurisé vis a vis des failles que wuFTP par exemple (source à retrouver). Nous étudierons ici les grandes lignes de ProFTP qui a la réputation d'être un peu complexe d'administration (mais proche d'Apache), « couplable » avec de l'authentification (MySQL ou LDAP), gérant des droits de partage par utilisateur ou groupe, mieux sécurisé vis a vis des failles que wuFTP par exemple (source à retrouver).
 +
 +L'installation passe par la commande <code lscript>apt update
 +apt install proftpd</code>
 +
  
 ==== Configuration de base ==== ==== Configuration de base ====
Ligne 88: Ligne 88:
 === Attribution de droits === === Attribution de droits ===
  
-La limitation des droits d'utilisation des dossiers s'effectue par la directive Limit : +La limitation des droits d'utilisation des dossiers s'effectue par la <wrap em>directive Limit</wrap> 
 <code apache> <code apache>
 <Limit liste_actions>  <Limit liste_actions> 
Ligne 137: Ligne 137:
 </code> </code>
  
 +===== Client FTP =====
 +
 +L'accès à un serveur FTP doit se faire par un client : 
 +  * le navigateur internet, qui est généralement limité à la récupération de contenu (mais IE permet l'envoi)
 +  * un client avec interface graphique : type Filezilla
 +  * la ligne de commande (ou du script)
 +  * des fonctions de langage de programmation : voir par exemple ici pour PHP.
 +
 +==== Connexion avec un serveur ====
 +
 +La connexion à un serveur utilise les éléments suivants : [utilisateur [:motpasse] @] adresse [:port].
 +Exemples : 
 +ftp://monCompte@192.168.0.152
 + \\  ftp://192.168.0.154:2121
 + \\  ftp://monCompte:monPWD@192.168.0.189:4400
 +
 +==== Eléments de la ligne de commande FTP ====
 + (voir plus de possibilités sur comment ça marche)
 +^  Commande  ^  Utilisation  ^  Exemples  ^
 +|ftp |Passe en mode ligne de commande et réalise éventuellement la connexion ftp |  <code lscript>ftp 192.168.0.156
 +ftp monCompte@192.168.0.152 </code> |
 +|open |Ouvre une connexion avec un serveur | <code lscript>open 192.168.0.156</code>  |
 +|ls | Liste le contenu d'un dossier ls  |  <code lscript> ls sousDossier </code> |
 +|pwd | (Print Working Directory) \\  Affiche le dossier courant  |
 +|mkd / rmd | Crée / Supprime un dossier |
 +|put / get | Envoie / Récupère un document  |  <code lscript>//envoie le fichier vers le serveur
 +put fichierChezMoi  
 +//envoie le fichier et le renomme 
 +put fich1 fich2 
 +// récupère le fichier du serveur 
 +get fichierDistant 
 +//récupère le fichier et le renomme  
 +get ficDist ficLoc</code> |
 +| ! |Exécute une commande sur la machine locale |<code lscript>//se déplace dans l'arborescence locale
 +!cd .. 
 +///crée un dossier en local
 +!md nomDossier  </code> |
 + 
 ===== PROFTP et authentification déportée ===== ===== PROFTP et authentification déportée =====
  
Ligne 154: Ligne 192:
   - Redémarrer le service //proftpd//   - Redémarrer le service //proftpd//
  </WRAP><WRAP clear/>  </WRAP><WRAP clear/>
- 
- 
-==== 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 plus loin pour les éléments de création d’une base MySql pour cette configuration. 
  
 ==== Prise en charge de l'authentification par un annuaire ==== ==== Prise en charge de l'authentification par un annuaire ====
Ligne 250: Ligne 245:
 </code> </code>
  
-===== Client FTP =====+==== Prise en charge de l'authentification par MySQL ====
  
-L'accès à un serveur FTP doit se faire par un client :  +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//**. 
-  * le navigateur internet, qui est généralement limité à la récupération de contenu (mais IE permet l'envoi) +On procèdera aux paramétrages ci-dessous dans les fichiers correspondant.
-  un client avec interface graphique : type Filezilla +
-  la ligne de commande (ou du script) +
-  * des fonctions de langage de programmation : voir par exemple ici pour PHP.+
  
 +=== Fichier proftpd.conf ===
  
-==== Connexion avec un serveur ====+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>
  
-La connexion à un serveur utilise les éléments suivants : [utilisateur [:motpasse] @] adresse [:port]. +=== Fichier modules.conf ===
-Exemples :  +
-ftp://monCompte@192.168.0.152 +
- \\  ftp://192.168.0.154:2121 +
- \\  ftp://monCompte:monPWD@192.168.0.189:4400+
  
-==== Eléments de la ligne de commande FTP ==== +Le fichier indique les modules à charger parmi ceux présents dans le dossier ///usr/lib/proftpd//.  
- (voir plus de possibilités sur comment ça marche) +Dans le cas de l'utilisation d'une base de données MySQL, on dé-commentera les lignes suivantes : 
-^  Commande  ^  Utilisation  ^  Exemples +<code apache> 
-|ftp |Passe en mode ligne de commande et réalise éventuellement la connexion ftp |  <code lscript>ftp 192.168.0.156 +LoadModule mod_sql.c          # prise en charge de l'authentification par un SGBD 
-ftp monCompte@192.168.0.152 </code> | +LoadModule mod_sql_mysql.c # nom du SGBD avec lequel on est en contact 
-|open |Ouvre une connexion avec un serveur | <code lscript>open 192.168.0.156</code>  | +</code> 
-|ls | Liste le contenu d'un dossier ls  |  <code lscriptls sousDossier </code| + 
-|pwd | (Print Working Directory) \\  Affiche le dossier courant  | +=== Fichier sql.conf === 
-|mkd rmd | Crée / Supprime un dossier | + 
-|put / get | Envoie / Récupère un document  |  <code lscript>//envoie le fichier vers le serveur +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 
-put fichierChezMoi   +<code apache> 
-//envoie le fichier et le renomme  +<IfModule mod_sql.c # paramétrage utilisé si le module SQL est  activé 
-put fich1 fich2  +SQLBackend mysql        # nom du SGBD qui contient les tables des comptes 
-// récupère le fichier du serveur  +#SQLEngine on 
-get fichierDistant  +SQLAuthenticate users* groups* # indique le niveau de droits (utilisateurs, groupes, les deux
-//récupère le fichier et le renomme   +SQLAuthTypes Crypt Plaintext # mode de gestion des mots de passe crypté et/ou en clair 
-get ficDist ficLoc</code| +#SQLAuthTypes Backend Crypt     # si on veut que ce soit MySQL qui fasse l'authentification 
-| ! |Exécute une commande sur la machine locale |<code lscript>//se déplace dans l'arborescence locale +SQLConnectInfo proftpDB@localhost root mproot # base, serveur et coordonnées d'un compte MySQL (à adapter) 
-!cd ..  +SQLUserInfo ftpuser userid passwd uid gid homedir shell # table contenant les comptes d'utilisateurs et champs étudiés  
-///crée un dossier en local +#SQLUserWhereClause "LoginAllowed = 'true'" # n'accepte que les comptes actifs 
-!md nomDossier  </code>+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.1665473257.txt.gz · Dernière modification : 2022/10/11 07:27 de admin