FTP

Hur man konfigurerar FTP med TLS i Ubuntu

Hur man konfigurerar FTP med TLS i Ubuntu
FTP (File Transfer Protocol) används främst för att överföra filer mellan datorer. FTP fungerar i klient-serverarkitektur, där klienten ber om en fil från servern och servern returnerar den nödvändiga filen till klienten. På klientmaskinen används FTP-klientapplikationen för att kommunicera med servern. Det är också möjligt att komma åt FTP-servern i webbläsaren. Som standard kommunicerar FTP via en osäker kanal, men det är möjligt att konfigurera FTP för att överföra data över en säker kanal. I denna handledning lär du dig hur du konfigurerar en FTP-server med TLS och sedan använder FileZilla som ett klientprogram för att ansluta till FTP-servern.

Installerar VSFTPD

VSFTPD (Very Secure FTP Daemon) är ett program som används för att konfigurera FTP på en server. I den här självstudien kommer VSFTPD att användas för att konfigurera FTP-servern på maskinen. Innan du installerar VSFTPD, uppdaterar du lagringsplatserna på din server genom att utfärda följande kommando.

[e-postskyddad]: ~ $ sudo apt-get update -y

Installera sedan VSFTPD med följande kommando.

[e-postskyddad]: ~ $ sudo apt-get install vsftpd -y

Slutligen, verifiera installationen genom att kontrollera versionen av vsftpd med följande kommando.

[e-postskyddad]: ~ $ vsftpd -v

Ovanstående kommando matar ut versionen av vsftpd om installationen lyckas.

FTP i aktivt läge

I aktivt läge startar FTP-klienten sessionen genom att upprätta TCP-styranslutningen från vilken slumpmässig port som helst på klientmaskinen till port 21 på servern. Sedan börjar klienten lyssna på en slumpmässig port X för en dataanslutning och informerar servern via TCP Control-anslutning att klienten väntar på dataanslutningen på port X. Efter detta upprättar servern en dataanslutning från port 20 till port X på klientmaskinen.

Ett problem kan uppstå där klienten är bakom en brandvägg och port X blockeras. I det här fallet kan servern inte upprätta en dataanslutning med klienten. För att undvika detta problem används FTP-servern mestadels i passivt läge, vilket vi kommer att diskutera senare i den här artikeln. Som standard använder VSFTPD passivt läge, så vi måste ändra det till aktivt läge.

Öppna först VSFTPD-konfigurationsfilen.

[e-postskyddad]: ~ $ sudo nano / etc / vsftpd.konf

Lägg till följande rad i slutet av filen.

pasv_enable = NEJ

Se också till att alternativet 'connect_from_port_20' är inställt på 'YES.'Det här alternativet säkerställer att dataanslutningen upprättas på port 20 på servern.

Skapa sedan en katalog som FTP-servern kommer att använda för att lagra filer. För den här handledningen konfigurerar vi '/ home / ubuntu / ftp /' som rotbana för FTP-servern.

[e-postskyddad]: ~ $ sudo mkdir / home / ubuntu / ftp

Ange nu den här katalogen i konfigurationsfilen genom att ändra alternativet 'local_root'. Följande parameter konfigurerar rotvägen till servern.

local_root = / home / ubuntu / ftp

Alternativet "skriv_aktivera" måste vara aktiverat för att användare ska kunna skriva till FTP-servern.

Starta alltid om servern varje gång du ändrar konfigurationsfilen.

[e-postskyddad]: ~ $ sudo systemctl startar om vsftpd

Ställa in ett lösenord för en användare

FTP-klienten ansluter till servern med ett användarnamn och lösenord. Ställ in lösenordet för din användare på maskinen med följande kommando.

[e-postskyddad]: ~ $ sudo passwd ubuntu

Ovanstående kommando kommer att be om lösenordet för "ubuntu" -användaren.

Konfigurera brandväggen för aktivt läge

Om FTP används i aktivt läge kommer FTP-servern att använda två portar för att kommunicera med klienten, portarna 21 och 22. Port 21 används för att skicka kommandon till klienten, och Port 20 används för att överföra data till vilken slumpmässig port som helst på klienten. Vi använder ufw för att konfigurera brandväggen på servern. Installera ufw med följande kommando.

[e-postskyddad]: ~ $ sudo apt-get install ufw

Nu på serversidan öppnar vi portarna 20, 21 och 22 (för SSH-anslutningen).

[e-postskyddad]: ~ $ sudo ufw tillåta från vilken som helst till vilken portproto tcp som helst

Aktivera och kontrollera status för ufw med följande kommandon.

[e-postskyddad]: ~ $ sudo ufw aktivera
[e-postskyddad]: ~ $ sudo ufw-status

NOTERA: om du konfigurerar din FTP-server i molnet måste du också tillåta portarna 20, 21 och 22 i säkerhetsgruppen.

