Geocaching Mowgly666 et Minos666WikiGalerieGeocachingLeMinosContactSe connecterS'inscrire
  • Wiki
  • Galerie
  • Geocaching
  • LeMinos
  • Contact

  • S'inscrire

Wiki - Tutos - Notes ( MinosHome | MH8 )

  • Page de garde
  • Dernières pages
  • Derniers commentaires

Tuto pour installer et configurer le serveur FTP PureFTP en utilisant MySQL comme base de données pour gérer ses utilisateurs virtuels (utilisateurs non système Unix).

Ici le but est que chaque utilisateur aie tous les droits sur un dossier placé dans notre home perso. Après pour ceux qui veulent aller plus loin, il y aura moyen de jouer sur les liens symboliques pointant dans d'autres dossiers de notre système, avec la gestion des droits qui va avec (symlinks), qui n'est pas encore abordé dans ce tuto... bon courage!!!

PureFTP avec base MySQL - Installation et configuration du serveur FTP

Tout d'abord, l'idéal est de passer par la console, sous l'utilisateur root

Installation du serveur web (apache2) et du serveur de base de données (mysql), l'interface web phpmyadmin pour gérer MySQL simplement

apt-get install mysql-server mysql-client phpmyadmin apache2

Installation du serveur FTP PureFTP, avec gestion de MySQL

apt-get install pure-ftpd-mysql

Ajout de l'utilisateur et groupe système avec lesquels travaillera le serveur FTP

groupadd -g 2001 ftpgroup

useradd -u 2001 -s /bin/false -d /bin/null -c "pureftpd user" -g ftpgroup ftpuser

Création d'une base de données avec authentification

nom de la base : pureftpd
login : pureftp
pass : password

Commande pour entrer dans MySQL, Puis création de l'utilisateur relatif à la table à créer prochainement

mysql -u root -p

create database pureftpd character set utf8;

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftp'@'localhost' IDENTIFIED BY 'password';

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftp'@'localhost.localdomain' IDENTIFIED BY 'password';

FLUSH PRIVILEGES;

Toujours dans mysql >, création de la table (son nom sera ici ftpd) et de ses champs :
USE pureftpd;

CREATE TABLE ftpd (
User varchar(16) NOT NULL default '',
status enum('0','1') NOT NULL default '0',
Password varchar(64) NOT NULL default '',
Uid varchar(11) NOT NULL default '-1',
Gid varchar(11) NOT NULL default '-1',
Dir varchar(128) NOT NULL default '',
ULBandwidth smallint(5) NOT NULL default '0',
DLBandwidth smallint(5) NOT NULL default '0',
comment tinytext NOT NULL,
ipaccess varchar(15) NOT NULL default '*',
QuotaSize smallint(5) NOT NULL default '0',
QuotaFiles int(11) NOT NULL default 0,
PRIMARY KEY (User),
UNIQUE KEY User (User)
) TYPE=MyISAM;

Toujours dans MySQL, création d'un utilisateur virtuel (compte utilisable pour se connecter au serveur), qui pointera dans un dossier par exemple /home/mon_user/ftp-commun
nom du gugusse : fiston
mot de passe de cet utilisateur stocké en md5 : motdepasse

Commande mysql à taper : mysql.user.virtuel.txt
Puis pour terminer et sortir des commandes :
quit

Configuration du serveur FTP pour dialoguer avec MySQL :

Au préalable, on peut faire une copie de sauvegarde du fichier d'origine... (avec sudo au cas où...)
cp /etc/pure-ftpd/db/mysql.conf /etc/pure-ftpd/db/mysql.conf.ori

Contenu du fichier /etc/pure-ftpd/db/mysql.conf qui va bien :

Contenu : mysql.conf.txt

On relance le serveur FTP avec la config,
/etc/init.d/pure-ftpd-mysql stop
/etc/init.d/pure-ftpd-mysql start

Voila!

Quelques autres trucs pour peaufiner la configuration du serveur :

  • Bloquer les utilisateurs dans le dossier prévu :
    echo "yes" > /etc/pure-ftpd/conf/ChrootEveryone
  • Afficher les fichiers commencant par un point :
    echo "yes" > /etc/pure-ftpd/conf/DisplayDotFiles
  • Adresse IP de notre connexion internet (attention au loopback! configurer son client avec cette IP s'il on se trouve dans le même LAN, à tester si ca merdouille) :
    echo "ADRESSE_IP_INTERNET" > /etc/pure-ftpd/conf/ForcePassiveIP
  • Fourchette de ports pour le mode passif, ici du port 51000 à 51050 :
    echo "51000 51050" > /etc/pure-ftpd/conf/PassivePortRange
  • Limiter affichage du nombre de dossiers/fichiers (en théorie pour éviter les attaques ddos), ici 2000 fichiers et 5 niveaux de répertoire :
    echo "2000 5" > /etc/pure-ftpd/conf/LimitRecursion
  • Nombre maximum de connexions clientes par IP, ici 5 (4 pour les transferts de fichiers + 1 pour la navigation) :
    echo "5" > /etc/pure-ftpd/conf/MaxClientsPerIP
  • Temps avant déconnexion automatique du client s'il dort devant son ordi (en minutes) :
    echo "5" > /etc/pure-ftpd/conf/MaxIdleTime
  • Pour gérer l'umask par défaut des dossiers et fichiers créés par les utilisateurs (ici 777) (site pour le calcul de l'umask)
    echo "000 000" > /etc/pure-ftpd/conf/Umask
  • Liens symboliques :
    Dans le fichier /etc/default/pure-ftpd-common
    passer VIRTUALCHROOT=false (défaut) à VIRTUALCHROOT=true
  • Pour afficher d'autres répertoires qui se trouve ailleurs dans l'arborescence de son linux, il faudra passer par un lien symbolique ! (attention aux droits!!!)
    -> Petite astuce avec Gnome 2, ouvrir le navigateur de fichiers Nautilus, puis F3 pour ouvrir un 2e panneau. Avec le clic molette centrale, prendre le dossier cible et le faire glisser dans le dossier du FTP, puis sélectionner "Lier ici".
    -> En ligne de commande, se placer dans le dossier où on veut créer son lien symbolique puis :
    ln -s /chemin_du_répertoire_ciblé nom_du_lien

