Linux

Så här ställer du in FTP-server med VSFTPD på Ubuntu 20.04

Så här ställer du in FTP-server med VSFTPD på Ubuntu 20.04

Den här artikeln beskriver hur du installerar och konfigurerar en FTP-server på Ubuntu 20.04 som du använder för att dela filer mellan dina enheter.

FTP (File Transfer Protocol) är ett standardnätverksprotokoll som används för att överföra filer till och från ett fjärranätverk. Det finns flera öppen källkod FTP-servrar tillgängliga för Linux. De mest kända och mest använda är PureFTPd, ProFTPD och vsftpd . Vi installerar vsftpd (Very Secure Ftp Daemon), en stabil, säker och snabb FTP-server. Vi visar dig också hur du konfigurerar servern för att begränsa användarna till deras hemkatalog och kryptera hela överföringen med SSL / TLS.

Även om FTP är ett mycket populärt protokoll bör du använda SCP eller SFTP för säkrare och snabbare dataöverföringar .

Installerar vsftpd på Ubuntu 20.04 #

VSftpd-paketet finns i Ubuntu-arkivet. För att installera det, kör följande kommandon:

sudo apt uppdateringsudo apt installera vsftpd

Ftp-tjänsten startar automatiskt när installationen är klar. För att verifiera det, skriv ut servicestatus:

sudo systemctl status vsftpd

Utdata ska visa att vsftpd-tjänsten är aktiv och kör:

● vsftpd.service - vsftpd FTP-server laddad: laddad (/ lib / systemd / system / vsftpd.service; aktiverad; leverantörsförinställning: aktiverad) Aktiv: aktiv (igång) sedan tis 2021-03-02 15:17:22 UTC; För 3 år sedan .. 

Konfigurera vsftpd #

Vsftpd-serverkonfigurationen lagras i / etc / vsftpd.konf fil.

De flesta serverinställningarna är väldokumenterade i filen. För alla tillgängliga alternativ, besök vsftpd-dokumentationssidan.

I följande avsnitt kommer vi att gå igenom några viktiga inställningar som behövs för att konfigurera en säker vsftpd-installation.

Börja med att öppna konfigurationsfilen vsftpd:

sudo nano / etc / vsftpd.konf

1. FTP-åtkomst #

Vi tillåter endast åtkomst till FTP-servern för de lokala användarna. Sök efter anonym_aktivera och local_enable riktlinjer och kontrollera att din konfiguration matchar raderna nedan:

/ etc / vsftpd.konf
anonymous_enable = NEJ local_enable = JA 

2. Aktiverar uppladdningar #

Hitta och avmarkera skriv_aktivera direktiv för att tillåta ändringar av filsystem, såsom att ladda upp och ta bort filer:

/ etc / vsftpd.konf
write_enable = JA 

3. Chroot fängelse #

För att förhindra att lokala FTP-användare får åtkomst till filer utanför sina hemkataloger, avmarkera lne från och med chroot_local_user:

/ etc / vsftpd.konf
chroot_local_user = JA 

Som säkerhetsskäl, när chroot är aktiverat, kommer vsftpd att vägra att ladda upp filer om katalogen som användarna är låsta är skrivbar.

Använd en av lösningarna nedan för att tillåta uppladdningar när chroot är aktiverat:

4. Passiva FTP-anslutningar #

Som standard använder vsftpd aktivt läge. För att använda passivt läge ställer du in minsta och högsta utbud av portar:

/ etc / vsftpd.konf
pasv_min_port = 30000 pasv_max_port = 31000 

Du kan använda vilken port som helst för passiva FTP-anslutningar. När det passiva läget är aktiverat öppnar FTP-klienten en anslutning till servern på en slumpmässig port i det valda intervallet.

5. Begränsa användarinloggning #

Du kan konfigurera vsftpd så att endast vissa användare kan logga in. För att göra det, lägg till följande rader i slutet av filen:

/ etc / vsftpd.konf
userlist_enable = JA userlist_file = / etc / vsftpd.user_list userlist_deny = NEJ 

När detta alternativ är aktiverat måste du uttryckligen ange vilka användare som kan logga in genom att lägga till användarnamnen i / etc / vsftpd.användarlista fil (en användare per rad).

6. Säkra överföringar med SSL / TLS #

För att kryptera FTP-överföringar med SSL / TLS måste du ha ett SSL-certifikat och konfigurera FTP-servern för att använda den.

Du kan använda ett befintligt SSL-certifikat signerat av en betrodd certifikatutfärdare eller skapa ett självsignerat certifikat.

Om du har en domän eller underdomän som pekar på FTP-serverns IP-adress kan du snabbt skapa ett gratis Låt oss kryptera SSL-certifikat.

Vi kommer att generera en 2048-bitars privat nyckel och ett självsignerat SSL-certifikat som är giltigt i tio år:

sudo openssl req -x509 -noder -dagar 3650 -nyckel rsa: 2048 -keyout / etc / ssl / private / vsftpd.pem -out / etc / ssl / private / vsftpd.pem

Både den privata nyckeln och certifikatet sparas i samma fil.

När SSL-certifikatet har skapats öppnar du vsftpd-konfigurationsfilen:

sudo nano / etc / vsftpd.konf

