Chinaunix首页 | 论坛 | 博客
  • 博客访问: 38949
  • 博文数量: 10
  • 博客积分: 310
  • 博客等级: 一等列兵
  • 技术积分: 80
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-23 12:23
文章分类

全部博文(10)

文章存档

2016年(2)

2015年(2)

2014年(1)

2011年(1)

2009年(4)

我的朋友

分类: 系统运维

2014-12-22 10:59:41

安装
注意,在安装操作系统的时候安装sendmail的所有组件,这个软件的安装需要用到sendmail 的相关文件,如果没有安装下面的编译安装会出现错误!

下载:如下的软件:
db-4.8.26.tar.gz (可能不需要安装)
milter-limit-0.14.tar.gz
libsnert-1.73.11.tar.gz
# tar -zxvf libsnert-1.73.11.tar.gz
# tar -zxvf milter-limit-0.14.tar.gz
#cd com/snert/src/lib
# ./configure --with-db=/usr            # 检查是否有Berkeley DB 支持
# make build
# cd ../milter-limit
# ./configure --enable-run-user=postfix --enable-run-group=postfix
# make build
# make install

安装完毕:
下面设置postix

修改 /etc/postfix/main.cf
添加参数:
smtpd_milters = unix:/var/run/milter/milter-limit.socket


过滤规则:
milter-limit 的规则文件写在/etc/mail/access 中,然后用makemap 来生成
makemap hash /etc/mail/access.db < /etc/mail/acces
# 请注意access.db权限不能为可执行,并且可以让postfix 用户能够读取
/etc/mail/access 文件的规则包括

milter-limit-Connect:       # 客户端连接IP
milter-limit-From:          # 发件人地址
milter-limit-To:             # 收件人地址
milter-limit-Auth:          # 通过SMTP认证的发件人

支持以下匹配规则
[network/cidr]limit        无类域间路由
!pattern!limit              简单文本匹配
/regex/limit               POSIX正则表达式

limit:时间单位可以是秒(s)、分钟(m)、小时(h)、天(d)、星期(w)
格式: messages ‘/’ time [unit]


# 发往域限制在1小时发送2封邮件
策略:
启动参数: policy=reject

none            什么都不做
tag              给邮件标题打标签   启动参数:subject-tag=[SPAM]
quarantine     将邮件送入隔离队列(不发送,需要通过命令激活).
later            不接收邮件,提示发送端发送延迟消息,邮件仍旧在发送端的队列中,稍候重试
reject           拒绝邮件(默认值)
discard         直接丢弃

启动命令

/usr/local/sbin/milter-limit  verbose=all policy=later -start

如果需要调试使用 verbose=all 在/var/log/maillog 中查看日志
其他参数用 -help 参数查看
postfix 基本参数设置
smtp_skip_4xx_greeting = yes
smtp_skip_5xx_greeting = yes
default_destination_concurrency_limit = 2 #同一IP并发连接
initial_destination_concurrency = 2
smtp_helo_name = mai        # 本机对外真实域名
smtpd_milters = inet:localhost:8891,unix:/var/run/milter/milter-limit.socket

测试发送邮件,如果在一小时呢发送超过2封每秒,会被拒绝投递

查看日志:

tail /var/log/maillog
如下信息
说明控制能正常功能工作了
Mar 11 19:20:18 mail milter-limit[5613]: 00004 NOQUEUE: limit max=2 seconds=3600
Mar 11 19:20:18 mail milter-limit[5613]: cache get {milter-limit-to:}
Mar 11 19:20:18 mail milter-limit[5613]: 00004 NOQUEUE: cache get key={milter-limit-to:} value={1268309916, 2} rc=0
Mar 11 19:20:18 mail milter-limit[5613]: 00004 NOQUEUE: isOverLimit(8d50100, 8d4fbe8) {milter-limit-to:, 2/1h, 2, 4b98df9c}
rc=1
Mar 11 19:20:18 mail milter-limit[5613]: 00004 NOQUEUE: reply 450 4.7.1  has exceeded 2 messages per 1 hour
Mar 11 19:20:18 mail postfix/smtpd[5618]: NOQUEUE: milter-reject: RCPT from unknown[192.168.1.109]: 450 4.7.1  has exceeded 2 messag

来自:
阅读(2883) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~