使用DenyHosts禁止SSH暴力破解

简介

DenyHosts是一个旨在由Linux系统管理员运行的脚本,用于帮助阻止SSH服务器攻击(也称为基于字典的攻击和暴力攻击)。

环境

第一步:下载和安装

1.下载和安装

wget https://nchc.dl.sourceforge.net/project/denyhosts/denyhosts/2.6/DenyHosts-2.6.tar.gz
tar vxzf DenyHosts-2.6.tar.gz
cd DenyHosts-2.6/
python setup.py install

    默认安装目录:/usr/share/denyhosts
    默认日志目录:/var/log/denyhosts

2.编辑配置文件:

cd /usr/share/denyhosts
cp denyhosts.cfg-dist denyhosts.cfg
vim denyhosts.cfg

##  取消注释(禁止所有协议连接本服务器)
BLOCK_SERVICE = ALL
## 本行注释(本行意思是指仅禁止sshd登录)
BLOCK_SERVICE  = sshd

## 以下值保留默认
## 此值适用于无效的用户登录尝试(例如,不存在的用户帐户)超过此阈值加入黑名单
DENY_THRESHOLD_INVALID = 5
## 此值适用于有效用户登录尝试(例如,etc / passwd中存在的用户帐户),“root”用户除外
DENY_THRESHOLD_VALID = 10
## 是否做域名反解
HOSTNAME_LOOKUP=YES

## 修改以下值
## 如果是 root 用户失败几次后加入黑名单
DENY_THRESHOLD_ROOT = 5
## 超过此时间段的失败错误将清零(不包括root用户)
AGE_RESET_VALID=1d
## 超过此时间段的失败错误将清零(仅root用户)
AGE_RESET_ROOT=1d
## 允许 /etc/hosts.allow 设置白名单
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=NO

3.准备启动脚本

cd /usr/share/denyhosts
cp daemon-control-dist daemon-control

chmod 700 daemon-control

## 使用命令启动
/usr/share/denyhosts/daemon-control start
/usr/share/denyhosts/daemon-control status

4.设置自动启动

cd /etc/init.d
ln -s /usr/share/denyhosts/daemon-control denyhosts
chkconfig --add denyhosts

/usr/share/denyhosts/daemon-control start
/usr/share/denyhosts/daemon-control status

5.相关命令

## 查看运行日志
tailf /var/log/denyhosts

## 查看黑名单
cat /etc/hosts.deny

附录:

官网:http://denyhosts.sourceforge.net/

推荐阅读更多精彩内容