Hvordan sikre en FTP-server ved hjelp av SSL/TLS for sikker filoverføring i CentOS 7


Ved sin opprinnelige design er FTP (File Transfer Protocol) ikke sikker, noe som betyr at den ikke krypterer data som overføres mellom to maskiner, sammen med brukerens legitimasjon. Dette utgjør en massiv trussel mot data så vel som serversikkerhet.

I denne opplæringen vil vi forklare hvordan du manuelt aktiverer datakrypteringstjenester i en FTP-server i CentOS/RHEL 7 og Fedora; vi vil gå gjennom ulike trinn for å sikre VSFTPD (Very Secure FTP Daemon) tjenester ved å bruke SSL/TLS-sertifikater.

Forutsetninger:

  1. Du må ha installert og konfigurert en FTP-server i CentOS 7

Før vi starter, merk at alle kommandoene i denne opplæringen kjøres som root, ellers bruker du sudo-kommandoen for å få root-privilegier hvis du ikke kontrollerer serveren ved hjelp av root-kontoen.

Trinn 1. Generering av SSL/TLS-sertifikat og privat nøkkel

1. Vi må starte med å lage en underkatalog under: /etc/ssl/ der vi lagrer SSL/TLS-sertifikatet og nøkkelfiler :

mkdir /etc/ssl/private

2. Kjør deretter kommandoen nedenfor for å lage sertifikatet og nøkkelen for vsftpd i en enkelt fil. Her er forklaringen på hvert flagg som brukes.

  1. req – er en kommando for administrasjon av X.509 Certificate Signing Request (CSR).
  2. x509 – betyr X.509-sertifikatdatabehandling.
  3. dager – definerer antall dager sertifikatet er gyldig for.
  4. nynøkkel – spesifiserer sertifikatnøkkelbehandler.
  5. rsa:2048 – RSA-nøkkelprosessor, vil generere en 2048-biters privat nøkkel.
  6. keyout – angir nøkkellagringsfilen.
  7. out – setter sertifikatlagringsfilen, merk at både sertifikatet og nøkkelen er lagret i samme fil: /etc/ssl/private/vsftpd.pem.
openssl req -x509 -nodes -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem -days 365 -newkey rsa:2048

Kommandoen ovenfor vil be deg svare på spørsmålene nedenfor, husk å bruke verdier som gjelder for scenarioet ditt.

