自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何使用 SSHGUARD 阻止 SSH 暴力攻擊

系統(tǒng) Linux 安全
在本指南中,我們將演示如何安裝和配置 SSHGuard 以阻止 Linux 服務(wù)器中的 SSH 暴力攻擊。

概述

SSHGuard是一個(gè)入侵防御實(shí)用程序,它可以解析日志并使用系統(tǒng)防火墻自動(dòng)阻止行為不端的 IP 地址(或其子網(wǎng))。最初旨在為 OpenSSH 服務(wù)提供額外的保護(hù)層,SSHGuard 還保護(hù)范圍廣泛的服務(wù),例如 Vsftpd 和 Postfix。它可以識(shí)別多種日志格式,包括 Syslog、Syslog-ng 和原始日志文件。SSHGuard 與 Fail2ban 非常相似,只是它是用 C 編寫的(Fail2ban 是用 Python 編寫的),更輕巧,提供的功能更少。

在本指南中,我們將演示如何安裝和配置 SSHGuard 以阻止 Linux 服務(wù)器中的 SSH 暴力攻擊。

第一步:在 Linux 上安裝 SSHGuard

在 Debian/Ubuntu 上安裝 SSHGuard

首先,更新軟件包列表,然后使用 apt 軟件包管理器從默認(rèn)存儲(chǔ)庫安裝 SSHGuard。

$ sudo apt update
$ sudo apt install sshguard

安裝后,SSHGuard 服務(wù)會(huì)自動(dòng)啟動(dòng),您可以使用以下命令進(jìn)行驗(yàn)證:

$ sudo systemctl status sshguard

在 Yum/RHEL 系統(tǒng)上安裝 SSHGuard

對(duì)于基于 RHEL 的發(fā)行版,例如 CentOS,首先安裝 EPEL 存儲(chǔ)庫。

$ sudo yum install epel-release

或者

$ sudo dnf install epel-release

有了 EPEL,繼續(xù)使用 dnf 包管理器安裝 SSHGuard。

$ sudo dnf install sshguard

安裝后啟動(dòng)并將 SSHGuard 設(shè)置為隨系統(tǒng)自啟。

$ sudo systemctl start sshguard
$ sudo systemctl enable sshguard

檢查 SSHGuard 運(yùn)行狀態(tài)。

$ sudo systemctl status sshguard

第 二 步:Linux 上的 SSHGuard 配置

SSHGuard 會(huì)主動(dòng)監(jiān)控 /var/log/auth.log、/var/log/secure systemd 日志和 syslog-ng 日志文件以查找失敗的登錄嘗試。

對(duì)于每次不成功的登錄嘗試,遠(yuǎn)程主機(jī)將被禁止一段時(shí)間,默認(rèn)設(shè)置為 120 秒。此后,每次連續(xù)失敗的登錄嘗試,禁令時(shí)間都會(huì)增加 1.5 倍。

禁止違規(guī)主機(jī)的時(shí)間以及其他參數(shù)在 sshguard.conf 文件中指定。您可以使用 vim 編輯器訪問配置文件。

$ sudo vim /etc/sshguard/sshguard.conf

在基于 RHEL 的發(fā)行版上,配置文件位于以下路徑中。

$ sudo vim /etc/sshguard.conf

這是從 Ubuntu / Debian 查看時(shí)的配置文件示例。

主要選項(xiàng):

  • BACKEND:指令指向后端可執(zhí)行文件的完整路徑。在這個(gè)例子中,我們看到 IPtables 被設(shè)置為默認(rèn)的防火墻后端。
  • THRESHOLD:指令在攻擊者的攻擊分?jǐn)?shù)超過指定值時(shí)阻止攻擊者。
  • BLOCK_TIME:選項(xiàng)是在每次連續(xù)失敗的登錄嘗試后阻止攻擊者的秒數(shù)。默認(rèn)情況下,第一次嘗試后設(shè)置為 120。這會(huì)隨著每次連續(xù)失敗的登錄嘗試而增加。
  • DETECTION_TIME:選項(xiàng)是指攻擊者在其得分被重置之前被系統(tǒng)注冊(cè)或記住的時(shí)間(以秒為單位)。
  • WHITELIST_file:選項(xiàng)指向包含不應(yīng)列入黑名單的主機(jī)的白名單文件的完整路徑。

第三 步:配置 SSHGuard 以阻止 SSH 暴力攻擊

為了抵御暴力攻擊,您需要在以下防火墻上進(jìn)行配置以使用 sshguard。

使用 UFW 阻止 SSH 攻擊

如果您在 Ubuntu / Debian 系統(tǒng)上安裝并啟用了 UFW,請(qǐng)修改 /etc/ufw/before.rules 文件。

$ sudo vim etc/ufw/before.rules
$ sudo vim etc/ufw/before.rules

在“allow all on 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

保存文件并重新啟動(dòng) UFW。

$ sudo systemctl restart ufw

現(xiàn)在嘗試使用錯(cuò)誤的憑據(jù)從不同的系統(tǒng)登錄服務(wù)器,并注意在第一次登錄嘗試失敗后您將被鎖定 120 秒。

您可以通過檢查 auth.log 日志文件來驗(yàn)證這一點(diǎn)。

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

在下一次失敗的日志嘗試之后,阻塞時(shí)間增加到 240 秒,然后是 480 秒,然后是 960 秒,依此類推。

使用 Firewalld 阻止 SSH 攻擊

如果您正在運(yùn)行 firewalld,請(qǐng)確保已設(shè)置并啟用它。然后執(zhí)行以下命令以在您的首選區(qū)域上啟用 sshguard。

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

要應(yīng)用更改,請(qǐng)重新加載 Firewalld 和 sshguard。

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

然后驗(yàn)證規(guī)則如下:

$ sudo firewall-cmd-info-ipset=sshguard4

使用 iptables 阻止 SSH 攻擊

如果您仍在使用 Iptables,首先,在 Iptables 中為 sshguard 創(chuàng)建一個(gè)新的鏈?zhǔn)揭?guī)則,以阻止不需要的訪客。

# iptables -N sshguard

接下來,更新 INPUT 鏈以將流量引導(dǎo)至 sshguard 并阻止來自惡意方的所有流量。

# iptables -A INPUT -j sshguard

要阻止濫用者訪問特定端口,例如 SSH、POP 和 IMAP,請(qǐng)運(yùn)行以下命令:

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

最后,保存規(guī)則以使更改生效。

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

第四 步:如何將 SSH 阻止的主機(jī)列入白名單

要將被阻止的主機(jī)列入白名單,只需在白名單文件中指定其主機(jī)名或 IP 地址即可:

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

之后,請(qǐng)務(wù)必重新啟動(dòng) sshguard 守護(hù)程序和防火墻后端以應(yīng)用更改。

小結(jié)

在本指南中,我們演示了如何在 Linux 系統(tǒng)上使用 SSHGuard 阻止 SSH Bruteforce 攻擊。

責(zé)任編輯:姜華 來源: 今日頭條
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)