Rocky Linux, AlmaLinux എന്നിവയിൽ Fail2ban എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം


പൈത്തണിൽ എഴുതിയത്, Fail2ban ഒരു സ്വതന്ത്രവും ഓപ്പൺ സോഴ്uസ് ഇൻട്രൂഷൻ പ്രിവൻഷൻ സിസ്റ്റം (IPS) ആണ്, അത് ബ്രൂട്ട്-ഫോഴ്uസ് ആക്രമണങ്ങളിൽ നിന്ന് സെർവറിനെ സംരക്ഷിക്കുന്നു.

ഒരു നിശ്ചിത എണ്ണം തെറ്റായ പാസ്uവേഡ് ശ്രമങ്ങൾക്ക് ശേഷം, ഒരു നിശ്ചിത കാലയളവിലേക്കോ സിസ്റ്റം അഡ്മിനിസ്uട്രേറ്റർ അത് അൺബ്ലോക്ക് ചെയ്യുന്നത് വരെയോ ക്ലയന്റിന്റെ IP വിലാസം സിസ്റ്റം ആക്uസസ് ചെയ്യുന്നതിൽ നിന്ന് നിരോധിച്ചിരിക്കുന്നു. ഈ രീതിയിൽ, ഒരൊറ്റ ഹോസ്റ്റിൽ നിന്നുള്ള ആവർത്തിച്ചുള്ള ക്രൂരമായ ആക്രമണങ്ങളിൽ നിന്ന് സിസ്റ്റം സംരക്ഷിക്കപ്പെടുന്നു.

[ നിങ്ങൾക്ക് ഇതും ഇഷ്ടപ്പെടാം: OpenSSH സെർവർ എങ്ങനെ സുരക്ഷിതമാക്കാം, കഠിനമാക്കാം ]

Fail2ban വളരെ കോൺഫിഗർ ചെയ്യാവുന്നതും SSH, vsftpd, Apache, Webmin എന്നിവ പോലുള്ള അസംഖ്യം സേവനങ്ങൾ സുരക്ഷിതമാക്കാൻ സജ്ജീകരിക്കാനുമാകും.

ഈ ഗൈഡിൽ, Rocky Linux, AlmaLinux എന്നിവയിൽ നിങ്ങൾക്ക് എങ്ങനെ Fail2ban ഇൻസ്റ്റാൾ ചെയ്യാമെന്നും കോൺഫിഗർ ചെയ്യാമെന്നും ഞങ്ങൾ ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നു.

ഘട്ടം 1: ഫയർവാൾഡ് പ്രവർത്തിക്കുന്നുവെന്ന് ഉറപ്പാക്കുക

സ്ഥിരസ്ഥിതിയായി, ഫയർവാൾഡ് റണ്ണിംഗുമായി റോക്കി വരുന്നു. എന്നിരുന്നാലും, നിങ്ങളുടെ സിസ്റ്റത്തിൽ ഇത് അങ്ങനെയല്ലെങ്കിൽ, എക്സിക്യൂട്ട് ചെയ്തുകൊണ്ട് ഫയർവാൾഡ് ആരംഭിക്കുക:

$ sudo systemctl start firewalld

തുടർന്ന് ബൂട്ട് സമയത്ത് ആരംഭിക്കാൻ ഇത് പ്രവർത്തനക്ഷമമാക്കുക:

$ sudo systemctl enable firewalld

തുടർന്ന് ഫയർവാൾഡിന്റെ നില പരിശോധിക്കുക

$ sudo systemctl status firewalld

കൂടാതെ, കമാൻഡ് ഉപയോഗിച്ച് നിലവിൽ നടപ്പിലാക്കുന്ന എല്ലാ ഫയർവാൾഡ് നിയമങ്ങളും നിങ്ങൾക്ക് സ്ഥിരീകരിക്കാൻ കഴിയും:

$ sudo firewall-cmd --list-all

ഘട്ടം 2: റോക്കി ലിനക്സിൽ EPEL ഇൻസ്റ്റാൾ ചെയ്യുക

fail2ban ഉം മറ്റ് ആവശ്യമായ പാക്കേജുകളും ഇൻസ്റ്റാളുചെയ്യുന്നതിനുള്ള ആവശ്യകത എന്ന നിലയിൽ, RHEL-അടിസ്ഥാനത്തിലുള്ള വിതരണങ്ങൾക്കായി അധിക ഉയർന്ന നിലവാരമുള്ള പാക്കേജുകൾ നൽകുന്ന EPEL ശേഖരം നിങ്ങൾ ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട്.

