ഒരു OpenVPN ക്ലയന്റ് താൽക്കാലികമായി നിർത്തുന്നത്: റദ്ദാക്കൽ എന്തുകൊണ്ട് തെറ്റായ ലിവർ
സെഷൻ കൊല്ലുന്നത് പിൻവലിക്കാവുന്നതാണ്; സർട്ടിഫിക്കറ്റ് റദ്ദാക്കുന്നത് അല്ല. ഏത് ലിവർ വേണമെന്ന് തീരുമാനിച്ച്, യോജിക്കുമ്പോൾ മാത്രം CRL വീണ്ടും നിർമ്മിക്കുക.
ഒരു ക്ലയന്റിന്റെ പ്രവേശനം താൽക്കാലികമായി നിർത്തുന്നതും അത് എന്നെന്നേക്കുമായി നീക്കം ചെയ്യുന്നതും, രണ്ടിൽ ഒന്ന് പിൻവലിക്കാൻ ശ്രമിക്കുന്നതുവരെ ഒരേ ജോലിയായി തോന്നും. സർട്ടിഫിക്കറ്റ് റദ്ദാക്കുന്നത് സെർവർ അന്തിമമായി കണക്കാക്കുന്ന ഒരു രേഖ എഴുതുന്നു, അത് പിൻവലിക്കാൻ ഇഷ്യു ചെയ്യുന്നവരുടെ ഡാറ്റാബേസ് കൈകൊണ്ട് തിരുത്തേണ്ടി വരും. പ്രവർത്തിക്കുന്ന ടണൽ ഉപേക്ഷിക്കുന്നത് വിശ്വാസത്തിൽ ഒന്നും മാറ്റാത്ത ഒരു മാനേജ്മെന്റ് കമാൻഡാണ്. അഭ്യർത്ഥന എത്ര അടിയന്തിരമായി തോന്നുന്നു എന്നല്ല, കീ ഇപ്പോഴും വിശ്വസനീയമാണോ എന്ന് ചോദിച്ച് ലിവർ തിരഞ്ഞെടുക്കുക.
വിശ്വാസം: റദ്ദാക്കിയതും താൽക്കാലികമായി നിർത്തിയതും ഒന്നാണ്
ഒരു കരാറുകാരനെ ഒരാഴ്ച താൽക്കാലികമായി നിർത്തുമ്പോൾ പ്രതികരണം റദ്ദാക്കലാണ്, കാരണം റദ്ദാക്കൽ എന്തോ ഓഫ് ചെയ്യുന്നതുപോലെ തോന്നുന്നു. അത് വൃത്തിയായി കാണപ്പെടുന്നു, പത്ത് സെക്കൻഡ് എടുക്കുന്നു, തിരികെയുള്ള ഏകവഴിയായി ഡാറ്റാബേസ് തിരുത്തൽ അവശേഷിപ്പിക്കുന്നു. ഈ പ്രതികരണം മനസ്സിലാക്കാവുന്നതാണ്, അത് വാതിൽ അടയ്ക്കുന്നതിനെക്കാൾ പാസ്പോർട്ട് കത്തിക്കുന്നതിനോട് അടുത്താണ്. താൽക്കാലികമായി നിർത്തിയ ഉപകരണത്തിനും വെളിപ്പെട്ട കീക്കും വ്യത്യസ്ത സമീപനം വേണം, അവയിൽ ഒന്ന് മാത്രമേ വിലകുറഞ്ഞതായി പിൻവലിക്കാനാകൂ.
വ്യത്യാസം വ്യക്തിയിലല്ല, ക്രെഡൻഷ്യലിലാണ്. ഇപ്പോഴും ശരിയായ കൈകളിലുള്ള കീ വിശ്വാസം നഷ്ടപ്പെടുത്താതെ താൽക്കാലികമായി നിർത്തി തുടരാം. പകർത്തിയിരിക്കാവുന്ന കീ ഒരിക്കലും പുനഃസ്ഥാപിക്കരുത്, കാരണം പുനഃസ്ഥാപനം പകർപ്പ് ഇല്ലെന്ന് അവകാശപ്പെടുന്നു.
രണ്ട് സിസ്റ്റങ്ങളിലും തൊടുന്നതിന് മുൻപ് ഉത്തരം എഴുതിവയ്ക്കുക. കീ വെളിപ്പെട്ടോ എന്ന് പറയാനാകുന്നില്ലെങ്കിൽ യാഥാസ്ഥിതിക ഉത്തരം മാറ്റിസ്ഥാപിക്കലാണ്.
മാനേജ്മെന്റ് ഇന്റർഫേസ് ഉപയോഗിച്ച് പ്രവർത്തിക്കുന്ന സെഷൻ ഉപേക്ഷിക്കുക
OpenVPN സെഷനുകൾ ലിസ്റ്റ് ചെയ്യാനും പൊതുനാമം ഉപയോഗിച്ച് അവയിലൊന്ന് കൊല്ലാനും കഴിയുന്ന ഒരു മാനേജ്മെന്റ് ഇന്റർഫേസ് നൽകുന്നു. അത് localhost ൽ സജീവമാക്കുക, പൊതു ഇന്റർഫേസിൽ നിന്ന് അകറ്റി നിർത്തുക, സെഷൻ ഇപ്പോൾ അപ്രത്യക്ഷമാകേണ്ടിവന്നാൽ കൊല്ലാനുള്ള കമാൻഡ് അയയ്ക്കുക. കമാൻഡ് ആ ടണൽ മാത്രം അടയ്ക്കുന്നു, മറ്റെല്ലാ ക്ലയന്റുകളും പ്രവർത്തനം തുടരുന്നു.
ഇത് സജീവമായ പ്രശ്നത്തിനുള്ള പ്രതികരണമാണ്, താൽക്കാലിക നിർത്തലിന്റെ നയമല്ല. അതേ പ്രൊഫൈലിന് ഒരു മിനിറ്റിനുള്ളിൽ വീണ്ടും ബന്ധിപ്പിക്കാം, കാരണം അതിന്റെ ക്രെഡൻഷ്യലിൽ ഒന്നും മാറിയിട്ടില്ല. സെഷൻ പോകേണ്ടിവരികയും സ്ഥിരമായ തീരുമാനം ഇപ്പോഴും എടുക്കുകയും ചെയ്യുമ്പോൾ ഇത് ഉപയോഗിക്കുക.
കൊല്ലുന്നതിന് മുൻപ് സെഷൻ ബന്ധിപ്പിച്ചിരുന്നുവെന്ന് ഉറപ്പാക്കുക, ഒരിക്കലും ബന്ധിപ്പിക്കാത്ത ക്ലയന്റിനെ പിന്തുടരാതിരിക്കാൻ. താഴെയുള്ള സ്റ്റാറ്റസ് കമാൻഡ് ഇപ്പോൾ എന്താണ് ബന്ധിപ്പിച്ചിരിക്കുന്നതെന്ന് പ്രിന്റ് ചെയ്യുന്നു.
printf 'status 2\nquit\n' | nc 127.0.0.1 7506
printf 'kill kiosk-14\nquit\n' | nc 127.0.0.1 7506കൊല്ലാനുള്ള കമാൻഡ് അത്തരം ക്ലയന്റ് ഇല്ലെന്ന് അറിയിച്ചാൽ, സർട്ടിഫിക്കറ്റിലെ പൊതുനാമം നിങ്ങൾ ടൈപ്പ് ചെയ്ത സ്ട്രിംഗ് അല്ല. പ്രൊഫൈൽ ഫയലിന്റെ പേരിന് പകരം സ്റ്റാറ്റസ് ഔട്ട്പുട്ട് വായിക്കുക.
CRL യഥാർത്ഥത്തിൽ നിയന്ത്രിക്കുന്നത്
സർവർ സർട്ടിഫിക്കറ്റിൽ സൂക്ഷിച്ചിരിക്കുന്ന റദ്ദാക്കൽ പതാക പരിശോധിക്കുന്നില്ല. crl-verify ൽ പേരിട്ടിരിക്കുന്ന സർട്ടിഫിക്കറ്റ് റദ്ദാക്കൽ പട്ടിക ഓരോ പുതിയ കണക്ഷനിലും വായിക്കുകയും, ആ പട്ടികയിൽ സീരിയൽ നമ്പർ ഉള്ള സർട്ടിഫിക്കറ്റ് നിരസിക്കുകയും ചെയ്യുന്നു. അതിൽ നിന്ന് രണ്ട് പരിണിതഫലങ്ങൾ ഉണ്ടാകുന്നു, രണ്ടും പ്രവർത്തനപരമായി പ്രധാനമാണ്. ഫയൽ സർവർ തന്റെ അധികാരങ്ങൾ കൈമാറുന്ന അക്കൗണ്ടിന് വായിക്കാവുന്നതായിരിക്കണം, ഇതിനകം ബന്ധിപ്പിച്ച ക്ലയന്റ് വീണ്ടും ബന്ധിപ്പിക്കുന്നതുവരെ പ്രവർത്തിക്കുന്നു.
രണ്ടാമത്തെ പരിണിതഫലം സംഭവങ്ങൾക്കിടയിൽ ആളുകളെ അമ്പരപ്പിക്കുന്നു. സർട്ടിഫിക്കറ്റ് റദ്ദാക്കുന്നത് ഇപ്പോൾ അത് ഉപയോഗിക്കുന്ന ടണൽ അടയ്ക്കുന്നില്ല. സെഷൻ ഉടൻ അവസാനിക്കേണ്ടിവന്നാൽ റദ്ദാക്കലിനൊപ്പം മാനേജ്മെന്റ് കൊല്ലൽ ചേർക്കുക, രണ്ട് പ്രവർത്തനങ്ങളെയും കൈപ്പുസ്തകത്തിൽ വെവ്വേറെ ഘട്ടങ്ങളായി കാണുക.
സർവർ യഥാർത്ഥത്തിൽ എന്ത് നടപ്പാക്കുമെന്ന് കാണാൻ പട്ടിക പരിശോധിക്കുക, അവസാനം പകർത്തിയ ഫയലിന്റെ സമയമുദ്രയിൽ വിശ്വസിക്കുന്നതിന് പകരം. സീരിയൽ നമ്പറുകളുടെ എണ്ണമാണ് പ്രധാന ഭാഗം.
openssl crl -in /etc/openvpn/server/crl.pem -noout -text | sed -n '1,14p'
ls -l /etc/openvpn/server/crl.pemഎൻട്രികളില്ലാത്ത പട്ടികയും ശരിയായ എൻട്രികളുള്ള പട്ടികയും ഡയറക്ടറി ലിസ്റ്റിംഗിൽ ഒരുപോലെ കാണപ്പെടുന്നു, അതിനാൽ സീരിയൽ നമ്പറുകളുടെ എണ്ണം പ്രിന്റ് ചെയ്യുന്നത് മൂല്യവത്താണ്. അനുമതി വരിയും അത്രതന്നെ പ്രധാനമാണ്, കാരണം ഡീമണിന് വായിക്കാനാകാത്ത ഫയൽ നിരസിക്കപ്പെട്ട ക്ലയന്റിനെപ്പോലെ തോന്നുന്ന പരാജയം സൃഷ്ടിക്കുന്നു.
ഒരു രേഖ പുനഃസ്ഥാപിക്കുക, സൂക്ഷ്മതയോടെ
സർട്ടിഫിക്കറ്റ് പുനഃസ്ഥാപിക്കുക എന്നാൽ ഇഷ്യു ഡാറ്റാബേസിലെ ഒരു രേഖ തലകീഴാക്കി പുതിയ പട്ടിക പ്രസിദ്ധീകരിക്കുകയാണ്. easy-rsa 3 ആ ഡാറ്റാബേസ് PKI ഡയറക്ടറിക്ക് കീഴിൽ index.txt ആയി സൂക്ഷിക്കുന്നു, പഴയ ക്രമീകരണങ്ങൾ മറ്റൊരു രീതി ഉപയോഗിച്ചിരുന്നു. ഒരു വരി സ്റ്റാറ്റസ് അക്ഷരത്തോടും കാലഹരണ തീയതിയോടും തുടങ്ങുന്നു. റദ്ദാക്കിയ വരി സീരിയൽ നമ്പർ, സർട്ടിഫിക്കറ്റ് ഫയലിന്റെ പേര്, വേർതിരിക്കുന്ന പേര് എന്നിവയുമായി തുടരുന്നതിന് മുൻപ് റദ്ദാക്കലിനായി ഒരു സമയമുദ്ര ചേർക്കുന്നു. വരി തിരികെ വയ്ക്കുക എന്നാൽ ആ സമയമുദ്ര മായ്ച്ച് അക്ഷരം തലകീഴാക്കുകയും, ബാക്കിയെല്ലാം അതേപടി വിടുകയും ചെയ്യുക.
ആദ്യം ഫയലിന്റെ ബാക്കപ്പ് എടുക്കുക, തിരുത്തൽ ടെക്സ്റ്റ് എഡിറ്ററിൽ ടൈപ്പ് ചെയ്യുന്നതിന് പകരം സ്ക്രിപ്റ്റായി ചെയ്യുക. ഒരു വരിയിൽ എത്ര ഫീൽഡുകൾ ഉണ്ടെന്ന് മാറ്റുന്ന ടൈപ്പോ പിന്നീട് ചേർക്കുന്ന ഓരോ സർട്ടിഫിക്കറ്റിന്റെയും ഇഷ്യൂ ബ്രേക്ക് ചെയ്യുന്നു. അതുകൊണ്ടാണ് മാറ്റം ഓട്ടോമേറ്റ് ചെയ്യുകയും തൊടുന്നതിന് മുൻപ് ഫയൽ പകർത്തുകയും വേണ്ടത്.
അതേ പേരിന്റെ രണ്ടാമത്തെ റദ്ദാക്കലും പലപ്പോഴും പരാജയപ്പെടുന്നു, കാരണം ആദ്യ ഓട്ടം ആ സർട്ടിഫിക്കറ്റും അതിന്റെ കീയും ഉപകരണം പ്രതീക്ഷിക്കുന്ന ഡയറക്ടറികൾക്ക് പുറത്തേക്ക് മാറ്റി. അപ്പോൾ ഉപകരണത്തിന് റദ്ദാക്കാൻ ആവശ്യപ്പെട്ടത് കണ്ടെത്താനാകുന്നില്ല, പിശക് സന്ദേശം എന്തുകൊണ്ടെന്ന് എപ്പോഴും വ്യക്തമാക്കുന്നുമില്ല.
cp /etc/easy-rsa/pki/index.txt /root/index.txt.$(date +%F-%H%M)
grep -c '^R' /etc/easy-rsa/pki/index.txt
easyrsa gen-crlപുതിയ പട്ടിക പ്രസിദ്ധീകരിക്കുക, അതിന്റെ ഉടമസ്ഥത ശരിയാക്കുക, സർവറിനെ അത് വായിപ്പിക്കുക. മിക്ക ഇൻസ്റ്റാളേഷനുകളിലും റീലോഡ് മതി, പക്ഷേ സ്ഥിരീകരണം പുതിയ കണക്ഷനിൽ നിന്ന് വേണം, കാരണം നിലവിലുള്ള സെഷൻ ഒന്നും വീണ്ടും പരിശോധിച്ചിട്ടില്ല.
ഏത് ലിവർ അർഹിക്കുന്നു എന്ന് പരിശോധിക്കുക
മുഴുവൻ കൈപ്പുസ്തകവും തീരുമാനിക്കുന്ന ഒരു ചോദ്യം ചോദിക്കുക: സ്വകാര്യ കീ ഇപ്പോഴും ഉണ്ടായിരിക്കേണ്ടിടത്ത് മാത്രമാണോ. അങ്ങനെയെങ്കിൽ, സെഷൻ കൊല്ലലും രേഖപ്പെടുത്തിയ ഇടവേളയും കേസ് ഉൾക്കൊള്ളുന്നു, സ്ഥിരമായ രേഖ ബാക്കിയാകുന്നില്ല. അല്ലെങ്കിൽ, ഏക സുരക്ഷിത ഉത്തരം പുതിയ കീയാണ്, പഴയ സർട്ടിഫിക്കറ്റ് റദ്ദാക്കിയ നിലയിൽ തുടരുന്നു.
തുടർന്ന് ഫലം കോൺഫിഗറേഷൻ വ്യത്യാസത്താലല്ല, കണക്ഷൻ ശ്രമത്താൽ പരിശോധിക്കുക. വ്യത്യാസം നിങ്ങൾ ഉദ്ദേശിച്ചത് എന്തെന്ന് പറയുന്നു, കണക്ഷൻ സർവർ എന്ത് നടപ്പാക്കുന്നു എന്ന് പറയുന്നു.
openssl crl -in /etc/openvpn/server/crl.pem -noout -text | grep -c 'Serial Number'
printf 'status 2\nquit\n' | nc 127.0.0.1 7506പുനഃസ്ഥാപിച്ച ക്ലയന്റ് ബന്ധിപ്പിച്ച് സ്റ്റാറ്റസ് ഔട്ട്പുട്ടിൽ പ്രത്യക്ഷപ്പെട്ടാൽ രേഖ തിരുത്തൽ പ്രവർത്തിച്ചു. റദ്ദാക്കിയ ക്ലയന്റ് നിരസിക്കപ്പെടുകയും ലോഗ് CRL നാമനിർദ്ദേശം ചെയ്യുകയും ചെയ്താൽ റദ്ദാക്കൽ പ്രവർത്തിച്ചു. അവയ്ക്കിടയിലുള്ളതെല്ലാം അനുമതി അല്ലെങ്കിൽ റീലോഡ് പ്രശ്നമാണ്, അടുത്ത അഭ്യർത്ഥന വരുന്നതിന് മുൻപ് അത് ശരിയാക്കുന്നത് മൂല്യവത്താണ്.