VARNING: Aktivera alltid port 22 tillsammans med de nödvändiga portarna innan du aktiverar ufw på fjärrsystemet. Som standard blockerar UFW trafik från port 22, så du kommer inte att kunna komma åt din fjärrserver med SSH om du aktiverar ufw utan att tillåta trafik från port 22.

Installera FTP-klienten

Nu är vår server konfigurerad i aktivt läge och vi kan komma åt den från klientsidan. För klientapplikationen använder vi FileZilla, en ftp-klientapplikation. Installera FileZilla med följande kommando.

[e-postskyddad: ~ $ sudo apt-get install filezilla -y

Öppna FTP-klientapplikationen och ange den offentliga IP-adressen och andra referenser för FTP-servern.

När du klickar på "Snabbanslutning" ansluter du till FTP-servern och tas automatiskt till den katalog som anges i alternativet "local_root" i konfigurationsfilen "/ home / ubuntu / ftp".

Problem i aktivt läge

Att använda FTP i aktivt läge ger upphov till problem när klienten är bakom brandväggen. När de första kontrollkommandona har matats in, när servern skapar en dataanslutning med klienten på en slumpmässig port, kan porten blockeras av brandväggen på klienten, vilket får dataöverföringen att misslyckas. FTP kan användas i passivt läge för att lösa dessa brandväggsproblem.

FTP i passivt läge

I passivt läge skapar klienten en kontrollanslutning med servern på port 21 på servern. Klienten skickar sedan det speciella kommandot "PASV" för att informera servern om att dataanslutningen kommer att upprättas av klienten istället för servern. Som svar får klienten serverns IP och slumpmässiga portnummer (detta portnummer konfigureras på servern). Klienten använder detta IP- och portnummer för att skapa en dataförbindelse med servern. I passivt läge upprättas både data- och kontrollanslutningarna av klienten så att brandväggen inte stör kommunikationen mellan klienten och servern.

Öppna FTP-konfigurationsfilen i din favoritredigerare.

[e-postskyddad]: ~ $ sudo nano / etc / vsftpd.konf

Ställ in alternativet 'pasv_enable' till 'YES' i filen så att servern kan kommunicera med klienten i passivt läge. Ställ också in 'local_root' för att ange rotkatalogen på servern och ställ in 'write_enable' -alternativet till 'YES' så att användare kan ladda upp filer till servern.

Som tidigare diskuterats upprättas dataanslutningen av klienten och servern skickar sin offentliga IP och en slumpmässig port till klienten för att skapa en dataanslutning. Denna slumpmässiga port på servern kan specificeras från ett antal portar i konfigurationsfilen.

Dataförbindelsen mellan servern och klienten kommer att upprättas på en port mellan 1024 och 1048. Starta om FTP-servern efter att konfigurationsfilen har ändrats.

[e-postskyddad]: ~ $ sudo systemctl startar om vsftpd

Konfigurera brandväggen i passivt läge

Om vi ​​använder FTP i passivt läge upprättas dataanslutningen över vilken port som helst från 1024 till 1048, så det är nödvändigt att tillåta alla dessa portar på FTP-servern.

[e-postskyddad]: ~ $ sudo ufw tillåta från vilken som helst till vilken portproto tcp som helst

Efter att ha tillåtit alla portar på brandväggen, aktivera ufw genom att köra följande kommando.

[e-postskyddad]: ~ $ sudo ufw aktivera

Tillåt alltid portar på servern innan du aktiverar brandväggen. annars kommer du inte att kunna komma åt din server via SSH som ufw, vilket blockerar port 22 som standard.

Testar anslutningen

Nu har vi konfigurerat FTP-servern i passivt läge och kan kontrollera ftp-anslutningen med klientapplikationen. Öppna FileZilla i ditt system för att göra det.

När du har angett värden, användarnamnet, lösenordet och porten kan du nu ansluta till din server. Nu när du är ansluten till FTP-servern som körs i passivt läge kan du ladda upp filer till servern.

Konfigurera SSL-certifikat med FTP-servern

Som standard upprättar FTP-servern anslutningen mellan klienten och servern via en osäker kanal. Denna typ av kommunikation ska inte användas om du vill dela känslig data mellan klienten och servern. För att kommunicera via en säker kanal är det nödvändigt att använda SSL-certifikat.

Generera SSL-certifikat

Vi kommer att använda SSL-certifikat för att skapa säker kommunikation mellan klienten och servern. Vi kommer att generera dessa certifikat med openssl. Följande kommando genererar SSL-certifikat för din server.

[e-postskyddad]: ~ $ sudo openssl-begäran -x509 -noder -dag 365 -nyckel rsa: 2048 -keyout / etc / ssl / privat / vsftpd.pem -out / etc / ssl / private / vsftpd.pem

När du kör ovanstående kommando kommer du att få några frågor. När du har svarat på dessa frågor genereras certifikaten. Du kan söka efter certifikat i terminalen.

[e-postskyddad]: ~ $ sudo ls / etc / ssl / private /

Använda certifikat i konfigurationsfilen

Nu är våra certifikat redo att användas. Vi konfigurerar 'vsftpd.conf '-fil för att använda SSL-certifikaten för kommunikation. Öppna konfigurationsfilen med följande kommando.

[e-postskyddad]: ~ $ sudo nano / etc / vsftpd.konf

Lägg till följande rader i slutet av filerna. Dessa ändringar säkerställer att FTP-servern använder de nyligen genererade SSL-certifikaten för att kommunicera säkert med klienten.

ssl_enable = JA
force_local_data_ssl = NEJ
force_local_logins_ssl = NEJ
ssl_tlsv1 = JA
ssl_sslv2 = NEJ
ssl_sslv3 = NEJ
rsa_cert_file = / etc / ssl / private / vsftpd.pem
rsa_private_key_file = / etc / ssl / private / vsftpd.pem

Starta om FTP-servern för att tillämpa dessa ändringar.

[e-postskyddad]: ~ $ sudo systemctl startar om vsftpd

När du har startat om servern, försök ansluta till din server med FileZilla-klientprogrammet. Den här gången kommer klientapplikationen att fråga dig om du ska lita på dessa certifikat.

Om du har certifikat från en betrodd certifikatutfärdare ska denna varning inte visas. Vi genererade våra certifikat med openssl, vilket inte är en betrodd certifikatutfärdare, varför den bad om certifikatverifiering i vårt fall. Nu kan vi kommunicera mellan klienten och servern via en säker kanal.

Anonym konfiguration

Du kan också aktivera anonym inloggning på din FTP-server. Med den här konfigurationen aktiverad kan alla användare logga in på FTP-servern med valfritt användarnamn och lösenord. Följande parametrar i konfigurationsfilen gör FTP-servern tillgänglig anonymt.

Konfigurationen ovan ställer in rotvägen för anonyma användare att vara '/ home / ubuntu / ftp / anon' och den kommer inte att be om lösenordet när en anonym användare loggar in.

NOTERA: Se till att sökvägen '/ home / ubuntu / ftp / anon' finns på FTP-servern.

Starta nu om FTP-servern.

[e-postskyddad]: ~ $ sudo systemctl startar om vsftpd

Efter att ha startat om servern kommer vi att försöka ansluta till servern via webbläsaren Google Chrome. Gå till följande URL.

ftp: // 3.8.12.52

Ovanstående URL tar dig till FTP-serverns rotkatalog, som anges i konfigurationsfilen. När anonym inloggning är inaktiverad, när du försöker ansluta till FTP-servern med en webbläsare, kommer du först att bli ombedd att verifiera och sedan kommer du till rotkatalogen på servern.

Konfigurera lokal åtkomst

Vi kan också tillåta eller blockera lokal åtkomst till FTP-servern genom att ändra konfigurationsfilen. För närvarande kan vi komma åt vår FTP-server lokalt utan att använda FTP-klientapplikationen, men vi kan blockera denna åtkomst. För att göra det måste vi ändra parametern "local_enable".

Starta först om FTP-servern.

[e-postskyddad]: ~ $ sudo systemctl startar om vsftpd

När du har startat om servern kan du försöka komma åt FTP-servern lokalt med kommandoradsgränssnittet. Logga in på din fjärrserver med SSH.

[e-postskyddad]: ~ $ ssh ubuntu @ 3.8.12.52 -i

Ge nu följande kommando för att logga in på FTP-servern lokalt med kommandoradsgränssnittet.

[e-postskyddad]: ~ $ ftp localhost

När du kör ovanstående kommando kommer det att ge ett 500-fel.

Slutsats

File Transfer Protocol har använts i många år för att överföra filer och dokument via Internet. VSFTPD är ett av de paket som används som en FTP-server på din maskin. VSFTPD innehåller olika konfigurationer som du kan använda för att anpassa din FTP-server. Denna handledning visade dig hur du konfigurerar en FTP-server med TLS för förbättrad säkerhet. För att lära dig mer om FTP-konfigurationer, besök följande länk.

http: // vsftpd.djur.org / vsftpd_conf.html

De bästa Oculus App Lab-spelen
Om du är Oculus-headsetägare måste du vara förtjust i sidoladdning. Sideladdning är processen för att installera icke-butiksinnehåll på ditt headset. ...
Topp 10 spel att spela på Ubuntu
Windows-plattformen har varit en av de dominerande plattformarna för spel på grund av den enorma andelen spel som utvecklas idag för att stödja Window...
5 bästa arkadspel för Linux
Numera är datorer seriösa maskiner som används för spel. Om du inte kan få den nya poängen vet du vad jag menar. I det här inlägget kommer du att känn...