RHCSA സീരീസ്: ഒരു വെബ്, FTP സെർവർ ഇൻസ്റ്റോൾ, കോൺഫിഗർ ചെയ്യൽ, സുരക്ഷിതമാക്കൽ - ഭാഗം 9


ഒരു നെറ്റ്uവർക്കിലെ ഒരു ക്ലയന്റിലേക്ക് ഉള്ളടക്കം (സാധാരണയായി വെബ് പേജുകൾ, എന്നാൽ മറ്റ് തരത്തിലുള്ള പ്രമാണങ്ങളും) കൈകാര്യം ചെയ്യുന്ന ഒരു സേവനമാണ് വെബ് സെർവർ (HTTP സെർവർ എന്നും അറിയപ്പെടുന്നു).

എൻക്രിപ്ഷൻ കൂടാതെ FTP ഉപയോക്തൃനാമവും പാസ്uവേഡും ഉപയോഗിക്കുന്നതിനാൽ ഒരു ആധികാരികത ആവശ്യമില്ലാത്ത സന്ദർഭങ്ങളിൽ ഒരു നെറ്റ്uവർക്കിലെ ക്ലയന്റുകൾക്ക് ഫയലുകൾ ലഭ്യമാക്കുന്നതിനുള്ള ഏറ്റവും പഴയതും ഏറ്റവും സാധാരണയായി ഉപയോഗിക്കുന്നതുമായ ഉറവിടങ്ങളിൽ ഒന്നാണ് (ഇന്നും വരെ) FTP സെർവർ.

RHEL 7-ൽ ലഭ്യമായ വെബ് സെർവർ Apache HTTP സെർവറിന്റെ 2.4 പതിപ്പാണ്. FTP സെർവറിനെ സംബന്ധിച്ചിടത്തോളം, TLS സുരക്ഷിതമാക്കിയ കണക്ഷനുകൾ സ്ഥാപിക്കാൻ ഞങ്ങൾ വളരെ സുരക്ഷിതമായ Ftp ഡെമൺ (അതായത് vsftpd) ഉപയോഗിക്കും.

RHEL 7-ൽ ഒരു വെബ് സെർവറും FTP സെർവറും എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാമെന്നും കോൺഫിഗർ ചെയ്യാമെന്നും സുരക്ഷിതമാക്കാമെന്നും ഈ ലേഖനത്തിൽ ഞങ്ങൾ വിശദീകരിക്കും.

Apache, FTP സെർവർ എന്നിവ ഇൻസ്റ്റാൾ ചെയ്യുന്നു

ഈ ഗൈഡിൽ ഞങ്ങൾ 192.168.0.18/24 എന്ന സ്റ്റാറ്റിക് ഐപി വിലാസമുള്ള ഒരു RHEL 7 സെർവർ ഉപയോഗിക്കും. Apache, VSFTPD എന്നിവ ഇൻസ്റ്റാൾ ചെയ്യാൻ, ഇനിപ്പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കുക:

# yum update && yum install httpd vsftpd

ഇൻസ്റ്റാളേഷൻ പൂർത്തിയാകുമ്പോൾ, രണ്ട് സേവനങ്ങളും തുടക്കത്തിൽ പ്രവർത്തനരഹിതമാക്കും, അതിനാൽ ഞങ്ങൾ തൽക്കാലം അവ സ്വമേധയാ ആരംഭിക്കുകയും അടുത്ത ബൂട്ടിൽ നിന്ന് സ്വയമേവ ആരംഭിക്കാൻ അവയെ പ്രാപ്തമാക്കുകയും വേണം:

# systemctl start httpd
# systemctl enable httpd
# systemctl start vsftpd
# systemctl enable vsftpd

കൂടാതെ, യഥാക്രമം വെബ്, ftp ഡെമണുകൾ ശ്രവിക്കുന്ന പോർട്ടുകൾ 80, 21 എന്നിവ ഞങ്ങൾ തുറക്കേണ്ടതുണ്ട്, പുറത്ത് നിന്ന് ആ സേവനങ്ങളിലേക്ക് പ്രവേശനം അനുവദിക്കുന്നതിന്:

# firewall-cmd --zone=public --add-port=80/tcp --permanent
# firewall-cmd --zone=public --add-service=ftp --permanent
# firewall-cmd --reload

