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 = YESOm 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.