DenyHosts分析sshd的日志文件/var/log/secure
当发现重复的攻击时就会记录IP到/etc/hosts.deny文件,从而达到自动屏IP的功能
主页
2.6版本下载地址

安装

#请确保当前目录下有DenyHosts-2.6.tar.gz
#默认安装到/usr/share/denyhosts目录
if [ -d "/usr/share/denyhosts/" ];then

    echo -e "\033[31m Denyhosts已安装,状态如下: \033[0m"
    /usr/share/denyhosts/daemon-control status
else
    tar -xzvf DenyHosts-2.6.tar.gz
    chmod -R 755 DenyHosts-2.6
    echo " " > /var/log/secure && service rsyslog restart
    cd DenyHosts-2.6/
    python setup.py install
    cp denyhosts.cfg-dist denyhosts.cfg
    cp daemon-control-dist daemon-control

    cp denyhosts.cfg /usr/share/denyhosts/denyhosts.cfg
    cp daemon-control /usr/share/denyhosts/daemon-control
    cd /usr/share/denyhosts/

    chmod 700 daemon-control
    touch /var/log/sshd.log
    ./daemon-control start

    ln -sf /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts
    chkconfig --add denyhosts
    chkconfig denyhosts on
    echo "/usr/share/denyhosts/daemon-control start" >> /etc/rc.local
fi

配置

vim denyhosts.cfg

修改为:

PURGE_DENY = 1h #清理黑名单周期
HOSTS_DENY = /etc/hosts.deny #将阻止IP写入到hosts.deny
BLOCK_SERVICE = sshd #阻止服务名
DENY_THRESHOLD_INVALID = 1 #允许无效用户登录失败的次数
DENY_THRESHOLD_VALID = 10 #允许普通用户登录失败的次数
DENY_THRESHOLD_ROOT = 5 #允许root登录失败的次数
WORK_DIR = /usr/share/denyhosts/data #将deny的host或ip纪录到Work_dir中
DENY_THRESHOLD_RESTRICTED = 1 #设定 deny host 写入到该资料夹
LOCK_FILE = /var/lock/subsys/denyhosts #将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。
HOSTNAME_LOOKUP=NO #是否做域名反解
ADMIN_EMAIL = #设置管理员邮件地址
DAEMON_LOG = /var/log/denyhosts #自己的日志文件
DAEMON_PURGE = 1h #该项与PURGE_DENY 设置成一样,也是清除hosts.deniedssh 用户的时间

查机器爆破源的ip方法:

grep "authentication failure" /var/log/secure |awk '{print 14}' |awk -F'=' '{print 2}'|sort |uniq -c |sort -n |awk '{print $2}'

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code