Lokaðu SSH netþjónaárásum (Brute Force Attacks) með því að nota DenyHosts


DenyHosts er opinn uppspretta og ókeypis innbrotsvarnarforrit sem byggir á innbroti fyrir SSH netþjóna þróað á Python tungumáli af Phil Schwartz.

Það er ætlað að fylgjast með og greina SSH netþjónaskrár fyrir ógildar innskráningartilraunir, árásir sem byggjast á orðabókum og árásir á grimmdarkrafti með því að loka uppruna IP tölum með því að bæta færslu við /etc/hosts.deny skrána á þjóninum og koma í veg fyrir IP tölu. frá því að gera frekari slíkar innskráningartilraunir.

[Þér gæti líka líkað við: Hvernig á að tryggja og herða OpenSSH Server ]

DenyHosts er mjög þörf tól fyrir öll Linux byggð kerfi, sérstaklega þegar við leyfum lykilorð minna ssh innskráningu á ytri Linux netþjóna.

Í þessari grein ætlum við að sýna þér hvernig á að setja upp og stilla DenyHosts á RHEL-undirstaða Linux dreifingar eins og Fedora, CentOS, Rocky Linux og AlmaLinux.

Sjá einnig :

  • Hvernig á að nota Fail2ban til að tryggja Linux netþjóninn þinn
  • Hvernig á að slökkva á SSH rótarinnskráningu til að takmarka SSH aðgang í Linux
  • Hvernig á að auka SSH-tengingartíma í Linux

Hvernig á að setja upp DenyHosts í Linux

Sjálfgefið er DenyHosts tólið ekki innifalið í Linux kerfunum, við þurfum að setja það upp með yum skipun þriðja aðila.

# yum install epel-release
# yum install denyhosts

Stilla DenyHosts fyrir hvítlista IP tölur

Þegar Denyhosts hafa verið sett upp, vertu viss um að hvítlista þitt eigið IP tölu, svo þú munt aldrei læsast úti. Til að gera þetta skaltu opna skrána /etc/hosts.allow.

# vi /etc/hosts.allow

Fyrir neðan lýsinguna skaltu bæta við hverri IP tölu fyrir sig á sérstakri línu sem þú vilt aldrei loka fyrir. Snið ætti að vera sem hér segir.

#
# 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

Stilla DenyHosts fyrir tölvupóstviðvaranir

Aðalstillingarskráin er staðsett undir /etc/denyhosts.conf. Þessi skrá er notuð til að senda viðvaranir í tölvupósti um grunsamlegar innskráningar og takmarkaða gestgjafa. Opnaðu þessa skrá með VI ritstjóra.

# vi /etc/denyhosts.conf

Leitaðu að „ADMIN_EMAIL“ og bættu netfanginu þínu við hér til að fá tilkynningar í tölvupósti um grunsamlegar innskráningar (fyrir margar tilkynningar í tölvupósti notaðu aðskilin með kommum). Vinsamlegast skoðaðu stillingarskrána á CentOS 6.3 þjóninum mínum. Hver breyta er vel skjalfest svo stilltu hana í samræmi við það sem þú vilt.

############ 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

Endurræsir DenyHosts þjónustuna

Þegar þú hefur lokið við stillingarnar þínar skaltu endurræsa denyhosts þjónustuna fyrir nýjar breytingar. Við bætum einnig denyhosts þjónustunni við ræsingu kerfisins.

# chkconfig denyhosts on
# service denyhosts start

Horfðu á DenyHosts Logs

Til að horfa á denyhosts skráir ssh skrá yfir hversu margir árásarmenn og tölvusnápur er reynt að fá aðgang að netþjóninum þínum. Notaðu eftirfarandi skipun til að skoða rauntímaskrárnar.

# 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

Fjarlægðu bannaða IP tölu frá DenyHosts

Ef þú hefur einhvern tíma lokað fyrir slysni og vilt fjarlægja þá bönnuðu IP tölu frá afneitunarhýsingunum. Þú þarft að hætta þjónustunni.

# /etc/init.d/denyhosts stop

Til að fjarlægja eða eyða bannaðri IP tölu alveg. Þú þarft að breyta eftirfarandi skrám og fjarlægja IP töluna.

# 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

Eftir að hafa fjarlægt bannaða IP tölu skaltu endurræsa þjónustuna aftur.

# /etc/init.d/denyhosts start

Móðgandi IP tölunni bætt við allar skrárnar undir /var/lib/denyhosts skránni, svo það er mjög erfitt að ákvarða hvaða skrár innihalda móðgandi IP töluna. Ein besta leiðin til að finna út IP töluna með því að nota grep skipunina. Til dæmis til að finna út IP tölu 172.16.25.125, gerðu.

cd /var/lib/denyhosts
grep 172.16.25.125 *

Hvítlisti IP-tölur varanlega í DenyHosts

Ef þú ert með lista yfir kyrrstæða IP tölu sem þú vilt hvítlista varanlega. Opnaðu skrána /var/lib/denyhosts/allowed-hosts skrána. Hvaða IP-tala sem er í þessari skrá verður ekki sjálfgefið bönnuð (litið á þetta sem tímalista).

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

Og bættu við hverri IP tölu á sérstakri línu. Vistaðu og lokaðu skránni.

# We mustn't block localhost
127.0.0.1
172.16.25.125
172.16.25.126
172.16.25.127