Blokeerige SSH-serveri rünnakud (jõhkrad rünnakud) DenyHosts'i abil


DenyHosts on avatud lähtekoodiga ja tasuta logipõhine sissetungi vältimise turbeprogramm SSH-serveritele, mille on välja töötanud Pythoni keeles Phil Schwartz. See on mõeldud SSH-serveri logide jälgimiseks ja analüüsimiseks kehtetute sisselogimiskatsete, sõnastikupõhiste rünnakute ja jõhkrate rünnakute eest, blokeerides päritolevad IP-aadressid, lisades serverisse faili /etc/hosts.deny kirje ja takistades IP-aadressi loomist kõik muud sellised sisselogimiskatsed.

DenyHosts on kõigi Linuxipõhiste süsteemide jaoks väga vajalik tööriist, eriti kui lubame paroolipõhiseid ssh-i sisselogimisi. Selles artiklis me näitame teile, kuidas installida ja konfigureerida DenyHosts RHEL 6.3/6.2/6.1/6/5.8, CentOS 6.3/6.2/6.1/6/5.8 ja Fedora 17,16,15,14,13,12 süsteemid, mis kasutavad epeli hoidlat.

Vaata ka :

  1. Fail2bani (sissetungimise vältimise) süsteem SSH-le
  2. Keelake või lubage SSH-i juur sisselogimine
  3. Linuxi pahavara tuvastamine (LMD)

DenyHosts'i installimine RHEL-i, CentOS-i ja Fedora

Vaikimisi pole tööriista DenyHosts Linuxi süsteemidesse lisatud, peame selle installima kolmanda osapoole EPEL-i hoidla abil. Kui hoidla on lisatud, installige pakett järgmise YUM-käsu abil.

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

DenyHosts'i konfigureerimine lubatud loendi IP-aadresside jaoks

Kui Denyhosts on installitud, lisage kindlasti oma IP-aadress loendisse, nii et te ei saa kunagi lukku minna. Selleks avage fail /etc/hosts.allow.

# vi /etc/hosts.allow

Lisage kirjelduse alla iga IP-aadress ükshaaval eraldi reale, mida te kunagi ei soovi blokeerida. Vorming peaks olema järgmine.

#
# 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'i konfigureerimine e-posti märguannete jaoks

Peamine konfiguratsioonifail asub /etc/denyhosts.conf all. Seda faili kasutatakse meilisõnumite saatmiseks kahtlaste sisselogimiste ja piiratud hostide kohta. Avage see fail VI redaktori abil.

# vi /etc/denyhosts.conf

Otsige e-posti aadressi „ADMIN_EMAIL” ja lisage siia oma e-posti aadress, et saada kahtlaste sisselogimiste kohta meilisõnumeid (mitme e-posti märguande jaoks kasutage komaga eraldatud märke). Vaadake minu CentOS 6.3 serveri konfiguratsioonifaili. Iga muutuja on hästi dokumenteeritud, nii et seadistage see oma maitse järgi.

############ 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'i teenuse taaskäivitamine

Kui olete oma konfiguratsiooni teinud, taaskäivitage denyhosts-teenus uute muudatuste jaoks. Samuti lisame süsteemi käivitamisel teenuse denyhosts.

# chkconfig denyhosts on
# service denyhosts start

Vaadake DenyHosts Logisid

Denyhostide ssh logide vaatamiseks, kui palju ründajaid ja häkkerid üritavad teie serverile juurde pääseda. Reaalajas logide kuvamiseks kasutage järgmist käsku.

# 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

Eemaldage DenyHostsist keelatud IP-aadress

Kui olete kunagi kogemata blokeerinud ja soovite selle keelatud IP-aadressi denyhostide hulgast eemaldada. Peate teenuse peatama.

# /etc/init.d/denyhosts stop

Keelatud IP-aadressi täielik eemaldamine või kustutamine. Peate muutma järgmisi faile ja eemaldama IP-aadressi.

# 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ärast keelatud IP-aadressi eemaldamist taaskäivitage teenus uuesti.

# /etc/init.d/denyhosts start

Rikkuv IP-aadress lisati kõikidele kataloogi/var/lib/denyhosts kataloogi kuuluvatele failidele, mistõttu on väga raske kindlaks teha, millised failid sisaldavad rikkuvat IP-aadressi. Üks parimaid viise IP-aadressi saamiseks grep-käsu abil. Näiteks IP-aadressi 172.16.25.125 väljaselgitamiseks tehke järgmist.

cd /var/lib/denyhosts
grep 172.16.25.125 *

Lubatud loendisse IP-aadressid loendisse DenyHosts

Kui olete loendis staatilise IP-aadressi, mille soovite jäädavalt loendisse lisada. Avage fail/var/lib/denyhosts/lubatud-hosts. Ükskõik mis selles failis sisalduvat IP-aadressi ei keelata vaikimisi (pidage seda loendiks).

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

Ja lisage iga IP-aadress eraldi reale. Salvestage ja sulgege fail.

# We mustn't block localhost
127.0.0.1
172.16.25.125
172.16.25.126
172.16.25.127