Linux.中国 - 开源社区

 找回密码
 骑士注册

QQ登录

微博登录


权威指南:构建个人私有云,拿回你的数据隐私的控制权!

2015-3-25 21:48    评论: 37 收藏: 12 分享: 59    

确保你发出的邮件能通过垃圾邮件过滤器

这个部分我们的目标是让我们的邮件服务器能尽量干净地出现在世界上,并让垃圾邮件发送者们更难以我们的名义发邮件。作为附加效果,这也有助于让我们的邮件能通过其他邮件服务器的垃圾邮件过滤器。

发送者策略框架(SPF)

发送者策略框架(SPF)是你添加到自己服务器区域里的一份记录,声明了整个因特网上哪些邮件服务器能以你的域名发邮件。设置非常简单,使用microsoft.com上的SPF向导来生成你的SPF记录,然后作为一个TXT记录添加到自己的服务器区域里。看上去像这样:

jhausse.net.    300 IN  TXT v=spf1 mx mx:cloud.jhausse.net -all

反向PTR

我们之前在本文里讨论过这个问题,建议你为自己的服务器正确地设置反向DNS,这样对服务器IP地址的反向查询能返回你服务器的实际名字。

OpenDKIM

当我们激活OpenDKIM后,postfix会用密钥为每封发出去的邮件签名。然后我们将把这个密钥存储在DNS域中。这样的话,世界上任意一个邮件服务器都能够检验邮件是否真的是我们发出的,或是由垃圾邮件发送者伪造的。让我们先安装opendkim:

apt-get install opendkim opendkim-tools

然后按如下方式编辑/etc/opendkim.conf文件的配置:

##
## opendkim.conf -- configuration file for OpenDKIM filter
##
Canonicalization        relaxed/relaxed
ExternalIgnoreList      refile:/etc/opendkim/TrustedHosts
InternalHosts           refile:/etc/opendkim/TrustedHosts
KeyTable                refile:/etc/opendkim/KeyTable
LogWhy                  Yes
MinimumKeyBits          1024
Mode                    sv
PidFile                 /var/run/opendkim/opendkim.pid
SigningTable            refile:/etc/opendkim/SigningTable
Socket                  inet:8891@localhost
Syslog                  Yes
SyslogSuccess           Yes
TemporaryDirectory      /var/tmp
UMask                   022
UserID                  opendkim:opendkim

我们还需要几个额外的文件,需保存在目录/etc/opendkim里:

mkdir -pv /etc/opendkim/
cd /etc/opendkim/

让我们建立新文件/etc/opendkim/TrustedHosts并写入以下内容:

127.0.0.1

建立新文件/etc/opendkim/KeyTable并写入以下内容:

cloudkey jhausse.net:mail:/etc/opendkim/mail.private

这会告诉OpenDKIM我们希望使用一个名叫'cloudkey'的加密密钥,它的内容在文件/etc/opendkim/mail.private里。我们建立另一个名叫/etc/opendkim/SigningTable的文件然后写入下面这一行:

*@jhausse.net cloudkey

这会告诉OpenDKIM每封从jhausse.net域发出的邮件都应该用'cloudkey'密钥签名。如果我们还有其他域希望也能签名,我们也可以在这里添加。

下一步是生成密钥并修改OpenDKIM配置文件的权限。

