SSH ബ്രൂട്ട്-ഫോഴ്സ് ലോഗിൻ ആക്രമണങ്ങൾ തടയുന്നതിനുള്ള 5 മികച്ച സമ്പ്രദായങ്ങൾ


SSH പ്രവർത്തിക്കുന്ന സെർവറുകൾ സാധാരണയായി ബ്രൂട്ട്-ഫോഴ്സ് ആക്രമണത്തിനുള്ള ഒരു സോഫ്റ്റ് ടാർഗെറ്റാണ്. നുഴഞ്ഞുകയറ്റ സാധ്യത വർദ്ധിപ്പിക്കുന്ന ബ്രൂട്ട്-ഫോഴ്സ് ആക്രമണങ്ങൾ ഓട്ടോമേറ്റ് ചെയ്യുന്നതിനായി ഹാക്കർമാർ നൂതന സോഫ്റ്റ്വെയർ ഉപകരണങ്ങളും ബോട്ടുകളും നിരന്തരം കൊണ്ടുവരുന്നു.

ഈ ഗൈഡിൽ, ഡെബിയൻ ഡെറിവേറ്റീവുകളിൽ നിന്നുള്ള ബ്രൂട്ട് ഫോഴ്സ് ആക്രമണങ്ങളിൽ നിന്ന് നിങ്ങളുടെ SSH സെർവറുകളെ സംരക്ഷിക്കാൻ നിങ്ങൾക്ക് നടപ്പിലാക്കാൻ കഴിയുന്ന ചില നുറുങ്ങുകൾ ഞങ്ങൾ പര്യവേക്ഷണം ചെയ്യുന്നു.

SSH പാസ്വേഡ് പ്രാമാണീകരണം പ്രവർത്തനരഹിതമാക്കി SSH-കീ പ്രാമാണീകരണം പ്രവർത്തനക്ഷമമാക്കുക

SSH-നുള്ള സ്ഥിരസ്ഥിതി പ്രാമാണീകരണ രീതി ഉപയോക്തൃനാമം/പാസ്വേഡ് പ്രാമാണീകരണമാണ്. എന്നാൽ നമ്മൾ കണ്ടതുപോലെ, പാസ്വേഡ് ആധികാരികത ബ്രൂട്ട് ഫോഴ്സ് ആക്രമണങ്ങൾക്ക് വിധേയമാണ്. സുരക്ഷിതമായിരിക്കാൻ, പൊതുവായതും സ്വകാര്യവുമായ SSH കീ ജോഡികൾ വഴി പ്രാമാണീകരണം സാധ്യമാകുന്നിടത്ത് കീ അടിസ്ഥാനമാക്കിയുള്ള SSH പ്രാമാണീകരണം നടപ്പിലാക്കാൻ ശുപാർശ ചെയ്യുന്നു. പൊതു കീ സെർവറിലേക്ക് പകർത്തുമ്പോൾ സ്വകാര്യ കീ ക്ലയന്റിന്റെ പിസിയിൽ നിലനിൽക്കും.

SSH കീ പ്രാമാണീകരണ സമയത്ത്, ക്ലയന്റ് പിസിക്ക് സ്വകാര്യ കീ ഉണ്ടോ എന്ന് സെർവർ പരിശോധിക്കുന്നു. പരിശോധന വിജയകരമാണെങ്കിൽ, ഒരു ഷെൽ സെഷൻ സൃഷ്ടിക്കപ്പെടുന്നു അല്ലെങ്കിൽ റിമോട്ട് സെർവറിലേക്ക് അയച്ച കമാൻഡ് വിജയകരമായി നടപ്പിലാക്കുന്നു. SSH കീ അടിസ്ഥാനമാക്കിയുള്ള പ്രാമാണീകരണം എങ്ങനെ ക്രമീകരിക്കാം എന്നതിനെക്കുറിച്ചുള്ള സമഗ്രമായ ഒരു ഗൈഡ് ഞങ്ങളുടെ പക്കലുണ്ട്.

