Giunsa Pag-secure ang usa ka FTP Server Gamit ang SSL/TLS alang sa Secure File Transfer sa CentOS 7


Pinaagi sa orihinal nga disenyo niini, ang FTP (File Transfer Protocol) dili luwas, nagpasabot nga wala kini mag-encrypt sa datos nga gipasa sa taliwala sa duha ka makina, uban sa mga kredensyal sa tiggamit. Naghatag kini usa ka dako nga hulga sa datos ingon man ang seguridad sa server.

Sa kini nga panudlo, among ipasabut kung giunsa ang pag-enable sa mga serbisyo sa pag-encrypt sa data sa usa ka FTP server sa CentOS/RHEL 7 ug Fedora; moagi kami sa lain-laing mga lakang sa pagsiguro sa VSFTPD (Very Secure FTP Daemon) nga mga serbisyo gamit ang SSL/TLS certificates.

  1. Kinahanglan naka-install ug naka-configure ka og FTP server sa CentOS 7

Sa dili pa kita magsugod, timan-i nga ang tanan nga mga sugo niini nga panudlo ipadagan ingon nga gamut, kung dili, gamita ang sudo nga sugo aron makaangkon og mga pribilehiyo sa gamut kung dili nimo makontrol ang server gamit ang root account.

Lakang 1. Paghimo og SSL/TLS Certificate ug Private Key

1. Kinahanglan natong sugdan pinaagi sa pagmugna og subdirectory ubos sa: /etc/ssl/ diin atong tipigan ang SSL/TLS certificate ug key files:

# mkdir /etc/ssl/private

2. Unya padagana ang sugo sa ubos sa paghimo sa sertipiko ug yawe alang sa vsftpd sa usa ka file, ania ang katin-awan sa matag bandila nga gigamit.

  1. req – usa ka sugo alang sa pagdumala sa X.509 Certificate Signing Request (CSR).
  2. x509 – nagpasabot X.509 certificate data management.
  3. mga adlaw – naghubit sa gidaghanon sa mga adlaw nga balido ang sertipiko.
  4. newkey – nagpiho sa certificate key processor.
  5. rsa:2048 – RSA key processor, makamugna ug 2048 bit private key.
  6. keyout – nagtakda sa key storage file.
  7. out – nagtakda sa certificate storage file, timan-i nga ang certificate ug key gitipigan sa samang file: /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

Ang sugo sa ibabaw mangutana kanimo sa pagtubag sa mga pangutana sa ubos, hinumdumi nga gamiton ang mga mithi nga magamit sa imong senaryo.

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 

Lakang 2. Pag-configure sa VSFTPD Aron Gamiton ang SSL/TLS

3. Sa dili pa kita mobuhat sa bisan unsa nga VSFTPD configurations, atong ablihan ang mga ports 990 ug 40000-50000 aron tugotan ang TLS connections ug ang port range sa passive ports sa pag-define sa VSFTPD configuration file matag usa:

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

4. Karon, ablihi ang VSFTPD config file ug ipiho ang mga detalye sa SSL niini:

# vi /etc/vsftpd/vsftpd.conf

Pangitaa ang opsyon nga ssl_enable ug ibutang ang bili niini sa OO aron ma-activate ang paggamit sa SSL, dugang pa, tungod kay ang TSL mas luwas kay sa SSL, among higpitan ang VSFTPD sa paggamit sa TLS, gamit ang ssl_tlsv1_2 nga opsyon:

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

5. Dayon, idugang ang mga linya sa ubos aron matino ang nahimutangan sa SSL certificate ug key file:

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

6. Sunod, kinahanglan natong pugngan ang mga anonymous nga tiggamit sa paggamit sa SSL, unya pugson ang tanang dili-anonymous nga mga logins sa paggamit sa luwas nga koneksyon sa SSL alang sa pagbalhin sa datos ug sa pagpadala sa password atol sa pag-login:

allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

7. Dugang pa, mahimo natong idugang ang mga opsyon sa ubos aron mapataas ang seguridad sa FTP server. Kung ang opsyon nga require_ssl_reuse gibutang sa OO, nan, ang tanang koneksyon sa data sa SSL gikinahanglan aron ipakita ang SSL session sa paggamit pag-usab; nagpamatuod nga nahibal-an nila ang parehas nga master secret sama sa control channel.

