Kuweka Seva Salama ya FTP kwa kutumia SSL/TLS kwenye Ubuntu


Katika somo hili, tutaeleza jinsi ya kupata seva ya FTP (VSFTPD inamaanisha \Salama Sana ya FTP Daemon) kwa kutumia SSL/TLS katika Ubuntu 16.04/16.10.

Ikiwa unatafuta kusanidi seva salama ya FTP kwa usambazaji wa msingi wa CentOS, unaweza kusoma - Linda Seva ya FTP Kwa Kutumia SSL/TLS kwenye CentOS

Baada ya kufuata hatua mbalimbali katika mwongozo huu, tutakuwa tumejifunza misingi ya kuwezesha huduma za usimbaji fiche katika seva ya FTP kwa ajili ya uhamisho salama wa data ni muhimu.

  1. Lazima Usakinishe na Usanidi Seva ya FTP katika Ubuntu

Kabla hatujasonga mbele, hakikisha kwamba amri zote katika makala hii zitaendeshwa kama mzizi au akaunti ya upendeleo ya sudo.

Hatua ya 1: Kuzalisha Cheti cha SSL/TLS kwa FTP kwenye Ubuntu

1. Tutaanza kwa kuunda saraka chini ya: /etc/ssl/ ili kuhifadhi cheti cha SSL/TLS na faili muhimu ikiwa haipo:

$ sudo mkdir /etc/ssl/private

2. Sasa hebu tuzalishe cheti na ufunguo katika faili moja, kwa kuendesha amri hapa chini.

$ sudo 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 itakuhimiza kujibu maswali yaliyo hapa chini, usisahau kuingiza maadili yanayotumika 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 kutumia SSL/TLS kwenye Ubuntu

3. Kabla hatujatekeleza usanidi wowote wa VSFTPD, kwa wale ambao umewasha ngome ya UFW, inabidi ufungue milango 990 na 40000-50000 ili kuruhusu miunganisho ya TLS na safu ya mlango wa milango mingineyo kuweka katika faili ya usanidi ya VSFTPD mtawalia:

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

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

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

Kisha, ongeza au tafuta chaguo la ssl_enable na uweke thamani yake kwa YES ili kuwezesha matumizi ya SSL, tena, kwa sababu TLS ni salama zaidi kuliko SSL, tutazuia VSFTPD kutumia TLS badala yake, kwa kuwezesha Chaguo la ssl_tlsv1:

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

5. Kisha, toa maoni kwa mistari iliyo hapa chini kwa kutumia # herufi kama ifuatavyo:

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

Baadaye, ongeza mistari 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. Sasa, inatubidi pia kuzuia watumiaji wasiojulikana kutumia SSL, kisha kulazimisha waingizi wote wasiojulikana kutumia muunganisho salama wa SSL kwa uhamishaji data na kutuma nenosiri wakati wa kuingia:

allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

7. Zaidi ya hayo, tunaweza kutumia chaguo zilizo hapa chini ili kuongeza vipengele zaidi vya usalama katika seva ya FTP. Kwa chaguo require_ssl_reuse=YES, miunganisho yote ya data ya SSL inahitajika ili kuonyesha matumizi ya kipindi cha SSL; kuthibitisha kuwa wanajua siri kuu sawa na njia ya kudhibiti. Kwa hivyo, tunapaswa kuizima.

require_ssl_reuse=NO

Kwa kuongeza, tunaweza kuweka misimbo ipi ya SSL VSFTPD itaruhusu kwa miunganisho iliyosimbwa ya SSL kwa chaguo la ssl_ciphers. Hii itasaidia kutatiza juhudi zozote za wavamizi wanaojaribu kulazimisha msimbo mahususi ambao wanaweza kugundua udhaifu ndani yake:

ssl_ciphers=HIGH

8. Kisha, hebu tufafanue safu ya bandari (min na max port) ya bandari za passiv.

pasv_min_port=40000
pasv_max_port=50000

9. Ili kuwezesha utatuzi wa SSL, kumaanisha kuwa uchunguzi wa muunganisho wa OpenSSL unarekodiwa kwenye faili ya kumbukumbu ya VSFTPD, tunaweza kutumia chaguo la debug_ssl:

debug_ssl=YES

Hatimaye hifadhi faili na uifunge. Kisha anza tena huduma ya VSFTPD:

$ systemctl restart vsftpd

Hatua ya 3: Thibitisha FTP na Viunganisho vya SSL/TLS kwenye Ubuntu

10. Baada ya kutekeleza usanidi wote hapo juu, jaribu kama VSFTPD sasa inatumia miunganisho ya SSL/TLS kwa kujaribu kutumia FTP kutoka kwa safu ya amri kama ilivyo hapo chini.

Kutoka kwa matokeo yaliyo hapa chini, kuna ujumbe wa hitilafu unaotuambia VSFTPD inaweza tu kuruhusu watumiaji (wasiojulikana) kuingia kutoka kwa wateja salama wanaotumia huduma za usimbaji fiche.

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

Mstari wa amri hauauni huduma za usimbaji fiche hivyo kusababisha hitilafu hapo juu. Kwa hivyo, ili kuunganisha kwa usalama kwenye seva ya FTP na huduma za usimbaji fiche zimewashwa, tunahitaji mteja wa FTP ambaye anatumia miunganisho ya SSL/TLS kwa chaguomsingi, kama vile FileZilla.

Hatua ya 4: Sakinisha FileZilla Kwenye Wateja ili Kuunganisha FTP kwa Usalama

FileZilla ni kiteja chenye nguvu, kinachotumika sana cha FTP ambacho kinaauni FTP kupitia SSL/TLS na zaidi. Ili kusakinisha FileZilla kwenye mashine ya mteja ya Linux, tumia amri ifuatayo.

--------- 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. Usakinishaji ukishakamilika, ifungue na uende kwa Faili=>Kidhibiti cha Tovuti au (bonyeza Ctrl+S) ili kupata kiolesura cha Kidhibiti Tovuti hapa chini.

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

Bofya kitufe cha Tovuti Mpya ili kusanidi muunganisho mpya wa tovuti/mwenyeji.

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 kwenye Unganisha kutoka kwa kiolesura kilicho hapo juu ili kuingiza nenosiri, na kisha uthibitishe cheti kinachotumika kwa muunganisho wa SSL/TLS, na ubofye SAWA mara nyingine tena ili kuunganisha kwenye seva ya FTP:

15. Sasa, unapaswa kuwa umeingia kwa mafanikio kwenye seva ya FTP kupitia muunganisho wa TLS, angalia sehemu ya hali ya muunganisho kwa taarifa zaidi kutoka kwa kiolesura kilicho hapa chini.

16. Hatimaye, hebu tuhamishe faili kutoka kwa mashine ya ndani hadi 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! Kumbuka kila wakati kuwa kusakinisha seva ya FTP bila kuwezesha huduma za usimbaji fiche kuna athari fulani za usalama. Kama tulivyoeleza katika somo hili, unaweza kusanidi seva ya FTP kutumia miunganisho ya SSL/TLS kutekeleza usalama katika Ubuntu 16.04/16.10.

Ukikumbana na matatizo yoyote katika kusanidi SSL/TLS kwenye seva ya FTP, tumia fomu ya maoni iliyo hapa chini kushiriki matatizo au mawazo yako kuhusu mafunzo/mada hii.