13 അപ്പാച്ചെ വെബ് സെർവർ സുരക്ഷയും ഹാർഡനിംഗ് നുറുങ്ങുകളും


നമുക്കെല്ലാവർക്കും അപ്പാച്ചെ വെബ് സെർവർ വളരെ പരിചിതമാണ്, നിങ്ങളുടെ വെബ് ഫയലുകൾ അല്ലെങ്കിൽ വെബിൽ നിങ്ങളുടെ വെബ്uസൈറ്റ് ഹോസ്റ്റുചെയ്യുന്നതിനുള്ള വളരെ ജനപ്രിയമായ ഒരു വെബ് സെർവറാണിത്. നിങ്ങളുടെ ലിനക്സ് ബോക്സിൽ അപ്പാച്ചെ വെബ് സെർവർ കോൺഫിഗർ ചെയ്യാൻ സഹായിക്കുന്ന ചില ലിങ്കുകൾ ഇതാ.

  1. അപ്പാച്ചെ വെബ് സെർവർ ഇൻസ്റ്റാൾ ചെയ്യുക
  2. നിങ്ങളുടെ ലിനക്സ് ബോക്സിൽ നിങ്ങളുടെ വെബ്സൈറ്റ് സജ്ജീകരിക്കുക

ഇവിടെ ഈ ട്യൂട്ടോറിയലിൽ, നിങ്ങളുടെ വെബ് സെർവർ സുരക്ഷിതമാക്കുന്നതിനുള്ള ചില പ്രധാന നുറുങ്ങുകൾ ഞാൻ കവർ ചെയ്യും. നിങ്ങളുടെ വെബ് സെർവറിൽ ഈ മാറ്റങ്ങൾ പ്രയോഗിക്കുന്നതിന് മുമ്പ്, നിങ്ങൾക്ക് അപ്പാച്ചെ സെർവറിന്റെ ചില അടിസ്ഥാനകാര്യങ്ങൾ ഉണ്ടായിരിക്കണം.

  1. ഡോക്യുമെന്റ് റൂട്ട് ഡയറക്ടറി: /var/www/html അല്ലെങ്കിൽ /var/www
  2. പ്രധാന കോൺഫിഗറേഷൻ ഫയൽ: /etc/httpd/conf/httpd.conf (RHEL/CentOS/Fedora) കൂടാതെ /etc/apache2/apache2.conf (Debian/Ubuntu).
  3. ഡിഫോൾട്ട് HTTP പോർട്ട്: 80 TCP
  4. സ്ഥിര HTTPS പോർട്ട്: 443 TCP
  5. നിങ്ങളുടെ കോൺഫിഗറേഷൻ ഫയൽ ക്രമീകരണങ്ങളും വാക്യഘടനയും പരിശോധിക്കുക: httpd -t
  6. വെബ് സെർവറിന്റെ ലോഗ് ഫയലുകൾ ആക്uസസ് ചെയ്യുക: /var/log/httpd/access_log
  7. വെബ് സെർവറിന്റെ പിശക് ലോഗ് ഫയലുകൾ: /var/log/httpd/error_log

1. അപ്പാച്ചെ പതിപ്പും ഒഎസ് ഐഡന്റിറ്റിയും പിശകുകളിൽ നിന്ന് എങ്ങനെ മറയ്ക്കാം

സോഴ്സ് അല്ലെങ്കിൽ yum പോലെയുള്ള മറ്റേതെങ്കിലും പാക്കേജ് ഇൻസ്റ്റാളറുകൾ ഉപയോഗിച്ച് നിങ്ങൾ Apache ഇൻസ്റ്റാൾ ചെയ്യുമ്പോൾ, അത് നിങ്ങളുടെ സെർവറിൽ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുള്ള നിങ്ങളുടെ Apache വെബ് സെർവറിന്റെ പതിപ്പ് പിശകുകളിൽ നിങ്ങളുടെ സെർവറിന്റെ ഓപ്പറേറ്റിംഗ് സിസ്റ്റം നാമത്തിൽ പ്രദർശിപ്പിക്കുന്നു. നിങ്ങളുടെ സെർവറിൽ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുള്ള അപ്പാച്ചെ മൊഡ്യൂളുകളെക്കുറിച്ചുള്ള വിവരങ്ങളും ഇത് കാണിക്കുന്നു.

മുകളിലെ ചിത്രത്തിൽ, നിങ്ങളുടെ സെർവറിൽ ഇൻസ്റ്റാൾ ചെയ്തിരിക്കുന്ന OS ഉപയോഗിച്ച് അപ്പാച്ചെ അതിന്റെ പതിപ്പ് കാണിക്കുന്നത് നിങ്ങൾക്ക് കാണാൻ കഴിയും. ഇത് നിങ്ങളുടെ വെബ് സെർവറിനും നിങ്ങളുടെ ലിനക്സ് ബോക്uസിനും വലിയ സുരക്ഷാ ഭീഷണിയായേക്കാം. അപ്പാച്ചെ ഈ വിവരങ്ങൾ ലോകത്തിൽ പ്രദർശിപ്പിക്കാതിരിക്കാൻ, അപ്പാച്ചെ പ്രധാന കോൺഫിഗറേഷൻ ഫയലിൽ ചില മാറ്റങ്ങൾ വരുത്തേണ്ടതുണ്ട്.

