Hvordan konfigurere FTP med TLS i Ubuntu

Hvordan konfigurere FTP med TLS i Ubuntu
FTP (filoverføringsprotokoll) brukes først og fremst til å overføre filer mellom datamaskiner. FTP jobber i klient-serverarkitektur, der klienten ber om en fil fra serveren og serveren returnerer den nødvendige filen til klienten. På klientmaskinen brukes FTP -klientapplikasjonen til å kommunisere med serveren. Det er også mulig å få tilgang til FTP -serveren i nettleseren. Som standard kommuniserer FTP over en usikker kanal, men det er mulig å konfigurere FTP til å overføre data over en sikker kanal. I denne opplæringen lærer du hvordan du konfigurerer en FTP -server med TLS og deretter bruker Filezilla som en klientapplikasjon for å koble til FTP -serveren.

Installere VSFTPD

VSFTPD (veldig sikker FTP -demon) er et program som brukes til å konfigurere FTP på en server. I denne opplæringen vil VSFTPD bli brukt til å konfigurere FTP -serveren på maskinen. Før du installerer VSFTPD, må du oppdatere depotene på serveren din ved å utstede følgende kommando.

ubuntu@ubuntu: ~ $ sudo apt -get update -y

Neste, installer VSFTPD ved å bruke følgende kommando.

ubuntu@ubuntu: ~ $ sudo apt -get install vsftpd -y

Til slutt kan du bekrefte installasjonen ved å sjekke versjonen av VSFTPD med følgende kommando.

ubuntu@ubuntu: ~ $ vsftpd -v

Kommandoen ovenfor vil sende ut versjonen av VSFTPD hvis installasjonen er vellykket.

FTP i aktiv modus

I aktiv modus starter FTP -klienten økten ved å etablere TCP -kontrollforbindelsen fra en hvilken som helst tilfeldig port på klientmaskinen til port 21 på serveren. Deretter begynner klienten å lytte på en tilfeldig port x for en datatilkobling og informerer serveren via TCP -kontrollforbindelse om at klienten venter på datatilkoblingen på port x. Etter dette etablerer serveren en datatilkobling fra port 20 til porten X på klientmaskinen.

Et problem kan oppstå der klienten står bak en brannmur og port x er blokkert. I dette tilfellet er serveren ikke i stand til å etablere en datatilkobling med klienten. For å unngå dette problemet, brukes FTP -serveren for det meste i passiv modus, som vi vil diskutere senere i denne artikkelen. Som standard bruker VSFTPD passiv modus, så vi må endre den til aktiv modus.

Åpne først VSFTPD -konfigurasjonsfilen.

ubuntu@ubuntu: ~ $ sudo nano /etc /vsftpd.konf

Legg til følgende linje til slutten av filen.

PASV_Enable = Nei

Forsikre deg også om at alternativet 'connect_from_port_20' er satt til 'ja.'Dette alternativet sikrer at datatilkoblingen er etablert på port 20 på serveren.

Deretter oppretter du en katalog som FTP -serveren vil bruke til å lagre filer. For denne opplæringen vil vi konfigurere '/Home/Ubuntu/FTP/' som rotbanen for FTP -serveren.

ubuntu@ubuntu: ~ $ sudo mkdir/home/ubuntu/ftp

Spesifiser nå denne katalogen i konfigurasjonsfilen ved å endre alternativet 'local_root'. Følgende parameter vil konfigurere rotstien til serveren.

local_root =/home/ubuntu/ftp

Alternativet "Writ_Enable" må være aktivert for å tillate brukere å skrive til FTP -serveren.

Hver gang du endrer konfigurasjonsfilen, må du alltid starte serveren på nytt.

ubuntu@ubuntu: ~ $ sudo SystemCTL RESTART VSFTPD

Angi passord for en bruker

FTP -klienten kobles til serveren ved hjelp av et brukernavn og passord. Angi passordet for brukeren din på maskinen ved å bruke følgende kommando.

ubuntu@ubuntu: ~ $ sudo passwd ubuntu

Kommandoen ovenfor vil be om passordet for "Ubuntu" -brukeren.

Konfigurere brannmuren for aktiv modus

Hvis FTP brukes i aktiv modus, vil FTP -serveren bruke to porter for å kommunisere med klienten, porter 21 og 22. Port 21 brukes til å overføre kommandoer til klienten, og port 20 brukes til å overføre data til en hvilken som helst tilfeldig port for klienten. Vi vil bruke UFW for å konfigurere brannmuren på serveren. Installer UFW ved hjelp av følgende kommando.

ubuntu@ubuntu: ~ $ sudo apt-get install ufw

Nå, på serversiden, åpner vi porter 20, 21 og 22 (for SSH -tilkoblingen).

ubuntu@ubuntu: ~ $ sudo ufw tillater fra hvilken som helst port proto tcp

Aktiver og sjekk statusen til UFW ved å bruke følgende kommandoer.

ubuntu@ubuntu: ~ $ sudo ufw enable
ubuntu@ubuntu: ~ $ sudo ufw status

