磁盘 io 总是满的状态

该服务器只有监控和邮件elk在上面。

发现邮件日志 疯狂的输出

tail -f /var/log/maillog

大致都是来自于 yahoo.com.tw的东西

清空了 /var/spool/postfix/incoming active bounce defer deferred    看情况而定

类似于这种格式

Jun  ::  postfix/error[]: 12A9BD00AFD: to=<b9081135@yahoo.com.tw>, relay=none, delay=9.5, delays=8.3/0.01//1.3, dsn=4.4., status=deferred (delivery temporarily suspended: lost connection with mx-tw.mail.gm0.yahoodns.net[27.123.206.55] while sending RCPT TO)
Jun :: postfix/error[]: 12A9BD00AFD: to=<baller0819@yahoo.com.tw>, relay=none, delay=9.6, delays=8.3/0.01//1.3, dsn=4.4., status=deferred (delivery temporarily suspended: lost connection with mx-tw.mail.gm0.yahoodns.net[27.123.206.55] while sending RCPT TO)
Jun :: postfix/error[]: 12A9BD00AFD: to=<belonguandme@yahoo.com.tw>, relay=none, delay=9.6, delays=8.3/0.01//1.3, dsn=4.4., status=deferred (delivery temporarily suspended: lost connection with mx-tw.mail.gm0.yahoodns.net[27.123.206.55] while sending RCPT TO)
Jun :: postfix/cleanup[]: 8CDDCD00AFF: message-id=<HMVJLNPHPPGQZMQGTTADBOUMA@.com>
Jun :: jxq-c2-- postfix/qmgr[]: 8CDDCD00AFF: from=<qqnvuolu@.com>, size=, nrcpt= (queue active)
Jun :: postfix/error[]: 8CDDCD00AFF: to=<@yahoo.com.tw>, relay=none, delay=9.1, delays=9.1/0.01//0.02, dsn=4.4., status=deferred (delivery temporarily suspended: lost connection with mx-tw.mail.gm0.yahoodns.net[27.123.206.55] while sending RCPT TO)

最后在 postfix的main.cf 修改并添加了一些东西,修改的为:

第一个需要修改的参数是myhostname,指向真正的域名,例如:

myhostname = mail.example.com
mydomain参数指向根域: mydomain = example.com
myorigin和mydestination都可以指向mydomain: myorigin = $mydomain
mydestination = $mydomain
Postfix默认只监听本地地址,如果要与外界通信,就需要监听网卡的所有IP: inet_interfaces = all
Postfix默认将子网内的机器设置为可信任机器,如果只信任本机,就设置为host: mynetworks_style = host
配置哪些地址的邮件能够被Postfix转发,当然是mydomain的才能转发,否则其他人都可以用这台邮件服务器转发垃圾邮件了: relay_domains = $mydomain

现在,Postfix已经基本配置完成,我们需要对邮件的发送进行控制:

  • 对于外域到本域的邮件,必须接收,否则,收不到任何来自外部的邮件;
  • 对于本域到外域的邮件,只允许从本机发出,否则,其他人通过伪造本域地址就可以向外域发信;
  • 对于外域到外域的邮件,直接拒绝,否则我们的邮件服务器就是Open Relay,将被视为垃圾邮件服务器。

先设置发件人的规则:

smtpd_sender_restrictions = permit_mynetworks, check_sender_access hash:/etc/postfix/sender_access, permit

以上规则先判断是否是本域地址,如果是,允许,然后再从sender_access文件里检查发件人是否存在,拒绝存在的发件人,最后允许其他发件人。

然后设置收件人规则:

smtpd_recipient_restrictions = permit_mynetworks, check_recipient_access hash:/etc/postfix/recipient_access, reject

以上规则先判断是否是本域地址,如果是,允许,然后再从recipient_access文件里检查收件人是否存在,允许存在的收件人,最后拒绝其他收件人。

/etc/postfix/sender_access的内容:

example.com REJECT

目的是防止其他用户从外部以xxx@example.com身份发送邮件,但登录到本机再发送则不受影响,因为第一条规则permit_mynetworks允许本机登录用户发送邮件。

/etc/postfix/recipient_access的内容:

postmaster@example.com OK
webmaster@example.com OK

因此,外域只能发送给以上两个Email地址,其他任何地址都将被拒绝。但本机到本机发送不受影响。

最后用postmap生成hash格式的文件:

# postmap sender_access
# postmap recipient_access

启动Postfix:

# /etc/init.d/postfix start

参考http://www.liaoxuefeng.com/article/00137387674890099a71c0400504765b89a5fac65728976000

