Nginx വെബ് സെർവറിന്റെ പ്രകടനം സുരക്ഷിതമാക്കാനും കഠിനമാക്കാനും മെച്ചപ്പെടുത്താനുമുള്ള ആത്യന്തിക ഗൈഡ്


Nginx-നെക്കുറിച്ച് നിങ്ങൾ കേട്ട അത്ഭുതകരമായ കാര്യങ്ങളെ അടിസ്ഥാനമാക്കി, ഒരുപക്ഷേ നിങ്ങൾ ഇത് പരീക്ഷിക്കാൻ തീരുമാനിച്ചിരിക്കാം. ഈ സൈറ്റിൽ ഞങ്ങൾ പ്രസിദ്ധീകരിച്ച വിഷയത്തെക്കുറിച്ചുള്ള ചില ലേഖനങ്ങളിലൂടെ കടന്നുപോയതിന് ശേഷം നിങ്ങളുടെ അപ്പാച്ചെ ഇൻസ്റ്റാളേഷനുകൾ Nginx ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുന്നത് പരിഗണിക്കുന്നത് നിങ്ങൾക്ക് ഇത് വളരെയധികം ഇഷ്ടപ്പെട്ടിരിക്കാം.

അങ്ങനെയെങ്കിൽ, നിങ്ങളുടെ Nginx സെർവറുകളുടെ സുരക്ഷ വർദ്ധിപ്പിക്കുന്നതിനുള്ള 12 നുറുങ്ങുകൾ ഞങ്ങൾ ഉൾക്കൊള്ളാൻ പോകുന്നതിനാൽ ഈ ഗൈഡിനെ നിങ്ങൾ ഇരു കൈകളും നീട്ടി സ്വീകരിക്കുമെന്ന് എനിക്ക് ഉറപ്പുണ്ട് (Nginx-നെ കാലികമായി നിലനിർത്തുന്നത് മുതൽ TLS ഉപയോഗിക്കുന്നതും HTTP-യിലേക്ക് റീഡയറക്uടുചെയ്യുന്നതും വരെ. HTTPS), അവയിൽ ചിലത് നിങ്ങൾ അപ്പാച്ചെ ഉപയോഗിച്ച് ചെയ്യുന്നതുമായി വളരെ സാമ്യമുള്ളതാണെന്ന് നിങ്ങൾ ശ്രദ്ധിക്കും.

നഷ്ടപ്പെടുത്തരുത്:

