用SSHGuard免費工具幫你保護服務器
譯文我之前已介紹了fail2ban和logcheck這兩款工具可以掃描日志,并且根據(jù)你創(chuàng)建/修改的規(guī)則,采取相應的操作;你通??梢孕薷膇ptables規(guī)則,阻止針對你服務器發(fā)動的主動攻擊,或者要是日志里面發(fā)現(xiàn)什么異常,就發(fā)警示信息給你。
今天我們來介紹一款類似的工具sshguard,它與上面另外兩款工具的不同之處在于,它是用C編寫的,所以它在運行時占用的內存和處理器資源比較少,但仍能收到同樣的效果。
那么,sshguard又有什么樣的本領呢?
簡單地說,它可以接收日志消息,可以根據(jù)日志消息來檢測網絡服務何時遭到攻擊,并且阻止服務攻擊者的地址;一段時間過后,它會解禁。
完整地說,sshguard在機器上作為一個很小的后臺駐留程序來運行,能夠接收日志消息(可接收來自諸多途徑的消息,比如來自系統(tǒng)日志)。如果它確定了X地址對Y服務造成危害,就會啟動機器里面防火墻(注:防火墻須得到支持)中的規(guī)則,以阻止X地址。
shguard阻止X地址的狀態(tài)會保持一段時間,但是之后會自動解禁。
請注意:盡管名稱很容易讓人誤解,但是sshguard在默認情況下能夠阻止針對許多服務的攻擊,不僅僅是針對SSH的攻擊,還能針對幾種ftpd、Exim和dovecot等服務的攻擊。它能夠適用于各大防火墻系統(tǒng),并且提供對IPv6、白名單、懸掛和消息驗證等功能的支持。
安裝
sshguard采用寬容的BSD許可證來發(fā)行:你可以使用、修改和再發(fā)行軟件,風險自負,可以用于任何環(huán)境(包括商業(yè)環(huán)境),但前提是你得保留在里面發(fā)現(xiàn)的原始版權通知。軟件在最常用的GNU/Linux發(fā)行版的主存儲庫中發(fā)行,面向某個*BSD系統(tǒng),但是你也可以從下載頁面(http://www.sshguard.net/download/)下載源代碼。
要把sshguard安裝到Debian(或Ubuntu等.deb其他發(fā)行版)上,只要從終端運行下列命令:
sudo aptitude install sshguard
#p# 設置和配置
Sshguard與系統(tǒng)相連的點有兩個:
•日志系統(tǒng)(sshguard如何接收需要監(jiān)控的日志消息)
•防火墻(sshguard如何阻止異常的地址)
自版本1.5以后,sshguard就隨帶Log Sucker(http://www.sshguard.net/docs/setup/getlogs/log-sucker/)。借助Log Sucker,SSHGuard可以積極主動地獲取日志條目,并且透明地處理一些事件,比如輪轉日志文件以及文件消失和重現(xiàn)。
在官方的說明文檔頁面(http://www.sshguard.net/docs/setup/),附有針對許多不同防火墻的操作說明,我將遵照netfilter/iptables的操作說明。
sshguard并沒有配置文件。需要完成的所有配置就是在iptables的INPUT鏈中創(chuàng)建一個名為“sshguard”的鏈,sshguard就會自動插入規(guī)則,丟棄來自壞主機的數(shù)據(jù)包:
# for regular IPv4 support:(針對普通的IPv4支持功能)
iptables -N sshguard
# if you want IPv6 support as well:(如果你還想要獲得IPv6支持功能)
ip6tables -N sshguard
現(xiàn)在,更新INPUT鏈,以便它能將所有流量傳送到sshguard,用–dport指定你想用sshguard來保護的服務的所有端口。如果你想阻止攻擊者將任何流量發(fā)送到主機,只要完全刪除這個選項即可:
# block any traffic from abusers(阻止來自攻擊者的任何流量)
iptables -A INPUT -j sshguard
ip6tables -A INPUT -j sshguard
-- or --
# block abusers only for SSH, FTP, POP, IMAP services (use "multiport" module)(阻止攻擊者,只允許SSH、FTP、POP和IMAP服務,使用“multiport”模塊)
iptables -A INPUT -m multiport -p tcp --destination-ports 21,22,110,143 -j sshguard
ip6tables -A INPUT -m multiport -p tcp --destination-ports 21,22,110,143 -j sshguard
如果你目前沒有使用iptables,只想讓sshguard建立并運行起來,又不對你的系統(tǒng)造成任何進一步的影響,下面這些命令就會創(chuàng)建并保存iptables配置,除了允許sshguard運行外,絕不會進行任何操作:
# iptables -F
# iptables -X
# iptables -P INPUT ACCEPT
# iptables -P FORWARD ACCEPT
# iptables -P OUTPUT ACCEPT
# iptables -N sshguard
# iptables -A INPUT -j sshguard
# /etc/rc.d/iptables save
小結
要讓基本安裝的sshguard建立并運行起來,只要完成上面這幾個步驟,它會幫助你讓你的ssh、ftp及其他后臺駐留程序更安全一點。
原文鏈接:http://linuxaria.com/recensioni/protect-your-server-with-sshguard?lang=en