Varne povezave ProFTPD z uporabo protokola TLS/SSL na RHEL/CentOS 7


Protokol FTP je bil po svoji naravi zasnovan kot nezaščiten protokol, vsi podatki in gesla pa se prenašajo v golem besedilu, zato je delo tretje osebe zelo enostavno prestreči vse transakcije odjemalca in strežnika FTP, zlasti uporabniška imena in gesla, uporabljena v postopku preverjanja pristnosti.

  1. Namestitev strežnika ProFTPD na RHEL/CentOS 7
  2. Omogočite anonimni račun za strežnik Proftpd v RHEL/CentOS 7

Ta vadnica vas bo vodila o tem, kako lahko zaščitite in šifrirate FTP komunikacijo na strežniku ProFTPd v CentOS / RHEL 7 , z uporabo TLS (Transport Layer Security) z eksplicitno razširitvijo FTPS (na FTPS pomislite, kaj HTTPS pomeni za protokol HTTP).

1. korak: Ustvarite konfiguracijsko datoteko modula Proftpd TLS

1. Kot je bilo obravnavano v prejšnji vadnici Proftpd o anonimnem računu, bo tudi v tem priročniku uporabljen enak pristop pri upravljanju datotek prihodnjih konfiguracij Proftpd kot modulov s pomočjo omogočenih_mod in onemogočenih_mod imenike, ki bodo gostili vse razširjene zmogljivosti strežnika.

Torej ustvarite novo datoteko z vašim najljubšim urejevalnikom besedila z imenom tls.conf v poti disabled_mod Proftpd in dodajte naslednje smernice.

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

Dodajte naslednji izvleček konfiguracije datoteke TLS.

<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. Če uporabljate brskalnike ali odjemalce FTP, ki ne podpirajo povezav TLS, komentirajte vrstico Zahtevana TLSR , da omogočite povezave TLS in ne-TLS istočasno in se izognete sporočilu o napaki kot v posnetek zaslona spodaj.

2. korak: Ustvarite datoteke potrdil SSL za TLS

3. Ko ustvarite konfiguracijsko datoteko modula TLS. ki bo omogočil FTP prek TLS na Proftpd, morate ustvariti potrdilo in ključ SSL, če želite s pomočjo paketa OpenSSL uporabljati varno komunikacijo prek strežnika ProFTPD.

# yum install openssl

Z enim dolgim ukazom lahko generirate pare potrdil SSL in ključev, za poenostavitev pa lahko ustvarite preprost skript bash, ki bo generiral pare SSL z želenim imenom in dodelil pravilna dovoljenja za datoteko ključ.

Ustvari bash datoteko z imenom proftpd_gen_ssl na /usr/local/bin/ ali na kateri koli drugi izvršljivi sistemski poti (definirana s spremenljivko $PATH ).

# nano /usr/local/bin/proftpd_gen_ssl

Dodajte mu naslednjo vsebino.

#!/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. Ko ustvarite zgornjo datoteko, ji dodelite dovoljenja za izvajanje, zagotovite, da obstaja imenik /etc/ssl/private , in zaženite skript za ustvarjanje parov potrdil SSL in ključev.

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

Dostavite potrdilu SSL zahtevane zahtevane informacije, ki so samoumevne, vendar bodite pozorni na Splošno ime , da se ujema z vašim gostiteljem Popolnoma kvalificirano ime domene - FQDN .

3. korak: Omogočite TLS na strežniku ProFTPD

5. Ker že ustvarjena konfiguracijska datoteka TLS kaže na desno datoteko s potrdilom SSL in datoteko ključ, preostane le še aktiviranje modula TLS z ustvarjanjem simbolične povezave tls.conf datoteko v imenik enabled-mod in znova zaženite demon TPTPD, da uveljavite spremembe.

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

6. Če želite onemogočiti modul TLS, preprosto odstranite simbol tls.conf iz imenika enabled_mod in znova zaženite strežnik ProFTPD, da uveljavite spremembe.

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

4. korak: Odprite požarni zid, da omogočite komunikacijo FTP prek TLS

7. Če želite odjemalci dostopati do ProFTPD in zaščititi datoteke za prenos v pasivnem načinu , morate odpreti celoten obseg vrat med 1024 in 65534 na RHEL/CentOS Firewall z naslednjimi ukazi.

# 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. Zdaj je vaš sistem pripravljen sprejeti komunikacijo FTP prek TLS s strani odjemalca.

5. korak: Dostop do ProFTPD prek TLS od odjemalcev

8. Spletni brskalniki običajno nimajo vgrajene podpore za FTP prek protokola TLS, zato so vse transakcije dostavljene prek nešifriranega FTP. Eden najbolj izvrstnih odjemalcev FTP je FileZilla , ki je v celoti odprtokodna in lahko deluje v skoraj vseh večjih operacijskih sistemih.

Za dostop do FTP-ja prek TLS-ja iz FileZilla odprite Upravitelj strani , izberite FTP na Protokol in Zahtevaj eksplicitni FTP prek TLS-a na Spustni meni Šifriranje , izberite Vrsta prijave kot Običajno , vnesite poverilnice FTP in pritisnite Poveži za komunikacijo s strežnikom.

9. Če se prvič povežete s strežnikom ProFTPD, se prikaže pojavno okno z novim potrdilom, označite polje , ki pravi Vedno zaupaj potrdilu za prihodnje seje in pritisnite na V redu , da sprejmete potrdilo in preverite pristnost strežnika ProFTPD.

Če nameravate za varen dostop do virov FTP uporabiti druge odjemalce kot FileZilla, poskrbite, da podpirajo FTP prek protokola TLS. Nekaj dobrih primerov za odjemalce FTP, ki lahko govorijo FTPS, so gFTP ali LFTP (ukazna vrstica) za NIX.