转载

看我如何巧妙配置两款安全工具防范蛮力攻击

蛮力攻击简介

我们都知道这句流行语:“预防胜过治疗。”如果你是个Linux系统管理员,可能知道“蛮力攻击应用程序”如何在你的本地或远程服务器引发问题。设想一下:如果你的服务器遭到了身份未知的攻击者的攻击,服务器上的数据就会落到坏人手里。这肯定会让你和贵公司陷入从未想过的大麻烦。蛮力攻击是应用程序采用的反复尝试方法,以破解你的加密数据。加密数据可能是任何密码或密钥。简单来说,蛮力攻击应用程序会尝试所有可能的密码或密钥组合,反复尝试,直到找到正确的密码或密钥为止。这就需要一段时间,具体取决于密码的复杂性。如果要花过长的时间才能找到密码,那么可以说你的密码很安全、很强壮。

现在可以使用一些巧妙的工具来阻止或预防蛮力攻击。今天,我们就来探讨下列工具。

1. SSHGuard ; 2. Fail2Ban.

提醒一下:不要将这两个工具都安装在同一个系统上。你可能无法获得正确的结果。

首先,让我们看一下SSHGuard,以及如何安装和配置它,以预防蛮力攻击。

1. SSHGuard

SSHGuard(http://www.sshguard.net)是一种快速、轻便的监控工具,用C语言编写而成。它可以使用日志活动,监控服务器,保护服务器远离蛮力攻击。要是有人不断地试图通过SSH访问你的服务器,多次(可能四次)尝试访问失败,SSHGuard就会将对方的IP地址放入到iptables,在一段时间内阻止他/她访问。之后,它会在一段时间后自动解锁。它几乎能保护所有的服务,比如sendmail、exim、dovecot、vsftpd、proftpd及许多服务,而不光光保护SSH。

安装SSHGuard

在Ubuntu/Debian上,SSHGuard就在默认的软件库中。

于是,我们可以用下列命令来轻松安装它:

sudo apt-get install sshguard

在CentOS/RHEL 6.x上:

先下载并添加FlexBox软件库,如下所示。

wget http://sourceforge.net/projects/flexbox/files/flexbox-release-1-1.noarch.rpm

使用下列命令更新软件库列表:

yum repolist

最后,使用下列命令安装sshguard:

yum install sshguard

至于其他发行版,从官方网站(http://www.sshguard.net/download/)下载各自的二进制文件,并自行安装。

或者,你也可以从这里(http://pkgs.org/download/sshguard)来下载。

用Iptables/Netfilter配置SSHGuard

SSHGuard没有配置文件。你要做的就是在iptables中为SSHGuard创建新的链,以插入阻止访问的规则。

为了支持IPv4,在拥有根权限的情况下运行下列命令:

iptables -N sshguard

为了支持IPv6:

ip6tables -N sshguard

现在更新INPUT链,将流量传输到sshguard。指定--dport选项,使用sshguard保护服务的所有端口。如果你想防止攻击者将任何流量传输到主机,就完全删除这个选项。

阻止来自攻击者的所有流量

为了支持IPv4:

iptables -A INPUT -j sshguard

为了支持IPv6:

iptables -A INPUT -j sshguard

阻止来自攻击者的特定服务,比如SSH、FTP、POP或IMAP

为了支持IPv4:

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

为了支持IPv6:

ip6tables -A INPUT -m multiport -p tcp --destination-ports 21,22,110,143-j sshguard

最后,保存iptables规则。

service iptables save

核实你在链中的较高层没有传输所有ssh流量的default allow(默认允许)规则。核实你在防火墙中没有阻止所有ssh流量的default deny(默认拒绝)规则。不论哪种情况,假设你已经拥有调整防火墙设置的技能。

下面是一个合理的示例规则集:

iptables -N sshguard

阻止sshguard表明是不良流量的任何流量:

iptables -A INPUT -j sshguard

启用ssh、dns、http和https:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p udp --dport 53 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT

阻止之外的所有服务:

iptables -P INPUT DROP

不用Iptables/Netfilter,配置SSHGuard

如果你不用iptables,下列命令可以创建并保存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

最后,保存iptables配置:

service iptables save

就是这样。现在你已安装并配置了SSHGuard,可以保护你的ssh、ftp及其他服务远离蛮力攻击者。

正文到此结束
Loading...