Difficoltà con server FTP e firewall:
Se si configura un firewall per un host che esegue un server FTP, normalmente è necessario lasciare l'intervallo delle porte 1024-65365 aperto, poiché non si sa mai quale porta verrà utilizzata dal server FTP per inviare i dati al client FTP. Questa situazione è piuttosto critica se si dispone di un host con porte sensibili superiori a 1024 che devono essere chiuse a Internet. Ovviamente puoi selezionare ogni porta e chiuderla nel firewall, ma io preferisco decisamente usare il metodo firewall che chiude tutto e apre solo le porte necessarie per accedere da Internet. Ecco dove pure-ftpd vieni in soccorso. Questo server FTP ha la capacità di selezionare l'intervallo di porte che verranno utilizzate per trasferire i dati al client FTP. Ciò rende la configurazione di un firewall molto più semplice.
Nell'esempio seguente, pure-ftp ha la seguente configurazione:
– fornisce FTP e FTPS con utenti incarcerati (gli utenti sono confinati nella loro home directory).
– nessun client anonimo
– Versione IP Solo 4
– le porte per il trasferimento dei dati sono limitate all'intervallo 20000-20099
PASSAGGI: apt-get install pure-ftpd
echo '20000 20099' > /etc/pure-ftpd/conf/PassivePortRange
echo "yes" > /etc/pure-ftpd/conf/NoAnonymous
echo "yes" > /etc/pure-ftpd/conf/ChrootEveryone
echo "yes" > /etc/pure-ftpd/conf/IPV4Only
echo "1" > /etc/pure-ftpd/conf/TLS
Se vuoi forzare i client a utilizzare TLS solo per connessioni FTP, usa il comandoecho "3" > /etc/pure-ftpd/conf/TLS
Eccezioni al chroot
Se vuoi limitare tutti gli utenti alle loro home directory TRANNE alcuni utenti fidati, devi:
– creare un nuovo gruppo di sistema in cui aggiungere gli utenti fidati al suo interno
– invece di utilizzare il comando precedente 'echo “yes”> /etc/pure-ftpd/conf/ChrootEveryone'
inserisci il GID del gruppo attendibile nel file /etc/pure-ftpd/conf/TrustedGID.
Esempio: Vogliamo chroot per tutti gli utenti tranne "martin" e "jannine". Ciò significa che martin e jannine saranno in grado di navigare in altre parti del sistema diverse dalle loro directory home, ma tutti gli altri utenti saranno confinati nelle loro directory home:groupadd ftptrusted
usermod -G ftptrusted martin
usermod -G ftptrusted jannine
GID=$(grep ftptrusted /etc/group | cut -d: -f3)
echo "$GID" > /etc/pure-ftpd/conf/TrustedGID
rm /etc/pure-ftpd/conf/ChrootEveryone
NOTA: Per creare un file di certificato firmato correttamente dall'autorità per pure-ftpd, assicurati di avere entrambi i seguenti componenti nel file /etc/ssl/private/pure-ftpd.pem :
– Chiave privata (in formato PEM)
– Certificato (in formato PEM)
Se invece vuoi eseguirlo con un certificato autofirmato, esegui i seguenti comandi:mkdir -p /etc/ssl/private/
openssl req -x509 -nodes -days 97300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
chmod 600 /etc/ssl/private/pure-ftpd.pem
Riavvia pure-ftpd per registrare la nuova configurazione e il nuovo certificato.service pure-ftpd restart