Bloķējiet SSH servera uzbrukumus (Brute Force Attack), izmantojot DenyHosts


DenyHosts ir atvērtā koda un bezmaksas uz žurnāliem balstīta ielaušanās novēršanas drošības programma SSH serveriem, kuru Python valodā izstrādājis Fils Švarcs. Tas ir paredzēts, lai uzraudzītu un analizētu SSH servera žurnālus par nederīgiem pieteikšanās mēģinājumiem, vārdnīcu uzbrukumiem un brutālu spēku uzbrukumiem, bloķējot izcelsmes IP adreses, pievienojot ierakstu serverī esošajam /etc/hosts.deny failam un novēršot IP adreses izveidi jebkuri turpmāki šādi pieteikšanās mēģinājumi.

DenyHosts ir ļoti nepieciešams rīks visām Linux balstītajām sistēmām, it īpaši, ja mēs atļaujam pieteikties uz paroli. Šajā rakstā mēs parādīsim, kā instalēt un konfigurēt DenyHosts RHEL 6.3/6.2/6.1/6/5.8, CentOS 6.3/6.2/6.1/6/5.8 un Fedora 17,16,15,14,13,12 sistēmas, kas izmanto epeli krātuvi.

Skatīt arī :

  1. SS2 fail2ban (ielaušanās novēršanas) sistēma
  2. Atspējojiet vai iespējojiet SSH saknes pieteikšanos
  3. Linux Malware Detect (LMD)

DenyHosts instalēšana RHEL, CentOS un Fedora

Pēc noklusējuma DenyHosts rīks nav iekļauts Linux sistēmās, mums tas jāinstalē, izmantojot trešās puses EPEL krātuvi. Kad krātuve ir pievienota, instalējiet pakotni, izmantojot komandu YUM.

# yum --enablerepo=epel install denyhosts
OR
# yum install denyhosts

DenyHosts konfigurēšana baltajiem IP adresēm

Kad Denyhosts ir instalēts, noteikti iekļaujiet baltajā sarakstā savu IP adresi, lai jūs nekad netiktu bloķēts. Lai to izdarītu, atveriet failu /etc/hosts.allow.

# vi /etc/hosts.allow

Zem apraksta pievienojiet katru IP adresi pa vienam atsevišķā rindā, kuru nekad nevēlaties bloķēt. Formātam jābūt šādam.

#
# 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 konfigurēšana e-pasta brīdinājumiem

Galvenais konfigurācijas fails atrodas zem /etc/denyhosts.conf. Šis fails tiek izmantots, lai nosūtītu e-pasta brīdinājumus par aizdomīgiem pieteikšanās gadījumiem un ierobežotiem saimniekiem. Atveriet šo failu, izmantojot VI redaktoru.

# vi /etc/denyhosts.conf

Meklējiet “ADMIN_EMAIL” un šeit pievienojiet savu e-pasta adresi, lai saņemtu e-pasta brīdinājumus par aizdomīgiem pieteikšanās gadījumiem (vairāku e-pasta brīdinājumu gadījumā atdaliet komatus). Lūdzu, apskatiet mana CentOS 6.3 servera konfigurācijas failu. Katrs mainīgais ir labi dokumentēts, tāpēc konfigurējiet to atbilstoši savām vēlmēm.

############ 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 pakalpojuma restartēšana

Kad esat pabeidzis konfigurāciju, restartējiet denyhosts pakalpojumu, lai veiktu jaunas izmaiņas. Sistēmas palaišanai mēs pievienojam arī denyhosts pakalpojumu.

# chkconfig denyhosts on
# service denyhosts start

Skatīties DenyHosts žurnālus

Lai skatītos denyhosts ssh žurnālus, cik uzbrucēju un hakeru mēģina piekļūt jūsu serverim. Izmantojiet šo komandu, lai skatītu reāllaika žurnālus.

# 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

Noņemiet no DenyHosts aizliegto IP adresi

Ja esat kādreiz nejauši bloķējis un vēlaties noņemt aizliegto IP adresi no denyhosts. Jums jāpārtrauc pakalpojums.

# /etc/init.d/denyhosts stop

Lai pilnībā noņemtu vai izdzēstu aizliegto IP adresi. Jums ir jārediģē šie faili un jānoņem IP adrese.

# 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

Pēc aizliegtās IP adreses noņemšanas restartējiet pakalpojumu vēlreiz.

# /etc/init.d/denyhosts start

Pārkāpēja IP adrese tika pievienota visiem failiem, kas atrodas direktorijā/var/lib/denyhosts, tāpēc ir ļoti grūti noteikt, kuros failos ir pārkāpēja IP adrese. Viens no labākajiem veidiem, kā uzzināt IP adresi, izmantojot komandu grep. Piemēram, lai uzzinātu IP adresi 172.16.25.125, dariet.

cd /var/lib/denyhosts
grep 172.16.25.125 *

Baltās saraksta IP adreses pastāvīgi atrodamas DenyHosts

Ja esat uzskaitījis statisko IP adresi, kuru vēlaties neatgriezeniski iekļaut baltajā sarakstā. Atveriet failu var/lib/denyhosts/atļauts-saimnieks. Neatkarīgi no šajā failā iekļautās IP adreses pēc noklusējuma netiks aizliegta (uzskatiet to par pilno sarakstu).

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

Un pievienojiet katru IP adresi atsevišķā rindā. Saglabājiet un aizveriet failu.

# We mustn't block localhost
127.0.0.1
172.16.25.125
172.16.25.126
172.16.25.127