====== Configurare proftpd con MySQL ====== Questo mini how-to senza pretese, spiega come ho configurato il proftpd con MySQL.\\ Questa configurazione ha preso spunto da un link in cui veniva fornita la\\ struttura del database più una base di configurazione valida per la versione 1.2.4.\\ Successivamente con la versione 1.2.5 è stato necessario variare il file di\\ configurazione per adattarlo al cambiamento del mod_sql (4.08 del 2002-06-08)\\ Il sistema operativo che utilizzo è FreeBSD (4.5 & 4.6) e parto dal presupposto\\ che il proftpd sia già stato installato dai ports con i comandi:\\ # cd /usr/ports/ftp/proftpd # make -DWITH_MYSQL # make install Uno shell fittizio Per prima cosa creo uno shell fittizio aggiungendo al file /etc/shells la riga /sbin/nologin User/Group ftp/ftp Inoltre devono esistere (eventualmente lo creo) lo user "ftp" e il relativo gruppo "ftp" i quali dovrebbero avere UID=1000 e GID=1000. Se i UID e GID non dovessero essere questi, variare di conseguenza le configurazioni. ====== Creazione del database ====== Come prima cosa creiamo il database. La struttura l'ho trovata da qualche parte e per\\ ora non ho il link (mi riprometto di cercarla meglio).\\ Comunque ecco la struttura:\\ CREATE DATABASE proftpd # Table structure for table 'ftpusers' CREATE TABLE `ftpusers` ( `loginallowed` char(1) NOT NULL default 'Y', `username` varchar(60) NOT NULL default 'NULL', `uid` int(11) unsigned default '1000', `gid` int(11) unsigned default '1000', `groupname` varchar(50) default 'ftp', `password` varchar(30) default 'NULL', `homedir` varchar(50) default 'NULL', `shell` varchar(15) NOT NULL default '/sbin/nologin', `count` int(11) unsigned default '0', `fretr` int(10) unsigned default '0', `bretr` int(10) unsigned default '0', `bstor` int(10) unsigned default '0', `fstor` int(10) unsigned default '0', `ftime` timestamp(14) NOT NULL, `faddr` varchar(255) default 'NULL', `fhost` varchar(255) default 'NULL', `fcdir` varchar(255) default 'NULL', PRIMARY KEY (`username`) ) -------------------------------------------------------------------------------- **__proftpd.conf per la versione 1.2.4__** Creiamo il file /usr/local/etc/proftpd.conf ServerName "FTP SERVER" ServerType standalone DefaultServer on Port 21 Umask 022 MaxInstances 30 User nobody Group nogroup # Il param PassivePorts # serve insieme al firewall (IPFW) per # permettere le connessioni attraverso #il firewall stesso (v. config/links) PassivePorts 49152 49999 SQLDoGroupAuth on SQLAuthTypes Plaintext Backend SQLConnectInfo proftpd@localhost:3306 user password SQLHomedirField homedir SQLLogDirs off SQLLoginCountField count SQLUserTable ftpusers SQLUsernameField username SQLWhereClause "LoginAllowed = 'y'" SQLGroupTable ftpusers SQLGroupnameField groupname SQLGroupMembersField username SQLAuthoritative off SQLDefaultGID 1000 SQLDefaultUID 1000 SQLPasswordField password TransferLog /var/log/xfer/xferlog DefaultRoot ~ ftp# Normally, we want files to be overwriteable. AllowOverwrite on -------------------------------------------------------------------------------- **__proftpd.conf per la versione 1.2.5__** Creiamo il file /usr/local/etc/proftpd.conf # ServerName "FTP SERVER" ServerType standalone DefaultServer on Port 21 Umask 022 MaxInstances 30 User nobody Group nogroup PassivePorts 49152 49999 SQLAuthenticate on SQLUserInfo ftpusers username password NULL NULL homedir shell SQLAuthTypes Plaintext Backend SQLConnectInfo proftpd@localhost:3306 user password SQLUserWhereClause "LoginAllowed = 'Y'" SQLDefaultGID 1000 SQLDefaultUID 1000 SQLGroupInfo ftpusers groupname gid username #SQLLog PASS updatelogin #SQLNamedQuery updatelogin UPDATE "count=count+1 WHERE username='%u'" ftpusers TransferLog /var/log/xfer/xferlog DefaultRoot ~ ftp# Normally, we want files to be overwriteable. AllowOverwrite on