വിം എഡിറ്റർ ഉപയോഗിച്ച് കോൺഫിഗറേഷൻ ഫയൽ തുറന്ന് സെർവർ സിഗ്നേച്ചർ എന്നതിനായി തിരയുക, അത് സ്ഥിരസ്ഥിതിയായി ഓണാണ്. ഞങ്ങൾക്ക് ഈ സെർവർ സിഗ്നേച്ചർ ഓഫ് ചെയ്യേണ്ടതുണ്ട്, കൂടാതെ രണ്ടാമത്തെ വരി സെർവർ ടോക്കൻസ് പ്രോഡ് അപ്പാച്ചെയോട് എല്ലാ പേജ് അഭ്യർത്ഥനയിലും സെർവർ റെസ്uപോൺസ് ഹെഡറിൽ അപ്പാച്ചെ മാത്രം ഉൽപ്പന്നമായി തിരികെ നൽകാൻ പറയുന്നു, ഇത് OS, വലുതും ചെറുതുമായ പതിപ്പ് വിവരങ്ങൾ അടിച്ചമർത്തുന്നു.

# vim /etc/httpd/conf/httpd.conf (RHEL/CentOS/Fedora)
# vim /etc/apache2/apache2.conf (Debian/Ubuntu)
ServerSignature Off
ServerTokens Prod
# service httpd restart (RHEL/CentOS/Fedora)
# service apache2 restart (Debian/Ubuntu)

2. ഡയറക്ടറി ലിസ്റ്റിംഗ് പ്രവർത്തനരഹിതമാക്കുക

ഇൻഡെക്സ് ഫയലിന്റെ അഭാവത്തിൽ ഡോക്യുമെന്റ് റൂട്ട് ഡയറക്ടറിയുടെ എല്ലാ ഉള്ളടക്കവും സ്ഥിരസ്ഥിതിയായി അപ്പാച്ചെ ലിസ്റ്റ് ചെയ്യുക. ദയവായി താഴെയുള്ള ചിത്രം കാണുക.

ഒരു നിർദ്ദിഷ്uട ഡയറക്uടറിക്കായി കോൺഫിഗറേഷൻ ഫയലിലെ ഓപ്uഷൻ ഡയറക്uടീവ് ഉപയോഗിച്ച് നമുക്ക് ഡയറക്uടറി ലിസ്uറ്റിംഗ് ഓഫാക്കാം. അതിനായി നമ്മൾ httpd.conf അല്ലെങ്കിൽ apache2.conf ഫയലിൽ ഒരു എൻട്രി നടത്തേണ്ടതുണ്ട്.

<Directory /var/www/html>
    Options -Indexes
</Directory>

3. അപ്പാച്ചെ പതിവായി അപ്ഡേറ്റ് ചെയ്യുന്നത് തുടരുക

അപ്പാച്ചെ ഡെവലപ്പർ കമ്മ്യൂണിറ്റി സുരക്ഷാ പ്രശ്uനങ്ങളിൽ തുടർച്ചയായി പ്രവർത്തിക്കുകയും പുതിയ സുരക്ഷാ ഓപ്uഷനുകൾക്കൊപ്പം അതിന്റെ പുതുക്കിയ പതിപ്പ് പുറത്തിറക്കുകയും ചെയ്യുന്നു. അതിനാൽ നിങ്ങളുടെ വെബ് സെർവറായി അപ്പാച്ചെയുടെ ഏറ്റവും പുതിയ പതിപ്പ് ഉപയോഗിക്കാൻ എപ്പോഴും ശുപാർശ ചെയ്യപ്പെടുന്നു.

അപ്പാച്ചെ പതിപ്പ് പരിശോധിക്കാൻ: httpd -v കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങളുടെ നിലവിലെ പതിപ്പ് പരിശോധിക്കാം.

# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built:   Aug 13 2013 17:29:28

ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് നിങ്ങളുടെ പതിപ്പ് അപ്ഡേറ്റ് ചെയ്യാം.

# yum update httpd
# apt-get install apache2

നിർദ്ദിഷ്uട ഒഎസിലോ കേർണലിലോ മാത്രം പ്രവർത്തിക്കുന്ന ഏതെങ്കിലും പ്രത്യേക ആപ്ലിക്കേഷനുകൾ നിങ്ങൾ പ്രവർത്തിപ്പിക്കുന്നില്ലെങ്കിൽ, നിങ്ങളുടെ കേർണലും ഒഎസും ഏറ്റവും പുതിയ സ്ഥിരതയുള്ള റിലീസുകളിലേക്ക് അപ്uഡേറ്റ് ചെയ്uത് സൂക്ഷിക്കാൻ ശുപാർശ ചെയ്യുന്നു.

4. അനാവശ്യ മൊഡ്യൂളുകൾ പ്രവർത്തനരഹിതമാക്കുക

