关于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这个软件,根据提示输入相应字符即可