Proftpd

De BlaxWiki
Révision datée du 22 août 2014 à 08:41 par 217.174.199.129 (discussion)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigationAller à la recherche


Configuration proftpd

  • Ip privée natée

Si le serveur ftp a juste une ip privée qui est natée sur une ip publique, il faut rajouter une ligne de conf : MasqueradeAddress $ip_publique, sinon le serveur envoie son addresse privé pour établir la connexion data et cela ne fonctionnera pas

  • Configuration pour que l'authentification des users se fasse via une base mysql
<IfModule mod_sql.c>
 SQLBackend            mysql
</IfModule>


SQLAuthTypes Plaintext
SQLAuthenticate users*
SQLConnectInfo                  proftpd@localhost usermysql motdepasse
SQLHomedirOnDemand              on
SQLUserInfo                     ftpuser userid passwd uid gid homedir shell
SQLUserWhereClause              "LoginAllowed = 'true'"
SQLDefaultGID                   5000
  • Structure de la base mysql
CREATE DATABASE `proftpd`;
USE proftpd;

CREATE TABLE `ftpuser` (
`id` int(10) unsigned NOT NULL auto_increment,
`userid` varchar(32) NOT NULL default '',
`passwd` varchar(32) NOT NULL default '',
`uid` smallint(6) NOT NULL default '5500',
`gid` smallint(6) NOT NULL default '5500',
`homedir` varchar(255) NOT NULL default '',
`shell` varchar(16) NOT NULL default '/bin/false',
`count` int(11) NOT NULL default '0',
`accessed` datetime NOT NULL default '0000-00-00 00:00:00',
`modified` datetime NOT NULL default '0000-00-00 00:00:00',
`LoginAllowed` enum('true','false') NOT NULL default 'true',
PRIMARY KEY (`id`)
) TYPE=MyISAM COMMENT='Table des utlisateurs ProFTPD'; 

CREATE TABLE `ftpuser` ( `id` int(10) unsigned NOT NULL auto_increment, `userid` varchar(32) NOT NULL default '', `passwd` varchar(32) NOT NULL default '', 
`uid` smallint(6) NOT NULL default '5500', `gid` smallint(6) NOT NULL default '5500', `homedir` varchar(255) NOT NULL default '', `shell` varchar(16) NOT 
NULL default '/bin/false', `count` int(11) NOT NULL default '0', `accessed` datetime NOT NULL default '0000-00-00 00:00:00', `modified` datetime NOT NULL 
default '0000-00-00 00:00:00', `LoginAllowed` enum('true','false') NOT NULL default 'true', PRIMARY KEY (`id`) ) TYPE=MyISAM COMMENT='Table des utlisateurs 
ProFTPD';


Problématique multi user avec droits sur plusieurs répertoires

Il arrive souvent que le client désire plusieurs compte ftp avec certains comptes qui peuvent écrire dans plusieurs répertoires qui sont aussi utilisés par d'autres users ftp. La meilleur solution est de créer autant de groupe au niveau du system (dans vigr) correspondant à chaque répertoire (nom du groupe pareil que celui du répertoire), de faire un setgid sur les répertoires, et de modifier le umask de proftp en 002 afin que le groupe ait les droits d'écriture. Cela est plus sécurisé de mettre les user dans les groupes de user, car si on veut que le user x puisse écrire dans le répertoire du user y, on ne veut pas forcément que le user y puisse écrire dans le répertoire du user x; ce qui est inévitable si on met les user dans le group des autres users.

[root@prod01.leduff sites]# ll
total 76
drwxrwsr-x 2 root mobile.delarte.fr            4096 Aug 21 12:54 mobile.delarte.fr
drwxrwsr-x 2 root recrutement.delarte.fr       4096 Aug 21 12:44 recrutement.delarte.fr
drwxrwsr-x 2 root recrutement.groupeleduff.com 4096 Aug 21 14:35 recrutement.groupeleduff.com
drwxrwsr-x 2 root serviceclient.delarte.fr     4096 Aug 21 12:59 serviceclient.delarte.fr