您的位置:首页 > 其它

使用denyhost来防止ssh暴力破解

2013-06-26 13:07 639 查看
关于ssh的登录,作为一个合格的linux运维人员大家都是熟悉不能在熟悉的了,我们都知道,计算机本身暴露在互联网上就是危险的,当然我们不要因为我们的业务少,用户量不多而有侥幸心理,掉以轻心;互联网的大多数攻击都是没有目的性的,黑客大神们通过大范围的IP端口扫描探测到可能存在的漏洞bug主机,然后通过自动扫描工具来进行破解,那么我们来怎么防止黑客的大神暴力破解,要么自己手动的写防止暴力破解的脚本+任务计划来实施,要么通过开源软件来完成,Denyhost正是这样的一款工具,Denyhosts是一个Linux系统下阻止暴力破解SSH密码的软件,它的原理与DDoS Deflate类似,可以自动拒绝过多次数尝试SSH登录的IP地址,防止互联网上某些机器常年破解密码的行为,也可以防止黑客对SSH密码进行破解;
DenyHosts阻止攻击原理
DenyHosts会自动分析 /var/log/secure 等安全日志文件,当发现异常的连接请求后,会自动将其IP加入到 /etc/hosts.deny 文件中,从而达到阻止此IP继续暴力破解的可能。同时,Denyhosts还能自动在一定时间后对已经屏蔽的IP地址进行解封,非常智能。
DenyHost安装部署:
1.  查看开发环境是否满足
rpm -qa | grep gcc
rpm -qa | python 为什么要看看python的原因是因为这个程序就是用python语言写的
2.  下载安装Denyhost,可以在官方网站下载源码http://denyhosts.sourceforge.net/
tar xf DenyHosts-2.6.tar.gz
cd DenyHosts-2.6
python setup.py install
3.  查看修改配置文件;
cd /usr/share/denyhosts/
cp denyhosts.cfg-dist denyhosts.cfg
cp daemon-control-dist daemon-control
vim denyhosts.cfg
sed -e '/^$/d' -e '/^#/d' denyhosts.cfg
SECURE_LOG = /var/log/secure  生成的安全日志
HOSTS_DENY = /etc/hosts.deny   拒绝的IP地址
PURGE_DENY = 1h             1小时自动解锁,可以根据自己的环境来定义
BLOCK_SERVICE  = sshd       需要拒绝的服务的名字
DENY_THRESHOLD_INVALID = 5  某一个无效的用户名输入多少次自动锁定阻止;
DENY_THRESHOLD_VALID = 10   一个有效的用户名尝试多少次登录后被阻止,
DENY_THRESHOLD_ROOT = 2 root尝试登录多少次阻止
DENY_THRESHOLD_RESTRICTED = 1
WORK_DIR = /usr/share/denyhosts/data    文件存放的路径
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
HOSTNAME_LOOKUP=YES 是否尝试解析源IP的域名
LOCK_FILE = /var/lock/subsys/denyhosts
############ THESE SETTINGS ARE OPTIONAL ############
ADMIN_EMAIL =       设置管理员的邮箱密码
SMTP_HOST = localhost•  这是SMTP指向的地址
SMTP_PORT = 25          SMTP的端口
SMTP_FROM = DenyHosts <nobody@localhost>
SMTP_SUBJECT = DenyHosts Report
AGE_RESET_VALID=5d
AGE_RESET_ROOT=25d
AGE_RESET_RESTRICTED=25d
AGE_RESET_INVALID=10d
######### THESE SETTINGS ARE SPECIFIC TO DAEMON MODE  ##########
DAEMON_LOG = /var/log/denyhosts

DAEMON_SLEEP = 30s
DAEMON_PURGE = 1h
#########   THESE SETTINGS ARE SPECIFIC TO     ##########
#########       DAEMON SYNCHRONIZATION         ##########
./daemon-control start 配置完成之后重启就可以
4.  修改成开机启动就可以
ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhost
chkconfig --add denyhost
chkconfig --level 35 denyhost on
cat /etc/hosts.deny
/etc/rc.d/init.d/denyhost restart
5.  测试
找一台测试机模拟测试;然后在/etc/hosts.deny中查看
更多请关注个人小站:http://www.rsyslog.net/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息