ഉബുണ്ടുവിൽ SSL/TLS ഉപയോഗിച്ച് ഒരു സുരക്ഷിത FTP സെർവർ സജ്ജീകരിക്കുന്നു


ഈ ട്യൂട്ടോറിയലിൽ, ഉബുണ്ടു 16.04/16.10-ൽ SSL/TLS ഉപയോഗിച്ച് ഒരു FTP സെർവർ (VSFTPD എന്നാൽ \വളരെ സുരക്ഷിതമായ FTP ഡെമൺ) എങ്ങനെ സുരക്ഷിതമാക്കാം എന്ന് ഞങ്ങൾ വിവരിക്കും.

CentOS അടിസ്ഥാനമാക്കിയുള്ള വിതരണങ്ങൾക്കായി ഒരു സുരക്ഷിത FTP സെർവർ സജ്ജീകരിക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ, നിങ്ങൾക്ക് വായിക്കാം - CentOS-ൽ SSL/TLS ഉപയോഗിച്ച് ഒരു FTP സെർവർ സുരക്ഷിതമാക്കുക

ഈ ഗൈഡിലെ വിവിധ ഘട്ടങ്ങൾ പിന്തുടർന്ന്, സുരക്ഷിതമായ ഡാറ്റ കൈമാറ്റങ്ങൾക്കായി ഒരു FTP സെർവറിൽ എൻക്രിപ്ഷൻ സേവനങ്ങൾ പ്രവർത്തനക്ഷമമാക്കുന്നതിന്റെ അടിസ്ഥാനകാര്യങ്ങൾ ഞങ്ങൾ മനസ്സിലാക്കും.

  1. നിങ്ങൾ ഉബുണ്ടുവിൽ ഒരു FTP സെർവർ ഇൻസ്റ്റാൾ ചെയ്യുകയും കോൺഫിഗർ ചെയ്യുകയും വേണം

നമ്മൾ കൂടുതൽ മുന്നോട്ട് പോകുന്നതിന് മുമ്പ്, ഈ ലേഖനത്തിലെ എല്ലാ കമാൻഡുകളും റൂട്ട് അല്ലെങ്കിൽ സുഡോ പ്രിവിലേജ്ഡ് അക്കൗണ്ടായി പ്രവർത്തിക്കുമെന്ന് ഉറപ്പാക്കുക.

ഘട്ടം 1: ഉബുണ്ടുവിൽ FTP-യ്uക്കായി SSL/TLS സർട്ടിഫിക്കറ്റ് സൃഷ്uടിക്കുന്നു

1. SSL/TLS സർട്ടിഫിക്കറ്റും കീ ഫയലുകളും നിലവിലില്ലെങ്കിൽ സംഭരിക്കാൻ: /etc/ssl/ എന്നതിന് കീഴിൽ ഒരു ഉപഡയറക്uടറി സൃഷ്uടിച്ച് ഞങ്ങൾ ആരംഭിക്കും:

$ sudo mkdir /etc/ssl/private

2. ഇപ്പോൾ താഴെയുള്ള കമാൻഡ് പ്രവർത്തിപ്പിച്ച് സർട്ടിഫിക്കറ്റും കീയും ഒരൊറ്റ ഫയലിൽ സൃഷ്ടിക്കാം.

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

ചുവടെയുള്ള ചോദ്യങ്ങൾക്ക് ഉത്തരം നൽകാൻ മുകളിലുള്ള കമാൻഡ് നിങ്ങളോട് ആവശ്യപ്പെടും, നിങ്ങളുടെ സാഹചര്യത്തിന് ബാധകമായ മൂല്യങ്ങൾ നൽകാൻ മറക്കരുത്.

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: ഉബുണ്ടുവിൽ SSL/TLS ഉപയോഗിക്കുന്നതിന് VSFTPD കോൺഫിഗർ ചെയ്യുന്നു

3. ഞങ്ങൾ ഏതെങ്കിലും VSFTPD കോൺഫിഗറേഷനുകൾ നടത്തുന്നതിന് മുമ്പ്, UFW ഫയർവാൾ പ്രവർത്തനക്ഷമമാക്കിയിട്ടുള്ളവർക്കായി, TLS കണക്ഷനുകളും യഥാക്രമം VSFTPD കോൺഫിഗറേഷൻ ഫയലിൽ സജ്ജീകരിക്കാൻ നിഷ്ക്രിയ പോർട്ടുകളുടെ പോർട്ട് ശ്രേണിയും അനുവദിക്കുന്നതിന് നിങ്ങൾ 990, 40000-50000 എന്നീ പോർട്ടുകൾ തുറക്കണം:

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

