• Så här skapar du en säker FTP-server med ProFTPD på Ubuntu/Debian och Fedora

    Med egen FTP server kan du skyffla filer på internet utan blanda in molntjänster.

    Introduktion

    Vad är FTP?

    File Transfer Protocol (FTP) är ett standardprotokoll som används för att överföra filer mellan en klient och en server över ett nätverk, oftast internet. Det möjliggör enkel och effektiv filöverföring, vilket gör det till ett populärt val för webbhotell, datautbyte och fjärrlagring.

    Hur fungerar FTP rent tekniskt?

    FTP fungerar enligt en klient-server-modell och använder separata anslutningar för kontroll och dataöverföring:

    • Kontrollanslutning: Upprättas på port 21 och används för att skicka kommandon och ta emot svar mellan klient och server.
    • Dataanslutning: Används för själva filöverföringen. Kan vara i aktivt eller passivt läge:
    • Aktivt läge: Servern initierar dataanslutningen till klienten.
    • Passivt läge: Klienten initierar dataanslutningen till servern.

    Denna uppdelning möjliggör effektiv filöverföring men kan komplicera brandväggs- och nätverksinställningar.

    Säkerhetsaspekter med FTP

    Standard-FTP överför data i klartext, inklusive användarnamn och lösenord, vilket gör det sårbart för:

    • Avlyssning: Känslig information kan fångas upp av obehöriga.
    • Man-in-the-middle-attacker: Data kan manipuleras under överföring.

    För att förbättra säkerheten används:

    • FTPS (FTP Secure): FTP över SSL/TLS för krypterad överföring.
    • SFTP (SSH File Transfer Protocol): Använder SSH för säker filöverföring.

    I denna guide fokuserar vi på att säkra FTP med SSL/TLS genom att använda ProFTPD, en kraftfull och flexibel FTP-server.

    Introduktion till ProFTPD

    ProFTPD är en öppen källkod FTP-server för Unix/Linux-system, känd för:

    • Flexibilitet: Hög konfigurerbarhet för olika behov.
    • Säkerhet: Stöd för moderna säkerhetsprotokoll och autentisering.
    • Stabilitet: Pålitlig prestanda under hög belastning.

    ProFTPD:s konfigurationsstil liknar Apache HTTP Server, vilket underlättar för administratörer som är bekanta med Apache.

    Steg-för-steg-guide för Ubuntu/Debian och Fedora

    Förutsättningar

    • En server med Ubuntu, Debian eller Fedora installerad.
    • Root-åtkomst eller sudo-behörigheter.
    • En grundläggande förståelse för terminalkommandon.

    Översikt

    • Steg 1: Installera ProFTPD.
    • Steg 2: Grundläggande konfiguration.
    • Steg 3: Skapa och hantera användarkonton.
    • Steg 4: Säkra FTP-servern med SSL/TLS.
    • Steg 5: Justera brandväggsinställningar.
    • Steg 6: Testa FTP-servern.
    • Steg 7: Felsökning.

    Steg 1: Installera ProFTPD

    På Ubuntu/Debian

    Uppdatera systempaket

    sudo apt update
    sudo apt upgrade

    Installera ProFTPD

    sudo apt install proftpd

    Under installationen kommer du att bli tillfrågad om du vill köra ProFTPD som Standalone eller under inetd. Välj Standalone för bättre prestanda.

    Verifiera tjänsten

    sudo systemctl status proftpd

    Du bör se att tjänsten är aktiv och körs.

    På Fedora

    Uppdatera systempaket

    sudo dnf update

    Installera ProFTPD

    ProFTPD finns inte alltid i de officiella Fedora-förvaret, så vi behöver installera det från en tredjepartskälla eller kompilera från källkod. För enkelhetens skull använder vi RPM Fusion-förvaret.

    Lägg till RPM Fusion-förvaret
    sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
    Installera ProFTPD
    sudo dnf install proftpd

    Starta och aktivera tjänsten

    sudo systemctl start proftpd
    sudo systemctl enable proftpd

    Verifiera tjänsten

    sudo systemctl status proftpd

    Steg 2: Grundläggande konfiguration

    Öppna konfigurationsfilen

    Konfigurationsfilen för ProFTPD finns på olika platser beroende på distribution.

    • Ubuntu/Debian: /etc/proftpd/proftpd.conf
    • Fedora: /etc/proftpd.conf

    Öppna filen med en textredigerare, till exempel nano:

    Ubuntu/Debian

    sudo nano /etc/proftpd/proftpd.conf

    Fedora

    sudo nano /etc/proftpd.conf

    Anpassa inställningar

    1. ServerName

    Ange ett beskrivande namn för din FTP-server.

    ServerName "MinSäkraFTPServer"

    2. DefaultRoot

    För att begränsa användare till sina hemkataloger, aktivera DefaultRoot.

    DefaultRoot ~

    3. Port

    Ändra standardporten om du vill öka säkerheten.

    Port 2121

    4. MaxInstances

    Begränsa antalet samtidiga anslutningar.

    MaxInstances 30

    5. Inaktivera anonym åtkomst

    Ändra sektionen för anonym åtkomst för att inaktivera den.

    <Anonymous ~ftp>
      User ftp
      Group nogroup
      <Limit LOGIN>
        DenyAll
      </Limit>
    </Anonymous>

    Spara och starta om tjänsten

    Spara filen och starta om ProFTPD för att tillämpa ändringarna.

    Ubuntu/Debian/Fedora

    sudo systemctl restart proftpd

    Steg 3: Skapa och hantera användarkonton

    Skapa en ny FTP-användare

    Skapa ett nytt användarkonto för FTP-åtkomst.

    sudo adduser ftpuser

    Ange ett starkt lösenord när du blir ombedd.

    Begränsa användarens åtkomst

    Verifiera att DefaultRoot ~ är aktiverad i konfigurationsfilen för att begränsa användarens åtkomst till sin hemkatalog.


    Steg 4: Säkra FTP-servern med SSL/TLS

    Generera ett SSL-certifikat

    För att kryptera anslutningen behöver du ett SSL/TLS-certifikat. För teständamål kan du skapa ett självsignerat certifikat.

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

    Ange nödvändig information under genereringen.

    Aktivera TLS i ProFTPD

    Redigera konfigurationsfilen för att aktivera TLS.

    Ubuntu/Debian

    sudo nano /etc/proftpd/proftpd.conf

    Fedora

    sudo nano /etc/proftpd.conf

    Lägg till eller avkommentera följande sektion:

    <IfModule mod_tls.c>
       TLSEngine on
       TLSLog /var/log/proftpd/tls.log
       TLSProtocol TLSv1.2
       TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
       TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
       TLSVerifyClient off
       TLSRequired on
    </IfModule>

    Spara och starta om tjänsten

    Spara filen och starta om ProFTPD.

    Ubuntu/Debian

    sudo systemctl restart proftpd

    Fedora

    sudo systemctl restart proftpd

    Steg 5: Justera brandväggsinställningar

    Ubuntu/Debian med UFW

    Tillåt FTP-trafik

    Om du använder UFW, tillåt trafik på vald port.

    • Standardport 21:
      sudo ufw allow 21/tcp
    • Anpassad port (t.ex. 2121):
      sudo ufw allow 2121/tcp

    Ladda om UFW

    sudo ufw reload

    Fedora med Firewalld

    Tillåt FTP-trafik

    Använd firewall-cmd för att tillåta FTP-trafik.

    • Standardport 21:
      sudo firewall-cmd --permanent --add-port=21/tcp
    • Anpassad port (t.ex. 2121):
      sudo firewall-cmd --permanent --add-port=2121/tcp

    Ladda om Firewalld

    sudo firewall-cmd --reload

    Steg 6: Testa FTP-servern

    Använd en FTP-klient

    För att testa servern kan du använda en FTP-klient som FileZilla.

    Anslutningsinställningar

    • Värd: Din servers IP-adress eller domännamn.
    • Användarnamn: ftpuser (eller det användarnamn du skapade).
    • Lösenord: Det lösenord du angav.
    • Port: 2121 (eller den port du konfigurerade).
    • Protokoll: FTPS – FTP över TLS (om du har aktiverat SSL/TLS).

    Anslut och verifiera

    Anslut till servern. Om du använder ett självsignerat certifikat kan du få en varning; acceptera certifikatet för att fortsätta. Du bör nu kunna överföra filer säkert.


    Steg 7: Felsökning

    Kontrollera loggfiler

    Om du stöter på problem kan du kontrollera följande loggfiler:

    Ubuntu/Debian

    • ProFTPD-logg: /var/log/proftpd/proftpd.log
    • TLS-logg: /var/log/proftpd/tls.log

    Fedora

    • ProFTPD-logg: /var/log/proftpd.log
    • TLS-logg: /var/log/proftpd/tls.log

    Vanliga problem

    • Brandväggsinställningar: Kontrollera att rätt portar är öppna.
    • SSL/TLS-fel: Verifiera att certifikatfilernas sökvägar är korrekta.
    • Användarbehörigheter: Se till att användarkonton har rätt behörigheter och att de är begränsade till sina hemkataloger.

    Slutsats

    Du har nu framgångsrikt installerat och konfigurerat en säker FTP-server med ProFTPD på både Ubuntu/Debian och Fedora. Genom att följa denna guide har du:

    • Installerat ProFTPD: På din valda Linux-distribution.
    • Anpassat serverinställningar: För att passa dina specifika behov.
    • Skapat användarkonton: Och säkerställt att de är begränsade till sina hemkataloger.
    • Säkrat anslutningar med SSL/TLS: För att kryptera dataöverföringar.
    • Konfigurerat brandväggen: För att tillåta nödvändig trafik.
    • Testat servern: Och verifierat att den fungerar korrekt.

    Med en säker FTP-server på plats kan du nu effektivt och säkert hantera filöverföringar för dina projekt och samarbeten.


    Ytterligare tips

    • Använd starka lösenord: För alla användarkonton.
    • Regelbundna uppdateringar: Håll ProFTPD och systempaket uppdaterade för att få de senaste säkerhetsfixarna.
    • Överväg SFTP: För ännu säkrare filöverföring genom SSH.

    I vår Wiki kan du läs amer om FTP


