Kuinka suojata FTP-palvelin SSL/TLS: n avulla suojatun tiedostonsiirron saavuttamiseksi CentOS 7: ssä


Alkuperäisen mallinsa mukaan FTP (File Transfer Protocol) ei ole turvallinen, mikä tarkoittaa, että se ei salaa kahden koneen välillä siirrettäviä tietoja ja käyttäjän tunnistetietoja. Tämä on valtava uhka sekä tiedoille että palvelinten turvallisuudelle.

Tässä opetusohjelmassa kerrotaan, kuinka datan salauspalvelut otetaan manuaalisesti käyttöön FTP-palvelimessa CentOS/RHEL 7: ssä ja Fedorassa; käymme läpi useita vaiheita VSFTPD (Very Secure FTP Daemon) -palvelujen suojaamiseksi SSL/TLS-varmenteilla.

  1. Sinun on asennettava ja määritettävä FTP-palvelin CentOS 7: ään

Ennen kuin aloitamme, huomaa, että kaikki tämän opetusohjelman komennot suoritetaan pääkäyttäjänä, muuten voit käyttää root-oikeuksia sudo-komennolla, jos et hallitse palvelinta juuritilillä.

Vaihe 1. SSL/TLS-varmenteen ja yksityisen avaimen luominen

1. Meidän on aloitettava luomalla alihakemisto kohtaan: /etc/ssl/, johon tallennamme SSL/TLS-varmenteen ja avaintiedostot:

# mkdir /etc/ssl/private

2. Suorita sitten alla oleva komento luodaksesi vsftpd-sertifikaatti ja avain yhteen tiedostoon, tässä on selitys jokaisesta käytetystä lipusta.

  1. req - on komento X.509 Certificate Signing Request (CSR) -hallinnalle.
  2. x509 - tarkoittaa X.509-varmenteen tiedonhallintaa.
  3. päivää - määrittää, kuinka monta päivää sertifikaatti on voimassa.
  4. newkey - määrittää varmenteen avaimen prosessorin.
  5. rsa: 2048 - RSA-avainprosessori, luo 2048-bittisen yksityisen avaimen.
  6. avainnäppäin - määrittää avaimen tallennustiedoston.
  7. ulos - määrittää varmenteen tallennustiedoston, huomaa, että sekä varmenne että avain on tallennettu samaan tiedostoon: /etc/ssl/private/vsftpd.pem.

# openssl req -x509 -nodes -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem -days 365 -newkey rsa:2048

Yllä oleva komento pyytää sinua vastaamaan alla oleviin kysymyksiin, muista käyttää skenaarioosi soveltuvia arvoja.

