Documentation du Dr FRAPPE

Ce wiki regroupe les résultats de mes expériences en informatique accumulés au cours de mes recherches sur le net.

Dans la mesure du possible, j'ai cité mes sources ; il en manque certainement… :-)

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
Prochaine révisionLes deux révisions suivantes
logiciel:internet:ftp:proftpd:start [2020/09/11 10:23] – [Installation] adminlogiciel:internet:ftp:proftpd:start [2021/02/17 10:10] – ↷ Liens modifiés en raison d'un déplacement. admin
Ligne 3: Ligne 3:
 ====== Pro-ftpd : un serveur FTP open source pour Linux ====== ====== Pro-ftpd : un serveur FTP open source pour Linux ======
  
-===== Introduction =====+====== Introduction ======
  
 **ProFTPD** est un serveur FTP/SFTP/FTPS open source, modulaire et puissant. **ProFTPD** est un serveur FTP/SFTP/FTPS open source, modulaire et puissant.
Ligne 11: Ligne 11:
   * Il gère les fonctionnalités avancées (plusieurs fichiers de mots de passe, ratios téléchargement/envoi, etc.).   * Il gère les fonctionnalités avancées (plusieurs fichiers de mots de passe, ratios téléchargement/envoi, etc.).
  
-===== Pré-requis =====+====== Pré-requis ======
  
-===== Installation =====+====== Installation ======
  
 <WRAP center round tip 60%> <WRAP center round tip 60%>
Ligne 43: Ligne 43:
 </cli> </cli>
   - Si vous essayez avec un client comme **Filezilla**, vous constaterez que l'utilisateur n'est pas bloqué dans son home.   - Si vous essayez avec un client comme **Filezilla**, vous constaterez que l'utilisateur n'est pas bloqué dans son home.
-===== Configuration ======+ 
 +====== Configuration =======
  
 <WRAP center round info 60%> <WRAP center round info 60%>
Ligne 61: Ligne 62:
 </WRAP> </WRAP>
  
-==== Utilisateurs virtuels ====+===== Utilisateurs virtuels =====
  
 Chaque utilisateur a accès à son propre répertoire personnel **/home/xxxxxxx** (ou **/home/pi** pour un Raspberry Pi). Chaque utilisateur a accès à son propre répertoire personnel **/home/xxxxxxx** (ou **/home/pi** pour un Raspberry Pi).
Ligne 71: Ligne 72:
 </WRAP> </WRAP>
  
-=== Création d'un webmestre pour un site monsite.tld ===+==== Création d'un webmestre pour un site monsite.tld ====
  
 Nous allons créer un utilisateur virtuel **admiweb** pour accéder par ftp au site **monsite.tld**, hébergé à l'emplacement **/var/www/html/monsite.tld** Nous allons créer un utilisateur virtuel **admiweb** pour accéder par ftp au site **monsite.tld**, hébergé à l'emplacement **/var/www/html/monsite.tld**
Ligne 87: Ligne 88:
 ftpasswd: entry created</cli> ftpasswd: entry created</cli>
  
-=== Création d'un utilisateur virtuel (cas général) ===+==== Création d'un utilisateur virtuel (cas général) ====
  
 On peut créer de la même façon des utilisateurs virtuels ayant des identifiants quelconques (sauf UID 0 (zéro) et GID 0 (zéro) qui sont utilisés pour l'utilisateur root et le groupe root). On peut créer de la même façon des utilisateurs virtuels ayant des identifiants quelconques (sauf UID 0 (zéro) et GID 0 (zéro) qui sont utilisés pour l'utilisateur root et le groupe root).
Ligne 103: Ligne 104:
 L'outil ftpasswd est un script Perl. L'outil ftpasswd est un script Perl.
  