Så här skapar du en säker FTP-server med ProFTPD på Ubuntu/Debian och Fedora

Med egen FTP server kan du skyffla filer på internet utan blanda in molntjänster.

Introduktion

Vad är FTP?

File Transfer Protocol (FTP) är ett standardprotokoll som används för att överföra filer mellan en klient och en server över ett nätverk, oftast internet. Det möjliggör enkel och effektiv filöverföring, vilket gör det till ett populärt val för webbhotell, datautbyte och fjärrlagring.

Hur fungerar FTP rent tekniskt?

FTP fungerar enligt en klient-server-modell och använder separata anslutningar för kontroll och dataöverföring:

  • Kontrollanslutning: Upprättas på port 21 och används för att skicka kommandon och ta emot svar mellan klient och server.
  • Dataanslutning: Används för själva filöverföringen. Kan vara i aktivt eller passivt läge:
  • Aktivt läge: Servern initierar dataanslutningen till klienten.
  • Passivt läge: Klienten initierar dataanslutningen till servern.

Denna uppdelning möjliggör effektiv filöverföring men kan komplicera brandväggs- och nätverksinställningar.

Säkerhetsaspekter med FTP

Standard-FTP överför data i klartext, inklusive användarnamn och lösenord, vilket gör det sårbart för:

  • Avlyssning: Känslig information kan fångas upp av obehöriga.
  • Man-in-the-middle-attacker: Data kan manipuleras under överföring.