$ sudo dnf install epel-release

ഘട്ടം 3: Rocky Linux-ൽ Fail2ban ഇൻസ്റ്റാൾ ചെയ്യുക

EPEL ഇൻസ്റ്റാൾ ചെയ്യുമ്പോൾ, fail2ban, fail2ban-firewalld പാക്കേജ് എന്നിവ ഇൻസ്റ്റോൾ ചെയ്യുക.

$ sudo dnf install fail2ban fail2ban-firewalld

ഇത് fail2ban സെർവറും മറ്റ് ഡിപൻഡൻസികൾക്കൊപ്പം ഫയർവാൾഡ് ഘടകവും ഇൻസ്റ്റാൾ ചെയ്യുന്നു.

fail2ban ഇൻസ്റ്റാളേഷൻ പൂർത്തിയായാൽ, fail2ban സേവനം ആരംഭിക്കുക.

$ sudo systemctl start fail2ban

ബൂട്ട് സമയത്ത് ആരംഭിക്കാൻ ഇത് പ്രവർത്തനക്ഷമമാക്കുക.

$ sudo systemctl enable fail2ban

കമാൻഡ് പ്രവർത്തിപ്പിച്ച് നിങ്ങൾക്ക് fail2ban സേവനത്തിന്റെ നില പരിശോധിക്കാൻ കഴിയും:

$ sudo systemctl status fail2ban

നമ്മൾ പ്രതീക്ഷിക്കുന്നത് പോലെ Fail2ban പ്രവർത്തിക്കുന്നു എന്നതിന്റെ സ്ഥിരീകരണമാണ് ഔട്ട്പുട്ട്.

ഘട്ടം 4: Rocky Linux-ൽ Fail2ban കോൺഫിഗർ ചെയ്യുന്നു

മുന്നോട്ട് പോകുമ്പോൾ, ഉദ്ദേശിച്ച രീതിയിൽ പ്രവർത്തിക്കുന്നതിന് ഞങ്ങൾ fail2ban കോൺഫിഗർ ചെയ്യേണ്ടതുണ്ട്. എബൌട്ട്, ഞങ്ങൾ പ്രധാന കോൺഫിഗറേഷൻ ഫയൽ എഡിറ്റ് ചെയ്യും - /etc/fail2ban/jail.conf. എന്നിരുന്നാലും, ഇത് നിരുത്സാഹപ്പെടുത്തുന്നു. ഒരു പരിഹാരമെന്ന നിലയിൽ jail.conf കോൺഫിഗറേഷൻ ഫയലിന്റെ ഉള്ളടക്കം jail.local ഫയലിലേക്ക് പകർത്തും.

$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

ഇപ്പോൾ, നിങ്ങൾ തിരഞ്ഞെടുത്ത എഡിറ്റർ ഉപയോഗിച്ച് jail.local ഫയൽ തുറക്കുക.

$ sudo vim /etc/fail2ban/jail.local

[DEFAULT] വിഭാഗത്തിന് കീഴിൽ, ഇനിപ്പറയുന്ന ക്രമീകരണങ്ങൾ ദൃശ്യമാകുമ്പോൾ നിങ്ങൾക്കുണ്ടെന്ന് ഉറപ്പാക്കുക.

bantime = 1h
findtime = 1h
maxretry = 5

നമുക്ക് ആട്രിബ്യൂട്ടുകൾ നിർവചിക്കാം:

  • പരാജയപ്പെട്ട പ്രാമാണീകരണ ശ്രമങ്ങളെത്തുടർന്ന് ഒരു ക്ലയന്റ് നിരോധിക്കപ്പെടേണ്ട സമയ ദൈർഘ്യം ബാൻടൈം നിർദ്ദേശം വ്യക്തമാക്കുന്നു.
  • ആവർത്തിച്ചുള്ള തെറ്റായ പാസ്uവേഡ് ശ്രമങ്ങൾ പരിഗണിക്കുമ്പോൾ fail2ban പരിഗണിക്കുന്ന കാലയളവ് അല്ലെങ്കിൽ കാലയളവാണ് ഫൈൻഡ്uടൈം നിർദ്ദേശം.
  • വിദൂര ക്ലയന്റ് സെർവർ ആക്uസസ്സുചെയ്യുന്നതിൽ നിന്ന് തടയുന്നതിന് മുമ്പുള്ള തെറ്റായ പാസ്uവേഡ് ശ്രമങ്ങളുടെ പരമാവധി എണ്ണമാണ് maxretry പാരാമീറ്റർ. ഇവിടെ, 5 പ്രാമാണീകരണ പരാജയങ്ങൾക്ക് ശേഷം ക്ലയന്റ് ലോക്ക് ഔട്ട് ആകും.

