Installazione di ProFTPD tramite RPM e compilazione dei sorgenti.
INSTALLAZIONE TRAMITE RPM
Il primo passo da compiere è scaricare il pacchetto RPM dal server FTP del produttore ftp://ftp.proftpd.org/. Sono disponibili per ogni versione tre pacchetti rpm:
proftpd-1.2.8-1.i386.rpm Pacchetto principale contenente il server le utility e la documentazione
proftpd-inetd-1.2.8-1.i386.rpm Pacchetto con la configurazione per l'utilizzo con inetd
proftpd-standalone-1.2.8-1.i386.rpm Pacchetto con la configurazione per l'utilizzo standalone
[root@Enigma software]#
wget ftp://ftp.proftpd.org/distrib/packages/RPMS/proftpd-1.2.8-1.i386.rpm
=> `proftpd-1.2.8-1.i386.rpm'
Resolving ftp.proftpd.org... fatto.
Connecting to ftp.proftpd.org[81.223.20.36]:21... connected.
Accesso come utente anonymous ... Login eseguito!
==> SYST ... fatto. ==> PWD ... fatto.
==> TYPE I ... fatto. ==> CWD /distrib/packages/RPMS ... fatto.
==> PORT ... fatto. ==> RETR proftpd-1.2.8-1.i386.rpm ... fatto.
Lunghezza: 579,791 (non autorevole)
100%[================================================================================>] 579,791 4.64K/s ETA 00:00
14:29:13 (4.64 KB/s) - `proftpd-1.2.8-1.i386.rpm' salvato [579791]
Successivamente a seconda di quale configurazione si desidera adottare:
[root@Enigma software]# wget
ftp://ftp.proftpd.org/distrib/packages/RPMS/proftpd-standalone-1.2.8-1.i386.rpm
[...]
[root@Enigma software]# wget
ftp://ftp.proftpd.org/distrib/packages/RPMS/proftpd-inetd-1.2.8-1.i386.rpm
[...]
Si procede quindi con l'installazione del pacchetto principale:
[root@Enigma software]# rpm -ihv proftpd-1.2.8-1.i386.rpm
Preparing... ###########################################
[100%]
1:proftpd ###########################################
[100%]
[root@Enigma homer]# rpm -qli proftpd
Tramite una query RPM è possibile visualizzare cosa è stato installato e
dove
[...]
There are two other packages you can use to setup for inetd or standalone
operation.
/etc/logrotate.d/proftpd
File per la gestione dei log con logrotate
/etc/pam.d/ftp
File per l'autenticazione tramite PAM
/home/ftp
Creazione directory per ftp anonimo
/usr/bin/ftpcount
/usr/bin/ftptop
/usr/bin/ftpwho
Utility
/usr/sbin/ftpshut
Utility amministrativa per fermare il server
/usr/sbin/in.proftpd
Link a proftpd
/usr/sbin/proftpd
Server ftp
/usr/share/doc/proftpd-1.2.8
/usr/share/doc/proftpd-1.2.8/COPYING
/usr/share/doc/proftpd-1.2.8/CREDITS
/usr/share/doc/proftpd-1.2.8/ChangeLog
/usr/share/doc/proftpd-1.2.8/Configuration.html
/usr/share/doc/proftpd-1.2.8/Configuration.sgml
/usr/share/doc/proftpd-1.2.8/GetConf
/usr/share/doc/proftpd-1.2.8/NEWS
/usr/share/doc/proftpd-1.2.8/README
[...]
usr/share/doc/proftpd-1.2.8/sample-configurations/mod_sql.conf
/usr/share/doc/proftpd-1.2.8/sample-configurations/virtual.conf
/usr/share/doc/proftpd-1.2.8/xferstats.holger-preiss
Documentazione: faq, RFC del protocollo ed esempi di configurazione ecc.
/usr/share/man/man1/ftpcount.1.gz
/usr/share/man/man1/ftptop.1.gz
/usr/share/man/man1/ftpwho.1.gz
/usr/share/man/man5/xferlog.5.gz
/usr/share/man/man8/ftpshut.8.gz
/usr/share/man/man8/proftpd.8.gz
Manuali del server e delle utility a corredo
/var/run/proftpd
Creazione directory contenente i dati di run-time
AVVIO DEL SERVIZIO: Inetd o Standalone
Nel caso in cui si scelga di utilizzare il server con inetd si dovrà installare proftpd-inetd-1.2.8-1.i386.rpm
. Questo pacchetto si occupa di installare /etc/proftpd.conf
, di inserire la entry relativa al servizio ftp in /etc/inetd.conf
e di inviare un segnale HUP ad inetd in modo che rilegga la configurazione.
Nel caso si intenda utilizzare proFTPD in modalità standalone è possibile utilizzare proftpd-standalone-1.2.8-1.i386.rpm
, il quale installa il file di configurazione base /etc/proftpd.conf
e lo script per la gestione del server /etc/rc.d/init.d/profptd
.
INSTALLAZIONE TRAMITE COMPILAZIONE DEI SORGENTI
Anche per l'installazione partendo dai sorgenti il primo passo è il download:
[root@Enigma software]# wget
ftp://ftp.proftpd.org/distrib/source/proftpd-1.2.8.tar.gz
--14:32:24-- ftp://ftp.proftpd.org/distrib/source/proftpd-1.2.8.tar.gz
=>`proftpd-1.2.8.tar.gz' Resolving ftp.proftpd.org... fatto.
Connecting to ftp.proftpd.org[81.223.20.36]:21... connected.
Accesso come utente anonymous ... Login eseguito!
==> SYST ... fatto. ==> PWD ... fatto.
==> TYPE I ... fatto. ==> CWD /distrib/source ... fatto.
==> PORT ... fatto. ==> RETR proftpd-1.2.8.tar.gz ... fatto.
Lunghezza: 966,281 (non autorevole)
100%[================================================================================>] 966,281 4.51K/s ETA 00:00
14:35:55 (4.51 KB/s) - `proftpd-1.2.8.tar.gz' salvato [966281]
SCOMPATTAZIONE
Terminato il download si procede:
[root@Enigma software]# tar -zxvf proftpd-1.2.8.tar.gz
proftpd-1.2.8/
proftpd-1.2.8/contrib/
proftpd-1.2.8/contrib/dist/
proftpd-1.2.8/contrib/dist/rpm/
proftpd-1.2.8/contrib/dist/rpm/ftp.pamd
proftpd-1.2.8/contrib/dist/rpm/proftpd.init.d
[...]
proftpd-1.2.8/utils/scoreboard.c
proftpd-1.2.8/utils/utils.h
proftpd-1.2.8/utils/Makefile.bak
proftpd-1.2.8/utils/Makefile.in.bak
proftpd-1.2.8/stamp-h
Le directory presenti una volta scompattato il pacchetto sono:
drwxr-xr-x 4 root root 4096 mar 4 06:33 contrib
Tools e moduli aggiuntivi, ed esempi di configurazione
drwxr-xr-x 3 root root 4096 mar 4 06:33 doc
Directory contentene la documentazione
drwxr-xr-x 2 root root 4096 mar 4 06:33 include
drwxr-xr-x 3 root root 4096 mar 4 06:33 lib
drwxr-xr-x 2 root root 4096 mar 4 06:33 modules
drwxr-xr-x 2 root root 4096 mar 4 06:33 src
Directory contenente i sorgenti
drwxr-xr-x 2 root root 4096 mar 4 06:33
sample-configurations
Directory contenente esempi di configurazione
drwxr-xr-x 2 root root 4096 mar 4 06:33 utils
Directory contentente utility per il server
Nella directory principale è possibile trovare diversi file README a seconda della piattaforma utilizzata. Tutte le operazioni di configurazione e installazione avvengono dalla top level directory del programma.
CONFIGURAZIONE
Le opzioni di configurazione sono diverse, è possibile visualizzarle tramite:
[root@Enigma proftpd-1.2.8]# ./configure --help
Tra le opzioni più utilizzate abbiamo:
--prefix=/DIR
Imposta la directory di installazione del server Es.: --prefix=/etc
--sysconfdir=/DIR
Imposta la directory contenente i file di configurazione Es.: --sysconfdir/etc
--localstatedir=/DIR
Imposta la directory per le variabili di stato Es.: --localstatedir=/var
--with-modules=LIST
Include l'utilizzo di moduli aggiuntivi Es.: --with-modules=mod_sql:mod_sql_postgres
[root@Enigma proftpd-1.2.8]# ./configure --prefix=/usr
--sysconfdir=/etc --localstatedir=/var
In questo caso si specifica dove installare il software e quale siano le directory per i file di configurazione e per le variabili di stato
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... i686-pc-linux-gnu
[...]
config.status: creating config.h
config.status: executing default commands
COMPILAZIONE
Una volta effettuata la configurazione è possibile lanciare la compilazione tramite il comando make:
[root@Enigma proftpd-1.2.8]# make
echo \#define BUILD_STAMP \"`date`\" > include/buildstamp.h
cd lib/ && make lib
make[1]: Entering directory `/home/homer/software/proftpd-1.2.8/lib'
[...]
INSTALLAZIONE
L'installazione avviene tramite il classico make install:
[root@Enigma proftpd-1.2.8]# make install
cd lib/ && make lib
[...]
/usr/bin/install -c -o root -g root -m 0644 ./utils/ftpwho.1 /usr/man/man1
/usr/bin/install -c -o root -g root -m 0644 ./src/xferlog.5 /usr/man/man5
[...]
AVVIO DEL DEL SERVIZIO: Inetd o Standalone
In caso di utilizzo con inetd e tcp wrappers è necessario aggiungere a
/etc/inetd.conf
la seguente riga di configurazione:
ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/proftpd
nel caso di utilzzo di xinetd aggiungere il file ftp sotto la directory
/etc/xinetd.d/
:
service ftp
{
flags = REUSE
socket_type = stream
instances = 50
wait = no
user = root
server = /usr/sbin/proftpd
bind = 192.168.0.2
log_on_success = HOST PID
log_on_failure = HOST RECORD
}
Nel caso si voglia utilizzare la modalità standalone è possible trovare in contrib/dist/rpm/proftpd.init.d
un esempio di script da richiamare al boot, oppure da utilizzare per le operazioni di restart, rilettura della configurazione o stop del server.
Riiscrizione dei file
dopo essere riuscito a configurare a dovere proftpd ho riscontrato un piccolo problema, nel senso che non mi permette di sovrascrivere i dati già esistenti nella cartella interessata anche se ho ben configurato tutti i permessi. qualcuno ne sa di più?
RispondiTENTATIVO
Grazie per il suggerimento. Mi sono letto i file di esempio e ho fatto varie prove. Per esempio ho provato a creare un utente ftp, che ho inserito come user nel file di conf. Ho impostato la password, ho riavviato proftpd e ho provato ad accedere con un client ftp. Il login è arrivato alla verifica della password, ma si è fermato lì: infatti non dice niente, neppure che la password è sbagliata, resta fermo ad esaminarla sine die (dopo 15 minuti ho disconnesso...). Perché dice ciò? Se riesco ad impostare un utente di cui riconosce la pwd, poi in teoria dovrei essere in grado di fare l'UL e il DL di file da /var/www/http?
RispondiForse sul sito ufficiale...
Ci avrai già guardato, comunque segnalo:
http://www.proftpd.org/docs/example-conf.html
e in generale i docs ufficiali.
ma con ldap?
questo potrebbe essere un'ipotesi, come anche quella opposta di modificare la directory root del sito principale in modo che corrisponda alla public_html di un utente creato a bella posta per la gestione del sito, direttamente da httpd.conf.
Tuttavia questa soluzione non se è praticabile, perché il dominio utilizza ldap per l'autenticazione degli utenti (infatti ho dovuto aggiungere una direttiva specifica al file /etc/pam.d/proftpd).
Non è possibile definire in /etc/proftpd.conf una direttiva con cui si possa fare il DL/Ul dei file del sito principale, da aggiungere alla DefaultRoot ~?
Proftpd Root
Un modo rapido e brutale potrebbe essere impostare come home dir di ROOT /var/www/html direttamente in /etc/passwd
Rispondiconfigurazioni aggiuntive
Domanda:
dopo aver installato ProFtpd su una Debian Woody, e aver configurato Apache e ProFtpd in modo che ciascun utente del dominio abbia uno spazio web del tipo http://www.dominio.com/~utente, come faccio a far sì che un utente (tipicamente root) possa accedere via FTP alla directory principale del web, nello specifico /var/www/http/?
Grazie