Kā nodrošināt FTP serveri, izmantojot SSL/TLS drošai failu pārsūtīšanai CentOS 7


Sākotnēji FTP (failu pārsūtīšanas protokols) nav drošs, tas nozīmē, ka tas nešifrē datus, kas tiek pārsūtīti starp divām mašīnām, kā arī lietotāja akreditācijas datus. Tas rada milzīgus draudus datiem, kā arī serveru drošībai.

Šajā apmācībā mēs paskaidrosim, kā manuāli iespējot datu šifrēšanas pakalpojumus FTP serverī CentOS/RHEL 7 un Fedora; mēs veiksim dažādus VSFTPD (Very Secure FTP Daemon) pakalpojumu nodrošināšanas pasākumus, izmantojot SSL/TLS sertifikātus.

  1. CentOS 7 sistēmā jābūt instalētam un konfigurētam FTP serveri

Pirms sākam, ņemiet vērā, ka visas šīs apmācības komandas tiks palaistas kā root, pretējā gadījumā izmantojiet komandu sudo, lai iegūtu root tiesības, ja jūs nekontrolējat serveri, izmantojot root kontu.

1. solis. SSL/TLS sertifikāta un privātās atslēgas ģenerēšana

1. Mums jāsāk, izveidojot apakšdirektoriju sadaļā /etc/ssl/, kur mēs glabāsim SSL/TLS sertifikātu un atslēgu failus:

# mkdir /etc/ssl/private

2. Pēc tam palaidiet zemāk esošo komandu, lai izveidotu vsftpd sertifikātu un atslēgu vienā failā, šeit ir katra izmantotā karoga skaidrojums.

  1. req - ir komanda X.509 sertifikāta parakstīšanas pieprasījuma (CSR) pārvaldībai.
  2. x509 - nozīmē X.509 sertifikāta datu pārvaldību.
  3. dienas - nosaka dienu skaitu, kurā sertifikāts ir derīgs.
  4. newkey - norāda sertifikāta atslēgu procesoru.
  5. rsa: 2048 - RSA atslēgu procesors, ģenerēs 2048 bitu privāto atslēgu.
  6. keyout - nosaka atslēgas krātuves failu.
  7. out - iestata sertifikātu krātuves failu, ņemiet vērā, ka gan sertifikāts, gan atslēga tiek glabāti vienā failā: /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

Iepriekš minētā komanda lūgs jums atbildēt uz tālāk minētajiem jautājumiem, neaizmirstiet izmantot vērtības, kas attiecas uz jūsu scenāriju.

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 

2. solis. VSFTPD konfigurēšana, lai izmantotu SSL/TLS

3. Pirms veicam jebkādas VSFTPD konfigurācijas, atveriet porti 990 un 40000-50000, lai ļautu TLS savienojumiem un pasīvo portu porta diapazonam definēt attiecīgi VSFTPD konfigurācijas failā:

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

4. Tagad atveriet konfigurācijas failu VSFTPD un norādiet tajā SSL informāciju:

# vi /etc/vsftpd/vsftpd.conf

Lai aktivizētu SSL izmantošanu, meklējiet opciju ssl_enable un iestatiet tās vērtību uz YES , turklāt, tā kā TSL ir drošāka nekā SSL, mēs ierobežosim VSFTPD izmantot TLS, izmantojot opciju ssl_tlsv1_2:

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

5. Pēc tam pievienojiet zemāk redzamās rindas, lai noteiktu SSL sertifikāta un atslēgas faila atrašanās vietu:

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

6. Pēc tam mums ir jānovērš anonīmiem lietotājiem izmantot SSL, pēc tam visiem anonīmiem pieteikšanās gadījumiem jāpiespiež datu pārsūtīšanai izmantot drošu SSL savienojumu un pieteikšanās laikā nosūtīt paroli:

allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

7. Turklāt mēs varam pievienot tālāk norādītās opcijas, lai uzlabotu FTP servera drošību. Ja opcija need_ssl_reuse ir iestatīta uz YES , tad visi SSL datu savienojumi ir nepieciešami, lai parādītu SSL sesiju atkārtotu izmantošanu; pierādot, ka viņi zina tādu pašu galveno noslēpumu kā vadības kanāls.