Hitta rsa_cert_file och rsa_private_key_file direktiv, ändra deras värden till pam sökväg och ställ in ssl_enable direktiv till JA:

/ etc / vsftpd.konf
rsa_cert_file = / etc / ssl / private / vsftpd.pem rsa_private_key_file = / etc / ssl / private / vsftpd.pem ssl_enable = JA 

Om inget annat anges använder FTP-servern endast TLS för att skapa säkra anslutningar.

Starta om vsftpd-tjänsten #

När du är klar med redigeringen ska vsftpd-konfigurationsfilen (exklusive kommentarer) se ut så här:

/ etc / vsftpd.konf
lyssna = NEJ lyssna_ipv6 = JA anonym_enable = NEJ local_enable = JA write_enable = JA dirmessage_enable = JA use_localtime = JA xferlog_enable = JA connect_from_port_20 = JA chroot_local_user = JA secure_chroot_dir = / var / run / vsftpd / s privat / vsftpd.pem rsa_private_key_file = / etc / ssl / private / vsftpd.pem ssl_enable = JA user_sub_token = $ USER local_root = / home / $ USER / ftp pasv_min_port = 30000 pasv_max_port = 31000 userlist_enable = YES userlist_file = / etc / vsftpd.user_list userlist_deny = NEJ 

Spara filen och starta om vsftpd-tjänsten för att ändringar ska träda i kraft:

sudo systemctl starta om vsftpd

Öppna brandväggen #

Om du kör en UFW-brandvägg måste du tillåta FTP-trafik.

För att öppna porten 21 (FTP-kommandoport), port 20 (FTP-dataport) och 30000-31000 (Passiva portar), kör följande kommandon:

sudo ufw tillåter 20: 21 / tcpsudo ufw tillåter 30000: 31000 / tcp

Se till att porten undviker att bli utestängd 22 är öppen:

sudo ufw tillåter OpenSSH

Ladda om UFW-reglerna genom att inaktivera och återaktivera UFW:

sudo ufw inaktiverasudo ufw aktivera

För att verifiera ändringarna:

sudo ufw-status
Status: aktiv Till åtgärd Från - ------ ---- 20: 21 / tcp ALLOW Anywhere 30000: 31000 / tcp ALLOW Anywhere OpenSSH ALLOW Anywhere 20: 21 / tcp (v6) ALLOW Anywhere (v6) 30000: 31000 / tcp (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6) 

Skapa FTP-användare #

För att testa FTP-servern skapar vi en ny användare.

  1. Skapa en ny användare med namnet newftpuser:

    sudo adduser newftpuser
  2. Lägg till användaren i den tillåtna FTP-användarlistan:

    eko "newftpuser" | sudo tee -a / etc / vsftpd.användarlista
  3. Skapa FTP-katalogträdet och ställ in rätt behörigheter:

    sudo mkdir -p / home / newftpuser / ftp / uploadsudo chmod 550 / home / newftpuser / ftpsudo chmod 750 / home / newftpuser / ftp / uploadsudo chown -R newftpuser: / home / newftpuser / ftp

    Som diskuterades i föregående avsnitt kommer användaren att kunna ladda upp sina filer till ftp / uppladdning katalog.

Vid denna tidpunkt är din FTP-server helt funktionell. Du bör kunna ansluta till servern med vilken FTP-klient som helst som kan konfigureras för att använda TLS-kryptering, till exempel FileZilla .

Inaktivera Shell Access #

Som standard kommer användaren att ha SSH-åtkomst till servern när man skapar en användare, om det inte uttryckligen anges. För att inaktivera skalåtkomst skapar du ett nytt skal som skriver ut ett meddelande som berättar för användaren att deras konto är begränsat till FTP-åtkomst.

Kör följande kommandon för att skapa / bin / ftponly fil och gör den körbar:

eko -e '#!/ bin / sh \ necho "Detta konto är endast begränsat till FTP-åtkomst."'| sudo tee -a / bin / ftponlysudo chmod a + x / bin / ftponly

Lägg till det nya skalet i listan över giltiga skal i / etc / skal fil:

eko "/ bin / ftponly" | sudo tee -a / etc / skal

Ändra användarskalet till / bin / ftponly:

sudo usermod newftpuser -s / bin / ftponly

Du kan använda samma kommando för att ändra skalet på alla användare som du bara vill ge FTP-åtkomst till.

Slutsats #

Vi har visat dig hur du installerar och konfigurerar en säker och snabb FTP-server på din Ubuntu 20.04-systemet.

Om du har några frågor eller feedback, lämna gärna en kommentar.

Bästa Gamepad Mapping Apps för Linux
Om du gillar att spela spel på Linux med en gamepad istället för ett typiskt tangentbord och musinmatningssystem, finns det några användbara appar för...
Användbara verktyg för Linux-spelare
Om du gillar att spela spel på Linux är chansen att du kan ha använt appar och verktyg som Wine, Lutris och OBS Studio för att förbättra spelupplevels...
HD Remastered Games för Linux som aldrig tidigare hade en Linux-version
Många spelutvecklare och utgivare kommer med HD-remaster av gamla spel för att förlänga livstiden för franchisen, snälla fans som begär kompatibilitet...