FreeBSD 6.0-RELEASE 发行版勘误

The FreeBSD Project

$FreeBSD: src/release/doc/zh_CN.GB2312/errata/article.sgml,v 1.2.2.2 2006/03/07 05:06:25 delphij Exp $

FreeBSD is a registered trademark of the FreeBSD Foundation.

Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium, and Xeon are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.

Sparc, Sparc64, SPARCEngine, and UltraSPARC are trademarks of SPARC International, Inc in the United States and other countries. Products bearing SPARC trademarks are based upon architecture developed by Sun Microsystems, Inc.

Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this document, and the FreeBSD Project was aware of the trademark claim, the designations have been followed by the “™” or the “®” symbol.


这份文档列出了 FreeBSD 6.0-RELEASE 的勘误内容, 其中包括在发行版发布之后发现的重大问题, 以及在发行版的交付工程后期本应写进发行版文档, 而没有来得及加入的重要信息。 这些信息可能包括安全公告, 以及关于可能影响软件和文档的操作或可用性的新闻。 在安装此版本的 FreeBSD 之前, 应首先阅读此文档的最新版本。

这份 FreeBSD 6.0-RELEASE 的勘误文档将持续地维护, 直到 FreeBSD 6.1-RELEASE 发布为止。


1 介绍

这份勘误文档包含了关于 FreeBSD 6.0-RELEASE 的 “最新重大新闻”。 在安装这一版本之前, 通过参考这份文档来了解在发布之后, 可能已经发现并修正的问题非常重要。

随发行版本而发布的这份文档 (例如, 在 CDROM 上附带的) 一般来说已经过时了, 但在 Internet 上的其他副本会被持续更新, 因此应作为这一发行版的 “最新勘误” 来看待。 这些勘误文档的副本, 可以在 http://www.FreeBSD.org/releases/, 以及所有其他保持与其同步的镜像上找到。

FreeBSD 6-STABLE 的源代码和预编译形式的快照中, 也会包含本文档 (在制作快照时) 的最新版本。

全部 FreeBSD CERT 安全公告的列表, 可以在 http://www.FreeBSD.org/security/ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/ 找到。


2 更新信息

无新闻。


3 安全公告

下列安全公告与 FreeBSD 6.0-RELEASE 有关。 要了解进一步的信息, 请从 ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/ 下载并阅读安全公告。

安全公告 日期 主题
06:10.nfs 2006 年 3 月 1 日

针对 NFS 服务器的远程拒绝服务攻击

06:07.pf 2006 年 1 月 25 日

pf(4) 中 IP 分片处理导致的 panic

06:06.kmem 2006 年 1 月 25 日

本地内核内存内容泄露

06:05.80211 2006 年 1 月 18日

IEEE 802.11 缓冲区溢出

06:04.ipfw 2006 年 1 月 11日

ipfw(4) IP 分片拒绝服务攻击

06:03.cpio 2006 年 1 月 11日

cpio(1) 中存在多处漏洞

06:02.eex 2006 年 1 月 11日

ee(1) 临时文件特权提升

06:01.texindex 2006 年 1 月 11日

Texindex 临时文件特权提升


4 已知问题和解决方法

(2005/11/26) 在 6.0-RELEASE 上, 以下 ipfw(4) 规则会以与先前版本不同的方式处理:

allow ipv6 from 192.168.0.2 to me

ipfw(4) 不支持 IPv6 时 (具体细节请参见下一个问题), ipfw(8) 会接受这个规则, 并阻止源地址为 192.168.0.2 的、 封装到 IPv4 包中的 IPv6 包 (IPv4-之上的-IPv6 隧道, 协议编号 41)。 如果它支持 IPv6, 则这表示一条允许来自 192.168.0.2 的 IPv6 包的规则, 而实际上 ipfw(8) 会拒绝这一规则, 因为其语法是错误的 (“来自 IPv4 地址的 IPv6 包” 不能存在)。 不幸的是, 并没有简单的办法来绕过这一问题。

目前 ipfw(4) 的 IPv6 支持仍然有很多不甚完善的地方, 由于两者之间的不兼容, 还存在许多其他问题。 要绕过这些问题, 您可以同时使用仅支持 IPv4 的 ipfw(4) ip6fw(8), 而不是包含 IPv6 支持的 ipfw(4), 这样能够最大限度地与先前的版本兼容。 要禁用 ipfw(4) 的 IPv6 支持, 您应使用 ipfw.ko 内核模块, 而不应使用内核编译配置选项 IPFIREWALL

(2005/11/19) 尽管 FreeBSD 6.0-RELEASE 的发行版说明表示 ipfw(4) 子系统已经能够支持 IPv6, 但同时使用 GENERIC 内核, 以及内核模块 ipfw.ko 时, 并不能在包过滤规则中支持 ip6 协议关键字。 这是因为内核编译配置文件中的选项 INET6 并不能为 ipfw.ko 的构建过程所识别。 要启用 ipfw(4) 的 IPv6 支持, 您需要将内核以同时包含选项 INET6IPFIREWALL 的方式重新构建, 而不是使用 ipfw.ko 模块。