വെബ് സെർവർ ശരിയായി പ്രവർത്തിക്കുന്നുണ്ടെന്ന് സ്ഥിരീകരിക്കാൻ, നിങ്ങളുടെ ബ്രൗസർ പ്രവർത്തനക്ഷമമാക്കി സെർവറിന്റെ IP നൽകുക. നിങ്ങൾ പരീക്ഷണ പേജ് കാണണം:

ftp സെർവറിനെ സംബന്ധിച്ചിടത്തോളം, ഞങ്ങൾ ഇത് കൂടുതൽ കോൺഫിഗർ ചെയ്യേണ്ടതുണ്ട്, അത് പ്രതീക്ഷിച്ചതുപോലെ പ്രവർത്തിക്കുന്നുവെന്ന് സ്ഥിരീകരിക്കുന്നതിന് മുമ്പ് ഞങ്ങൾ ഒരു മിനിറ്റിനുള്ളിൽ ഇത് ചെയ്യും.

അപ്പാച്ചെ വെബ് സെർവർ ക്രമീകരിക്കുകയും സുരക്ഷിതമാക്കുകയും ചെയ്യുന്നു

Apache-നുള്ള പ്രധാന കോൺഫിഗറേഷൻ ഫയൽ /etc/httpd/conf/httpd.conf എന്നതിലാണ് സ്ഥിതി ചെയ്യുന്നത്, എന്നാൽ ഇത് /etc/httpd/conf.d.

മിക്ക കേസുകളിലും ഡിഫോൾട്ട് കോൺഫിഗറേഷൻ മതിയാകുമെങ്കിലും, ഔദ്യോഗിക ഡോക്യുമെന്റേഷനിൽ വിവരിച്ചിരിക്കുന്നതുപോലെ ലഭ്യമായ എല്ലാ ഓപ്ഷനുകളും പരിചയപ്പെടുന്നത് നല്ലതാണ്.

എല്ലായ്പ്പോഴും എന്നപോലെ, പ്രധാന കോൺഫിഗറേഷൻ ഫയലിന്റെ ഒരു ബാക്കപ്പ് പകർപ്പ് എഡിറ്റുചെയ്യുന്നതിന് മുമ്പ് ഉണ്ടാക്കുക:

# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.$(date +%Y%m%d)

തുടർന്ന് നിങ്ങൾ തിരഞ്ഞെടുത്ത ടെക്സ്റ്റ് എഡിറ്റർ ഉപയോഗിച്ച് ഇത് തുറന്ന് ഇനിപ്പറയുന്ന വേരിയബിളുകൾക്കായി നോക്കുക:

  1. ServerRoot: സെർവറിന്റെ കോൺഫിഗറേഷൻ, പിശക്, ലോഗ് ഫയലുകൾ എന്നിവ സൂക്ഷിക്കുന്ന ഡയറക്ടറി.
  2. ശ്രവിക്കുക: നിർദ്ദിഷ്ട IP വിലാസത്തിലും കൂടാതെ/അല്ലെങ്കിൽ പോർട്ടുകളിലും കേൾക്കാൻ അപ്പാച്ചെയോട് നിർദ്ദേശിക്കുന്നു.
  3. ഉൾപ്പെടുത്തുക: നിലവിലുണ്ടാകേണ്ട മറ്റ് കോൺഫിഗറേഷൻ ഫയലുകൾ ഉൾപ്പെടുത്താൻ അനുവദിക്കുന്നു. അല്ലെങ്കിൽ, നിർദ്ദിഷ്ട കോൺഫിഗറേഷൻ ഫയലുകൾ നിലവിലില്ലെങ്കിൽ നിശ്ശബ്ദമായി അവഗണിക്കപ്പെടുന്ന IncludeOptional നിർദ്ദേശത്തിന് വിരുദ്ധമായി സെർവർ പരാജയപ്പെടും.
  4. ഉപയോക്താവും ഗ്രൂപ്പും: httpd സേവനം ഇപ്രകാരം പ്രവർത്തിപ്പിക്കുന്നതിനുള്ള ഉപയോക്താവിന്റെ/ഗ്രൂപ്പിന്റെ പേര്.
  5. DocumentRoot: Apache നിങ്ങളുടെ ഡോക്യുമെന്റുകൾ നൽകുന്ന ഡയറക്ടറി. ഡിഫോൾട്ടായി, എല്ലാ അഭ്യർത്ഥനകളും ഈ ഡയറക്uടറിയിൽ നിന്നാണ് എടുത്തത്, എന്നാൽ മറ്റ് ലൊക്കേഷനുകളിലേക്ക് പോയിന്റ് ചെയ്യാൻ പ്രതീകാത്മക ലിങ്കുകളും അപരനാമങ്ങളും ഉപയോഗിച്ചേക്കാം.
  6. ServerName: ഈ നിർദ്ദേശം സെർവർ സ്വയം തിരിച്ചറിയാൻ ഉപയോഗിക്കുന്ന ഹോസ്റ്റ്നാമവും (അല്ലെങ്കിൽ IP വിലാസവും) പോർട്ടും സജ്ജമാക്കുന്നു.