ഏതെങ്കിലും വെബ് ആക്രമണത്തിന് ഇരയാകാനുള്ള സാധ്യത കുറയ്ക്കുന്നത് എല്ലായ്പ്പോഴും നല്ലതാണ്. അതിനാൽ നിലവിൽ ഉപയോഗത്തിലില്ലാത്ത എല്ലാ മൊഡ്യൂളുകളും പ്രവർത്തനരഹിതമാക്കാൻ ശുപാർശ ചെയ്യുന്നു. ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് വെബ് സെർവറിന്റെ കംപൈൽ ചെയ്ത എല്ലാ മൊഡ്യൂളുകളും ലിസ്റ്റ് ചെയ്യാം.

# grep LoadModule /etc/httpd/conf/httpd.conf

# have to place corresponding `LoadModule' lines at this location so the
# LoadModule foo_module modules/mod_foo.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_alias_module modules/mod_authn_alias.so
LoadModule authn_anon_module modules/mod_authn_anon.so
LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule ldap_module modules/mod_ldap.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule ext_filter_module modules/mod_ext_filter.so
....

സ്ഥിരസ്ഥിതിയായി പ്രവർത്തനക്ഷമമാക്കിയിട്ടുള്ളതും എന്നാൽ പലപ്പോഴും ആവശ്യമില്ലാത്തതുമായ മൊഡ്യൂളുകളുടെ ലിസ്റ്റ് മുകളിലാണ്: mod_imap, mod_include, mod_info, mod_userdir, mod_autoindex. നിർദ്ദിഷ്ട മൊഡ്യൂൾ പ്രവർത്തനരഹിതമാക്കുന്നതിന്, ആ വരിയുടെ തുടക്കത്തിൽ നിങ്ങൾക്ക് ഒരു \# തിരുകുകയും സേവനം പുനരാരംഭിക്കുകയും ചെയ്യാം.

5. അപ്പാച്ചെ പ്രത്യേക ഉപയോക്താവായും ഗ്രൂപ്പായും പ്രവർത്തിപ്പിക്കുക

ഒരു ഡിഫോൾട്ട് ഇൻസ്റ്റലേഷൻ ഉപയോഗിച്ച് അപ്പാച്ചെ അതിന്റെ പ്രക്രിയ ഉപയോക്താവ് ആരുമായും ഡെമണിലും പ്രവർത്തിപ്പിക്കുന്നു. സുരക്ഷാ കാരണങ്ങളാൽ, അപ്പാച്ചെ അതിന്റെ പ്രത്യേകാവകാശമില്ലാത്ത അക്കൗണ്ടിൽ പ്രവർത്തിപ്പിക്കാൻ ശുപാർശ ചെയ്യുന്നു. ഉദാഹരണത്തിന്: http-web.

# groupadd http-web
# useradd -d /var/www/ -g http-web -s /bin/nologin http-web

ഈ പുതിയ ഉപയോക്താവിനൊപ്പം പ്രവർത്തിക്കാൻ നിങ്ങൾ അപ്പാച്ചെയോട് പറയേണ്ടതുണ്ട്, അങ്ങനെ ചെയ്യുന്നതിന്, ഞങ്ങൾ /etc/httpd/conf/httpd.conf എന്നതിൽ ഒരു എൻട്രി നടത്തി സേവനം പുനരാരംഭിക്കേണ്ടതുണ്ട്.

vim എഡിറ്റർ ഉപയോഗിച്ച് /etc/httpd/conf/httpd.conf തുറന്ന് User, Group എന്നീ കീവേഡുകൾക്കായി തിരയുക, അവിടെ നിങ്ങൾ ഉപയോഗിക്കേണ്ട ഉപയോക്തൃനാമവും ഗ്രൂപ്പിന്റെ പേരും വ്യക്തമാക്കേണ്ടതുണ്ട്.

User http-web
Group http-web

6. ഡയറക്uടറികളിലേക്കുള്ള ആക്uസസ് നിയന്ത്രിക്കാൻ അനുവദിക്കുക, നിരസിക്കുക എന്നിവ ഉപയോഗിക്കുക

httpd.conf ഫയലിലെ അനുവദിക്കുക, നിരസിക്കുക എന്നീ ഓപ്uഷനുകളുള്ള ഡയറക്uടറികളിലേക്കുള്ള ആക്uസസ് നമുക്ക് നിയന്ത്രിക്കാം. ഇവിടെ ഈ ഉദാഹരണത്തിൽ, httpd.conf ഫയലിൽ ഇനിപ്പറയുന്നവ സജ്ജീകരിച്ചുകൊണ്ട് ഞങ്ങൾ റൂട്ട് ഡയറക്ടറി സുരക്ഷിതമാക്കും.

<Directory />
   Options None
   Order deny,allow
   Deny from all