(2005/11/16) 使用 if_bridge(4) 配合包过滤器, 如 ipfw(4) 以及 pf(4) 可能会使网络协议栈停止工作, 甚至导致系统在一段时间之后发生 panic。 这是由于它会为网络数据包分配 mbuf(9) 缓冲区, 但一直不释放它们, 这将最终耗竭全部的缓冲内存。 这一问题已经在 HEAD 以及 10:17:15 2005/11/16 UTC 之后的 RELENG_6 中修正。

(2005/11/16, 更新于 2005/11/19) 当 ipfw(4) divert 规则与协议关键字 ipall 联用时, IPv6 会在这一规则处被直接丢弃, 因为 divert(4) socket 并不支持 IPv6。 对于一台拥有 IPv4 和 IPv6 双协议栈, 并启用了 natd(8) 的机器而言这可能是一个严重的问题。 请注意内核模块 ipfw.ko 并没有这个问题, 因为它并不支持 IPv6。 要避免这一问题, 应使用专用于 IPv4 的 divert (转向) 规则, 例如 divert natd ipv4 来代替 divert natd all

(2005/11/6) FreeBSD 6.0-RELEASE 的发行版说明错误地说明了与 ipfw(8) 有关的一个内核选项为 IPFIRWALL_FORWARD。 正确的关键字应该是 IPFIREWALL_FORWARD

(2005/11/5) FreeBSD 6.0-RELEASE 的发行版说明错误地说明了集成到 FreeBSD 中的 OpenSSH 和 IPFilter 的版本分别是 4.1p1 和 4.1.18。 正确的版本应该是 4.2p1 和 4.1.8。

(2005/11/5) 在 6.0-RELEASE 的安装文件中提供了 CHECKSUM.MD5CHECKSUM.SHA256 来帮助验证数据完整性。 但是, 在 6.0-RELEASE 中的这些文件错误地包含了校验和文件本身的校验和。 尽管这种校验和看起来是不正确的, 但可以安全地忽略它们, 因为校验和文件的校验和与其所包含的其他的文件内容并不相关。 这一问题将在未来的发行版中修正。

(2005/11/5, 仅限于 FreeBSD/amd64) 在将 hwpmc(4) 日志文件转换为 gprof(1) 格式时, pmcstat(8) 工具尚无法处理 32-位 的可执行文件。

(2005/11/5, 仅限于 FreeBSD/powerpc) 下列 panic 可能在某些较早的 PowerMac G4 系统启动时发生:

...
KDB: current backend: ddb
panic: Assertion curthread != NULL failed at
/usr/src/sys/kern/kern_mutex.c:268
KDB: enter panic

这是一个已知但没有缓解方法的问题, 它将在下一个版本中修正。

(2005/11/5) 由于在 6.0-RELEASE 上 /usr/share/locale/*/LC_* 文件保存在磁盘上的格式发生了变化, 使用了 setlocale(3) 的第三方软件的本地化功能, 在从 5.x 系统上升级之后会无法再正常工作。 这包括那些在系统在运行 5.x 时通过 FreeBSD Ports 套件, 以及其他方式安装的软件。 要解决这个问题, 需要执行下列操作之一:

(2005/10/3) 如果机器没有 framebuffer, 在引导时 FreeBSD/sparc64 GENERIC 内核可能输出下列消息:

Aug 26 19:31:27 hostname getty[429]: open /dev/ttyv1: No such file or directory

这是因为没有提供支持的图形硬件的机器无法识别 syscons(4), 因此也就无法建立 /dev/ttyv* 设备节点。 这并不是一个致命的错误, 通过在 /etc/ttys 中禁用 /dev/ttyv* 项就可以阻止它们出现。

(2005/10/3) 在 FreeBSD/sparc64 上, 如果机器有超过 4GB 的内存, 就无法使用内核模块了。 除了事先将模块静态联编到内核中之外, 没有其他办法能够绕过这个问题。

(2005/10/3) kgdb(1) 工具在 FreeBSD/sparc64 上无法正确地对包含 trap 的 panic 进行调试。 要绕过这个问题您可以先安装 devel/gdb53


这份文档,以及其他与FreeBSD发行版本有关的文档,都可以在 http://www.FreeBSD.org/snapshots/下载。

在遇到关于FreeBSD的技术问题时,请首先阅读 文档 之后再考虑联系 <[email protected]>。

所有 FreeBSD 6-STABLE 的用户都应该订阅 <[email protected]> 邮件列表。

关于这份文档的任何问题,请致信 <[email protected]>。