Fabio Mosti
consulente informatico
stressato e bastardo

proftpd, un server FTP a prova di (quasi) tutto

14/10/2011 - proftpd, un server FTP a prova di (quasi) tutto
tags: Debian, FTP, Linux, proftpd, SFTP, sistemistica

Ok, cominciamo a installare proftpd:

apt-get install proftpd

Ora editiamo il file /etc/proftpd/proftpd.conf per applicare alcune modifiche base alla configurazione standard:

  • attivare il jail degli utenti nella home impostando DefaultRoot a ~
  • impostare l'intervallo per le porte della modalità passiva tramite la direttiva PassivePorts
  • impostare il server per non richiedere una shell valida settando RequireValidShell a off
  • impostara la umask per file e cartelle settando Umask a 022 o 002 a seconda delle politiche che volete applicare ai gruppi

Ricordatevi fra l'altro di verificare che l'hostname del server sia risolvibile tramite il file /etc/hosts per evitare problemi. A titolo di esempio ecco un file /etc/proftpd/proftpd.conf commentato:

# inclusione file di configurazione dei moduli
Include /etc/proftpd/modules.conf

# impostare a 'on' o 'off' a seconda se la vostra box ha il supporto per ipv6 o meno
UseIPv6                         on

# non cercare di risolvere i nomi utente (ident lookup)
IdentLookups                    off

# impostate il nome del server in modo da non dare troppe informazioni gratis ai curiosi
ServerName                      "FTP server"

# per avere buone performances fate girare il server in modalità standalone e non via inetd
ServerType                      standalone

# istruisce il server a non dare informazioni finché non è avvenuto il login, in modo da non dare altre informazioni ai curiosi
DeferWelcome                    on

# questo è abbastanza tecnico, vedere http://www.proftpd.org/docs/directives/linked/config_ref_MultilineRFC2228.html
MultilineRFC2228                on

# in caso di server virtuali, uno pu? essere eletto a default; se non avete configurazioni multiple va bene 'on'
DefaultServer                   on

# mostra o meno i link simbolici nella lista
ShowSymlinks                    on

# tarare bene i timeout serve ad evitare che il server si intasi
TimeoutNoTransfer               600
TimeoutStalled                  600
TimeoutIdle                     1200

# il percorso del file contenente il messaggio di benvenuto
DisplayLogin                    welcome.msg

# messaggio da mostrare al cambio directory
DisplayChdir                    .message true

# opzioni per la visualizzazione della lista "-l" sta per "lista lunga", vedi anche
# http://www.proftpd.org/docs/directives/linked/config_ref_ListOptions.html
ListOptions                     "-l"

# espressione regolare per i comandi da bloccare
DenyFilter                      \*.*/

# vincola gli utenti alla loro home directory (chroot jail)
DefaultRoot                     ~

# non richiedere che l'utente abbia una shell valida per consentirgli il login
RequireValidShell               off

# la porta sulla quale il server deve rimanere in ascolto (21 è il default per FTP)
Port                            21

# intervallo di porte da utilizzare per la modalit?; passiva (deve coincidere con i settaggi del firewall!)
PassivePorts                  49152 65534

# questa direttiva è fondamentale se il server si trova dietro un NAT, altrimenti ? inutile
# MasqueradeAddress             1.2.3.4
# numero massimo di istanze da attivare (tararlo serve a impedire che il server si intasi)
MaxInstances                    30

# utente e gruppo con cui il server deve girare
User                            proftpd
Group                           nogroup

# umask di creazione dei nuovi files e cartelle
Umask                           022  022

# consente agli utenti di sovrascrivere i files
AllowOverwrite                  on

# percorsi dei files di log
TransferLog /var/log/proftpd/xferlog
SystemLog   /var/log/proftpd/proftpd.log

# attiva o disattiva le quote per gli utenti

    QuotaEngine off


# se non avete mod_ratio attivo lasciate 'off'

    Ratios off


# il delay engine serve a prevenire certi tipi di attacchi, vedi
# http://security.lss.hr/index.php?page=details&ID=LSS-2004-10-02

    DelayEngine on


# se non avete i controlli attivi, lasciate tutto su off

    ControlsEngine        off
    ControlsMaxClients    2
    ControlsLog           /var/log/proftpd/controls.log
    ControlsInterval      5
    ControlsSocket        /var/run/proftpd/proftpd.sock


# vedi sopra

    AdminControlsEngine off

Dopo aver applicato le modifiche riavviamo il server con

/etc/init.d/proftpd restart

E il gioco è fatto!

Warning: Illegal string offset 'codice' in /var/www/vhosts/videoart000003/httpdocs/_codice/_templates/_default_/_template.footers_pagina.php on line 10