4. ഇപ്പോൾ, VSFTPD കോൺഫിഗറേഷൻ ഫയൽ തുറന്ന് അതിൽ SSL വിശദാംശങ്ങൾ നിർവചിക്കുക:

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

തുടർന്ന്, ssl_enable എന്ന ഓപ്uഷൻ ചേർക്കുക അല്ലെങ്കിൽ കണ്ടെത്തുക, SSL ഉപയോഗം സജീവമാക്കുന്നതിന് അതിന്റെ മൂല്യം അതെ എന്ന് സജ്ജീകരിക്കുക, വീണ്ടും, TLS SSL-നേക്കാൾ സുരക്ഷിതമായതിനാൽ, പകരം TLS ഉപയോഗിക്കുന്നതിന് VSFTPD-യെ ഞങ്ങൾ നിയന്ത്രിക്കും. ssl_tlsv1 ഓപ്ഷൻ:

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

5. അടുത്തതായി, താഴെ പറയുന്ന വരികൾ # എന്ന അക്ഷരം ഉപയോഗിച്ച് കമന്റ് ചെയ്യുക:

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

അതിനുശേഷം, SSL സർട്ടിഫിക്കറ്റിന്റെയും കീ ഫയലിന്റെയും സ്ഥാനം നിർവചിക്കുന്നതിന് ചുവടെയുള്ള വരികൾ ചേർക്കുക:

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

6. ഇപ്പോൾ, ഞങ്ങൾ അജ്ഞാതരായ ഉപയോക്താക്കളെ SSL ഉപയോഗിക്കുന്നതിൽ നിന്ന് തടയേണ്ടതുണ്ട്, തുടർന്ന് ഡാറ്റാ കൈമാറ്റത്തിനും ലോഗിൻ സമയത്ത് പാസ്uവേഡ് അയയ്uക്കുന്നതിനും സുരക്ഷിതമായ SSL കണക്ഷൻ ഉപയോഗിക്കുന്നതിന് എല്ലാ അജ്ഞാത ലോഗിനുകളെയും നിർബന്ധിക്കുക:

allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

7. കൂടാതെ, FTP സെർവറിൽ കൂടുതൽ സുരക്ഷാ സവിശേഷതകൾ ചേർക്കുന്നതിന് താഴെയുള്ള ഓപ്ഷനുകൾ നമുക്ക് ഉപയോഗിക്കാം. require_ssl_reuse=YES എന്ന ഓപ്uഷൻ ഉപയോഗിച്ച്, SSL സെഷൻ പുനരുപയോഗം പ്രദർശിപ്പിക്കുന്നതിന് എല്ലാ SSL ഡാറ്റാ കണക്ഷനുകളും ആവശ്യമാണ്; കൺട്രോൾ ചാനലിന്റെ അതേ പ്രധാന രഹസ്യം അവർക്കറിയാമെന്ന് തെളിയിക്കുന്നു. അതിനാൽ, ഞങ്ങൾ അത് പ്രവർത്തനരഹിതമാക്കണം.

require_ssl_reuse=NO

കൂടാതെ, ssl_ciphers ഓപ്uഷൻ ഉപയോഗിച്ച് എൻക്രിപ്റ്റ് ചെയ്uത SSL കണക്ഷനുകൾക്കായി VSFTPD ഏത് SSL സൈഫറുകൾ അനുവദിക്കുമെന്ന് നമുക്ക് സജ്ജീകരിക്കാം. ഇനിപ്പറയുന്നതിലെ കേടുപാടുകൾ കണ്ടെത്തിയ ഒരു നിർദ്ദിഷ്ട സൈഫർ നിർബന്ധിക്കാൻ ശ്രമിക്കുന്ന ആക്രമണകാരികളുടെ ഏതൊരു ശ്രമത്തെയും ഇത് പരാജയപ്പെടുത്താൻ സഹായിക്കും:

ssl_ciphers=HIGH

8. തുടർന്ന്, നിഷ്ക്രിയ പോർട്ടുകളുടെ പോർട്ട് ശ്രേണി (മിനിറ്റും പരമാവധി പോർട്ടും) നമുക്ക് നിർവചിക്കാം.