smtpd_sender_restrictions = permit_mynetworks, check_sender_access hash:/etc/postfix/sender_access, permit
smtpd_recipient_restrictions = permit_mynetworks, check_recipient_access hash:/etc/postfix/recipient_access, reject non_fqdn_reject_code =
#unknown_local_recipient_reject_code =
#unknown_local_recipient_reject_code =
unknown_virtual_alias_reject_code =
unknown_virtual_mailbox_reject_code =
maps_rbl_reject_code =

定义sender和recipient_access

[root@ log]# cat /etc/postfix/sender_access
yahoo.com.tw REJECT
yahoo.com.jp REJECT
yahoo.co.jp REJECT
.com REJECT
yandex.ru REJECT
physiciansnews.com REJECT
keekoo.com REJECT
orifegypt.com REJECT
sperinde.com REJECT
keylessremotewarehouse.com REJECT
[root@ log]# cat /etc/postfix/recipient_access
noreply@playyx.com OK
yahoo.com.tw REJECT
yahoo.com.jp REJECT
yahoo.co.jp REJECT
.com REJECT
yandex.ru REJECT
physiciansnews.com REJECT
keekoo.com REJECT
orifegypt.com REJECT
sperinde.com REJECT
keylessremotewarehouse.com REJECT

然后执行 postmap

# postmap sender_access
# postmap recipient_access 重启postfix

以上步骤做完发现日志内的这些邮件已经拒绝了,但是日志还是搜搜的打印,格式如下

Jun  ::  postfix/smtpd[]: NOQUEUE: reject: RCPT from unknown[121.22.69.214]:  5.7. <eoyhscpr@.com>: Sender address rejected: Access denied; from=<eoyhscpr@.com> to=<thankupbig@yahoo.com.tw> proto=SMTP helo=<>
Jun :: postfix/smtpd[]: NOQUEUE: reject: RCPT from unknown[121.22.69.214]: 5.7. <eoyhscpr@.com>: Sender address rejected: Access denied; from=<eoyhscpr@.com> to=<tel331699@yahoo.com.tw> proto=SMTP helo=<>
Jun :: postfix/smtpd[]: NOQUEUE: reject: RCPT from unknown[121.22.69.214]: 5.7. <eoyhscpr@.com>: Sender address rejected: Access denied; from=<eoyhscpr@.com> to=<wangsir1357@yahoo.com.tw> proto=SMTP helo=<>
Jun :: postfix/smtpd[]: NOQUEUE: reject: RCPT from unknown[121.22.69.214]: 5.7. <eoyhscpr@.com>: Sender address rejected: Access denied; from=<eoyhscpr@.com> to=<ttuu01@yahoo.com.tw> proto=SMTP helo=<>

于是开启了防火墙

默认 允许所有

drop掉这些IP 参考http://blog.csdn.net/langeldep/article/details/38704291

用  gcc   -g -o dyn  dyn.c    , 编译后生成了可执行文件   dyn

我的dyn可执行文件在  /root 目录, 所以用 命令:

nohup   tail  -f   /var/log/maillog  |  /root/dyn  &

让它自己跑吧。

过一段时间后, 我们再看maillog日志,  已经基本没有 不认识的IP地址再连接过来发邮件了。

#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] = {};
const char* sep = "too many errors after"; while ()
{
memset (buf, , sizeof(buf));
char* tp = fgets (buf, sizeof(buf)-, stdin);
if (tp != NULL)
{
int buflen = strlen(tp);
char* p = strstr(buf, sep);
if (p != NULL)
{
char* p1 = p + strlen(sep) + ;
char* ps = NULL;
char* pe = NULL;
while (*p1 != '\0' && *p1 != '\n')
{
if (*p1 == '[')
ps = p1+;
if (*p1 == ']')
pe = p1;
p1++;
} if (ps != NULL && pe != NULL)
{
char ipbuf[]={};
memcpy (ipbuf, ps, pe-ps);
char ebuf[] = {};
snprintf(ebuf, sizeof(ebuf)-, "iptables -I INPUT -s %s -j DROP", ipbuf);
system (ebuf);
printf ("%s\n", ebuf);
} }
} } return ;
}

