Thursday, November 23, 2017

使用DenyHosts阻止ssh暴力攻击

现在的互联网非常不安全,很多人没事就拿一些扫描机扫描ssh端口,然后试图连接ssh端口进行暴力破解(穷举扫描),所以建议大家VPS尽量设置复杂的ssh登录密码。那么有什么办法阻止这些暴力破解者呢,我们可以使用DenyHosts这款软件。

DenyHosts介绍

DenyHosts是Python语言写的一个程序,它会分析sshd的日志文件(/var/log/secure),当发现重 复的攻击时就会记录IP到/etc/hosts.deny文件,从而达到自动屏IP的功能。

DenyHosts安装和配置

1、下载和安装EPEL RPM

cd /tmp
wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
rpm -Uhv epel-release-5-3.noarch.rpm

2、使用yum命令安装denyhosts

yum install -y denyhosts

3、添加系统启动自动运行

chkconfig --add denyhosts
chkconfig denyhosts on

如何你想把某个ip或者ip段放入白名单,可以使用下列命令,这样就可以避免把自己的ip阻止了;

echo '173.252.193.*' >> /var/lib/denyhosts/allowed-hosts

这样 173.252.193.* 这个IP就可以不受到此程序的约束,请根据自己的环境进行设置;
4、最后启动服务

service denyhosts start

设置完以上4步,DenyHosts就可以正常工作了。

附上:DenyHosts配置文件denyhosts.cfg说明

SECURE_LOG = /var/log/secure

#sshd日志文件,它是根据这个文件来判断的,不同的操作系统,文件名稍有不同。

HOSTS_DENY = /etc/hosts.deny

#控制用户登陆的文件

PURGE_DENY = 5m

#过多久后清除已经禁止的

BLOCK_SERVICE  = sshd

#禁止的服务名

DENY_THRESHOLD_INVALID = 1

#允许无效用户失败的次数

DENY_THRESHOLD_VALID = 10

#允许普通用户登陆失败的次数

DENY_THRESHOLD_ROOT = 5

#允许root登陆失败的次数

HOSTNAME_LOOKUP=NO

#是否做域名反解

DAEMON_LOG = /var/log/denyhosts

#DenyHosts的日志文件

Leave a Reply

Your email address will not be published. Required fields are marked *