CentOS/RHEL 7-ൽ കഠിനവും പ്രതീകാത്മകവുമായ ലിങ്കുകൾ എങ്ങനെ സംരക്ഷിക്കാം


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

സിംലിങ്ക് റേസ് ആണ് ഒരു പൊതു അപകടസാധ്യത. ഒരു പ്രോഗ്രാം സുരക്ഷിതമല്ലാത്ത രീതിയിൽ ഫയലുകൾ (പ്രത്യേകിച്ച് താത്കാലിക ഫയലുകൾ) സൃഷ്uടിക്കുമ്പോൾ അത് സംഭവിക്കുന്നത് സോഫ്uറ്റ്uവെയറിലെ ഒരു സുരക്ഷാ അപകടമാണ്, ഒരു ക്ഷുദ്രകരമായ സിസ്റ്റം ഉപയോക്താവിന് അത്തരം ഒരു ഫയലിലേക്ക് ഒരു പ്രതീകാത്മക (സോഫ്റ്റ്) ലിങ്ക് സൃഷ്uടിക്കാൻ കഴിയും.

ഇത് പ്രായോഗികമായി സംഭവിക്കുന്നു; ഒരു താൽക്കാലിക ഫയൽ നിലവിലുണ്ടോ ഇല്ലയോ എന്ന് ഒരു പ്രോഗ്രാം പരിശോധിക്കുന്നു, ഇല്ലെങ്കിൽ, അത് ഫയൽ സൃഷ്ടിക്കുന്നു. എന്നാൽ ഫയൽ പരിശോധിക്കുന്നതിനും സൃഷ്uടിക്കുന്നതിനും ഇടയിലുള്ള ആ ചെറിയ കാലയളവിനുള്ളിൽ, ഒരു ആക്രമണകാരിക്ക് ഒരു ഫയലിലേക്ക് ഒരു പ്രതീകാത്മക ലിങ്ക് സൃഷ്uടിക്കാൻ കഴിയും, അയാൾക്ക് അല്ലെങ്കിൽ അവൾക്ക് ആക്uസസ് ചെയ്യാൻ അനുവാദമില്ല.

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

അതിനാൽ, ഈ ലേഖനത്തിൽ, CentOS/RHEL 7 വിതരണങ്ങളിലെ ക്ഷുദ്ര ഉപയോക്താക്കളിൽ നിന്നോ ഹാക്കർമാരിൽ നിന്നോ കഠിനവും പ്രതീകാത്മകവുമായ ലിങ്കുകൾ എങ്ങനെ സുരക്ഷിതമാക്കാമെന്ന് ഞങ്ങൾ നിങ്ങളെ കാണിക്കും.

CentOS/RHEL 7-ൽ ഒരു സുപ്രധാന സുരക്ഷാ ഫീച്ചർ നിലവിലുണ്ട്, അത് താഴെ വിവരിച്ചിരിക്കുന്നതുപോലെ ചില വ്യവസ്ഥകൾ പാലിക്കുന്നുണ്ടെങ്കിൽ മാത്രം പ്രോഗ്രാമുകൾ സൃഷ്uടിക്കാനോ പിന്തുടരാനോ മാത്രമേ ലിങ്കുകൾ അനുവദിക്കൂ.

ഒരു സിസ്റ്റം ഉപയോക്താവിന് ഒരു ലിങ്ക് സൃഷ്uടിക്കുന്നതിന്, ഇനിപ്പറയുന്ന വ്യവസ്ഥകളിൽ ഒന്ന് പാലിക്കേണ്ടതുണ്ട്.

  • ഉപയോക്താവിന് അവന്റെ അല്ലെങ്കിൽ അവളുടെ ഉടമസ്ഥതയിലുള്ള ഫയലുകളിലേക്ക് മാത്രമേ ലിങ്ക് ചെയ്യാൻ കഴിയൂ.
  • അവൻ അല്ലെങ്കിൽ അവൾ ലിങ്ക് ചെയ്യാൻ ആഗ്രഹിക്കുന്ന ഒരു ഫയലിലേക്ക് ഉപയോക്താവിന് ആദ്യം വായിക്കാനും എഴുതാനുമുള്ള ആക്uസസ് ഉണ്ടായിരിക്കണം.