വെബ് സെർവർ പ്രവർത്തിപ്പിക്കുന്നതിനായി ഒരു സമർപ്പിത ഉപയോക്താവിനെയും ഗ്രൂപ്പിനെയും (അതായത് tecmint/tecmint) സൃഷ്ടിക്കുന്നതും സ്ഥിരസ്ഥിതി പോർട്ട് ഉയർന്നതിലേക്ക് മാറ്റുന്നതും (ഈ സാഹചര്യത്തിൽ 9000) ഉൾക്കൊള്ളുന്നതാണ് ആദ്യ സുരക്ഷാ നടപടി:

ServerRoot "/etc/httpd"
Listen 192.168.0.18:9000
User tecmint
Group tecmint
DocumentRoot "/var/www/html"
ServerName 192.168.0.18:9000

നിങ്ങൾക്ക് കോൺഫിഗറേഷൻ ഫയൽ പരിശോധിക്കാം.

# apachectl configtest

എല്ലാം ശരിയാണെങ്കിൽ, വെബ് സെർവർ പുനരാരംഭിക്കുക.

# systemctl restart httpd

ഫയർവാളിൽ പുതിയ പോർട്ട് പ്രവർത്തനക്ഷമമാക്കാനും (പഴയത് പ്രവർത്തനരഹിതമാക്കാനും) മറക്കരുത്:

# firewall-cmd --zone=public --remove-port=80/tcp --permanent
# firewall-cmd --zone=public --add-port=9000/tcp --permanent
# firewall-cmd --reload

ശ്രദ്ധിക്കുക, SELinux നയങ്ങൾ കാരണം, നിങ്ങൾക്ക് തിരികെ നൽകിയ പോർട്ടുകൾ മാത്രമേ ഉപയോഗിക്കാൻ കഴിയൂ

# semanage port -l | grep -w '^http_port_t'

വെബ് സെർവറിനായി.

നിങ്ങൾക്ക് മറ്റൊരു പോർട്ട് (അതായത് TCP പോർട്ട് 8100) ഉപയോഗിക്കണമെങ്കിൽ, httpd സേവനത്തിനായി നിങ്ങൾ അത് SELinux പോർട്ട് സന്ദർഭത്തിലേക്ക് ചേർക്കേണ്ടതുണ്ട്:

# semanage port -a -t http_port_t -p tcp 8100

നിങ്ങളുടെ അപ്പാച്ചെ ഇൻസ്റ്റാളേഷൻ കൂടുതൽ സുരക്ഷിതമാക്കാൻ, ഈ ഘട്ടങ്ങൾ പാലിക്കുക:

1. ഷെല്ലിലേക്ക് ആക്uസസ് ഇല്ലാത്തതിനാൽ അപ്പാച്ചെ എന്ന ഉപയോക്താവ് പ്രവർത്തിക്കുന്നു:

# usermod -s /sbin/nologin tecmint

2. ഡയറക്uടറിയിൽ index.html ഇല്ലെങ്കിൽ, ഒരു ഡയറക്uടറിയിലെ ഉള്ളടക്കങ്ങൾ പ്രദർശിപ്പിക്കുന്നതിൽ നിന്ന് ബ്രൗസറിനെ തടയുന്നതിന് ഡയറക്uടറി ലിസ്uറ്റിംഗ് പ്രവർത്തനരഹിതമാക്കുക.

/etc/httpd/conf/httpd.conf (കൂടാതെ വെർച്വൽ ഹോസ്റ്റുകൾക്കുള്ള കോൺഫിഗറേഷൻ ഫയലുകൾ, എന്തെങ്കിലും ഉണ്ടെങ്കിൽ) എഡിറ്റ് ചെയ്uത് മുകളിലും ഡയറക്uടറി ബ്ലോക്ക് തലത്തിലും ഓപ്uഷൻ നിർദ്ദേശം സജ്ജീകരിച്ചിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക. ആരുമായും:

Options None