För att förbättra säkerheten används:

  • FTPS (FTP Secure): FTP över SSL/TLS för krypterad överföring.
  • SFTP (SSH File Transfer Protocol): Använder SSH för säker filöverföring.

I denna guide fokuserar vi på att säkra FTP med SSL/TLS genom att använda ProFTPD, en kraftfull och flexibel FTP-server.

Introduktion till ProFTPD

ProFTPD är en öppen källkod FTP-server för Unix/Linux-system, känd för:

  • Flexibilitet: Hög konfigurerbarhet för olika behov.
  • Säkerhet: Stöd för moderna säkerhetsprotokoll och autentisering.
  • Stabilitet: Pålitlig prestanda under hög belastning.

ProFTPD:s konfigurationsstil liknar Apache HTTP Server, vilket underlättar för administratörer som är bekanta med Apache.

Steg-för-steg-guide för Ubuntu/Debian och Fedora

Förutsättningar

  • En server med Ubuntu, Debian eller Fedora installerad.
  • Root-åtkomst eller sudo-behörigheter.
  • En grundläggande förståelse för terminalkommandon.

Översikt

  • Steg 1: Installera ProFTPD.
  • Steg 2: Grundläggande konfiguration.
  • Steg 3: Skapa och hantera användarkonton.
  • Steg 4: Säkra FTP-servern med SSL/TLS.
  • Steg 5: Justera brandväggsinställningar.
  • Steg 6: Testa FTP-servern.
  • Steg 7: Felsökning.

