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.
- Installation af ProFTPD-server på RHEL/CentOS 7
- 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 på /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 på 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 på 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.