DenyHosts ഉപയോഗിച്ച് SSH സെർവർ ആക്രമണങ്ങൾ (ബ്രൂട്ട് ഫോഴ്uസ് ആക്രമണങ്ങൾ) തടയുക


ഫിൽ ഷ്വാർട്സ് പൈത്തൺ ഭാഷയിൽ വികസിപ്പിച്ച എസ്എസ്എച്ച് സെർവറുകൾക്കായുള്ള ഒരു ഓപ്പൺ സോഴ്uസ്, ഫ്രീ ലോഗ് അധിഷ്ഠിത നുഴഞ്ഞുകയറ്റ പ്രതിരോധ സുരക്ഷാ പ്രോഗ്രാമാണ് DenyHosts.

അസാധുവായ ലോഗിൻ ശ്രമങ്ങൾ, നിഘണ്ടു അടിസ്ഥാനമാക്കിയുള്ള ആക്രമണങ്ങൾ, ബ്രൂട്ട് ഫോഴ്uസ് ആക്രമണങ്ങൾ എന്നിവയ്ക്കായി SSH സെർവർ ലോഗുകൾ നിരീക്ഷിക്കാനും വിശകലനം ചെയ്യാനും ഉദ്ദേശിച്ചുള്ളതാണ്, സെർവറിലെ /etc/hosts.deny ഫയലിലേക്ക് ഒരു എൻട്രി ചേർത്തുകൊണ്ട് ഉത്ഭവിക്കുന്ന ഐപി വിലാസങ്ങൾ തടയുകയും ഐപി വിലാസം തടയുകയും ചെയ്യുന്നു. അത്തരം ലോഗിൻ ശ്രമങ്ങൾ നടത്തുന്നതിൽ നിന്ന്.

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

എല്ലാ ലിനക്സ് അധിഷ്ഠിത സിസ്റ്റങ്ങൾക്കും DenyHosts വളരെ ആവശ്യമായ ഉപകരണമാണ്, പ്രത്യേകിച്ചും വിദൂര ലിനക്സ് സെർവറുകളിലേക്ക് പാസ്uവേഡ് കുറവ് ssh ലോഗിനുകൾ അനുവദിക്കുമ്പോൾ.

ഈ ലേഖനത്തിൽ, Fedora, CentOS, Rocky Linux, AlmaLinux തുടങ്ങിയ RHEL-അധിഷ്ഠിത ലിനക്സ് വിതരണങ്ങളിൽ DenyHosts എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാമെന്നും കോൺഫിഗർ ചെയ്യാമെന്നും ഞങ്ങൾ നിങ്ങളെ കാണിക്കാൻ പോകുന്നു.

ഇതും കാണുക :

  • നിങ്ങളുടെ Linux സെർവർ സുരക്ഷിതമാക്കാൻ Fail2ban എങ്ങനെ ഉപയോഗിക്കാം
  • ലിനക്സിലെ SSH ആക്സസ് പരിമിതപ്പെടുത്താൻ SSH റൂട്ട് ലോഗിൻ എങ്ങനെ പ്രവർത്തനരഹിതമാക്കാം
  • ലിനക്സിൽ SSH കണക്ഷൻ ടൈംഔട്ട് എങ്ങനെ വർദ്ധിപ്പിക്കാം

ലിനക്സിൽ DenyHosts എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം

ഡിഫോൾട്ടായി DenyHosts ടൂൾ Linux സിസ്റ്റങ്ങളിൽ ഉൾപ്പെടുത്തിയിട്ടില്ല, ഞങ്ങൾ ഇത് മൂന്നാം കക്ഷി yum കമാൻഡ് ഉപയോഗിച്ച് ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട്.

# yum install epel-release
# yum install denyhosts

വൈറ്റ്uലിസ്റ്റ് ഐപി വിലാസങ്ങൾക്കായി DenyHosts കോൺഫിഗർ ചെയ്യുന്നു

Denyhosts ഇൻസ്റ്റാൾ ചെയ്തുകഴിഞ്ഞാൽ, നിങ്ങളുടെ സ്വന്തം IP വിലാസം വൈറ്റ്uലിസ്റ്റ് ചെയ്യുന്നത് ഉറപ്പാക്കുക, അതിനാൽ നിങ്ങൾ ഒരിക്കലും ലോക്ക് ഔട്ട് ആകില്ല. ഇത് ചെയ്യുന്നതിന്, /etc/hosts.allow ഒരു ഫയൽ തുറക്കുക.

# vi /etc/hosts.allow