postfix 被当作垃圾邮件中转站的更多相关文章

  1. Linux中Postfix反病毒和垃圾邮件工具(十)

    amavisd-new amavisd-new呼叫器是一个连接MTA和内容检测工具(诸如病毒扫描工具和SpamAssassin)的高性能接口程序,使用perl语言写成.它一般通过SMTP.ESMTP或 ...

  2. Linux中Postfix反病毒和垃圾邮件(十)

    amavisd-new amavisd-new呼叫器是一个连接MTA和内容检测工具(诸如病毒扫描工具和SpamAssassin)的高性能接口程序,使用perl语言写成.它一般通过SMTP.ESMTP或 ...

  3. postfix疯狂外发垃圾邮件

    分析 一.查找main.cf配置文件 localhost# find / -name main.cf /etc/postfix/main.cf 二.打开/etc/postfix/main.cf来看看. ...

  4. Postfix上的反垃圾邮件的四个方法

    在介绍如何配置Postfix的smtp配置之前有必要首先介绍一下它的背景和特点.Postfix是一个由IBM资助下由WietseVenema 负责开发的自由软件工程的一个产物,其目的是为用户提供除se ...

  5. STMP发送邮件被当垃圾邮件处理的解决方法

    昨天使用了.Net通过smtp发送邮件的方式发送了一封邮件到自己的QQ邮箱,但是发送成功后并没有提示邮箱收到新的邮件,而且去收件箱里面也没有新增的邮件. 这让本人觉得奇怪,所以就觉得是否被当作垃圾邮件 ...

  6. postfix反垃圾邮件说明

    参考地址:http://guailele.blog.51cto.com/1156442/780223 1.打开 smtp 的认证模块 在/etc/postfix/main.cf文件最后加上:   sm ...

  7. 用Postfix + Dovecot 搭建的邮件server被垃圾邮件其中转server的处理

    今天发邮件. 发送失败.然后到server上看日志, 发现硬盘被垃圾邮件的缓存队列和日志塞满了. tail    -f    /var/log/maillog   发现疯狂刷屏.部分日志例如以下 : ...

  8. linux 安装wordpress 无故往外发送大量垃圾邮件

    linux 安装wordpress 无故往外发送大量垃圾邮件 始末 表现出来的现象就是, 网站运行没多久,mysql服务就挂了,重启也无法启动起来,提示 No such file or dicrion ...

  9. Postfix+Dovecot+MySQL搭建邮件服务器

    网上有很多使用Postfix搭建邮件服务器的文章,但目前貌似没有看到较为完整的一篇.本例将尝试在Ubuntu系统中使用Postfix+Dovecot+MySQL搭建邮件服务器. 说到邮件服务器,网上有 ...

随机推荐

  1. 【PCIE-2】---PCIE配置空间及访问方式简介

    对新手来说,第一步了解PCIE的相关基本概念,第二步了解PCIE配置空间,第三步深入研究PCIE设备枚举方式.本章主要总结第二步的PCIE配置空间 按照国际惯例,先提问题: 1. 什么是PCIE的配置 ...

  2. Java 几道常见String面试题

    String s1="abc"; String s2="abc"; System.out.println(s1==s2); System.out.println ...

  3. C# 二分法的解读

    注:一定是有序的数组,才可以使用这种算法,如果数组没有排序则先进行排序后再调用此方法. 1.二分法是做什么的呢? 当然是查找数组中的数据了,开个玩笑,哈哈哈. 2.为啥要用这种方式呢? 二分顾名思义, ...

  4. Burpsuite设置拦截response

    一.Burpsuite设置拦截HTTP/HTTPS代理 1, .拦截修改request 首先进入Proxy-Options-Intercept Client Requests设置request拦截的规 ...

  5. 字典 pop

    1.pop(key) 删除键值对,返回value2.若字典中没有这个key,则返回None,也可以自定义3.可用作if条件判断 来源: rest framework 框架 Serializer que ...

  6. 为BlueLake主题增加图片放大效果

    fancyBox 是一个流行的媒体展示增强组件,可以方便为网站添加图片放大.相册浏览.视频弹出层播放等效果.优点有使用简单,支持高度自定义,兼顾触屏.响应式移动端特性,总之使用体验相当好. 现在,我们 ...

  7. 机器学习- Sklearn (交叉验证和Pipeline)

    前面一节咱们已经介绍了决策树的原理已经在sklearn中的应用.那么这里还有两个数据处理和sklearn应用中的小知识点咱们还没有讲,但是在实践中却会经常要用到的,那就是交叉验证cross_valid ...

  8. Sublime Text 3 部分安装过程记录

    概览: Sublime Text 3下载网址 Package Control的安装 Install Package报错(There are no packages availabel for inst ...

  9. Dynamics CRM CE 怎样从 UCI 改为 classic UI

    dynamics 现在大力推UCI. 但是对于大部分人来说还是使用不习惯. 怎样从UCI改为classic UI呢 1. 快速的方法 https://xxx.crm.dynamics.com/main ...

  10. PlayCanvas PBR材质shader代码分析(vertex shader)

    顶点shader主要对顶点坐标变换,将顶点坐标从local->world->view->clip 空间变换 local空间:模型物体坐标系 world空间:世界空间坐标系 view空 ...