</Directory>

  1. ഓപ്ഷനുകൾ ഒന്നുമില്ല - ഈ ഓപ്uഷൻ ഉപയോക്താക്കളെ ഏതെങ്കിലും ഓപ്uഷണൽ ഫീച്ചറുകൾ പ്രവർത്തനക്ഷമമാക്കാൻ അനുവദിക്കില്ല.
  2. ഓർഡർ നിരസിക്കുക, അനുവദിക്കുക - ഇതാണ് നിരസിക്കുക, അനുവദിക്കുക നിർദ്ദേശങ്ങൾ പ്രോസസ്സ് ചെയ്യുന്ന ക്രമം. ഇവിടെ അത് ആദ്യം “നിരസിക്കുകയും” അടുത്തത് “അനുവദിക്കുകയും ചെയ്യും.
  3. എല്ലാവരിൽ നിന്നും നിരസിക്കുക - ഇത് എല്ലാവരുടെയും റൂട്ട് ഡയറക്uടറിയിലേക്കുള്ള അഭ്യർത്ഥന നിരസിക്കും, ആർക്കും റൂട്ട് ഡയറക്uടറി ആക്uസസ് ചെയ്യാൻ കഴിയില്ല.

7. അപ്പാച്ചെ സുരക്ഷിതമാക്കാൻ mod_security, mod_evasive മൊഡ്യൂളുകൾ ഉപയോഗിക്കുക

mod_security, mod_evasive എന്നീ ഈ രണ്ട് മൊഡ്യൂളുകളും സുരക്ഷയുടെ കാര്യത്തിൽ അപ്പാച്ചെയുടെ വളരെ ജനപ്രിയമായ മൊഡ്യൂളുകളാണ്.

mod_security ഞങ്ങളുടെ വെബ് ആപ്ലിക്കേഷനുകൾക്കുള്ള ഫയർവാൾ ആയി പ്രവർത്തിക്കുകയും തത്സമയ അടിസ്ഥാനത്തിൽ ട്രാഫിക് നിരീക്ഷിക്കാൻ ഞങ്ങളെ അനുവദിക്കുകയും ചെയ്യുന്നു. ബ്രൂട്ട് ഫോഴ്uസ് ആക്രമണങ്ങളിൽ നിന്ന് ഞങ്ങളുടെ വെബ്uസൈറ്റുകളെയോ വെബ് സെർവറിനെയോ സംരക്ഷിക്കാനും ഇത് ഞങ്ങളെ സഹായിക്കുന്നു. നിങ്ങളുടെ ഡിഫോൾട്ട് പാക്കേജ് ഇൻസ്റ്റാളറുകളുടെ സഹായത്തോടെ നിങ്ങൾക്ക് നിങ്ങളുടെ സെർവറിൽ mod_security ഇൻസ്റ്റാൾ ചെയ്യാം.

$ sudo apt-get install libapache2-modsecurity
$ sudo a2enmod mod-security
$ sudo /etc/init.d/apache2 force-reload
# yum install mod_security
# /etc/init.d/httpd restart

mod_evasive വളരെ കാര്യക്ഷമമായി പ്രവർത്തിക്കുന്നു, ഇത് പ്രോസസ്സ് ചെയ്യുന്നതിന് ഒരു അഭ്യർത്ഥന ആവശ്യമാണ്, അത് നന്നായി പ്രോസസ്സ് ചെയ്യുന്നു. DDOS ആക്രമണങ്ങളെ അത്രയും നാശം വരുത്തുന്നതിൽ നിന്ന് ഇത് തടയുന്നു. mod_evasive-ന്റെ ഈ സവിശേഷത, HTTP ബ്രൂട്ട് ഫോഴ്uസും Dos അല്ലെങ്കിൽ DDos ആക്രമണവും കൈകാര്യം ചെയ്യാൻ അതിനെ പ്രാപ്uതമാക്കുന്നു. ഈ മൊഡ്യൂൾ മൂന്ന് രീതികൾ ഉപയോഗിച്ച് ആക്രമണങ്ങൾ കണ്ടെത്തുന്നു.

  1. ഒരു സെക്കൻഡിൽ കുറച്ച് തവണ ഒരേ പേജിലേക്ക് നിരവധി അഭ്യർത്ഥനകൾ വന്നാൽ.
  2. ഏതെങ്കിലും ചൈൽഡ് പ്രോസസ്സ് 50-ലധികം സമകാലിക അഭ്യർത്ഥനകൾ നടത്താൻ ശ്രമിക്കുകയാണെങ്കിൽ.
  3. താൽക്കാലികമായി കരിമ്പട്ടികയിൽ പെടുത്തിയിരിക്കുമ്പോൾ ഏതെങ്കിലും ഐപി ഇപ്പോഴും പുതിയ അഭ്യർത്ഥനകൾ നടത്താൻ ശ്രമിക്കുന്നുണ്ടെങ്കിൽ.

mod_evasive ഉറവിടത്തിൽ നിന്ന് നേരിട്ട് ഇൻസ്റ്റാൾ ചെയ്യാൻ കഴിയും. നിങ്ങളുടെ ലിനക്സ് ബോക്സിൽ ഈ അപ്പാച്ചെ മൊഡ്യൂളുകൾ സജ്ജീകരിക്കാൻ സഹായിക്കുന്ന ഈ മൊഡ്യൂളുകളുടെ ഒരു ഇൻസ്റ്റലേഷനും സെറ്റപ്പ് ഗൈഡും ഇവിടെയുണ്ട്.

  1. Mod_Security, Mod_evasive എന്നിവ ഉപയോഗിച്ച് അപ്പാച്ചെ പരിരക്ഷിക്കുക

