动态分析maillog日志,把恶意链接直接用防火墙禁止
来源:互联网 发布:关于网络的手抄报图片 编辑:程序博客网 时间:2024/05/01 00:45
转自:http://blog.csdn.net/langeldep/article/details/38704291
最近用 postfix + dovecot 搭建了一个邮件服务器, 被人当做垃圾邮件转发器,经过配置postfix 的黑白名单, postfix 提示成功的 REJECT 了垃圾邮件, 不过还是有无数的IP地址, 连接过来要进行发送邮件, 虽然垃圾邮件被拒绝了,但是未知连接太多,造成 maillog 日志越变越大, 拖慢 postfix 的运行速度, 总得想个办法解决。要是能把这些无用的IP地址直接用防火墙拒绝就好了。 思路有了,我们就着手处理吧。
这些垃圾IP地址全部是
- 本站主数据:台湾省 中华电信股份有限公司
- 参考数据一:台湾
tail -f /var/log/maillog 查看日志如下所示:
这日志还是很有规律的, 是不是 ?
- Aug 20 12:11:40 www postfix/smtpd[18033]: NOQUEUE: reject: RCPT from 36-224-133-61.dynamic-ip.hinet.net[36.224.133.61]: 554 5.7.1 <ykrt@yahoo.com.tw>: Recipient address rejected: Access denied; from=<vpjcmwqinpnpg@anet.net.tw> to=<ykrt@yahoo.com.tw> proto=SMTP helo=<115.28.81.191>
- Aug 20 12:11:41 www postfix/smtpd[18033]: NOQUEUE: reject: RCPT from 36-224-133-61.dynamic-ip.hinet.net[36.224.133.61]: 554 5.7.1 <yanghabi@yahoo.com.tw>: Recipient address rejected: Access denied; from=<vpjcmwqinpnpg@anet.net.tw> to=<yanghabi@yahoo.com.tw> proto=SMTP helo=<115.28.81.191>
- Aug 20 12:11:41 www postfix/smtpd[18026]: NOQUEUE: reject: RCPT from 36-224-135-60.dynamic-ip.hinet.net[36.224.135.60]: 554 5.7.1 <dygui@yahoo.com.tw>: Recipient address rejected: Access denied; from=<vqjpdghrcnaf@163.com> to=<dygui@yahoo.com.tw> proto=SMTP helo=<115.28.81.191>
- Aug 20 12:11:42 www postfix/smtpd[18023]: NOQUEUE: reject: RCPT from 114-45-29-112.dynamic.hinet.net[114.45.29.112]: 554 5.1.8 <ekiczlqpkuezc@yahoo.com.jp>: Sender address rejected: Domain not found; from=<ekiczlqpkuezc@yahoo.com.jp> to=<fet77111@yahoo.com.tw> proto=SMTP helo=<115.28.81.191>
- Aug 20 12:11:43 www postfix/smtpd[18033]: NOQUEUE: reject: RCPT from 36-224-133-61.dynamic-ip.hinet.net[36.224.133.61]: 554 5.7.1 <zen19762001@yahoo.com.tw>: Recipient address rejected: Access denied; from=<vpjcmwqinpnpg@anet.net.tw> to=<zen19762001@yahoo.com.tw> proto=SMTP helo=<115.28.81.191>
- Aug 20 12:11:43 www postfix/smtpd[18026]: NOQUEUE: reject: RCPT from 36-224-135-60.dynamic-ip.hinet.net[36.224.135.60]: 554 5.7.1 <to1477889900@yahoo.com.tw>: Recipient address rejected: Access denied; from=<vqjpdghrcnaf@163.com> to=<to1477889900@yahoo.com.tw> proto=SMTP helo=<115.28.81.191>
- Aug 20 12:11:44 www postfix/smtpd[18033]: NOQUEUE: reject: RCPT from 36-224-133-61.dynamic-ip.hinet.net[36.224.133.61]: 554 5.7.1 <x19781024@yahoo.com.tw>: Recipient address rejected: Access denied; from=<vpjcmwqinpnpg@anet.net.tw> to=<x19781024@yahoo.com.tw> proto=SMTP helo=<115.28.81.191>
- Aug 20 12:11:44 www postfix/smtpd[18023]: NOQUEUE: reject: RCPT from 114-45-29-112.dynamic.hinet.net[114.45.29.112]: 554 5.1.8 <ekiczlqpkuezc@yahoo.com.jp>: Sender address rejected: Domain not found; from=<ekiczlqpkuezc@yahoo.com.jp> to=<jay791028@yahoo.com.tw> proto=SMTP helo=<115.28.81.191>
- Aug 20 12:11:45 www postfix/smtpd[18033]: NOQUEUE: reject: RCPT from 36-224-133-61.dynamic-ip.hinet.net[36.224.133.61]: 554 5.7.1 <juliessy@yahoo.com.tw>: Recipient address rejected: Access denied; from=<vpjcmwqinpnpg@anet.net.tw> to=<juliessy@yahoo.com.tw> proto=SMTP helo=<115.28.81.191>
- Aug 20 12:11:45 www postfix/smtpd[18026]: too many errors after RCPT from 36-224-135-60.dynamic-ip.hinet.net[36.224.135.60]
- Aug 20 12:11:45 www postfix/smtpd[18026]: disconnect from 36-224-135-60.dynamic-ip.hinet.net[36.224.135.60]
- Aug 20 12:11:46 www postfix/smtpd[18023]: too many errors after RCPT from 114-45-29-112.dynamic.hinet.net[114.45.29.112]
- Aug 20 12:11:46 www postfix/smtpd[18023]: disconnect from 114-45-29-112.dynamic.hinet.net[114.45.29.112]
- Aug 20 12:11:47 www postfix/smtpd[18033]: NOQUEUE: reject: RCPT from 36-224-133-61.dynamic-ip.hinet.net[36.224.133.61]: 554 5.7.1 <xsip@yahoo.com.tw>: Recipient address rejected: Access denied; from=<vpjcmwqinpnpg@anet.net.tw> to=<xsip@yahoo.com.tw> proto=SMTP helo=<115.28.81.191>
- Aug 20 12:11:49 www postfix/smtpd[18033]: too many errors after RCPT from 36-224-133-61.dynamic-ip.hinet.net[36.224.133.61]
- Aug 20 12:11:49 www postfix/smtpd[18033]: disconnect from 36-224-133-61.dynamic-ip.hinet.net[36.224.133.61]
- Aug 20 12:14:10 www postfix/smtpd[18097]: connect from 36-224-136-82.dynamic-ip.hinet.net[36.224.136.82]
- Aug 20 12:14:11 www postfix/smtpd[18097]: NOQUEUE: reject: RCPT from 36-224-136-82.dynamic-ip.hinet.net[36.224.136.82]: 554 5.7.1 <rzxijhkiefau@yahoo.com.tw>: Sender address rejected: Access denied; from=<rzxijhkiefau@yahoo.com.tw> to=<ina12350@yahoo.com.tw> proto=SMTP helo=<115.28.81.191>
- Aug 20 12:14:11 www postfix/smtpd[18097]: NOQUEUE: reject: RCPT from 36-224-136-82.dynamic-ip.hinet.net[36.224.136.82]: 554 5.7.1 <rzxijhkiefau@yahoo.com.tw>: Sender address rejected: Access denied; from=<rzxijhkiefau@yahoo.com.tw> to=<ilovemyself414@yahoo.com.tw> proto=SMTP helo=<115.28.81.191>
我们可以动态分析日志, 把
- too many errors after RCPT from
- 后面的IP地址获取, 动态加入到防火墙进行拒绝就行。
思路有了, 我就写个小程序来分析日志吧,我写的是C的, 不过用perl 或者 shell 脚本可能更简单。
反正用自己最熟悉的语言就行。
dyn.c 源代码文件的内容如下 :
- #include <string.h>
- #include <stdio.h>
- #include <stdlib.h>
- #define BUF_LEN 4096
- #define DATA_LEN 4096*10
- int main (int argc, char** argv)
- {
- //too many errors after RCPT from 36-224-128-99.dynamic-ip.hinet.net[36.224.128.99]
- //too many errors after RCPT from 118-169-22-28.dynamic.hinet.net[118.169.22.28]
- //too many errors after AUTH from unknown[79.125.161.236]
- char buf[BUF_LEN] = {0};
- const char* sep = "too many errors after";
- while (1)
- {
- memset (buf, 0, sizeof(buf));
- char* tp = fgets (buf, sizeof(buf)-1, stdin);
- if (tp != NULL)
- {
- int buflen = strlen(tp);
- char* p = strstr(buf, sep);
- if (p != NULL)
- {
- char* p1 = p + strlen(sep) + 1;
- char* ps = NULL;
- char* pe = NULL;
- while (*p1 != '\0' && *p1 != '\n')
- {
- if (*p1 == '[')
- ps = p1+1;
- if (*p1 == ']')
- pe = p1;
- p1++;
- }
- if (ps != NULL && pe != NULL)
- {
- char ipbuf[64]={0};
- memcpy (ipbuf, ps, pe-ps);
- char ebuf[512] = {0};
- snprintf(ebuf, sizeof(ebuf)-1, "iptables -I INPUT -s %s -j DROP", ipbuf);
- system (ebuf);
- printf ("%s\n", ebuf);
- }
- }
- }
- }
- return 0;
- }
用 gcc -g -o dyn dyn.c , 编译后生成了可执行文件 dyn
我的dyn可执行文件在 /root 目录, 所以用 命令:
nohup tail -f /var/log/maillog | /root/dyn &
让它自己跑吧。
过一段时间后, 我们再看maillog日志, 已经基本没有 不认识的IP地址再连接过来打算发邮件了。
0 0
- 动态分析maillog日志,把恶意链接直接用防火墙禁止
- 动态分析maillog日志,把恶意链接直接用防火墙禁止
- maillog 日志 切割 按日 分割
- 防止恶意解析 - 禁止通过ip直接访问到网站
- wordpress优化禁止直接通过ip访问防止恶意解析
- wordpress禁止恶意HTTP_USER_AGENT
- Apache防恶意解析—禁止直接通过IP访问网站
- Linux环境下,apache设置禁止恶意域名绑定和直接ip访问方法
- 禁止通过ip直接访问网站来防止恶意解析-(apache,nginx,iis)
- 动态检测secure日志文件,iptables拒绝恶意IP
- 通过统计nginx访问日志禁止恶意抓取数据的实现
- 动态链接原理分析
- [原创+总结]防火墙常见日志分析
- 怎么把某服务加入到防火墙服务中,直接让防火墙通过其请求
- apache禁止恶意域名访问
- Apache禁止域名恶意指向
- nginx禁止恶意压力测试
- 短信发送接口被恶意访问的网络攻击事件(三)定位恶意IP的日志分析脚本
- 涨姿势!x86处理器兼容ARM架构App的秘密
- JVM内存划分
- 【Redis源码剖析】 - Redis内置数据结构之字符串sds
- Json 和 Jsonlib 的使用
- C++将结构体传给lua
- 动态分析maillog日志,把恶意链接直接用防火墙禁止
- Nginx源码分析(2)之——共享内存管理之slab机制
- IntelliJ IDEA 14.x 与 Tomcat 集成,创建并运行Java Web项目
- 安卓应用反编译(三)-结束
- [Awt]——图片获取方式
- VS2013 编译ffmpeg
- String与InputStream的互相转换
- 对象的创建
- java 遍历的4种方法