FTP

Sådan konfigureres FTP med TLS i Ubuntu

Sådan konfigureres FTP med TLS i Ubuntu
FTP (File Transfer Protocol) bruges primært til at overføre filer mellem computere. FTP fungerer i klient-server arkitektur, hvor klienten beder om en fil fra serveren, og serveren returnerer den krævede fil til klienten. På klientmaskinen bruges FTP-klientapplikationen til at kommunikere med serveren. Det er også muligt at få adgang til FTP-serveren i browseren. Som standard kommunikerer FTP via en usikker kanal, men det er muligt at konfigurere FTP til at overføre data over en sikker kanal. I denne vejledning lærer du, hvordan du konfigurerer en FTP-server med TLS og derefter bruger FileZilla som et klientprogram til at oprette forbindelse til FTP-serveren.

Installation af VSFTPD

VSFTPD (Very Secure FTP Daemon) er et softwareprogram, der bruges til at konfigurere FTP på en server. I denne vejledning vil VSFTPD blive brugt til at konfigurere FTP-serveren på maskinen. Inden du installerer VSFTPD, skal du opdatere lagrene på din server ved at udstede følgende kommando.

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

Installer derefter VSFTPD ved hjælp af følgende kommando.

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

Endelig skal du kontrollere installationen ved at kontrollere versionen af ​​vsftpd med følgende kommando.

[e-mail-beskyttet]: ~ $ vsftpd -v

Ovenstående kommando udsender versionen af ​​vsftpd, hvis installationen er vellykket.

FTP i aktiv tilstand

I aktiv tilstand starter FTP-klienten sessionen ved at etablere TCP-kontrolforbindelsen fra en vilkårlig port på klientmaskinen til port 21 på serveren. Derefter begynder klienten at lytte på en tilfældig port X for en dataforbindelse og informerer serveren via TCP Control-forbindelse, at klienten venter på dataforbindelsen på port X. Herefter opretter serveren en dataforbindelse fra sin port 20 til porten X på klientmaskinen.

Der kan opstå et problem, hvor klienten er bag en firewall, og port X er blokeret. I dette tilfælde er serveren ikke i stand til at oprette en dataforbindelse med klienten. For at undgå dette problem bruges FTP-serveren for det meste i passiv tilstand, som vi vil diskutere senere i denne artikel. Som standard bruger VSFTPD passiv tilstand, så vi bliver nødt til at ændre den til aktiv tilstand.

Åbn først VSFTPD-konfigurationsfilen.

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

Tilføj følgende linje til slutningen af ​​filen.

pasv_enable = NEJ

Sørg også for, at indstillingen 'connect_from_port_20' er indstillet til 'YES.'Denne mulighed sikrer, at dataforbindelsen oprettes på port 20 på serveren.

Opret derefter et bibliotek, som FTP-serveren bruger til at gemme filer. Til denne vejledning konfigurerer vi '/ home / ubuntu / ftp /' som rodstien til FTP-serveren.

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

Angiv nu denne mappe i konfigurationsfilen ved at ændre indstillingen 'local_root'. Den følgende parameter konfigurerer rodstien til serveren.

local_root = / home / ubuntu / ftp

Indstillingen 'skriv_enable' skal være aktiveret for at give brugerne mulighed for at skrive til FTP-serveren.

Hver gang du ændrer konfigurationsfilen, skal du altid genstarte serveren.

[e-mail-beskyttet]: ~ $ sudo systemctl genstart vsftpd

Indstilling af en adgangskode til en bruger

FTP-klienten opretter forbindelse til serveren ved hjælp af et brugernavn og en adgangskode. Indstil adgangskoden til din bruger på maskinen ved hjælp af følgende kommando.

[e-mail beskyttet]: ~ $ sudo passwd ubuntu

Ovenstående kommando beder om adgangskoden til 'ubuntu' brugeren.

Konfiguration af Firewall til Aktiv tilstand

Hvis FTP bruges i aktiv tilstand, bruger FTP-serveren to porte til at kommunikere med klienten, porte 21 og 22. Port 21 bruges til at overføre kommandoer til klienten, og Port 20 bruges til at overføre data til en vilkårlig port på klienten. Vi bruger ufw til at konfigurere firewallen på serveren. Installer ufw ved hjælp af følgende kommando.

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

Nu på serversiden åbner vi porte 20, 21 og 22 (til SSH-forbindelsen).

[e-mailbeskyttet]: ~ $ sudo ufw tillader fra enhver til enhver portproto tcp

Aktivér og kontroller status for ufw ved hjælp af følgende kommandoer.

[e-mailbeskyttet]: ~ $ sudo ufw aktiver
[e-mail beskyttet]: ~ $ sudo ufw status

BEMÆRK: Hvis du konfigurerer din FTP-server i skyen, skal du også tillade porte 20, 21 og 22 i sikkerhedsgruppen.

