ലിനക്സിൽ റൂട്ട് അക്കൗണ്ട് പ്രവർത്തനരഹിതമാക്കാനുള്ള 4 വഴികൾ


ഒരു Linux-ലെയും മറ്റ് Unix-പോലുള്ള ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളിലെയും ആത്യന്തിക അക്കൗണ്ടാണ് റൂട്ട് അക്കൗണ്ട്. ഈ അക്കൗണ്ടിന് പൂർണ്ണമായി വായിക്കാനും എഴുതാനും നടപ്പിലാക്കാനുമുള്ള അനുമതികളുള്ള ഒരു സിസ്റ്റത്തിലെ എല്ലാ കമാൻഡുകളിലേക്കും ഫയലുകളിലേക്കും ആക്uസസ് ഉണ്ട്. ഒരു സിസ്റ്റത്തിൽ ഏത് തരത്തിലുള്ള ജോലിയും ചെയ്യാൻ ഇത് ഉപയോഗിക്കുന്നു; സോഫ്uറ്റ്uവെയർ പാക്കേജുകൾ ഇൻസ്റ്റാൾ/നീക്കം/അപ്uഗ്രേഡ് ചെയ്യാനും മറ്റും.

റൂട്ട് ഉപയോക്താവിന് സമ്പൂർണ്ണ അധികാരമുള്ളതിനാൽ, അവൻ/അവൾ ചെയ്യുന്ന ഏതൊരു പ്രവർത്തനവും ഒരു സിസ്റ്റത്തിൽ നിർണായകമാണ്. ഇക്കാര്യത്തിൽ, റൂട്ട് ഉപയോക്താവിന്റെ ഏതെങ്കിലും പിശകുകൾ ഒരു സിസ്റ്റത്തിന്റെ സാധാരണ പ്രവർത്തനത്തിൽ വലിയ പ്രത്യാഘാതങ്ങൾ ഉണ്ടാക്കിയേക്കാം. കൂടാതെ, ഈ അക്കൗണ്ട് അനുചിതമായോ അനുചിതമായോ ആകസ്മികമായോ ക്ഷുദ്രകരമായോ അല്ലെങ്കിൽ നയങ്ങളെക്കുറിച്ചുള്ള കൃത്രിമമായ അജ്ഞതയിലൂടെയോ ഉപയോഗിച്ച് ദുരുപയോഗം ചെയ്യപ്പെടാം.

അതിനാൽ, നിങ്ങളുടെ ലിനക്സ് സെർവറിലെ റൂട്ട് ആക്സസ് അപ്രാപ്തമാക്കുന്നതാണ് ഉചിതം, പകരം, സെർവറിൽ നിർണായകമായ ജോലികൾ ചെയ്യുന്നതിനായി, sudo കമാൻഡ് ഉപയോഗിച്ച് റൂട്ട് യൂസർ പ്രത്യേകാവകാശങ്ങൾ നേടുന്നതിനായി കോൺഫിഗർ ചെയ്യേണ്ട ഒരു അഡ്മിനിസ്ട്രേറ്റീവ് അക്കൗണ്ട് സൃഷ്ടിക്കുക.

ഈ ലേഖനത്തിൽ, ലിനക്സിൽ റൂട്ട് യൂസർ അക്കൗണ്ട് ലോഗിൻ പ്രവർത്തനരഹിതമാക്കുന്നതിനുള്ള നാല് വഴികൾ ഞങ്ങൾ വിശദീകരിക്കും.

ശ്രദ്ധിക്കുക: റൂട്ട് അക്കൌണ്ടിലേക്കുള്ള ആക്സസ് തടയുന്നതിന് മുമ്പ്, userradd കമാൻഡ് ഉപയോഗിക്കുന്നതിന് കഴിവുള്ള ഒരു അഡ്മിനിസ്ട്രേറ്റീവ് അക്കൗണ്ട് നിങ്ങൾ സൃഷ്ടിച്ചിട്ടുണ്ടെന്ന് ഉറപ്പുവരുത്തുക, കൂടാതെ ഈ ഉപയോക്തൃ അക്കൗണ്ടിന് ശക്തമായ ഒരു പാസ്വേഡ് നൽകുക. ഫ്ലാഗ് -m അർത്ഥമാക്കുന്നത് ഉപയോക്താവിന്റെ ഹോം ഡയറക്uടറി സൃഷ്uടിക്കുക എന്നാണ് കൂടാതെ ഒരു അഭിപ്രായം വ്യക്തമാക്കാൻ -c അനുവദിക്കുന്നു:

# useradd -m -c "Admin User" admin
# passwd admin

