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文件

wKiom1WSRw-DlXNDAAEnQkaGkfg568.jpg

hosts.deny文件内的内容,显示封禁IP列表(我这里配置的是10分钟后清空此文件)

wKioL1WSSNHyKLgzAAJ9_2UXI_8996.jpg

 

/var/log/denyhosts 文件的记录

 

wKioL1WSTXSBJSIBAAdAkAFY8pE323.jpg

/var/log/secure 文件的登陆记录

wKioL1WSTXSzn9ukAAvJeVIb978207.jpg

 

使用

cat /var/log/secure | awk '/Failed/{print $(NF-3)}'| sort| uniq -c| awk '{print $2"="$1;}'

 查看secure文件内统计的失败登陆IP地址

wKioL1WSXGXzPF9IAADV4T-pcFM195.jpg