ഈ ഗൈഡിൽ ഞങ്ങൾ ഇനിപ്പറയുന്ന പരിസ്ഥിതി ഉപയോഗിക്കും:

  1. Debian GNU/Linux 8.1 (jessie).
  2. ഐപി വിലാസം: 192.168.0.25 (tecmintlovesnginx.com) കൂടാതെ 192.168.0.26 (nginxmeanspower.com), എന്നതിലെ IP-അധിഷ്ഠിത വെർച്വൽ ഹോസ്റ്റ് വിഭാഗത്തിൽ വിവരിച്ചിരിക്കുന്നത് പോലെ
    1. “Nginx ഉപയോഗിച്ച് നെയിം അധിഷ്uഠിതവും IP-അധിഷ്uഠിതവുമായ വെർച്വൽ ഹോസ്റ്റുകൾ (സെർവർ ബ്ലോക്കുകൾ) എങ്ങനെ സജ്ജീകരിക്കാം“

    അത് മനസ്സിൽ വെച്ചുകൊണ്ട്, നമുക്ക് ആരംഭിക്കാം.

    നുറുങ്ങ് #1: Nginx കാലികമായി നിലനിർത്തുക

    ഇത് എഴുതുന്ന സമയത്ത്, CentOS (EPEL-ൽ), ഡെബിയൻ ശേഖരണങ്ങളിലെ ഏറ്റവും പുതിയ Nginx പതിപ്പുകൾ യഥാക്രമം 1.6.3, 1.6.2-5 എന്നിവയാണ്.

    സോഴ്uസ് കോഡിൽ നിന്ന് പ്രോഗ്രാം കംപൈൽ ചെയ്യുന്നതിനേക്കാൾ എളുപ്പമാണെങ്കിലും റിപ്പോസിറ്ററികളിൽ നിന്ന് സോഫ്റ്റ്uവെയർ ഇൻസ്റ്റാൾ ചെയ്യുന്നത് ഈ അവസാന ഓപ്ഷന് രണ്ട് ഗുണങ്ങളുണ്ട്: 1) Nginx-ലേക്ക് അധിക മൊഡ്യൂളുകൾ നിർമ്മിക്കാൻ ഇത് നിങ്ങളെ അനുവദിക്കുന്നു (mod_security പോലെ), കൂടാതെ 2) ഇത് എല്ലായ്പ്പോഴും ഒരു പുതിയ പതിപ്പ് നൽകും. റിപ്പോസിറ്ററികളേക്കാൾ (ഇന്നത്തെ 1.9.9). റിലീസ് കുറിപ്പുകൾ എല്ലായ്പ്പോഴും Nginx വെബ്uസൈറ്റിൽ ലഭ്യമാണ്.

    നഷ്ടപ്പെടുത്തരുത്:

    ടിപ്പ് #2: Nginx-ൽ അനാവശ്യ മൊഡ്യൂളുകൾ നീക്കം ചെയ്യുക

    ഉറവിടത്തിൽ നിന്ന് ഇൻസ്റ്റാൾ ചെയ്യുമ്പോൾ Nginx-ൽ നിന്ന് മൊഡ്യൂളുകൾ വ്യക്തമായി നീക്കംചെയ്യുന്നതിന്, ഇനിപ്പറയുന്നവ ചെയ്യുക:

    # ./configure --without-module1 --without-module2 --without-module3
    

    ഉദാഹരണത്തിന്:

    # ./configure  --without-http_dav_module --withouthttp_spdy_module 
    

    നിങ്ങൾ ഊഹിക്കുന്നതുപോലെ, ഉറവിടത്തിൽ നിന്ന് മുമ്പത്തെ Nginx ഇൻസ്റ്റാളേഷനിൽ നിന്ന് മൊഡ്യൂളുകൾ നീക്കംചെയ്യുന്നതിന് വീണ്ടും സമാഹാരം നടത്തേണ്ടതുണ്ട്.

    ഒരു മുന്നറിയിപ്പ്: കോൺഫിഗറേഷൻ നിർദ്ദേശങ്ങൾ മൊഡ്യൂളുകൾ വഴിയാണ് നൽകുന്നത്. നിങ്ങൾക്ക് ആവശ്യമായ നിർദ്ദേശങ്ങൾ ഉൾക്കൊള്ളുന്ന ഒരു മൊഡ്യൂൾ പ്രവർത്തനരഹിതമാക്കുന്നില്ലെന്ന് ഉറപ്പാക്കുക! മൊഡ്യൂളുകൾ പ്രവർത്തനരഹിതമാക്കുന്നത് സംബന്ധിച്ച് തീരുമാനമെടുക്കുന്നതിന് മുമ്പ് ഓരോ മൊഡ്യൂളിലും ലഭ്യമായ നിർദ്ദേശങ്ങളുടെ ലിസ്റ്റിനായി നിങ്ങൾ nginx ഡോക്uസ് പരിശോധിക്കണം.

    നുറുങ്ങ് #3: Nginx-ൽ സെർവർ_ടോക്കണുകളുടെ നിർദ്ദേശം പ്രവർത്തനരഹിതമാക്കുക

    server_tokens നിർദ്ദേശം Nginx-നോട് അതിന്റെ നിലവിലെ പതിപ്പ് പിശക് പേജുകളിൽ പ്രദർശിപ്പിക്കാൻ പറയുന്നു. ആ നിർദ്ദിഷ്uട പതിപ്പിലെ അറിയപ്പെടുന്ന കേടുപാടുകൾ മൂലം നിങ്ങളുടെ വെബ് സെർവറിലെ ആക്രമണങ്ങൾ തടയുന്നതിന് ആ വിവരങ്ങൾ ലോകവുമായി പങ്കിടാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നില്ല എന്നതിനാൽ ഇത് അഭികാമ്യമല്ല.

    server_tokens നിർദ്ദേശം പ്രവർത്തനരഹിതമാക്കാൻ, ഒരു സെർവർ ബ്ലോക്കിനുള്ളിൽ ഓഫ് ആണെങ്കിൽ സജ്ജമാക്കുക:

    server {
        listen       192.168.0.25:80;
        server_tokens        off;
        server_name  tecmintlovesnginx.com www.tecmintlovesnginx.com;
        access_log  /var/www/logs/tecmintlovesnginx.access.log;
        error_log  /var/www/logs/tecmintlovesnginx.error.log error;
            root   /var/www/tecmintlovesnginx.com/public_html;
            index  index.html index.htm;
    }
    

    nginx പുനരാരംഭിച്ച് മാറ്റങ്ങൾ പരിശോധിക്കുക:

    നുറുങ്ങ് #4: Nginx-ലെ HTTP ഉപയോക്തൃ ഏജന്റുമാരെ നിരസിക്കുക

    ഒരു വെബ് സെർവറിനെതിരായ ഉള്ളടക്ക ചർച്ചകൾക്കായി ഉപയോഗിക്കുന്ന ഒരു സോഫ്റ്റ്uവെയറാണ് HTTP ഉപയോക്തൃ ഏജന്റ്. സിസ്റ്റം ഉറവിടങ്ങൾ പാഴാക്കി നിങ്ങളുടെ വെബ് സെർവറിന്റെ പ്രകടനത്തെ ബാധിച്ചേക്കാവുന്ന ക്ഷുദ്രവെയർ ബോട്ടുകളും ക്രാളറുകളും ഇതിൽ ഉൾപ്പെടുന്നു.

    ആവശ്യമില്ലാത്ത ഉപയോക്തൃ ഏജന്റുമാരുടെ ലിസ്റ്റ് കൂടുതൽ എളുപ്പത്തിൽ പരിപാലിക്കുന്നതിന്, ഇനിപ്പറയുന്ന ഉള്ളടക്കങ്ങളുള്ള ഒരു ഫയൽ (/etc/nginx/blockuseragents.rules) സൃഷ്ടിക്കുക:

    map $http_user_agent $blockedagent {
            default         0;
            ~*malicious     1;
            ~*bot           1;
            ~*backdoor      1;
            ~*crawler       1;
            ~*bandit        1;
    }
    

    അടുത്തതായി, സെർവർ ബ്ലോക്ക് നിർവചനത്തിന് മുമ്പായി ഇനിപ്പറയുന്ന വരി സ്ഥാപിക്കുക:

    include /etc/nginx/blockuseragents.rules;
    

    ഉപയോക്തൃ ഏജന്റ് സ്ട്രിംഗ് മുകളിൽ നിർവചിച്ചിരിക്കുന്ന ബ്ലാക്ക് ലിസ്റ്റിലാണെങ്കിൽ 403 പ്രതികരണം നൽകാനുള്ള if സ്റ്റേറ്റ്uമെന്റ്:

    nginx പുനരാരംഭിക്കുക, മുകളിൽ പറഞ്ഞവയുമായി പൊരുത്തപ്പെടുന്ന എല്ലാ ഉപയോക്തൃ ഏജന്റുമാരെയും നിങ്ങളുടെ വെബ് സെർവർ ആക്uസസ് ചെയ്യുന്നതിൽ നിന്ന് തടയും. നിങ്ങളുടെ സെർവറിന്റെ IP ഉപയോഗിച്ച് 192.168.0.25 മാറ്റിസ്ഥാപിക്കുക, wget-ന്റെ --user-agent സ്വിച്ചിനായി മറ്റൊരു സ്ട്രിംഗ് തിരഞ്ഞെടുക്കാൻ മടിക്കേണ്ടതില്ല:

    # wget http://192.168.0.25/index.html
    # wget --user-agent "I am a bandit haha" http://192.168.0.25/index.html 
    

    ടിപ്പ് #5: Nginx-ൽ ആവശ്യമില്ലാത്ത HTTP രീതികൾ പ്രവർത്തനരഹിതമാക്കുക

    ക്രിയകൾ എന്നും അറിയപ്പെടുന്നു, HTTP രീതികൾ Nginx നൽകുന്ന ഒരു റിസോഴ്സിൽ സ്വീകരിക്കേണ്ട നടപടിയെ സൂചിപ്പിക്കുന്നു. പൊതുവായ വെബ്uസൈറ്റുകൾക്കും ആപ്ലിക്കേഷനുകൾക്കും, നിങ്ങൾ GET, POST, HEAD എന്നിവ മാത്രം അനുവദിക്കുകയും മറ്റുള്ളവയെല്ലാം പ്രവർത്തനരഹിതമാക്കുകയും വേണം.

    അങ്ങനെ ചെയ്യുന്നതിന്, ഒരു സെർവർ ബ്ലോക്കിനുള്ളിൽ ഇനിപ്പറയുന്ന വരികൾ സ്ഥാപിക്കുക. ഒരു 444 HTTP പ്രതികരണം അർത്ഥമാക്കുന്നത് ശൂന്യമായ പ്രതികരണമാണ്, ഇത് ക്ഷുദ്രവെയർ ആക്രമണങ്ങളെ കബളിപ്പിക്കാൻ Nginx-ൽ പലപ്പോഴും ഉപയോഗിക്കുന്നു:

    if ($request_method !~ ^(GET|HEAD|POST)$) {
       return 444;
    }
    

    പരിശോധിക്കുന്നതിന്, ഒരു ഇല്ലാതാക്കൽ അഭ്യർത്ഥന അയയ്uക്കുന്നതിന് curl ഉപയോഗിക്കുക, നിങ്ങൾ ഒരു സാധാരണ GET അയയ്uക്കുമ്പോൾ ഔട്ട്uപുട്ട് താരതമ്യം ചെയ്യുക:

    # curl -X DELETE http://192.168.0.25/index.html
    # curl -X POST http://192.168.0.25/index.html 
    

    ടിപ്പ് #6: Nginx-ൽ ബഫർ വലുപ്പ പരിധികൾ സജ്ജമാക്കുക

    നിങ്ങളുടെ Nginx വെബ് സെർവറിനെതിരായ ബഫർ ഓവർഫ്ലോ ആക്രമണങ്ങൾ തടയാൻ, ഇനിപ്പറയുന്ന നിർദ്ദേശങ്ങൾ ഒരു പ്രത്യേക ഫയലിൽ സജ്ജമാക്കുക (ഉദാഹരണത്തിന്, /etc/nginx/conf.d/buffer.conf എന്ന പേരിൽ ഒരു പുതിയ ഫയൽ സൃഷ്ടിക്കുക):

    client_body_buffer_size  1k;
    client_header_buffer_size 1k;
    client_max_body_size 1k;
    large_client_header_buffers 2 1k;
    

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

    തുടർന്ന് കോൺഫിഗറേഷൻ ഫയലിൽ ഉൾപ്പെടുത്തിയ നിർദ്ദേശം ചേർക്കുക:

    include /etc/nginx/conf.d/*.conf;
    

    ടിപ്പ് #7: Nginx-ൽ IP വഴിയുള്ള കണക്ഷനുകളുടെ എണ്ണം പരിമിതപ്പെടുത്തുക

    IP മുഖേനയുള്ള കണക്ഷനുകൾ പരിമിതപ്പെടുത്തുന്നതിന്, limit_conn_zone (ഒരു http സന്ദർഭത്തിൽ അല്ലെങ്കിൽ കുറഞ്ഞത് സെർവർ ബ്ലോക്കിന് പുറത്ത്) കൂടാതെ limit_conn (ഒരു http, സെർവർ ബ്ലോക്ക് അല്ലെങ്കിൽ ലൊക്കേഷൻ സന്ദർഭത്തിൽ) നിർദ്ദേശങ്ങൾ ഉപയോഗിക്കുക.

    എന്നിരുന്നാലും, എല്ലാ കണക്ഷനുകളും കണക്കാക്കില്ല - എന്നാൽ സെർവർ പ്രോസസ്സ് ചെയ്ത ഒരു അഭ്യർത്ഥന ഉള്ളവയും അതിന്റെ മുഴുവൻ അഭ്യർത്ഥന തലക്കെട്ടും മാത്രമേ വായിച്ചിട്ടുള്ളൂ എന്നത് ഓർമ്മിക്കുക.

    ഉദാഹരണത്തിന്, addr എന്ന് പേരുള്ള ഒരു സോണിൽ (അതെ, ഇത് അതിശയോക്തിപരമാണ്, എന്നാൽ ഈ സാഹചര്യത്തിൽ ഇത് നന്നായി പ്രവർത്തിക്കും) പരമാവധി കണക്ഷനുകളുടെ എണ്ണം 1 ആയി സജ്ജീകരിക്കാം (നിങ്ങൾക്ക് ഇത് എന്ത് വേണമെങ്കിലും സജ്ജമാക്കാം). നിങ്ങൾ ആഗ്രഹിക്കുന്ന പേര്):

    limit_conn_zone $binary_remote_addr zone=addr:5m;
    limit_conn addr 1;
    

    അപ്പാച്ചെ ബെഞ്ച്മാർക്ക് (Nginx ലോഡ് നടത്തുക) ഉള്ള ഒരു ലളിതമായ ടെസ്റ്റ്, അവിടെ 10 മൊത്തം കണക്ഷനുകൾ 2 ഒരേ സമയത്തുള്ള അഭ്യർത്ഥനകൾ ഉപയോഗിച്ച് ഞങ്ങളുടെ പോയിന്റ് പ്രകടിപ്പിക്കാൻ ഞങ്ങളെ സഹായിക്കും:

    # ab -n 10 -c 2 http://192.168.0.25/index.html
    

    കൂടുതൽ വിശദാംശങ്ങൾക്ക് അടുത്ത നുറുങ്ങ് കാണുക.

    നുറുങ്ങ് #8: Nginx-നുള്ള സജ്ജീകരണ മോണിറ്റർ ലോഗുകൾ

    മുമ്പത്തെ ടിപ്പിൽ വിവരിച്ചിരിക്കുന്ന പരിശോധന നിങ്ങൾ നടത്തിക്കഴിഞ്ഞാൽ, സെർവർ ബ്ലോക്കിനായി നിർവചിച്ചിരിക്കുന്ന പിശക് ലോഗ് പരിശോധിക്കുക:

    ടിപ്പ് #7-ൽ നിർവചിച്ചിരിക്കുന്ന addr സോണിലേക്ക് നടത്തിയ പരാജയപ്പെട്ട അഭ്യർത്ഥനകൾക്കായി ലോഗുകൾ ഫിൽട്ടർ ചെയ്യാൻ നിങ്ങൾക്ക് grep ഉപയോഗിക്കേണ്ടി വന്നേക്കാം:

    # grep addr /var/www/logs/tecmintlovesnginx.error.log --color=auto
    

    അതുപോലെ, നിങ്ങൾക്ക് താൽപ്പര്യമുള്ള വിവരങ്ങൾക്കായി ആക്സസ് ലോഗ് ഫിൽട്ടർ ചെയ്യാം, ഇനിപ്പറയുന്നവ:

    1. ക്ലയന്റ് ഐപി
    2. ബ്രൗസർ തരം
    3. HTTP അഭ്യർത്ഥന തരം
    4. വിഭവം അഭ്യർത്ഥിച്ചു
    5. അഭ്യർത്ഥനയ്ക്ക് ഉത്തരം നൽകുന്ന സെർവർ ബ്ലോക്ക് (ഒരേ ഫയലിലേക്ക് നിരവധി വെർച്വൽ ഹോസ്റ്റുകൾ ലോഗിൻ ചെയ്യുകയാണെങ്കിൽ ഉപയോഗപ്രദമാണ്).

    എന്തെങ്കിലും അസാധാരണമോ അനാവശ്യമോ ആയ പ്രവർത്തനം കണ്ടെത്തിയാൽ ഉചിതമായ നടപടി സ്വീകരിക്കുക.

    ടിപ്പ് #9: Nginx-ൽ ഇമേജ് ഹോട്ട്uലിങ്കിംഗ് തടയുക

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

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

    location /img/ {
      valid_referers none blocked 192.168.0.25;
       if ($invalid_referer) {
         return   403;
       }
    }
    

    തുടർന്ന് ഓരോ വെർച്വൽ ഹോസ്റ്റിലെയും index.html ഫയൽ ഇനിപ്പറയുന്ന രീതിയിൽ പരിഷ്uക്കരിക്കുക:

    ഇപ്പോൾ ഓരോ സൈറ്റിലേക്കും ബ്രൗസ് ചെയ്യുക, നിങ്ങൾക്ക് കാണാനാകുന്നതുപോലെ, ചിത്രം 192.168.0.25-ൽ ശരിയായി പ്രദർശിപ്പിച്ചിരിക്കുന്നു, എന്നാൽ പകരം 192.168.0.26-ൽ 403 പ്രതികരണം ലഭിക്കുന്നു:

    ഈ നുറുങ്ങ് റഫറർ ഫീൽഡ് അയയ്ക്കുന്ന വിദൂര ബ്രൗസറിനെ ആശ്രയിച്ചിരിക്കുന്നു എന്നത് ശ്രദ്ധിക്കുക.

    നുറുങ്ങ് #10: SSL പ്രവർത്തനരഹിതമാക്കി Nginx-ൽ TLS മാത്രം പ്രവർത്തനക്ഷമമാക്കുക

    സാധ്യമാകുമ്പോഴെല്ലാം, അതിന്റെ ഏതെങ്കിലും പതിപ്പിൽ SSL ഒഴിവാക്കാൻ ആവശ്യമായതെല്ലാം ചെയ്യുക, പകരം TLS ഉപയോഗിക്കുക. ഇനിപ്പറയുന്ന ssl_protocols നിങ്ങളുടെ വെർച്വൽ ഹോസ്റ്റ് ഫയലിൽ ഒരു സെർവറിലോ http സന്ദർഭത്തിലോ സ്ഥാപിക്കണം അല്ലെങ്കിൽ ഉൾപ്പെടുത്തിയ നിർദ്ദേശം വഴിയുള്ള ഒരു പ്രത്യേക ഫയലാണ് (ചില ആളുകൾ ssl.conf എന്ന പേരിൽ ഒരു ഫയൽ ഉപയോഗിക്കുന്നു. , എന്നാൽ ഇത് പൂർണ്ണമായും നിങ്ങളുടേതാണ്):

    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    

    ഉദാഹരണത്തിന്:

    ടിപ്പ് #11: Nginx-ൽ സർട്ടിഫിക്കറ്റുകൾ സൃഷ്ടിക്കുക

    ആദ്യം, ഒരു കീയും സർട്ടിഫിക്കറ്റും സൃഷ്ടിക്കുക. നിങ്ങൾക്ക് വേണമെങ്കിൽ മറ്റൊരു തരത്തിലുള്ള എൻക്രിപ്ഷൻ ഉപയോഗിക്കാൻ മടിക്കേണ്ടതില്ല:

    # openssl genrsa -aes256 -out tecmintlovesnginx.key 1024
    # openssl req -new -key tecmintlovesnginx.key -out tecmintlovesnginx.csr
    # cp tecmintlovesnginx.key tecmintlovesnginx.key.org
    # openssl rsa -in tecmintlovesnginx.key.org -out tecmintlovesnginx.key
    # openssl x509 -req -days 365 -in tecmintlovesnginx.csr -signkey tecmintlovesnginx.key -out tecmintlovesnginx.crt
    

    അടുത്ത ടിപ്പിനുള്ള (http --> https റീഡയറക്uഷൻ) തയ്യാറെടുപ്പിനായി ഒരു പ്രത്യേക സെർവർ ബ്ലോക്കിനുള്ളിൽ ഇനിപ്പറയുന്ന വരികൾ ചേർക്കുക കൂടാതെ SSL-മായി ബന്ധപ്പെട്ട നിർദ്ദേശങ്ങൾ പുതിയ ബ്ലോക്കിലേക്കും നീക്കുക:

    server {
        listen 192.168.0.25:443 ssl;
        server_tokens off;
        server_name  tecmintlovesnginx.com www.tecmintlovesnginx.com;
        root   /var/www/tecmintlovesnginx.com/public_html;
        ssl_certificate /etc/nginx/sites-enabled/certs/tecmintlovesnginx.crt;
        ssl_certificate_key /etc/nginx/sites-enabled/certs/tecmintlovesnginx.key;
        ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    }
    

    അടുത്ത നുറുങ്ങിൽ, ഞങ്ങളുടെ സൈറ്റ് ഇപ്പോൾ എങ്ങനെയാണ് സ്വയം ഒപ്പിട്ട സർട്ടിഫിക്കറ്റും TLS ഉം ഉപയോഗിക്കുന്നത് എന്ന് ഞങ്ങൾ പരിശോധിക്കും.

    ടിപ്പ് #12: Nginx-ലെ HTTPS-ലേക്ക് HTTP ട്രാഫിക് റീഡയറക്ട് ചെയ്യുക

    ആദ്യത്തെ സെർവർ ബ്ലോക്കിലേക്ക് ഇനിപ്പറയുന്ന വരി ചേർക്കുക:

    return 301 https://$server_name$request_uri;
    

    മുകളിലെ നിർദ്ദേശം ഒരു 301 (ശാശ്വതമായി നീക്കി) പ്രതികരണം നൽകും, അത് നിങ്ങളുടെ വെർച്വൽ ഹോസ്റ്റിന്റെ പോർട്ട് 80-ലേക്ക് ഒരു അഭ്യർത്ഥന നടത്തുമ്പോഴെല്ലാം ശാശ്വതമായ URL റീഡയറക്uടിനായി ഉപയോഗിക്കും, കൂടാതെ ഞങ്ങൾ മുമ്പത്തെ ടിപ്പിൽ ചേർത്ത സെർവർ ബ്ലോക്കിലേക്ക് അഭ്യർത്ഥന റീഡയറക്uട് ചെയ്യും.

    ചുവടെയുള്ള ചിത്രം റീഡയറക്uഷൻ കാണിക്കുകയും എൻക്രിപ്uഷനായി ഞങ്ങൾ TLS 1.2, AES-256 എന്നിവ ഉപയോഗിക്കുന്നുവെന്ന വസ്തുത സ്ഥിരീകരിക്കുകയും ചെയ്യുന്നു:

    സംഗ്രഹം

    ഈ ലേഖനത്തിൽ നിങ്ങളുടെ Nginx വെബ് സെർവർ സുരക്ഷിതമാക്കുന്നതിനുള്ള ചില നുറുങ്ങുകൾ ഞങ്ങൾ പങ്കിട്ടു. നിങ്ങൾ എന്താണ് ചിന്തിക്കുന്നതെന്ന് കേൾക്കാൻ ഞങ്ങൾ ആഗ്രഹിക്കുന്നു, കൂടാതെ മറ്റ് കമ്മ്യൂണിറ്റികളുമായി പങ്കിടാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്ന മറ്റ് നുറുങ്ങുകൾ നിങ്ങൾക്കുണ്ടെങ്കിൽ, ചുവടെയുള്ള അഭിപ്രായ ഫോം ഉപയോഗിച്ച് ഞങ്ങൾക്ക് ഒരു കുറിപ്പ് അയച്ചുകൊണ്ട് ഞങ്ങളെ അറിയിക്കാൻ മടിക്കേണ്ടതില്ല.