Jinsi ya Kuzuia Mashambulizi ya Nguvu ya SSH kwa kutumia SSHGUARD


SSHGuard ni daemon ya chanzo huria ambayo hulinda wenyeji dhidi ya mashambulizi ya nguvu ya kikatili. Hutimiza hili kupitia ufuatiliaji na ujumlishaji wa kumbukumbu za mfumo, kugundua mashambulizi, na kuzuia washambuliaji kwa kutumia mojawapo ya viunga vya ulinzi vya Linux: iptables, FirewallD, pf, na ipfw.

Hapo awali iliundwa ili kutoa safu ya ziada ya ulinzi kwa huduma ya OpenSSH, SSHGuard pia hulinda anuwai ya huduma kama vile Vsftpd na Postfix. Inatambua miundo kadhaa ya kumbukumbu ikijumuisha Syslog, Syslog-ng, na faili mbichi za kumbukumbu.

[ Unaweza pia kupenda: Jinsi ya Kulinda na Kuimarisha Seva ya OpenSSH ]

SSHGuard ni sawa kabisa na Fail2ban tu kwamba imeandikwa katika C (Fail2ban imeandikwa katika Python), ni nyepesi, na hutoa vipengele vichache.

Katika mwongozo huu, tutaonyesha jinsi unavyoweza kusakinisha na kusanidi SSHGuard ili kuzuia mashambulizi ya nguvu ya SSH kwenye seva yako ya Linux.

Hatua ya 1: Sakinisha SSHGuard kwenye Linux

Tunaanza na usakinishaji wa SSHGuard kwenye Linux.

Kwanza, sasisha orodha za kifurushi kisha usakinishe SSHGuard kutoka kwa hazina chaguo-msingi kwa kutumia kidhibiti cha kifurushi cha apt.

$ sudo apt update
$ sudo apt install sshguard

Mara tu ikiwa imewekwa, huduma ya SSHGuard huanza kiotomatiki, na unaweza kuthibitisha hili kwa kutumia amri:

$ sudo systemctl status sshguard

Kwa usambazaji unaotegemea RHEL kama vile CentOS, Rocky, na AlmaLinux, anza kwa kusakinisha hazina ya EPEL kama inavyotolewa katika amri iliyo hapa chini.

$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
OR
$ sudo dnf install epel-release

Ukiwa na EPEL, endelea na usakinishe SSHGuard ukitumia kidhibiti cha kifurushi cha dnf.

$ sudo dnf install sshguard 

Mara tu ikiwa imesakinishwa, anza na uweke SSHGuard ili kuanza kwenye kuanzisha mfumo au kuwasha upya.

$ sudo systemctl start sshguard
$ sudo systemctl enable sshguard

Hakikisha umethibitisha kuwa SSHGuard inafanya kazi kama inavyotarajiwa.

$ sudo systemctl status sshguard

Hatua ya 2: Usanidi wa SSHGuard kwenye Linux

SSHGuard hufuatilia kikamilifu /var/log/auth.log, /var/log/secure systemd jarida, na faili za kumbukumbu za syslog-ng kwa majaribio yaliyofeli ya kuingia.

Kwa kila jaribio lisilofanikiwa la kuingia, seva pangishi ya mbali hupigwa marufuku kwa muda mfupi ambao, kwa chaguo-msingi huwekwa kwa sekunde 120. Baada ya hapo, muda wa kupiga marufuku huongezeka kwa sababu ya 1.5 kwa kila jaribio la kuingia lililoshindwa mfululizo.

Muda ambao wapangishi waliokosea wamepigwa marufuku, pamoja na vigezo vingine umebainishwa kwenye faili ya sshguard.conf. Unaweza kufikia faili ya usanidi kwa kutumia vim hariri kama inavyoonyeshwa.

$ sudo vim /etc/sshguard/sshguard.conf

Kwenye usambazaji wa msingi wa RHEL, faili ya usanidi iko katika njia ifuatayo.

$ sudo vim /etc/sshguard.conf

Hapa kuna sampuli ya faili ya usanidi inapotazamwa kutoka kwa Ubuntu/Debian.