Country Name (2 letter code) [XX]:IN
State or Province Name (full name) []:Lower Parel
Locality Name (eg, city) [Default City]:Mumbai
Organization Name (eg, company) [Default Company Ltd]:TecMint.com
Organizational Unit Name (eg, section) []:Linux and Open Source
Common Name (eg, your name or your server's hostname) []:tecmint
Email Address []:[email 

Vaihe 2. VSFTPD: n määrittäminen käyttämään SSL/TLS: ää

3. Ennen kuin teemme mitään VSFTPD-määrityksiä, avataan portit 990 ja 40000-50000, jotta TLS-yhteydet ja passiivisten porttien porttialue voivat määritellä VSFTPD-määritystiedostossa:

# firewall-cmd --zone=public --permanent --add-port=990/tcp
# firewall-cmd --zone=public --permanent --add-port=40000-50000/tcp
# firewall-cmd --reload

4. Avaa nyt VSFTPD-määritystiedosto ja määritä siinä SSL-tiedot:

# vi /etc/vsftpd/vsftpd.conf

Etsi vaihtoehto ssl_enable ja aseta sen arvoksi YES SSL: n käytön aktivoimiseksi.Lisäksi, koska TSL on turvallisempi kuin SSL, rajoitamme VSFTPD: n käyttämään TLS: ää sen sijaan käyttämällä ssl_tlsv1_2-vaihtoehtoa:

ssl_enable=YES
ssl_tlsv1_2=YES
ssl_sslv2=NO
ssl_sslv3=NO

5. Lisää sitten alla olevat rivit määrittääksesi SSL-varmenteen ja avaintiedoston sijainnin:

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

6. Seuraavaksi meidän on estettävä tuntemattomia käyttäjiä käyttämästä SSL: ää, ja pakotettava kaikki ei-anonyymit kirjautumistiedot käyttämään suojattua SSL-yhteyttä tiedonsiirtoon ja lähettämään salasana kirjautumisen aikana:

allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

7. Lisäksi voimme lisätä alla olevat vaihtoehdot FTP-palvelimen turvallisuuden parantamiseksi. Kun vaihtoehdon Require_ssl_reuse asetukseksi on määritetty YES , kaikki SSL-datayhteydet vaaditaan SSL-istunnon uudelleenkäyttöön. todistaa, että he tietävät saman pääsalaisuuden kuin ohjauskanava.

Siksi meidän on kytkettävä se pois päältä.

require_ssl_reuse=NO

Jälleen meidän on valittava, mitkä SSL-salaukset VSFTPD sallii salatut SSL-yhteydet ssl_ciphers-vaihtoehdolla. Tämä voi rajoittaa suuresti hyökkääjien pyrkimyksiä pakottaa tietty salaus, jonka he todennäköisesti löysivät haavoittuvuuksista:

ssl_ciphers=HIGH

8. Määritä nyt passiivisten porttien porttialue (min ja max portti).

pasv_min_port=40000
pasv_max_port=50000

9. Salli SSL-virheenkorjaus, mikä tarkoittaa, että openSSL-yhteyden diagnostiikka tallennetaan VSFTPD-lokitiedostoon vaihtoehdolla debug_ssl:

debug_ssl=YES

Tallenna kaikki muutokset ja sulje tiedosto. Käynnistä sitten VSFTPD-palvelu uudelleen:

# systemctl restart vsftpd

Vaihe 3: FTP-palvelimen testaaminen SSL/TLS-yhteyksillä

10. Kun olet suorittanut kaikki yllä olevat määritykset, testaa, käyttääkö VSFTPD SSL/TLS-yhteyksiä yrittämällä käyttää FTP: tä komentoriviltä seuraavasti:

# ftp 192.168.56.10
Connected to 192.168.56.10  (192.168.56.10).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.10:root) : ravi
530 Non-anonymous sessions must use encryption.
Login failed.
421 Service not available, remote server has closed connection
ftp>

Yllä olevasta kuvakaappauksesta voimme nähdä, että on virhe, joka ilmoittaa meille, että VSFTPD voi sallia käyttäjän kirjautua sisään vain asiakkailta, jotka tukevat salauspalveluita.

Komentorivi ei tarjoa salauspalveluita, mikä aiheuttaa virheen. Joten, jotta voimme muodostaa turvallisen yhteyden palvelimeen, tarvitsemme FTP-asiakkaan, joka tukee SSL/TLS-yhteyksiä, kuten FileZilla.

Vaihe 4: Asenna FileZilla muodostaaksesi turvallisen yhteyden FTP-palvelimeen

11. FileZilla on moderni, suosittu ja tärkeätä alustojen välinen FTP-asiakas, joka tukee oletusarvoisesti SSL/TLS-yhteyksiä.

Asenna FileZilla Linuxiin suorittamalla seuraava komento:

--------- On CentOS/RHEL/Fedora --------- 
# yum install epel-release filezilla

--------- On Debian/Ubuntu ---------
$ sudo apt-get install  filezilla   

12. Kun asennus on valmis (tai muuten, jos se on jo asennettu), avaa se ja siirry kohtaan File => Sites Manager tai (paina Ctrl + S ) saadaksesi alla olevan Sivustonhallinta-käyttöliittymän.

Napsauta Uusi sivusto -painiketta lisätäksesi uuden sivuston/isäntäyhteyden tiedot.

13. Seuraavaksi määritä isännän/sivuston nimi, lisää IP-osoite, määritä käytettävä protokolla, salaus ja kirjautumistyyppi kuten alla olevassa kuvakaappauksessa (käytä skenaarioosi soveltuvia arvoja):

Host:  192.168.56.10
Protocol:  FTP – File Transfer Protocol
Encryption:  Require explicit FTP over   #recommended 
Logon Type: Ask for password	        #recommended 
User: username

14. Napsauta sitten Yhdistä salasanan syöttämiseksi uudelleen, vahvista sitten SSL/TLS-yhteydelle käytetty varmenne ja muodosta yhteys FTP-palvelimeen napsauttamalla uudelleen OK :

Tässä vaiheessa meidän olisi pitänyt kirjautua FTP-palvelimeen onnistuneesti TLS-yhteyden kautta, tarkista yhteyden tila -osiosta lisätietoja alla olevasta käyttöliittymästä.

15. Viimeisenä mutta ei vähäisimpänä, yritä siirtää tiedostot paikallisesta koneesta tiedostokansiossa olevaan FTP-katkaisijaan. Katsokaa FileZilla-käyttöliittymän alaosaa katsellaksesi raportteja tiedostojen siirrosta.

Siinä kaikki! Pidä aina mielessä, että FTP ei ole oletusarvoisesti turvallinen, ellemme määritä sitä käyttämään SSL/TLS-yhteyksiä, kuten näytimme sinulle tässä opetusohjelmassa. Jaa ajatuksesi tästä opetusohjelmasta/aiheesta alla olevan palautelomakkeen kautta.