第21章 其他文件系统
附录 D. OpenPGP 密钥
29.5.故障排除

29.5.1.为什么必须在自己站点的主机上使用 FQDN ?

你可能会发现主机实际上是在另外一个域里面,例如,如果你是在 foo.bar.edu 里,而你要找一台叫 mumble 的主机,它在 bar.edu 域里,你就必须用完整的域名 mumble.bar.edu,而不是用 mumble
传统上,这在 BSD BIND resolvers 中是可行的。然而目前随 FreeBSD 附带的 BIND 已不为同一域外提供缩写服务。所以,这个不完整的主机名 mumble 必须以 mumble.foo.bar.edu 这种形式才能被找到,或者将在根域中搜索它。
这跟以前的处理是不同的,以前版本将会继续寻找 mumble.bar.edumumble.edu 。如果你想要了解这种方式是否是好,或者它有什么安全方面的漏洞,请参阅 RFC 1535 文档。
如果你想要一个好的工作环境,你可以使用如下行:
1
search foo.bar.edu bar.edu
Copied!
替换先前旧的版本:
1
domain foo.bar.edu
Copied!
把这行放在你的 /etc/resolv.conf 文件中。然而,请一定要确定这样的搜寻顺序不会造成 RFC 1535 里提到的boundary between local and public administration问题。

29.5.2.如何在一个拨号 PPP 主机上运行一个邮件服务?

连接到 LAN 上的 FreeBSD 邮件网关。PPP 连接是非专用的。
一种方法是让一个专职服务器为域提供副 MX 服务。在此示例中,域为 example.com ,并且 ISP 已配置 example.net 以向该域提供副 MX 服务:
1
example.com. MX 10 example.com.
2
MX 20 example.net.
Copied!
只有一台主机被指定当做你的最终收信主机 (在 example.com 主机的 /etc/mail/sendmail.cf 文件中添加 Cw example.com )。
当 MTA 试图分发邮件的时候,它会尝试通过 PPP 连接到你 (example.com)。因为你并不在线,所以总是会得到一个超时的错误。MTA 将会把邮件发送到副 MX 主机,也就是说,你的互连网服务提供者 (example.net)。副 MX 主机将周期性的尝试连接并发送邮件到你的主机 (example.com)。
你或许需要使用下面的这个登录脚本:
1
#!/bin/sh
2
# Put me in /usr/local/bin/pppmyisp
3
( sleep 60 ; /usr/sbin/sendmail -q ) &
4
/usr/sbin/ppp -direct pppmyisp
Copied!
如果你想要为一个用户建立一个分开登录的脚本,你可以使用 sendmail -qRexample.com 替换上面的脚本。这样将使所有的邮件按照你的 example.com 队列立即被处理。
从 {freebsd-isp} 的例子中可以看到这种情况的进一步细化:
1
> 我们为用户提供副 MX 主机服务。用户每天都会上线好几次
2
> 并且自动把信件取回主 MX 主机
3
>(当有他们的邮件时我们并没有通知他们)。
4
> 我们的 mailqueue 程序每 30 分钟清一次邮件队列。那段时间他们
5
> 就必须上线 30 分钟以确保他们的信件送达他们的主 MX 主机。
6
>
7
> 有任何指令可以用 sendmail 寄出所有邮件么?
8
> 普通用户在我们的机器上当然没有 root 权限。
9
10
在 sendmail.cf 的 privacy flags 部分,有这样的设定
11
12
Opgoaway,restrictqrun
13
14
移除 restrictqrun 可以让非 root 用户启动队列处理的程序。
15
你可能也要重新安排你的 MX 设定。我们是用户的 MX 主机,
16
而且我们还设定了这个:
17
18
# If we are the best MX for a host, try directly instead of generating # local config error.
19
OwTrue
20
21
这样的话远程机器会直接把信送给你,而不会尝试连接你的用户的机器。
22
然后你就可以把邮件发送到你的用户。这个设定只对
23
主机有效,所以你必须要让你的用户在 DNS 中把他们的邮件主机设置为
24
customer.com 或者
25
hostname.customer.com 。只要为 customer.com 在 DNS
26
里添加一个 A 记录就可以了。
Copied!