Hebu tuzingatie chaguo kuu.

  • Maelekezo ya BACKEND yanaelekeza kwenye njia kamili ya mandharinyuma inayoweza kutekelezeka. Katika mfano huu, tunaona kwamba IPtables zimewekwa kama msingi msingi wa ngome.
  • Agizo la THRESHOLD huzuia washambulizi alama zao za uvamizi zinapozidi thamani iliyobainishwa.
  • Chaguo la BLOCK_TIME ni idadi ya sekunde ambazo mvamizi huzuiwa baada ya kila jaribio lisilofaulu la kuingia. Kwa chaguo-msingi, hii imewekwa hadi 120 baada ya jaribio la kwanza. Hili huongezeka kwa kila jaribio la kuingia lililoshindwa mfululizo.
  • Chaguo la DETECTION_TIME linarejelea muda katika sekunde ambapo mvamizi anasajiliwa au kukumbukwa na mfumo kabla ya kuweka alama upya.
  • Chaguo la WHITELIST_file linaelekeza kwenye njia kamili ya faili iliyoidhinishwa ambayo ina seva pangishi ambazo hazistahili kuorodheshwa./li>

Hatua ya 3: Sanidi SSHGuard ili Kuzuia Mashambulizi ya Nguvu ya SSH Brute

Ili kuzuia mashambulizi ya nguvu ya kinyama, unahitaji kusanidi kwenye ngome zifuatazo kufanya kazi na sshguard.

Ikiwa umesakinisha UFW na kuwezeshwa kwenye mfumo wako wa Ubuntu/Debian, rekebisha faili ya /etc/ufw/before.rules.

$ sudo vim etc/ufw/before.rules

Ongeza mistari ifuatayo baada tu ya kuruhusu yote kwenye loopback.

# allow all on loopback
-A ufw-before-input -i lo -j ACCEPT
-A ufw-before-output -o lo -j ACCEPT

# hand off control for sshd to sshguard
:sshguard - [0:0]
-A ufw-before-input -p tcp --dport 22 -j sshguard

Hifadhi faili na uanze upya UFW.

$ sudo systemctl restart ufw

Sasa jaribu kuingia kwenye seva kutoka kwa mfumo tofauti na stakabadhi zisizo sahihi na tambua kuwa utafungiwa nje kwa sekunde 120 baada ya jaribio la kwanza lisilofaulu la kuingia.

Unaweza kuthibitisha hili kwa kuangalia faili ya kumbukumbu ya auth.log.

$ sudo tail -f  /var/log/auth.log

Baada ya jaribio la logi lililofuata lililoshindwa, wakati wa kuzuia huongezeka hadi sekunde 240, kisha sekunde 480, kisha sekunde 960, na kadhalika.

Ikiwa unatumia firewalld, hakikisha kwamba imesanidiwa na kuwezeshwa. Kisha toa amri ifuatayo ili kuwezesha sshguard kwenye ukanda unaopendelea.

$ sudo firewall-cmd --permanent --zone=public --add-rich-rule="rule source ipset=sshguard4 drop"

Ili kutekeleza mabadiliko, pakia upya Firewalld na sshguard.

$ sudo firewall-cmd --reload
$ sudo systemctl restart sshguard

Kisha thibitisha sheria kama ifuatavyo:

$ sudo firewall-cmd —-info-ipset=sshguard4

Ikiwa bado unatumia Iptables, kwanza, tengeneza sheria mpya ya sshguard kwenye Iptables ili kuanza kuzuia watu wabaya.

# iptables -N sshguard

Ifuatayo, sasisha msururu wa INPUT ili uelekeze trafiki kwa sshguard na uzuie trafiki yote kutoka kwa watu wachafu.

# iptables -A INPUT -j sshguard

Ili kuzuia bandari maalum kama vile SSH, POP, na IMAP kutoka kwa watumizi tumia amri:

# iptables -A INPUT -m multiport -p tcp --destination-ports 22,110,143 -j sshguard

Na mwishowe, hifadhi sheria ili mabadiliko yaanze kutumika.

# iptables-save > /etc/iptables/iptables.rules

Hatua ya 4: Jinsi ya Kuorodhesha Wapangishi Waliozuiwa wa SSH

Ili kuorodhesha seva pangishi iliyozuiwa, bainisha tu jina lake la mpangishaji au anwani ya IP katika faili ya orodha iliyoidhinishwa ambayo iko ndani:

/etc/sshguard/whitelist - Ubuntu/Debian 
/etc/sshguard.whitelist - RHEL-based distros

Baadaye, hakikisha kuwasha upya daemon ya sshguard na backend ya ngome ili mabadiliko yatekelezwe.

Katika mwongozo huu, tumeonyesha jinsi unavyoweza kuzuia mashambulizi ya SSH Bruteforce kwa kutumia daemon ya SSHGuard kwenye seva za Linux. Maoni yako yanakaribishwa.