PureFTPd na Debian Jessie

PureFTPd na Debian Jessie
PureFTPd
PureFTPd

Prosty tutorial przedstawiający instalację PureFTPd na Debianie Jessie.

apt-get install pure-ftpd

Po instalacji ustawiamy wybrane parametry działania PureFTPd. Odsyłam do dokumentacji jeśli któreś z ustawianych zmiennych nie są jasne.

echo yes > /etc/pure-ftpd/conf/ChrootEveryone
echo yes > /etc/pure-ftpd/conf/Daemonize
echo yes > /etc/pure-ftpd/conf/VerboseLog
echo yes > /etc/pure-ftpd/conf/NoAnonymous
echo yes > /etc/pure-ftpd/conf/DontResolve
echo yes > /etc/pure-ftpd/conf/AnonymousCantUpload
echo yes > /etc/pure-ftpd/conf/LogPID

Następnie ustawiamy *wirtualnych* użytkowników za pomocą mechanizmu pure-db.

ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/90pure
echo no > /etc/pure-ftpd/conf/PAMAuthentication
echo no > /etc/pure-ftpd/conf/UnixAuthentication

Dodajemy wirtualnego usera.

groupadd ftpgroup
useradd -g ftpgroup -d /dev/null -s /dev/null ftpuser
touch /etc/pure-ftpd/pureftpd.passwd
pure-pw useradd joe -u ftpuser -d /home/ftpusers/joe
pure-pw mkdb

Ostatnia komenda „pure-pw mkdb” działa jak COMMIT w SQL; czyli dosłownie zatwierdza transakcję wprowadzania zmian w bazie PureFTPd, zapisując zmiany do pliku /etc/pure-ftpd/pureftpd.pdb.

Następnie ustawiamy firewall. Przy domyślnej polityce DROP, należy otworzyć porty dla pasywnych połączeń.
Do pliku /etc/iptables.rules dopisujemy:

# passive ftp (ssl)
-A INPUT -i eth0 -p tcp --dport 45000:50000 -m state --state NEW -j ACCEPT

Wprowadzamy zmiany do firewalla:

/sbin/iptables-restore /etc/iptables.rules

Uwzględniamy TLS (szyfrowanie) oraz ustawiamy porty dla pracy w trybie pasywnym:

echo '45000 50000' > /etc/pure-ftpd/conf/PassivePortRange
echo 1 > /etc/pure-ftpd/conf/TLS

Generujemy certyfikat (i klucz) używany do połączeń szyfrowanych:

mkdir -p /etc/ssl/private/
openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

Gotowe. Można wystartować PureFTPd i sprawdzić jak działa.

systemctl start pure-ftpd