Centos Denyhosts 一键安装配置脚本
一键安装denyhosts脚本并配置为常用配置。放置Linux服务器被暴力破解
由于不能上传tar文件。所以改为zip压缩。
将附件的zip压缩包解压后将整个文件夹上传到服务器。
然后进入denyhost文件夹
赋予脚本执行权限。
chmod 700 denyhosts.sh ./ denyhosts.sh
脚本内容是:
denyhosts.sh
#!/bin/bash # Copyright (c) 2015.6 Fenei # BY:封飞 # 2015年6月29日23点 # denyhosts auto install and configure shell # VER. 1.1.0 - http://www.fenei.net # 自动安装配置denyhosts脚本 # 2015年6月29日23点 # # 本程序是专为Redhat、Centos等系统制作的自动安装配置denyhosts的脚本。 # 本程序为西普网络专用,默认添加西普网络IP到"/usr/share/denyhosts/allowed-hosts"文件。 # 其他人员如果使用必须将自己的远程办公IP手动添加至"/usr/share/denyhosts/allowed-hosts"文件。 # 本脚本为开源,初次制作,如有不足之处,可以联系修改。 # # Copyright (c) 2015.6 Fenei # BY:封飞 # 2015年6月29日23点 # # Fenei@ Sinpul Network # VER. 1.1.0 - http://www.fenei.net # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. #===================================================================== stty erase ^h stty erase ^H # 将shell运行过程中读取退格键 替换为退格命令,否则会输出 ^H! chmod 700 denyhosts_removeip.sh cp -a * /tmp cd /tmp tar zxf DenyHosts-2.6.tar.gz cd DenyHosts-2.6 python setup.py install cd /usr/share/denyhosts/ cp daemon-control-dist daemon-control chown root daemon-control chmod 700 daemon-control # 复制我已经配置好的配置文件,默认为登录5次拒绝登录10分钟。 cp /tmp/denyhosts.cfg . cp -a /tmp/denyhosts_removeip.sh . # 配置denyhosts的开机启动 echo "/usr/share/denyhosts/daemon-control start" >> /etc/rc.local cd /etc/init.d ln -s /usr/share/denyhosts/daemon-control denyhosts chkconfig --add denyhosts chkconfig --level 345 denyhosts on # 添加远程登录IP至"/etc/hosts.allow"文件。 echo "127.0.0.1" >> /usr/share/denyhosts/allowed-hosts # 这里输入您的管理IP地址,将您的地址添加到白名单。 echo "你的IP" >> /usr/share/denyhosts/allowed-hosts # 重启denyhosts服务 service denyhosts restart
如果IP被禁止后想解封IP请使用一下脚本
denyhosts_removeip.sh
#!/bin/bash HOST=$1 if [ -z "${HOST}" ]; then echo "Usage:$0 IP" exit 1 fi /etc/init.d/denyhosts stop echo ' /etc/hosts.deny /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 ' | grep -v "^$" | xargs sed -i "/${HOST}/d" /etc/init.d/denyhosts start
我脚本内配置好的denyhosts.cfg文件
denyhosts.cfg
############ THESE SETTINGS ARE REQUIRED ############ SECURE_LOG = /var/log/secure #ssh日志文件 HOSTS_DENY = /etc/hosts.deny #将阻止IP写入到hosts.deny PURGE_DENY = 10m #过多久后清除已经禁止的,其中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 ############ THESE SETTINGS ARE OPTIONAL ############ #设置管理员邮件地址 SMTP_HOST = localhost SMTP_PORT = 25 SMTP_FROM = DenyHosts SMTP_SUBJECT = DenyHosts Report ALLOWED_HOSTS_HOSTNAME_LOOKUP=YES #启用allow-hosts 白名单文件功能 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 ######### THESE SETTINGS ARE SPECIFIC TO DAEMON MODE ########## DAEMON_PURGE = 5m #该项与PURGE_DENY 设置成一样,也是清除hosts.deniedssh 用户的时间
运行成功以后,提示将目前存在的暴力破解IP自动添加到hosts.deny文件
hosts.deny文件内的内容,显示封禁IP列表(我这里配置的是10分钟后清空此文件)
/var/log/denyhosts 文件的记录
/var/log/secure 文件的登陆记录
使用
cat /var/log/secure | awk '/Failed/{print $(NF-3)}'| sort| uniq -c| awk '{print $2"="$1;}'
查看secure文件内统计的失败登陆IP地址
转载于:https://blog.51cto.com/babyfenei/1669436