Sikre ProFTPD-tilkoblinger ved hjelp av TLS/SSL-protokoll på RHEL/CentOS 7


I sin natur ble FTP-protokollen utformet som en usikker protokoll, og alle data og passord overføres i ren tekst, noe som gjør jobben til en tredjepart veldig enkel å avskjære alle FTP-klient-server-transaksjoner, spesielt brukernavn og passord som brukes i autentiseringsprosessen.

Krav

  1. Installere ProFTPD Server på RHEL/CentOS 7
  2. Aktiver anonym konto for Proftpd Server i RHEL/CentOS 7

Denne veiledningen vil veilede deg om hvordan du kan sikre og kryptere FTP-kommunikasjon på ProFTPd-serveren i CentOS/RHEL 7 , ved å bruke TLS (Transport Layer Security) med eksplisitt FTPS-utvidelse (tenk på FTPS som hva HTTPS er for HTTP-protokoll).

Trinn 1: Opprett Proftpd TLS-modulkonfigurasjonsfil

1. Som diskutert i forrige Proftpd-veiledning angående anonym konto, vil denne veiledningen også bruke den samme tilnærmingen til å administrere Proftpd fremtidige konfigurasjonsfiler som moduler, ved hjelp av enabled_mod og < b>disabled_mod-kataloger, som vil være vert for alle serverens utvidede muligheter.

Så, lag en ny fil med din favoritt tekstredigerer kalt tls.conf i disabled_mod Proftpd-sti og legg til følgende direktiver.

nano /etc/proftpd/disabled_mod/tls.conf

Legg til følgende TLS-filkonfigurasjonsutdrag.

<IfModule mod_tls.c>
TLSEngine                               on
TLSLog                                  /var/log/proftpd/tls.log
TLSProtocol                             SSLv23
 
TLSRSACertificateFile                   /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile                /etc/ssl/private/proftpd.key

#TLSCACertificateFile                                     /etc/ssl/certs/CA.pem
TLSOptions                      NoCertRequest EnableDiags NoSessionReuseRequired
TLSVerifyClient                         off
TLSRequired                             on
TLSRenegotiate                          required on
</IfModule>

2. Hvis du bruker nettlesere eller FTP-klienter som ikke støtter TLS-tilkoblinger, kommenter linjen TLSRequired on for å tillate TLS- og ikke-TLS-tilkoblinger samtidig og unngå feilmeldingen som i skjermbildet nedenfor.

Trinn 2: Opprett SSL-sertifikatfiler for TLS

3. Etter at du har opprettet TLS-modulens konfigurasjonsfil. som vil aktivere FTP over TLS på Proftpd, må du generere SSL-sertifikat og nøkkel for å bruke sikker kommunikasjon over ProFTPD Server ved hjelp av OpenSSL-pakken.

yum install openssl

Du kan bruke en enkelt lang kommando for å generere SSL-sertifikat- og nøkkelpar, men for å forenkle ting kan du lage et enkelt bash-skript som vil generere SSL-par med ønsket navn og tildele de riktige tillatelsene for nøkkelfilen.

Opprett en bash-fil kalt proftpd_gen_ssl/usr/local/bin/ eller på en annen kjørbar systembane (definert av ` PATH variabel ).

nano /usr/local/bin/proftpd_gen_ssl

Legg til følgende innhold.

#!/bin/bash
echo -e "\nPlease enter a name for your SSL Certificate and Key pairs:"
read name
 openssl req -x509 -newkey rsa:1024 \
          -keyout /etc/ssl/private/$name.key -out /etc/ssl/certs/$name.crt \
          -nodes -days 365\

 chmod 0600 /etc/ssl/private/$name.key

4. Etter at du har opprettet filen ovenfor, tilordne den med utførelsestillatelser, forsikre deg om at katalogen /etc/ssl/private eksisterer og kjør skriptet for å lage SSL-sertifikat og nøkkel par.

chmod +x /usr/local/bin/proftpd_gen_ssl
mkdir -p /etc/ssl/private
proftpd_gen_ssl

Gi SSL-sertifikatet den nødvendige informasjonen som er selvforklarende, men vær oppmerksom på Fellesnavn for å matche vertens Fullt Kvalifiserte domenenavnFQDN b>.

Trinn 3: Aktiver TLS på ProFTPD Server

5. Siden TLS-konfigurasjonsfilen opprettet tidligere allerede peker til riktig SSL-sertifikat- og nøkkelfil, er det eneste som gjenstår å aktivere TLS-modulen ved å opprette en symbolsk lenke av tls.conf-filen til enabled-mod-katalogen og start på nytt ProFTPD-demonen for å bruke endringer.

ln -s /etc/proftpd/disabled_mod/tls.conf  /etc/proftpd/enabled_mod/
systemctl restart proftpd

6. For å deaktivere TLS-modulen, fjern bare tls.conf symlink fra enabled_mod-katalogen og start ProFTPD-serveren på nytt for å bruke endringer.

rm /etc/proftpd/enabled_mod/tls.conf
systemctl restart proftpd

Trinn 4: Åpne brannmuren for å tillate FTP over TLS-kommunikasjon

7. For at klienter skal få tilgang til ProFTPD og sikre overføringsfiler i passiv modus må du åpne hele portområdet mellom 1024 og 65534 på RHEL/CentOS-brannmuren ved å bruke følgende kommandoer.

firewall-cmd --add-port=1024-65534/tcp  
firewall-cmd --add-port=1024-65534/tcp --permanent
firewall-cmd --list-ports
firewall-cmd --list-services
firewall-cmd --reload

Det er det. Nå er systemet ditt klart til å akseptere FTP-kommunikasjon over TLS fra en klientside.

Trinn 5: Få tilgang til ProFTPD over TLS fra klienter

8. Nettlesere har vanligvis ingen innebygd støtte for FTP over TLS-protokollen, så alle transaksjoner leveres over ikke-kryptert FTP. En av de mest utmerkede FTP-klientene er FileZilla, som er helt åpen kildekode og kan kjøres på nesten alle større operativsystemer.

For å få tilgang til FTP over TLS fra FileZilla, åpne Site Manager, velg FTPProtocol og Krev eksplisitt FTP over TLSKryptering rullegardinmeny, velg Påloggingstype som Normal, skriv inn FTP-legitimasjonen din og trykk Koble til for å kommunisere med serveren.

9. Hvis det er første gang du kobler til ProFTPD Server skal en popup med det nye sertifikatet vises, merk av i boksen som sier Slit alltid på sertifikat for fremtidig økter og trykk på OK for å godta sertifikatet og autentisere til ProFTPD-serveren.

Hvis du planlegger å bruke andre klienter enn FileZilla for sikker tilgang til FTP-ressurser, sørg for at de støtter FTP over TLS-protokollen. Noen gode eksempler for FTP-klienter som kan snakke FTPS er WinSCP for Windows-plattformer og gFTP eller LFTP (kommandolinje) for NIX.