« 风留给春天 | Main | 随便写下一句话…… »

笔记:大型ICP如何将qmail替换为postfix

假定你使用的是FreeBSD

0. 在测试服务器上测试postfix配置文件,确认其能够与qmail提供同样的服务。
1. 在第一台机器上执行下述操作:
1准备a:执行svc -d /services/qmail-smtpd,停止进信。
1准备b:执行qmailctl flush,下发所有邮件,等待队列空。

1a. 重新编译一份world和kernel(建议:升级到FreeBSD 6.0-RELEASE,a.k.a. RELENG_6_0)
1b. 执行make installkernel
1c. 重新启动,进入单用户,mount -u /, mount -a, mergemaster -p,合并用户和组的修改。
1d. 进入/usr/src,执行make installworld INSTALL=install
1e. 执行mergemaster -i,合并全部配置文件的修改。这一步骤将还原mailer.conf。
1f. 整理crontab,删除其中不合理的设置
1g. 使用find删除/bin, /lib, /libexec, /sbin, /usr/bin, /usr/sbin, /usr/lib, /usr/libexec, /usr/man, /usr/share中所有修改日期早于昨天的文件。这一步非常重要。
1h. 完全删除qmail:删除/var/qmail
1i. 删除全部ports:删除/var/db/pkg以及/usr/local;删除/command和/service
1j. 再次执行make installworld,以确认全部文件已经安装。
1k. 重新启动
2. 现在,被qmail挠的遍体鳞伤的系统得以恢复健康。将测试好的包复制上来,pkg_add,安装配置文件。
3. 重新启动系统。
4. 观察进信日志(/var/log/maillog)。

要点:
0. 邮件系统上的时间准确性至关重要,你应该使用ntpd来确保这一点。典型的/etc/ntp.conf如下:
server 131.107.1.10 prefer
server 129.6.15.28
server 129.6.15.29
server 132.163.4.101
server 132.163.4.102
server 132.163.4.103
server 128.138.140.44
server 192.43.244.18
server 66.243.43.21
server 208.184.49.9
server 207.126.98.204
server 207.200.81.113
server 205.188.185.33
然后再到/etc/rc.conf中加入:
ntpd_enable="YES"
ntpd_sync_on_start="YES"
注意第二句会确保系统启动时时间得以正确更新。否则需要再执行一次ntpdate。默认情况下,ntpd会缓慢地使始终同步,加入这一设置之后,ntpd在获得正确时间之后会立即设置时间,随后回到默认的时钟校准状态。

1. 通常,邮件服务器应保持健康的DNS连接。要做到这一点,推荐在本地执行一份bind作为cache:
cd /etc/namedb
sh make-localhost
然后,在/etc/rc.conf中加入:
named_enable="YES"

注意:默认的BIND配置只监听127.0.0.1,因此这不会引致远程攻击问题。另外,FreeBSD 6附带的bind版本已经相当安全。

2. postfix可以通过修改/etc/mail/mailer.conf来通过mailwrapper使用。我个人的经验,这种方式兼容性要更好一些。注意同时需要修改periodic.conf,方法参考port安装时显示的消息。

3. 所有东西从ports安装。不要问我从port以外的方式或者在Linux上面怎么装,除非你愿意出一个合适的价格。

4. 如果你的系统已经被qmail污染的乱七八糟,用下面的方法(在单用户模式)恢复/var/的清洁:
rm -fr /var/*
chflags -R 0 /var/*
rm -fr /var/*
mtree -deUf /etc/mtree/BSD.var.mtree -p /var
mtree -deUf /etc/mtree/BSD.sendmail.mtree -p /
newsyslog -C

5. 邮件服务器通常是全冗余结构。由于优秀的设计,在替换为postfix之后,可以放心地撤下至少1/3的服务器而不致导致负载能力不足的问题。不要一次完成所有替换,特别是历史比较长的系统,以免发生问题时难以应付。

6. 撰写这篇笔记是希望它能有用,也希望它有助于减少不理性的MTA的装机量,从而减少互联网上飞来飞去的垃圾邮件——除非你有兴趣维护像乞丐的百衲衣的千层补丁——但无论如何,把qmail换成postfix是一个降低运营和维护成本的好选择。

TrackBack

Listed below are links to weblogs that reference 笔记:大型ICP如何将qmail替换为postfix:

» 笔记:大型ICP如何将qmail替换为postfix from Loved Cat Diary
在delphij’s chaos上看到此文 ... [Read More]

Advertise

About

This page contains a single entry from the blog posted on November 27, 2005 4:12 AM.

The previous post in this blog was 风留给春天.

The next post in this blog is 随便写下一句话…….

Many more can be found on the main index page or by looking through the archives.

Creative Commons License
This weblog is licensed under a Creative Commons License.
Powered by
Movable Type 4.01