Skip to content

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

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!

 

Klar parat start.

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 nedenstående kommando og du vil få et status der ligner denne. (Luk status vinduet med med CTRL + C

				
					sudo systemctl status pure-ftpd
				
			
ftp1

Du kan nu skrive nedenstående kommando for at se om PureFTPd lytter på port 21 for IPv4 samt IPv6

				
					sudo ss -lnpt | grep pure-ftpd
				
			

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
				
			

Tillader kun folk med konto at logge ind på serveren

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

Sætter PassivePortRange til 55455:55555

				
					echo 55455 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
				
			

SSL – Punkt 1 ud af 5 – Lav nu en *.conf til enten Apache2 eller Nginx (Dette skal bruges til at udstede et SSL certifikat for pureFTPd)

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 med denne kommando

				
					sudo service apache2 restart
				
			

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, og genstart Nginx

				
					sudo systemctl restart nginx
				
			

SSL – Punkt 2 ud af 5 – Opret dir

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 kommandoer

				
					Apache2:

sudo systemctl restart apache2

Nginx:

sudo systemctl restart nginx
				
			

SSL  – Punkt 3 ud af 5 – Udsted certfikat

				
					sudo certbot
				
			

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

ftp3

SSL – Punkt 4 ud af 5 – Gør PureFTPd klar til SSL (TLS)

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/

Sådan gør du

Gå nu til nedenstående mappe:

				
					cd /etc/letsencrypt/live/ftp.mitdomain.dk/
				
			

skriv nu 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 5-15 minutter alt efter din cpu)

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

SSL – Punkt 5 ud af 5 – Auto forny SSL til PureFTPd

Åben crontab ved at skrive nedenstående kommando, og indset følgene – OBS: Denne kommando skal køres som ROOT

				
					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-ftpdrontab -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 55455:55555/tcp
				
			

Til sidst

Til sidst restart PureFTPd med nedenstående kommando:

				
					sudo systemctl restart pure-ftpd
				
			

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…

Bedøm dette indlæg:

Hvor nyttigt var dette indlæg?

Vælg din bedømmelse

Gennemsnitlig bedømmelse? 0 / 5. Antal bedømmelser: 0

Ingen bedømmelser endnu! Vær den første til at bedømme dette indlæg.

Del dette indlæg:

Kommentarer:

No comment yet, add your voice below!


Add a Comment

Tak, fordi du overvejer at poste en kommentar. Husk, at alle kommentarer modereres i henhold til vores kommentarpolitik som du finder HER

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

Share to...