Kuinka suojata FTP-palvelin SSL/TLS:n avulla suojattua tiedostonsiirtoa varten CentOS 7:ssä


Alkuperäisen rakenteensa mukaan FTP (File Transfer Protocol) ei ole suojattu, mikä tarkoittaa, että se ei salaa kahden koneen välillä siirrettävää tietoa sekä käyttäjän tunnistetietoja. Tämä muodostaa valtavan uhan tiedoille ja palvelinturvallisuudelle.

Tässä opetusohjelmassa selitämme, kuinka tietojen 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 turvaamiseksi SSL/TLS-varmenteilla.

Edellytykset:

  1. Sinun on oltava asennettu ja määritetty FTP-palvelin CentOS 7:ssä

Ennen kuin aloitamme, huomaa, että kaikki tämän opetusohjelman komennot suoritetaan root-komennolla. Muussa tapauksessa käytä sudo-komentoa saadaksesi pääkäyttäjän oikeudet, jos et hallitse palvelinta root-tilillä.

Vaihe 1. Luo SSL/TLS-varmenne ja yksityinen avain

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

mkdir /etc/ssl/private

2. Luo sitten vsftpd-varmenne ja avain yhteen tiedostoon suorittamalla alla oleva komento. Tässä on kunkin käytetyn lipun selitys.

  1. req – on komento X.509 Certificate Signing Request (CSR) -hallintaan.
  2. x509 – tarkoittaa X.509-varmennetietojen hallintaa.
  3. päivää – määrittää, kuinka monta päivää varmenne on voimassa.
  4. uusi avain – määrittää varmenneavaimen prosessorin.
  5. rsa:2048 – RSA-avainprosessori, luo 2048-bittisen yksityisen avaimen.
  6. keyout – määrittää avaimen tallennustiedoston.
  7. out – 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ää skenaariaasi 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 suoritamme VSFTPD-määrityksiä, avataan portit 990 ja 40000-50000 salliaksesi TLS-yhteydet ja passiivisten porttien porttialueen määrittämään VSFTPD-määritystiedostossa vastaavasti:

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ä siihen SSL-tiedot:

vi /etc/vsftpd/vsftpd.conf

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

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ä anonyymejä käyttäjiä käyttämästä SSL:ää, sitten pakotettava kaikki ei-anonyymit kirjautumiset käyttämään suojattua SSL-yhteyttä tiedonsiirrossa ja lähettämään salasana sisäänkirjautumisen yhteydessä:

allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

7. Lisäksi voimme lisätä alla olevia vaihtoehtoja FTP-palvelimen suojauksen parantamiseksi. Kun vaihtoehdon require_ssl_reuse arvo on YES, kaikki SSL-datayhteydet vaaditaan SSL-istunnon uudelleenkäytön näyttämiseksi. 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

Meidän on jälleen valittava, mitkä SSL-salaukset VSFTPD sallii salatut SSL-yhteydet ssl_ciphers-vaihtoehdolla. Tämä voi rajoittaa suuresti sellaisten hyökkääjien ponnisteluja, jotka yrittävät pakottaa tiettyyn salaukseen, jonka haavoittuvuuksia he todennäköisesti löysivät:

ssl_ciphers=HIGH

8. Aseta nyt passiivisten porttien porttialue (minimi- ja enimmäisportti).

pasv_min_port=40000
pasv_max_port=50000

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

debug_ssl=YES

Tallenna kaikki muutokset ja sulje tiedosto. Aloitetaan sitten VSFTPD-palvelu uudelleen:

systemctl restart vsftpd

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

10. Kun olet tehnyt 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ä virhe ilmoittaa meille, että VSFTPD voi sallia käyttäjän kirjautumisen vain sellaisista asiakkaista, jotka tukevat salauspalveluita.

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

Vaihe 4: Asenna FileZilla muodostaaksesi suojatun yhteyden FTP-palvelimeen

11. FileZilla on moderni, suosittu ja ennen kaikkea eri alustojen FTP-asiakas, joka tukee oletuksena SSL/TLS-yhteyksiä.

Asenna FileZilla Linuxiin suorittamalla alla oleva komento:

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

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

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

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

13. Aseta seuraavaksi isäntä/sivuston nimi, lisää IP-osoite, määritä käytettävä protokolla, salaus ja kirjautumistyyppi alla olevan kuvakaappauksen mukaisesti (käytä skenaariaasi 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ä syöttääksesi salasanan uudelleen, vahvista sitten SSL/TLS-yhteydessä käytettävä varmenne ja napsauta OK kerran. lisää FTP-palvelimeen yhdistämiseksi:

Tässä vaiheessa meidän olisi pitänyt kirjautua onnistuneesti FTP-palvelimeen 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ää tiedostoja paikalliselta koneelta FTP-palvelimelle tiedostokansiossa. Katso FileZilla-käyttöliittymän alaosa. tiedostojen siirtoja koskevat raportit.

Siinä kaikki! Muista aina, että FTP ei ole oletuksena suojattu, ellemme määritä sitä käyttämään SSL/TLS-yhteyksiä, kuten näimme tässä opetusohjelmassa. Jaa ajatuksesi tästä opetusohjelmasta/aiheesta alla olevan palautelomakkeen kautta.