DenyHosts 软件自动安装及管理脚本

关于DenyHosts这个软件干什么用的,就不多说了,感兴趣的童鞋问问度娘也就知道了

首先上自动安装脚本,一键安装省去所有烦恼(大神勿喷emmm)

#!/bin/bash
#切换工作目录
#DenyHosts安装脚本
cd /usr/local/src
/usr/bin/wget http://sourceforge.net/projects/denyhosts/files/denyhosts/2.6/DenyHosts-2.6.tar.gz
echo "下载软件"
Deny=DenyHosts-2.6
deny=denyhost
www= `awk -F ":" '$1~/www/{print $1}' /etc/passwd`
if [ www != $www ]; then
groupadd -g 808 www
useradd -u 808 -g 808 -s /sbin/nologin www
fi
if [ -f $Deny.tar.gz ]; then
echo "解压 $tar "
/bin/tar -xf $Deny.tar.gz
echo "修改 $1 名称"
/bin/mv $Deny $deny
if [ -d $deny ]; then
chown -R www.www $denyhost
echo "进入目录"
cd denyhost
echo '安装python'
/usr/bin/yum -y install python >> /dev/null
echo "安装denyhost脚本"
/usr/bin/python setup.py install >> /dve/null
if [ -d /usr/share/denyhosts/ ]; then
echo "进入配置目录"
cd /usr/share/denyhosts/
echo "改配置文件名称"
/bin/cp "daemon-control-dist" "daemon-control"
echo "修改服务文件名称"
/bin/cp "denyhosts.cfg-dist" "denyhosts.cfg"
echo "提高安全级别"
/bin/chown root "daemon-control"
/bin/chmod 700 "daemon-control"
echo "创建启动链接"
ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts
echo "添加启动项"
chkconfig denyhosts on
echo "备份配置文件"
cp denyhosts.cfg denyhosts.cfg.bak
echo "将内容导入配置文件"
cat << HHHH > /usr/share/denyhosts/denyhosts.cfg
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 <nobody@localhost>
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 用户的时间
HHHH
echo "启动服务"
service denyhosts start
else
echo "denyhosts文件有误"
fi
else
echo "文件解压有误"
fi
else
echo "下载有误"
fi


这个脚本是将Denyhosts下载到/usr/local/src之中并进行安装,而且会检查本机是否有www用户,若没有则创建


OK,接下来上管理脚本(大神们,,,不喜勿喷emmmm)

#!/bin/bash
#管理DenyHost工具
dir= "/usr/share/denyhosts/data/*"
#secure文件的地址,如果有自己设置的还要自己去更改一下se变量
se= "/var/log/secure"
read -p "解除IP解禁还是进行IP禁止或者查看文件内统计的失败登录(R/B/F): " i
if [[ $i == [Rr] ]]; then
read -p "请输入需要解除的IP: " IP
sed -n "/ $IP /p" $dir
sed -n "/ $IP /p" /etc/hosts.deny
read -p "要删除这些么?(Y/N): " jubge
if [[ $jubge == [Yy] ]]; then
/etc/init.d/denyhosts stop > /dev/null
sed -i "/ $IP /d" $dir
sed -i "/ $IP /d" /etc/hosts.deny
/etc/init.d/denyhosts start > /dev/null
echo "脚本运行完成"
elif [[ $jubge == [Nn] ]]; then
echo "解除失败"
fi
elif [[ $i == [Bb] ]]; then
read -p "请输入需要禁止的IP地址: " BIP
read -p "确定要禁止 $BIP 么?(Y/N) " JUBGE
if [[ $JUBGE == [Yy] ]]; then
/etc/init.d/denyhosts stop > /dev/null
echo "sshd: $BIP " >> /etc/hosts.deny
/etc/init.d/denyhosts start > /dev/null
echo "脚本运行完成"
elif [[ $JUBGE == [Nn] ]]; then
echo "脚本中断"
else
echo "输入有误,脚本中断"
fi
elif [[ $i == [Ff] ]]; then
awk '/Failed/{print $(NF-3)}' $se | sort | uniq -c | sort -n
else
echo "输入有误,脚本中断"
fi


这个脚本作用是查找访问的IP以及管理denyhosts这个软件,根据提示输入相应字符即可

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值