അടുത്തതായി, usermod കമാൻഡ് ഉപയോഗിച്ച് ഉചിതമായ സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്റർമാരുടെ ഗ്രൂപ്പിലേക്ക് ഈ ഉപയോക്താവിനെ ചേർക്കുക, ഇവിടെ -a എന്നതിന്റെ സ്വിച്ച് ഉപയോക്തൃ അക്കൗണ്ട് ചേർക്കുകയും -G എന്നത് ഉപയോക്താവിനെ ചേർക്കുന്നതിനുള്ള ഒരു ഗ്രൂപ്പിനെ വ്യക്തമാക്കുന്നു. ഇൻ (വീൽ അല്ലെങ്കിൽ സുഡോ നിങ്ങളുടെ Linux വിതരണത്തെ ആശ്രയിച്ച്):

# usermod -aG wheel admin    #CentOS/RHEL
# usermod -aG sudo admin     #Debian/Ubuntu 

അഡ്മിനിസ്ട്രേറ്റീവ് പ്രത്യേകാവകാശങ്ങളുള്ള ഒരു ഉപയോക്താവിനെ നിങ്ങൾ സൃഷ്ടിച്ചുകഴിഞ്ഞാൽ, റൂട്ട് ആക്സസ് തടയുന്നതിന് ആ അക്കൗണ്ടിലേക്ക് മാറുക.

# su admin

1. റൂട്ട് യൂസറുടെ ഷെൽ മാറ്റുക

റൂട്ട് യൂസർ ലോഗിൻ പ്രവർത്തനരഹിതമാക്കുന്നതിനുള്ള ഏറ്റവും ലളിതമായ മാർഗ്ഗം അതിന്റെ ഷെൽ /bin/bash അല്ലെങ്കിൽ /bin/bash (അല്ലെങ്കിൽ ഉപയോക്തൃ ലോഗിൻ അനുവദിക്കുന്ന മറ്റേതെങ്കിലും ഷെൽ) എന്നതിൽ നിന്ന് <കോഡിലേക്ക് മാറ്റുക എന്നതാണ്. >/sbin/nologin, /etc/passwd ഫയലിൽ, കാണിച്ചിരിക്കുന്നതുപോലെ നിങ്ങളുടെ പ്രിയപ്പെട്ട ഏതെങ്കിലും കമാൻഡ് ലൈൻ എഡിറ്ററുകൾ ഉപയോഗിച്ച് നിങ്ങൾക്ക് എഡിറ്റുചെയ്യാൻ തുറക്കാനാകും.

  
$ sudo vim /etc/passwd

വരി മാറ്റുക:

root:x:0:0:root:/root:/bin/bash
to
root:x:0:0:root:/root:/sbin/nologin

ഫയൽ സംരക്ഷിച്ച് അത് അടയ്ക്കുക.

ഇനി മുതൽ, റൂട്ട് ഉപയോക്താവ് ലോഗിൻ ചെയ്യുമ്പോൾ, \ഈ അക്കൗണ്ട് നിലവിൽ ലഭ്യമല്ല എന്ന സന്ദേശം ലഭിക്കും. ഇതാണ് ഡിഫോൾട്ട് സന്ദേശം, പക്ഷേ, നിങ്ങൾക്ക് ഇത് മാറ്റാനും /etc/nologin.txt എന്ന ഫയലിൽ ഒരു ഇഷ്uടാനുസൃത സന്ദേശം സജ്ജമാക്കാനും കഴിയും.

ഉപയോക്തൃ ലോഗിൻ വേണ്ടി ഷെൽ ആവശ്യമുള്ള പ്രോഗ്രാമുകളിൽ മാത്രമേ ഈ രീതി ഫലപ്രദമാകൂ, അല്ലാത്തപക്ഷം, sudo, ftp, ഇമെയിൽ ക്ലയന്റുകൾക്ക് റൂട്ട് അക്കൗണ്ട് ആക്സസ് ചെയ്യാൻ കഴിയും.

2. കൺസോൾ ഉപകരണം (TTY) വഴിയുള്ള റൂട്ട് ലോഗിൻ പ്രവർത്തനരഹിതമാക്കുക

രണ്ടാമത്തെ രീതി pam_securetty എന്ന PAM മൊഡ്യൂൾ ഉപയോഗിക്കുന്നു, ഉപയോക്താവ് സുരക്ഷിത TTY-യിൽ ലോഗിൻ ചെയ്യുകയാണെങ്കിൽ മാത്രമേ റൂട്ട് ആക്uസസ് അനുവദിക്കൂ, /etc/securetty-ലെ ലിസ്റ്റിംഗ് നിർവചിച്ചിരിക്കുന്നത് പോലെ.