കീ-അടിസ്ഥാനത്തിലുള്ള പ്രാമാണീകരണം സജ്ജീകരിച്ചതിന് ശേഷവും, പാസ്വേഡ് പ്രാമാണീകരണം ഇപ്പോഴും സജീവമാണ് എന്ന ലളിതമായ കാരണത്താൽ നിങ്ങളുടെ സെർവർ ഇപ്പോഴും ക്രൂരമായ ആക്രമണങ്ങൾക്ക് വിധേയമാണ്. ഇത് പ്രവർത്തനരഹിതമാക്കേണ്ടതുണ്ട്.

അതിനാൽ, ഡിഫോൾട്ട് SSH കോൺഫിഗറേഷൻ ഫയൽ എഡിറ്റ് ചെയ്യുക.

$ sudo vim /etc/ssh/sshd_config

കാണിച്ചിരിക്കുന്നതുപോലെ പാസ്വേഡ് ഓതന്റിക്കേഷൻ പാരാമീറ്റർ no ആയി സജ്ജമാക്കുക.

PasswordAuthentication no

തുടർന്ന് മാറ്റങ്ങൾ പ്രയോഗിക്കുന്നതിന് ഫയൽ സംരക്ഷിച്ച് SSH വീണ്ടും ലോഡുചെയ്യുക.

$ sudo systemctl reload ssh

Fail2ban നുഴഞ്ഞുകയറ്റ പ്രിവൻഷൻ ടൂൾ നടപ്പിലാക്കുക

Python-ൽ എഴുതിയത്, Fail2ban എന്നത് ഒരു ഓപ്പൺ സോഴ്സ് നുഴഞ്ഞുകയറ്റ പ്രതിരോധ ചട്ടക്കൂടാണ്, അത് പ്രാമാണീകരണ പരാജയങ്ങൾക്കായി സേവനങ്ങളുടെ ലോഗ് ഫയലുകൾ സ്കാൻ ചെയ്യുകയും ഒരു നിശ്ചിത സമയത്തേക്ക് പാസ്വേഡ് പ്രാമാണീകരണ പരിശോധനകൾ ആവർത്തിച്ച് പരാജയപ്പെടുന്ന IP-കളെ നിരോധിക്കുകയും ചെയ്യുന്നു.

നുഴഞ്ഞുകയറ്റ ശ്രമങ്ങൾക്കും മറ്റ് ദുഷിച്ച പ്രവർത്തനങ്ങൾക്കുമായി സെർവർ ലോഗ് ഫയലുകൾ Fail2ban നിരന്തരം നിരീക്ഷിക്കുന്നു, മുൻകൂട്ടി നിശ്ചയിച്ചിട്ടുള്ള നിരവധി ആധികാരികത പരാജയങ്ങൾക്ക് ശേഷം - മിക്ക കേസുകളിലും, 3 പരാജയപ്പെട്ട ലോഗിൻ ശ്രമങ്ങൾ - Fail2ban റിമോട്ട് ഹോസ്റ്റിനെ സെർവറിലേക്ക് ആക്സസ് ചെയ്യുന്നതിൽ നിന്ന് യാന്ത്രികമായി തടയുന്നു, കൂടാതെ ഹോസ്റ്റ് ഒരു 'ഇൽ സൂക്ഷിക്കുന്നു. ഒരു നിശ്ചിത സമയത്തേക്ക് ജയിൽ.

അങ്ങനെ ചെയ്യുന്നതിലൂടെ, Fail2ban തെറ്റായ പാസ്വേഡ് പ്രാമാണീകരണ ശ്രമങ്ങളുടെ നിരക്ക് ഗണ്യമായി കുറയ്ക്കുന്നു. Bruteforce ആക്രമണങ്ങളിൽ നിന്ന് നിങ്ങളുടെ സെർവറിനെ സുരക്ഷിതമാക്കാൻ Linux-ൽ Fail2ban എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാമെന്നും കോൺഫിഗർ ചെയ്യാമെന്നും ഞങ്ങളുടെ ഗൈഡ് പരിശോധിക്കുക.

SSH പ്രാമാണീകരണ ശ്രമങ്ങളുടെ പരമാവധി എണ്ണം പരിമിതപ്പെടുത്തുക