-==== Fichier de configuration ====+===== Fichier de configuration =====
  
   - Créez ou éditez avec les droits d'administration le fichier **/etc/proftpd/conf.d/global.conf** pour ajouter à la fin votre configuration :<code - /etc/proftpd/conf.d/global.conf>   - Créez ou éditez avec les droits d'administration le fichier **/etc/proftpd/conf.d/global.conf** pour ajouter à la fin votre configuration :<code - /etc/proftpd/conf.d/global.conf>
 # Tous les utilsateurs seront emprisonnés dans leur home, sauf l'utilisateur système xxxxxxx # Tous les utilsateurs seront emprisonnés dans leur home, sauf l'utilisateur système xxxxxxx
 DefaultRoot ~ !xxxxxxx DefaultRoot ~ !xxxxxxx
 +
 +# Pas de shell valide exigé (ex : bin/sh ou /bin/bash).
 +RequireValidShell off
 +
 +# Fichier des mots de passe
 +AuthUserFile /etc/proftpd/ftpd.passwd
 +
 +# Fichier des groupes
 +AuthGroupFile /etc/proftpd/ftpd.group
 +
 +AuthOrder mod_auth_file.c  mod_auth_unix.c
 +AuthPAM off
 +</code>Cas d'un Raspberry Pi :<code - /etc/proftpd/conf.d/global.conf>
 +# Tous les utilsateurs seront emprisonnés dans leur home, sauf l'utilisateur système pi
 +DefaultRoot ~ !pi
  
 # Pas de shell valide exigé (ex : bin/sh ou /bin/bash). # Pas de shell valide exigé (ex : bin/sh ou /bin/bash).
Ligne 124: Ligne 140:
 ...@...:~$ sudo touch /etc/proftpd/ftpd.group</cli> ...@...:~$ sudo touch /etc/proftpd/ftpd.group</cli>
  
-==== Rechargement et test ====+===== Rechargement et test =====
  
 +  - Relancez proftpd et vérifiez que l'utilisateur admiweb peut se connecter :
   - Relancez proftpd et vérifiez que l'utilisateur admiweb peut se connecter :<cli>...@...:~$ sudo systemctl restart proftpd   - Relancez proftpd et vérifiez que l'utilisateur admiweb peut se connecter :<cli>...@...:~$ sudo systemctl restart proftpd
 ...@...:~$ ftp localhost ...@...:~$ ftp localhost
Ligne 141: Ligne 158:
 ftp> bye ftp> bye
 221 Au revoir.</cli> 221 Au revoir.</cli>
-<cli prompt='$ '>...@...:~$</cli> </cli>+<cli prompt='$ '>...@...:~$</cli> </cli>Pour un Raspberry Pi :<cli>pi@framboise:~ $ sudo systemctl restart proftpd 
 +pi@framboise:~ $ ftp localhost 
 +Connected to localhost. 
 +220 ProFTPD Server (Debian) [::1] 
 +Name (localhost:pi): admiweb 
 +331 Mot de passe requis pour admiweb 
 +Password: 
 +230 Utilisateur admiweb authentifié 
 +Remote system type is UNIX. 
 +Using binary mode to transfer files. 
 +<cli prompt='> '>ftp> ls 
 +... 
 +drwxrws---  22 admiweb  www-data     4096 Jul 28 13:23 html 
 +... 
 +ftp> bye 
 +221 Au revoir.</cli> 
 +<cli prompt='$ '>pi@framboise:~ $ </cli> 
 +</cli>
   - L'utilisateur système xxxxxxx, lui, peut se connecter et n'est pas emprisonné :<cli>...@...:~$ ftp localhost   - L'utilisateur système xxxxxxx, lui, peut se connecter et n'est pas emprisonné :<cli>...@...:~$ ftp localhost
 ... ...
Ligne 164: Ligne 198:
 221 Au revoir.</cli> 221 Au revoir.</cli>
 <cli>...@...:~$ </cli> <cli>...@...:~$ </cli>
