Differences between revisions 2 and 3
Revision 2 as of 2009-04-12 17:33:26
Size: 4933
Editor: localhost
Comment: converted to 1.6 markup
Revision 3 as of 2009-09-04 09:34:46
Size: 3245
Editor: Kurgan
Comment: Modificato per Debian Lenny
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
=== Configurazione di Proftpd === === Configurazione di Proftpd (Debian Lenny) ===
Line 3: Line 3:
Questa e` una configurazione di proftpd che ho fatto per un cliente. Questa e` una configurazione di proftpd che ho fatto per un cliente. Questa pagina e` adattata a Debian Lenny, nel quale cambiano alcuni default. Le vecchie versioni vanno bene per le vecchie Debian.
Line 17: Line 17:
Verra` anche creato un un utente "proftpd".
Line 21: Line 22:
La configurazione di questo sistema si basa su due files: il primo e` {{{/etc/proftpd.conf}}}. Le uniche modifiche rispetto al file di configurazione standard di Debian sono nelle ultime righe, quelle con i commenti in italiano, e il fatto che l'utente che fa girare il server ftp non e` "nobody" ma "ftp". La configurazione di questo sistema si basa su due files: il primo e` {{{/etc/proftpd/proftpd.conf}}}.

Uso il file di configurazione standard, modificando solo alcune voci: Le prime due sono commentate di defaul, e io le scommento, mentre le ultime due sono inserite, di default non ci sono.
Line 23: Line 27:
ServerName "Debian"
ServerType standalone
DeferWelcome off
Line 27: Line 28:
MultilineRFC2228 on
DefaultServer on
ShowSymlinks on
### Scommentare questa
# Use this to jail all users in their homes
DefaultRoot ~
Line 31: Line 32:
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
### Scommentare questa
# Users require a valid shell listed in /etc/shells to login.
# Use this directive to release that constrain.
RequireValidShell off
Line 35: Line 37:
DisplayLogin welcome.msg
DisplayFirstChdir .message
ListOptions "-l"

DenyFilter \*.*/

# Uncomment this if you are using NIS or LDAP to retrieve passwords:
#PersistentPasswd off

# Uncomment this if you would use TLS module:
#TLSEngine on

# Uncomment this if you would use quota module:
#Quotas on

# Uncomment this if you would use ratio module:
#Ratios on

# Port 21 is the standard FTP port.
Port 21

# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances 30

# Set the user and group that the server normally runs at.
User ftp
Group nogroup

# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
Umask 022 022
# Normally, we want files to be overwriteable.
AllowOverwrite on

# Delay engine reduces impact of the so-called Timing Attack described in
# http://security.lss.hr/index.php?page=details&ID=LSS-2004-10-02
# It is on by default.
#DelayEngine off
### Inserire queste due
Line 80: Line 39:
AuthUserFile /etc/proftpd.passwd AuthUserFile /etc/proftpd/passwd
Line 82: Line 41:

# Chrooted dentro la propria home
DefaultRoot ~

# L'utente non deve avere una shell valida (gli utenti dedicati all'ftp non
# sono utenti di sistema e non hanno una shell valida in ogni caso)
RequireValidShell off
Line 91: Line 43:
Il secondo file di configurazione e` {{{/etc/proftpd.passwd}}}, che contiene le definizioni degli utenti che devono accedere al server FTP. Questo file non viene editato a mano, ma generato con l'apposito comando {{{ftpasswd}}}. Il secondo file di configurazione e` {{{/etc/proftpd/passwd}}}, che contiene le definizioni degli utenti che devono accedere al server FTP. Questo file non viene editato a mano, ma generato con l'apposito comando {{{ftpasswd}}}.
Line 96: Line 48:
Prima di tutto creo un utente "admin" che puo` accedere tutta la struttura dei files sotto {{{/home/ftp}}}.  Prima di tutto creo un utente "admin" che puo` accedere tutta la struttura dei files sotto {{{/home/ftp}}}.
Line 99: Line 51:
ftpasswd --passwd --file /etc/proftpd.passwd --gid 65534 --uid 103 --name admin --shell /bin/true --home /home/ftp/ ftpasswd --passwd --file /etc/proftpd/passwd --gid 65534 --uid 103 --name admin --shell /bin/true --home /home/ftp/
Line 105: Line 57:
ftpasswd --passwd --file /etc/proftpd.passwd --gid 65534 --uid 103 --name utente1 --shell /bin/true --home /home/ftp/utente1 ftpasswd --passwd --file /etc/proftpd/passwd --gid 65534 --uid 103 --name utente1 --shell /bin/true --home /home/ftp/utente1

