Passer au contenu principal

Proftpd

Installation

Paquets necessaires : proftpd,proftpd-mysql, mysql.

Configuration

  • /etc/proftpd.conf : fichier de configuration principal, il faudrait éviter de l'éditer directement.
  • /etc/proftpd : dossier contenant la suite de la configuration séparée en différement fichiers en fonction des fonctionnalités :
    • /etc/proftpd/modules.conf : contient la liste des modules proftpd chargés ;
    • /etc/proftpd/sql.conf : configuration de la liaison avec mysql pour gérer les utilisateurs virtuels (actuellement l'authentification mysql est la méthode principale et authoritaire);
    • /etc/proftpd/tls.conf: configuration du chiffrage des connexion avec TLS.

Gestion des utilisateurs avec MySQL

La base de donnée utilisée pour l'authentification est timonier, accessible avec l'utilisateur homonyme, le mot de passe peut être trouvé dans le fichier de configuration de sql pour proftpd (voir ci-dessus).

La structure de la base de donnée est la suivante :

  • Table ftpusers, le mot de passe du champs password doit être hashé avec la méthode native de mysql PASSWORD():
id username password uid gid homedir shell
  • Table ftpgroups, doit contenir une entrée pour chaque utilisateur de la table ftpuser :
groupname gid members

Pour plus de renseignements sur les type des champs, le script suivant à été utilisé pour créer la base de donnée :

drop table if exists ftpusers;
drop table if exists ftpgroups;

create table `ftpusers` (
        `id` int(10) unsigned not null auto_increment,
        `username` varchar(32) not null,
        `password` varchar(42) not null,
        `uid` smallint(6) not null,
        `gid` smallint(6) not null,
        `homedir` varchar(255) not null,
        `shell` varchar(32) not null,
        primary key(`id`),
        unique key (`username`, `uid`)
) engine=InnoDB default charset=utf8;

create table `ftpgroups` (
        `groupname` varchar(32) not null,
        `gid` smallint(10) not null,
        `members` varchar(255) default ''
) engine=InnoDB default charset=utf8