肥兔 发布的文章

据不少网友反馈,Windows 7系统更新KB3146706补丁后,出现了蓝屏死机的问题,错误代码0x0000006B,而且重启也无法正常系统,连安全模式都挂了。

从目前的情况看,中招的用户相当多,尤其是以Ghost方式安装的几乎一个也跑不了。考虑到Ghost系统很多都做了精简或修改,而且往往系统文件版本较老,因此极有可能是和关键系统文件发生了冲突,导致蓝屏。

很多用户无奈之下重装了系统,不想重装的可以找一个Windows PE系统光盘/U盘,进入之后在命令提示符下执行以下命令卸载此补丁:

32位系统:
dism /Image:C:\ /Remove-Package /PackageName:Package_for_KB3146706~31bf3856ad364e35~x86~~6.1.1.2

64位系统:
dism /Image:C:\ /Remove-Package /PackageName:Package_for_KB3146706~31bf3856ad364e35~amd64~~6.1.1.2

也可以使用Windows 7系统安装光盘/U盘,启动后进入到安装程序选项界面,按下Shift+F10开启命令提示符,确认系统分区后执行上述命令。

Postfix 禁用ipv6
nano /etc/postfix/main.cf
添加一行
inet_protocols = ipv4

Dovecot 禁用ipv6
nano /etc/dovecot/dovecot.conf
搜索listen
将改行改成如下
listen = *

设置发信 SPF

发信的 SPF 记录不需要 Postfix 设置,而完全在 DNS 上。
为自己的域名添加一条 TXT 记录:
example.com IN TXT "v=spf1 mx ~all"
这条记录表示域名自身 MX 记录指向的主机为可信主机,~all 表示除此以外的主机为软拒绝。
SPF 记录的语法规则可以查阅 http://www.openspf.org/SPF_Record_Syntax 。

校验来信 SPF

Postfix 需要安装一个组件以支持 SPF 校验。
# apt-get install postfix-policyd-spf-perl
添加 Postfix policy:
# postfix-add-policy spfcheck nobody /usr/sbin/postfix-policyd-spf-perl
在 /etc/postfix/main.cf 添加以下内容:

# SPF
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated check_policy_service unix:private/spfcheck
spfcheck_time_limit = 3600
重载配置:

# service postfix reload
现在 Postfix 每收到一封邮件都会进行 SPF 校验,然后在邮件头部加入类似 Received-SPF: pass 的信息。

DKIM 签名

DKIM 是另一种验证邮件有效性的方法。跟 SPF 不同,DKIM 在 DNS 公开一个公钥,然后用私钥对自己的邮件进行签名。收信者查询发信方域名获得公钥,然后校验签名是否有效。

为 Postfix 添加 DKIM 支持需要用到 opendkim 这个包。

安装 opendkim

# apt-get install opendkim opendkim-tools
配置 opendkim
打开 /etc/opendkim.conf,添加以下内容:
Domain example.com
KeyFile /etc/mail/dkim.key
Selector mail
Domain 为自己的域名,KeyFile 为域名对于的私钥,Selector 为公钥存放的主机名(这里设置为 mail._domainkey.example.com)。
打开 /etc/default/opendkim,添加以下内容:

SOCKET="inet:8891@localhost" # listen on loopback on port 8891
这里让 opendkim 的守护进程监听 8891 端口,用于和 Postfix 通信。

生成密钥:

# mkdir /etc/mail
# cd /etc/mail
# opendkim-genkey -s mail -d example.com
# cp mail.private dkim.key
查看 mail.txt 文件,里面有 dkim 的公钥,将它添加为 DNS TXT 记录,类似于:

mail._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=PpYHdE2tevfEpvL1Tk2dDYv0pF28/f5M..."
重启 opendkim:

# service opendkim restart

简单又直接的方法,直接关闭
echo "1" > /proc/sys/net/ipv6/conf/all/disable_ipv6

或者调整v4/v6的优先级
修改 /etc/gai.conf
将#precedence ::ffff:0:0/96 100
把前面的#去掉

直接一点就是
echo "precedence ::ffff:0:0/96 100">>/etc/gai.conf