Configurazione di Proftpd (Debian Lenny)

Questa e` una configurazione di proftpd che ho fatto per un cliente. Questa pagina e` adattata a Debian Lenny, nel quale cambiano alcuni default. Le vecchie versioni vanno bene per le vecchie Debian.

Lo scopo e` quello di permettere a tanti utenti di uploadare e downloadare files, oguno dalla propria directory. Ogni utente accede solo alla propria directory, all'interno della quale puo` fare cio` che vuole liberamente. Un utente (o piu` di uno) e` amministratore e puo` accedere alle directory di tutti gli utenti, e fare in esse cio` che vuole. Gli utenti sono configurati in un file dedicato allo scopo, e NON sono utenti di sistema.

Volendo e` possibile, giocando con gli alberi delle directory, creare delle sezioni nidificate con amministratori "locali".

La sicurezza fa decisamente schifo (tutti gli utenti accedono al file system con lo stesso UID e GID, e l'unica cosa che impedisce loro di andare a fare casini nelle directory degli altri e` il fatto che sono chrooted dentro la loro home), tuttavia dal momento che FTP trasmette le password in chiaro, direi che abbiamo ben altro di cui preoccuparci per la sicurezza. Certo non consiglierei questo set-up a chi abbia problemi di sicurezza, ma del resto non gli consiglierei nemmeno di usare FTP, quindi...

Installazione

Installare il pacchetto Debian "proftpd"

Verra` creato automaticamente un utente "ftp" con la relativa home, che useremo per contenere i files dei nostri utenti. Verra` anche creato un un utente "proftpd".

Configurazione

La configurazione di questo sistema si basa su due files: il primo e` /etc/proftpd/proftpd.conf.

Uso il file di configurazione standard, modificando solo alcune voci: Le prime due sono commentate di defaul, e io le scommento, mentre le ultime due sono inserite, di default non ci sono.

### Scommentare questa
# Use this to jail all users in their homes
DefaultRoot                     ~

### Scommentare questa
# Users require a valid shell listed in /etc/shells to login.
# Use this directive to release that constrain.
RequireValidShell               off

### Inserire queste due
# Autenticazione su file utenti dedicato, niente utenti di sistema
AuthUserFile /etc/proftpd/passwd
AuthOrder mod_auth_file.c

Il secondo file di configurazione e` /etc/proftpd/passwd, che contiene le definizioni degli utenti che devono accedere al server FTP. Questo file non viene editato a mano, ma generato con l'apposito comando ftpasswd.

Creazione degli utenti

Prima di tutto creo un utente "admin" che puo` accedere tutta la struttura dei files sotto /home/ftp.

ftpasswd --passwd --file /etc/proftpd/passwd --gid 65534 --uid 103 --name admin  --shell /bin/true --home /home/ftp/

Poi, per ogni utente "normale" del sistema, devo fare due cose:

  • Creare l'utente indicando una home sotto /home/ftp

    ftpasswd --passwd --file /etc/proftpd/passwd --gid 65534 --uid 103 --name utente1  --shell /bin/true --home /home/ftp/utente1
  • Creare la sua home e dagli i permessi giusti
    mkdir /home/ftp/utente1
    chown ftp. /home/ftp/utente1

LinuxDebian/Proftpd (last edited 2011-02-23 14:50:44 by Kurgan)