Tutoriels Linux Debian

Gérer plusieurs clés SSH de manière simple et automatique Lorsqu'on développe on utilise parfois une paire de clés SSH public/privée pour s'authentifier auprès d'un serveur distant. On utilise un système de clé publique/ clé privée couplée à un agent...

Lire la suite

Héberger son site internet sur son serveur dédié... Avant d'entrer dans le vif de ce tuto, notons que pour des raisons pratiques, sur le serveur dédié : les sites seront installés sur /home/nomdusite/. chaque site contient un répertoire logs/...

Lire la suite

Compilation du noyau sous debian ( kernel ) La compilation du noyau Debian peut être une étape nécessaire dans l'exploitation du système. La gestion des pilotes de périphériques est géré différemment sous Linux que sur Windows. Les pilotes...

Lire la suite

TCPDump ou comment sniffer le trafic TCP sous Linux... Tcpdump est un outil d'analyse réseau très répandu chez les amateurs de sécurité de l'information et de routage réseau. Tcpdump affiche les en-têtes de paquets d'une interface réseau en fonction...

Lire la suite

Les commandes top et htop La commande top La commande top permet de lister l'ensemble des processus et de ressources utilisées sur votre système linux, Unix ou BSD. [bash] top [/bash] Précisons la 3ème ligne : Options...

Lire la suite

  • Prev
  • Next

pure-ftpd avec MySQL

1

Category : FTP

  • Installer pure-ftpd-mysql
  • apt-get install pure-ftpd-mysql
    

    Run pure-ftpd from inetd or as a standalone server? standalone
    Do you want pure-ftpwho to be installed setuid root? No

    Ensuite on crée un utilisateur FTP et son groupe FTP auxquels seront mappé tous les utilisateurs virtuels des comptes FTP

    groupadd -g 2001 ftpgroup
    useradd -u 2001 -s /bin/false -d /bin/null -c "pureftpd user" -g ftpgroup ftpuser
    
  • Création de la BDD
  • La BDD se nomme pureftpd et l’utilisateur MySQL pour le démon pure-FTPd sera aussi pureftpd.

    mysql -u root -p
    CREATE DATABASE pureftpd;
    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost' IDENTIFIED BY 'pureftpd_password';
    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost.localdomain' IDENTIFIED BY 'pureftpd_password';
    FLUSH PRIVILEGES;
    

    remplacer le mot de passe « pureftpd_password » par le mot de passe MySQL de l’utilisateur pureftpd.
    On crée la table …

    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;
    

    … et on retourne au shell

    quit;
    
  • Configuration de pure-FTPd
  • on édite le fichier de configuration qui nous intéresse

    nano /etc/pure-ftpd/db/mysql.conf
    [... ...]
    MYSQLSocket      /var/run/mysqld/mysqld.sock
    #MYSQLServer     localhost
    #MYSQLPort       3306
    MYSQLUser       pureftpd
    MYSQLPassword   pureftpd_password
    MYSQLDatabase   pureftpd
    #MYSQLCrypt md5, cleartext, crypt() or password() - md5 is VERY RECOMMENDABLE uppon cleartext
    MYSQLCrypt      md5
    MYSQLGetPW      SELECT Password FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
    MYSQLGetUID     SELECT Uid FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
    MYSQLGetGID     SELECT Gid FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
    MYSQLGetDir     SELECT Dir FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
    MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
    MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
    MySQLGetQTASZ   SELECT QuotaSize FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
    MySQLGetQTAFS   SELECT QuotaFiles FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
    

    Ensuite on crée le fichier de configuration /etc/pure-ftpd/conf/ChrootEveryone contenant « yes » afin de chrooter systématiquement tous les utilisateurs, c’est à dire à faire en sorte qu’ils ne puissent pas naviguer en dehors de leur répertoire d’attribution.

    nano /etc/pure-ftpd/conf/ChrootEveryone
    
    yes

    idem pour la création du fichier de configuration /etc/pure-ftpd/conf/CreateHomeDir
    Cette option de configuration permet de créer automatiquement un nouveau répertoire pour le nouvel utilisateur qui se connecte pour la première fois.

    On reboot le serveur FTP

    /etc/init.d/pure-ftpd-mysql restart
    

    Reste à installer phpmyadmin si le coeur vous en dit

VN:F [1.9.22_1171]
Rating: 6.0/10 (2 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)
pure-ftpd avec MySQL, 6.0 out of 10 based on 2 ratings
Be Sociable, Share!

Soutenez le blog :)

One Response to “pure-ftpd avec MySQL”

  1. 1
    Johan Says:

    Bonjour,
    L’article est toujours valide en 2013, il y a juste un petit soucis avec la création du répertoire home des utilisateurs virtuels.
    Il faut qu’ils soient crées dans un répertoire appartenant à l’utilisateur root sinon la création ne se fait pas et l’utilisateur ne peux pas se connecter…

    #my2cents

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.22_1171]
    Rating: 0 (from 0 votes)

Leave a Reply