Sådan installerer du PureFTPd på Ubuntu 18.04 / 20.04 / 22.04 LTS

Sådan installerer du PureFTPd på Ubuntu 18.04 / 20.04 / 22.04 LTS

I denne guide vil jeg forklare hvordan du installerer PureFTPd på Ubuntu samt sikrer din FTP-server med med TLS (SSL)

I denne guide vil jeg forklare hvordan du installerer PureFTPd på Ubuntu samt sikrer din FTP-server med med TLS (SSL)

Inden vi går i gang

Du skal lave en A-Record (IPv4) samt evt. AAAA-Record (IPv6) der peger på f.eks ftp.mitdomain.dk - Det kan tage et par timer før DNS ændringer træder i kraft over alt.

Til denne guide skal du bruge Ubuntu 18.04 / 20.04 / 22.04 lts, Nginx eller Apache2 samt certbot (Lets Encrypt)

OBS. Alle steder der står ftp.mitdomain.dk skal skiftes ud med dit eget domain som du vil bruge!

Lad os komme i gang!

Først skal du opdatere din server - Det gør du med følgene kommando:

# sudo apt-get update && sudo apt-get upgrade -y

installer nu PureFTPd med denne kommando

# sudo apt install pure-ftpd

Du skal nu starte PureFTPd samt aktivere services for PureFTPd - Dette gør du med disse kommandoer

# sudo systemctl start pure-ftpd samt # sudo systemctl enable pure-ftpd

Du kan nu skrive # sudo systemctl status pure-ftpd og du vil få et status der ligner denne. (Luk status vinduet med med CTRL + C

Du kan nu skrive # sudo ss -lnpt | grep pure-ftpd for at se om PureFTPd lytter på port 21 for IPv4 samt IPv6

PureFTPd Indstillinger

Vi skal nu have sat nogle indstillinger for PureFTPd - Så her kommer et par stykker som jeg vil anbefale at sætte.

Tvinger PureFTPd til kun at køre TLS for bedre sikkerhed.

# echo 2 | sudo tee /etc/pure-ftpd/conf/TLS

Gør sådan man ikke kan tilgå andre mapper end ens hjemmemappe.

# echo yes | sudo tee /etc/pure-ftpd/conf/ChrootEveryone

Køre PureFTP som daemon

# echo yes | sudo tee /etc/pure-ftpd/conf/Daemonize

Sætter PureFTPd til at køre UTF-8 encoding

# echo UTF-8 | sudo tee /etc/pure-ftpd/conf/FSCharset

Sætter PureFTPd kun til at lytte på IPv4

# echo yes | sudo tee /etc/pure-ftpd/conf/IPV4Only

Tillader kun folk med konto at logge ind på serveren

# echo yes | sudo tee /etc/pure-ftpd/conf/NoAnonymous

Sætter PassivePortRange til 55521:55555

# echo 55521 55555 | sudo tee /etc/pure-ftpd/conf/PassivePortRange

Bestemmer om du kan rette .filer (Dot filer)

# echo no | sudo tee /etc/pure-ftpd/conf/ProhibitDotFilesWrite

Tillader FXP

# echo yes | sudo tee /etc/pure-ftpd/conf/AllowUserFXP

Lav nu en *.conf til enten Apache2 eller Nginx

Hvis du bruger Apache2

Lav en config fil med denne kommando

# sudo nano /etc/apache2/sites-available/ftp.mitdomain.dk.conf

Sæt følgende tekst ind i filen.

<VirtualHost *:80>        
        ServerName ftp.mitdomain.dk

        DocumentRoot /var/www/Pure-FTPd
</VirtualHost>

Gem nu filen med CTRL + X -> Y -> Enter

Aktiver config filen med denne kommando

# sudo a2ensite ftp.mitdomain.dk

Genstart nu apache2

# sudo systemctl restart apache2

Hvis du bruger Nginx

Lav en config fil med denne kommando

# sudo nano /etc/nginx/sites-enabled/ftp.mitdomain.dk.conf

I denne fil sætter du følgende tekst ind

server {
      listen 80;
      listen [::]:80;
      server_name ftp.mitdomain.dk;

      root /var/www/Pure-FTPd/;

      location ~ /.well-known/acme-challenge {
         allow all;
      }
}

Gem nu filen med CTRL + X -> Y -> Enter

Genstart nu Nginx

# sudo systemctl restart nginx

Opret mappe til Certbot

Du skal nu have oprettet en mappe så det matcher config filen ovenover. Det gør vi fordi certbot skal bruge en mappe til at udstede SSL til vores FTP server

sudo mkdir -p /var/www/Pure-FTPd

Vi skal nu give vores web server (www-data) læserettigheder til /var/www/Pure-FTPd - Det gør vi med denne kommando:

sudo chown www-data:www-data /var/www/Pure-FTPd -R

Genstart nu apache2 eller nginx med en af disse kommmandoer

Apache2

# sudo systemctl restart apache2

Nginx

# sudo systemctl restart nginx

SSL til PureFTPd

Skriv nu følgende kommando.

sudo certbot

Vælg nu det nummer der svarer til ftp.mitdomain.dk - I dette tilfælde nummer 1.

ftp5

Tryk nu på 1 i dette tilfælde og tryk på enter - Der vil nu blive udstedet en SSL certfikat til ftp.mitdomain.dk

SSL Fortsat

Vi skal nu have samlet det SSL-certificat vi lige har udstedt til en fil kaldet: pure-ftpd.pem

Denne fil skal gemmes i denne mappe /etc/ssl/private/

Første Skridt

Gå nu til denne mappe # cd /etc/letsencrypt/live/ftp.mitdomain.dk/

og skriv denne kommando

sudo cat fullchain.pem privkey.pem | sudo tee /etc/ssl/private/pure-ftpd.pem

Du skal nu give nogle rettigheder til den nyoprettede fil. - Dette gør du med denne kommando

# sudo chmod 600 /etc/ssl/private/pure-ftpd.pem

Du skal nu lave en dhparam fil - Det gør du med denne kommando (Dette kan tage 10-15 minutter alt efter din cpu)

# sudo openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 4096

Auto forny SSL til PureFTPd

Åben crontab, ved at skrive: # sudo crontab -e

@daily certbot renew --quiet && cd /etc/letsencrypt/live/ftp.mitdomain.dk/ && cat fullchain.pem privkey.pem | tee /etc/ssl/private/pure-ftpd.pem && systemctl restart pure-ftpd

Luk crontab med CTRL + X -> Y -> Enter

Firewall UFW

Skriv følgende kommandoer for at åben porte til PureFTPd

sudo ufw allow 20,21/tcp

sudo ufw allow 55521:55555/tcp

Til sidst :)

Til sidst restart PureFTPd med denne kommando:

sudo systemctl restart pure-ftpd

OBS: Når du opretter en ny bruger i Ubuntu, vil du automatisk give adgang til hjemmemappen på ftp-serveren med det valgte brugernavn og password.

Hvis du har brug for hjælp - Så skriv en kommentar...

Sådan! Betal dernæst for at få fuld adgang til FutureNode.dk.
Velkommen tilbage! Du er nu logget ind.
Du er nu medlem på FutureNode.dk.
Sådan! Din konto er fuldt aktiveret. Du har nu adgang til alt indholdet samt alle funktioner.
Sådan! Dine faktureringsoplysninger er blevet opdateret.
Dine faktureringsoplysninger blev ikke opdateret.