首页 | 邮件资讯 | 技术教程 | 解决方案 | 产品评测 | 邮件人才 | 邮件博客 | 邮件系统论坛 | 软件下载 | 邮件周刊 | 热点专题 | 工具
网络技术 | 操作系统 | 邮件系统 | 客户端 | 电子邮箱 | 反垃圾邮件 | 邮件安全 | 邮件营销 | 移动电邮 | 邮件软件下载 | 电子书下载

邮件服务器

技术前沿 | Exchange | Domino | Sendmail | Postfix | Qmail | IMail | MDaemon | Foxmail | James | Kerio | JavaMail | WinMail | Winwebmail | Merak | CMailServer | 金笛 | 其它 | 邮件与开发 |
首页 > 邮件服务器 > Postfix > SPF在Postfix上的实现 > 正文
金笛邮件系统

SPF在Postfix上的实现

出处:www.xiaojb.com 作者:www.xiaojb.com 时间:2007-1-4 14:35:00

学习了一下SPF(Sender Policy FrameWork),SPF目前已经是互联网标准,是对抗垃圾邮件的一项手段
hotmail.com/gmail.com/sohu.com/tom.com/sina.com等都支持这个协议,Postfix从2.3起,支持Sendmail的Milter协议,这使得Postfix能轻松的支持SPF(Sender ID &SPF),我们今天先说SPF。
sid-milter是一个milter协议的SPF和Sender-ID实现,这个软件需要sendmail的libmilter支持,所以我们首先要下载sendmail并编译sendmail。

wget ftp://ftp.sendmail.org/pub/sendmail/sendmail.8.13.8.tar.gztar zxf sendmail.8.13.8.tar.gzcd sendmail-8.13.8/libmilter/make

我们只需要编译libmilter就可以了,另外还需要知道编译后的libmilter.a的位置,通常在sendmail源码的目录下有一个obj.xxx的目录,我们需要记住这个目录下libmiter.a的位置

debian:/home/xjb/mail/sendmail-8.13.8/libmilter# pwd/home/xjb/mail/sendmail-8.13.8/libmilterdebian:/home/xjb/mail/sendmail-8.13.8/libmilter# cd ../obj.Linux.2.6.17-1-686.i686/libmilter/debian:/home/xjb/mail/sendmail-8.13.8/obj.Linux.2.6.17-1-686.i686/libmilter# ls libmilter.alibmilter.adebian:/home/xjb/mail/sendmail-8.13.8/obj.Linux.2.6.17-1-686.i686/libmilter#

然后我们sid-milter的网站去下载最新的代码,然后解压。

tar zxf sid-milter-0.2.14.tar.gzcd sid-milter-0.2.14

这个时候我们可以看看INSTALL&README再进行下一步。
Postfix的官方文档给出了sid-milter的一些patch,我们需要先打上patch

diff -urN sid-milter-0.2.14.org/sid-filter/sid-filter.c sid-milter-0.2.14/sid-filter/sid-filter.c
— sid-milter-0.2.14.org/sid-filter/sid-filter.c 2006-07-21 06:28:09.000000000 +0800
+++ sid-milter-0.2.14/sid-filter/sid-filter.c 2006-09-16 23:32:10.000000000 +0800
@@ -1949,6 +1949,10 @@
assert(ctx != NULL);
#endif /* !DEBUG */

+ ret = mlfi_eoh(ctx);
+ if (ret != SMFIS_CONTINUE)
+ return ret;
+
memset(stathdr, ‘\0′, sizeof stathdr);
memset(spf_errmsg, ‘\0′, sizeof spf_errmsg);
memset(sid_errmsg, ‘\0′, sizeof sid_errmsg);
@@ -2392,7 +2396,7 @@
mlfi_envfrom, /* envelope sender filter */
NULL, /* envelope recipient filter */
mlfi_header, /* header filter */
- mlfi_eoh, /* end of header */
+ NULL, /* end of header */
NULL, /* body block filter */
mlfi_eom, /* end of message */
NULL, /* message aborted */


然后我们编辑sid-filter/Makefile.m4,这里定义了sid-milter使用的库和库的位置,我的Makefile.m4如下

include(confBUILDTOOLSDIR`/M4/switch.m4′)

define(`confMT’, `TRUE’)
define(`confREQUIRE_LIBSM’, `true’)

dnl Sometimes enabling this next line clears up some load-time warnings
dnl APPENDDEF(`confLIBS’, `-lcipher ‘)

bldPUSH_SMLIB(`sm’)
bldPUSH_SMLIB(`marid’)

PREPENDDEF(`confINCDIRS’, `-I../../sendmail ‘)
PREPENDDEF(`confINCDIRS’, `-I../../libmarid ‘)

dnl Disable these three lines if you want to use the OS-provided resolver
dnl instead of the provided asynchronous resolver library.
bldPUSH_SMLIB(`ar’)
PREPENDDEF(`confINCDIRS’, `-I../../libar ‘)
APPENDDEF(`confENVDEF’, `-DUSE_ARLIB ‘)