ADVARSEL: Aktivér altid port 22 sammen med de krævede porte, inden du aktiverer ufw på fjernsystemet. UFW blokerer som standard trafik fra port 22, så du vil ikke kunne få adgang til din eksterne server ved hjælp af SSH, hvis du aktiverer ufw uden at tillade trafik fra port 22.

Installation af FTP-klienten

Nu er vores server konfigureret i aktiv tilstand, og vi kan få adgang til den fra klientsiden. Til klientapplikationen bruger vi FileZilla, en ftp-klientapplikation. Installer FileZilla ved hjælp af følgende kommando.

[e-mail-beskyttet]: ~ $ sudo apt-get install filezilla -y

Åbn FTP-klientapplikationen, og indtast FTP-serverens offentlige IP-adresse og andre legitimationsoplysninger.

Når du klikker på 'Hurtig forbindelse', opretter du forbindelse til FTP-serveren og føres automatisk til den mappe, der er angivet i 'local_root' i konfigurationsfilen '/ home / ubuntu / ftp'.

Problemer i aktiv tilstand

Brug af FTP i aktiv tilstand rejser problemer, når klienten er bag firewallen. Efter serverens oprindelige kontrolkommandoer, når serveren opretter en dataforbindelse med klienten på en tilfældig port, kan porten muligvis blive blokeret af firewallen på klienten, hvilket får dataoverførslen til at mislykkes. FTP kan bruges i passiv tilstand til at løse disse firewallproblemer.

FTP i passiv tilstand

I passiv tilstand opretter klienten en kontrolforbindelse med serveren på serverens port 21. Klienten sender derefter den specielle 'PASV' kommando for at informere serveren om, at dataforbindelsen oprettes af klienten i stedet for serveren. Som svar modtager klienten serverens IP og tilfældige portnummer (dette portnummer konfigureres på serveren). Klienten bruger dette IP- og portnummer til at oprette en dataforbindelse med serveren. I passiv tilstand oprettes både data- og kontrolforbindelserne af klienten, så firewallen ikke forstyrrer kommunikationen mellem klienten og serveren.

Åbn FTP-konfigurationsfilen i din yndlingseditor.

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

Sæt indstillingen 'pasv_enable' til 'YES' i filen, så serveren kan kommunikere med klienten i passiv tilstand. Indstil også indstillingen 'local_root' for at specificere rodmappen på serveren og indstil 'write_enable' til 'YES' for at give brugerne mulighed for at uploade filer til serveren.

Som tidligere diskuteret oprettes dataforbindelsen af ​​klienten, og serveren sender sin offentlige IP og en tilfældig port til klienten for at oprette en dataforbindelse. Denne tilfældige port på serveren kan specificeres fra en række porte i konfigurationsfilen.

Dataforbindelsen mellem serveren og klienten oprettes på en port mellem 1024 og 1048. Genstart FTP-serveren efter ændring af konfigurationsfilen.

[e-mail-beskyttet]: ~ $ sudo systemctl genstart vsftpd

Konfiguration af firewall i passiv tilstand

Hvis vi bruger FTP i passiv tilstand, oprettes dataforbindelsen over enhver port fra 1024 til 1048, så det er nødvendigt at tillade alle disse porte på FTP-serveren.

[e-mailbeskyttet]: ~ $ sudo ufw tillader fra enhver til enhver portproto tcp

Efter at have tilladt alle porte på firewallen, skal du aktivere ufw ved at køre følgende kommando.

[e-mailbeskyttet]: ~ $ sudo ufw aktiver

Tillad altid porte på serveren, før du aktiverer firewall; Ellers kan du ikke få adgang til din server via SSH som ufw, som blokerer port 22 som standard.

Test af forbindelsen

Nu har vi konfigureret FTP-serveren i passiv tilstand og kan kontrollere ftp-forbindelsen med klientapplikationen. Åbn FileZilla i dit system for at gøre det.

Når du har indtastet værten, brugernavnet, adgangskoden og porten, kan du nu oprette forbindelse til din server. Nu hvor du har forbindelse til FTP-serveren, der kører i passiv tilstand, kan du uploade filer til serveren.

Konfiguration af SSL-certifikater med FTP-serveren

Som standard opretter FTP-serveren forbindelsen mellem klienten og serveren via en usikret kanal. Denne type kommunikation bør ikke bruges, hvis du ønsker at dele følsomme data mellem klienten og serveren. For at kommunikere via en sikker kanal er det nødvendigt at bruge SSL-certifikater.

Generering af SSL-certifikater

Vi bruger SSL-certifikater til at oprette sikker kommunikation mellem klienten og serveren. Vi genererer disse certifikater ved hjælp af openssl. Følgende kommando genererer SSL-certifikater til din server.