Busa, kinahanglan natong i-off kini.

require_ssl_reuse=NO

Sa makausa pa, kinahanglan natong pilion kung unsang mga SSL cipher ang tugotan sa VSFTPD alang sa mga naka-encrypt nga koneksyon sa SSL gamit ang kapilian nga ssl_ciphers. Mahimong limitahan niini pag-ayo ang mga paningkamot sa mga tig-atake nga mosulay sa pagpugos sa usa ka partikular nga cipher nga lagmit nakadiskubre sila og mga kahuyangan sa:

ssl_ciphers=HIGH

8. Karon, ibutang ang port range (min ug max port) sa mga passive port.

pasv_min_port=40000
pasv_max_port=50000

9. Opsyonal, tugoti ang pag-debug sa SSL, nagpasabut nga ang mga diagnostic sa koneksyon sa openSSL natala sa VSFTPD log file nga adunay kapilian nga debug_ssl:

debug_ssl=YES

I-save ang tanan nga mga pagbag-o ug isira ang file. Dayon atong i-restart ang serbisyo sa VSFTPD:

# systemctl restart vsftpd

Lakang 3: Pagsulay sa FTP server Uban sa SSL/TLS Connections

10. Human sa pagbuhat sa tanan sa ibabaw nga mga configuration, sulayi kon ang VSFTPD naggamit sa SSL/TLS koneksyon pinaagi sa pagsulay sa paggamit sa FTP gikan sa command line sama sa mosunod:

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

Gikan sa screen shot sa ibabaw, atong makita nga adunay usa ka sayup nga nagpahibalo kanamo nga ang VSFTPD mahimo ra nga magtugot sa user nga mag-login gikan sa mga kliyente nga nagsuporta sa mga serbisyo sa pag-encrypt.

Ang command line wala magtanyag sa mga serbisyo sa pag-encrypt sa ingon naghimo sa sayup. Mao nga, aron luwas nga makonektar sa server, kinahanglan namon ang usa ka kliyente sa FTP nga nagsuporta sa mga koneksyon sa SSL/TLS sama sa FileZilla.

Lakang 4: I-install ang FileZilla aron Luwas nga Sumpaysumpaya sa usa ka FTP Server

11. Ang FileZilla usa ka moderno, popular ug importante nga cross-platform FTP nga kliyente nga nagsuporta sa SSL/TLS nga mga koneksyon sa default.

Aron ma-install ang FileZilla sa Linux, padagana ang command sa ubos:

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

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

12. Kung makompleto na ang instalasyon (o kung na-install na nimo kini), ablihi kini ug adto sa File => Sites Manager o (press Ctrl+S) para makuha ang Site Manager interface sa ubos.

Pag-klik sa Bag-ong Site nga buton aron makadugang usa ka bag-ong mga detalye sa koneksyon sa site/host.

13. Sunod, i-set ang host/site name, idugang ang IP address, i-define ang protocol nga gamiton, encryption ug logon type sama sa screen shot sa ubos (gamita ang mga values nga magamit sa imong scenario):

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. Dayon i-klik ang Connect aron masulod pag-usab ang password, ug dayon i-verify ang certificate nga gigamit para sa SSL/TLS connection ug i-klik ang OK sa makausa pa aron makonektar sa FTP server:

Niini nga yugto, kita kinahanglan nga malampuson nga naka-log in sa FTP server sa usa ka koneksyon sa TLS, susiha ang seksyon sa status sa koneksyon alang sa dugang nga impormasyon gikan sa interface sa ubos.

15. Katapusan apan dili labing gamay, sulayi pagbalhin ang mga file gikan sa lokal nga makina ngadto sa FTP sever sa folder sa mga file, tan-awa ang ubos nga tumoy sa interface sa FileZilla aron makita ang mga taho bahin sa mga pagbalhin sa file.

Kana lang! Hinumdumi kanunay nga ang FTP dili luwas pinaagi sa default, gawas kung among i-configure kini aron magamit ang mga koneksyon sa SSL/TLS sama sa among gipakita kanimo sa kini nga panudlo. Ipakigbahin ang imong mga hunahuna bahin sa kini nga panudlo/hilisgutan pinaagi sa porma sa feedback sa ubos.