Droša FTP servera iestatīšana, izmantojot SSL/TLS Ubuntu


Šajā apmācībā mēs aprakstīsim, kā nodrošināt FTP serveri (VSFTPD nozīmē “Ļoti drošs FTP dēmons”), izmantojot SSL/TLS Ubuntu 16.04/16.10.

Ja vēlaties iestatīt drošu FTP serveri izplatīšanai uz CentOS, varat izlasīt - FTP servera drošība, izmantojot SSL/TLS vietnē CentOS

Pēc dažādu šajā rokasgrāmatā norādīto darbību veikšanas mēs būsim iemācījušies pamatprincipus, kā drošai datu pārsūtīšanai FTP serverī iespējot šifrēšanas pakalpojumus.

  1. Ubuntu jāinstalē un jākonfigurē FTP serveris

Pirms mēs virzāmies tālāk, pārliecinieties, vai visas šī raksta komandas tiks palaistas kā root vai sudo privileģēts konts.

1. solis: SSL/TLS sertifikāta ģenerēšana FTP Ubuntu

1. Sākumā izveidosim apakšdirektoriju sadaļā:/etc/ssl /, lai saglabātu SSL/TLS sertifikātu un atslēgu failus, ja tāda nav:

$ sudo mkdir /etc/ssl/private

2. Tagad ģenerēsim sertifikātu un atslēgu vienā failā, izpildot zemāk esošo komandu.

$ sudo 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 liks jums atbildēt uz tālāk sniegtajiem jautājumiem, neaizmirstiet ievadīt vērtības, kas piemērojamas jūsu scenārijam.

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 Ubuntu izmantotu SSL/TLS

3. Pirms mēs veicam jebkādas VSFTPD konfigurācijas, tiem, kuriem ir iespējots UFW ugunsmūris, jums ir jāatver porti 990 un 40000-50000, lai ļautu TLS savienojumiem un pasīvo portu porta diapazonam iestatīt attiecīgi VSFTPD konfigurācijas failā:

$ sudo ufw allow 990/tcp
$ sudo ufw allow 40000:50000/tcp
$ sudo ufw status

4. Tagad atveriet konfigurācijas failu VSFTPD un definējiet tajā SSL informāciju:

$ sudo vi /etc/vsftpd/vsftpd.conf
OR
$ sudo nano /etc/vsftpd/vsftpd.conf

Pēc tam pievienojiet vai atrodiet opciju ssl_enable un iestatiet tā vērtību YES, lai aktivizētu SSL lietošanu, atkal, tā kā TLS ir drošāka nekā SSL, mēs ierobežosim VSFTPD izmantot TLS, iespējojot Opcija ssl_tlsv1 :

ssl_enable=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

5. Pēc tam komentējiet zemāk redzamās rindas, izmantojot rakstzīmi # šādi:

#rsa_cert_file=/etc/ssl/private/ssl-cert-snakeoil.pem
#rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

Pēc tam pievienojiet zemāk esošā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. Tagad mums ir jānovērš arī 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 izmantot tālāk norādītās opcijas, lai FTP serverī pievienotu vairāk drošības funkciju. Izmantojot opciju need_ssl_reuse = YES , 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ātad, mums tas būtu jāatspējo.

require_ssl_reuse=NO

Turklāt mēs varam iestatīt, kurus SSL šifrus VSFTPD atļaus šifrētiem SSL savienojumiem, izmantojot opciju ssl_ciphers . Tas palīdzēs izjaukt visus uzbrucēju centienus, kuri mēģina piespiest īpašu šifru, kurā, iespējams, atklāja ievainojamību:

ssl_ciphers=HIGH

8. Pēc tam definēsim pasīvo portu porta diapazonu (min un max ports).

pasv_min_port=40000
pasv_max_port=50000

9. Lai iespējotu SSL atkļūdošanu, kas nozīmē, ka openSL savienojuma diagnostika tiek ierakstīta VSFTPD žurnāla failā, mēs varam izmantot opciju debug_ssl :

debug_ssl=YES

Visbeidzot saglabājiet failu un aizveriet to. Pēc tam restartējiet VSFTPD pakalpojumu:

$ systemctl restart vsftpd

3. solis: Pārbaudiet FTP ar SSL/TLS savienojumiem Ubuntu

10. Pēc visu iepriekš minēto konfigurāciju veikšanas pārbaudiet, vai VSFTPD tagad izmanto SSL/TLS savienojumus, mēģinot izmantot FTP no komandrindas, kā norādīts zemāk.

Zemāk redzamajā izvadā ir kļūdas ziņojums, kurā teikts, ka VSFTPD var atļaut lietotājiem (ne anonīmiem) pieteikties tikai no drošiem klientiem, kuri atbalsta šifrēšanas pakalpojumus.

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

Komandrinda neatbalsta šifrēšanas pakalpojumus, tādējādi radot kļūdu iepriekš. Tāpēc, lai droši izveidotu savienojumu ar FTP serveri ar iespējotiem šifrēšanas pakalpojumiem, mums ir nepieciešams FTP klients, kas pēc noklusējuma atbalsta SSL/TLS savienojumus, piemēram, FileZilla.

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

FileZilla ir spēcīgs, plaši izmantots starpplatformu FTP klients, kas atbalsta FTP, izmantojot SSL/TLS un daudz ko citu. Lai instalētu FileZilla Linux klienta mašīnā, izmantojiet šo komandu.

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

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

--------- On Fedora 22+ --------- 
$ sudo dnf install filezilla

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

13. Tagad definējiet 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):

Noklikšķiniet uz pogas Jauna vietne, lai konfigurētu jaunu vietnes/resursdatora savienojumu.

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 Savienot no iepriekš minētā interfeisa, lai ievadītu paroli, un pēc tam pārbaudiet sertifikātu, kas tiek izmantots SSL/TLS savienojumam, un vēlreiz noklikšķiniet uz Labi, lai izveidotu savienojumu ar FTP serveri:

15. Tagad jums vajadzētu būt veiksmīgi pieteicies FTP serverī, izmantojot TLS savienojumu, pārbaudiet savienojuma statusa sadaļu, lai iegūtu papildinformāciju no tālāk redzamās saskarnes.

16. Visbeidzot, pārsūtīsim 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 atcerieties, ka FTP servera instalēšanai, neļaujot šifrēšanas pakalpojumiem, ir noteikta drošība. Kā mēs paskaidrojām šajā apmācībā, FTP serveri var konfigurēt tā, lai tas izmantotu SSL/TLS savienojumus, lai ieviestu drošību Ubuntu 16.04/16.10.

Ja rodas problēmas ar SSL/TLS iestatīšanu FTP serverī, izmantojiet zemāk esošo komentāru veidlapu, lai dalītos savās problēmās vai domās par šo apmācību/tēmu.