Steg 1: Installera ProFTPD

På Ubuntu/Debian

Uppdatera systempaket

sudo apt update
sudo apt upgrade

Installera ProFTPD

sudo apt install proftpd

Under installationen kommer du att bli tillfrågad om du vill köra ProFTPD som Standalone eller under inetd. Välj Standalone för bättre prestanda.

Verifiera tjänsten

sudo systemctl status proftpd

Du bör se att tjänsten är aktiv och körs.

På Fedora

Uppdatera systempaket

sudo dnf update

Installera ProFTPD

ProFTPD finns inte alltid i de officiella Fedora-förvaret, så vi behöver installera det från en tredjepartskälla eller kompilera från källkod. För enkelhetens skull använder vi RPM Fusion-förvaret.

Lägg till RPM Fusion-förvaret
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
Installera ProFTPD
sudo dnf install proftpd

Starta och aktivera tjänsten

sudo systemctl start proftpd
sudo systemctl enable proftpd

Verifiera tjänsten

sudo systemctl status proftpd

Steg 2: Grundläggande konfiguration

Öppna konfigurationsfilen

Konfigurationsfilen för ProFTPD finns på olika platser beroende på distribution.

  • Ubuntu/Debian: /etc/proftpd/proftpd.conf
  • Fedora: /etc/proftpd.conf

Öppna filen med en textredigerare, till exempel nano:

Ubuntu/Debian

sudo nano /etc/proftpd/proftpd.conf

Fedora

sudo nano /etc/proftpd.conf

Anpassa inställningar

1. ServerName

Ange ett beskrivande namn för din FTP-server.

ServerName "MinSäkraFTPServer"

2. DefaultRoot

För att begränsa användare till sina hemkataloger, aktivera DefaultRoot.

DefaultRoot ~

3. Port

Ändra standardporten om du vill öka säkerheten.

Port 2121

4. MaxInstances

Begränsa antalet samtidiga anslutningar.

MaxInstances 30

5. Inaktivera anonym åtkomst

Ändra sektionen för anonym åtkomst för att inaktivera den.

<Anonymous ~ftp>
  User ftp
  Group nogroup
  <Limit LOGIN>
    DenyAll
  </Limit>
</Anonymous>

Spara och starta om tjänsten

Spara filen och starta om ProFTPD för att tillämpa ändringarna.

Ubuntu/Debian/Fedora

sudo systemctl restart proftpd

Steg 3: Skapa och hantera användarkonton

Skapa en ny FTP-användare

Skapa ett nytt användarkonto för FTP-åtkomst.

sudo adduser ftpuser

Ange ett starkt lösenord när du blir ombedd.

Begränsa användarens åtkomst

Verifiera att DefaultRoot ~ är aktiverad i konfigurationsfilen för att begränsa användarens åtkomst till sin hemkatalog.


Steg 4: Säkra FTP-servern med SSL/TLS

Generera ett SSL-certifikat

För att kryptera anslutningen behöver du ett SSL/TLS-certifikat. För teständamål kan du skapa ett självsignerat certifikat.

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

