RHCE സീരീസ്: Apache-നുള്ള നെറ്റ്uവർക്ക് സെക്യൂരിറ്റി സർവീസ് (NSS) ഉപയോഗിച്ച് TLS വഴി HTTPS നടപ്പിലാക്കുന്നു - ഭാഗം 8


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

വെബ് ക്ലയന്റുകൾക്കും സെർവറുകൾക്കുമിടയിൽ കൂടുതൽ സുരക്ഷിതമായ ആശയവിനിമയം നൽകുന്നതിനായി, HTTPS പ്രോട്ടോക്കോൾ HTTP, SSL (സെക്യൂർ സോക്കറ്റ്uസ് ലെയർ) അല്ലെങ്കിൽ അടുത്തിടെ TLS (ട്രാൻസ്uപോർട്ട് ലെയർ സെക്യൂരിറ്റി) എന്നിവയുടെ സംയോജനമായി ജനിച്ചു.

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

നിങ്ങളുടെ അപ്പാച്ചെ വെബ് സെർവർ നിങ്ങൾ ഇതിനകം ഇൻസ്റ്റാൾ ചെയ്യുകയും കോൺഫിഗർ ചെയ്യുകയും ചെയ്തിട്ടുണ്ടെന്ന് ഈ ട്യൂട്ടോറിയൽ അനുമാനിക്കുന്നു. ഇല്ലെങ്കിൽ, തുടരുന്നതിന് മുമ്പ് ഈ സൈറ്റിലെ ഇനിപ്പറയുന്ന ലേഖനം പരിശോധിക്കുക.

  1. RHEL/CentOS 7-ൽ LAMP (Linux, MySQL/MariaDB, Apache, PHP) ഇൻസ്റ്റാൾ ചെയ്യുക

OpenSSL, യൂട്ടിലിറ്റികൾ എന്നിവയുടെ ഇൻസ്റ്റാളേഷൻ

ആദ്യം, അപ്പാച്ചെ പ്രവർത്തിക്കുന്നുണ്ടെന്നും http, https എന്നിവ ഫയർവാളിലൂടെ അനുവദനീയമാണെന്നും ഉറപ്പാക്കുക:

# systemctl start http
# systemctl enable http
# firewall-cmd --permanent –-add-service=http
# firewall-cmd --permanent –-add-service=https

തുടർന്ന് ആവശ്യമായ പാക്കേജുകൾ ഇൻസ്റ്റാൾ ചെയ്യുക:

# yum update && yum install openssl mod_nss crypto-utils

