ProFTPD met TLS te installeren op Ubuntu 18.04 LTS

ProFTPD is een vrije, open bron, en de meest populaire FTP server voor Unix-achtige besturingssystemen. Met ProFTPD kun je een FTP verbinding maken tussen je lokale computer en de remote server. Het is een veelzijdige FTP server die TLS (SSL) ondersteunt voor veilige verbindingen.

Kenmerken

  • Ondersteunt IPv4 en IPv6.
  • Ondersteunt .ftpaccess om per directory te beveiligen.
  • Maakt het mogelijk meerdere virtuele FTP servers en anonieme FTP diensten te configureren.
  • Biedt ondersteuning voor schaduwwachtwoord, utmp/wtmp, SSL/TLS versleuteling, en RADIUS.
  • Kan zowel als zelfstandige server draaien als vanuit inetd/xinetd.

In deze handleiding leren we hoe je ProFTPD installeert en met TLS beveiligt op een Ubuntu 18.04 server

Vereisten

  • Een server met Ubuntu 18.04.
  • Een statisch IP adres 192.168.0.101 is ingesteld op de server.
  • Een root wachtwoord is ingesteld op de server.

Aan de slag

Voor je begint moet je je systeem updaten met de nieuwste versie. Je kunt dit doen door het volgende commando uit te voeren:

apt-get update -y
apt-get upgrade -y

Als je server bijgewerkt is, herstart je je server om de veranderingen toe te passen.

Installeer ProFTPD

ProFTPD is standaard beschikbaar in de Ubuntu 18.04 standaard repository. Je kunt het installeren door gewoon het volgende commando uit te voeren:

apt-get install proftpd -y

Na de installatie van ProFTPD start je de ProFTPD dienst en zet je hem aan om bij het opstarten te starten met het volgende commando:

systemctl start proftpd
systemctl enable proftpd

Je kunt de status van ProFTPD dienst controleren met het volgende commando:

systemctl status proftpd

Je zou de volgende uitvoer moeten zien:

? proftpd.service - LSB: Starts ProFTPD daemon
   Loaded: loaded (/etc/init.d/proftpd; generated)
   Active: active (running) since Sat 2019-05-25 09:18:19 UTC; 31s ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 1 (limit: 1114)
   CGroup: /system.slice/proftpd.service
           ??1927 proftpd: (accepting connections)

May 25 09:18:19 ubuntu1804 systemd[1]: Starting LSB: Starts ProFTPD daemon...
May 25 09:18:19 ubuntu1804 proftpd[1906]:  * Starting ftp server proftpd
May 25 09:18:19 ubuntu1804 proftpd[1906]:    ...done.
May 25 09:18:19 ubuntu1804 systemd[1]: Started LSB: Starts ProFTPD daemon.

De standaard configuratiebestanden van ProFTPD staan in /etc/proftpd/proftpd.conf. Je kunt het zien met het volgende commando:

cat /etc/proftpd/proftpd.conf

Je zou de volgende uitvoer moeten zien:

#
# /etc/proftpd/proftpd.conf -- This is a basic ProFTPD configuration file.
# To really apply changes, reload proftpd after modifications, if
# it runs in daemon mode. It is not required in inetd/xinetd mode.
# 

# Includes DSO modules

Include /etc/proftpd/modules.conf

# Set off to disable IPv6 support which is annoying on IPv4 only boxes.
UseIPv6                         on
# If set on you can experience a longer connection delay in many cases.
IdentLookups                    off

ServerName                      "Debian"
# Set to inetd only if you would run proftpd by inetd/xinetd.
# Read README.Debian for more information on proper configuration.
ServerType                              standalone
DeferWelcome                    off

MultilineRFC2228                on
DefaultServer                   on
ShowSymlinks                    on

TimeoutNoTransfer               600
TimeoutStalled                  600
TimeoutIdle                     1200

DisplayLogin                    welcome.msg
DisplayChdir                    .message true
ListOptions                     "-l"

DenyFilter                      \*.*/

# Use this to jail all users in their homes 
# DefaultRoot                   ~
# Port 21 is the standard FTP port.
Port                            21
MaxInstances                    30
# Set the user and group that the server normally runs at.
User                            proftpd
Group                           nogroup
# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
Umask                           022  022
# Normally, we want files to be overwriteable.
AllowOverwrite                  on
TransferLog /var/log/proftpd/xferlog
SystemLog   /var/log/proftpd/proftpd.log

Je kunt de bovenstaande instelling volgens je behoefte veranderen zoals hieronder aangegeven:

  • ServerName: Je kunt het veranderen als je standaard servernaam.
  • UseIPV6: Je kunt het uitschakelen door het op off te zetten.
  • DefaultRoot: Je kunt deze regel uitcommentariëren om gebruikers te beperken met hun thuismappen.
  • Port: Je kunt je eigen poort instellen door hem te veranderen.
  • SystemLog: De standaard locatie van het logbestand. Je kunt het naar eigen wens veranderen.