Ange nödvändig information under genereringen.

Aktivera TLS i ProFTPD

Redigera konfigurationsfilen för att aktivera TLS.

Ubuntu/Debian

sudo nano /etc/proftpd/proftpd.conf

Fedora

sudo nano /etc/proftpd.conf

Lägg till eller avkommentera följande sektion:

<IfModule mod_tls.c>
   TLSEngine on
   TLSLog /var/log/proftpd/tls.log
   TLSProtocol TLSv1.2
   TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
   TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
   TLSVerifyClient off
   TLSRequired on
</IfModule>

Spara och starta om tjänsten

Spara filen och starta om ProFTPD.

Ubuntu/Debian

sudo systemctl restart proftpd

Fedora

sudo systemctl restart proftpd

Steg 5: Justera brandväggsinställningar

Ubuntu/Debian med UFW

Tillåt FTP-trafik

Om du använder UFW, tillåt trafik på vald port.

  • Standardport 21:
  sudo ufw allow 21/tcp
  • Anpassad port (t.ex. 2121):
  sudo ufw allow 2121/tcp

Ladda om UFW

sudo ufw reload

Fedora med Firewalld

Tillåt FTP-trafik

Använd firewall-cmd för att tillåta FTP-trafik.

  • Standardport 21:
  sudo firewall-cmd --permanent --add-port=21/tcp
  • Anpassad port (t.ex. 2121):
  sudo firewall-cmd --permanent --add-port=2121/tcp

Ladda om Firewalld

sudo firewall-cmd --reload

Steg 6: Testa FTP-servern

Använd en FTP-klient

För att testa servern kan du använda en FTP-klient som FileZilla.

Anslutningsinställningar

  • Värd: Din servers IP-adress eller domännamn.
  • Användarnamn: ftpuser (eller det användarnamn du skapade).
  • Lösenord: Det lösenord du angav.
  • Port: 2121 (eller den port du konfigurerade).
  • Protokoll: FTPS – FTP över TLS (om du har aktiverat SSL/TLS).

Anslut och verifiera

Anslut till servern. Om du använder ett självsignerat certifikat kan du få en varning; acceptera certifikatet för att fortsätta. Du bör nu kunna överföra filer säkert.


Steg 7: Felsökning

Kontrollera loggfiler

Om du stöter på problem kan du kontrollera följande loggfiler:

Ubuntu/Debian

  • ProFTPD-logg: /var/log/proftpd/proftpd.log
  • TLS-logg: /var/log/proftpd/tls.log

Fedora

  • ProFTPD-logg: /var/log/proftpd.log
  • TLS-logg: /var/log/proftpd/tls.log

Vanliga problem

  • Brandväggsinställningar: Kontrollera att rätt portar är öppna.
  • SSL/TLS-fel: Verifiera att certifikatfilernas sökvägar är korrekta.
  • Användarbehörigheter: Se till att användarkonton har rätt behörigheter och att de är begränsade till sina hemkataloger.

Slutsats

Du har nu framgångsrikt installerat och konfigurerat en säker FTP-server med ProFTPD på både Ubuntu/Debian och Fedora. Genom att följa denna guide har du:

  • Installerat ProFTPD: På din valda Linux-distribution.
  • Anpassat serverinställningar: För att passa dina specifika behov.
  • Skapat användarkonton: Och säkerställt att de är begränsade till sina hemkataloger.
  • Säkrat anslutningar med SSL/TLS: För att kryptera dataöverföringar.
  • Konfigurerat brandväggen: För att tillåta nödvändig trafik.
  • Testat servern: Och verifierat att den fungerar korrekt.

Med en säker FTP-server på plats kan du nu effektivt och säkert hantera filöverföringar för dina projekt och samarbeten.


Ytterligare tips

  • Använd starka lösenord: För alla användarkonton.
  • Regelbundna uppdateringar: Håll ProFTPD och systempaket uppdaterade för att få de senaste säkerhetsfixarna.
  • Överväg SFTP: För ännu säkrare filöverföring genom SSH.

I vår Wiki kan du läs amer om FTP