MERK: Hvis du konfigurerer FTP -serveren din på skyen, må du også tillate porter 20, 21 og 22 i sikkerhetsgruppen.

ADVARSEL: Aktiver alltid port 22, sammen med de nødvendige portene, før du aktiverer UFW på det eksterne systemet. Som standard blokkerer UFW trafikk fra port 22, slik at du ikke kan få tilgang til den eksterne serveren din ved hjelp av SSH hvis du aktiverer UFW uten å tillate trafikk fra port 22.

Installere FTP -klienten

Nå er serveren vår konfigurert i aktiv modus, og vi kan få tilgang til den fra klientsiden. For klientapplikasjonen vil vi bruke Filezilla, en FTP -klientapplikasjon. Installer FileZilla ved hjelp av følgende kommando.

ubuntu@ubuntu: ~ $ sudo apt -get installere filzilla -y

Åpne FTP -klientapplikasjonen og skriv inn den offentlige IP -adressen og andre legitimasjoner på FTP -serveren.

Når du klikker på 'QuickConnect', vil du koble deg til FTP -serveren og automatisk bli ført til katalogen som er spesifisert i alternativet 'Local_root' i '/Home/Ubuntu/FTP' -konfigurasjonsfilen.

Problemer i aktiv modus

Å bruke FTP i aktiv modus reiser problemer når klienten står bak brannmuren. Etter å ha lagt inn de første kontrollkommandoene, når serveren oppretter en datatilkobling med klienten på en tilfeldig port, kan porten blokkeres av brannmuren på klienten, noe som får dataoverføringen til å mislykkes. FTP kan brukes i passiv modus for å løse disse brannmurproblemene.

FTP i passiv modus

I passiv modus oppretter klienten en kontrollforbindelse med serveren på port 21 på serveren. Klienten sender deretter den spesielle 'PASV' -kommandoen for å informere serveren om at datatilkoblingen vil bli opprettet av klienten i stedet for serveren. Som svar mottar klienten serveren IP og tilfeldig portnummer (dette portnummeret vil bli konfigurert på serveren). Klienten bruker dette IP- og portnummeret for å opprette en datatilkobling med serveren. I passiv modus er både data- og kontrollforbindelsene etablert av klienten, slik at brannmuren ikke forstyrrer kommunikasjonen mellom klienten og serveren.

Åpne FTP -konfigurasjonsfilen i favorittredigereren din.

ubuntu@ubuntu: ~ $ sudo nano /etc /vsftpd.konf

Angi alternativet 'PASV_Enable' til 'Ja' i filen slik at serveren kan kommunisere med klienten i passiv modus. Angi også alternativet "local_root" for å spesifisere rotkatalogen til serveren og angi alternativet 'writ_enable' til 'ja' for å la brukere laste opp filer til serveren.

Som tidligere diskutert, er datatilkoblingen etablert av klienten, og serveren sender sin offentlige IP og en tilfeldig port til klienten for å opprette en datatilkobling. Denne tilfeldige porten på serveren kan spesifiseres fra en rekke porter i konfigurasjonsfilen.

Datatilkoblingen mellom serveren og klienten vil bli opprettet på en port mellom 1024 og 1048. Start FTP -serveren på nytt etter å ha endret konfigurasjonsfilen.

ubuntu@ubuntu: ~ $ sudo SystemCTL RESTART VSFTPD

Konfigurere brannmuren i passiv modus

Hvis vi bruker FTP i passiv modus, vil datatilkoblingen bli etablert over en hvilken som helst port fra 1024 til 1048, så det er nødvendig å tillate alle disse portene på FTP -serveren.

ubuntu@ubuntu: ~ $ sudo ufw tillater fra hvilken som helst port proto tcp

Etter å ha tillatt alle portene på brannmuren, aktiverer du UFW ved å kjøre følgende kommando.

ubuntu@ubuntu: ~ $ sudo ufw enable

Tillat alltid porter på serveren før du aktiverer brannmuren; Ellers vil du ikke kunne få tilgang til serveren din via SSH som UFW, som blokkerer Port 22 som standard.

Testing av tilkoblingen

Nå har vi satt opp FTP -serveren i passiv modus og kan sjekke FTP -tilkoblingen med klientapplikasjonen. Åpne Filezilla i systemet ditt for å gjøre det.

Etter å ha lagt inn verten, brukernavnet, passordet og port, kan du nå koble til serveren din. Nå som du er koblet til FTP -serveren som kjører i passiv modus, kan du laste opp filer til serveren.

Konfigurere SSL -sertifikater med FTP -serveren

Som standard etablerer FTP -serveren forbindelsen mellom klienten og serveren over en usikret kanal. Denne typen kommunikasjon skal ikke brukes hvis du ønsker å dele sensitive data mellom klienten og serveren. For å kommunisere over en sikker kanal, er det nødvendig å bruke SSL -sertifikater.

Generere SSL -sertifikater

Vi vil bruke SSL -sertifikater for å sette opp sikker kommunikasjon mellom klienten og serveren. Vi vil generere disse sertifikatene ved å bruke OpenSSL. Følgende kommando vil generere SSL -sertifikater for serveren din.

