Ci-dessous, les différences entre deux révisions de la page.
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' | ||
- | |||
- | 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' | ||
- | |||
- | chroot_local_user=YES | ||
- | local_root=/ | ||
- | secure_chroot_dir=/ | ||
- | |||
- | 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 **/ | ||
- | |||
- | user_config_dir=/ | ||
- | |||
- | On indique le service pam à utiliser pour l' | ||
- | |||
- | 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... | ||
- | < | ||
- | local_umask=022 | ||
- | </ | ||
- | * 3 : Une conf par utilisateur, | ||
- | |||
- | < | ||
- | anon_world_readable_only=NO | ||
- | local_root=/ | ||
- | write_enable=YES | ||
- | anon_upload_enable=YES | ||
- | anon_mkdir_write_enable=YES | ||
- | anon_other_write_enable=YES | ||
- | hide_file=(none) | ||
- | force_dot_files=YES | ||
- | </ | ||
- | |||
- | * 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, | ||
- | |||
- | * 6 : On configure le service Pam en éditant le fichier / | ||
- | |||
- | < | ||
- | 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 | ||
- | |||
- | # 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 | ||
- | </ | ||
- | |||
- | Les mots de passes sont en MD5. | ||
- | |||
- | Il ne vous reste plus qu'à éxécuter cette commande mysql pour ajouter tony... | ||
- | |||
- | INSERT INTO ' | ||
- | |||
- | Et voilà !!! | ||
- | |||
- | il se peut que le message d' | ||
- | < | ||
- | seccomp_sandbox=NO | ||
- | </ |