വിവരണത്തിന് താഴെ, നിങ്ങൾ ഒരിക്കലും തടയാൻ ആഗ്രഹിക്കാത്ത, ഒരു പ്രത്യേക വരിയിൽ ഓരോ ഐപി വിലാസവും ഓരോന്നായി ചേർക്കുക. ഫോർമാറ്റ് ഇനിപ്പറയുന്നതായിരിക്കണം.

#
# hosts.allow   This file contains access rules which are used to
#               allow or deny connections to network services that
#               either use the tcp_wrappers library or that have been
#               started through a tcp_wrappers-enabled xinetd.
#
#               See 'man 5 hosts_options' and 'man 5 hosts_access'
#               for information on rule syntax.
#               See 'man tcpd' for information on tcp_wrappers
#
sshd: 172.16.25.125
sshd: 172.16.25.126
sshd: 172.16.25.127

ഇമെയിൽ അലേർട്ടുകൾക്കായി DenyHosts കോൺഫിഗർ ചെയ്യുന്നു

പ്രധാന കോൺഫിഗറേഷൻ ഫയൽ /etc/denyhosts.conf എന്നതിന് കീഴിലാണ് സ്ഥിതി ചെയ്യുന്നത്. സംശയാസ്പദമായ ലോഗിനുകളെയും നിയന്ത്രിത ഹോസ്റ്റുകളെയും കുറിച്ചുള്ള ഇമെയിൽ അലേർട്ടുകൾ അയയ്ക്കാൻ ഈ ഫയൽ ഉപയോഗിക്കുന്നു. VI എഡിറ്റർ ഉപയോഗിച്ച് ഈ ഫയൽ തുറക്കുക.

# vi /etc/denyhosts.conf

സംശയാസ്പദമായ ലോഗിനുകളെക്കുറിച്ചുള്ള ഇമെയിൽ അലേർട്ടുകൾ ലഭിക്കുന്നതിന് 'ADMIN_EMAIL' എന്നതിനായി തിരയുക, നിങ്ങളുടെ ഇമെയിൽ വിലാസം ഇവിടെ ചേർക്കുക (ഒന്നിലധികം ഇമെയിൽ അലേർട്ടുകൾക്ക് കോമ ഉപയോഗിച്ച് വേർതിരിച്ച് ഉപയോഗിക്കുക). ദയവായി എന്റെ CentOS 6.3 സെർവറിന്റെ കോൺഫിഗറേഷൻ ഫയൽ നോക്കുക. ഓരോ വേരിയബിളും നന്നായി രേഖപ്പെടുത്തപ്പെട്ടതിനാൽ നിങ്ങളുടെ ഇഷ്ടത്തിനനുസരിച്ച് കോൺഫിഗർ ചെയ്യുക.

############ DENYHOSTS REQUIRED SETTINGS ############
SECURE_LOG = /var/log/secure
HOSTS_DENY = /etc/hosts.deny
BLOCK_SERVICE  = sshd
DENY_THRESHOLD_INVALID = 5
DENY_THRESHOLD_VALID = 10
DENY_THRESHOLD_ROOT = 1
DENY_THRESHOLD_RESTRICTED = 1
WORK_DIR = /var/lib/denyhosts
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
HOSTNAME_LOOKUP=YES
LOCK_FILE = /var/lock/subsys/denyhosts

