Sigurne ProFTPD veze koristeći TLS/SSL protokol na RHEL/CentOS 7


Po svojoj prirodi FTP protokol je dizajniran kao nesiguran protokol i svi podaci i lozinke se prenose u običnom tekstu, što posao treće strane čini vrlo lakim da presretne sve FTP klijent-server transakcije, posebno korisnička imena i lozinke koje se koriste u procesu autentifikacije.

Zahtjevi

  1. Instaliranje ProFTPD servera na RHEL/CentOS 7
  2. Omogućite anonimni nalog za Proftpd server u RHEL/CentOS 7

Ovaj vodič će vas uputiti kako možete osigurati i šifrirati FTP komunikaciju na ProFTPd serveru u CentOS/RHEL 7 , koristeći TLS (Transport Layer Security) s eksplicitnim FTPS ekstenzijom (zamislite FTPS kao ono što je HTTPS za HTTP protokol).

Korak 1: Kreirajte Proftpd TLS Module Configuration File

1. Kao što je objašnjeno u prethodnom vodiču za Proftpd o anonimnom računu, ovaj vodič će također koristiti isti pristup za upravljanje budućim konfiguracijskim datotekama Proftpd kao modulima, uz pomoć enabled_mod i < b>disabled_mod direktoriji, koji će ugostiti sve proširene mogućnosti servera.

Dakle, kreirajte novu datoteku sa vašim omiljenim uređivačem teksta pod nazivom tls.conf u disabled_mod Proftpd putanji i dodajte sljedeće direktive.

nano /etc/proftpd/disabled_mod/tls.conf

Dodajte sljedeći izvod konfiguracije TLS datoteke.

<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. Ako koristite pretraživače ili FTP klijente koji ne podržavaju TLS veze, komentirajte red TLSRequired on da biste omogućili TLS i ne-TLS veze u isto vrijeme i izbjegnite poruku o grešci kao na slici ispod.

Korak 2: Kreirajte datoteke SSL certifikata za TLS

3. Nakon što ste kreirali konfiguracijski fajl TLS modula. koji će omogućiti FTP preko TLS-a na Proftpd-u, potrebno je da generišete SSL sertifikat i ključ da biste koristili sigurnu komunikaciju preko ProFTPD servera uz pomoć OpenSSL paketa.

yum install openssl

Možete koristiti jednu dugu naredbu za generiranje parova SSL certifikata i ključeva, ali da pojednostavite stvari možete kreirati jednostavnu bash skriptu koja će generirati SSL parove s vašim željenim imenom i dodijeliti ispravne dozvole za datoteku ključa.

Kreirajte bash datoteku pod nazivom proftpd_gen_ssl na /usr/local/bin/ ili na bilo kojoj drugoj izvršnoj sistemskoj putanji (definiranoj varijablom ` PATH ).

nano /usr/local/bin/proftpd_gen_ssl

Dodajte mu sljedeći sadržaj.

#!/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. Nakon što ste kreirali gornju datoteku, dodijelite joj dozvole za izvršavanje, uvjerite se da postoji direktorij /etc/ssl/private i pokrenite skriptu za kreiranje SSL certifikata i ključa parovi.

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

Navedite SSL certifikat sa potrebnim informacijama koje su jasne, ali obratite pažnju na Common Name da odgovara Full Qualified Domain Name vašeg hosta – FQDN b>.

Korak 3: Omogućite TLS na ProFTPD serveru

5. Kako TLS konfiguracijski fajl koji je kreiran ranije već ukazuje na pravi SSL certifikat i datoteku ključa, jedino što preostaje je aktivirati TLS modul kreiranjem simboličke veze od tls.conf datoteku u enabled-mod direktorij i restartujte ProFTPD demona za primjenu promjena.

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

6. Da biste onemogućili TLS modul, samo uklonite simboličku vezu tls.conf iz enabled_mod direktorija i ponovo pokrenite ProFTPD server da biste primijenili promjene.

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

Korak 4: Otvorite zaštitni zid da biste dozvolili FTP preko TLS komunikacije

7. Da bi klijenti pristupili ProFTPD-u i sigurnim prijenosnim datotekama u pasivnom načinu rada morate otvoriti cijeli raspon portova između 1024 i 65534 na RHEL/CentOS zaštitnom zidu, koristeći sljedeće komande.

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

To je to. Sada je vaš sistem spreman da prihvati FTP komunikaciju preko TLS-a sa strane klijenta.

Korak 5: Pristupite ProFTPD-u preko TLS-a od klijenata

8. Web pretraživači obično nemaju ugrađenu podršku za FTP preko TLS protokola, tako da se sve transakcije isporučuju preko nešifrovanog FTP-a. Jedan od najboljih FTP klijenata je FileZilla, koji je u potpunosti otvorenog koda i može raditi na gotovo svim glavnim operativnim sistemima.

Za pristup FTP-u preko TLS-a iz FileZilla otvorite Site Manager, odaberite FTP na Protocolu i Zahtijevaj eksplicitni FTP preko TLS-a na Enkripcija u padajućem meniju, odaberite Vrstu prijave kao Normalno, unesite svoje FTP akreditive i pritisnite Poveži se za komunikaciju sa serverom.

9. Ako se prvi put povezujete na ProFTPD server, trebao bi se pojaviti skočni prozor s novim certifikatom, označite okvir koji kaže Uvijek vjerovati certifikatu za budućnost sesije i pritisnite OK da prihvatite certifikat i potvrdite autentičnost na ProFTPD serveru.

Ako planirate koristiti druge klijente osim FileZilla za siguran pristup FTP resursima, uvjerite se da podržavaju FTP preko TLS protokola. Neki dobri primjeri za FTP klijente koji govore FTPS su WinSCP za Windows platforme i gFTP ili LFTP (komandna linija) za NIX.