Country Name (2 letter code) [XX]:IN
State or Province Name (full name) []:Lower Parel
Locality Name (eg, city) [Default City]:Mumbai
Organization Name (eg, company) [Default Company Ltd]:TecMint.com
Organizational Unit Name (eg, section) []:Linux and Open Source
Common Name (eg, your name or your server's hostname) []:tecmint
Email Address []:[email 

Trinn 2. Konfigurere VSFTPD for å bruke SSL/TLS

3. Før vi utfører VSFTPD-konfigurasjoner, la oss åpne portene 990 og 40000-50000 for å tillate TLS-tilkoblinger og portområdet til passive porter for å definere henholdsvis i VSFTPD-konfigurasjonsfilen:

firewall-cmd --zone=public --permanent --add-port=990/tcp
firewall-cmd --zone=public --permanent --add-port=40000-50000/tcp
firewall-cmd --reload

4. Nå åpner du VSFTPD-konfigurasjonsfilen og spesifiserer SSL-detaljene i den:

vi /etc/vsftpd/vsftpd.conf

Se etter alternativet ssl_enable og sett verdien til YES for å aktivere bruken av SSL. I tillegg, siden TSL er sikrere enn SSL, vil vi begrense VSFTPD til å bruke TLS i stedet bruker du alternativet ssl_tlsv1_2:

ssl_enable=YES
ssl_tlsv1_2=YES
ssl_sslv2=NO
ssl_sslv3=NO

5. Deretter legger du til linjene nedenfor for å definere plasseringen av SSL-sertifikatet og nøkkelfilen:

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

6. Deretter må vi forhindre at anonyme brukere bruker SSL, og deretter tvinge alle ikke-anonyme pålogginger til å bruke en sikker SSL-tilkobling for dataoverføring og sende passordet under pålogging:

allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

7. I tillegg kan vi legge til alternativene nedenfor for å øke FTP-serversikkerheten. Når alternativet require_ssl_reuse er satt til JA, kreves alle SSL-datatilkoblinger for å vise gjenbruk av SSL-økter; beviser at de kjenner den samme hovedhemmeligheten som kontrollkanalen.

Derfor må vi slå den av.

require_ssl_reuse=NO

Igjen, vi må velge hvilke SSL-chiffer VSFTPD vil tillate for krypterte SSL-tilkoblinger med ssl_ciphers-alternativet. Dette kan i stor grad begrense innsatsen til angripere som prøver å tvinge frem en bestemt chiffer som de sannsynligvis har oppdaget sårbarheter i:

ssl_ciphers=HIGH

8. Still inn portområdet (min. og maks. port) for passive porter.

pasv_min_port=40000
pasv_max_port=50000

9. Tillat eventuelt SSL-feilsøking, noe som betyr at diagnostikk for åpenSSL-tilkoblinger registreres i VSFTPD-loggfilen med alternativet debug_ssl:

debug_ssl=YES

Lagre alle endringene og lukk filen. La oss deretter starte VSFTPD-tjenesten på nytt:

systemctl restart vsftpd

Trinn 3: Testing av FTP-server med SSL/TLS-tilkoblinger

10. Etter å ha utført alle de ovennevnte konfigurasjonene, test om VSFTPD bruker SSL/TLS-tilkoblinger ved å prøve å bruke FTP fra kommandolinjen som følger:

ftp 192.168.56.10
Connected to 192.168.56.10  (192.168.56.10).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.10:root) : ravi
530 Non-anonymous sessions must use encryption.
Login failed.
421 Service not available, remote server has closed connection
ftp>

Fra skjermbildet ovenfor kan vi se at det er en feil som informerer oss om at VSFTPD bare kan tillate brukere å logge på fra klienter som støtter krypteringstjenester.

Kommandolinjen tilbyr ikke krypteringstjenester og forårsaker dermed feilen. Så for å koble til serveren på en sikker måte, trenger vi en FTP-klient som støtter SSL/TLS-tilkoblinger som FileZilla.

Trinn 4: Installer FileZilla for å koble til en FTP-server på en sikker måte

11. FileZilla er en moderne, populær og viktigst av alt tverrplattform FTP-klient som støtter SSL/TLS-tilkoblinger som standard.

For å installere FileZilla i Linux, kjør kommandoen nedenfor:

--------- On CentOS/RHEL/Fedora --------- 
yum install epel-release filezilla

--------- On Debian/Ubuntu ---------
sudo apt-get install  filezilla   

12. Når installasjonen er fullført (eller hvis du allerede har den installert), åpne den og gå til Fil=>Site Manager eller (trykk Ctrl+S ) for å få Site Manager-grensesnittet nedenfor.

Klikk på Nytt nettsted-knappen for å legge til et nytt nettsted/vertstilkoblingsdetaljer.

13. Angi deretter verts-/nettstedets navn, legg til IP-adressen, definer protokollen som skal brukes, kryptering og påloggingstype som i skjermbildet nedenfor (bruk verdier som gjelder for scenarioet ditt):

Host:  192.168.56.10
Protocol:  FTP – File Transfer Protocol
Encryption:  Require explicit FTP over   #recommended 
Logon Type: Ask for password	        #recommended 
User: username

14. Klikk deretter på Koble til for å skrive inn passordet igjen, og bekreft deretter sertifikatet som brukes for SSL/TLS-tilkoblingen og klikk OK én gang mer for å koble til FTP-serveren:

På dette stadiet skal vi ha logget på FTP-serveren over en TLS-tilkobling, sjekk tilkoblingsstatusdelen for mer informasjon fra grensesnittet nedenfor.

15. Sist, men ikke minst, prøv å overføre filer fra den lokale maskinen til FTP-serveren i filer-mappen, ta en titt på den nedre enden av FileZilla-grensesnittet for å se rapporter om filoverføringer.

Det er alt! Husk alltid at FTP ikke er sikker som standard, med mindre vi konfigurerer den til å bruke SSL/TLS-tilkoblinger som vi viste deg i denne opplæringen. Del tankene dine om denne opplæringen/emnet via tilbakemeldingsskjemaet nedenfor.