dnl Enable these next line if needed to specify the locations of libmilter.a
dnl and the libmilter include files:
APPENDDEF(`confINCDIRS’, `-I/home/xjb/mail/sendmail-8.13.8/include’)
APPENDDEF(`confLIBDIRS’, `-L/home/xjb/mail/sendmail-8.13.8/obj.Linux.2.6.17-1-686.i686/libmilter’)

bldPRODUCT_START(`executable’, `sid-filter’)
define(`bldSOURCES’, `sid-filter.c rfc2822.c util.c ‘)
PREPENDDEF(`confLIBS’, `-lmilter ‘)
bldPRODUCT_END

bldPRODUCT_START(`manpage’, `sid-filter’)
define(`bldSOURCES’, `sid-filter.8′)
bldPRODUCT_END

bldFINISH


AR(asynchronous resolver library)早在某公司的某个程序里边看到过了。23行是sendmail的头文件路径,24行改为上边提到的libmitler.a的路径。修改保存后就可以编译和安装了。

makemake install

sid-filter被默认安装在/usr/bin/目录下,它的参数可以看man。
我的启动参数是

/usr/bin/sid-filter -a /etc/postfix/milter/peerlist -l -p inet:3332@127.0.0.1 -h

-a是设置了一个信任列表,这里边的域名或者IP不会被过滤,-l是记录syslog,-p是指定socket文件或者监听端口。
-h是在mail的header增加Sid-milter的版本等信息。

另外我们还需要修改DNS,增加一个TXT记录

@       IN      TXT     "v=spf1 ip4:192.168.0.3 ?all"

我还没有看RFC,这里暂且猜测是指定了这个域的邮件服务器的IP地址列表,spf支持的格式有

# host -t txt gmail.comgmail.com descriptive text "v=spf1 redirect=_spf.google.com"# host -t txt _spf.google.com_spf.google.com descriptive text "v=spf1 ip4:216.239.56.0/23 ip4:64.233.160.0/19 ip4:66.249.80.0/20 ip4:72.14.192.0/18 ?all"# host -t txt hotmail.comhotmail.com descriptive text "v=spf1 include:spf-a.hotmail.com include:spf-b.hotmail.com include:spf-c.hotmail.com include:spf-d.hotmail.com ~all"# host -t txt spf-a.hotmail.comspf-a.hotmail.com descriptive text "v=spf1 ip4:209.240.192.0/19 ip4:65.52.0.0/14 ip4:131.107.0.0/16 ip4:157.54.0.0/15 ip4:157.56.0.0/14 ip4:157.60.0.0/16 ip4:167.220.0.0/16 ip4:204.79.135.0/24 ip4:204.79.188.0/24 ip4:204.79.252.0/24 ip4:207.46.0.0/16 ip4:199.2.137.0/24 ~all"

redirect和include作用相似?

Postfix 2.3及以上的版本支持milter,如果需要这些功能需要升级至2.3。Postfix的main.cf的配置

smtpd_milters = inet:127.0.0.1:3332

关于Postfix对Milter的支持,请看Postfix官网。

SPF的更多实现:http://new.openspf.org/Implementations

注:由于环境的限制,本文只是一个初步的笔记,等我有互联网服务器,并详细测试后,本文会随时更新。

参考:
Howto: Define an SPF Record