Tāpēc mums tas ir jāizslēdz.

require_ssl_reuse=NO

Atkal mums jāizvēlas, kurus SSL šifrus VSFTPD ļaus šifrētiem SSL savienojumiem ar opciju ssl_ciphers. Tas var ievērojami ierobežot to uzbrucēju centienus, kuri mēģina piespiest konkrētu šifru, kurā viņi, iespējams, atklāja ievainojamības:

ssl_ciphers=HIGH

8. Tagad iestatiet pasīvo portu porta diapazonu (min un max ports).

pasv_min_port=40000
pasv_max_port=50000

9. Pēc izvēles atļaut SSL atkļūdošanu, tas nozīmē, ka openSSL savienojuma diagnostika tiek ierakstīta VSFTPD žurnāla failā ar opciju debug_ssl:

debug_ssl=YES

Saglabājiet visas izmaiņas un aizveriet failu. Pēc tam restartēsim VSFTPD pakalpojumu:

# systemctl restart vsftpd

3. darbība: FTP servera pārbaude ar SSL/TLS savienojumiem

10. Pēc visu iepriekš minēto konfigurāciju veikšanas pārbaudiet, vai VSFTPD izmanto SSL/TLS savienojumus, mēģinot FTP no komandrindas izmantot šādi:

# 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>

Iepriekš redzamajā ekrānuzņēmumā mēs varam redzēt, ka pastāv kļūda, informējot mūs, ka VSFTPD var atļaut lietotājam pieteikties tikai no klientiem, kuri atbalsta šifrēšanas pakalpojumus.

Komandrinda nepiedāvā šifrēšanas pakalpojumus, tādējādi radot kļūdu. Tātad, lai droši izveidotu savienojumu ar serveri, mums ir nepieciešams FTP klients, kas atbalsta SSL/TLS savienojumus, piemēram, FileZilla.

4. solis: instalējiet FileZilla, lai droši izveidotu savienojumu ar FTP serveri

11. FileZilla ir moderns, populārs un svarīgi starpplatformu FTP klients, kas pēc noklusējuma atbalsta SSL/TLS savienojumus.

Lai instalētu FileZilla Linux, palaidiet zemāk esošo komandu:

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

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

12. Kad instalēšana ir pabeigta (vai arī, ja tā jau ir instalēta), atveriet to un dodieties uz File => Sites Manager vai (nospiediet Ctrl + S ), lai iegūtu vietnes pārvaldnieka saskarni zemāk.

Noklikšķiniet uz pogas Jauna vietne, lai pievienotu jaunu vietnes/resursdatora savienojuma informāciju.

13. Pēc tam iestatiet resursdatora/vietnes nosaukumu, pievienojiet IP adresi, definējiet izmantojamo protokolu, šifrēšanu un pieteikšanās veidu, kā parādīts zemāk esošajā ekrānuzņēmumā (izmantojiet vērtības, kas attiecas uz jūsu scenāriju):

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. Pēc tam noklikšķiniet uz Connect, lai vēlreiz ievadītu paroli, pēc tam pārbaudiet sertifikātu, kas tiek izmantots SSL/TLS savienojumam, un vēlreiz noklikšķiniet uz OK , lai izveidotu savienojumu ar FTP serveri:

Šajā posmā mums vajadzēja veiksmīgi pieteikties FTP serverī, izmantojot TLS savienojumu, pārbaudiet savienojuma statusa sadaļu, lai iegūtu papildinformāciju no tālāk redzamās saskarnes.

15. Visbeidzot, mēģiniet pārsūtīt failus no lokālās mašīnas uz FTP faila mapi faili, ieskatieties FileZilla saskarnes apakšējā galā, lai skatītu pārskatus par failu pārsūtīšanu.

Tas ir viss! Vienmēr paturiet prātā, ka FTP pēc noklusējuma nav drošs, ja vien mēs to nekonfigurējam izmantot SSL/TLS savienojumus, kā parādījām jums šajā apmācībā. Dalieties savās domās par šo apmācību/tēmu, izmantojot tālāk sniegto atsauksmju veidlapu.