സ്ഥിരസ്ഥിതിയായി, fail2ban iptables-ൽ പ്രവർത്തിക്കുന്നു. എന്നിരുന്നാലും, ഫയർവാൾഡിന് അനുകൂലമായി ഇത് ഒഴിവാക്കിയിരിക്കുന്നു. iptables-ന് പകരം ഫയർവാൾഡിനൊപ്പം പ്രവർത്തിക്കാൻ fail2ban കോൺഫിഗർ ചെയ്യേണ്ടതുണ്ട്.

അതിനാൽ, കമാൻഡ് ഉപയോഗിച്ച് പ്രവർത്തിപ്പിക്കുക:

$ sudo mv /etc/fail2ban/jail.d/00-firewalld.conf /etc/fail2ban/jail.d/00-firewalld.local

മാറ്റങ്ങൾ പ്രയോഗിക്കാൻ, fail2ban പുനരാരംഭിക്കുക:

$ sudo systemctl restart fail2ban

ഘട്ടം 5: Fail2ban ഉപയോഗിച്ച് SSH സേവനം സുരക്ഷിതമാക്കുന്നു

സ്ഥിരസ്ഥിതിയായി, നിങ്ങൾ സുരക്ഷിതമാക്കാൻ ആഗ്രഹിക്കുന്ന ഒരു സേവനത്തിനായി ജയിൽ കോൺഫിഗറേഷൻ പ്രവർത്തനക്ഷമമാക്കുന്നത് വരെ fail2ban ഒരു വിദൂര ഹോസ്റ്റിനെയും തടയില്ല. ജയിൽ കോൺഫിഗറേഷൻ /etc/fail2ban/jail.d പാതയിൽ വ്യക്തമാക്കിയിട്ടുണ്ട് കൂടാതെ jail.local ഫയലിൽ വ്യക്തമാക്കിയിരിക്കുന്ന കോൺഫിഗറേഷൻ അസാധുവാക്കും.

ഈ ഉദാഹരണത്തിൽ, SSH സേവനം പരിരക്ഷിക്കുന്നതിനായി ഞങ്ങൾ ഒരു ജയിൽ കോൺഫിഗറേഷൻ ഫയൽ സൃഷ്ടിക്കും. അതിനാൽ, SSH ജയിൽ ഫയൽ സൃഷ്ടിക്കുക.

$ sudo vim /etc/fail2ban/jail.d/sshd.local

അടുത്തതായി, ഇനിപ്പറയുന്ന വരികൾ ഒട്ടിക്കുക:

[sshd]
enabled = true

# Override the default global configuration
# for specific jail sshd
bantime = 1d
maxretry = 3

മുകളിലെ കോൺഫിഗറേഷനിൽ, 3 SSH ലോഗിൻ ശ്രമങ്ങൾ പരാജയപ്പെട്ടതിന് ശേഷം 1 ദിവസത്തേക്ക് ഒരു റിമോട്ട് ഹോസ്റ്റിനെ സിസ്റ്റം ആക്സസ് ചെയ്യുന്നതിൽ നിന്ന് നിരോധിക്കും. മാറ്റങ്ങൾ സംരക്ഷിച്ച് fail2ban സേവനം പുനരാരംഭിക്കുക.

$ sudo systemctl restart fail2ban

അടുത്തതായി, fail2ban-client കമാൻഡ്-ലൈൻ യൂട്ടിലിറ്റി ഉപയോഗിച്ച് ജയിൽ കോൺഫിഗറേഷൻ നില പരിശോധിക്കുക.

$ sudo fail2ban-client status