8. അപ്പാച്ചെയുടെ പിൻവരുന്ന പ്രതീകാത്മക ലിങ്കുകൾ പ്രവർത്തനരഹിതമാക്കുക

ഡിഫോൾട്ടായി അപ്പാച്ചെ സിംലിങ്കുകൾ പിന്തുടരുന്നു, ഓപ്uഷൻ നിർദ്ദേശങ്ങളുള്ള FollowSymLinks ഉപയോഗിച്ച് നമുക്ക് ഈ സവിശേഷത ഓഫാക്കാം. അങ്ങനെ ചെയ്യുന്നതിന് നമ്മൾ പ്രധാന കോൺഫിഗറേഷൻ ഫയലിൽ ഇനിപ്പറയുന്ന എൻട്രി നടത്തേണ്ടതുണ്ട്.

Options -FollowSymLinks

കൂടാതെ, ഏതെങ്കിലും പ്രത്യേക ഉപയോക്താവിനോ വെബ്uസൈറ്റിനോ FollowSymLinks പ്രവർത്തനക്ഷമമാക്കണമെങ്കിൽ, ആ വെബ്uസൈറ്റിൽ നിന്ന് “.htaccess” ഫയലിൽ നമുക്ക് ഒരു നിയമം എഴുതാം.

# Enable symbolic links
Options +FollowSymLinks

ശ്രദ്ധിക്കുക: .htaccess ഫയലിനുള്ളിൽ റീറൈറ്റ് നിയമങ്ങൾ പ്രവർത്തനക്ഷമമാക്കാൻ AllowOverride All ആഗോളതലത്തിൽ പ്രധാന കോൺഫിഗറേഷനിൽ ഉണ്ടായിരിക്കണം.

9. സെർവർ സൈഡ് ഉൾപ്പെടുന്നതും CGI എക്സിക്യൂഷനും ഓഫ് ചെയ്യുക

ആവശ്യമില്ലെങ്കിൽ സെർവർ സൈഡ് (mod_include), CGI എക്uസിക്യൂഷൻ എന്നിവ ഓഫ് ചെയ്യാം, അങ്ങനെ ചെയ്യുന്നതിന് പ്രധാന കോൺഫിഗറേഷൻ ഫയൽ പരിഷ്uക്കരിക്കേണ്ടതുണ്ട്.

Options -Includes
Options -ExecCGI

ഡയറക്uടറി ടാഗ് ഉപയോഗിച്ച് ഒരു പ്രത്യേക ഡയറക്ടറിയിലും ഇത് ചെയ്യാം. ഇവിടെ ഈ ഉദാഹരണത്തിൽ, /var/www/html/web1 ഡയറക്uടറിക്ക് വേണ്ടിയുള്ള Includes, Cgi ഫയൽ എക്uസിക്യൂഷനുകൾ ഞങ്ങൾ ഓഫാക്കുന്നു.

<Directory "/var/www/html/web1">
Options -Includes -ExecCGI
</Directory>

ഓപ്uഷൻ ഡയറക്uടീവ് ഉപയോഗിച്ച് ഓണാക്കാനോ ഓഫാക്കാനോ കഴിയുന്ന മറ്റ് ചില മൂല്യങ്ങൾ ഇതാ.

  1. ഓപ്ഷനുകൾ എല്ലാം - എല്ലാ ഓപ്ഷനുകളും ഒരേസമയം പ്രവർത്തനക്ഷമമാക്കാൻ. ഇതാണ് ഡിഫോൾട്ട് മൂല്യം, നിങ്ങൾക്ക് Apache conf ഫയലിലോ .htaccess-ലോ എന്തെങ്കിലും മൂല്യങ്ങൾ വ്യക്തമായി വ്യക്തമാക്കാൻ താൽപ്പര്യമില്ലെങ്കിൽ.
  2. ഓപ്ഷനുകളിൽ NOEXEC ഉൾപ്പെടുന്നു - ഒരു കമാൻഡിലേക്കോ cgi ഫയലുകളിലേക്കോ എക്സിക്യൂട്ട് അനുമതിയില്ലാതെ സെർവർ സൈഡ് ഉൾപ്പെടുത്താൻ ഈ ഓപ്ഷൻ അനുവദിക്കുന്നു.
  3. ഓപ്uഷനുകൾ മൾട്ടിവ്യൂസ് - mod_negotiation മൊഡ്യൂളിനൊപ്പം ഉള്ളടക്കം ചർച്ച ചെയ്uത മൾട്ടിവ്യൂകൾ അനുവദിക്കുന്നു.
  4. ഓപ്ഷനുകൾ SymLinksIfOwnerMatch - ഇത് FollowSymLinks പോലെയാണ്. പക്ഷേ, ലിങ്കിനും അത് ലിങ്ക് ചെയ്uതിരിക്കുന്ന ഒറിജിനൽ ഡയറക്uടറിക്കും ഇടയിൽ ഉടമ ഒരുപോലെ ആയിരിക്കുമ്പോൾ മാത്രമേ ഇത് പിന്തുടരുകയുള്ളൂ.

