====== 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