opendkim-genkey -r -s mail [-t]
chown -Rv opendkim:opendkim /etc/opendkim
chmod 0600 /etc/opendkim/*
chmod 0700 /etc/opendkim

一开始,最好使用-t开关,这样会通知其他邮件服务器你只是在测试模式下,这样他们就不会丢弃基于你的OpenDKIM签名的邮件(目前来说)。你可以从mail.txt文件里看到OpenDKIM密钥:

cat mail.txt

然后把它作为一个TXT记录添加到区域文件里,应该是类似这样的:

mail._domainkey.cloud1984.net.  300 IN TXT  v=DKIM1; k=rsa; p=MIGfMA0GCSqG...

最后,我们需要告诉postfix来为发出的邮件签名。在文件/etc/postfix/main.cf末尾,添加:

# Now for OpenDKIM: we'll sign all outgoing emails
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept

然后重启相关服务:

service postfix reload
service opendkim restart

测试

现在让我们测试一下是否能找到我们的OpenDKIM公钥并和私钥匹配:

opendkim-testkey -d jhausse.net -s mail -k mail.private -vvv

这个应该返回:

opendkim-testkey: key OK

这个你可能需要等一会直到域名服务器重新加载该区域(对于Linode,每15分钟会更新一次)。你可以用dig来检查区域是否已经重新加载。

如果这个没问题,让我们测试一下其他服务器能验证我们的OpenDKIM签名和SPF记录。要做这个,我们可以用Brandon Checkett的邮件测试系统。发送一封邮件到Brandon的网页上提供的测试地址,我们可以在服务器上运行下面的命令

mail -s CloudCheck ihAdmTBmUH@www.brandonchecketts.com

在Brandon的网页上,我们应该可以在'DKIM Signature'部分里看到result = pass的文字,以及在'SPF Information'部分看到Result: pass的文字。如果我们的邮件通过这个测试,只要不加-t开关重新生成OpenDKIM密钥,上传新的密钥到区域文件里,然后重新测试检查是否仍然可以通过这些测试。如果可以的话,恭喜!你已经在你的服务器上成功配置好OpenDKIM和SPF了!

查看其它分页:

发表评论


最新评论

我也要发表评论

吉法师之艾露 2015-3-26 20:33  新浪微博网友评论
//@Linux中国:这篇鸿篇巨制(64K)不但剖析了在你被那些“免费”的服务供养的背后所损失的隐私。事实上,Google、百度、360们比你更了解你自己;而且提出了具体的解决方案,对于稍有技术基础的人来,完整地指导了如何搭建私有云,提供全功能、商业级的邮件服务和云服务。
回复
billy_rrr 2015-3-26 15:03  新浪微博网友评论
是时候买专线了//@Linux中国:这篇鸿篇巨制(64K)不但剖析了在你被那些“免费”的服务供养的背后所损失的隐私。事实上,Google、百度、360们比你更了解你自己;而且提出了具体的解决方案,对于稍有技术基础的人来,完整地指导了如何搭建私有云,提供全功能、商业级的邮件服务和云服务。
回复
SilvaSong 2015-3-26 14:03  新浪微博网友评论
mr
回复
code猪 2015-3-26 13:03  新浪微博网友评论
这个可以,如果有朋友想要一起来构建,我将会做,现在只要你的一个想法就可以,域名主机都准备好了。
回复
半天河 2015-3-26 12:33  新浪微博网友评论
@mywiz
回复
张大航死在了去写作业的路上 2015-3-26 12:03  新浪微博网友评论
//@Linux中国:这篇鸿篇巨制(64K)不但剖析了在你被那些“免费”的服务供养的背后所损失的隐私。事实上,Google、百度、360们比你更了解你自己;而且提出了具体的解决方案,对于稍有技术基础的人来,完整地指导了如何搭建私有云,提供全功能、商业级的邮件服务和云服务。
回复
24K东北人 2015-3-26 11:33  新浪微博网友评论
//@Linux中国:作为邮件技术专家,我认为,其中邮件系统部分相当完善,而且,文章的思路清晰,简明扼要。其中包括基础的 SMTP/IMAP 服务自不必提,反垃圾邮件服务、灰名单、SPF、DKIM、Webmail,应有尽有,可以作为搭建产品环境中的邮件系统参考。
回复
WakingDreamer 2015-3-26 11:33  新浪微博网友评论
好东西
回复
LPW-2015 2015-3-26 11:33  新浪微博网友评论
@我的印象笔记
回复
shanlinzi 2015-3-26 11:33  新浪微博网友评论
mark
回复
我的滑板鞋在金坷垃上摩擦 2015-3-26 11:03  新浪微博网友评论
想想自己有什么隐私?呵呵//@Linux中国:这篇鸿篇巨制(64K)不但剖析了在你被那些“免费”的服务供养的背后所损失的隐私。事实上,Google、百度、360们比你更了解你自己;而且提出了具体的解决方案,对于稍有技术基础的人来,完整地指导了如何搭建私有云,提供全功能、商业级的邮件服务和云服务。
回复
V郭小伟 2015-3-26 11:03  新浪微博网友评论
需要
回复
wktback 2015-3-26 10:33  新浪微博网友评论
@mark
回复
多多的小强 2015-3-26 10:33  新浪微博网友评论
[good][good][good]//@Linux中国:这篇鸿篇巨制(64K)不但剖析了在你被那些“免费”的服务供养的背后所损失的隐私。事实上,Google、百度、360们比你更了解你自己;而且提出了具体的解决方案,对于稍有技术基础的人来,完整地指导了如何搭建私有云,提供全功能、商业级的邮件服务和云服务。
回复
theNewID 2015-3-26 10:03  新浪微博网友评论
马//@Revil_Wang:干货很多,而且太基础了//@Linux中国:作为邮件技术专家,我认为,其中邮件系统部分相当完善,而且,文章的思路清晰,简明扼要。其中包括基础的 SMTP/IMAP 服务自不必提,反垃圾邮件服务、灰名单、SPF、DKIM、Webmail,应有尽有,可以作为搭建产品环境中的邮件系统参考。
回复
Bevisy-C 2015-3-26 10:03  新浪微博网友评论
//@Linux中国:这篇鸿篇巨制(64K)不但剖析了在你被那些“免费”的服务供养的背后所损失的隐私。事实上,Google、百度、360们比你更了解你自己;而且提出了具体的解决方案,对于稍有技术基础的人来,完整地指导了如何搭建私有云,提供全功能、商业级的邮件服务和云服务。
回复
等打鸣的鸡 2015-3-26 10:03  新浪微博网友评论
太累了……//@Linux中国:作为邮件技术专家,我认为,其中邮件系统部分相当完善,而且,文章的思路清晰,简明扼要。其中包括基础的 SMTP/IMAP 服务自不必提,反垃圾邮件服务、灰名单、SPF、DKIM、Webmail,应有尽有,可以作为搭建产品环境中的邮件系统参考。
回复
酒千觞箫 2015-3-26 09:33  新浪微博网友评论
赞!//@Linux中国: 作为邮件技术专家,我认为,其中邮件系统部分相当完善,而且,文章的思路清晰,简明扼要。其中包括基础的 SMTP/IMAP 服务自不必提,反垃圾邮件服务、灰名单、SPF、DKIM、Webmail,应有尽有,可以作为搭建产品环境中的邮件系统参考。
回复
after_sunday 2015-3-26 09:33  新浪微博网友评论
@mywiz
回复
Revil_Wang 2015-3-26 09:33  新浪微博网友评论
干货很多,而且太基础了//@Linux中国:作为邮件技术专家,我认为,其中邮件系统部分相当完善,而且,文章的思路清晰,简明扼要。其中包括基础的 SMTP/IMAP 服务自不必提,反垃圾邮件服务、灰名单、SPF、DKIM、Webmail,应有尽有,可以作为搭建产品环境中的邮件系统参考。
回复
12下一页

热点评论

来自 - 广东中山 的 Firefox/Linux 用户 2015-3-25 23:20
看了第一页
终于知道墙的作用了
9
返回顶部

分享到微信朋友圈

打开微信,点击底部的“发现”,
使用“扫一扫”将网页分享至朋友圈。