Sigurne ProFTPD veze pomoću TLS/SSL protokola na RHEL/CentOS 7


Po svojoj prirodi FTP protokol dizajniran je kao nesigurni protokol, a svi podaci i lozinke prenose se u običnom tekstu, što olakšava posao treće strane u presretanju svih transakcija FTP klijent-poslužitelj, posebno korisničkih imena i lozinke koje se koriste u postupku provjere autentičnosti.

  1. Instaliranje ProFTPD poslužitelja na RHEL/CentOS 7
  2. Omogućite anonimni račun za Proftpd poslužitelj u RHEL/CentOS 7

Ovaj vodič će vas voditi kako možete osigurati i šifrirati FTP komunikaciju na poslužitelju ProFTPd u CentOS / RHEL 7 , koristeći TLS (Transport Layer Security) s eksplicitnim proširenjem FTPS (mislite na FTPS kao HTTPS za HTTP protokol).

Korak 1: Stvorite datoteku za konfiguraciju modula Proftpd TLS

1. Kao što je objašnjeno u prethodnom vodiču za Proftpd koji se tiče Anonimnog računa, ovaj vodič također će koristiti isti pristup u upravljanju datotekama budućih konfiguracija Proftpd-a kao modula, uz pomoć enabled_mod i disabled_mod direktoriji, koji će ugostiti sve proširene mogućnosti poslužitelja.

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

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

Dodajte sljedeći izvod za konfiguraciju 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 upotrebljavate preglednike ili FTP klijente koji ne podržavaju TLS veze, komentirajte redak TLSR potrebni kako biste istovremeno omogućili TLS i ne-TLS veze i izbjegli poruku o pogrešci kao u snimka zaslona u nastavku.

Korak 2: Stvorite datoteke SSL certifikata za TLS

3. Nakon što stvorite datoteku za konfiguraciju TLS modula. koji će omogućiti FTP preko TLS-a na Proftpd-u, trebate generirati SSL certifikat i ključ kako biste koristili sigurnu komunikaciju preko ProFTPD poslužitelja uz pomoć OpenSSL paketa.

# yum install openssl

Možete koristiti jednu dugu naredbu za generiranje parova SSL certifikata i ključeva, ali da biste pojednostavili stvari, možete stvoriti jednostavnu bash skriptu koja će generirati SSL parove s vašim željenim imenom i dodijeliti ispravna dopuštenja za datoteku ključa.

Stvorite 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 stvorite gornju datoteku, dodijelite joj dozvolu za izvršenje, uvjerite se da postoji direktorij /etc/ssl/private i pokrenite skriptu za stvaranje parova SSL certifikata i ključeva.

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

Opskrbite SSL certifikat potrebnim zatraženim informacijama koje su same po sebi razumljive, ali obratite pažnju na Uobičajeno ime kako bi se podudaralo s vašim domaćinom Potpuno kvalificirano ime domene - FQDN .

Korak 3: Omogućite TLS na serveru ProFTPD

5. Budući da ranije stvorena datoteka TLS konfiguracije već upućuje na pravu datoteku SSL certifikata i ključa, preostaje jedino aktiviranje TLS modula stvaranjem simboličke veze tls.conf datoteka u direktorij enabled-mod i ponovno pokrenite ProFTPD demon 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 simbol tls.conf iz direktorija enabled_mod i ponovo pokrenite ProFTPD poslužitelj da biste primijenili promjene.

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

Korak 4: Otvorite vatrozid kako biste omogućili FTP preko TLS komunikacije

7. Da bi klijenti mogli pristupiti ProFTPD-u i zaštitili datoteke za prijenos u pasivnom načinu morate otvoriti cijeli raspon priključaka između 1024 i 65534 na RHEL/CentOS Firewall, koristeći sljedeće naredbe.

# 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š sustav spreman prihvatiti FTP komunikaciju putem TLS-a od strane klijenta.

Korak 5: Pristupite ProFTPD preko TLS-a od klijenata

8. Web preglednici obično nemaju ugrađenu podršku za FTP preko TLS protokola, pa se sve transakcije isporučuju putem nešifriranog FTP-a. Jedan od najodličnijih FTP klijenata je FileZilla , koji je u cijelosti otvoren izvorni kod i može se izvoditi na gotovo svim glavnim operativnim sustavima.

Za pristup FTP-u preko TLS-a iz FileZille otvorite Upravitelj web mjesta , odaberite FTP na Protokol i Zahtijevajte eksplicitni FTP preko TLS na padajući izbornik Šifriranje , odaberite Vrsta prijave kao Uobičajeno , unesite svoje FTP vjerodajnice i pritisnite Poveži za komunikaciju s poslužiteljem.

9. Ako se prvi put povezujete s serverom ProFTPD, trebao bi se pojaviti skočni prozor s novim certifikatom, označite okvir koji kaže Uvijek vjeruj certifikatu za buduće sesije i pritisnite na OK za prihvaćanje certifikata i provjeru autentičnosti na serveru ProFTPD.

Ako planirate koristiti druge klijente osim FileZille za siguran pristup FTP resursima, pobrinite se da podržavaju FTP preko TLS protokola. Neki dobri primjeri za FTP klijente koji mogu govoriti FTPS su gFTP ili LFTP (naredbeni redak) za NIX.