pasv_min_port=40000
pasv_max_port=50000

9. SSL ഡീബഗ്ഗിംഗ് പ്രവർത്തനക്ഷമമാക്കാൻ, ഓപ്പൺഎസ്എസ്എൽ കണക്ഷൻ ഡയഗ്നോസ്റ്റിക്സ് VSFTPD ലോഗ് ഫയലിലേക്ക് രേഖപ്പെടുത്തുന്നു, നമുക്ക് debug_ssl ഓപ്ഷൻ ഉപയോഗിക്കാം:

debug_ssl=YES

അവസാനം ഫയൽ സേവ് ചെയ്ത് ക്ലോസ് ചെയ്യുക. തുടർന്ന് VSFTPD സേവനം പുനരാരംഭിക്കുക:

$ systemctl restart vsftpd

ഘട്ടം 3: ഉബുണ്ടുവിലെ SSL/TLS കണക്ഷനുകൾ ഉപയോഗിച്ച് FTP പരിശോധിക്കുക

10. മുകളിലുള്ള എല്ലാ കോൺഫിഗറേഷനുകളും പൂർത്തിയാക്കിയ ശേഷം, താഴെയുള്ള കമാൻഡ് ലൈനിൽ നിന്ന് FTP ഉപയോഗിക്കാൻ ശ്രമിച്ചുകൊണ്ട് VSFTPD ഇപ്പോൾ SSL/TLS കണക്ഷനുകൾ ഉപയോഗിക്കുന്നുണ്ടോ എന്ന് പരിശോധിക്കുക.

ചുവടെയുള്ള ഔട്ട്uപുട്ടിൽ നിന്ന്, എൻക്രിപ്ഷൻ സേവനങ്ങളെ പിന്തുണയ്ക്കുന്ന സുരക്ഷിത ക്ലയന്റുകളിൽ നിന്ന് ലോഗിൻ ചെയ്യാൻ VSFTPD ഉപയോക്താക്കളെ (അജ്ഞാതർ അല്ലാത്തവരെ) മാത്രമേ അനുവദിക്കൂ എന്ന് ഞങ്ങളോട് പറയുന്ന ഒരു പിശക് സന്ദേശം ഉണ്ട്.

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

കമാൻഡ് ലൈൻ എൻക്രിപ്ഷൻ സേവനങ്ങളെ പിന്തുണയ്ക്കുന്നില്ല, അതിനാൽ മുകളിലുള്ള പിശകിന് കാരണമാകുന്നു. അതിനാൽ, എൻക്രിപ്ഷൻ സേവനങ്ങൾ പ്രാപ്തമാക്കിയ ഒരു FTP സെർവറിലേക്ക് സുരക്ഷിതമായി കണക്റ്റുചെയ്യുന്നതിന്, FileZilla പോലെയുള്ള SSL/TLS കണക്ഷനുകളെ സ്ഥിരസ്ഥിതിയായി പിന്തുണയ്ക്കുന്ന ഒരു FTP ക്ലയന്റ് ഞങ്ങൾക്ക് ആവശ്യമാണ്.

ഘട്ടം 4: FTP സുരക്ഷിതമായി കണക്uറ്റുചെയ്യാൻ ക്ലയന്റുകളിൽ FileZilla ഇൻസ്റ്റാൾ ചെയ്യുക

SSL/TLS വഴിയും മറ്റും എഫ്uടിപിയെ പിന്തുണയ്uക്കുന്ന ശക്തമായ, വ്യാപകമായി ഉപയോഗിക്കപ്പെടുന്ന ക്രോസ്-പ്ലാറ്റ്uഫോം എഫ്uടിപി ക്ലയന്റാണ് FileZilla. ഒരു Linux ക്ലയന്റ് മെഷീനിൽ FileZilla ഇൻസ്റ്റാൾ ചെയ്യാൻ, ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിക്കുക.

--------- 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. ഇൻസ്റ്റാളേഷൻ പൂർത്തിയായിക്കഴിഞ്ഞാൽ, അത് തുറന്ന് ഫയൽ=>സൈറ്റ് മാനേജർ എന്നതിലേക്ക് പോകുക അല്ലെങ്കിൽ (Ctrl+S അമർത്തുക) സൈറ്റ് മാനേജർ ഇന്റർഫേസ് ചുവടെ ലഭിക്കും.