ഔട്ട്uപുട്ടിൽ നിന്ന്, 'sshd' എന്ന സേവനത്തിനായി 1 ജയിൽ ക്രമീകരിച്ചിട്ടുണ്ടെന്ന് നമുക്ക് കാണാൻ കഴിയും.

കൂടാതെ, get ഓപ്ഷൻ ഉപയോഗിച്ച് നിങ്ങൾക്ക് sshd ജയിലിന്റെ maxretry മൂല്യം സ്ഥിരീകരിക്കാം.

$ sudo fail2ban-client get sshd maxretry

3

അച്ചടിച്ച മൂല്യം 3 നിങ്ങൾ sshd.local ഫയലിൽ വ്യക്തമാക്കിയതുമായി പൊരുത്തപ്പെടണം.

ഘട്ടം 6: Fail2ban കോൺഫിഗറേഷൻ പരിശോധിക്കുന്നു

fail2ban സജ്ജീകരിച്ച് SSH സേവനത്തിനായി ഒരു ജയിൽ കോൺഫിഗറേഷൻ ഫയൽ സൃഷ്uടിച്ചതിന് ശേഷം, ഓരോ പാസ്uവേഡ് പ്രോംപ്റ്റിനും തെറ്റായ പാസ്uവേഡ് നൽകിക്കൊണ്ട് ഞങ്ങൾ ഒരു ടെസ്റ്റ് റൺ നടത്താനും പരാജയപ്പെട്ട 3 ലോഗിനുകളെ അനുകരിക്കാനും പോകുന്നു.

അതിനാൽ ഒരു റിമോട്ട് ലിനക്സ് സിസ്റ്റത്തിലേക്ക് പോയി തെറ്റായ പാസ്uവേഡ് ഉപയോഗിച്ച് ലോഗിൻ ചെയ്യാൻ ശ്രമിക്കുക. 3 പരാജയപ്പെട്ട ശ്രമങ്ങൾക്ക് ശേഷം, കണക്ഷൻ ഡ്രോപ്പ് ചെയ്യപ്പെടുകയും നിരോധന കാലയളവ് അവസാനിക്കുന്നത് വരെ വീണ്ടും കണക്റ്റുചെയ്യാനുള്ള ഏതൊരു തുടർന്നുള്ള ശ്രമവും തടയുകയും ചെയ്യും.

ബ്ലോക്ക് ചെയ്uത ക്ലയന്റ് സിസ്റ്റങ്ങളെക്കുറിച്ചുള്ള സ്ഥിതിവിവരക്കണക്കുകൾ ശേഖരിക്കുന്നതിന് ജയിൽ നില പരിശോധിക്കുക.

$ sudo fail2ban-client status sshd

ഉപഭോക്താവിനെ ജയിലിൽ നിന്ന് ഒഴിവാക്കുന്നതിനോ നീക്കം ചെയ്യുന്നതിനോ, കമാൻഡ് നടപ്പിലാക്കുക:

$ sudo fail2ban-client unban 192.168.2.102

നിരോധിത ഐപി ലിസ്റ്റിൽ ക്ലയന്റ് ഉൾപ്പെട്ടിട്ടില്ലെന്ന് ഉറപ്പാക്കാൻ ഒരിക്കൽ കൂടി ജയിൽ നില പരിശോധിക്കുക.

$ sudo fail2ban-client status sshd

നമ്മൾ കണ്ടതുപോലെ, നിങ്ങളുടെ Linux സിസ്റ്റം ലംഘിക്കാൻ ശ്രമിക്കുന്ന നുഴഞ്ഞുകയറ്റക്കാരെ തടയുന്നതിനുള്ള വളരെ ഉപയോഗപ്രദമായ ഉപകരണമാണ് Fail2ban. ഒരു നിശ്ചിത എണ്ണം ലോഗിൻ ശ്രമങ്ങൾ പരാജയപ്പെട്ടതിന് ശേഷം ഒരു നിശ്ചിത സമയത്തേക്ക് ക്ലയന്റ് സിസ്റ്റങ്ങളെ നിരോധിക്കുന്നതിന് ഫയർവാൾഡുമായി ചേർന്ന് ഇത് പ്രവർത്തിക്കുന്നു. അങ്ങനെ ചെയ്യുമ്പോൾ, ഇത് നിങ്ങളുടെ Linux സെർവറിന് ഒരു അധിക പരിരക്ഷ നൽകുന്നു.