====== Proftpd ====== ===== Le besoin ===== Un service FTP capable d'authentifier les utilisateurs du système ainsi que des utilisateurs "virtuels" maintenu dans une base de donnée. Il faudrait également que ces utilisateurs puissent être "chrooté" dans leur home ou non. ===== Point sur les possibilités de Proftpd ===== Globalement, il répond à toutes ces attentes. Lien : [[http://www.castaglia.org/proftpd/modules/mod_sql.html|Docs mod_sql]] ==== Authentification SQL (MySQL ou PgSQL) ==== * Charger les modules mod_sql.c et mod_sql_postgres.c (ou mod_sql_mysql.c). ==== Configuration de mod_sql ==== SQLBackend mysql # 'mysql' ou 'postgres' SQLConnectInfo proftpd_db@host.sql.org proftpd_user proftpd_pass SQLEngine on SQLAuthenticate on SQLAuthTypes Crypt Plaintext SQLMinID 69000 SQLDefaultGID 69001 ==== Structure de la base de donnée ==== === Utilisateurs === **Table : **//users// /-----------------------------------------------------------------\ | userid | passwd | uid | gid | homedir | shell | |-----------------------------------------------------------------| | user1 | pass | 69001 | 69001 | /home/virtual/user1 | /bin/sh | |-----------------------------------------------------------------| | user2 | pass | 69002 | 69001 | /home/virtual/user2 | /bin/sh | \-----------------------------------------------------------------/ === Groupes === **Table : **//groups// /---------------------------------\ | groupname | gid | members | |---------------------------------| | ftpusers | 69001 | | |---------------------------------| | groupex | 69002 | user1,user2 | \---------------------------------/ **Remarque :** Les noms des champs et des tables peuvent être personnalisés grâce aux directives SQLUserInfo et SQLGroupInfo. **Liens :** * http://www.proftpd.org/docs/directives/linked/config_ref_SQLUserInfo.html * http://www.proftpd.org/docs/directives/linked/config_ref_SQLGroupInfo.html ==== Double authentification ==== AuthOrder mod_sql.c mod_auth_unix.c **Lien : **http://www.proftpd.org/docs/directives/linked/config_ref_AuthOrder.html ==== Création automatique des homes ==== CreateHome on **Lien :** http://www.proftpd.org/docs/directives/linked/config_ref_CreateHome.html ==== Chroot des utilisateurs ==== DefaultRoot ~ !nochroot * **~** : Chrooté l'utilisateur dans son home * **nochroot** : Le nom du groupe des utilisateurs qui auront le droit de ne pas être chrooté. **Lien : **http://www.proftpd.org/docs/directives/linked/config_ref_DefaultRoot.html **Remarque : **Les groupes des utilisateurs SQL et POSIX sont distincts : il faut maintenir le groupe à la fois dans le système POSIX et dans une base SQL avec même le nom (et même gid) ===== Sources d'informations ===== * Directives Proftpd : http://www.proftpd.org/docs/directives/linked/by-name.html * Howto Proftpd : http://www.proftpd.org/docs/howto/index.html