ProFTPd is een FTP server die zeer praktisch is. Het laat toe om virtuele gebruikers aan te maken en meer. In deze post ga ik toelichten hoe ik ProFTPd configureer met Virtual user support en TLS.
ProFTPd installeren
we kunnen proFTPD installeren met het volgende commando
sudo apt install proftpd proftpd-mod-crypto -y
ProFTPd configureren
Eerst en vooral moeten we de certificaten genereren die we gaan gebruiken. In dit voorbeeld maak ik gebruik van self-signed certificaten, maar in productie zou je hier natuurlijk een Let’s Encrypt certificaat voor gebruiken.
openssl req -x509 -newkey rsa:4096 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 365 chmod 0600 /etc/ssl/private/proftpd.key chmod 0640 /etc/ssl/certs/proftpd.crt
Vervolgens moeten we “/etc/proftpd/modules.conf” bewerken, en alle regels die de mod_tls.c importeren uit commentaar halen.
# ... # Install proftpd-mod-crypto to use this module for TLS/SSL support. LoadModule mod_tls.c # ...
Vervolgens moeten we /etc/proftpd/tls.conf aanpassen. We kunnen de inhoud vervangen door het volgende:
<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol TLSv1.2 TLSv1.3
# set this to no, if you have legacy clients that can't speak TLS
TLSRequired on
TLSECCertificateFile /etc/ssl/certs/proftpd.crt
TLSECCertificateKeyFile /etc/ssl/private/proftpd.key
TLSVerifyClient off
TLSRenegotiate none
</IfModule>
Vervolgens moeten we /etc/proftpd/tls.conf inladen, dit kan door de regel uit commentaar te halen in /etc/proftpd/proftpd.conf
# # This is used for FTPS connections # Include /etc/proftpd/tls.conf
Nu kunnen we proftpd herstarten
sudo proftpd --configtest sudo systemctl restart proftpd
Vervolgens kunnen we de virtuele gebruikers configureren. Er zijn verschillende backends, maar ik ga hier voor een bestands backend gaan om de gebruikers in op te slaan.
Maak een nieuw bestand /etc/proftpd/conf.d/virtual-users.conf met de volgende inhoud:
DefaultRoot ~ CreateHome on RequireValidShell off AuthUserFile /etc/proftpd/ftpd.passwd ## only allow virtual users AuthOrder mod_auth_file.c ## allow virtual users, and system users # AuthOrder mod_auth_file.c mod_auth_pam.c
Nu kunnen we onze virtuele gebruikers aanmaken. Let op dat deze gebruikers ook een UID/GID nodig hebben. Je kan deze gebruikers bijvoorbeeld de UID/GID geven van de www-data gebruiker als ze websites moeten kunnen uploaden. Het UID/GID dat je gebruikt kan je bepalen door het volgende commando te draaien
id <user>
hiermee krijg je de UID en GID’s te zien van de gebruiker.
Nu kunnen we onze virtuele gebruikers aanmaken met het volgende commando:
sudo ftpasswd --passwd --file=/etc/proftpd/ftpd.passwd --name=test --uid=104 --gid=109 --home=/home/ftpusers/test --shell=/bin/false
Dit maakt een gebruiker “test”, met home directory in /home/ftpusers/test.