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:
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 <ifmodule mod_quotatab.c># attiva o disattiva le quote per gli utenti QuotaEngine off </ifmodule> # se non avete mod_ratio attivo lasciate 'off' <ifmodule mod_ratio.c> Ratios off </ifmodule> # il delay engine serve a prevenire certi tipi di attacchi, vedi # http://security.lss.hr/index.php?page=details&ID=LSS-2004-10-02 <ifmodule mod_delay.c> DelayEngine on </ifmodule> # se non avete i controlli attivi, lasciate tutto su off <ifmodule mod_ctrls.c> ControlsEngine off ControlsMaxClients 2 ControlsLog /var/log/proftpd/controls.log ControlsInterval 5 ControlsSocket /var/run/proftpd/proftpd.sock </ifmodule> # vedi sopra <ifmodule mod_ctrls_admin.c> AdminControlsEngine off </ifmodule>
Dopo aver applicato le modifiche riavviamo il server con
/etc/init.d/proftpd restart
E il gioco è fatto!