DenyHosts研究部署文档20121112


DenyHosts它会分析/var/log/secure等日志文件,当发现同一IP在进行多次SSH密
码尝试时就会记录IP到/etc/hosts.deny文件,从而达到自动屏蔽该IP的目的。
DenyHosts官方网站为:http://denyhosts.sourceforge.net
可用下载地址:http://sourceforge.net/projects/denyhosts/files/

1:首先判断系统安装的sshd是否支持tcp_wrappers
[root@lab-1 ~]# ldd /usr/sbin/sshd|grep libwrap
libwrap.so.0 => /lib64/libwrap.so.0 (0x00002acc014bb000)

2:判断默认安装的Python版本(版本不可低于Python2.3)
[root@lab-1 ~]# python -V
Python 2.4.3


3:开始安装
mkdir -p /tools/secure
cd /tools/secure
tar zxf DenyHosts-2.6.tar.gz
cd DenyHosts-2.6
python setup.py install

#程序脚本自动安装到/usr/share/denyhosts
#库文件自动安装到/usr/lib/python2.3/site-packages/DenyHosts
#denyhosts.py自动安装到/usr/bin

4:相关设置
cd /usr/share/denyhosts/
cp daemon-control-dist daemon-control
chown root daemon-control
chmod 700 daemon-control
cat denyhosts.cfg-dist|grep -v "#"|grep -v "^$" >denyhosts.cfg

vi denyhosts.cfg
#----------------------------------------------------------------------------------
SECURE_LOG = /var/log/secure #分析该日志文件,其它版本linux根据denyhosts.cfg-dist内提示选择
HOSTS_DENY = /etc/hosts.deny #禁止登陆的主机文件
PURGE_DENY =30m #多久清除屏蔽的IP
BLOCK_SERVICE = sshd #禁止的服务名
DENY_THRESHOLD_INVALID = 1 #允许无效用户失败的次数,在/etc/passwd里面没有的用户(不包括root)
DENY_THRESHOLD_VALID = 5 #允许正常用户失败的次数,在/etc/passwd里面有的用户(不包括root)
DENY_THRESHOLD_ROOT = 5 #允许 root 用户登陆失败的次数
DENY_THRESHOLD_RESTRICTED = 1 #允许在$WORK_DIR/hosts-restricted里面出现的用户失败的次数
WORK_DIR = /usr/share/denyhosts/data #定义工作目录
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES #如果为YES,所有在$WORK_DIR/allowed-host时面的IP地址将会被认为是可疑的,如果设置为NO,所有在allowed-hosts试图登陆的结果,将不会发送警告邮件,所有不在$WORK_DIR/allowed-host时面的IP地址将会发送警告!
HOSTNAME_LOOKUP=YES #是否做域名反解
LOCK_FILE = /var/lock/subsys/denyhosts #定义PID文件的位置,确保同时只有一个Denyhost进程在运行
ADMIN_EMAIL =zhangluya1987@gmail.com #当有人试图登录你的服务器,或者有IP被加入黑名单的时候,发送邮件到这里指定的邮箱,前提是本机一定要可以发送邮件才行。
SMTP_HOST = localhost #指定smtp服务器
SMTP_PORT = 25 #指定SMTP端口号
SMTP_FROM = DenyHosts <admin@80sa.com> #指定发件人
SMTP_SUBJECT = DenyHosts Report #指定邮件主题
AGE_RESET_VALID=5d #多长时间后,用户登录失败的次数被置为0,这里是指在/etc/passwd里面定义的用户,如果不设置,永远都不会置0
AGE_RESET_ROOT=25d #多长时间后,root用户登录失败的次数置为0,如果不设置,永远都不会置0
AGE_RESET_RESTRICTED=25d #在$WORK_DIR/hosts-restricted时面定义的用户,多长时间失败次数计数器被置为0
AGE_RESET_INVALID=10d #无效用户(不在/etc/passwd里面的用户)的失败次数计数器,多长时间被置为0
DAEMON_LOG = /var/log/denyhosts #当denyhost运行在守护进程模式的时候,日志文件存储的位置
DAEMON_SLEEP = 30s #轮询查看SSHD日志的间隔
DAEMON_PURGE = 1h #多长时间清空$HOSTS_DENY中的IP地址,如果PURGE_DENY为空,这个设置将无效
#----------------------------------------------------------------------------------

echo "/usr/share/denyhosts/daemon-control start" >> /etc/rc.local
/usr/share/denyhosts/daemon-control start
yum install -y "sendmail"
echo "/etc/init.d/sendmail start" >> /etc/rc.local
/etc/init.d/sendmail start

 

posted on 2016-05-25 09:09 study notes 阅读(...) 评论(...)  编辑 收藏

导航

公告