Suojaa ProFTPD-yhteydet käyttämällä TLS/SSL-protokollaa RHEL/CentOS 7: llä


Luonteensa vuoksi FTP -protokolla on suunniteltu epävarmaksi protokollaksi, ja kaikki tiedot ja salasanat siirretään tekstimuodossa, mikä tekee kolmannen osapuolen työstä erittäin helppo sieppaamaan kaikki FTP-asiakas-palvelintapahtumat, erityisesti käyttäjänimet ja todennusprosessissa käytetyt salasanat.

  1. ProFTPD-palvelimen asentaminen RHEL/CentOS 7 -käyttöjärjestelmään
  2. Ota anonyymi tili käyttöön Proftpd-palvelimelle RHEL/CentOS 7: ssä

Tämä opetusohjelma opastaa sinua suojaamaan ja salaamaan FTP -viestinnän ProFTPd -palvelimella CentOS / RHEL 7 -palvelussa , käyttämällä TLS (Transport Layer Security) -ominaisuutta, jolla on eksplisiittinen FTPS-laajennus (ajattele FTPS: ssä mitä HTTPS on HTTP-protokollalle).

Vaihe 1: Luo Proftpd TLS -moduulin määritystiedosto

1. Kuten edellisessä Nimetöntä tiliä koskevassa Proftpd-opetusohjelmassa todettiin, tässä oppaassa käytetään samaa lähestymistapaa myös tulevaisuuden Proftpd-määritystiedostojen hallinnassa moduuleina enable_mod ja disabled_mod avulla. hakemistot, jotka palvelevat kaikkia palvelimen laajennettuja ominaisuuksia.

Joten, luo uusi tiedosto suosikkitekstieditorilla nimeltä tls.conf invalid_mod Proftpd-polussa ja lisää seuraavat ohjeet.

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

Lisää seuraava TLS-tiedostomäärityksen ote.

<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. Jos käytät selaimia tai FTP-asiakkaita, jotka eivät tue TLS-yhteyksiä, kommentoi rivi TLSRequired on , jotta TLS- ja muut kuin TLS-yhteydet sallitaan samanaikaisesti ja vältetään virheilmoitus kuten kuvakaappaus alla.

Vaihe 2: Luo SSL-varmennetiedostot TLS: ää varten

3. Kun olet luonut TLS-moduulin määritystiedoston. joka sallii FTP: n TLS: n kautta Proftpd: ssä, sinun on luotava SSL-varmenne ja avain, jotta voit käyttää suojattua tiedonsiirtoa ProFTPD Server -palvelimen kautta OpenSSL -paketin avulla.

# yum install openssl

Voit käyttää yhtä pitkää komentoa SSL-sertifikaatti- ja avainparien luomiseen, mutta yksinkertaistamaan asioita voit luoda yksinkertaisen bash-komentosarjan, joka luo SSL-parit haluamallasi nimellä ja antaa oikeat käyttöoikeudet Key-tiedostolle.

Luo bash-tiedosto nimeltä proftpd_gen_ssl kansioon /usr/local/bin/ tai muulle suoritettavalle järjestelmän polulle (muuttujan $PATH määrittämä).

# nano /usr/local/bin/proftpd_gen_ssl

Lisää siihen seuraava sisältö.

#!/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. Kun olet luonut yllä olevan tiedoston, määritä se suorittamisoikeuksilla, varmista, että /etc/ssl/private -hakemisto on olemassa, ja luo komentosarja SSL-sertifikaatti- ja avainparien luomiseksi.

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

Anna SSL-varmenteelle vaaditut kehotetut tiedot, jotka ovat itsestään selviä, mutta kiinnitä huomiota yleiseen nimeen vastaamaan isäntäsi täysin hyväksyttyä verkkotunnusta - FQDN .

Vaihe 3: Ota TLS käyttöön ProFTPD Serverissä

5. Koska aiemmin luotu TLS-määritystiedosto osoittaa jo oikeaan SSL-sertifikaatti- ja avaintiedostoon, jäljellä on vain aktivoida TLS-moduuli luomalla symbolinen linkki kohteesta tls.conf tiedosto enable-mod -hakemistoon ja käynnistä ProFTPD-demoni muutosten tekemiseen.

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

6. Voit poistaa TLS-moduulin käytöstä poistamalla tls.conf -symbolilinkin enable_mod -hakemistosta ja käynnistämällä ProFTPD-palvelimen uudelleen muutosten tekemistä varten.

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

Vaihe 4: Avaa palomuuri salliaksesi FTP: n TLS-yhteyden kautta

7. Jotta asiakkaat voisivat käyttää ProFTPD: tä ja suojata siirtotiedostoja passiivisessa tilassa , sinun on avattava koko porttialue 1024 ja 65534 välillä RHEL/CentOS-palomuuri käyttämällä seuraavia komentoja.

# 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

Se siitä. Nyt järjestelmäsi on valmis hyväksymään FTP-tiedonsiirron TLS: n kautta asiakaspuolelta.

Vaihe 5: Käytä ProFTPD: tä TLS: n kautta asiakkailta

8. Verkkoselaimilla ei yleensä ole sisäänrakennettua tukea FTP: lle TLS-protokollan kautta, joten kaikki tapahtumat toimitetaan salaamattoman FTP: n kautta. Yksi erinomaisimmista FTP-asiakkaista on FileZilla , joka on täysin avoimen lähdekoodin ja toimii lähes kaikilla tärkeimmillä käyttöjärjestelmillä.

Jos haluat käyttää FTP: tä TLS: n kautta FileZillasta, avaa Sivustonhallinta , valitse FTP Protokollassa ja Vaadi nimenomaista FTP: tä TLS: n kautta Salaus -pudotusvalikko, valitse Kirjautumistyyppi Normaali , kirjoita FTP-tunnuksesi ja paina Yhdistä kommunikoida palvelimen kanssa.

9. Jos muodostat yhteyden ProFTPD-palvelimeen ensimmäistä kertaa, uuden varmenteen sisältävän ponnahdusikkunan pitäisi näkyä, tarkista ruutu , jossa lukee Luota aina varmenteeseen tulevia istuntoja varten ja osuma OK -kohdassa hyväksyäksesi varmenteen ja todennuksen ProFTPD-palvelimelle.

Jos aiot käyttää muita asiakkaita kuin FileZillaa FTP-resurssien turvalliseen käyttöön, varmista, että ne tukevat FTP: tä TLS-protokollan kautta. Hyviä esimerkkejä FTP-asiakkaille, jotka voivat puhua FTPS: ää, ovat gFTP tai LFTP (komentorivi) NIX: lle.