Saugūs ProFTPD ryšiai naudojant TLS/SSL protokolą RHEL/CentOS 7


Pagal savo pobūdį FTP protokolas buvo sukurtas kaip nesaugus protokolas, o visi duomenys ir slaptažodžiai perduodami paprastu tekstu, todėl trečiosios šalies darbas labai lengvas perimti visas FTP kliento ir serverio operacijas, ypač naudotojų vardus ir slaptažodžiai, naudojami autentifikavimo procese.

Reikalavimai

  1. ProFTPD serverio diegimas RHEL/CentOS 7
  2. Įgalinkite anoniminę Proftpd serverio paskyrą RHEL/CentOS 7

Šioje pamokoje sužinosite, kaip apsaugoti ir užšifruoti FTP ryšį ProFTPd serveryje CentOS/RHEL 7 , naudojant TLS (Transport Layer Security) su aiškiu FTPS plėtiniu (galvokite apie FTPS kaip HTTPS HTTP protokolui).

1 veiksmas: sukurkite Proftpd TLS modulio konfigūracijos failą

1. Kaip aptarta ankstesnėje „Proftpd“ mokymo programoje apie anoniminę paskyrą, šiame vadove taip pat bus naudojamas tas pats būdas valdyti Proftpd būsimų konfigūracijų failus kaip modulius, naudojant enabled_mod ir < b>disabled_mod katalogus, kuriuose bus visos išplėstinės serverio galimybės.

Taigi sukurkite naują failą naudodami mėgstamą teksto rengyklę pavadinimu tls.conf disabled_mod Proftpd kelyje ir pridėkite šias direktyvas.

nano /etc/proftpd/disabled_mod/tls.conf

Pridėkite šią TLS failo konfigūracijos ištrauką.

<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. Jei naudojate naršykles arba FTP klientus, kurie nepalaiko TLS ryšių, pakomentuokite eilutę TLSRreikalingas, kad tuo pačiu metu būtų leista TLS ir ne TLS ryšiai ir venkite klaidos pranešimo, kaip parodyta toliau pateiktoje ekrano kopijoje.

2 veiksmas: sukurkite TLS SSL sertifikato failus

3. Sukūrę TLS modulio konfigūracijos failą. kuris įgalins FTP per TLS Proftpd, turite sugeneruoti SSL sertifikatą ir raktą, kad galėtumėte naudoti saugų ryšį per ProFTPD serverį naudodami OpenSSL paketą.

yum install openssl

Galite naudoti vieną ilgą komandą, kad sukurtumėte SSL sertifikato ir raktų poras, tačiau norėdami supaprastinti dalykus, galite sukurti paprastą bash scenarijų, kuris sugeneruos SSL poras su norimu pavadinimu ir priskirs teisingus rakto failo leidimus.

Sukurkite bash failą pavadinimu proftpd_gen_ssl /usr/local/bin/ arba bet kuriame kitame vykdomosios sistemos kelyje (apibrėžtame kintamuoju ` PATH ).

nano /usr/local/bin/proftpd_gen_ssl

Pridėkite prie jo toliau nurodytą turinį.

#!/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. Sukūrę aukščiau pateiktą failą, priskirkite jam vykdymo leidimus, įsitikinkite, kad yra /etc/ssl/private katalogas, ir paleiskite scenarijų, kad sukurtumėte SSL sertifikatą ir raktą porų.

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

Pateikite SSL sertifikatą su reikalaujama informacija, kuri yra savaime suprantama, tačiau atkreipkite dėmesį į Bendrąjį pavadinimą, kad jis atitiktų jūsų pagrindinį Visiškai kvalifikuotą domeno pavadinimąFQDN b>.

3 veiksmas: ProFTPD serveryje įjunkite TLS

5. Kadangi anksčiau sukurtas TLS konfigūracijos failas jau nurodo tinkamą SSL sertifikato ir rakto failą, belieka suaktyvinti TLS modulį sukuriant simbolinę nuorodą >tls.conf failą į enabled-mod katalogą ir iš naujo paleiskite ProFTPD demoną, kad pritaikytumėte pakeitimus.

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

6. Norėdami išjungti TLS modulį, tiesiog pašalinkite tls.conf simbolinę nuorodą iš enabled_mod katalogo ir iš naujo paleiskite ProFTPD serverį, kad pritaikytumėte pakeitimus.

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

4 veiksmas: atidarykite ugniasienę, kad galėtumėte leisti FTP per TLS ryšį

7. Kad klientai galėtų pasiekti ProFTPD ir saugiai perkelti failus pasyviuoju režimu, turite atidaryti visą prievadų diapazoną nuo 1024 iki 65534 RHEL/CentOS ugniasienėje, naudodami šias komandas.

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

Viskas. Dabar jūsų sistema yra pasirengusi priimti FTP ryšį per TLS iš kliento pusės.

5 veiksmas: pasiekite ProFTPD per TLS iš klientų

8. Žiniatinklio naršyklėse paprastai nėra integruoto FTP per TLS protokolą palaikymo, todėl visos operacijos atliekamos per nešifruotą FTP. Vienas iš geriausių FTP klientų yra FileZilla, kuris yra visiškai atvirojo kodo ir gali veikti beveik visose pagrindinėse operacinėse sistemose.

Norėdami pasiekti FTP per TLS iš „FileZilla“, atidarykite Svetainių tvarkyklę, pasirinkite FTP Protocol ir Reikalauti aiškaus FTP per TLS Išskleidžiamajame meniu Šifravimas pasirinkite Prisijungimo tipą kaip Įprastą, įveskite savo FTP kredencialus ir paspauskite Prisijungti, kad galėtumėte susisiekti. su serveriu.

9. Jei pirmą kartą prisijungiate prie ProFTPD serverio, turėtų pasirodyti iššokantis langas su nauju sertifikatu, pažymėkite laukelį, kuriame nurodyta Visada pasitikėti sertifikatu ateityje seansus ir paspauskite Gerai, kad priimtumėte sertifikatą ir patvirtintumėte ProFTPD serverį.

Jei planuojate naudoti kitus klientus nei „FileZilla“, kad galėtumėte saugiai pasiekti FTP išteklius, įsitikinkite, kad jie palaiko FTP per TLS protokolą. Keletas gerų FTP klientų, galinčių kalbėti FTPS, pavyzdžiai yra WinSCP, skirta Windows platformoms, ir gFTP arba LFTP (komandų eilutė), skirta NIX.