Als je dat gedaan hebt, kun je verder gaan met de volgende stap.

Beveilig ProFTPD met TLS

ProFTPD is nu geïnstalleerd. Nu moet je ProFTPD met TLS instellen voor beveiligde FTP verbindingen.

Voor je begint, moet je OpenSSL op je server installeren. Je kunt het installeren door gewoon het volgende commando uit te voeren:

apt-get install openssl -y

Zodra de installatie voltooid is, genereer je SSL certificaten voor ProFTPd met het volgende commando:

openssl req -x509 -newkey rsa:1024 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 365

Beantwoord alle vragen zoals hieronder aangegeven:

Generating a 1024 bit RSA private key
.++++++
.......................++++++
writing new private key to '/etc/ssl/private/proftpd.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:IN
State or Province Name (full name) [Some-State]:GUJ
Locality Name (eg, city) []:Junagadh
Organization Name (eg, company) [Internet Widgits Pty Ltd]:IT
Organizational Unit Name (eg, section) []:IT
Common Name (e.g. server FQDN or YOUR name) []:HITESH
Email Address []:[email protected]

Het bovenstaande commando zal twee bestanden genereren /etc/ssl/private/proftpd.key en /etc/ssl/certs/proftpd.crt.

Geef vervolgens de juiste permissies aan de gegenereerde bestanden met het volgende commando:

chmod 600 /etc/ssl/private/proftpd.key
chmod 600 /etc/ssl/certs/proftpd.crt

Als je dat gedaan hebt, kun je verder gaan met de volgende stap.

Configureer ProFTPD om SSL te gebruiken

Vervolgens moet je ProFTPD instellen om SSL certificaten te gebruiken. Je kunt dat doen door het bestand /etc/proftpd/proftpd.conf te bewerken:

nano /etc/proftpd/proftpd.conf

Haal het commentaar weg op de volgende regel:

Include /etc/proftpd/tls.conf

Bewaar en sluit het bestand, als je klaar bent. Open dan het bestand /etc/proftpd/tls.conf:

nano /etc/proftpd/tls.conf

Verander de volgende regels:

TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23
TLSRequired on
TLSOptions NoCertRequest EnableDiags NoSessionReuseRequired
TLSVerifyClient off

Bewaar en sluit het bestand, als je klaar bent. Herstart dan de ProFTPD dienst met het volgende commando:

systemctl restart proftpd

Als je dat gedaan hebt, kun je verder gaan met de volgende stap.

Maak een gebruiker voor ProFTPD

Vervolgens moet je een ProFTPD gebruiker aanmaken om toegang te krijgen tot de server. Je kunt dat doen met het volgende commando:

adduser ftp1

Beantwoord alle vragen zoals hieronder aangegeven:

Adding user `ftp1' ...
Adding new group `ftp1' (1006) ...
Adding new user `ftp1' (1002) with group `ftp1' ...
Creating home directory `/home/ftp1' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
Changing the user information for ftp1
Enter the new value, or press ENTER for the default
	Full Name []: 
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] Y

Als je dat gedaan hebt, kun je verder gaan met de volgende stap.

Krijg toegang tot de ProFTPD server met FileZilla

ProFTPD is nu geïnstalleerd en ingesteld, het is tijd om ProFTPD via FileZilla te benaderen vanaf het Client systeem.

Eerst moet je FileZilla installeren op je Cliënt systeem. Je kunt het installeren door gewoon het volgende commando uit te voeren:

apt-get install filezilla -y

Als de installatie voltooid is, kun je FileZilla openen vanaf Unity dash, zoals hieronder te zien is:

FileZilla FTP Cliënt

Klik nu op de Site Manager in het linker zijpaneel en maak een nieuwe site. Je zou de volgende pagina moeten zien:

Beveiligde FTP verbinding over TLS

Geef nu het IP adres van je FTP server op, kies protocol, kies Encryptie, kies logontype, geef gebruikersnaam en wachtwoord op. Klik dan op de knop Verbinden. Je zou de volgende pagina moeten zien:

Accepteer server SSL cert

Accepteer nu het certificaat, vink “Always trust certificate in future sessions” aan en klik op de OK knop. Na succesvol inloggen zou je de volgende pagina moeten zien:

Succesvolle FTP login

Je kunt nu veilig bestanden versturen via SSL/TLS.

Gefeliciteerd! Je hebt met succes de ProFTPD server geïnstalleerd en ingesteld en hem beveiligd met SSL/TLS encryptie. Je kunt nu gemakkelijk je bestand van je lokale computer naar een FTP server overbrengen met veilige versleuteling. Stel me gerust als je nog vragen hebt.