Installera en FTP-server (vsftpd) på Ubuntu 18.04 / 18.10 / 19.04 / 19.10

posted in: Articles | 0

innan du börjar…

det är förvånande hur många webbutvecklare fortfarande är omedvetna om SFTP och fördelarna jämfört med FTP/FTPS. SFTP levereras med Linux-Server förinstallerad och fungerar precis som vanlig FTP, men är säkrare och mindre krångel att ställa in. Om din FTP-klient stöder SFTP, bör du använda den!

  • så här konfigurerar du SFTP för en webbserverdokumentrot

installera vsftpd

låt oss börja med att uppdatera paketlistorna och installera vsftpd på Ubuntu 18.04 / 18.10 / 19.04 / 19.10. – herr talman!,

nedan har vi två kommandon åtskilda av &&. Det första kommandot uppdaterar paketlistorna så att du får den senaste versionen och beroenden för vsftpd. Det andra kommandot hämtar och installerar sedan vsftpd. Tryck på y och ENTER när du blir ombedd att fortsätta.

sudo apt update && sudo apt install vsftpd

en gång installerat, kontrollera status för vsftpd

sudo service vsftpd status

ovan kan vi se vår FTP-server är nu igång.,

konfigurera brandvägg

om du inte redan har gjort det rekommenderas att du aktiverar brandväggenufw för Ubuntu 18.04 / 18.10 / 19.04 / 19.10. – herr talman! Innan du aktiverar ufw brandvägg, se till att du lägger till en regel för SSH, annars kan du bli låst från din server om du är ansluten på distans. Om du inte vill ställa in en brandvägg, Hoppa till steg 3.

sudo ufw allow OpenSSH

låt oss öppna portar 20 och 21 för FTP och portar 40000-50000 för passiv FTP. Vi öppnar också port 990 för TLS, som vi kommer att ställa upp senare.,

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw allow 990/tcp

Aktivera nu brandväggen om den inte redan finns. Tryck på y och ENTER om du varnade för att störa SSH-anslutningen.

sudo ufw enable

för att kontrollera brandväggens status, kör:

sudo ufw status

om brandväggen körs bör du seStatus: active och brandväggsreglerna vi just lagt till.

skapa FTP-användare

Vi kommer nu att skapa en ny användare som vi kommer att använda för att logga in på FTP., I det här exemplet skapar vi en ny användare som heter ftpuser.

sudo adduser ftpuser

skapa ett starkt lösenord och håll det säkert.

Du kan också bli ombedd att ange vissa kontaktuppgifter. Du kan bara trycka på ENTER till var och en av dessa.

om du bara vill att ftpuser ska logga in via FTP, bör du inaktivera deras SSH-åtkomst genom att svartlista sitt användarnamn i SSH-konfigurationsfilen. Annars hoppa till steg 4.

Öppna SSH-konfigurationen i nano.,

sudo nano /etc/ssh/sshd_config

Lägg till följande i botten av filen som ersätterftpuser med användaren du vill neka SSH och SFTP-åtkomst. Du kan lägga till flera användare här åtskilda av ett enda utrymme. (Om du vill klistra in nano trycker du på höger musknapp).

/etc/ssh/sshd_config
DenyUsers ftpuser

för att spara fil och avsluta, tryckCTRL + X, tryck påY och tryck sedan påENTER.

Starta om SSH-tjänsten.,

sudo service sshd restart

katalogbehörigheter

Du måste nu bestämma var den nya FTP-användaren får visa och ladda upp filer.

vsftpd använder chroot-fängelser för att begränsa användarna till sina hemkataloger och kräver att hemkatalogen inte är skrivbar. Av den anledningen måste vi ställa in några kataloger och behörigheter.

om du planerar att använda detta FTP-användarkonto för att ladda upp filer till en webbserver fortsätter du till steg 4.1. Om du bara vill ladda upp till en hemmapp, Hoppa till steg 4.2.

4.1., Ladda upp till en webbserver

i många fall vill du kunna ladda upp filer till dokumentroten på webbservern.