############ DENYHOSTS OPTIONAL SETTINGS ############
ADMIN_EMAIL = [email 
SMTP_HOST = localhost
SMTP_PORT = 25
SMTP_FROM = DenyHosts <[email >
SMTP_SUBJECT = DenyHosts Daily Report

############ DENYHOSTS OPTIONAL SETTINGS ############
DAEMON_LOG = /var/log/denyhosts
DAEMON_SLEEP = 30s
DAEMON_PURGE = 1h

DenyHosts സേവനം പുനരാരംഭിക്കുന്നു

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

# chkconfig denyhosts on
# service denyhosts start

DenyHosts ലോഗുകൾ കാണുക

നിങ്ങളുടെ സെർവറിലേക്ക് ആക്സസ് നേടാൻ എത്ര ആക്രമണകാരികളും ഹാക്കർമാരും ശ്രമിക്കുന്നു എന്നതിനുള്ള denyhosts ssh ലോഗുകൾ കാണുന്നതിന്. തത്സമയ ലോഗുകൾ കാണുന്നതിന് ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിക്കുക.

# tail -f /var/log/secure
Nov 28 15:01:43 tecmint sshd[25474]: Accepted password for root from 172.16.25.125 port 4339 ssh2
Nov 28 15:01:43 tecmint sshd[25474]: pam_unix(sshd:session): session opened for user root by (uid=0)
Nov 28 16:44:09 tecmint sshd[25474]: pam_unix(sshd:session): session closed for user root
Nov 29 11:08:56 tecmint sshd[31669]: Accepted password for root from 172.16.25.125 port 2957 ssh2
Nov 29 11:08:56 tecmint sshd[31669]: pam_unix(sshd:session): session opened for user root by (uid=0)
Nov 29 11:12:00 tecmint atd[3417]: pam_unix(atd:session): session opened for user root by (uid=0)
Nov 29 11:12:00 tecmint atd[3417]: pam_unix(atd:session): session closed for user root
Nov 29 11:26:42 tecmint sshd[31669]: pam_unix(sshd:session): session closed for user root
Nov 29 12:54:17 tecmint sshd[7480]: Accepted password for root from 172.16.25.125 port 1787 ssh2

DenyHosts-ൽ നിന്ന് നിരോധിക്കപ്പെട്ട IP വിലാസം നീക്കം ചെയ്യുക

നിങ്ങൾ എപ്പോഴെങ്കിലും ആകസ്uമികമായി ബ്ലോക്ക് ചെയ്uതിട്ടുണ്ടെങ്കിൽ, ആ നിരോധിത ഐപി വിലാസം denyhosts-ൽ നിന്ന് നീക്കംചെയ്യാൻ ആഗ്രഹിക്കുന്നുവെങ്കിൽ. നിങ്ങൾ സേവനം നിർത്തേണ്ടതുണ്ട്.

# /etc/init.d/denyhosts stop

നിരോധിത ഐപി വിലാസം പൂർണ്ണമായും നീക്കം ചെയ്യാനോ ഇല്ലാതാക്കാനോ. നിങ്ങൾ ഇനിപ്പറയുന്ന ഫയലുകൾ എഡിറ്റ് ചെയ്യുകയും IP വിലാസം നീക്കം ചെയ്യുകയും വേണം.

# vi /etc/hosts.deny
# vi /var/lib/denyhosts/hosts
# vi /var/lib/denyhosts/hosts-restricted
# vi /var/lib/denyhosts/hosts-root
# vi /var/lib/denyhosts/hosts-valid
# vi /var/lib/denyhosts/users-hosts

നിരോധിച്ച IP വിലാസം നീക്കം ചെയ്ത ശേഷം, സേവനം വീണ്ടും പുനരാരംഭിക്കുക.

# /etc/init.d/denyhosts start

കുറ്റകരമായ IP വിലാസം /var/lib/denyhosts ഡയറക്uടറിക്ക് കീഴിലുള്ള എല്ലാ ഫയലുകളിലേക്കും ചേർത്തു, അതിനാൽ ഏതൊക്കെ ഫയലുകളിൽ കുറ്റകരമായ IP വിലാസം അടങ്ങിയിരിക്കുന്നുവെന്ന് നിർണ്ണയിക്കുന്നത് വളരെ ബുദ്ധിമുട്ടാണ്. grep കമാൻഡ് ഉപയോഗിച്ച് IP വിലാസം കണ്ടെത്താനുള്ള ഏറ്റവും നല്ല മാർഗ്ഗം. ഉദാഹരണത്തിന് IP വിലാസം 172.16.25.125 കണ്ടെത്താൻ, ചെയ്യുക.

cd /var/lib/denyhosts
grep 172.16.25.125 *

DenyHosts-ൽ ശാശ്വതമായി IP വിലാസങ്ങൾ വൈറ്റ്uലിസ്റ്റ് ചെയ്യുക

നിങ്ങൾക്ക് സ്ഥിരമായി വൈറ്റ്uലിസ്റ്റ് ചെയ്യേണ്ട സ്റ്റാറ്റിക് ഐപി വിലാസത്തിന്റെ ലിസ്റ്റ് ഉണ്ടെങ്കിൽ. /var/lib/denyhosts/allowed-hosts ഫയൽ തുറക്കുക. ഈ ഫയലിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്ന ഏത് ഐപി വിലാസവും ഡിഫോൾട്ടായി നിരോധിക്കില്ല (ഇത് ഒരു സമയ പട്ടികയായി പരിഗണിക്കുക).

# vi /var/lib/denyhosts/allowed-hosts

ഓരോ ഐപി വിലാസവും പ്രത്യേകം വരിയിൽ ചേർക്കുക. ഫയൽ സംരക്ഷിച്ച് അടയ്ക്കുക.

# We mustn't block localhost
127.0.0.1
172.16.25.125
172.16.25.126
172.16.25.127