Hur man ställer in en Linux FTP-server för snabba filöverföringar

0
155

FTP, eller File Transfer Protocol, är ett standardprotokoll för att skicka och ta emot filer från fjärrservrar. Det är lättare att använda än kommandoradsalternativ som scp, särskilt med GUI-gränssnitt som FileZilla.

Vad är FTP?

< p> Förr på internet var offentliga FTP-servrar ett mycket vanligt sätt att göra filer tillgängliga för ett stort antal människor. Idag finns FTP fortfarande och används ofta för administrativa uppgifter.

Medan någon form av FTP CLI levereras med de flesta större operativsystem, gör GUI-klienter som FileZilla processen att flytta filer mellan servrar så enkelt som att dra och släppa från lokal lagring till fjärrlagring, eller vice versa. All underliggande trafik hanteras med FTP.

Ställa in detta up kräver att du installerar och konfigurerar en FTP-server, som vsftpd, på den fjärrmaskin du vill komma åt.

Det bör noteras att användare som är inloggade via FTP har tillgång till ditt system, precis som du gör. Det finns steg du kan vidta för att mildra dessa risker, till exempel vitlista åtkomst och låsa användare i deras hemkataloger.

Installera vsftpd

För att komma igång, installera vsftpd från din distributions pakethanterare. För Debian-baserade system som Ubuntu skulle det vara från apt:

sudo apt-get install vsftpd Annonsering

Därefter måste du starta tjänsten och ställa in att den ska köras vid starttid:

systemctl start vsftpd systemctl aktiverar vsftpd

FTP har två primära autentiseringsmetoder:

    < li> Anonym FTP, där alla kan logga in utan lösenord. Detta används för allmän fildelning och är inaktiverat som standard.
  • Lokal användarinloggning, vilket gör att alla användare i/etc/passwd kan komma åt FTP med ett användarnamn och lösenord.

Du kommer antagligen vilja aktivera lokal användarinloggning och hålla anonym åtkomst inaktiverad. Att logga in på FTP med ditt användarkonto ger dig åtkomst till allt ditt konto kan komma åt.

Öppna /etc/vsftpd.conf i din favorittextredigerare och ändra följande rad till YES:

local_enable = YES

Om du vill kunna ladda upp filer, byt skriv_enable till YES också:

write_enable = YES

Med en omstart av vsftpd (systemctl restart vsftpd) bör du nu kunna för att logga in på FTP med en klient som FileZilla eller CLI på din personliga dator.

Annons

Om du bara vill aktivera FTP för specifika användare kan du vitlista åtkomst. Öppna /etc/vsftpd.userlist och lägg till namnen på varje konto som du vill aktivera på separata rader.

nano /etc/vsftpd.userlist

Lägg sedan till följande rader i/etc/vsftpd. conf:

userlist_enable = YES userlist_file =/etc/vsftpd.userlist userlist_deny = NO

Detta begränsar åtkomsten till endast de användare som definierats i användarlistfilen och nekar alla andra.

Om du inte vill att användare ska ha åtkomst till filer utanför deras hemkatalog kan du placera dem i ett chrootfängelse, vilket förhindrar dem från att interagera med eventuella kataloger på övre nivå. Du kan aktivera detta genom att avmarkera följande rad i /etc/vsftpd.conf:

chroot_local_user = YES

Starta om vsftpd med systemctl starta om vsftpd för att tillämpa ändringarna.

Ställa in FTPS

Standard FTP-trafik skickas okrypterad som HTTP. Detta är uppenbarligen inte bra, så du bör konfigurera vsftpd för att kryptera trafik med TLS.

För att göra det, skapa en ny nyckel och signera en begäran med openssl:

openssl genrsa -des3 -out FTP.key openssl req -new -key FTP.key -out certificate.csr

vsftpd behöver lösenordet tas bort från den här nyckeln, så kopiera nyckeln och skicka den tillbaka till openssl:

cp FTP.key FTP.key.orig openssl rsa -in FTP.key.orig -out ftp.key

Slutligen generera en TLS certifikat med den här nyckeln:

openssl x509 -req -days 365 -in certificate.csr -signkey ftp.key -out mycertificate.crt

Kopiera nyckeln och certifikatet över till/etc/pki/tls/certs/:

cp ftp.key/etc/pki/tls/certs/cp mycertificate.crt/etc/pki/tls/certs Annons

Nu när alla certs är inställda kan du än en gång öppna upp /etc/vsftpd.conf och lägg till följande rader:

ssl_enable = JA allow_anon_ssl = JA ssl_tlsv1 = JA ssl_sslv2 = NEJ ssl_sslv3 = NEJ rsa_cert_file =/etc/pki/tls/certs/mycertificate.crt_c_ /etc/pki/tls/certs/ftp.key ssl_ciphers = HÖG kräver_ssl_reuse = NEJ

Starta om vsftpd med systemctl starta om vsftpd för att tillämpa ändringar.