10. അഭ്യർത്ഥനയുടെ വലുപ്പം പരിമിതപ്പെടുത്തുക

ഡിഫോൾട്ടായി അപ്പാച്ചെയ്ക്ക് എച്ച്ടിടിപി അഭ്യർത്ഥനയുടെ മൊത്തം വലുപ്പത്തിന് പരിധിയില്ല, അതായത് പരിധിയില്ല, കൂടാതെ നിങ്ങൾ ഒരു വെബ് സെർവറിൽ വലിയ അഭ്യർത്ഥനകൾ അനുവദിക്കുമ്പോൾ, സേവന ആക്രമണങ്ങളുടെ നിഷേധത്തിന് നിങ്ങൾ ഇരയാകാൻ സാധ്യതയുണ്ട്. ഡയറക്uടറി ടാഗ് ഉപയോഗിച്ച് LimitRequestBody എന്ന അപ്പാച്ചെ നിർദ്ദേശത്തിന്റെ അഭ്യർത്ഥനകളുടെ വലുപ്പം നമുക്ക് പരിമിതപ്പെടുത്താം.

ഒരു അഭ്യർത്ഥന ബോഡിയിൽ അനുവദനീയമായ 0 (അൺലിമിറ്റഡ്) മുതൽ 2147483647 (2GB) വരെയുള്ള ബൈറ്റുകളിൽ നിങ്ങൾക്ക് മൂല്യം സജ്ജമാക്കാൻ കഴിയും. നിങ്ങളുടെ സൈറ്റിന്റെ ആവശ്യങ്ങൾക്കനുസരിച്ച് നിങ്ങൾക്ക് ഈ പരിധി സജ്ജമാക്കാൻ കഴിയും, നിങ്ങൾ അപ്uലോഡുകൾ അനുവദിക്കുന്ന ഒരു സൈറ്റ് നിങ്ങൾക്കുണ്ടെന്നും ഒരു പ്രത്യേക ഡയറക്uടറിയുടെ അപ്uലോഡ് വലുപ്പം പരിമിതപ്പെടുത്താൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെന്നും കരുതുക.

ഇവിടെ ഈ ഉദാഹരണത്തിൽ, ഉപയോക്താക്കൾ അപ്uലോഡ് ചെയ്യുന്ന ഫയലുകൾ അടങ്ങുന്ന ഒരു ഡയറക്ടറിയാണ് user_uploads. ഇതിനായി ഞങ്ങൾ 500K പരിധി വെക്കുന്നു.

<Directory "/var/www/myweb1/user_uploads">
   LimitRequestBody 512000
</Directory>

11. DDOS ആക്രമണങ്ങളും കാഠിന്യവും സംരക്ഷിക്കുക

ശരിയാണ്, DDos ആക്രമണങ്ങളിൽ നിന്ന് നിങ്ങളുടെ വെബ്uസൈറ്റ് പൂർണ്ണമായും സംരക്ഷിക്കാൻ നിങ്ങൾക്ക് കഴിയില്ല എന്നത് ശരിയാണ്. ഇതിൽ നിയന്ത്രണമുണ്ടാകാൻ നിങ്ങളെ സഹായിക്കുന്ന ചില നിർദ്ദേശങ്ങൾ ഇതാ.

  1. TimeOut : പരാജയപ്പെടുന്നതിന് മുമ്പ് ചില ഇവന്റുകൾ പൂർത്തിയാകുന്നതിന് സെർവർ കാത്തിരിക്കേണ്ട സമയം സജ്ജമാക്കാൻ ഈ നിർദ്ദേശം നിങ്ങളെ അനുവദിക്കുന്നു. അതിന്റെ ഡിഫോൾട്ട് മൂല്യം 300 സെക്കന്റ് ആണ്. DDOS ആക്രമണങ്ങൾക്ക് വിധേയമായ സൈറ്റുകളിൽ ഈ മൂല്യം കുറവായി നിലനിർത്തുന്നത് നല്ലതാണ്. ഈ മൂല്യം പൂർണ്ണമായും നിങ്ങളുടെ വെബ്uസൈറ്റിൽ നിങ്ങൾക്ക് ലഭിക്കുന്ന അഭ്യർത്ഥനയെ ആശ്രയിച്ചിരിക്കുന്നു. ശ്രദ്ധിക്കുക: CGI സ്ക്രിപ്റ്റുകളിൽ ഇത് പ്രശ്നങ്ങൾ ഉണ്ടാക്കാം.
  2. MaxClients : ഒരേസമയം നൽകുന്ന കണക്ഷനുകളുടെ പരിധി സജ്ജീകരിക്കാൻ ഈ നിർദ്ദേശം നിങ്ങളെ അനുവദിക്കുന്നു. ഈ പരിധിക്ക് ശേഷം ഓരോ പുതിയ കണക്ഷനും ക്യൂവിൽ നിൽക്കും. ഇത് പ്രീഫോർക്കിലും വർക്കറിലും എംപിഎമ്മിലും ലഭ്യമാണ്. ഇതിന്റെ ഡിഫോൾട്ട് മൂല്യം 256 ആണ്.
  3. KeepAliveTimeout : കണക്ഷൻ അടയ്ക്കുന്നതിന് മുമ്പ് സെർവർ തുടർന്നുള്ള അഭ്യർത്ഥനയ്ക്കായി കാത്തിരിക്കുന്ന സമയമാണിത്. ഡിഫോൾട്ട് മൂല്യം 5 സെക്കൻഡാണ്.
  4. LimitRequestFields : ക്ലയന്റുകളിൽ നിന്ന് സ്വീകരിക്കുന്ന HTTP അഭ്യർത്ഥനയുടെ ഹെഡർ ഫീൽഡുകളുടെ എണ്ണത്തിൽ ഒരു പരിധി സജ്ജീകരിക്കാൻ ഇത് ഞങ്ങളെ സഹായിക്കുന്നു. അതിന്റെ ഡിഫോൾട്ട് മൂല്യം 100 ആണ്. നിരവധി http അഭ്യർത്ഥന തലക്കെട്ടുകളുടെ ഫലമായി DDos ആക്രമണങ്ങൾ സംഭവിക്കുകയാണെങ്കിൽ ഈ മൂല്യം കുറയ്ക്കാൻ ശുപാർശ ചെയ്യുന്നു.
  5. LimitRequestFieldSize : HTTP അഭ്യർത്ഥന തലക്കെട്ടിൽ വലുപ്പ പരിധി സജ്ജീകരിക്കാൻ ഇത് ഞങ്ങളെ സഹായിക്കുന്നു.