3. HTTP പ്രതികരണങ്ങളിൽ വെബ് സെർവറിനെയും ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തെയും കുറിച്ചുള്ള വിവരങ്ങൾ മറയ്ക്കുക. /etc/httpd/conf/httpd.conf ഇനിപ്പറയുന്ന രീതിയിൽ എഡിറ്റ് ചെയ്യുക:

ServerTokens Prod 
ServerSignature Off

നിങ്ങളുടെ /var/www/html ഡയറക്uടറിയിൽ നിന്ന് ഉള്ളടക്കം നൽകുന്നത് ആരംഭിക്കാൻ നിങ്ങൾ ഇപ്പോൾ തയ്യാറാണ്.

FTP സെർവർ ക്രമീകരിക്കുകയും സുരക്ഷിതമാക്കുകയും ചെയ്യുന്നു

അപ്പാച്ചെയുടെ കാര്യത്തിലെന്നപോലെ, Vsftpd (/etc/vsftpd/vsftpd.conf) എന്നതിനായുള്ള പ്രധാന കോൺഫിഗറേഷൻ ഫയൽ നന്നായി കമന്റ് ചെയ്തിട്ടുണ്ട്, മിക്ക ആപ്ലിക്കേഷനുകൾക്കും ഡിഫോൾട്ട് കോൺഫിഗറേഷൻ മതിയാകുമ്പോൾ, നിങ്ങൾ ഇത് പരിചയപ്പെടണം. ftp സെർവർ കൂടുതൽ കാര്യക്ഷമമായി പ്രവർത്തിപ്പിക്കുന്നതിനായി ഡോക്യുമെന്റേഷനും മാൻ പേജും (man vsftpd.conf) (എനിക്ക് വേണ്ടത്ര ഊന്നിപ്പറയാൻ കഴിയില്ല!).

ഞങ്ങളുടെ കാര്യത്തിൽ, ഉപയോഗിച്ച നിർദ്ദേശങ്ങൾ ഇവയാണ്:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
allow_writeable_chroot=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

chroot_local_user=YES ഉപയോഗിക്കുന്നതിലൂടെ, ലോഗിൻ ചെയ്uത ഉടൻ തന്നെ പ്രാദേശിക ഉപയോക്താക്കളെ അവരുടെ ഹോം ഡയറക്uടറിയിലെ chroot'ed ജയിലിൽ (സ്ഥിരമായി) പാർപ്പിക്കും. ഇതിനർത്ഥം പ്രാദേശിക ഉപയോക്താക്കൾക്ക് അവരുടെ ഹോം ഡയറക്uടറികൾക്ക് പുറത്തുള്ള ഫയലുകളൊന്നും ആക്uസസ് ചെയ്യാൻ കഴിയില്ല എന്നാണ്.

അവസാനമായി, ഉപയോക്താവിന്റെ ഹോം ഡയറക്ടറിയിൽ ഫയലുകൾ വായിക്കാൻ ftp-യെ അനുവദിക്കുന്നതിന്, ഇനിപ്പറയുന്ന SELinux boolean സജ്ജമാക്കുക:

# setsebool -P ftp_home_dir on

Filezilla പോലുള്ള ഒരു ക്ലയന്റ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഇപ്പോൾ ftp സെർവറിലേക്ക് കണക്റ്റുചെയ്യാനാകും:

/var/log/xferlog ലോഗ് ഡൗൺലോഡുകളും അപ്uലോഡുകളും രേഖപ്പെടുത്തുന്നു, അത് മുകളിലെ ഡയറക്uടറി ലിസ്റ്റിംഗുമായി യോജിക്കുന്നു:

സംഗ്രഹം

ഈ ട്യൂട്ടോറിയലിൽ ഒരു വെബും ftp സെർവറും എങ്ങനെ സജ്ജീകരിക്കാമെന്ന് ഞങ്ങൾ വിശദീകരിച്ചിട്ടുണ്ട്. വിഷയത്തിന്റെ വിശാലത കാരണം, ഈ വിഷയങ്ങളുടെ എല്ലാ വശങ്ങളും ഉൾക്കൊള്ളാൻ സാധ്യമല്ല (അതായത് വെർച്വൽ വെബ് ഹോസ്റ്റുകൾ). അതിനാൽ, അപ്പാച്ചെയെക്കുറിച്ചുള്ള ഈ വെബ്uസൈറ്റിലെ മറ്റ് മികച്ച ലേഖനങ്ങളും പരിശോധിക്കാൻ ഞാൻ ശുപാർശ ചെയ്യുന്നു.