[e-mail beskyttet]: ~ $ sudo openssl req -x509 -nodes -day 365 -newkey rsa: 2048 -keyout / etc / ssl / private / vsftpd.pem -out / etc / ssl / private / vsftpd.pem

Når du kører ovenstående kommando, bliver du stillet nogle spørgsmål. Når du har besvaret disse spørgsmål, genereres certifikaterne. Du kan se efter certifikaterne i terminalen.

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

Brug af certifikater i konfigurationsfilen

Nu er vores certifikater klar til brug. Vi konfigurerer 'vsftpd.conf '-fil for at bruge SSL-certifikater til kommunikation. Åbn konfigurationsfilen med følgende kommando.

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

Tilføj følgende linjer i slutningen af ​​filerne. Disse ændringer vil sikre, at FTP-serveren bruger de nyligt genererede SSL-certifikater til at kommunikere sikkert 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

Genstart FTP-serveren for at anvende disse ændringer.

[e-mail-beskyttet]: ~ $ sudo systemctl genstart vsftpd

Efter genstart af serveren, prøv at oprette forbindelse til din server ved hjælp af FileZilla-klientprogrammet. Denne gang vil klientapplikationen bede dig om at have tillid til disse certifikater.

Hvis du har certifikater fra en betroet certifikatmyndighed, bør denne advarsel ikke vises. Vi genererede vores certifikater ved hjælp af openssl, som ikke er en betroet certifikatmyndighed, hvorfor det i vores tilfælde blev bedt om certifikatgodkendelse. Nu kan vi kommunikere mellem klienten og serveren via en sikker kanal.

Anonym konfiguration

Du kan også aktivere anonymt login på din FTP-server. Med denne konfiguration aktiveret kan enhver bruger logge ind på FTP-serveren med ethvert brugernavn og adgangskode. Følgende parametre i konfigurationsfilen gør FTP-serveren tilgængelig anonymt.

Ovenstående konfiguration indstiller rodstien for anonyme brugere til at være '/ home / ubuntu / ftp / anon', og den beder ikke om adgangskoden, når en anonym bruger logger ind.

BEMÆRK: Sørg for, at stien '/ home / ubuntu / ftp / anon' findes på FTP-serveren.

Genstart nu FTP-serveren.

[e-mail-beskyttet]: ~ $ sudo systemctl genstart vsftpd

Efter genstart af serveren vil vi forsøge at oprette forbindelse til serveren via Google Chrome-browseren. Gå til følgende URL.

ftp: // 3.8.12.52

Ovenstående URL fører dig til FTP-serverens rodmappe som angivet i konfigurationsfilen. Når anonym login er deaktiveret, bliver du først bedt om godkendelse, når du prøver at oprette forbindelse til FTP-serveren ved hjælp af en browser, og derefter føres du til rodmappen på serveren.

Konfigurer lokal adgang

Vi kan også tillade eller blokere lokal adgang til FTP-serveren ved at ændre konfigurationsfilen. I øjeblikket kan vi få adgang til vores FTP-server lokalt uden at bruge FTP-klientapplikationen, men vi kan blokere denne adgang. For at gøre dette skal vi ændre parameteren 'local_enable'.

Genstart først FTP-serveren.

[e-mail-beskyttet]: ~ $ sudo systemctl genstart vsftpd

Efter genstart af serveren, prøv at få adgang til FTP-serveren lokalt ved hjælp af kommandolinjegrænsefladen. Log ind på din eksterne server ved hjælp af SSH.

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

Udsted nu følgende kommando for at logge på FTP-serveren lokalt ved hjælp af kommandolinjegrænsefladen.

[e-mail-beskyttet]: ~ $ ftp localhost

Når du kører ovenstående kommando, kaster den en 500-fejl.

Konklusion

File Transfer Protocol er blevet brugt i mange år til at overføre filer og dokumenter over internettet. VSFTPD er en af ​​de pakker, der bruges som en FTP-server på din maskine. VSFTPD indeholder forskellige konfigurationer, som du kan bruge til at tilpasse din FTP-server. Denne tutorial viste dig, hvordan du konfigurerer en FTP-server med TLS til forbedret sikkerhed. For at lære mere om FTP-konfigurationer, besøg følgende link.

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

Nyttige værktøjer til Linux-spillere
Hvis du kan lide at spille spil på Linux, er chancerne for, at du måske har brugt apps og hjælpeprogrammer som Wine, Lutris og OBS Studio for at forbe...
HD Remastered-spil til Linux, der aldrig tidligere havde haft en Linux-udgivelse
Mange spiludviklere og udgivere kommer med HD-remaster af gamle spil for at forlænge franchisens levetid. Venligst fans, der anmoder om kompatibilitet...
Sådan bruges AutoKey til at automatisere Linux-spil
AutoKey er et desktopautomatiseringsværktøj til Linux og X11, programmeret i Python 3, GTK og Qt. Ved hjælp af dets scripting og MACRO-funktionalitet ...