Quelques sites d'inspiration, avec le sujet du crytage via SSL :

[http://doc.ubuntu-fr.org/pure-ftp](http://doc.ubuntu-fr.org/pure-ftp)
[http://www.planetmy.com/blog/how-to-configure-pureftpd-over-ssl](http://www.planetmy.com/blog/how-to-configure-pureftpd-over-ssl)
[http://blog.cheramy.name/2010/12/22/pureftpd-tls-clamav-sur-debian-lenny](http://blog.cheramy.name/2010/12/22/pureftpd-tls-clamav-sur-debian-lenny)
[http://www.howtoforge.com/virtual-hosting-with-pureftpd-and-mysql-incl-quota-and-bandwidth-management-on-debian-squeeze](http://www.howtoforge.com/virtual-hosting-with-pureftpd-and-mysql-incl-quota-and-bandwidth-management-on-debian-squeeze)
[http://www.howtoforge.com/how-to-configure-pureftpd-to-accept-tls-sessions-on-ubuntu-10.10](http://www.howtoforge.com/how-to-configure-pureftpd-to-accept-tls-sessions-on-ubuntu-10.10)

Site du projet
Doc chez sourceforge

Réf:
[http://www.pureftpd.org/project/pure-ftpd](http://www.pureftpd.org/project/pure-ftpd)

Created by minos • Last edit by minos on 21.11.15 11:00

PureFTP avec base MySQL - Installation et configuration du serveur FTP

  1. Wiki - Tutos - Notes ( MinosHome | MH8 )
  2. Linux
  3. Debian (et autres...)
  4. PureFTP avec base MySQL - Installation et configuration du serveur FTP

Aucun commentaire pour le moment


Formulaire en cours de chargement...

Chercher dans ce manuel:

Hiérarchie de contenu

  • Navigateurs (browsers)
  • Thunderbird (courriel)
  • Linux
    • Debian (et autres...)
      • Apt-get derrière un proxy avec authentification (debian distro based)
      • Apticron - Envoyer un mail quand une mise à jour de sécurité est disponible
      • Audacious - Thunar -> clic droit lire, et enqueue
      • Badblocks - commande pour vérifier et marquer les secteurs défectueux d'un disque dur
      • Bureau à distance - XRDP
      • CUPS - Brother HL-2030 - Debian 9
      • Cartes wifi Intel, driver proprio
      • Chiffrement disque système + swap, durant l'installation
      • Connaitre infos paramétrages carte réseau
      • Console - désactiver la veille écran
      • Console : régler / désactiver l'écran de veille
      • Crontab
      • Créer un fichier ISO à partir d'un CDROM
      • Default XFCE xsession MATE + liste Users
      • Firefox Sync Server 1.5 - Script to launch sync server during boot
      • Forcer la vérification des disques au boot (fsck)
      • IP fixe
      • IPTables - appliquer les règles au reboot (parefeu netfilter)
      • Munin - Smartmontools - monitoring des disque durs via S.M.A.R.T.
      • MySQL Dump/Restore
      • Pflogsumm - statistiques quotidiennes du serveur mail
      • PureFTP avec base MySQL - Installation et configuration du serveur FTP
      • Services - listage complet, actifs ou inactifs
      • Table de caractères
      • Tor client + Privoxy + Connection directe via SOCKS (pour son LAN)
      • Tor relay + Privoxy
      • Tor relay + SOCKS directement pour son LAN
      • Unbound : Serveur DNS à la maison | requêtes aux DNS racines mondiaux
    • FreedomBox
    • Manjaro
    • Raspberry Pi
    • Firefox OS
  • Jeux (serveurs)
  • Jeux (pour le joueur)
  • Routeurs-Hotspots
  • Windows
  • Recettes
  • Autre...

Posts récents

  • Antipub - uBlock Origin
  • Créer un fichier ISO à partir d'un CDROM
  • Windows 10 create USB boot install - Rufus tool
  • Vin d'épine
  • Fléchettes - position et hauteur de la cible

Recent photos

Antipub - uBlock Origin
lecteur cdrom
Windows 10 create USB boot install - Rufus tool
Fléchettes - position et hauteur de la cible
Fléchettes - position et hauteur de la cible
Quota - affichage constant
Quota - affichage constant
Quota - affichage constant
Pâte à crêpe (sans oeuf)

Commentaires récents

  • minos le Sync client : url personnalisée pour serveur sync perso
  • MinoTof le Badblocks - commande pour vérifier et marquer les secteurs défectueux d'un disque dur
b2evolution

CC

Licence Creative Commons
Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.

This collection ©2025 by Petrus • Contact • Aide • Photo gallery software

Cookies are required to enable core site functionality.