ഏത് TTY ഉപകരണങ്ങളിലാണ് റൂട്ട് ഉപയോക്താവിന് ലോഗിൻ ചെയ്യാൻ അനുമതിയുള്ളതെന്ന് വ്യക്തമാക്കാൻ മുകളിലെ ഫയൽ നിങ്ങളെ അനുവദിക്കുന്നു, ഈ ഫയൽ ശൂന്യമാക്കുന്നത് കമ്പ്യൂട്ടർ സിസ്റ്റത്തിൽ ഘടിപ്പിച്ചിട്ടുള്ള എല്ലാ ഉപകരണങ്ങളിലും റൂട്ട് ലോഗിൻ ചെയ്യുന്നത് തടയുന്നു.

ഒരു ശൂന്യമായ ഫയൽ സൃഷ്ടിക്കാൻ, റൺ ചെയ്യുക.

$ sudo mv /etc/securetty /etc/securetty.orig
$ sudo touch /etc/securetty
$ sudo chmod 600 /etc/securetty

ഈ രീതിക്ക് ചില പരിമിതികളുണ്ട്, ഇത് ലോഗിൻ, ഡിസ്പ്ലേ മാനേജർമാർ (അതായത് gdm, kdm, xdm) പോലുള്ള പ്രോഗ്രാമുകളെയും ഒരു TTY സമാരംഭിക്കുന്ന മറ്റ് നെറ്റ്uവർക്ക് സേവനങ്ങളെയും മാത്രമേ ബാധിക്കുകയുള്ളൂ. su, sudo, ssh, മറ്റ് അനുബന്ധ openssh ടൂളുകൾ എന്നിവ പോലുള്ള പ്രോഗ്രാമുകൾക്ക് റൂട്ട് അക്കൗണ്ടിലേക്ക് ആക്uസസ് ഉണ്ടായിരിക്കും.

3. SSH റൂട്ട് ലോഗിൻ പ്രവർത്തനരഹിതമാക്കുക

റിമോട്ട് സെർവറുകളോ VPSകളോ ആക്സസ് ചെയ്യുന്നതിനുള്ള ഏറ്റവും സാധാരണമായ മാർഗ്ഗം SSH വഴിയാണ്, കൂടാതെ റൂട്ട് യൂസർ ലോഗിൻ തടയുന്നതിന്, നിങ്ങൾ /etc/ssh/sshd_config ഫയൽ എഡിറ്റ് ചെയ്യേണ്ടതുണ്ട്.

$ sudo vim /etc/ssh/sshd_config

തുടർന്ന് PermitRootLogin എന്ന നിർദ്ദേശം അൺകമന്റ് ചെയ്യുകയും സ്ക്രീൻഷോട്ടിൽ കാണിച്ചിരിക്കുന്നതുപോലെ അതിന്റെ മൂല്യം no എന്ന് സജ്ജമാക്കുകയും ചെയ്യുക.

നിങ്ങൾ പൂർത്തിയാക്കിക്കഴിഞ്ഞാൽ, ഫയൽ സംരക്ഷിച്ച് അടയ്ക്കുക. കോൺഫിഗറേഷനുകളിലെ സമീപകാല മാറ്റം പ്രയോഗിക്കുന്നതിന് sshd സേവനം പുനരാരംഭിക്കുക.

$ sudo systemctl restart sshd 
OR
$ sudo service sshd restart 

നിങ്ങൾക്ക് ഇതിനകം അറിയാവുന്നതുപോലെ, ഈ രീതി openssh ടൂളുകളെ മാത്രമേ ബാധിക്കുകയുള്ളൂ, റൂട്ട് അക്കൗണ്ട് ആക്സസ് ചെയ്യുന്നതിൽ നിന്ന് ssh, scp, sftp പോലുള്ള പ്രോഗ്രാമുകൾ തടയപ്പെടും.

4. PAM വഴിയുള്ള സേവനങ്ങളിലേക്കുള്ള റൂട്ട് ആക്uസസ് നിയന്ത്രിക്കുക

പ്ലഗ്ഗബിൾ ഓതന്റിക്കേഷൻ മൊഡ്യൂളുകൾ (ചുരുക്കത്തിൽ PAM) എന്നത് Linux സിസ്റ്റങ്ങളിലെ ഒരു കേന്ദ്രീകൃതവും പ്ലഗ്ഗബിൾ, മോഡുലാർ, ഫ്ലെക്സിബിൾ ആയതുമായ പ്രാമാണീകരണ രീതിയാണ്. PAM, /lib/security/pam_listfile.so മൊഡ്യൂളിലൂടെ, നിർദ്ദിഷ്ട അക്കൗണ്ടുകളുടെ പ്രത്യേകാവകാശങ്ങൾ പരിമിതപ്പെടുത്തുന്നതിന് വലിയ വഴക്കം അനുവദിക്കുന്നു.

