专栏首页Netkiller服务器攻防·禁止穷举邮箱密码

服务器攻防·禁止穷举邮箱密码

本文节选自《Netkiller Linux 手札》

下面是一个脚本你可以放在crontab中运行,每个一定时间运行一次。

#!/bin/bash
########################################
# Homepage: http://netkiller.github.io
# Author: neo <netkiller@msn.com>
########################################
PIPE=/var/tmp/pipe
pidfile=/var/tmp/$0.pid
BLACKLIST=/var/tmp/black.smtpd.lst
WHITELIST=/var/tmp/white.smtpd.lst

LOGFILE=/var/log/maillog
DAY=5
########################################

if [ -z "$( egrep "CentOS|7." /etc/centos-release)" ]; then
	echo 'Only for CentOS 7.x'
	exit
fi

if [ -f $BLACKLIST ]; then
	find $BLACKLIST -type f -mtime +${DAY} -delete
fi

if [ ! -f ${BLACKLIST} ]; then
    touch ${BLACKLIST}
fi

if [ ! -f ${WHITELIST} ]; then
    touch ${WHITELIST}
fi

for ipaddr in $(grep "too many errors after AUTH from" ${LOGFILE} | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | sort | uniq -c | sort -r -n | head -n 20| awk '{print $2}')
do

    if [ $(grep -c $ipaddr ${WHITELIST}) -gt 0 ]; then
		continue
    fi

    if [ $(grep -c $ipaddr ${BLACKLIST}) -eq 0 ] ; then
		echo $ipaddr >> ${BLACKLIST}
        iptables -I INPUT -p tcp --dport 25 -s $ipaddr -j DROP
        #iptables -I INPUT -s $ipaddr -j DROP
    fi
done

本文分享自微信公众号 - Netkiller(netkiller-ebook),作者:景峯

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-11-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Spring boot with Apache Kafka

    本文节选自电子书《Netkiller Java 手札》 5.21. Spring boot with Apache Kafka Spring boot 1.5....

    netkiller old
  • SNS 数据库设计

    本文节选自《Netkiller Architect 手札》 4.21. SNS 数据库设计 这里讲解SNS交友社区的数据库设计与实现 我们要实现下面几个功能 朋...

    netkiller old
  • Spring Boot 快速开始

    节选自 《Netkiller Java 手札》 11.2. Spring Boot 11.2.1. pom.xml <project xmlns="http...

    netkiller old
  • 统计学之假设检验

    P-值规则:先把显著性水平α值转化为一定分布下的临界值,然后在计算检验统计值,最后把检验统计值与临界值相互比较来判断是否拒绝原假设。在双侧检验时,α平分在两侧,...

    小末快跑
  • centos7单机安装kafka,进行生产者消费者测试

    原文出处:http://www.yund.tech/zdetail.html?type=1&id=3028469704c7976aef5b824811dd3bf...

    大道七哥
  • Kafka集群搭建

     安装kafka集群之前,确保zookeeper服务已经正常运行,这里3台zookeeper准备工作都已完成,三台主机分别为:192.168.3.220,192...

    HUC思梦
  • ELK+filebeat+kafka+zooKeeper搭建(单机版)

    关于elk的配置参考我之前的一篇文章,不在累述: elk安装地址: https://jjlu521016.github.io/2018/05/01/spring...

    日薪月亿
  • ELK7.x日志系统搭建 4. 结合kafka集群完成日志系统

    以上是我的节点及机器上安装的相关软件,东西会比较多,但是运行都离不开我们上面的架构图。

    憧憬博客
  • 51Nod-1803-森林直径

    ACM模版 描述 ? 题解 根据题目,我们知道,数据是随机建树的,所以树的深度不会特别大,约摸 lg nlg\ n,所以我们可以树归搞搞,亲测,数据随机建树深度...

    f_zyj
  • Golang Leetcode 867. Transpose Matrix.go

    版权声明:原创勿转 https://blog.csdn.net/anakinsun/arti...

    anakinsun

扫码关注云+社区

领取腾讯云代金券