WikiMiNET

La documentation technique et administrative

Outils pour utilisateurs

Outils du site


wiki:divers:coin_geek:ftp

Différences

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

Lien vers cette vue comparative

wiki:divers:coin_geek:ftp [2016/01/24 22:48]
mfidel
wiki:divers:coin_geek:ftp [2020/06/27 18:16]
Ligne 1: Ligne 1:
-====== Créer un FTP privé ====== 
  
-Le tour de force de cette configuration est qu'elle vous évite de créer des utilisateurs UNIX sur votre machine, comme ce serais le cas avec d'autres solutions, telle que **proftpd**. A chaque connexion le serveur FTP va interroger la base de donnée pour savoir si l'utilisateur utilise le bon mot de passe. C'est donc un cran au dessus en terme de sécurité :p 
- 
-Vous aurez pour cela besoin d'une base de donnée ainsi que d'un serveur **vsftpd** (peuvent être sur deux machines différentes). 
- 
-  * 1 : Installez **vsftpd** : 
- 
-    apt-get install vsftpd 
- 
-  * 2 : Configuration de **vsftpd** : 
- 
-Réglage des ports : 
- 
-    listen_port=22 
-    pasv_min_port=20000 
-    pasv_max_port=20050  
- 
-Nous allons utiliser les utilisateurs locaux : 
- 
-    local_enable=YES 
- 
-On veux aussi que ces utilisateurs soient restreints à un dossier, par exemple pour es restraindre au **/home** de l'utilisateur **ftp**: 
- 
-    chroot_local_user=YES 
-    local_root=/home/ftp/ 
-    secure_chroot_dir=/var/run/vsftpd  
- 
-On active les utilisateurs virtuels et on les fait se passer pour un compte, ici ftp: 
- 
-    guest_enable=YES 
-    guest_username=ftp 
- 
-On retire ensuite tous les droits par défaut... 
- 
-    anon_world_readable_only=YES 
-    write_enable=NO 
-    anon_upload_enable=NO 
-    anon_mkdir_write_enable=NO 
-    anon_other_write_enable=NO 
-    hide_file=* 
-    force_dot_files=YES 
- 
-On oublie pas de dire où trouver la configuration par utilisateur : 
- 
-Je vous conseille de créer un dossier **/etc/vsftpd** et de la mettre dedans... 
- 
-    user_config_dir=/etc/vsftpd 
- 
-On indique le service pam à utiliser pour l'authentification: 
- 
-    pam_service_name=vsftpd 
- 
-Reglez la bannière de votre FTP : 
- 
-    ftpd_banner=Bienvenue sur ce serveur FTP ! 
- 
-Pensez aussi à régler votre masque comme bon vous semble... 
-<code> 
-    local_umask=022 
-</code> 
-  * 3 : Une conf par utilisateur, par exemple pour tony, éditez /etc/vsftpd/tony : 
- 
-<code> 
-anon_world_readable_only=NO 
-local_root=/home/ftp/tony 
-write_enable=YES 
-anon_upload_enable=YES 
-anon_mkdir_write_enable=YES 
-anon_other_write_enable=YES 
-hide_file=(none) 
-force_dot_files=YES 
-</code> 
- 
-  * 4 : Nous allons utiliser **mysql** comme base de donnée. Installez donc **libpam-mysql** : 
- 
-    apt-get install libpam-mysql 
- 
-  * 5 : Préparation de la base de donnée : 
- 
-Prenez votre base de donnée et créez une table contenant les champs name et pass. 
- 
-Nous supposons qu'un utilisateur **bidule** avec le mot de passe **truc** a des droits sur la base de donnée **ftp** où existe la table **users** définie comme précédement, le tout sur le serrveur à l'adresse **ip_server** ... 
- 
-  * 6 : On configure le service Pam en éditant le fichier /etc/pam.d/vsftpd: 
- 
-<code> 
-auth required pam_mysql.so host=ip_server user=bidule passwd=truc db=ftp table=users usercolumn=name passwdcolumn=pass crypt=3 
-account required pam_mysql.so host=ip_server user=bidule passwd=truc db=ftp table=users usercolumn=name passwdcolumn=pass crypt=3 
- 
- 
-# Standard behaviour for ftpd(8). 
-auth    required        pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed 
- 
-# Note: vsftpd handles anonymous logins on its own. Do not enable pam_ftp.so. 
- 
-# Standard pam includes 
-#@include common-account 
-#@include common-session 
-#@include common-auth 
-#auth   required        pam_shells.so 
-</code> 
- 
-Les mots de passes sont en MD5. 
- 
-Il ne vous reste plus qu'à éxécuter cette commande mysql pour ajouter tony... 
- 
-    INSERT INTO 'users'(`name`, `pass`) VALUES('tony',MD5('tony_password')) 
- 
-Et voilà !!! 
- 
-il se peut que le message d'erreur suivant apparaisse : 500 OOPS: priv_sock_get_cmd, dans ce cas rajoutez simplement dans le fichier conf la ligne  
-<code>  
-seccomp_sandbox=NO 
-</code> 
wiki/divers/coin_geek/ftp.txt · Dernière modification: 2020/06/27 18:16 (modification externe)