Jinsi ya Kulinda Seva ya FTP Kwa Kutumia SSL/TLS kwa Uhamisho Salama wa Faili katika CentOS 7


Kwa muundo wake wa asili, FTP (Itifaki ya Uhamishaji Faili) si salama, kumaanisha kuwa haisimbaji kwa njia fiche data inayotumwa kati ya mashine mbili, pamoja na kitambulisho cha mtumiaji. Hii inaleta tishio kubwa kwa data na usalama wa seva.

Katika somo hili, tutaeleza jinsi ya kuwezesha huduma za usimbaji data kwa mikono katika seva ya FTP katika CentOS/RHEL 7 na Fedora; tutapitia hatua mbalimbali za kupata huduma za VSFTPD (Secure FTP Daemon) kwa kutumia vyeti vya SSL/TLS.

  1. Lazima uwe umesakinisha na kusanidi seva ya FTP katika CentOS 7

Kabla ya kuanza, kumbuka kuwa amri zote katika mafunzo haya zitaendeshwa kama mzizi, vinginevyo, tumia amri ya sudo kupata haki za mizizi ikiwa haudhibiti seva kwa kutumia akaunti ya mizizi.

Hatua ya 1. Kuzalisha Cheti cha SSL/TLS na Ufunguo wa Faragha

1. Tunahitaji kuanza kwa kuunda saraka chini ya: /etc/ssl/ ambapo tutahifadhi cheti cha SSL/TLS na faili muhimu:

# mkdir /etc/ssl/private

2. Kisha endesha amri hapa chini ili kuunda cheti na ufunguo wa vsftpd katika faili moja, hapa kuna maelezo ya kila bendera inayotumiwa.

  1. req - ni amri kwa usimamizi wa Ombi la Kusaini Cheti cha X.509 (CSR).
  2. x509 - inamaanisha udhibiti wa data wa cheti cha X.509.
  3. siku - inafafanua idadi ya siku cheti ni halali.
  4. ufunguo mpya - hubainisha kichakataji cha ufunguo wa cheti.
  5. rsa:2048 - Kichakataji cha vitufe vya RSA, kitatengeneza ufunguo wa faragha wa biti 2048.
  6. keyout - huweka faili muhimu ya kuhifadhi.
  7. nje - huweka faili ya hifadhi ya cheti, kumbuka kuwa cheti na ufunguo vyote vimehifadhiwa katika faili moja: /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

Amri iliyo hapo juu itakuuliza ujibu maswali hapa chini, kumbuka kutumia maadili ambayo yanatumika kwa hali yako.

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 

Hatua ya 2. Kusanidi VSFTPD Ili Kutumia SSL/TLS

3. Kabla hatujatekeleza usanidi wowote wa VSFTPD, hebu tufungue milango 990 na 40000-50000 ili kuruhusu miunganisho ya TLS na safu ya mlango wa mlango tuliotumwa kufafanua katika faili ya usanidi ya VSFTPD mtawalia:

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

4. Sasa, fungua faili ya usanidi ya VSFTPD na ubainishe maelezo ya SSL ndani yake:

# vi /etc/vsftpd/vsftpd.conf

Tafuta chaguo ssl_enable na uweke thamani yake kuwa NDIYO ili kuwezesha matumizi ya SSL, kwa kuongeza, kwa kuwa TSL ni salama zaidi kuliko SSL, tutazuia VSFTPD kuajiri TLS badala yake, kwa kutumia chaguo la ssl_tlsv1_2:

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

5. Kisha, ongeza mistari iliyo hapa chini ili kufafanua eneo la cheti cha SSL na faili muhimu:

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

6. Kisha, tunapaswa kuzuia watumiaji wasiojulikana kutumia SSL, kisha tuwalazimishe watu wote walioingia bila majina kutumia muunganisho salama wa SSL kwa uhamisho wa data na kutuma nenosiri wakati wa kuingia:

allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

7. Kwa kuongeza, tunaweza kuongeza chaguo hapa chini ili kuimarisha usalama wa seva ya FTP. Wakati chaguo require_ssl_reuse imewekwa kuwa YES, basi, miunganisho yote ya data ya SSL inahitajika ili kuonyesha utumiaji wa kipindi cha SSL; kuthibitisha kuwa wanajua siri kuu sawa na njia ya kudhibiti.