-</cli> +</cli>Pour un Raspberry Pi :<cli>pi@framboise:ftp localhost
- +
- +
-==== Hôtes virtuels ==== +
- +
-Créez avec les droits d'administration le fichier **/etc/proftpd/conf.d/global.conf** pour y ajouter les directives : +
-<code - /etc/proftpd/conf.d/global.conf> +
-DefaultRoot ~ +
- +
-AuthUserFile /etc/proftpd/ftpd.passwd +
-AuthGroupFile /etc/proftpd/ftpd.group +
-</code> +
- +
-Vérifiez l'existence de l'utilisateur **www-data** et de son groupe : +
-<cli>$ getent group www-data  +
-www-data:x:33: +
-getent passwd www-data  +
-www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin</cli> +
- +
-++++ Sinon, créez-le | +
-<cli>$ sudo groupadd www-data +
-$ sudo useradd -g www-data -d /var/www -s /bin/false www-data</cli> +
-++++ +
- +
-On constate que l’identifiant du groupe **www-data** est **33**. +
- +
-Créez l'utilisateur virtuel **admiweb**, de home **/var/www/html**, avec les uid et gid de **www-data** en lançant les commandes (le mot de passe du compte vous sera demandé) : +
-<cli>$ cd /etc/proftpd +
-$ sudo ftpasswd --passwd --name=admiweb --uid=33 --gid=33 --home=/var/www/html --shell=/bin/false +
-ftpasswd: creating passwd entry for user admiweb+
 ... ...
-Password:  +Name (localhost:pi):  
-Re-type password+331 Mot de passe requis pour pi 
 +Password: 
 +230 Utilisateur pi authentifié 
 +... 
 +<cli prompt='> '>ftp> ls 
 +... 
 +drwxr-xr-x   2 pi       pi           4096 Sep  9 16:15 Desktop 
 +... 
 +ftp> cd ..
 ... ...
-ftpasswd: entry created</cli> 
- 
-Vérifiez que l'utilisateur courant peut se connecter : 
-<cli>$ ftp localhost 
-Connected to localhost.localdomain. 
-220 ProFTPD 1.3.4c Server (ProFTPD) [::ffff:127.0.0.1] 
-Name (localhost:xxxxxxx):  
-331 Password required for xxxxxxx 
-Password: 
-230 User xxxxxxx logged in 
-Remote system type is UNIX. 
-Using binary mode to transfer files. 
 ftp> ls ftp> ls
-200 PORT command successful +... 
-150 Opening ASCII mode data connection for file list +drwxr-xr-x  33 pi       pi           4096 Sep  9 17:53 pi 
--rw-r--r--   1 root     root         3607 Feb 27  2017 applications.html +...
--rw-r--r--   1 root     root          177 Feb 27  2017 bitnami.css +
-drwxr-xr-x  21 root     root         4096 Apr  4 11:48 dashboard +
--rw-r--r--   1 root     root        30894 May 11  2007 favicon.ico +
-drwxr-xr-x   2 root     root         4096 Apr  4 11:48 img +
--rw-r--r--   1 root     root          260 Jul  9  2015 index.php +
-drwxr-xr-x   2 daemon   daemon       4096 Apr  4 11:48 webalizer +
-226 Transfer complete+
 ftp> bye ftp> bye
-221 Goodbye.</cli>+221 Au revoir.</cli> 
 +<cli prompt='$ '>pi@framboise:~ $ </cli>  
 +</cli>
  
-De même pour admiweb : +===== Fichier proftpd.conf et dérivés =====
-<cli>$ ftp localhost +
-Connected to localhost.localdomain. +
-220 ProFTPD 1.3.4c Server (ProFTPD) [::ffff:127.0.0.1] +
-Name (localhost:xxxxxxx): admiweb +
-331 Password required for admiweb +
-Password: +
-230 User admiweb logged in +
-Remote system type is UNIX. +
-Using binary mode to transfer files. +
-ftp> ls +
-200 PORT command successful +
-150 Opening ASCII mode data connection for file list +
--rw-r--r--   1 root     root         3607 Feb 27  2017 applications.html +
--rw-r--r--   1 root     root          177 Feb 27  2017 bitnami.css +
-drwxr-xr-x  21 root     root         4096 Apr  4 11:48 dashboard +
--rw-r--r--   1 root     root        30894 May 11  2007 favicon.ico +
-drwxr-xr-x   2 root     root         4096 Apr  4 11:48 img +
--rw-r--r--   1 root     root          260 Jul  9  2015 index.php +
-drwxr-xr-x   2 daemon   daemon       4096 Apr  4 11:48 webalizer +
-226 Transfer complete +
-ftp> bye +
-221 Goodbye.</cli> +
- +
-Vous pouvez maintenant créer tous les utilisateurs nécessaires en répétant cette commande. +
- +
-==== Fichier proftpd.conf et dérivés ====+
  
 Il inclut : Il inclut :