12. അപ്പാച്ചെ ലോഗിംഗ് പ്രവർത്തനക്ഷമമാക്കുക

നിങ്ങളുടെ OS ലോഗിംഗിൽ നിന്ന് സ്വതന്ത്രമായി ലോഗിംഗ് ചെയ്യാൻ അപ്പാച്ചെ നിങ്ങളെ അനുവദിക്കുന്നു. നിങ്ങളുടെ വെബ് സെർവറുമായി ഇടപഴകിയ ഉപയോക്താക്കൾ നൽകിയ കമാൻഡുകൾ പോലുള്ള കൂടുതൽ വിവരങ്ങൾ അപ്പാച്ചെ ലോഗിംഗ് പ്രവർത്തനക്ഷമമാക്കുന്നതാണ് ബുദ്ധി.

അങ്ങനെ ചെയ്യുന്നതിന് നിങ്ങൾ mod_log_config ഘടകം ഉൾപ്പെടുത്തേണ്ടതുണ്ട്. ലോഗിംഗുമായി ബന്ധപ്പെട്ട മൂന്ന് പ്രധാന നിർദ്ദേശങ്ങൾ അപ്പാച്ചെയിൽ ലഭ്യമാണ്.

  1. TransferLog: ഒരു ലോഗ് ഫയൽ സൃഷ്ടിക്കുന്നു.
  2. ലോഗ് ഫോർമാറ്റ് : ഒരു ഇഷ്uടാനുസൃത ഫോർമാറ്റ് വ്യക്തമാക്കുന്നു.
  3. CustomLog : ഒരു ലോഗ് ഫയൽ സൃഷ്uടിക്കുകയും ഫോർമാറ്റ് ചെയ്യുകയും ചെയ്യുന്നു.

നിങ്ങൾ വെർച്വൽ ഹോസ്റ്റിംഗ് നടത്തുന്ന ഒരു പ്രത്യേക വെബ്uസൈറ്റിനായി നിങ്ങൾക്ക് അവ ഉപയോഗിക്കാനും കഴിയും, അതിനായി നിങ്ങൾ അത് വെർച്വൽ ഹോസ്റ്റ് വിഭാഗത്തിൽ വ്യക്തമാക്കേണ്ടതുണ്ട്. ഉദാഹരണത്തിന്, ലോഗിംഗ് പ്രവർത്തനക്ഷമമാക്കിയ എന്റെ വെബ്uസൈറ്റ് വെർച്വൽ ഹോസ്റ്റ് കോൺഫിഗറേഷൻ ഇതാ.

<VirtualHost *:80>
DocumentRoot /var/www/html/example.com/
ServerName www.example.com
DirectoryIndex index.htm index.html index.php
ServerAlias example.com
ErrorDocument 404 /story.php
ErrorLog /var/log/httpd/example.com_error_log
CustomLog /var/log/httpd/example.com_access_log combined
</VirtualHost>

13. SSL സർട്ടിഫിക്കറ്റുകൾ ഉപയോഗിച്ച് അപ്പാച്ചെ സുരക്ഷിതമാക്കുന്നു