ലോഗിൻ, ssh, ഏതെങ്കിലും PAM അവയർ പ്രോഗ്രാമുകൾ എന്നിവ പോലുള്ള ചില ടാർഗെറ്റ് സേവനങ്ങൾ വഴി ലോഗിൻ ചെയ്യാൻ അനുവദിക്കാത്ത ഉപയോക്താക്കളുടെ ഒരു ലിസ്റ്റ് പരാമർശിക്കാൻ മുകളിലുള്ള മൊഡ്യൂൾ ഉപയോഗിക്കാം.

ഈ സാഹചര്യത്തിൽ, ലോഗിൻ, sshd സേവനങ്ങളിലേക്കുള്ള ആക്uസസ് നിയന്ത്രിച്ചുകൊണ്ട് ഒരു സിസ്റ്റത്തിലേക്കുള്ള റൂട്ട് യൂസർ ആക്uസസ് അപ്രാപ്uതമാക്കാൻ ഞങ്ങൾ ആഗ്രഹിക്കുന്നു. ആദ്യം കാണിച്ചിരിക്കുന്നതുപോലെ /etc/pam.d/ ഡയറക്uടറിയിൽ ടാർഗെറ്റ് സേവനത്തിനായി ഫയൽ തുറന്ന് എഡിറ്റ് ചെയ്യുക.

$ sudo vim /etc/pam.d/login
OR
sudo vim /etc/pam.d/sshd

അടുത്തതായി, രണ്ട് ഫയലുകളിലും താഴെയുള്ള കോൺഫിഗറേഷൻ ചേർക്കുക.

auth    required       pam_listfile.so \
        onerr=succeed  item=user  sense=deny  file=/etc/ssh/deniedusers

നിങ്ങൾ പൂർത്തിയാക്കുമ്പോൾ, ഓരോ ഫയലും സംരക്ഷിച്ച് അടയ്ക്കുക. തുടർന്ന് പ്ലെയിൻ ഫയൽ /etc/ssh/deniedusers സൃഷ്uടിക്കുക, അതിൽ ഓരോ വരിയിലും ഒരു ഇനം അടങ്ങിയിരിക്കണം, അത് വേൾഡ് റീഡബിൾ അല്ല.

അതിൽ റൂട്ട് എന്ന പേര് ചേർക്കുക, തുടർന്ന് സേവ് ചെയ്ത് അടയ്ക്കുക.

$ sudo vim /etc/ssh/deniedusers

ഇതിന് ആവശ്യമായ അനുമതികളും സജ്ജമാക്കുക.

$ sudo chmod 600 /etc/ssh/deniedusers

PAM അറിയാവുന്ന പ്രോഗ്രാമുകളെയും സേവനങ്ങളെയും മാത്രമേ ഈ രീതി ബാധിക്കുകയുള്ളൂ. ftp വഴിയും ഇമെയിൽ ക്ലയന്റുകൾ വഴിയും മറ്റും നിങ്ങൾക്ക് സിസ്റ്റത്തിലേക്കുള്ള റൂട്ട് ആക്സസ് തടയാൻ കഴിയും.

കൂടുതൽ വിവരങ്ങൾക്ക്, പ്രസക്തമായ മാൻ പേജുകൾ പരിശോധിക്കുക.

$ man pam_securetty
$ man sshd_config
$ man pam

അത്രയേയുള്ളൂ! ഈ ലേഖനത്തിൽ, ലിനക്സിലെ റൂട്ട് യൂസർ ലോഗിൻ (അല്ലെങ്കിൽ അക്കൗണ്ട്) പ്രവർത്തനരഹിതമാക്കുന്നതിനുള്ള നാല് വഴികൾ ഞങ്ങൾ വിശദീകരിച്ചിട്ടുണ്ട്. നിങ്ങൾക്ക് എന്തെങ്കിലും അഭിപ്രായങ്ങളോ നിർദ്ദേശങ്ങളോ ചോദ്യങ്ങളോ ഉണ്ടോ, ചുവടെയുള്ള ഫീഡ്uബാക്ക് ഫോം വഴി ഞങ്ങളെ ബന്ധപ്പെടാൻ മടിക്കേണ്ടതില്ല.