&8730; www.kdev.it ProFTPd Guida per ottenere un server ProFTPd con back-end MySQL. Guida per ottenere un server ProFTPd con back-end MySQL. Condizioni strettamente necessarie: - Mac OS X Developer Tools: http://developer.apple.com/tools/ - MySQL (suggerisco di seguire le istruzioni su www.entropy.ch) www.mysql.com - ProFTPd: http://www.proftpd.org - ftp://ftp.proftpd.org/distrib/source/proftpd-1.2.9.tar.gz Mac OS X Developer Tools Come prima cosa assicuratevi di avere i Developer Tools installati. (Nella root del vostro disco dovete avere una cartella Developer). Nel caso non siano presenti scaricateli http://developer.apple.com/tools/ e installateli come un normale software applicativo per X (richiesta la password di amministratore). Attenzione: i Developer tools pesano circa 200 Mb. e potrebbe essere un problema downloadarli, leggete su http://developer.apple.com/ i vari metodi per ottenere il software ad esempio su CD-ROM. Con i Developer Tools potete ora compilare i source. MySQL Seguite le istruzioni sul sito http://www.entropy.ch/software/macosx/mysql/ e installate il package pre-compilato per il vostro Mac OS X, 10.1.X o 10.2.X, esse sono disponibili in lingua italiana all'url http://www.tevac.com/entropy-ita/ ProFTPd Ora siamo pronti per compilare e configurare ProFTPd. curl -O ftp://ftp.proftpd.org/distrib/source/proftpd-1.2.9.tar.gz tar xzvf proftpd-1.2.9.tar.gz cd proftpd-1.2.9./configure --with-modules=mod_sql:mod_sql_mysql --with-includes=/usr/local/include --with-libraries=/usr/local/lib/mysql make make install Ora che profdtpd é compilato e installato dobbiamo configurare il modulo per leggere il back-end mysql. Come prima cosa dobbiamo creare il "back-end" ovvero il database dove saranno contenute le informazioni per il login. Potete scaricare il file contenente le istruzioni SQL per creare il database da eseguire con phpmyadmin
&8730; www.kdev.it http://www.kdev.it/config/proftpd.sql.tgz Il file contiene le seguenti istruzioni: 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(255) default '/Users/ftp/default/', `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`) ) TYPE=MyISAM;
&8730; www.kdev.it Ora dovete creare uno user di mysql da utilizzare per le connessioni al db back-end proftp. Sostituite lo user nel file di configurazione di proftpd in /usr/local/etc/proftpd.conf il file di configurazione di proftpd é disponibile all'indirizzo: http://www.kdev.it/config/proftpd.conf.tgz Il file di configurazione contiene le seguenti direttive: ServerName "KDEV" ServerType inetd DefaultServer on Port 21 Umask 022 MaxInstances 15 User ftp Group ftp PassivePorts 49152 49999 UseReverseDNS off IdentLookups off SQLAuthenticate on SQLUserInfo ftpusers username password NULL NULL homedir shell SQLAuthTypes Plaintext Backend SQLConnectInfo proftpd@localhost:3306 proftpd password <--- sostituisci qui le info del tuo user SQLUserWhereClause "LoginAllowed = 'Y'" SQLDefaultGID 1000 SQLDefaultUID 1000 SQLGroupInfo ftpusers groupname gid username SQLHomedirOnDemand on SQLDefaultHomedir /Users/ftp/default/cd1/ SQLDefaultHomedir homedir SQLLog PASS updatelogin SQLNamedQuery updatelogin UPDATE "count=count+1 WHERE username='%u'" ftpusers
&8730; www.kdev.it ExtendedLog /var/log/proftpd.log DefaultRoot ~ Normally, we want files to be overwriteable. <Directory /*> AllowOverwrite off </Directory> Ora non resta che modificare alcune righe di inetd e di xinetd.d Editate con pico o vi il file /etc/xinetd.d/ftp service ftp { disable = no socket_type = stream wait = no user = root server = /usr/local/sbin/proftpd server_args = groups = yes flags = REUSE IPv6 } e rendetelo uguale a questo. Ora localizzate nel file /etc/inetd.conf modifiche al file /etc/inetd.conf Items with double hashes in front () are not yet implemented in the OS. finger stream tcp nowait nobody /usr/libexec/tcpd fingerd -s ftp stream tcp nowait root /usr/libexec/tcpd /usr/local/sbin/proftpd <---sostituisci con questa login stream tcp nowait root /usr/libexec/tcpd rlogind Ora riavviate inetd e il server FTP é pronto. riavvia inetd kdev:/etc root ps -ax grep inetd
&8730; www.kdev.it 411?? Ss 0:05.74 xinetd -inetd_compat -pidfile /var/run/xinetd.pid 13367 std S+ 0:00.02 grep inetd kdev:/etc root