Tutorials

  • Presto on-line...

About ...

  • ... questo sito
  • ... me


Installiamo un server ftp

pure-ftpd, ftp
Pure-FTPd è un server ftp gratuito (licenza GPL), sicuro, standard, veloce e facilissimo da configurare. E' pronto per essere compilato su diverse piattaforme: Linux, OpenBSD, NetBSD, FreeBSD, Solaris, Tru64, Darwin, Irix and HPUX, Windows... fortunatamente è anche molto facile da compilare ed installare sotto MacOS X.

Prima parte. Scaricare i sorgenti e compilare l’applicazione:

Recuperiamo l’ultima versione direttamente dal sito ftp.pureftpd.org.
Al momento in cui scrivo l’articolo siamo alla 1.0.14.
Per compilare il progetto mi conviene creare una comoda directory di lavoro che alla fine potrò cancellare senza danni. In questo caso creo la directory /download poi scarico il file usando il comando curl -O (o con il classico ftp) e "apro" l’archivio con tar -zxf:

[host1:/] user1% mkdir /download
[host1:/] user1% cd /download
[host1:/download] user1%
curl -O ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.14.tar.gz % Total % Received % Xferd Average Speed Time Curr. Dload Upload Total Current Left Speed 100 489k 0 489k 0 0 163k 0 --:--:-- 0:00:02 --:--:-- 162k [host1:/download] user1% tar -zxf pure-ftpd-1.0.14.tar.gz [host1:/download] user1% cd pure-ftpd-1.0.14

Come prima cosa occorre decidere quali opzioni vogliamo compilare. Se si vuole approfondire, bisogna leggere attentamente la ricca documentazione… altrimenti fate così:
[host1:/download/pure-ftpd-1.0.14] user1%
./configure --with-everything --with-virtualchroot --prefix=/usr/local/pure-ftpd
...
...
...
configure: +--------------------------------------------------------+
configure: | You can subscribe to the Pure-FTPd users mailing-list  |
configure: | to ask for help and to stay informed of new releases.  |
configure: | Go to http://www.pureftpd.org/ml/ now!                 |
configure: +--------------------------------------------------------+

./configure avrà così configurato tutti i files al nostro posto.
Il parametro --prefix=/usr/local/pure-ftpd servirà a mettere tutti i files necessari al funzionamento del server all’interno della directory: /usr/local/pure-ftpd. Giusto per non "sporcare" in giro per il disco!
Ora è possibile complare i sorgenti dando il make:
[host1:/download/pure-ftpd-1.0.14] user1% make

Seconda parte. L’installazione:

Compilati i sorgenti, non ci resta che installarli. Occorrono i privilegi di root per cui useremo il comando sudo:

[host1:/download/pure-ftpd-1.0.14] user1% sudo make install
Password: (digitare la propria password) 

Ora nella directory /usr/local/pure-ftpd/ abbiamo tutto ciò che ci occorre e volendo possiamo cancellare l’intera directory /download.
Facciamo un primo test per vedere se abbiamo fatto tutto correttamente:
[host1:~] user1% sudo -s
Password:(digitare la propria password) 
[host1:~] root% /usr/local/pure-ftpd/sbin/pure-ftpd &
[host1:~] root% ftp localhost
Trying ::1…
Connected to localhost.
220---------- Welcome to Pure-FTPd 1.0.14 ----------
220-You are user number 1 of 50 allowed.
220-Local time is now 10:47 and the load is 0.45. Server port: 21.
220 You will be disconnected after 15 minutes of inactivity.
Name (localhost:root):

OK. Usciamo con ctrl-C e proseguiamo con il lavoro: rimane da configurare il server ftp e da automatizzare lo start-up.

Terza parte. Configurazione:

Pure-ftp si configura al lancio del programma tramite appositi parametri.
E’ importante leggere la documentazione (in particolare i files README presenti nella directory dei sorgenti).
In ogni caso ecco quelli che uso io:

-A
Impedisce agli utenti di uscire dalla loro home-directory (tranne root).

-E
No login anonimi.

-B
Fa partire il server in modalità standalone (demonization).
Da non utilizzare in abbinamento a xinetd.

-O
clf:/var/log/pureftpd.log
Registra, in uno specifico file di log (apache-like), ogni file trasferito.
Utile in abbinamento a strumenti di generazione delle statistiche quali awstats