om du följde en tidigare guide här för att konfigurera flera domäner kan din dokumentrot vara placerad i någonstans som /var/www/test1.com/public_html – I så fall måste du ställa in hemmappen förftpuser till mappen ovanför dokumentroten: /var/www/test1.com (ersätt test1.com för din egen domän).,

om du inte använder flera domäner antar vi att du använder standarddokumentroten /var/www/html för både Apache och Nginx i Ubuntu 18.04 / 18.10 / 19.04 / 19.10. – herr talman! I det här scenariot måste vi göra/var/www/ hemkatalogen för vår användareftpuser.

låt oss ställa in mappen ovanför dokumentroten som hemkatalog för ftpuser.

sudo usermod -d /var/www ftpuser

detta gör det möjligt för vår FTP-användare att skriva och ändra filer i dokumentets rotkatalog.,

sudo chown ftpuser:ftpuser /var/www/html

hoppa nu till steg 5 för att konfigurera vsftpd.

4.2 Ladda upp till en hemmapp

om du istället vill att den här användaren ska ladda upp filer till hemkatalogen, skapa en ny katalog som heter ftp I användarens hemkatalog och en annan i den som heter files. I det här exemplet kallas vår användare ftpuser.

sudo mkdir /home/ftpuser/ftp

Ställ in äganderätten till katalogenftp till ingennobody:nogroup.,

sudo chown nobody:nogroup /home/ftpuser/ftp

Ange behörigheter för katalogenftp medchmod så att den inte är skrivbar av någon, annars tillåter vsftpd inte att du loggar in. a-w betydera = alla/alla- = ta bortw = skrivbehörighet, så ta bort skrivbehörigheter för alla.

sudo chmod a-w /home/ftpuser/ftp

nästa kommer vi att skapa en ny katalog inom /ftp där användaren kan visa och ladda upp filer.,

sudo mkdir /home/ftpuser/ftp/files

tilldela äganderätten till den här katalogen till vår nya FTP-användare annars kommer de inte att kunna skriva till den.

sudo chown ftpuser:ftpuser /home/ftpuser/ftp/files

konfigurera vsftpd

det finns några ändringar som vi måste göra i vsftpd-konfigurationsfilen innan du kan börja använda FTP på Ubuntu 18.04 / 18.10 / 19.04 / 19.10. – herr talman!

innan du redigerar konfigurationsfilen skapar du en säkerhetskopia.

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

Öppna nu konfigurationsfilen inano – redigeraren.,

sudo nano /etc/vsftpd.conf

det här är en ganska stor fil men den är mestadels fylld med kommentarer som hjälper dig med.

Du måste gå ner i filen och se till att inställningarna matchar dem nedan. OBS! Du kan söka i nano med CTRL + W

leta efter #write_enable=YES och Avkommentera det genom att ta bort # – tecknet. Detta gör det möjligt för FTP-användare att skriva filer till servern.

/etc / vsftpd.,conf
write_enable=YES

leta efter #chroot_local_user=YES och Avkommentera det genom att ta bort # – tecknet. Detta kommer att förhindra FTP-användare från att surfa utanför sin egen katalog.

/etc / vsftpd.conf
chroot_local_user=YES

leta efter #local_umask=022 och Avkommentera det genom att ta bort # – tecknet. Detta kommer att ge uppladdade filer och mappar rätt behörigheter.

/etc / vsftpd.conf
local_umask=022

Vi måste nu lägga till några direktiv som inte finns i filen.,

eftersom Linux inte visar filer som börjar med en punkt, kommer filer som.htaccess inte att synas i FTP. Detta kan vara ett problem om du tänker använda Apache och vill arbeta med .htaccess.

för att tvinga vsftpd att visa filnamn som börjar med en punkt, klistra in följande längst ner i filen. (För att klistra in nano, tryck på höger musknapp)

etc/vsftpd.conf
force_dot_files=YES

slutligen, låt oss lägga till några portområden för passiv FTP för att se till att tillräckligt många anslutningar är tillgängliga. Klistra in följande längst ner i filen., (För att klistra in nano, tryck på höger musknapp)

