Sikker ProFTPD-forbindelser ved hjælp af TLS/SSL-protokol på RHEL/CentOS 7


Af sin art blev FTP protokollen designet som en usikker protokol, og alle data og adgangskoder overføres i almindelig tekst, hvilket gør jobbet fra en tredjepart meget let at opfange alle FTP-klientserver-transaktioner, især brugernavne og adgangskoder, der bruges i godkendelsesprocessen.

  1. Installation af ProFTPD-server på RHEL/CentOS 7
  2. Aktivér anonym konto for Proftpd-server i RHEL/CentOS 7

Denne vejledning vil guide dig om, hvordan du kan sikre og kryptere FTP kommunikation på ProFTPd server i CentOS / RHEL 7 , ved hjælp af TLS (Transport Layer Security) med eksplicit FTPS-udvidelse (tænk ved FTPS som hvad HTTPS er for HTTP-protokol).

Trin 1: Opret Proftpd TLS-modulkonfigurationsfil

1. Som diskuteret i forrige Proftpd-tutorial om Anonym-konto, bruger denne guide også den samme tilgang til styring af Proftpd-fremtidige konfigurationsfiler som moduler ved hjælp af enabled_mod og disabled_mod mapper, som er vært for alle serveres udvidede kapaciteter.

Så lav en ny fil med din yndlings teksteditor med navnet tls.conf i disabled_mod Proftpd-sti, og tilføj følgende direktiver.

# nano /etc/proftpd/disabled_mod/tls.conf

Tilføj følgende TLS-filkonfigurationsuddrag.

<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 bruger browsere eller FTP-klienter, der ikke understøtter TLS-forbindelser, skal du kommentere linjen TLSRequired til for at tillade TLS- og ikke-TLS-forbindelser på samme tid og undgå fejlmeddelelsen som i skærmbillede nedenfor.

Trin 2: Opret SSL-certifikatfiler til TLS

3. Når du har oprettet konfigurationsfilen til TLS-modulet. der aktiverer FTP via TLS på Proftpd, skal du generere SSL-certifikat og nøgle for at kunne bruge sikker kommunikation via ProFTPD-server ved hjælp af OpenSSL -pakken.

# yum install openssl

Du kan bruge en enkelt lang kommando til at generere SSL-certifikat og nøglepar, men for at forenkle ting kan du oprette et simpelt bash-script, der genererer SSL-par med dit ønskede navn og tildeler de korrekte tilladelser til nøglefilen.

Opret en bash-fil med navnet proftpd_gen_ssl /usr/local/bin/ eller på en hvilken som helst anden eksekverbar systemsti (defineret af $ PATH variabel).

# nano /usr/local/bin/proftpd_gen_ssl

Føj følgende indhold til det.

#!/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. Når du har oprettet ovenstående fil, skal du tildele den med eksekveringstilladelser, sikre at /etc/ssl/private findes og køre scriptet for at oprette SSL-certifikat og nøglepar.

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

Lever SSL-certifikatet med de krævede oplysninger, der er selvforklarende, men vær opmærksom på Almindeligt navn for at matche din vært Fuldt kvalificeret domænenavn - FQDN .

Trin 3: Aktivér TLS på ProFTPD Server

5. Da TLS-konfigurationsfilen oprettet tidligere allerede peger på det rigtige SSL-certifikat og den nøglefil, er det eneste, der er tilbage, at aktivere TLS-modulet ved at oprette et symbolsk link tls.conf fil til mappen enabled-mod og genstart ProFTPD-dæmonen for at anvende ændringer.

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

6. For at deaktivere TLS-modulet skal du bare fjerne tls.conf symlink fra mappen enabled_mod og genstarte ProFTPD-serveren for at anvende ændringer.

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

Trin 4: Åbn Firewall for at tillade FTP over TLS-kommunikation

7. For at klienter kan få adgang til ProFTPD og sikre overførselsfiler i Passiv tilstand skal du åbne hele portområdet mellem 1024 og 65534 på RHEL/CentOS Firewall ved hjælp af 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. Nu er dit system klar til at acceptere FTP-kommunikation via TLS fra en klientside.

Trin 5: Få adgang til ProFTPD via TLS fra klienter

8. Webbrowsere har normalt ingen indbygget understøttelse af FTP over TLS-protokol, så al transaktion leveres via ikke-krypteret FTP. En af de mest fremragende FTP-klienter er FileZilla , som er fuldstændig Open Source og kan køre på næsten alle større operativsystemer.

For at få adgang til FTP via TLS fra FileZilla skal du åbne Site Manager , vælge FTP Protokol og Kræv eksplicit FTP over TLS på rullemenuen Kryptering , vælg dig Logon Type som Normal , indtast dine FTP-legitimationsoplysninger, og tryk på Opret forbindelse for at kommunikere med serveren.

9. Hvis det er første gang, du opretter forbindelse til ProFTPD Server, skal der vises en pop op-vindue med det nye certifikat, markér afkrydsningsfeltet der siger Stol altid på certifikat til fremtidige sessioner og tryk på OK for at acceptere certifikat og godkende til ProFTPD-server.

Hvis du planlægger at bruge andre klienter end FileZilla til sikker adgang til FTP-ressourcer, skal du sørge for at de understøtter FTP via TLS-protokol. Nogle gode eksempler for FTP-klienter, der kan tale FTPS, er gFTP eller LFTP (kommandolinje) til NIX.