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
logiciel:internet:ftp:proftpd:start [2020/09/11 10:10] – [Utilisateurs virtuels] adminlogiciel:internet:ftp:proftpd:start [2022/08/13 22:14] (Version actuelle) – modification externe 127.0.0.1
Ligne 18: Ligne 18:
 Pour utiliser une authentification sur une base de données, installez les paquets **proftpd-mod** suggérés correspondants. Pour utiliser une authentification sur une base de données, installez les paquets **proftpd-mod** suggérés correspondants.
 </WRAP> </WRAP>
- +  - Installez les paquets **[[apt>proftpd,ftp]]** ou (cas d'un Raspberry Pi) :<cli>...@...:~$ sudo apt install proftpd ftp</cli>
-  - Installez les paquets **[[apt>proftpd,ftp]]** ou <cli>...@...:~$ sudo apt install proftpd ftp</cli>Pour un Raspberry Pi :<cli>pi@framboise:~ $ sudo apt install proftpd ftp</cli>+
     * **ftp** pour les tests     * **ftp** pour les tests
-    * Vous pouvez installer aussi les paquets **[[apt>proftpd-mod-ldap,proftpd-mod-mysql,proftpd-mod-odbc,proftpd-mod-pgsql,proftpd-mod-sqlite,proftpd-mod-geoip]]** ou <cli>pi@framboise:~ $ sudo apt install proftpd-mod-ldap proftpd-mod-mysql proftpd-mod-odbc proftpd-mod-pgsql proftpd-mod-sqlite proftpd-mod-geoip</cli> 
     * Lors de l’installation, il peut vous être demandé comment ProFTP doit être démarré. Choisissez **autonome** (**standalone**) :{{ logiciel:internet:ftp:proftpd:proftpd-01.png?400 |}}     * Lors de l’installation, il peut vous être demandé comment ProFTP doit être démarré. Choisissez **autonome** (**standalone**) :{{ logiciel:internet:ftp:proftpd:proftpd-01.png?400 |}}
 +    * Vous pouvez installer aussi les paquets **[[apt>proftpd-mod-ldap,proftpd-mod-mysql,proftpd-mod-odbc,proftpd-mod-pgsql,proftpd-mod-sqlite,proftpd-mod-geoip]]** ou<cli>...@...:~$ sudo apt install proftpd-mod-ldap proftpd-mod-mysql proftpd-mod-odbc proftpd-mod-pgsql proftpd-mod-sqlite proftpd-mod-geoip</cli>
     * L'installation crée les utilisateurs système suivants :     * L'installation crée les utilisateurs système suivants :
-      * **proftpd** (UID 127), groupe **nogroup** ; __pas de création de répertoire personnel__ **/run/proftpd**.+      * **proftpd** (UID 127), groupe **nogroup** ; __pas de répertoire personnel__ **/run/proftpd**.
       * **ftp** (UID 128), groupe **nogroup** ; création du répertoire personnel **/srv/ftp** »...       * **ftp** (UID 128), groupe **nogroup** ; création du répertoire personnel **/srv/ftp** »...
-  - Vérifiez que ftp fonctionne sous l'utilisateur en cours :<cli>...@...:~$ ftp localhost+  - Vérifiez que ftp fonctionne sous l'utilisateur en cours (**pi** pour un Raspberry Pi) :<cli>...@...:~$ ftp localhost
 ... ...
 <cli prompt=': '>Name (localhost:xxxxxxx):  <cli prompt=': '>Name (localhost:xxxxxxx): 
Ligne 42: Ligne 41:
 221 Au revoir.</cli></cli> 221 Au revoir.</cli></cli>
 <cli>...@...:~$ </cli> <cli>...@...:~$ </cli>
-</cli>Pour un Raspberry Pi, vérifiez que ftp fonctionne sous l'utilisateur **pi** :<cli>pi@framboise:~ $ ftp localhost 
-Connected to localhost. 
-220 ProFTPD Server (Debian) [::1] 
-<cli prompt=': '>Name (localhost:pi):  
-331 Mot de passe requis pour pi 
-Password:  
-230 Utilisateur pi authentifié 
-Remote system type is UNIX. 
-Using binary mode to transfer files.</cli> 
-<cli prompt='> '>ftp> ls 
-... 
-drwxr-xr-x   2 pi       pi           4096 Aug 18 16:15 Desktop 
-... 
-drwxr-xr-x   5 pi       pi           4096 Aug  6  2017 Documents 
-drwxr-xr-x   2 pi       pi           4096 Oct 29  2019 Downloads 
-... 
-ftp> bye 
-221 Au revoir.</cli> 
-<cli prompt='$ '>pi@framboise:~ $ </cli> 
 </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 ======
  
Ligne 72: Ligne 53:
 └── conf.d └── conf.d
 </cli> </cli>
-  * **Pour le listing des fichiers de la distribution**, voir [[logiciel:internet:ftp:proftpd:fichiers_dist]]+  * **Pour le listing des fichiers de la distribution**, voir [[logiciel:internet:ftp:proftpd:dist:start]]
 </WRAP> </WRAP>
  
Ligne 94: Ligne 75:
  
 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**
- 
   - Vérifiez l'existence de l'utilisateur **www-data** et de son groupe :<cli>...@...:~$ id www-data    - Vérifiez l'existence de l'utilisateur **www-data** et de son groupe :<cli>...@...:~$ id www-data 
-uid=33(www-data) gid=33(www-data) groupes=33(www-data)</cli> -> L’identifiant du groupe **www-data** est **33**.\\ Si le groupe **www-data** n'existe pas, créez-le ainsi que l'utilisateur **www-data** par :<cli>...@...:~$ sudo groupadd www-data+uid=33(www-data) gid=33(www-data) groupes=33(www-data)</cli> -> L’identifiant du groupe **www-data** est **33**. 
 +    * Si le groupe **www-data** n'existe pas, créez-le ainsi que l'utilisateur **www-data** par :<cli>...@...:~$ sudo groupadd www-data
 ...@...:~$ sudo useradd -g www-data -d /var/www -s /bin/false www-data</cli> ...@...:~$ sudo useradd -g www-data -d /var/www -s /bin/false www-data</cli>
-  - Créez un nouvel utilisateur virtuel ayant accès à **/var/www/html** (le webmestre **admiweb**, de home **/var/www/html**, avec les uid et gid de **www-data**) :<cli>...@...:~$ cd /etc/proftpd/+  - Créez un nouvel utilisateur virtuel ayant accès à **/var/www/html** (le webmestre **admiweb**, de home **/var/www/html**, avec les uid et gid de **www-data**, fournissez et confirmez le **mot de passe** du nouveau compte) :<cli>...@...:~$ cd /etc/proftpd/
 ...@...:/etc/proftpd$ sudo ftpasswd --passwd --name admiweb --gid 33 --uid 33 --home /var/www/html --shell /bin/false ...@...:/etc/proftpd$ sudo ftpasswd --passwd --name admiweb --gid 33 --uid 33 --home /var/www/html --shell /bin/false
 ftpasswd: creating passwd entry for user admiweb ftpasswd: creating passwd entry for user admiweb
Ligne 128: Ligne 109:
 # 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 146: Ligne 142:
 ==== 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 161: 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 184: 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>  
-De même pour admiweb : +</cli>
-<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. +
-ftpls +
-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 +
-ftpbye +
-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 ==== ==== Fichier proftpd.conf et dérivés ====
Ligne 287: Ligne 237:
 Après chaque changement de configuration, pensez à relancer proftpd :<cli>$ sudo systemctl restart proftpd</cli> Après chaque changement de configuration, pensez à relancer proftpd :<cli>$ sudo systemctl restart proftpd</cli>
 </WRAP> </WRAP>
- 
-==== Premiers réglages ==== 
- 
-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 ==== ==== Sécurisation TLS ====
Ligne 1986: Ligne 1927:
  
 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 =====
Ligne 1998: Ligne 1938:
  
   * **(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.//