etc/vsftpd.conf
pasv_min_port=40000pasv_max_port=50000

om du följde steg 4.2 tidigare och bara vill att den här användaren ska ladda upp filer till hemmappen måste vi berätta för vsftpd att local_root är mappen /ftp som vi skapade tidigare.

lägg inte till dessa två rader om du vill att användaren ska ladda upp till webbdokumentets rot!

/etc / vsftpd.conf
user_sub_token=$USERlocal_root=/home/$USER/ftp

Vi är klara med vsftpd.conf för tillfället men kommer tillbaka i senare steg för att ställa in säkerhet och SSL.,

om du vill spara filen och avsluta trycker du påCTRL + X genom att trycka påY och sedan trycka påENTER.

Starta om vsftpd.

sudo systemctl restart vsftpd

testa FTP

Vi kan nu testa vsftpd för att se om vi kan logga in som användaren vi skapade tidigare. Vi rekommenderar FileZilla, som fungerar på Windows, Mac och Linux.

ange serverns IP, ditt FTP-användarnamn och lösenord som du skapade tidigare och klicka på Quickconnect.,

ovan kan vi se att vi har anslutit framgångsrikt och webbrotkatalogen html visas, även om detta kan vara annorlunda på din server.

försök att ladda upp, skapa och redigera mappar och filer i webbrotkatalogen för att säkerställa att behörigheterna fungerar korrekt.

Du kommer att märka att vi har en varning i FileZilla ”Status: osäker server, det stöder inte FTP över TLS.”Det rekommenderas starkt att du nu konfigurerar TLS så att inloggningsuppgifter och trafik krypteras över FTP-anslutningen.,

om du har problem med att logga in på FTP-servern kan du prova att kontrollera vsftpd-loggen. För att visa de senaste 200 posterna medtail:

sudo tail /var/log/vsftpd.log -n 200

säker FTP med TLS (tillval)

det är viktigt att komma ihåg några saker när du använder FTP – det är inte krypterat som standard vilket innebär att dina referenser och filer som du skickar är sårbara för avlyssning. För att åtgärda detta bör du ansluta till vsftpd att använda FTPS (FTP över SSL/TLS).

låt oss börja med att skapa ett nytt certifikat med verktygetopenssl.,

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

Du kommer att bli ombedd att ange några detaljer som land etc. Du behöver inte fylla i de här. Du kan bara trycka på ENTER för standardvärden.

nu när din privata nyckel har skapats, finns det några ändringar som vi måste göra i vsftpd-konfigurationsfilen.

Öppna konfigurationsfilen i nano editor.

sudo nano /etc/vsftpd.conf

hitta följande rad: (Obs: Du kan söka inano medCTRL + W)

etc / vsftpd.,conf
ssl_enable=NO

ändra det till:

etc/vsftpd.conf
ssl_enable=YES

klistra in följande under den.

/etc / vsftpd.Conf

spara filen och avsluta (tryck på CTRL + X, tryck på Y och tryck sedan på ENTER).

Starta om vsftpd.

sudo systemctl restart vsftpd

testa TLS med FileZilla

Vi kan nu testa TLS. Vi rekommenderar FileZilla, som fungerar på Windows, Mac och Linux.,

ange serverns IP, ditt FTP-användarnamn och lösenord som du skapade tidigare och klicka på Quickconnect.

Du kan få en okänd Certifikatvarning. Klicka på Lita alltid på certifikatet i framtida sessioner och klicka på OK.

om du är ansluten via TLS, kommer det att berätta i anslutningsloggen. Du kommer också att se ett hänglås i nedre högra hörnet.

du är klar!,

4,79 (42 röster)

låt mig veta om detta hjälpte. Följ mig på Twitter, Facebook och YouTube, eller Friday buy me a smoothie.

p.s. jag ökade mina AdSense-intäkter med 68% med hjälp av AI. Läs min Ezoic recension för att ta reda på hur.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *