Nastavitev varnega strežnika FTP s pomočjo SSL/TLS v Ubuntuju


V tej vadnici bomo opisali, kako zaščititi FTP strežnik (VSFTPD pomeni\"Zelo varen FTP Daemon") z uporabo SSL/TLS v Ubuntu 16.04/16.10.

Če želite namestiti varen strežnik FTP za distribucije, ki temeljijo na CentOS, lahko preberete - Zaščita strežnika FTP s pomočjo SSL/TLS na CentOS

Po naslednjih korakih v tem priročniku bomo spoznali osnove omogočanja storitev šifriranja v strežniku FTP za varen prenos podatkov.

  1. V Ubuntuju morate namestiti in konfigurirati strežnik FTP

Preden nadaljujemo, se prepričajte, da se bodo vsi ukazi v tem članku izvajali kot privilegirani račun root ali sudo.

Korak 1: Ustvarjanje potrdila SSL/TLS za FTP v Ubuntuju

1. Začeli bomo z ustvarjanjem podimenika pod:/etc/ssl/za shranjevanje potrdil SSL/TLS in datotek ključev, če ne obstajajo:

$ sudo mkdir /etc/ssl/private

2. Zdaj ustvarimo potrdilo in ključ v eni datoteki, tako da zaženemo spodnji ukaz.

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

Zgornji ukaz vas bo pozval, da odgovorite na spodnja vprašanja, ne pozabite vnesti vrednosti, ki veljajo za vaš scenarij.

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. korak: Konfiguriranje VSFTPD za uporabo SSL/TLS v Ubuntuju

3. Preden izvedemo kakršne koli konfiguracije VSFTPD, morate za tiste, ki imajo omogočen požarni zid UFW, odpreti vrata 990 in 40000-50000, da v konfiguracijski datoteki VSFTPD omogočite nastavitev povezav TLS in obseg vrat pasivnih vrat:

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

4. Zdaj odprite konfiguracijsko datoteko VSFTPD in v njej določite podrobnosti SSL:

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

Nato dodajte ali poiščite možnost ssl_enable in nastavite njeno vrednost na DA, da spet aktivirate uporabo SSL, ker je TLS varnejši od SSL, bomo VSFTPD omejili uporabo TLS, tako da omogočimo ssl_tlsv1 možnost:

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

5. Nato spodnje vrstice komentirajte z znakom # , kot sledi:

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

Nato dodajte spodnje vrstice, da določite lokacijo potrdila SSL in datoteke ključa:

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

6. Zdaj moramo tudi anonimnim uporabnikom preprečiti uporabo SSL, nato pa prisiliti vse neanonimne prijave k uporabi varne SSL povezave za prenos podatkov in pošiljanje gesla med prijavo:

allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

7. Poleg tega lahko s spodnjimi možnostmi dodamo več varnostnih funkcij v strežnik FTP. Z možnostjo require_ssl_reuse = YES so vse podatkovne povezave SSL potrebne za prikaz ponovne uporabe seje SSL; dokazujejo, da poznajo isto glavno skrivnost kot nadzorni kanal. Torej bi ga morali onemogočiti.

require_ssl_reuse=NO

Poleg tega lahko z možnostjo ssl_ciphers nastavimo, katere šifre SSL bo VSFTPD dovolil za šifrirane SSL povezave. To bo pomagalo onemogočiti vsa prizadevanja napadalcev, ki poskušajo vsiliti določeno šifro, v kateri so morda odkrili ranljivosti:

ssl_ciphers=HIGH

8. Nato določimo obseg vrat (najmanjša in največja vrata) pasivnih vrat.

pasv_min_port=40000
pasv_max_port=50000

9. Če želimo omogočiti odpravljanje napak SSL, kar pomeni, da se diagnostika povezave openSSL beleži v datoteko dnevnika VSFTPD, lahko uporabimo možnost debug_ssl :

debug_ssl=YES

Končno shranite datoteko in jo zaprite. Nato znova zaženite storitev VSFTPD:

$ systemctl restart vsftpd

3. korak: Preverite FTP s povezavami SSL/TLS v Ubuntuju

10. Po izvedbi vseh zgornjih konfiguracij preizkusite, ali VSFTPD zdaj uporablja povezave SSL/TLS, tako da poskusite uporabiti FTP iz ukazne vrstice, kot je prikazano spodaj.

Iz spodnjega izhoda je prikazano sporočilo o napaki, ki nam sporoča, da lahko VSFTPD dovoli prijavo samo uporabnikom (neanonimnim) iz varnih odjemalcev, ki podpirajo storitve šifriranja.

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

Ukazna vrstica ne podpira storitev šifriranja, zato je prišlo do zgornje napake. Za varno povezavo s strežnikom FTP z omogočenimi storitvami šifriranja potrebujemo odjemalca FTP, ki privzeto podpira povezave SSL/TLS, na primer FileZilla.

4. korak: Namestite FileZilla On Clients za varno povezavo FTP

FileZilla je zmogljiv, pogosto uporabljen FTP odjemalec z več platformami, ki podpira FTP prek SSL/TLS in več. Če želite namestiti FileZilla na odjemalski računalnik Linux, uporabite naslednji ukaz.

--------- 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. Ko se namestitev konča, jo odprite in pojdite na File => Sites Manager ali (pritisnite Ctrl + S), da dobite spodnji vmesnik Site Manager.

13. Zdaj določite ime gostitelja/spletnega mesta, dodajte naslov IP, določite protokol za uporabo, šifriranje in vrsto prijave kot na spodnjem posnetku zaslona (uporabite vrednosti, ki veljajo za vaš scenarij):

Kliknite gumb Novo spletno mesto, da konfigurirate novo povezavo spletnega mesta/gostitelja.

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. Nato v zgornjem vmesniku kliknite Poveži, da vnesete geslo, nato preverite potrdilo, ki se uporablja za povezavo SSL/TLS, in še enkrat kliknite V redu, da se povežete s strežnikom FTP:

15. Zdaj bi se morali uspešno prijaviti v strežnik FTP prek povezave TLS, za več informacij v spodnjem vmesniku poglejte v razdelek o stanju povezave.

16. Na koncu prenesite datoteke iz lokalnega računalnika na FTP sever v mapi z datotekami, poglejte si spodnji del vmesnika FileZilla in si oglejte poročila o prenosih datotek.

To je vse! Vedno si zapomnite, da ima namestitev strežnika FTP brez omogočanja šifriranja določene varnostne posledice. Kot smo pojasnili v tej vadnici, lahko strežnik FTP konfigurirate za uporabo povezav SSL/TLS za izvajanje varnosti v Ubuntu 16.04/16.10.

Če imate kakršne koli težave pri nastavitvi SSL/TLS na strežniku FTP, uporabite spodnji obrazec za komentar, da delite svoje težave ali razmišljanja o tej vadnici/temi.