Io sto usando proftpd; è stato progettato con la stessa filosofia del server HTTP Apache: potenza e semplicità d'uso. In effetti, stiamo parlando di due prodotti (proftpd e apache) che rappresentano quanto di meglio si possa trovare in circolazione; ad esempio, il server FTP di KDE è gestito proprio da proftpd.
Visto che sei uno slackwariano, avrai notato che durante l'installazione di Slackware, vengono effettuate una serie di impostazioni automatiche che permettono di avere proftpd pronto per l'uso. Innanzi tutto, si può notare la presenza dell'utente
/home/ftp; se quell'utente non esiste lo devi creare visto che il suo scopo è quello di permettere l'accesso anonimo tramite proftpd.
E' anche presente il gruppo
ftp a cui devono appartenere tutti gli utenti che vogliono connettersi al server. Oltre all'utente
ftp, puoi creare anche altri utenti ai quali, in genere, viene permesso l'accesso al server solo tramite userid e password; nel seguito, supponiamo che sia stato creato il solito utente
pippo con password
passpippo e appartenenza al gruppo
ftp.
I file di configurazione di proftpd sono
/etc/proftpd.conf e
/etc/ftpusers; fatti un backup di questi due file prima di modificarli.
Se vuoi permettere l'accesso anonimo (associato all'utente
/home/ftp) devi editare
/etc/ftpusers e commentare la linea
ftp in questo modo:
Codice: Seleziona tutto
# To enable anonymous FTP, remove the "ftp" user:
#ftp
root
uucp
news
Passiamo ora la file
/etc/proftpd.conf nel quale impostiamo parecchie cose, tra le quali, i permessi ai vari utenti; in questo esempio (semplicissimo), impostiamo l'accesso anonimo per l'utente
/home/ftp e l'accesso tramite userid e password per l'utente
/home/pippo
Codice: Seleziona tutto
ServerName "ProFTPD Default Installation"
ServerType standalone
DefaultServer on
Port 21
Umask 022
MaxInstances 30
User nobody
Group nogroup
SystemLog /var/log/proftpd.log
TransferLog /var/log/xferlog
<Directory /*>
AllowOverwrite on
</Directory>
# Qui impostiamo l'accesso anonimo.
# (Ricordarsi di commentare l'utente ftp in /etc/ftpusers)
<Anonymous ~ftp>
RequireValidShell off
User ftp
Group ftp
# We want clients to be able to login with "anonymous" as well as "ftp"
UserAlias anonymous ftp
# Limit the maximum number of anonymous logins
MaxClients 50
# We want 'welcome.messaggio' displayed at login, and '.message' displayed
# in each newly chdired directory.
DisplayLogin welcome.messaggio
DisplayFirstChdir .message
# Limit WRITE everywhere in the anonymous chroot
<Limit WRITE>
DenyAll
</Limit>
# An upload directory that allows storing files but not retrieving
# or creating directories.
# <Directory incoming/*>
# <Limit READ>
# DenyAll
# </Limit>
#
# <Limit STOR>
# AllowAll
# </Limit>
# </Directory>
</Anonymous>
# Qui creiamo l'account "pippo" che può autenticarsi solo
# con username e password.
<Anonymous ~pippo>
RequireValidShell off
User pippo
Group ftp
AnonRequirePassword on
<Limit LOGIN>
AllowAll
</Limit>
# Deny write access from all except trusted hosts.
<Limit WRITE>
AllowAll
</Limit>
</Anonymous>
Questo esempio serve per fare esperimenti sul proprio computer o in una rete domestica.
A questo punto, da utenti root lanciamo il server con il comando:
/usr/sbin/in.proftpd
Per verificare se tutto funzia, apriamo un quasiasi client FTP come gFTP (per chi usa Gnome) o KFTPGrabber (per chi usa KDE); proviamo ora a connetterci all'indirizzo di loopback del computer su cui sta girando proftpd (
127.0.0.1).
Se tutto funzia, in assenza di userid e password veniamo autorizzati ad accedere all'utente
/home/ftp; in presenza di userid
pippo e password
passpippo veniamo autorizzati ad accedere all'utente
/home/pippo.
Sul sito di proftpd (
http://www.proftpd.org ) c'è un ottimo manuale d'uso con tutti i dettagli per configurazioni ben più serie di quella presentata nel mio esempio.