അവസാനത്തേത്, എന്നാൽ ഏറ്റവും കുറഞ്ഞ SSL സർട്ടിഫിക്കറ്റുകളല്ല, SSL സർട്ടിഫിക്കറ്റ് ഉപയോഗിച്ച് ഇൻറർനെറ്റിലൂടെ നിങ്ങളുടെ എല്ലാ ആശയവിനിമയങ്ങളും എൻക്രിപ്റ്റ് ചെയ്ത രീതിയിൽ സുരക്ഷിതമാക്കാൻ കഴിയും. ആളുകൾ അവരുടെ ലോഗിൻ ക്രെഡൻഷ്യലുകൾ തെളിയിച്ച് ലോഗിൻ ചെയ്യുന്ന ഒരു വെബ്uസൈറ്റ് നിങ്ങൾക്കുണ്ടെന്ന് കരുതുക അല്ലെങ്കിൽ ഉൽപ്പന്നങ്ങൾ വാങ്ങുന്നതിന് ആളുകൾ അവരുടെ ബാങ്ക് വിവരങ്ങളോ ഡെബിറ്റ്/ക്രെഡിറ്റ് കാർഡ് വിവരങ്ങളോ നൽകുന്ന ഒരു ഇ-കൊമേഴ്uസ് വെബ്uസൈറ്റ് ഉണ്ടെന്ന് കരുതുക, സ്ഥിരസ്ഥിതിയായി നിങ്ങളുടെ വെബ് സെർവർ ഈ വിശദാംശങ്ങൾ പ്ലെയിൻ - ടെക്uസ്uറ്റിൽ അയയ്uക്കുക. ഫോർമാറ്റ് ചെയ്യുക, എന്നാൽ നിങ്ങൾ നിങ്ങളുടെ വെബ്uസൈറ്റുകളിലേക്ക് SSL സർട്ടിഫിക്കറ്റുകൾ ഉപയോഗിക്കുമ്പോൾ, അപ്പാച്ചെ ഈ വിവരങ്ങളെല്ലാം എൻക്രിപ്റ്റ് ചെയ്ത വാചകത്തിൽ അയയ്ക്കുന്നു.

namecheap.com പോലെയുള്ള നിരവധി SSL ദാതാക്കളിൽ നിന്ന് നിങ്ങൾക്ക് SSl സർട്ടിഫിക്കറ്റുകൾ വാങ്ങാം. നിങ്ങൾ വളരെ ചെറിയ ഒരു വെബ് ബിസിനസ്സ് നടത്തുകയും ഒരു SSL സർട്ടിഫിക്കറ്റ് വാങ്ങാൻ തയ്യാറല്ലെങ്കിൽ, നിങ്ങൾക്ക് ഇപ്പോഴും നിങ്ങളുടെ വെബ്സൈറ്റിലേക്ക് സ്വയം ഒപ്പിട്ട സർട്ടിഫിക്കറ്റ് നൽകാവുന്നതാണ്. SSL സർട്ടിഫിക്കറ്റിനെ പിന്തുണയ്ക്കാൻ Apache mod_ssl മൊഡ്യൂൾ ഉപയോഗിക്കുന്നു.

# openssl genrsa -des3 -out example.com.key 1024
# openssl req -new -key example.com.key -out exmaple.csr
# openssl x509 -req -days 365 -in example.com.com.csr -signkey example.com.com.key -out example.com.com.crt

നിങ്ങളുടെ സർട്ടിഫിക്കറ്റ് സൃഷ്uടിച്ച് ഒപ്പിട്ടുകഴിഞ്ഞാൽ. ഇപ്പോൾ നിങ്ങൾ ഇത് അപ്പാച്ചെ കോൺഫിഗറേഷനിൽ ചേർക്കേണ്ടതുണ്ട്. വിം എഡിറ്റർ ഉപയോഗിച്ച് പ്രധാന കോൺഫിഗറേഷൻ ഫയൽ തുറന്ന് ഇനിപ്പറയുന്ന വരികൾ ചേർത്ത് സേവനം പുനരാരംഭിക്കുക.

<VirtualHost 172.16.25.125:443>
        SSLEngine on
        SSLCertificateFile /etc/pki/tls/certs/example.com.crt
        SSLCertificateKeyFile /etc/pki/tls/certs/example.com.key
        SSLCertificateChainFile /etc/pki/tls/certs/sf_bundle.crt
        ServerAdmin [email 
        ServerName example.com
        DocumentRoot /var/www/html/example/
        ErrorLog /var/log/httpd/example.com-error_log
        CustomLog /var/log/httpd/example.com-access_log common
</VirtualHost>

നിങ്ങളുടെ ബ്രൗസർ തുറക്കുക, https://example.com എന്ന് ടൈപ്പ് ചെയ്യുക, നിങ്ങൾക്ക് സ്വയം ഒപ്പിട്ട പുതിയ സർട്ടിഫിക്കറ്റ് കാണാൻ കഴിയും.

നിങ്ങളുടെ അപ്പാച്ചെ വെബ് സെർവർ ഇൻസ്റ്റാളേഷൻ സുരക്ഷിതമാക്കാൻ ഉപയോഗിക്കാവുന്ന ചില സുരക്ഷാ നുറുങ്ങുകൾ ഇവയാണ്. കൂടുതൽ ഉപയോഗപ്രദമായ സുരക്ഷാ നുറുങ്ങുകൾക്കും ആശയങ്ങൾക്കും, Apache HTTP സെർവറിന്റെ ഔദ്യോഗിക ഓൺലൈൻ ഡോക്യുമെന്റേഷൻ കാണുക.