സ്റ്റിക്കി ബിറ്റുകളുള്ള ഡയറക്uടറികൾക്ക് പുറത്തുള്ള (മറ്റ് ഉപയോക്താക്കൾക്ക് എഴുതാൻ അനുമതിയുണ്ട്) അല്ലെങ്കിൽ ഇനിപ്പറയുന്നവയിൽ ഒന്ന് ശരിയായിരിക്കണം.

  • സിംബോളിക് ലിങ്ക് പിന്തുടരുന്ന പ്രക്രിയയാണ് പ്രതീകാത്മക ലിങ്കിന്റെ ഉടമ.
  • ഡയറക്uടറിയുടെ ഉടമ പ്രതീകാത്മക ലിങ്കിന്റെ ഉടമയുമാണ്.

കഠിനവും പ്രതീകാത്മകവുമായ ലിങ്കുകളിൽ സംരക്ഷണം പ്രവർത്തനക്ഷമമാക്കുക അല്ലെങ്കിൽ പ്രവർത്തനരഹിതമാക്കുക

പ്രധാനമായി, സ്ഥിരസ്ഥിതിയായി, /usr/lib/sysctl.d/50-default.conf ഫയലിലെ കേർണൽ പാരാമീറ്ററുകൾ ഉപയോഗിച്ചാണ് ഈ സവിശേഷത പ്രവർത്തനക്ഷമമാക്കിയിരിക്കുന്നത് (1 ന്റെ മൂല്യം പ്രവർത്തനക്ഷമമാക്കുക എന്നാണ് അർത്ഥമാക്കുന്നത്).

fs.protected_hardlinks = 1
fs.protected_symlinks = 1

എന്നിരുന്നാലും, ഒരു കാരണത്താലോ മറ്റേതെങ്കിലും കാരണത്താലോ, നിങ്ങൾക്ക് ഈ സുരക്ഷാ സവിശേഷത പ്രവർത്തനരഹിതമാക്കണമെങ്കിൽ; താഴെയുള്ള ഈ കേർണൽ ഓപ്uഷനുകൾ ഉപയോഗിച്ച് /etc/sysctl.d/51-no-protect-links.conf എന്ന പേരിൽ ഒരു ഫയൽ സൃഷ്uടിക്കുക (0 ന്റെ മൂല്യം പ്രവർത്തനരഹിതമാക്കുക എന്നാണ് അർത്ഥമാക്കുന്നത്).

ഫയൽനാമത്തിൽ (51-no-protect-links.conf) 51 എന്നത് ശ്രദ്ധിക്കുക, സ്ഥിരസ്ഥിതി ക്രമീകരണങ്ങൾ അസാധുവാക്കുന്നതിന് സ്ഥിരസ്ഥിതി ഫയലിന് ശേഷം അത് വായിക്കേണ്ടതുണ്ട്.

fs.protected_hardlinks = 0
fs.protected_symlinks = 0

ഫയൽ സംരക്ഷിച്ച് അടയ്ക്കുക. മുകളിലുള്ള മാറ്റങ്ങൾ പ്രാബല്യത്തിൽ വരുത്തുന്നതിന് താഴെയുള്ള കമാൻഡ് ഉപയോഗിക്കുക (ഈ കമാൻഡ് യഥാർത്ഥത്തിൽ ഓരോ സിസ്റ്റം കോൺഫിഗറേഷൻ ഫയലിൽ നിന്നും ക്രമീകരണങ്ങൾ ലോഡ് ചെയ്യുന്നു).

# sysctl --system
OR
# sysctl -p  #on older systems

ഇനിപ്പറയുന്ന ലേഖനങ്ങൾ വായിക്കാനും നിങ്ങൾ ആഗ്രഹിച്ചേക്കാം.

  1. Linux-ൽ ഒരു Vim ഫയൽ പാസ്uവേഡ് എങ്ങനെ സംരക്ഷിക്കാം
  2. Linux-ൽ പ്രധാനപ്പെട്ട ഫയലുകൾ മാറ്റാനാകാത്ത (മാറ്റാനാവാത്തത്) ആക്കാനുള്ള 5 ‘chattr’ കമാൻഡുകൾ

അത്രയേയുള്ളൂ! ചുവടെയുള്ള ഫീഡ്uബാക്ക് ഫോം വഴി നിങ്ങൾക്ക് ഈ വിഷയവുമായി ബന്ധപ്പെട്ട നിങ്ങളുടെ ചോദ്യങ്ങൾ പോസ്റ്റുചെയ്യാനോ അല്ലെങ്കിൽ എന്തെങ്കിലും ചിന്തകൾ പങ്കിടാനോ കഴിയും.