首页 » VPS 知识 » 浏览内容

利用denyhosts轻松实现,sshd和ftp暴力密码破解防御


2012-12-29 22:21:33 2,869 0 发表评论 字体: 作者:C.K.

体验版 88 元,个人版 128 元,多用户版 288元个人版160元升级到多用户版。

最近浏览了一下linux服务器日志,发现有大量的root密码暴力破解记录,于是决定采取策略进行防护,避免因密码被破解,而导致一些不应该发生的问题。准备使用denyhosts软件。

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

下面进入主题。

1、安装脚本

要求安装服务器能上网,并建立 /workspace目录

#!/bin/bash
wget http://sourceforge.net/projects/denyhosts/files/denyhosts/2.6/DenyHosts-2.6.tar.gz
#下载软件
tar -zxvf DenyHosts-2.6.tar.gz
#解压
mv DenyHosts-2.6 denyhost
#为了方便改个名
cd denyhost/
#进入目录
yum install python -y
#安装python
python setup.py install
#安装denyhost,脚本
cd /usr/share/denyhosts/
#进入配置目录
cp daemon-control-dist daemon-control
#为了方便改变配置文件名称
cp denyhosts.cfg-dist denyhosts.cfg
#修改服务文件名称
chown root daemon-control
chmod 700 daemon-control
#提高安全级别,修改权限
ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts
#创建启动服务连接
chkconfig denyhosts on
#添加启动项
cp denyhosts.cfg denyhosts.cfg.bak
#备份配置文件,为修改配置做准备
cat /workspace/denyhost.txt > /usr/share/denyhosts/denyhosts.cfg
#将配置文件内容导入配置文件(我的配置文件安装之前已经配置好了!)
/etc/init.d/denyhosts start
#启动服务
echo install succeed!

2.配置文件内容

cat /workspace/denyhost.txt > /usr/share/denyhosts/denyhosts.cfg
###########################2##################################
[root@107 workspace]# more denyhost.txt
SECURE_LOG = /var/log/secure
#ssh日志文件
HOSTS_DENY = /etc/hosts.deny
#将阻止IP写入到hosts.deny
PURGE_DENY = 5m
#过多久后清除已经禁止的,其中w代表周,d代表天,h代表小时,s代表秒,m代表分钟
BLOCK_SERVICE = sshd
#阻止服务名
DENY_THRESHOLD_INVALID = 5
#允许无效用户(在/etc/passwd未列出)登录失败次数,允许无效用户登录失败的次数.
DENY_THRESHOLD_VALID = 5
#允许普通用户登录失败的次数
DENY_THRESHOLD_ROOT = 5
#允许root登录失败的次数
DENY_THRESHOLD_RESTRICTED = 1
#设定 deny host 写入到该资料夹
WORK_DIR = /usr/share/denyhosts/data
#将deny的host或ip纪录到Work_dir中
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS = YES
HOSTNAME_LOOKUP=YES
#是否做域名反解
LOCK_FILE = /var/lock/subsys/denyhosts
#将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。
ADMIN_EMAIL = denyhosts@163.com
#设置管理员邮件地址
SMTP_HOST = localhost
SMTP_PORT = 25
SMTP_FROM = DenyHosts
SMTP_SUBJECT = DenyHosts Report
AGE_RESET_VALID=1d
#有效用户登录失败计数归零的时间
AGE_RESET_ROOT=1d
#root用户登录失败计数归零的时间
AGE_RESET_RESTRICTED=5d
#用户的失败登录计数重置为0的时间(/usr/share/denyhosts/data/restricted-usernames)
AGE_RESET_INVALID=10d
#无效用户登录失败计数归零的时间
DAEMON_LOG = /var/log/denyhosts
#自己的日志文件
DAEMON_SLEEP = 30s
DAEMON_PURGE = 5m
#该项与PURGE_DENY 设置成一样,也是清除hosts.deniedssh 用户的时间

3.其它

如果想删除一个已经禁止的主机IP,并加入到允许主机例表,只在 /etc/hosts.deny 删除是没用的。需要进入 /var/lib/denyhosts 目录,进入以下操作:
1、停止DenyHosts服务:$ sudo service denyhosts stop
2、在 /etc/hosts.deny 中删除你想取消的主机IP
3、编辑 DenyHosts 工作目录的所有文件,通过
$ sudo grep 192.168.1.191 /usr/share/denyhosts/data/*

然后一个个删除文件中你想取消的主机IP所在的行:

* /usr/share/denyhosts/data/hosts
* /usr/share/denyhosts/data/hosts-restricted
* /usr/share/denyhosts/data/hosts-root
* /usr/share/denyhosts/data/hosts-valid
* /usr/share/denyhosts/data/users-hosts

4、添加你想允许的主机IP地址到

/var/lib/denyhosts/allowed-hosts
vi /usr/share/denyhosts/data/allowed-hostsps
# We mustn’t block localhost
127.0.0.1
192.168.1.*

5、启动DenyHosts服务: service denyhosts start

报错排查

#service denyhost start
starting DenyHosts: /usr/bin/env python /usr/bin/denyhosts.py –daemon
–config=/usr/share/denyhosts/denyhosts.cfg
python: can’t open file ‘/usr/bin/denyhosts.py’: [Errno 2] No such file or
directory
cd /usr/share/denyhosts/
vi daemon-control
DENYHOSTS_BIN = “/usr/bin/denyhosts.py”

改为

DENYHOSTS_BIN = “/usr/local/bin/denyhosts.py”

cd /usr/local/lib/python2.7/site-packages/
cp -rp DenyHosts /usr/lib/python2.4/site-packages/
/etc/init.d/denyhosts restart

    网站统计 Statistics

    • 创建时间: 2005年1月3日 距今5013 天
    • 日志总数: 2461
    • 评论总数: 630
    • 标签总数: 654
    • 链接总数: 273
    • 最后更新: 2018-8-31 17:57:04
    • 您是本站第 13945201 位访客

    广告区 Guǎng Gào