Kwa hiyo, tunapaswa kuizima.

require_ssl_reuse=NO

Tena, tunahitaji kuchagua ni misimbo ipi ya SSL VSFTPD itaruhusu kwa miunganisho iliyosimbwa ya SSL na chaguo la ssl_ciphers. Hili linaweza kupunguza sana juhudi za wavamizi wanaojaribu kulazimisha misimbo fulani ambayo pengine waligundua udhaifu ndani yake:

ssl_ciphers=HIGH

8. Sasa, weka safu ya bandari (min na max port) ya bandari tulizoziweka.

pasv_min_port=40000
pasv_max_port=50000

9. Kwa hiari, ruhusu utatuzi wa SSL, kumaanisha kuwa uchunguzi wa muunganisho wa OpenSSL unarekodiwa kwenye faili ya kumbukumbu ya VSFTPD kwa chaguo la debug_ssl:

debug_ssl=YES

Hifadhi mabadiliko yote na funga faili. Kisha wacha tuanze tena huduma ya VSFTPD:

# systemctl restart vsftpd

Hatua ya 3: Kujaribu seva ya FTP Kwa Viunganisho vya SSL/TLS

10. Baada ya kufanya usanidi wote hapo juu, jaribu ikiwa VSFTPD inatumia miunganisho ya SSL/TLS kwa kujaribu kutumia FTP kutoka kwa safu ya amri kama ifuatavyo:

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

Kutoka kwenye picha ya skrini iliyo hapo juu, tunaweza kuona kwamba kuna hitilafu ya kutufahamisha kwamba VSFTPD inaweza tu kuruhusu mtumiaji kuingia kutoka kwa wateja wanaotumia huduma za usimbaji fiche.

Mstari wa amri haitoi huduma za usimbaji fiche hivyo kutoa hitilafu. Kwa hivyo, ili kuunganisha kwa seva kwa usalama, tunahitaji mteja wa FTP anayetumia miunganisho ya SSL/TLS kama vile FileZilla.

Hatua ya 4: Sakinisha FileZilla ili Kuunganisha kwa Usalama kwa Seva ya FTP

11. FileZilla ni mteja wa kisasa, maarufu na muhimu sana wa mfumo mtambuka wa FTP unaoauni miunganisho ya SSL/TLS kwa chaguomsingi.

Ili kusakinisha FileZilla kwenye Linux, endesha amri hapa chini:

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

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

12. Wakati usakinishaji unapokamilika (au sivyo ikiwa tayari umesakinisha), ifungue na uende kwa File=>Kidhibiti cha Tovuti au (bonyeza Ctrl+S) ili kupata kiolesura cha Kidhibiti Tovuti hapa chini.

Bofya kitufe cha Tovuti Mpya ili kuongeza maelezo mapya ya muunganisho wa tovuti/mwenyeji.

13. Kisha, weka jina la mwenyeji/tovuti, ongeza anwani ya IP, fafanua itifaki ya kutumia, usimbaji fiche na aina ya nembo kama ilivyo kwenye skrini iliyo hapa chini (tumia maadili yanayotumika kwa hali yako):

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. Kisha ubofye Unganisha ili kuingiza nenosiri tena, na kisha uthibitishe cheti kinachotumika kwa muunganisho wa SSL/TLS na ubofye Sawa mara nyingine tena ili kuunganisha kwenye seva ya FTP:

Katika hatua hii, tunapaswa kuwa tumeingia kwa mafanikio kwenye seva ya FTP kupitia muunganisho wa TLS, angalia sehemu ya hali ya muunganisho kwa maelezo zaidi kutoka kwa kiolesura kilicho hapa chini.

15. Mwisho lakini sio uchache, jaribu kuhamisha faili kutoka kwa mashine ya ndani hadi kwa seva ya FTP kwenye folda ya faili, angalia mwisho wa chini wa kiolesura cha FileZilla ili kuona ripoti kuhusu uhamisho wa faili.

Ni hayo tu! Daima kumbuka kuwa FTP si salama kwa chaguo-msingi, isipokuwa tukiisanidi ili kutumia miunganisho ya SSL/TLS kama tulivyokuonyesha kwenye somo hili. Shiriki mawazo yako kuhusu somo/mada hii kupitia fomu ya maoni iliyo hapa chini.