പ്രധാനപ്പെട്ടത്: TLS നടപ്പിലാക്കാൻ NSS (നെറ്റ്uവർക്ക് സെക്യൂരിറ്റി സർവീസ്) എന്നതിനുപകരം OpenSSL ലൈബ്രറികൾ ഉപയോഗിക്കണമെങ്കിൽ മുകളിലെ കമാൻഡിൽ mod_nss മാറ്റി mod_ssl ഉപയോഗിച്ച് നിങ്ങൾക്ക് മാറ്റാനാകുമെന്നത് ശ്രദ്ധിക്കുക (ഏത് ഉപയോഗിക്കേണ്ടത് പൂർണ്ണമായും നിങ്ങളുടെ ഇഷ്ടമാണ്, എന്നാൽ ഞങ്ങൾ NSS ഉപയോഗിക്കും. ഈ ലേഖനത്തിൽ ഇത് കൂടുതൽ കരുത്തുറ്റതാണ്; ഉദാഹരണത്തിന്, PKCS #11 പോലുള്ള സമീപകാല ക്രിപ്uറ്റോഗ്രഫി മാനദണ്ഡങ്ങളെ ഇത് പിന്തുണയ്ക്കുന്നു.

അവസാനമായി, നിങ്ങൾ mod_nss അല്ലെങ്കിൽ തിരിച്ചും ഉപയോഗിക്കാൻ തിരഞ്ഞെടുക്കുകയാണെങ്കിൽ mod_ssl അൺഇൻസ്റ്റാൾ ചെയ്യുക.

# yum remove mod_ssl

NSS (നെറ്റ്uവർക്ക് സുരക്ഷാ സേവനം) ക്രമീകരിക്കുന്നു

mod_nss ഇൻസ്റ്റാൾ ചെയ്ത ശേഷം, അതിന്റെ ഡിഫോൾട്ട് കോൺഫിഗറേഷൻ ഫയൽ /etc/httpd/conf.d/nss.conf ആയി സൃഷ്ടിക്കപ്പെടുന്നു. എല്ലാ Listen, VirtualHost നിർദ്ദേശങ്ങളും പോർട്ട് 443 (HTTPS-നുള്ള ഡിഫോൾട്ട് പോർട്ട്):

Listen 443
VirtualHost _default_:443

തുടർന്ന് Apache പുനരാരംഭിച്ച് mod_nss മൊഡ്യൂൾ ലോഡ് ചെയ്തിട്ടുണ്ടോയെന്ന് പരിശോധിക്കുക:

# apachectl restart
# httpd -M | grep nss

അടുത്തതായി, ഇനിപ്പറയുന്ന എഡിറ്റുകൾ /etc/httpd/conf.d/nss.conf കോൺഫിഗറേഷൻ ഫയലിൽ ചെയ്യണം:

1. NSS ഡാറ്റാബേസ് ഡയറക്ടറി സൂചിപ്പിക്കുക. നിങ്ങൾക്ക് ഡിഫോൾട്ട് ഡയറക്ടറി ഉപയോഗിക്കാം അല്ലെങ്കിൽ പുതിയൊരെണ്ണം സൃഷ്ടിക്കാം. ഈ ട്യൂട്ടോറിയലിൽ ഞങ്ങൾ സ്ഥിരസ്ഥിതി ഉപയോഗിക്കും:

NSSCertificateDatabase /etc/httpd/alias

2. /etc/httpd/nss-db-password.conf എന്നതിലെ ഡാറ്റാബേസ് ഡയറക്uടറിയിലേക്ക് പാസ്uവേഡ് സേവ് ചെയ്തുകൊണ്ട് ഓരോ സിസ്റ്റം സ്റ്റാർട്ടിലും മാനുവൽ പാസ്uഫ്രെയ്uസ് എൻട്രി ഒഴിവാക്കുക:

NSSPassPhraseDialog file:/etc/httpd/nss-db-password.conf

/etc/httpd/nss-db-password.conf എന്നതിൽ ഇനിപ്പറയുന്ന വരി മാത്രമേ അടങ്ങിയിട്ടുള്ളൂ, എൻഎസ്എസ് ഡാറ്റാബേസിനായി നിങ്ങൾ പിന്നീട് സജ്ജീകരിക്കുന്ന പാസ്uവേഡ് mypassword ആണ്:

internal:mypassword

കൂടാതെ, അതിന്റെ അനുമതികളും ഉടമസ്ഥാവകാശവും യഥാക്രമം 0640 എന്നും root:apache എന്നും സജ്ജീകരിക്കണം:

# chmod 640 /etc/httpd/nss-db-password.conf
# chgrp apache /etc/httpd/nss-db-password.conf

3. POODLE SSLv3 അപകടസാധ്യത (കൂടുതൽ വിവരങ്ങൾ ഇവിടെ) കാരണം TLSv1.0-ന് മുമ്പുള്ള SSL-ഉം TLS-ന്റെ എല്ലാ പതിപ്പുകളും പ്രവർത്തനരഹിതമാക്കാൻ Red Hat ശുപാർശ ചെയ്യുന്നു.

NSSPprotocol ഡയറക്uടീവിന്റെ എല്ലാ സംഭവങ്ങളും ഇനിപ്പറയുന്ന രീതിയിൽ വായിക്കുന്നുവെന്ന് ഉറപ്പാക്കുക (നിങ്ങൾ മറ്റ് വെർച്വൽ ഹോസ്റ്റുകൾ ഹോസ്റ്റ് ചെയ്യുന്നില്ലെങ്കിൽ ഒരെണ്ണം മാത്രമേ നിങ്ങൾക്ക് കണ്ടെത്താൻ കഴിയൂ):

NSSProtocol TLSv1.0,TLSv1.1

4. ഇത് സ്വയം ഒപ്പിട്ട സർട്ടിഫിക്കറ്റായതിനാൽ അപ്പാച്ചെ പുനരാരംഭിക്കാൻ വിസമ്മതിക്കും കൂടാതെ ഇഷ്യൂവറിനെ സാധുതയുള്ളതായി അംഗീകരിക്കില്ല. ഇക്കാരണത്താൽ, ഈ പ്രത്യേക സാഹചര്യത്തിൽ നിങ്ങൾ ചേർക്കേണ്ടതുണ്ട്:

NSSEnforceValidCerts off

5. കർശനമായി ആവശ്യമില്ലെങ്കിലും, NSS ഡാറ്റാബേസിനായി ഒരു രഹസ്യവാക്ക് സജ്ജീകരിക്കേണ്ടത് പ്രധാനമാണ്:

# certutil -W -d /etc/httpd/alias