Ligne 268: Ligne 238:
 </WRAP> </WRAP>
  
-==== Premiers réglages ==== +===== Sécurisation TLS =====
- +
-Créez ou éditez avec les droits d'administration le fichier **/etc/proftpd/conf.d/config.conf** pour le modifier comme ceci : +
-  * Dé-commentez la ligne **DefaultRoot** -> Les utilisateurs seront //chrootés// dans leur propre home. +
-  * Vous pouvez aussi personnaliser au besoin : +
-    * **ServerName**, +
-    * **DisplayLogin** +
-    * et **UseIPv6** +
- +
-==== Sécurisation TLS ====+
  
 Le serveur est maintenant en place, cependant, tout ce qui transite entre votre serveur et votre Client FTP transite en clair sur le Net. Le serveur est maintenant en place, cependant, tout ce qui transite entre votre serveur et votre Client FTP transite en clair sur le Net.
Ligne 342: Ligne 303:
 Vous pouvez maintenant vous connecter à votre serveur FTP de manière sécurisée !  Vous pouvez maintenant vous connecter à votre serveur FTP de manière sécurisée ! 
  
-==== Quelques exemples de fichiers de configuration ====+===== Quelques exemples de fichiers de configuration =====
  
   * **Basic** :   * **Basic** :
Ligne 1416: Ligne 1377:
 ++++ ++++
  
-==== Fichier /etc/proftpd/proftpd.conf ====+===== Fichier /etc/proftpd/proftpd.conf =====
  
   * **Fichier Proftpd.conf exemple**   * **Fichier Proftpd.conf exemple**
Ligne 1963: Ligne 1924:
 ++++ ++++
  
-===== Utilisation =====+====== Utilisation ======
  
 Sur un PC du réseau, ouvrez Filezilla et lancez une connexion :{{ logiciel:internet:ftp:proftpd:raspi:proftp-01.png?400 |}} Sur un PC du réseau, ouvrez Filezilla et lancez une connexion :{{ logiciel:internet:ftp:proftpd:raspi:proftp-01.png?400 |}}
-  * Hôte : l'adresse IP du serveur+  * Hôte : l'adresse IP du serveur (ici, un Raspberry)
   * Identifiant : admiweb   * Identifiant : admiweb
   * Mot de passe : son mot de passe   * Mot de passe : son mot de passe
  
 +Interface graphique : [[logiciel:internet:ftp:proftpd:gadmin-proftpd:start]] FIXME
  
-Interface graphique : [[logiciel:internet:ftp:proftpd:gadmin-proftpd:start]] +====== Désinstallation ======
- +
-===== Désinstallation =====+
  
-===== Voir aussi =====+====== Voir aussi ======
  
   * **(fr)** [[http://arobaseinformatique.eklablog.com/mise-en-place-d-un-serveur-ftp-avec-proftpd-a105781016]]   * **(fr)** [[http://arobaseinformatique.eklablog.com/mise-en-place-d-un-serveur-ftp-avec-proftpd-a105781016]]
-  * **(fr)** [[http://]]+  * **(fr)** [[https://raspberrypi-tutorials.fr/comment-configurer-un-serveur-ftp-raspberry-pi-installation-du-serveur-web/]]
  
 ---- ----
-//Basé sur << [[http://|Article]] >> par Auteur.//+//Basé sur << [[https://raspberrypi-tutorials.fr/comment-configurer-un-serveur-ftp-raspberry-pi-installation-du-serveur-web/|Comment configurer un serveur FTP Raspberry Pi – Installation du serveur Web]] >> par raspberrypi-tutorials.fr.//