SSH ലോഗിൻ ശ്രമങ്ങളുടെ എണ്ണം പരിമിതപ്പെടുത്തുക എന്നതാണ് ബ്രൂട്ട്-ഫോഴ്സ് ആക്രമണങ്ങളിൽ നിന്ന് നിങ്ങളുടെ സെർവറിനെ സംരക്ഷിക്കുന്നതിനുള്ള മറ്റൊരു ലളിതമായ മാർഗ്ഗം. സ്ഥിരസ്ഥിതിയായി, ഇത് 3 ആയി സജ്ജീകരിച്ചിരിക്കുന്നു, എന്നാൽ എന്തെങ്കിലും ആകസ്മികമായി ഇത് ഉയർന്ന മൂല്യത്തിലേക്ക് സജ്ജീകരിക്കുകയാണെങ്കിൽ, പരമാവധി 3 കണക്ഷൻ ശ്രമങ്ങൾ ആയി സജ്ജമാക്കുക.

ഉദാഹരണത്തിന്, പരമാവധി കണക്ഷൻ ശ്രമങ്ങൾ 3 ആയി സജ്ജീകരിക്കുന്നതിന്, കാണിച്ചിരിക്കുന്നതുപോലെ MaxAuthTries പാരാമീറ്റർ 3 ആയി സജ്ജമാക്കുക

MaxAuthTries = 3

ഒരിക്കൽ കൂടി, മാറ്റങ്ങൾ സംരക്ഷിച്ച് SSH സേവനം വീണ്ടും ലോഡുചെയ്യുക.

$ sudo systemctl reload ssh

ക്ലയന്റുകളിൽ നിന്നുള്ള എസ്എസ്എച്ച് ആക്സസ് പരിമിതപ്പെടുത്താൻ ടിസിപി റാപ്പറുകൾ നടപ്പിലാക്കുക

ടിസിപി റാപ്പറുകൾ ഒരു ഹോസ്റ്റ് അധിഷ്ഠിത ആക്സസ് കൺട്രോൾ ലിസ്റ്റ് (എസിഎൽ) നൽകുന്ന ഒരു ലൈബ്രറിയാണ്, അത് അവരുടെ ഐപി വിലാസങ്ങൾ അടിസ്ഥാനമാക്കി വിദൂര ക്ലയന്റുകളുടെ ടിസിപി സേവനങ്ങളിലേക്കുള്ള ആക്സസ് നിയന്ത്രിക്കുന്നു.

സിസ്റ്റത്തിലെ സേവനങ്ങൾ ആക്സസ് ചെയ്യുന്നതിൽ നിന്ന് വിദൂര ഹോസ്റ്റുകൾ. ടിസിപി റാപ്പറുകൾ /etc/hosts.allow, /etc/hosts.deny എന്നീ കോൺഫിഗറേഷൻ ഫയലുകൾ ഉപയോഗിക്കുന്നു (ആ ക്രമത്തിൽ) ഒരു നിർദ്ദിഷ്ട സേവനം ആക്സസ് ചെയ്യാൻ വിദൂര ക്ലയന്റിനെ അനുവദിച്ചിട്ടുണ്ടോ ഇല്ലയോ എന്ന് നിർണ്ണയിക്കാൻ.

സാധാരണയായി, ഈ ഫയലുകൾ കമന്റ് ചെയ്യപ്പെടുകയും എല്ലാ ഹോസ്റ്റുകളും TCP റാപ്പർ ലെയറിലൂടെ അനുവദിക്കുകയും ചെയ്യും. നൽകിയിരിക്കുന്ന സേവനത്തിലേക്കുള്ള പ്രവേശനം അനുവദിക്കുന്നതിനുള്ള നിയമങ്ങൾ /etc/hosts.allow ഫയലിൽ സ്ഥാപിക്കുകയും /etc/hosts.deny ഫയലിലെ നിയമങ്ങളേക്കാൾ മുൻഗണന നൽകുകയും ചെയ്യുന്നു.

എല്ലാ ഇൻകമിംഗ് കണക്ഷനുകളും തടയാൻ മികച്ച പരിശീലനം ശുപാർശ ചെയ്യുന്നു. അതിനാൽ, /etc/hosts.deny ഫയൽ തുറക്കുക.