ubuntu@ubuntu: ~ $ sudo openssl req -x509 -nodes -Day 365 -newkey RSA: 2048 -Keyout/etc/ssl/privat/VSFTPD.pem -out/etc/ssl/privat/vsftpd.Pem

Når du kjører kommandoen ovenfor, vil du bli stilt noen spørsmål. Etter at du har svart på disse spørsmålene, vil sertifikatene bli generert. Du kan se etter sertifikatene i terminalen.

ubuntu@ubuntu: ~ $ sudo ls/etc/ssl/privat/

Bruke sertifikater i konfigurasjonsfilen

Nå er sertifikatene våre klare til bruk. Vi vil konfigurere 'VSFTPD.Conf '-fil for å bruke SSL -sertifikatene for kommunikasjon. Åpne konfigurasjonsfilen med følgende kommando.

ubuntu@ubuntu: ~ $ sudo nano /etc /vsftpd.konf

Legg til følgende linjer til slutten av filene. Disse endringene vil sikre at FTP -serveren bruker de nylig genererte SSL -sertifikatene for å kommunisere sikkert med klienten.

ssl_enable = ja
Force_local_data_ssl = nei
Force_local_logins_ssl = nei
ssl_tlsv1 = ja
ssl_sslv2 = nei
ssl_sslv3 = nei
rsa_cert_file =/etc/ssl/privat/vsftpd.Pem
rsa_private_key_file =/etc/ssl/privat/vsftpd.Pem

Start FTP -serveren på nytt for å bruke disse endringene.

ubuntu@ubuntu: ~ $ sudo SystemCTL RESTART VSFTPD

Etter å ha startet serveren på nytt, kan du prøve å koble til serveren din ved hjelp av Filezilla -klientapplikasjonen. Denne gangen vil klientapplikasjonen spørre deg om du vil stole på disse sertifikatene.

Hvis du har sertifikater fra en pålitelig sertifikatmyndighet, bør ikke denne advarselen vises. Vi genererte sertifikatene våre ved hjelp av OpenSSL, som ikke er en pålitelig sertifikatmyndighet, og det er grunnen til at det ba om sertifikatgodkjenning i vårt tilfelle. Nå kan vi kommunisere mellom klienten og serveren over en sikker kanal.

Anonym konfigurasjon

Du kan også aktivere anonym innlogging på FTP -serveren. Med denne konfigurasjonen aktivert, kan enhver bruker logge seg på FTP -serveren med et hvilket som helst brukernavn og passord. Følgende parametere i konfigurasjonsfilen vil gjøre FTP -serveren tilgjengelig anonymt.

Ovennevnte konfigurasjon angir rotstien for at anonyme brukere skal være '/home/ubuntu/ftp/anon', og det vil ikke be om passordet når en anonym bruker logger inn.

MERK: Forsikre deg om at '/Home/Ubuntu/FTP/Anon' -banen eksisterer på FTP -serveren.

Nå, start FTP -serveren på nytt.

ubuntu@ubuntu: ~ $ sudo SystemCTL RESTART VSFTPD

Etter å ha startet serveren på nytt, vil vi prøve å koble til serveren via Google Chrome -nettleseren. Gå til følgende URL.

ftp: // 3.8.12.52

URLen ovenfor tar deg til FTP -serverens rotkatalog, som spesifisert i konfigurasjonsfilen. Med anonym innloggingsaktivert, når du prøver å koble deg til FTP -serveren ved hjelp av en nettleser, vil du først bli bedt om autentisering, og deretter blir du ført til rotkatalogen til serveren.

Konfigurer lokal tilgang

Vi kan også tillate eller blokkere lokal tilgang til FTP -serveren ved å endre konfigurasjonsfilen. For øyeblikket kan vi få tilgang til FTP -serveren vår lokalt uten å bruke FTP -klientapplikasjonen, men vi kan blokkere denne tilgangen. For å gjøre det, må vi endre parameteren 'local_enable'.

Først må du starte FTP -serveren på nytt.

ubuntu@ubuntu: ~ $ sudo SystemCTL RESTART VSFTPD

Etter å ha startet serveren på nytt, kan du prøve å få tilgang til FTP-serveren lokalt ved å bruke kommandolinjegrensesnittet. Logg inn på den eksterne serveren din ved hjelp av SSH.

ubuntu@ubuntu: ~ $ ssh [email protected] -I

Utsted nå følgende kommando for å logge på FTP-serveren lokalt ved å bruke kommandolinjegrensesnittet.

ubuntu@ubuntu: ~ $ ftp localhost

Når du kjører kommandoen ovenfor, vil den kaste en 500 feil.

Konklusjon

Protokoll for filoverføring har blitt brukt i mange år til å overføre filer og dokumenter over Internett. VSFTPD er en av pakkene som brukes som en FTP -server på maskinen din. VSFTPD inneholder forskjellige konfigurasjoner som du kan bruke til å tilpasse FTP -serveren. Denne opplæringen viste deg hvordan du konfigurerer en FTP -server med TLS for forbedret sikkerhet. For å lære mer om FTP -konfigurasjoner, besøk følgende lenke.

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