-l
puredb:/etc/pureftpd.pdb
Per limitare gli utenti abilitati a fare ftp a quelli registrati nel DB: pureftpd.pdb
(vedi oltre)

Per configurare gli utenti "virtuali" uso il comando pure-pw che sta nella directory:
/usr/local/pure-ftpd/bin/pure-pw con il parametro adatto:

pure-pw useradd <login> [-f passwd <file>] -u <uid> [-g <gid>]
                -D/-d <home directory> [-c <gecos>]
                [-t <download bandwidth>] [-T <upload bandwidth>]
                [-n <max number of files>] [-N <max Mbytes>]
                [-q <upload ratio>] [-Q <download ratio>]
                [-r <allow client ip>/<mask>] [-R <deny client ip>/<mask>]
                [-i <allow local ip>/<mask>] [-I <deny local ip>/<mask>]
                [-z <hhmm>-<hhmm>] [-m]

pure-pw usermod <login> .....
pure-pw userdel <login> [-f <passwd file>] [-m]
pure-pw passwd <login> [-f <passwd file>] [-m]
pure-pw show <login> [-f <passwd file>]

ATTENZIONE: Ad ogni modifica devo generare il DB con il comando
pure-pw mkdb
Di default il DB generato è il /etc/pureftpd.pdb

Un Esempio:

[host1:~] user1% pure-pw useradd gino -u www -g staff -d /Library/WebServer/Documents -t 9 -T 9
[host1:~] user1% pure-pw mkdb

in questo modo ho creato l’utente gino che potrà entrare solo nella directory del WebServer, avrà i privilegi dell’utente di sistema “www” ed il gruppo “staff”, inoltre avrà una banda limitata a 9KB/s.

Quarta parte. Start-UP automatico:

In 1) modalità diretta (standalone) o in 2) modalità automatica con xinetd.

1) La modalità standalone è la più semplice.
Creriamo i file necessari nella directory StartupItems:

[host1:~] user1% mkdir -p /Library/StartupItems/PureFTP
[host1:~] user1% cd /Library/StartupItems/PureFTP
[host1:~] user1% pico PureFTP

pico PureFTP apre un editor. Incolliamoci dentro questo breve script:

#!/bin/sh
#
. /etc/rc.common
ConsoleMessage “Starting Pure FTP Services”
/usr/local/pure-ftpd/sbin/pure-ftpd -AEBlpuredb:/etc/pureftpd.pdb
#
# End Pure ftp startup item

Il testo si salva con la combinazione di tasti ctrl-X (seguiti da Y per confermare il salvataggio e dal return per confermare il nome).

Serve ancora un file: StartupParameters.plist quindi digito pico StartupParameters.plist e incollo il seguente testo:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
<plist version="0.9">

<dict>
<key>Description</key>
<string>Pure FTP Server</string>
<key>Messages</key>
<dict>
<key>start</key>
<string>Starting Pure FTP Services</string>
<key>stop</key>
<string>Stopping Pure FTP Services</string>
</dict>
<key>OrderPreference</key>
<string>Late</string>
<key>Provides</key>
<array>
<string>PureFTP</string>
</array>
<key>Requires</key>
<array>
<string>Network</string>
</array>
</dict>
</plist>

Fine! Ad ogni start-up della macchina, verrà lanciato anche il server ftp.

2) Alternativamente, se vogliamo utilizzare il servizio xinetd dovremo semplicemente spostarci nella directory /etc/xinetd.d e modificare il file ftp come segue:

[host1:~] user1% cd /etc/xinetd.d
[host1:~] user1% pico ftp

il contenuto del file ftp dovrà essere il seguente:

service ftp
{
  disable = no
  socket_type = stream
  wait = no
  user = root
  server = /usr/local/pure-ftpd/sbin/pure-ftpd
  server_args = -A -E -l puredb:/etc/pureftpd.pdb -O clf:/var/log/pureftpd.log
  groups = yes
  flags = REUSE
}


restart della macchina (o restartiamo solamente il servizio xinetd) e tutto funzionerà in automatico.

Per approfondimenti:

Il sito ufficiale:


il progetto su sourceforge:

Posted on May 19, 2003 - 07:21 PM


Ricerca:


Adv:

ApplePro :
Vuoi acquistare un prodotto dalla Apple? Sei un utente Pro (cioè hai la partita IVA)? Se vuoi supportare il nostro sito, passa da qui: apple pro.