$ sudo vim /etc/hosts.deny

ഇനിപ്പറയുന്ന വരി ചേർക്കുക.

ALL: ALL

മാറ്റങ്ങൾ സംരക്ഷിച്ച് ഫയലിൽ നിന്ന് പുറത്തുകടക്കുക.

തുടർന്ന് /etc/hosts.allow ഫയൽ ആക്സസ് ചെയ്യുക.

$ sudo vim /etc/hosts.allow

കാണിച്ചിരിക്കുന്നതുപോലെ SSH വഴി സെർവറിലേക്ക് കണക്റ്റുചെയ്യാനാകുന്ന ഹോസ്റ്റുകളോ ഡൊമെയ്നുകളോ കോൺഫിഗർ ചെയ്യുക. ഈ ഉദാഹരണത്തിൽ, സെർവറിലേക്ക് (173.82.227.89, 173.82.255.55) കണക്റ്റുചെയ്യാൻ ഞങ്ങൾ രണ്ട് റിമോട്ട് ഹോസ്റ്റുകളെ മാത്രമേ അനുവദിക്കൂ, ബാക്കിയുള്ളവ നിരസിക്കുന്നു.

sshd: 173.82.227.89 173.82.255.55
sshd: ALL: DENY

മാറ്റങ്ങൾ സംരക്ഷിച്ച് കോൺഫിഗറേഷൻ ഫയലിൽ നിന്ന് പുറത്തുകടക്കുക.

ഇത് പരീക്ഷിക്കുന്നതിന്, നിങ്ങൾ ആക്സസ് അനുവദിച്ചിട്ടുള്ളവയിൽ ഉൾപ്പെടാത്ത ഒരു ഹോസ്റ്റിൽ നിന്ന് സെർവറിലേക്ക് കണക്റ്റുചെയ്യാൻ ശ്രമിക്കുക. കാണിച്ചിരിക്കുന്നതുപോലെ നിങ്ങൾക്ക് ഒരു അനുമതി പിശക് ലഭിക്കും.

$ ssh [email 

kex_exchange_identification: read: Connection reset by peer
Connection reset by 173.82.235.7 port 22
lost connection

SSH ടു ഫാക്ടർ ഓതന്റിക്കേഷൻ നടപ്പിലാക്കുക

ടു ഫാക്ടർ ഓതന്റിക്കേഷൻ പാസ്വേഡ് പ്രാമാണീകരണത്തിന് ഒരു അധിക സുരക്ഷാ പാളി നൽകുന്നു, അതുവഴി ബ്രൂട്ട് ഫോഴ്സ് ആക്രമണങ്ങളിൽ നിന്ന് നിങ്ങളുടെ സെർവറിനെ കൂടുതൽ സുരക്ഷിതമാക്കുന്നു. വ്യാപകമായി ഉപയോഗിക്കുന്ന ടു ഫാക്ടർ ഓതന്റിക്കേഷൻ സൊല്യൂഷൻ ഗൂഗിൾ ഓതന്റിക്കേറ്റർ ആപ്പാണ്, രണ്ട് ഫാക്ടർ ഓതന്റിക്കേഷൻ നിങ്ങൾക്ക് എങ്ങനെ സജ്ജീകരിക്കാം എന്നതിനെ കുറിച്ച് നന്നായി രേഖപ്പെടുത്തപ്പെട്ട ഒരു ഗൈഡ് ഞങ്ങളുടെ പക്കലുണ്ട്.

SSH ബ്രൂട്ട് ഫോഴ്സ് ലോഗിൻ ആക്രമണങ്ങൾ തടയുന്നതിനും നിങ്ങളുടെ സെർവറിന്റെ സുരക്ഷ ഉറപ്പാക്കുന്നതിനും നിങ്ങൾക്ക് നടപ്പിലാക്കാൻ കഴിയുന്ന 5 മികച്ച സമ്പ്രദായങ്ങളുടെ സംഗ്രഹമാണിത്. OpenSSH സെർവർ എങ്ങനെ സുരക്ഷിതമാക്കാമെന്നും കഠിനമാക്കാമെന്നും നിങ്ങൾക്ക് വായിക്കാം.