13. ഇപ്പോൾ, ഹോസ്റ്റ്/സൈറ്റ് നാമം നിർവചിക്കുക, IP വിലാസം ചേർക്കുക, ഉപയോഗിക്കേണ്ട പ്രോട്ടോക്കോൾ നിർവചിക്കുക, എൻക്രിപ്ഷൻ, ലോഗൺ തരം എന്നിവ ചുവടെയുള്ള സ്ക്രീൻ ഷോട്ടിലെ പോലെ (നിങ്ങളുടെ സാഹചര്യത്തിന് ബാധകമായ മൂല്യങ്ങൾ ഉപയോഗിക്കുക):

ഒരു പുതിയ സൈറ്റ്/ഹോസ്റ്റ് കണക്ഷൻ കോൺഫിഗർ ചെയ്യുന്നതിന് പുതിയ സൈറ്റ് ബട്ടണിൽ ക്ലിക്ക് ചെയ്യുക.

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. തുടർന്ന് പാസ്uവേഡ് നൽകുന്നതിന് മുകളിലുള്ള ഇന്റർഫേസിൽ നിന്ന് കണക്റ്റുചെയ്യുക എന്നതിൽ ക്ലിക്കുചെയ്യുക, തുടർന്ന് SSL/TLS കണക്ഷനായി ഉപയോഗിക്കുന്ന സർട്ടിഫിക്കറ്റ് പരിശോധിച്ചുറപ്പിക്കുക, FTP സെർവറിലേക്ക് കണക്റ്റുചെയ്യുന്നതിന് ഒരിക്കൽ കൂടി ശരി ക്ലിക്കുചെയ്യുക:

15. ഇപ്പോൾ, നിങ്ങൾ ഒരു TLS കണക്ഷനിലൂടെ FTP സെർവറിലേക്ക് വിജയകരമായി ലോഗിൻ ചെയ്തിരിക്കണം, താഴെയുള്ള ഇന്റർഫേസിൽ നിന്നുള്ള കൂടുതൽ വിവരങ്ങൾക്ക് കണക്ഷൻ സ്റ്റാറ്റസ് വിഭാഗം പരിശോധിക്കുക.

16. അവസാനമായി, ലോക്കൽ മെഷീനിൽ നിന്ന് ഫയലുകൾ ഫോൾഡറിലെ FTP സെവറിലേക്ക് ഫയലുകൾ ട്രാൻസ്ഫർ ചെയ്യാം, ഫയൽ കൈമാറ്റം സംബന്ധിച്ച റിപ്പോർട്ടുകൾ കാണുന്നതിന് FileZilla ഇന്റർഫേസിന്റെ താഴത്തെ അറ്റത്ത് നോക്കുക.

അത്രയേയുള്ളൂ! എൻക്രിപ്ഷൻ സേവനങ്ങൾ പ്രവർത്തനക്ഷമമാക്കാതെ ഒരു FTP സെർവർ ഇൻസ്റ്റാൾ ചെയ്യുന്നത് ചില സുരക്ഷാ പ്രത്യാഘാതങ്ങളുണ്ടെന്ന് എപ്പോഴും ഓർക്കുക. ഈ ട്യൂട്ടോറിയലിൽ ഞങ്ങൾ വിശദീകരിച്ചതുപോലെ, ഉബുണ്ടു 16.04/16.10-ൽ സുരക്ഷ നടപ്പിലാക്കുന്നതിനായി SSL/TLS കണക്ഷനുകൾ ഉപയോഗിക്കുന്നതിന് നിങ്ങൾക്ക് ഒരു FTP സെർവർ ക്രമീകരിക്കാൻ കഴിയും.

FTP സെർവറിൽ SSL/TLS സജ്ജീകരിക്കുന്നതിൽ നിങ്ങൾക്ക് എന്തെങ്കിലും പ്രശ്uനങ്ങൾ നേരിടുകയാണെങ്കിൽ, ഈ ട്യൂട്ടോറിയൽ/വിഷയവുമായി ബന്ധപ്പെട്ട നിങ്ങളുടെ പ്രശ്uനങ്ങളോ ചിന്തകളോ പങ്കിടുന്നതിന് ചുവടെയുള്ള കമന്റ് ഫോം ഉപയോഗിക്കുക.