相关文章 热门文章
  • 9.4 启动和停止Postfix服务
  • 9.3.1 postfix服务的基本配置
  • 9.2 Postfix邮件服务的安装
  • 18.16 Postfix邮件系统
  • 正确配置Postfix来阻止垃圾邮件
  • Postfix 电子邮件系统精要
  • Postfix配置Step By Step(完成篇)
  • Postfix配置Step By Step(三)
  • Postfix配置Step By Step(二)
  • Postfix配置Step By Step(一)
  • Postfix邮件系统的安装与配置
  • 用Postfix架设FreeBSD下中小规模邮件系统
  • Install and configure Postfix with Cyrus-SASL+Cyrus-IMAP+MySQL
  • 在FreeBSD上建立一个功能完整的邮件服务器
  • postfix 邮件病毒过滤
  • 在Fedora上建立自己的邮件服务器
  • Postfix + SpamAssassin 安裝手冊
  • Postfix + Courier-IMAP + Cyrus-SASL + MySQL + IMP完全指南(新版)
  • Postfix + Cyrus-SASL + Cyrus-IMAPD + PgSQL HOWTO
  • 在FreeBSD5.1簡單安裝Postfix+Qpopper+Openwebmail
  • 在RHEL 4 上配置全功能的Postfix 服务器
  • Postfix + Cyrus-IMAP + Cyrus-SASL + MySQL + IMP 完全指南
  • 我的POSTFIX安装笔记
  • Postfix电子邮局的配置步骤
  • 发表评论
     姓名: Email: 查看评论
    * 请各位网友遵纪守法并注意语言文明 *《互联网电子公告服务管理规定》 *《全国人大常委会关于维护互联网安全的规定》
    自由广告区
     
     
    WINMAIL 让您轻松架设邮件系统
    eqmail
    最新软件下载
  • IMail Server 10
  • Foxmail6.5 Beta2
  • Kerio MailServer 6.5.0 Patch 1 Linu..
  • Kerio MailServer 6.5.0 Patch 1 正式版
  • Exchange Server服务器监视和排错介绍
  • Advanced Exchange Recovery V1.1.0.0..
  • 使用 Virtual Machine Manager 2007 ..
  • 如何利用 DPM 2007 数据备援技术达成 S..
  • 如何利用 DPM 2007 数据备援技术达成 A..
  • 全新资料备援方案 DPM 2007 技术导览
  • 如何使用 SCCM 完成企业 IT 环境的标..
  • 如何在企业环境中建置 SCCM 2007
  • 今日邮件技术文章
  • Coremail XT在中小企事业的应用
  • 赛门铁克公布2008年5月份垃圾邮件现状..
  • 湖南移动电子邮件系统成功案例
  • 网易邮箱增添中英文互译功能
  • 微软延长Outlook Express使用期限
  • Lotus Notes基础知识
  • Mimosa推出文件归档系统工具NearPoint ..
  • 在Vista中导入 Outlook Express 邮件
  • Outlook邮件整理插件Xobni发布
  • 十大步骤提高Domino邮件服务器性能
  • IBM发布最新软件Lotus Quickr 8.1
  • 供应商建言白宫电子邮件管理难题
  • 最新专题
  • Sendmail 邮件系统配置
  • 组建Exchange 2003邮件系统
  • Windows Server 2008 专题
  • ORF 反垃圾邮件系统
  • Exchange Server 2007 专题
  • ISA Server 2006 教程专题
  • Windows Vista 技术专题
  • “黑莓”(BlackBerry)专题
  • 移动电子邮件专题
  • Apache James 专题
  • IMail Server 操作指南
  • ISA Server 2004 使用专题
  • 分类导航
    邮件新闻资讯:
    IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮
    电子邮箱 | 反垃圾邮件|邮件客户端|网络安全
    行业数据 | 邮件人物 | 网站公告 | 行业法规
    网络技术:
    邮件原理 | 网络协议 | 网络管理 | 传输介质
    线路接入 | 路由接口 | 邮件存储 | 华为3Com
    CISCO技术 | 网络与服务器硬件
    操作系统:
    Windows 9X | Linux&Uinx | Windows NT
    Windows Vista | FreeBSD | 其它操作系统
    邮件服务器:
    程序与开发 | Exchange | Qmail | Postfix
    Sendmail | MDaemon | Domino | Foxmail
    KerioMail | JavaMail | Winwebmail |James
    Merak&VisNetic | CMailServer | WinMail
    金笛邮件系统 | 其它 |
    反垃圾邮件:
    综述| 客户端反垃圾邮件|服务器端反垃圾邮件
    邮件客户端软件:
    Outlook | Foxmail | DreamMail| KooMail
    The bat | 雷鸟 | Eudora |Becky! |Pegasus
    IncrediMail |其它
    电子邮箱: 个人邮箱 | 企业邮箱 |Gmail
    移动电子邮件:服务器 | 客户端 | 技术前沿
    邮件网络安全:
    软件漏洞 | 安全知识 | 病毒公告 |防火墙
    攻防技术 | 病毒查杀| ISA | 数字签名
    邮件营销:
    Email营销 | 网络营销 | 营销技巧 |营销案例
    邮件人才:招聘 | 职场 | 培训 | 指南 | 职场
    解决方案:
    邮件系统|反垃圾邮件 |安全 |移动电邮 |招标
    产品评测:
    邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端
    广告联系 | 合作联系 | 关于我们 | 联系我们 | 繁體中文
    版权所有:邮件技术资讯网©2003-2007 www.5dmail.net, All Rights Reserved
    www.5Dmail.net Web Team   粤ICP备05009143号