aboutsummaryrefslogtreecommitdiff
path: root/zh_CN.GB2312/books/handbook
diff options
context:
space:
mode:
authorXin LI <delphij@FreeBSD.org>2010-02-12 23:30:09 +0000
committerXin LI <delphij@FreeBSD.org>2010-02-12 23:30:09 +0000
commitb99cff9689ba4596ab46054b9475e7a500715bfa (patch)
tree7b1011802062bbf2b221dfac8aa59a85fa6f942e /zh_CN.GB2312/books/handbook
parenteec9bd9b1c2ecfca090a9e7856a42dca4ac54522 (diff)
Notes
Diffstat (limited to 'zh_CN.GB2312/books/handbook')
-rw-r--r--zh_CN.GB2312/books/handbook/advanced-networking/chapter.sgml96
-rw-r--r--zh_CN.GB2312/books/handbook/audit/chapter.sgml31
-rw-r--r--zh_CN.GB2312/books/handbook/bibliography/chapter.sgml8
-rw-r--r--zh_CN.GB2312/books/handbook/book.sgml4
-rw-r--r--zh_CN.GB2312/books/handbook/config/chapter.sgml6
-rw-r--r--zh_CN.GB2312/books/handbook/cutting-edge/chapter.sgml25
-rw-r--r--zh_CN.GB2312/books/handbook/disks/chapter.sgml34
-rw-r--r--zh_CN.GB2312/books/handbook/eresources/chapter.sgml9
-rw-r--r--zh_CN.GB2312/books/handbook/filesystems/chapter.sgml12
-rw-r--r--zh_CN.GB2312/books/handbook/firewalls/chapter.sgml749
-rw-r--r--zh_CN.GB2312/books/handbook/geom/chapter.sgml31
-rw-r--r--zh_CN.GB2312/books/handbook/introduction/chapter.sgml26
-rw-r--r--zh_CN.GB2312/books/handbook/jails/chapter.sgml9
-rw-r--r--zh_CN.GB2312/books/handbook/kernelconfig/chapter.sgml10
-rw-r--r--zh_CN.GB2312/books/handbook/l10n/chapter.sgml27
-rw-r--r--zh_CN.GB2312/books/handbook/linuxemu/chapter.sgml6
-rw-r--r--zh_CN.GB2312/books/handbook/mac/chapter.sgml4
-rw-r--r--zh_CN.GB2312/books/handbook/mirrors/chapter.sgml373
-rw-r--r--zh_CN.GB2312/books/handbook/multimedia/chapter.sgml123
-rw-r--r--zh_CN.GB2312/books/handbook/network-servers/chapter.sgml14
-rw-r--r--zh_CN.GB2312/books/handbook/ports/chapter.sgml5
-rw-r--r--zh_CN.GB2312/books/handbook/printing/chapter.sgml17
-rw-r--r--zh_CN.GB2312/books/handbook/security/chapter.sgml75
-rw-r--r--zh_CN.GB2312/books/handbook/virtualization/chapter.sgml165
-rw-r--r--zh_CN.GB2312/books/handbook/x11/chapter.sgml146
25 files changed, 1103 insertions, 902 deletions
diff --git a/zh_CN.GB2312/books/handbook/advanced-networking/chapter.sgml b/zh_CN.GB2312/books/handbook/advanced-networking/chapter.sgml
index ab189cdf54..c9d1279f06 100644
--- a/zh_CN.GB2312/books/handbook/advanced-networking/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/advanced-networking/chapter.sgml
@@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Chinese Documentation Project
- Original revision: 1.425
+ Original revision: 1.426
$FreeBSD$
-->
@@ -1892,6 +1892,26 @@ freebsdap 00:11:95:c3:0d:ac 1 54M 22:1 100 EPS</screen>
</sect2>
<sect2>
+ <title>同时使用有线和无线连接</title>
+
+ <para>一般而言, 有线网络的速度更快而且更可靠,
+ 而无线网络则提供更好的灵活及机动性, 使用笔记本的用户,
+ 往往会希望结合两者的优点, 并能够在两种连接之间无缝切换。</para>
+
+ <para>在 &os; 上可以将多个网络接口合并到一起,
+ 并以 <quote>故障转移</quote> 的方式自动切换,
+ 也就是说, 这一组网络接口有一定的优先顺序,
+ 而操作系统在链路状态发生变化时则自动进行切换,
+ 例如当同时存在有线和无线连接的时候优先使用有线网络,
+ 而当有线网络断开时, 则自动切换到无线网络。</para>
+
+ <para>我们将在稍后的 <xref linkend="network-aggregation">
+ 中介绍链路聚合和故障转移, 并在
+ <xref linkend="networking-lagg-wired-and-wireless">
+ 中对这种配置方式进行示范。</para>
+ </sect2>
+
+ <sect2>
<title>故障排除</title>
<para>如果您在使用无线网络时遇到了麻烦,
@@ -3093,6 +3113,80 @@ lagg0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; metric 0 mtu 150
<replaceable>fxp0</replaceable> 的连接中断, 则 <replaceable>fxp1</replaceable>
会自动成为激活连接。 如果主端口的连接恢复, 则它又会成为激活连接。</para>
</example>
+ <example id="networking-lagg-wired-and-wireless">
+ <title>有线网络和无线网络接口间的自动切换</title>
+
+ <para>对于使用笔记本的用户来说, 通常会希望使用无线网络接口作为备用接口,
+ 以便在有线网络不可用时继续保持网络连接。 通过使用 &man.lagg.4;, 我们可以只使用一个
+ IP 地址的情况下, 优先使用性能和安全性都更好的有线网络,
+ 同时保持通过无线网络连接来传输数据的能力。</para>
+
+ <para>要实现这样的目的, 就需要将用于连接无线网络的物理接口的
+ <acronym>MAC</acronym> 地址修改为与所配置的 &man.lagg.4; 一致,
+ 后者是从主网络接口, 也就是有线网络接口, 继承而来。</para>
+
+ <para>在这个配置中, 我们将优先使用有线网络接口
+ <replaceable>bge0</replaceable> 作为主网络接口,
+ 而将无线网络接口
+ <replaceable>wlan0</replaceable> 作为备用网络接口。 这里的
+ <replaceable>wlan0</replaceable> 使用的物理设备是
+ <replaceable>iwn0</replaceable>,
+ 我们需要将它的 <acronym>MAC</acronym> 地址修改为与有线网络接口一致。
+ 为了达到这个目的首先要得到有线网络接口上的
+ <acronym>MAC</acronym> 地址:</para>
+
+ <screen>&prompt.root; <userinput>ifconfig <replaceable>bge0</replaceable></userinput>
+bge0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; metric 0 mtu 1500
+ options=19b&lt;RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4&gt;
+ ether 00:21:70:da:ae:37
+ inet6 fe80::221:70ff:feda:ae37%bge0 prefixlen 64 scopeid 0x2
+ nd6 options=29&lt;PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL&gt;
+ media: Ethernet autoselect (1000baseT &lt;full-duplex&gt;)
+ status: active</screen>
+
+ <para>您可能需要将 <replaceable>bge0</replaceable> 改为您系统上实际使用的接口,
+ 并从输出结果中的 <literal>ether</literal>
+ 这行找出有线网络的 <acronym>MAC</acronym> 地址。 接着是修改物理的无线网络接口,
+ <replaceable>iwn0</replaceable>:</para>
+
+ <screen>&prompt.root; <userinput>ifconfig <replaceable>iwn0</replaceable> ether <replaceable>00:21:70:da:ae:37</replaceable></userinput></screen>
+
+ <para>启用无线网络接口, 但不在其上配置 IP
+ 地址:</para>
+
+ <screen>&prompt.root; <userinput>ifconfig create <replaceable>wlan0</replaceable> wlandev <replaceable>iwn0</replaceable> ssid <replaceable>my_router</replaceable> up</userinput></screen>
+
+ <para>创建 &man.lagg.4; 接口, 其中 <replaceable>bge0</replaceable>
+ 作为主网络接口, 而以 <replaceable>wlan0</replaceable> 作为备选接口:</para>
+
+ <screen>&prompt.root; <userinput>ifconfig <replaceable>lagg0</replaceable> create</userinput>
+&prompt.root; <userinput>ifconfig <replaceable>lagg0</replaceable> up laggproto failover laggport <replaceable>bge0</replaceable> laggport <replaceable>wlan0</replaceable></userinput></screen>
+
+ <para>新创建的接口的状态如下, 您系统上的 <acronym>MAC</acronym>
+ 地址和设备名等可能会有所不同:</para>
+
+ <screen>&prompt.root; <userinput>ifconfig <replaceable>lagg0</replaceable></userinput>
+lagg0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; metric 0 mtu 1500
+ options=8&lt;VLAN_MTU&gt;
+ ether 00:21:70:da:ae:37
+ media: Ethernet autoselect
+ status: active
+ laggproto failover
+ laggport: wlan0 flags=0&lt;&gt;
+ laggport: bge0 flags=5&lt;MASTER,ACTIVE&gt;</screen>
+
+ <para>通过设置下列的
+ <filename>/etc/rc.conf</filename> 配置,
+ 可以避免每次启动系统时都手工重复上面的设置操作:</para>
+
+ <programlisting>ifconfig_bge0="up"
+ifconfig_iwn0="ether 00:21:70:da:ae:37"
+wlans_iwn0="wlan0"
+ifconfig_wlan0="WPA"
+cloned_interfaces="lagg0"
+ifconfig_lagg0="laggproto failover laggport bge0 laggport wlan0 DHCP"
+</programlisting>
+ </example>
</sect2>
</sect1>
diff --git a/zh_CN.GB2312/books/handbook/audit/chapter.sgml b/zh_CN.GB2312/books/handbook/audit/chapter.sgml
index bf5002cc26..4786685b88 100644
--- a/zh_CN.GB2312/books/handbook/audit/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/audit/chapter.sgml
@@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
- Original Revision: 1.33
+ Original Revision: 1.34
$FreeBSD$
-->
@@ -39,13 +39,13 @@ requirements. -->
<see>MAC</see>
</indexterm>
- <para>&os; 6.2 和更高版本中包含了对于细粒度安全事件审计的支持。
+ <para>&os; 中包含了对于细粒度安全事件审计的支持。
事件审计能够支持可靠的、 细粒度且可配置的, 对于各类与安全有关的系统事件,
- 包括登录、 配置变更, 以及文件和网络访问等的日志记录。
- 这些日志记录对于在正在运行的系统上实施监控、 入侵检测和事后分析都十分重要。
- &os; 实现了 Sun 所发布的
- <acronym>BSM</acronym> API 和文件格式, 并且与 &sun; 的 &solaris;
- 和 &apple; 的 &macos; X 审计实现兼容。</para>
+ 包括登录、 配置变更, 以及文件和网络访问等的日志记录。
+ 这些日志记录对于在正在运行的系统上实施监控、
+ 入侵检测和事后分析都十分重要。 &os; 实现了 Sun 所发布的
+ <acronym>BSM</acronym> API 和文件格式,
+ 并且与 &sun; 的 &solaris; 和 &apple; 的 &macos; X 审计实现兼容。</para>
<para>这一章的重点是安装和配置事件审计。 它介绍了事件策略, 并提供了一个审计的配置例子。</para>
@@ -84,13 +84,11 @@ requirements. -->
</itemizedlist>
<warning>
- <para>在 &os; 6.<replaceable>X</replaceable> 上的审计机制是试验性的,
- 在生产环境中部署之前, 应仔细评估部署试验性软件可能带来的风险。 已知的限制是,
- 并不是所有与安全有关的系统事件都是可审计的, 某些登录机制, 例如基于 X11
- 显示管理器, 以及第三方服务的登录机制, 都不会在用户的登录会话中正确配置审计。</para>
- </warning>
+ <para>审计机制中存在一些已知的限制,
+ 例如并不是所有与安全有关的系统事件都可以审计,
+ 另外某些登录机制, 例如基于 X11 显示管理器,
+ 以及第三方服务的登录机制, 都不会在用户的登录会话中正确配置审计。</para>
- <warning>
<para>安全审计机制能够对系统活动生成非常详细的记录信息: 在繁忙的系统中,
记帐数据如果配置不当会非常的大, 并在一周内迅速超过几个 GB 的尺寸。
管理员应考虑审计配置中的导致磁盘空间需求的这些问题。 例如,
@@ -168,10 +166,9 @@ requirements. -->
您应能看到一些名字以 <emphasis>audit</emphasis> 开头的文件,
例如 <filename>audit_event</filename>。</para>
- <para>用户空间对事件审计的支持已经作为 &os; 基本系统的一部分被安装。
- 在 &os; 7.0 和以后的版本中,内核对于事件审计的支持已被默认编译进内核。
- 对于 &os; 6.<replaceable>X</replaceable>
- 必须加入明确地把以下这行加入内核配置文件并编译。</para>
+ <para>对于审计功能的用户态支持目前是作为 &os; 基本系统的一部分来安装的。
+ 默认内核中也包含了对于事件审计的内核支持, 但如果您使用的是定制内核,
+ 就必须在内核配置文件中明确指定希望添加这一支持:</para>
<programlisting>options AUDIT</programlisting>
diff --git a/zh_CN.GB2312/books/handbook/bibliography/chapter.sgml b/zh_CN.GB2312/books/handbook/bibliography/chapter.sgml
index 3efec9995d..4e689ac5c2 100644
--- a/zh_CN.GB2312/books/handbook/bibliography/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/bibliography/chapter.sgml
@@ -1,7 +1,7 @@
<!--
The FreeBSD Chinese Documentation Project
- Original Revision: 1.86
+ Original Revision: 1.87
$FreeBSD$
-->
@@ -203,6 +203,12 @@
ISBN: 0072224096 </para>
</listitem>
+ <listitem>
+ <para><ulink url="http://www.bsdmag.org">BSD Magazine</ulink>,
+ 出版商: Software Press Sp. z o.o. SK.
+ ISSN 1898-9144</para>
+ </listitem>
+
</itemizedlist>
</sect1>
diff --git a/zh_CN.GB2312/books/handbook/book.sgml b/zh_CN.GB2312/books/handbook/book.sgml
index 3af207f334..7da9af3360 100644
--- a/zh_CN.GB2312/books/handbook/book.sgml
+++ b/zh_CN.GB2312/books/handbook/book.sgml
@@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Documentation Project
- Original Revision: 1.175
+ Original Revision: 1.176
$FreeBSD$
-->
@@ -80,6 +80,7 @@
<year>2007</year>
<year>2008</year>
<year>2009</year>
+ <year>2010</year>
<holder>The FreeBSD Documentation Project</holder>
</copyright>
@@ -94,6 +95,7 @@
<year>2007</year>
<year>2008</year>
<year>2009</year>
+ <year>2010</year>
<holder>&cnproj.freebsd.org;</holder>
</copyright>
diff --git a/zh_CN.GB2312/books/handbook/config/chapter.sgml b/zh_CN.GB2312/books/handbook/config/chapter.sgml
index 0d6c81080d..f00098a179 100644
--- a/zh_CN.GB2312/books/handbook/config/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/config/chapter.sgml
@@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Chinese Documentation Project
- Original Revision: 1.238
+ Original Revision: 1.239
$FreeBSD$
-->
@@ -2405,12 +2405,12 @@ kern.maxvnodes: 100000</screen>
提供了一个解释器 (<acronym>ACPI-CA</acronym>),
它在 Linux 和 NetBSD 也可以使用。
<acronym>ACPI-CA</acronym> 源代码可以在
- <filename role="directory">src/sys/contrib/dev/acpica</filename>
+ <filename class="directory">src/sys/contrib/dev/acpica</filename>
找到。 用于在 &os; 中允许 <acronym>ACPI-CA</acronym>
正确运转的代码则在
<filename>src/sys/dev/acpica/Osd</filename>。
最后, 用于实现 <acronym>ACPI</acronym> 设备的驱动可以在
- <filename role="directory">src/sys/dev/acpica</filename> 找到。</para>
+ <filename class="directory">src/sys/dev/acpica</filename> 找到。</para>
</sect2>
<sect2 id="ACPI-comprob">
diff --git a/zh_CN.GB2312/books/handbook/cutting-edge/chapter.sgml b/zh_CN.GB2312/books/handbook/cutting-edge/chapter.sgml
index 2680a8307f..90532b12ca 100644
--- a/zh_CN.GB2312/books/handbook/cutting-edge/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/cutting-edge/chapter.sgml
@@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
- Original Revision: 1.244
+ Original Revision: 1.246
$FreeBSD$
-->
@@ -177,8 +177,10 @@
<sect2 id="freebsdupdate-config-file">
<title>配置文件</title>
- <para>有些用户可能希望调整配置文件来更好的控制升级过程。
- 可用参数的文档非常齐全,
+ <para>有些用户可能希望通过调整配置文件
+ <filename>/etc/freebsd-update.conf</filename>
+ 中的默认配置来更好地控制升级的过程。
+ 可用的参数在文档中介绍的很详细,
但下面的这些可能需要进一步的解释:</para>
<programlisting># Components of the base system which should be kept updated.
@@ -612,9 +614,11 @@ Fetching 133 new ports or files... done.</screen>
发现并校验了几个用于当前 ports 的补丁。这还表明以前运行过,
如果是第一次运行的话,那么仅仅只会下载 Ports Collection。</para>
- <para>在 &man.portsnap.8; 成功完成一次
- <command>fetch</command> 操作后,而且本地系统上的 Ports Collection
- 和随之而来的补丁通过校验以后。键入以下命令安装更新文件:</para>
+ <para>在 &man.portsnap.8; 成功地完成一次
+ <command>fetch</command> 操作之后,
+ 会将校验过的 Ports 套件和后续的补丁保存在本地。
+ 首次执行 <command>portsnap</command> 之后,
+ 需要用 <literal>extract</literal> 来安装这份快照中的文件:</para>
<screen>&prompt.root; <userinput>portsnap extract</userinput>
/usr/ports/.cvsignore
@@ -630,10 +634,17 @@ Fetching 133 new ports or files... done.</screen>
/usr/ports/Mk/bsd.cmake.mk
<replaceable>...</replaceable></screen>
+ <para>以后运行 <command>portsnap fetch</command> 之后, 则只需使用
+ <literal>update</literal> 安装更新即可:</para>
+
+ <screen>&prompt.root; <userinput>portsnap update</userinput></screen>
+
<para>至此更新就完成了,然后便可以使用更新后的
Ports Collection 来安装或升级应用程序。</para>
- <para>可以使用如下的命令让这个过程连续的运行:</para>
+ <para><literal>fetch</literal> 和 <literal>extract</literal> 或
+ <literal>update</literal> 可以作为连续的动作执行,
+ 如下例所示:</para>
<screen>&prompt.root; <userinput>portsnap fetch update</userinput></screen>
</sect1>
diff --git a/zh_CN.GB2312/books/handbook/disks/chapter.sgml b/zh_CN.GB2312/books/handbook/disks/chapter.sgml
index 663d2feaac..a9f2a2ce06 100644
--- a/zh_CN.GB2312/books/handbook/disks/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/disks/chapter.sgml
@@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
- Original Revision: 1.291
+ Original Revision: 1.293
$FreeBSD$
-->
@@ -147,7 +147,8 @@
<secondary>添加</secondary>
</indexterm>
- <para>假设我们要给一台只有一个磁盘的机器增加一个新的 SCSI 磁盘。首先
+ <para>下面这节将会介绍如何在一台只有一块磁盘的机器上新增一块
+ <acronym>SCSI</acronym> 磁盘。 首先
需要关掉计算机,然后按操作规程来安装驱动器,控制器和驱动程序。由于
各厂家生产的产品各不相同,具体的安装细节不在此文档介绍之内。</para>
@@ -1409,6 +1410,35 @@ cd0: Attempt to query device size failed: NOT READY, Medium not present - tray c
可以使用 <option>-speed=</option>
参数。更多的信息,请看 &man.growisofs.1;
联机手册。</para>
+
+ <note>
+ <para>如果需要在刻录的编录中添加超过 4.38GB 的单个文件,
+ 就必须使用 &man.mkisofs.8; 或其他相关工具
+ (例如 &man.growisofs.1;) 的 <option>-udf -iso-level
+ 3</option> 参数来创建 UDF/ISO-9660 混合文件系统。
+ 只有在创建 ISO 映像文件或直接在盘上写数据时才需要这样做。
+ 以这种方式创建的光盘必须通过 &man.mount.udf.8; 工具以 UDF
+ 文件系统挂载, 因此只有操作系统支持 UDF 时才可以这样做,
+ 否则盘上的文件数据可能会无法正确读出。</para>
+
+ <para>要创建这样的 ISO 文件:</para>
+
+ <screen>&prompt.user; <userinput>mkisofs -R -J -udf -iso-level 3 -o <replaceable>imagefile.iso</replaceable> <replaceable>/path/to/data</replaceable></userinput></screen>
+
+ <para>直接将文件刻录到光盘上:</para>
+
+ <screen>&prompt.root; <userinput>growisofs -dvd-compat -udf -iso-level 3 -Z <replaceable>/dev/cd0</replaceable> -J -R <replaceable>/path/to/data</replaceable></userinput></screen>
+
+ <para>假如只是使用包含巨型文件的 ISO 映像文件时, 就不需要在运行
+ &man.growisofs.1; 来将映像文件刻录成光盘时指定任何额外的选项了。</para>
+
+ <para>另外, 在映像文件中增加或直接刻录巨型文件时, 还需要注意使用最新的
+ <filename role="package">sysutils/cdrtools</filename> (包含了
+ &man.mkisofs.8;), 因为旧版并不提供巨型文件支持。 如果您遇到问题,
+ 也可以尝试一下开发版本的软件包, 例如 <filename
+ role="package">sysutils/cdrtools-devel</filename> 并参阅
+ &man.mkisofs.8; 联机手册。</para>
+ </note>
</sect2>
<indexterm>
diff --git a/zh_CN.GB2312/books/handbook/eresources/chapter.sgml b/zh_CN.GB2312/books/handbook/eresources/chapter.sgml
index f3ca415a49..9d20d26358 100644
--- a/zh_CN.GB2312/books/handbook/eresources/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/eresources/chapter.sgml
@@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
- Original Revision: 1.199
+ Original Revision: 1.200
$FreeBSD$
-->
@@ -675,6 +675,13 @@
</row>
<row>
+ <entry>&a.svn-src-stable-8.name;</entry>
+ <entry><filename>/usr/src</filename></entry>
+ <entry>所有对 Subversion 源码仓库中有关
+ <filename>stable/8</filename> 分支的改变记录</entry>
+ </row>
+
+ <row>
<entry>&a.svn-src-stable-other.name;</entry>
<entry><filename>/usr/src</filename></entry>
<entry>所有对 Subversion 源码仓库中早期
diff --git a/zh_CN.GB2312/books/handbook/filesystems/chapter.sgml b/zh_CN.GB2312/books/handbook/filesystems/chapter.sgml
index a38c97c27c..a8560eebf8 100644
--- a/zh_CN.GB2312/books/handbook/filesystems/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/filesystems/chapter.sgml
@@ -1,6 +1,6 @@
<!--
The FreeBSD Documentation Project
- Original Revision: 1.8
+ Original Revision: 1.9
$FreeBSD$
-->
@@ -87,16 +87,6 @@
(<xref linkend="disks">)。</para>
</listitem>
</itemizedlist>
-
- <!--
- Temporary warning to avoid listing experimental versions
- and production versions of FreeBSD with this technology.
- -->
- <warning>
- <para><acronym>ZFS</acronym> 特性目前仍被认为是试验性的。
- 有些选项功能性缺失,另有一些可能还无法运行。最终,
- 这个特性会适合用于生产,届时这篇文档也会做些适当的修改。</para>
- </warning>
</sect1>
<sect1 id="filesystems-zfs">
diff --git a/zh_CN.GB2312/books/handbook/firewalls/chapter.sgml b/zh_CN.GB2312/books/handbook/firewalls/chapter.sgml
index 4cc104167d..5abb6a09e8 100644
--- a/zh_CN.GB2312/books/handbook/firewalls/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/firewalls/chapter.sgml
@@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
- Original Revision: 1.86
+ Original Revision: 1.92
$FreeBSD$
-->
@@ -112,21 +112,32 @@
</indexterm>
<para>建立防火墙规则集的基本方法有两种:
- <quote>包容式的</quote> 或 <quote>排斥式的</quote>。
- 排斥式的防火墙, 允许除了禁止的那些数据之外的所有网络流量通过。
- 包容式的防火墙正好相反。 后者只允许符合规则的流量通过,
+ <quote>明示允许 (inclusive)</quote>型 或
+ <quote>明示禁止 (exclusive)</quote>型。 明示禁止的防火墙规则,
+ 默认允许所有数据通过防火墙, 而这种规则集中定义的,
+ 则是不允许通过防火墙的流量, 换言之,
+ 与这些规则不匹配的数据, 全部是允许通过防火墙的。
+ 明示允许的防火墙正好相反, 它只允许符合规则集中定义规则的流量通过,
而其他所有的流量都被阻止。</para>
- <para>包容式防火墙一般说来要比排斥式防火墙安全,
- 因为他们显著地降低了由于允许不希望的网络流量通过所带来的风险。</para>
+ <para>明示允许型防火墙能够提供对于传出流量更好的控制,
+ 这使其更适合那些直接对 Internet 公网提供服务的系统的需要。
+ 它也能够控制来自 Internet 公网到您的私有网络的访问类型。
+ 所有和规则不匹配的流量都会被阻止并记录在案。
+ 一般来说明示允许防火墙要比明示禁止防火墙更安全,
+ 因为它们显著地减少了允许不希望的流量通过可能造成的风险。</para>
- <para>如果使用了 <quote>带状态功能的防火墙 (stateful
- firewall)</quote>, 则安全机制可以进一步地细化。
- 带状态功能的防火墙能够记录通过防火墙的连接,
+ <note>
+ <para>除非特别说明,
+ 这一章的配置和示范的规则集都是创建明示允许防火墙的。</para>
+ </note>
+
+ <para>使用了 <quote>带状态功能的防火墙 (stateful
+ firewall)</quote>, 可以进一步地收紧安全机制。
+ 这种防火墙能够记录通过防火墙的连接,
进而只允许与现有连接匹配的连接, 或创建新的连接。
- 带状态功能的防火墙的缺点, 则是在很短时间内有大量的连接请求时,
- 它们可能会受到拒绝服务
- (<acronym>DoS</acronym>) 攻击。
+ 带状态功能的防火墙的缺点是, 在很短时间内有大量的连接请求时,
+ 它们可能会受到拒绝服务 (<acronym>DoS</acronym>) 攻击。
绝大多数防火墙都提供了同时启用两种防火墙的能力,
以便为站点提供更好的保护。</para>
</sect1>
@@ -144,8 +155,8 @@
&man.altq.4; 和 &man.dummynet.4;。 Dummynet 在过去一直和
<acronym>IPFW</acronym> 紧密集成, 而
<acronym>ALTQ</acronym> 则需要配合
- <acronym>PF</acronym> 使用。 <acronym>IPFILTER</acronym>
- 对于流量整形可以使用 <acronym>IPFILTER</acronym> 的 NAT
+ <acronym>PF</acronym> 使用。 IPFILTER
+ 的流量整形功能可以使用 IPFILTER 的 NAT
和过滤功能以及 <acronym>IPFW</acronym> 的 &man.dummynet.4; 配合,
<emphasis>或者</emphasis> 使用 <acronym>PF</acronym> 跟
<acronym>ALTQ</acronym> 的组合。
@@ -161,7 +172,7 @@
<para>由于所有的防火墙都基于检查所选定的包控制字段来实现功能,
撰写防火墙规则集时, 就必须了解
- <acronym>TCP</acronym>/IP 是如何工作的,
+ <acronym>TCP/IP</acronym> 是如何工作的,
以及包的控制字段在正常会话交互中的作用。
您可以在这个网站找到一份很好的解释文档:
<ulink
@@ -210,20 +221,24 @@
url="http://pf4freebsd.love2party.net/"></ulink>。</para>
<sect2>
- <title>使用 PF 可装载的内核模块</title>
-
- <para>从 &os;&nbsp;5.3;开始,PF
- 作为一个单独的运行时可装载的模块被收录进基本的安装系统。
- 在 &man.rc.conf.5; 加入如下的语句能让系统能够动态装载 PF
- 内核模块,<literal>pf_enable="YES"</literal>。
- 然而如果系统无法找到一份 <acronym>PF</acronym>
- 防火墙规则的配置文件,<acronym>PF</acronym> 模块则不会被加载。
- 配置文件默认的位置在 <filename>/etc/pf.conf</filename>。
- 如果你的 <acronym>PF</acronym> 规则存放在其他的位置,
- 那么就需要在 <filename>/etc/rc.conf</filename>
- 配置文件中加入以下语句
- <literal>pf_rules="<replaceable>/path/pf.rules</replaceable>"</literal>
- 来指定一份。</para>
+ <title>使用 PF 可加载的内核模块</title>
+
+ <para>要加载 PF 内核模块, 可以在
+ <filename>/etc/rc.conf</filename> 中加入下面的设置:</para>
+
+ <programlisting>pf_enable="YES"</programlisting>
+
+ <para>然后使用启动脚本来加载模块:</para>
+
+ <screen>&prompt.root; <userinput>/etc/rc.d/pf start</userinput></screen>
+
+ <para>需要说明的是, 如果系统中没有规则集配置文件,
+ 则上述操作不会加载 PF 模块。 配置文件的默认位置是
+ <filename>/etc/pf.conf</filename>。 如果 PF 规则集在其他位置,
+ 可以用下面的
+ <filename>/etc/rc.conf</filename> 配置来告诉 PF:</para>
+
+ <programlisting>pf_rules="<replaceable>/path/to/pf.conf</replaceable>"</programlisting>
<note>
<para>从 &os;&nbsp;7.0 开始,作为例子的存放在
@@ -234,13 +249,22 @@
<filename>/etc/pf.conf</filename>。</para>
</note>
- <para><acronym>PF</acronym> 模块也能从命令行手工加载:</para>
+ <para><acronym>PF</acronym> 模块也可以手工从命令行加载:</para>
<screen>&prompt.root; <userinput>kldload pf.ko</userinput></screen>
- <para>可装载的摸块默认由 &man.pflog.4; 提供日志记录。
- 如果你需要 <acronym>PF</acronym> 其他的特性,
- 你可能需要把 <acronym>PF</acronym> 编译进内核。</para>
+ <para>PF 的日志记录功能是由
+ <literal>pflog.ko</literal> 提供的, 通过在
+ <filename>/etc/rc.conf</filename> 中加入下面的设置:</para>
+
+ <programlisting>pflog_enable="YES"</programlisting>
+
+ <para>然后使用启动脚本来加载模块:</para>
+
+ <screen>&prompt.root; <userinput>/etc/rc.d/pflog start</userinput></screen>
+
+ <para>如果您需要其他 <acronym>PF</acronym> 特性,
+ 则需要将 <acronym>PF</acronym> 支持联编进内核。</para>
</sect2>
<sect2>
@@ -266,11 +290,11 @@
<para>虽然你不必亲自把对 <acronym>PF</acronym> 的支持编译进 &os;
内核,但是有时你仍然需要这么做来使用到 PF
- 的某些没有被收录进可装载模块的高级特性,比如 &man.pfsync.4;
+ 的某些没有被收录进可加载模块的高级特性,比如 &man.pfsync.4;
伪设备用来发送某些改变到<acronym>PF</acronym> 状态表。
它能配合 &man.carp.4; 使用 PF 建立支持故障转移的防火墙。
- 更多有关 <acronym>CARP</acronym> 的详细信息可以参阅
- <link linkend="carp">第 29 章</link>。</para>
+ 更多有关 <acronym>CARP</acronym> 的详细信息可以参阅本手册的
+ <xref linkend="carp">。</para>
<para>The <acronym>PF</acronym> kernel options can be found in
<filename>/usr/src/sys/conf/NOTES</filename> and are reproduced
@@ -333,24 +357,9 @@ pflog_flags="" # 启动时传递给 pflogd 的其他选项</programlisting
<warning>
<para>在浏览 <ulink
url="http://www.openbsd.org/faq/pf/">PF FAQ</ulink> 时,
- 请时刻注意不同版本的 &os; 使用了不同版本的 PF:</para>
-
- <itemizedlist>
- <listitem>
- <para>&os;&nbsp;5.<replaceable>X</replaceable> &mdash;
- <acronym>PF</acronym> 相当于 OpenBSD&nbsp;3.5</para>
- </listitem>
-
- <listitem>
- <para>&os;&nbsp;6.<replaceable>X</replaceable> &mdash;
- <acronym>PF</acronym> 相当于 OpenBSD&nbsp;3.7</para>
- </listitem>
-
- <listitem>
- <para>&os;&nbsp;7.<replaceable>X</replaceable> &mdash;
- <acronym>PF</acronym> 相当于 OpenBSD&nbsp;4.1</para>
- </listitem>
- </itemizedlist>
+ 请时刻注意不同版本的 &os; 可能会使用不同版本的 PF。 目前,
+ &os;&nbsp;7.<replaceable>X</replaceable> 和更高版本使用的是与
+ OpenBSD&nbsp;4.1 相同的 <acronym>PF</acronym>版本。</para>
</warning>
<para>&a.pf; 是一个提有关配置使用 <acronym>PF</acronym>
@@ -399,7 +408,7 @@ pflog_flags="" # 启动时传递给 pflogd 的其他选项</programlisting
<row>
<entry><command>pfctl <option>-vnf</option> /etc/pf.conf</command></entry>
<entry>检查 <filename>/etc/pf.conf</filename>
- 中的错误,但不装载相关的规则</entry>
+ 中的错误,但不加载相关的规则</entry>
</row>
</tbody>
</tgroup>
@@ -430,26 +439,26 @@ options ALTQ_NOPCC # 在联编 SMP 内核时必须使用,禁止读时钟</program
<acronym>ALTQ</acronym> 框架的支持。</para>
<para><literal>options ALTQ_CBQ</literal>
- 用于启用基于分类的队列 (<acronym>CBQ</acronym>) 支持。 <acronym>CBQ</acronym>
+ 用于启用 <emphasis>基于分类的队列</emphasis> (<acronym>CBQ</acronym>) 支持。 <acronym>CBQ</acronym>
允许您将连接分成不同的类别, 或者说, 队列,
以便在规则中为它们指定不同的优先级。</para>
<para><literal>options ALTQ_RED</literal>
- 将启用随机预检测 (<acronym>RED</acronym>)。
+ 将启用 <emphasis>随机预检测</emphasis> (<acronym>RED</acronym>)。
<acronym>RED</acronym> 是一种用于防止网络拥塞的技术。
<acronym>RED</acronym> 度量队列的长度,
并将其与队列的最大和最小长度阈值进行比较。
如果队列过长, 则新的包将被丢弃。
如名所示, <acronym>RED</acronym> 从不同的连接中随机地丢弃数据包。</para>
- <para><literal>options ALTQ_RIO</literal> 将启用出入的随机预检测。</para>
+ <para><literal>options ALTQ_RIO</literal> 将启用 <emphasis>出入的随机预检测</emphasis>。</para>
<para><literal>options ALTQ_HFSC</literal>
- 启用层次式公平服务平滑包调度器。
+ 启用 <emphasis>层次式公平服务平滑包调度器</emphasis>。
要了解关于 <acronym>HFSC</acronym> 进一步的信息, 请参见 <ulink
url="http://www-2.cs.cmu.edu/~hzhang/HFSC/main.html"></ulink>。</para>
- <para><literal>options ALTQ_PRIQ</literal> 启用优先队列
+ <para><literal>options ALTQ_PRIQ</literal> 启用 <emphasis>优先队列</emphasis>
(<acronym>PRIQ</acronym>)。 <acronym>PRIQ</acronym>
首先允许高优先级队列中的包通过。</para>
@@ -470,10 +479,6 @@ options ALTQ_NOPCC # 在联编 SMP 内核时必须使用,禁止读时钟</program
<secondary>IPFILTER</secondary>
</indexterm>
- <note>
- <para>这一节的内容正在撰写中。 其内容可能不总是十分准确。</para>
- </note>
-
<para>IPFILTER 的作者是 Darren Reed。 IPFILTER 是独立于操作系统的:
它是一个开放源代码的应用, 并且已经被移植到了 &os;、 NetBSD、
OpenBSD、 SunOS、 HP/UX, 以及 Solaris 操作系统上。
@@ -494,24 +499,13 @@ options ALTQ_NOPCC # 在联编 SMP 内核时必须使用,禁止读时钟</program
IPF 被逐渐增强, 并加入了 <quote>quick</quote> 选项,
以及支持状态的 <quote>keep
state</quote> 选项, 这使得规则处理逻辑变得更富有现代气息。
- IPF 的官方文档介绍了传统的规则编写方法和文件处理逻辑。
+ IPF 的官方文档只介绍了传统的规则编写方法和文件处理逻辑。
新增的功能只是作为一些附加的选项出现, 如果能完全理解这些功能,
则对于建立更安全的防火墙就很有好处。</para>
<para>这一节中主要是针对 <quote>quick</quote> 选项,
以及支持状态的 <quote>keep state</quote> 选项的介绍。
- 这是包容式防火墙规则集最基本的编写要素。</para>
-
- <!-- XXX: something like this already in
- <xref linkend="firewalls-concepts">
- AND: the para below is repeated 3 times in this chapter-->
-
- <para>包容式防火墙只允许与规则匹配的包通过。 这样,
- 您就既能够控制来自防火墙后面的机器请求 Internet 公网上的那些服务,
- 同时也可以控制来自 Internet 的请求能够访问内部网上的哪些服务。
- 所有其它的访问请求都会被阻止, 并记录下来。
- 包容式防火墙一般而言要远比排斥式的要安全,
- 而且也只需要定义允许哪些访问通过。</para>
+ 这是明示允许防火墙规则集最基本的编写要素。</para>
<para>要获得关于传统规则处理方式的详细信息,
请参考: <ulink
@@ -537,13 +531,14 @@ options ALTQ_NOPCC # 在联编 SMP 内核时必须使用,禁止读时钟</program
<para>IPF 作为 &os; 基本安装的一部分,
以一个独立的内核模块的形式提供。
- 如果在 rc.conf 中配置了 <literal>
- ipfilter_enable="YES"</literal>,
+ 如果在 <filename>rc.conf</filename> 中配置了
+ <literal>ipfilter_enable="YES"</literal>,
系统就会自动地动态加载 IPF 内核模块。
这个内核模块在创建时启用了日志支持, 并加入了 <literal>default
pass all</literal> 选项。 如果只是需要把默认的规则设置为
- <literal>block all</literal> 的话, 并不需要把 IPF
- 编译到内核中。 可以简单地通过把这条规则加入自己的规则集来达到同样的目的。</para>
+ <literal>block all</literal> 的话, 就不需要把 IPF 编译到内核中。
+ 简单地通过把 <literal>block all</literal>
+ 这条规则加入自己的规则集来达到同样的目的。</para>
</sect2>
<sect2>
@@ -596,13 +591,13 @@ options IPFILTER_DEFAULT_BLOCK</programlisting>
将改变防火墙的默认动作, 进而, 所有不匹配防火墙的 <literal>pass</literal>
规则的包都会被阻止。</para>
- <para>这些选项只有在您重新编译并安装内核之后才会生效。</para>
+ <para>这些选项只有在您重新编译并安装了上述配置的内核之后才会生效。</para>
</sect2>
<sect2>
<title>可用的 rc.conf 选项</title>
- <para>要在启动时激活 IPF, 您需要在 <filename>/etc/rc.conf</filename>
+ <para>要在启动时激活 IPF, 需要在 <filename>/etc/rc.conf</filename>
中增加下面的设置:</para>
<programlisting>ipfilter_enable="YES" # 启动 ipf 防火墙
@@ -613,19 +608,20 @@ ipmon_flags="-Ds" # D = 作为服务程序启动
# v = 记录 tcp 窗口大小、 ack 和顺序号(seq)
# n = 将 IP 和端口映射为名字</programlisting>
- <para>如果您的 LAN 在防火墙后面, 并且使用了保留的私有 IP 地址范围,
- 那就需要增加下面的一些选项来启用 <acronym>NAT</acronym> 功能:</para>
+ <para>如果在防火墙后面有使用了保留的私有 IP 地址范围的 LAN,
+ 还需要增加下面的一些选项来启用 <acronym>NAT</acronym> 功能:</para>
<programlisting>gateway_enable="YES" # 启用作为 LAN 网关的功能
ipnat_enable="YES" # 启动 ipnat 功能
ipnat_rules="/etc/ipnat.rules" # 用于 ipnat 的规则定义文件</programlisting>
+ </sect2>
<sect2>
<title>IPF</title>
<indexterm><primary><command>ipf</command></primary></indexterm>
- <para>ipf 命令可以用来加载您自己的规则文件。 一般情况下,
+ <para>&man.ipf.8; 命令可以用来加载您自己的规则文件。 一般情况下,
您可以建立一个包括您自定义的规则的文件,
并使用这个命令来替换掉正在运行的防火墙中的内部规则:</para>
@@ -689,7 +685,7 @@ ipnat_rules="/etc/ipnat.rules" # 用于 ipnat 的规则定义文件</programlisting>
<para>如果使用了 <option>-i</option> (进入流量)
或者 <option>-o</option> (输出流量),
- 它就只获取并显示内核中所安装的对应过滤器规则的统计数据。</para>
+ 这个命令就只获取并显示内核中所安装的对应过滤器规则的统计数据。</para>
<para><command>ipfstat -in</command> 以规则号的形式显示进入的内部规则表。</para>
@@ -733,7 +729,8 @@ ipnat_rules="/etc/ipnat.rules" # 用于 ipnat 的规则定义文件</programlisting>
</indexterm>
<para>为了使 <command>ipmon</command> 能够正确工作,
- 必须打开 IPFILTER_LOG 这个内核选项。 这个命令提供了两种不同的使用模式。
+ 必须打开 <literal>IPFILTER_LOG</literal> 这个内核选项。
+ 这个命令提供了两种不同的使用模式。
内建模式是默认的模式, 如果您不指定
<option>-D</option> 参数, 就会采用这种模式。</para>
@@ -741,9 +738,9 @@ ipnat_rules="/etc/ipnat.rules" # 用于 ipnat 的规则定义文件</programlisting>
您就可以通过查看日志来了解过去曾经发生过的事情。
这种模式是 &os; 和 IPFILTER 配合工作的模式。
由于在 &os; 中提供了一个内建的系统日志自动轮转功能,
- 因此, 使用 syslogd 比默认的将日志信息记录到一个普通文件要好。
- 在默认的 <filename>rc.conf</filename> 文件中, 您会看到一个
- ipmon_flags 语句, 指定了 <option>-Ds</option> 标志:</para>
+ 因此, 使用 &man.syslogd.8; 比默认的将日志信息记录到一个普通文件要好。
+ 在默认的 <filename>rc.conf</filename> 文件中,
+ <literal>ipmon_flags</literal> 语句会指定 <option>-Ds</option> 标志:</para>
<programlisting>ipmon_flags="-Ds" # D = 作为服务程序启动
# s = 使用 syslog 记录
@@ -760,7 +757,7 @@ ipnat_rules="/etc/ipnat.rules" # 用于 ipnat 的规则定义文件</programlisting>
<para>作为惯例, 通常会有一条默认的、拒绝所有网络流量的规则,
并指定 log 关键字, 作为您的规则集的最后一条。
- 这样, 您就能够看到所有没有匹配任何规则的数据包。</para>
+ 这样就能够看到所有没有匹配任何规则的数据包了。</para>
</sect2>
<sect2>
@@ -786,7 +783,7 @@ LOG_ERR - 进一步记录含不完整的包头的数据包</screen>
<screen>&prompt.root; <userinput>touch /var/log/ipfilter.log</userinput></screen>
- <para>syslog 功能可以通过在 <filename>/etc/syslog.conf</filename> 文件中的语句来定义。
+ <para>&man.syslogd.8; 功能可以通过在 <filename>/etc/syslog.conf</filename> 文件中的语句来定义。
<filename>syslog.conf</filename> 提供了相当多的用以控制 syslog
如何处理类似 IPF 这样的用用程序所产生的系统消息的方法。</para>
@@ -799,14 +796,13 @@ LOG_ERR - 进一步记录含不完整的包头的数据包</screen>
表示把所有的相关日志信息写到指定的文件中。</para>
<para>要让 <filename>/etc/syslog.conf
- </filename> 中的修改立即生效, 您可以重新启动计算机, 或者通过执行
+ </filename> 中的修改立即生效, 可以重新启动计算机, 或者通过执行
<command>/etc/rc.d/syslogd reload</command>
来让它重新读取 <filename>/etc/syslog.conf</filename>。</para>
<para>不要忘了修改 <filename>/etc/newsyslog.conf
- </filename> 来让您刚创建的日志进行轮转。</para>
-
- </sect2>
+ </filename> 来让刚创建的日志进行轮转。</para>
+ </sect2>
<sect2>
<title>记录消息的格式</title>
@@ -849,18 +845,18 @@ LOG_ERR - 进一步记录含不完整的包头的数据包</screen>
<listitem>
<para>地址。 这实际上包括三部分:
源地址和端口 (以逗号分开), 一个 -&gt;
- 符号, 以及目的地址和端口。
- 209.53.17.22,80 -> 198.73.220.17,1722.</para>
+ 符号, 以及目的地址和端口, 例如:
+ <literal>209.53.17.22,80 -&gt; 198.73.220.17,1722</literal>。</para>
</listitem>
<listitem>
<para><literal>PR</literal>, 后跟协议名称或编号,
- 例如, PR tcp。</para>
+ 例如: <literal>PR tcp</literal>。</para>
</listitem>
<listitem>
<para><literal>len</literal>, 后跟包头的长度, 以及包的总长度,
- 例如 len 20 40。</para>
+ 例如: <literal>len 20 40</literal>。</para>
</listitem>
</orderedlist>
@@ -878,14 +874,14 @@ LOG_ERR - 进一步记录含不完整的包头的数据包</screen>
<title>构建采用符号替换的规则脚本</title>
<para>一些有经验的 IPF 会创建包含规则的文件,
- 并把它编写成能够与符号替换脚本兼容的方式。 这样做最大的好处是,
- 它能够让您只修改符号名字所代表的值,
+ 并把它编写成能够与符号替换脚本兼容的方式。
+ 这样做最大的好处是能够在修改时只修改符号名字所代表的值,
而在脚本执行时直接替换掉所有的名符。
- 作为脚本, 您可以使用符号替换来把那些经常使用的值直接用于多个规则。
- 下面我们将给出一个例子。</para>
+ 作为脚本, 可以使用符号替换来把那些经常使用的值直接用于多个规则。
+ 下面将给出一个例子。</para>
- <para>这个脚本所使用的语法与 sh、 csh,
- 以及 tcsh 脚本。</para>
+ <para>这个脚本所使用的语法与 &man.sh.1;、 &man.csh.1;,
+ 以及 &man.tcsh.1; 脚本。</para>
<para>符号替换的前缀字段是美元符号: <literal>&dollar;</literal>。</para>
@@ -957,7 +953,7 @@ EOF
来禁止系统启动脚本开启 IPFILTER。</para>
<para>在
- <filename>/usr/local/etc/rc.d/</filename>
+ <filename class="directory">/usr/local/etc/rc.d/</filename>
启动目录中增加一个类似下面的脚本。
应该给它起一个显而易见的名字, 例如
<filename>ipf.loadrules.sh</filename>。
@@ -981,20 +977,15 @@ sh /etc/ipf.rules.script</programlisting>
<sect2>
<title>IPF 规则集</title>
- <!-- XXX: looks incorrect (and duplicated 2 times in this chapter):
- 1. Packet can be processed two times depend of firewall
- firewall configuration, but "return trip back" is
- another packet.
- 2. "Each TCP/IP service ... is predefined by its protocol ..."
- - this shold be about packet and it's parameters
- (source/destination address and port). -->
-
- <para>规则集是指一组编写好的依据包的值决策允许通过或阻止 ipf 规则。
- 包的双向交换组成了一个会话交互。 防火墙规则集对同一个包会进行两次处理,
- 第一次是它从公网的 Internet 主机到达的时候, 第二次是它离开并返回初始的
- Internet 公网主机的时候。 每一个 TCP/IP 服务 (例如 telnet, www,
- 邮件等等) 是由协议预先定义的源或目的 IP 地址, 以及源或目的端口。
- 这是最基本的一些可以为防火墙规则所利用的, 判别是否允许服务通过的标准。</para>
+ <para>规则集是指一组编写好的依据包的值决策允许通过或阻止 IPF 规则。
+ 包的双向交换组成了一个会话交互。 防火墙规则集会作用于来自于
+ Internet 公网的包以及由系统发出来回应这些包的数据包。
+ 每一个 <acronym>TCP/IP</acronym> 服务 (例如 telnet, www,
+ 邮件等等) 都由协议预先定义了其特权 (监听) 端口。
+ 发到特定服务的包会从源地址使用非特权 (高编号) 端口发出,
+ 并发到特定服务在目的地址的对应端口。
+ 所有这些参数 (例如: 端口和地址)
+ 都是可以为防火墙规则所利用的, 判别是否允许服务通过的标准。</para>
<indexterm>
<primary>IPFILTER</primary>
@@ -1011,17 +1002,7 @@ sh /etc/ipf.rules.script</programlisting>
<para>这一节中提供的一些指导,
是基于使用包含 <quote>quick</quote> 选项和有状态的
<quote>keep state</quote> 选项来进行阐述的。
- 这些是编写包容式防火墙规则集的基本要素。</para>
-
- <!-- XXX: something like this already in
- <xref linkend="firewalls-concepts">
- AND: the para below is repeated 3 times in this chapter-->
- <para>包容式防火墙只允许与规则匹配的服务通过。 这样,
- 您就既能够控制来自防火墙后面的机器请求 Internet 公网上的那些服务,
- 同时也可以控制来自 Internet 的请求能够访问内部网上的哪些服务。
- 所有其它的访问请求都会被阻止, 并记录下来。
- 包容式防火墙一般而言要远比排斥式的要安全,
- 而且也只需要定义允许哪些访问通过。</para>
+ 这些是编写明示允许防火墙规则集的基本要素。</para>
<warning>
<para>当对防火墙规则进行操作时, 应该
@@ -1103,7 +1084,8 @@ sh /etc/ipf.rules.script</programlisting>
<sect3>
<title>IN-OUT</title>
<para>每个过滤器规则都必须明确地指定是流入还是流出的规则。
- 下一个关键字必须要么是 in, 要么是 out,
+ 下一个关键字必须要么是 <literal>in</literal>,
+ 要么是 <literal>out</literal>,
否则将无法通过语法检查。</para>
<para><literal>in</literal> 表示规则应被应用于刚刚从 Internet
@@ -1135,20 +1117,21 @@ sh /etc/ipf.rules.script</programlisting>
则规则只会应用到某一个网络接口上的出入数据包上。
要配置新式的处理逻辑, 必须使用这个选项。</para>
- <para>当记录包时, 包的头会被写入到 IPL 包日志伪设备中。
- 紧跟 log 关键字, 可以使用下面几个修饰符
+ <para>当记录包时, 包的头会被写入到 <acronym>IPL</acronym> 包日志伪设备中。
+ 紧跟 <literal>log</literal> 关键字, 可以使用下面几个修饰符
(按照下列顺序):</para>
<para><literal>body</literal> 表示应同时记录包的前 128 字节的内容。</para>
<para><literal>first</literal> 如果 <literal>log</literal> 关键字和
- <quote>keep state</quote> 选项同时使用,
+ <literal>keep state</literal> 选项同时使用,
则这个选项只在第一个包上触发, 这样就不用记录每一个
<quote>keep state</quote> 包信息了。</para>
</sect3>
<sect3>
<title>SELECTION</title>
+
<para>这一节所介绍的关键字可以用于所检察的包的属性。
有一个关键字主题, 以及一组子选项关键字,
您必须从他们中选择一个。 以下是一些通用的属性,
@@ -1174,36 +1157,38 @@ sh /etc/ipf.rules.script</programlisting>
<para>使用 <literal>all</literal> 关键词, 基本上相当于 <quote>from
any to any</quote> 在没有配合其他关键字的情形。</para>
- <para><literal>from src to dst</literal>: from 和 to
- 关键字主要是用来匹配 IP 地址。 所有的规则都必须同时给出源和目的两个参数。
+ <para><literal>from src to dst</literal>: <literal>from</literal> 和 <literal>to</literal>
+ 关键字主要是用来匹配 IP 地址。 所有的规则都必须
+ <emphasis>同时</emphasis> 给出源和目的两个参数。
<literal>any</literal> 是一个可以用于匹配任意 IP 地址的特殊关键字。
- 例如, 您可以使用 <quote>from any to any</quote> 或 <quote>from
- 0.0.0.0/0 to any</quote> 或 <quote>from any to 0.0.0.0/0</quote> 或 <quote>from
- 0.0.0.0 to any</quote> 以及 <quote>from any to 0.0.0.0</quote>。</para>
-
- <!-- XXX: Needs rewording -->
- <para>IP 地址可以按句点分隔的 IP 地址/掩码长度 的方式来指定,
- 也可以只指定一个句点分隔的 IP 地址。</para>
+ 例如, 您可以使用 <literal>from any to any</literal> 或 <literal>from
+ 0.0.0.0/0 to any</literal> 或 <literal>from any to 0.0.0.0/0</literal> 或 <literal>from
+ 0.0.0.0 to any</literal> 以及 <literal>from any to 0.0.0.0</literal>。</para>
<para>如果无法使用子网掩码来表示 IP 的话, 表达地址就会很麻烦。
- 请参见下面的网页了解如何撰写掩码长度:
+ 使用 <filename
+ role="package">net-mgmt/ipcalc</filename> port 可以帮助进行计算。
+ 请参见下面的网页了解如何撰写长度掩码:
<ulink url="http://jodies.de/ipcalc"></ulink>。</para>
</sect3>
<sect3>
<title>PORT</title>
- <para>如果为源或目的指定了匹配端口, 规则就只能应用于 <acronym>TCP</acronym> 和
- <acronym>UDP</acronym> 包了。 当编写端口比较规则时,
- 可以指定 <filename>/etc/services</filename> 中所定义的名字,
+
+ <para>如果为源或目的指定了匹配端口, 规则就只能应用于
+ <acronym>TCP</acronym> 和 <acronym>UDP</acronym> 包了。
+ 当编写端口比较规则时, 可以指定
+ <filename>/etc/services</filename> 中所定义的名字,
也可以直接用端口号来指定。 如果端口号出现在源对象一侧,
则被认为是源端口号; 反之, 则被认为是目的端口号。
要使用新式的规则处理逻辑,
- 就必须与 <literal>to</literal> 对象配合使用这个选项。
- 使用的例子: <quote>from any to any port = 80</quote>。</para>
+ 就必须与 <literal>to</literal> 对象配合使用这个选项。 使用的例子:
+ <literal>from any to any port = 80</literal></para>
- <!-- XXX: Needs rewriting -->
- <para>端口的比较是以数字的形式进行的, 可以使用比较算符来指定,
- 也可以指定一个范围。</para>
+ <!-- XXX: Rewritten, but probably needs more changes -->
+
+ <para>对单个端口的比较可以多种方式进行, 并可使用不同的比较算符。
+ 此外, 还可以指定端口的范围。</para>
<para>port "=" | "!=" | "&lt;" | "&gt;" | "&lt;=" | "&gt;=" |
"eq" | "ne" | "lt" | "gt" | "le" | "ge".</para>
@@ -1218,11 +1203,13 @@ sh /etc/ipf.rules.script</programlisting>
<sect3>
<title><acronym>TCP</acronym>_FLAG</title>
- <para>标志只对 <acronym>TCP</acronym> 过滤使用。
+
+ <para>标志只对 <acronym>TCP</acronym> 过滤有用。
这些字母用来表达 <acronym>TCP</acronym> 包头的标志。</para>
- <para>新式的规则处理逻辑使用 <literal>flags
- S</literal> 参数来识别 tcp 会话开始的请求。</para>
+ <para>新式的规则处理逻辑使用
+ <literal>flags S</literal> 参数来识别 tcp
+ 会话开始的请求。</para>
</sect3>
<sect3>
@@ -1245,7 +1232,9 @@ sh /etc/ipf.rules.script</programlisting>
<secondary>有状态过滤</secondary>
</indexterm>
+
<!-- XXX: duplicated -->
+
<para>有状态过滤将网络流量当作一种双向的包交换来处理。
如果激活它, keep-state 会动态地为每一个相关的包在双向会话交互过程中产生内部规则。
它能够确认发起者和包的目的地之间的会话是有效的双向包交换过程的一部分。
@@ -1259,14 +1248,15 @@ sh /etc/ipf.rules.script</programlisting>
<para>所发生的事情是:</para>
- <para>将要通过联入公网的网络接口发出的包, 首先会经过动态状态表的检查。
- 如果包与会话中预期的下一个包匹配, 则防火墙就会允许包通过,
- 而会话的交互流信息也会在动态状态表中进行更新, 而其他的包,
- 则将使用发出规则集来检查。</para>
+ <para>将要通过连入 Internet 公网的网络接口发出的包,
+ 首先会经过动态状态表的检查。 如果包与会话中预期的下一个包匹配,
+ 防火墙就会允许包通过, 并更新状态表中的会话的交互流信息。
+ 不属于活跃会话的包, 则简单地交给输出规则集去检查。</para>
- <para>发到联入 Internet 公网的包, 也会首先经过动态规则表的检查。
- 如果与会话中预期的下一个包匹配, 则防火墙就允许它通过,
- 并更新动态状态表。 其他包仍会使用进入规则集进行检查。</para>
+ <para>发到连入 Internet 公网接口的包, 也会先经过动态状态表的检查。
+ 如果包与会话中预期的下一个包匹配,
+ 防火墙就会允许包通过, 并更新状态表中的会话的交互流信息。
+ 不属于活跃会话的包, 则简单地交给输入规则集去检查。</para>
<para>当会话结束时, 对应的项会在动态状态表中删除。</para>
@@ -1280,24 +1270,30 @@ sh /etc/ipf.rules.script</programlisting>
<sect2>
<!-- XXX: This section needs a rewrite -->
- <title>包容式规则集的例子</title>
+ <title>明示允许规则集的例子</title>
- <para>下面的规则集是如何编写非常安全的包容式防火墙规则集的一个范例。
- 包容式防火墙只让允许的服务通过, 而所有其他的访问都会被默认地拒绝。
- 所有的防火墙都有至少两个接口对应的默认规则, 从而使防火墙能够正常工作。</para>
+ <para>下面的规则集是如何编写非常安全的明示允许防火墙规则集的一个范例。
+ 明示允许防火墙只让允许的服务 <literal>pass</literal> (通过),
+ 而所有其他的访问都会被默认地拒绝。 期望用来保护其他机器的防火墙,
+ 通常也叫做 <quote>网络防火墙</quote>, 应使用至少两个网络接口,
+ 并且通常只有一个接入到受信的一端 (<acronym>LAN</acronym>),
+ 而另一块则接入不受信的一端 (Internet 公网)。 另外,
+ 防火墙也可以配置为只保护它所运行的那个系统 &mdash; 这种类型称作
+ <quote>主机防火墙</quote>, 通常在接入不受信网络的服务器上使用。</para>
- <para>所有的类 &unix; 系统, 包括 &os; 都使用
+ <para>包括 &os; 在内的所有类 &unix; 系统通常都会使用
<devicename>lo0</devicename> 和 IP 地址
<hostid role="ipaddr">127.0.0.1</hostid> 用于操作系统中内部的通讯。
防火墙规则必须允许这些包无阻碍地通过。</para>
<para>接入 Internet 公网的网络接口, 是放置规则并允许将访问请求发到
- Internet 以及接收响应的地方。
- 这有可能是用户模式的 PPP <devicename>tun0</devicename> 接口,
+ Internet 以及接收响应的地方。 这有可能是用户模式的 PPP
+ <devicename>tun0</devicename> 接口,
如果您的网卡同 DSL 或电缆调制解调器相联的话。</para>
- <para>如果有至少一个网卡与防火墙后的内网 LAN 相联,
- 这些网络接口就应该有一个规则来允许来自这些 LAN 接口的包无阻碍地通过。</para>
+ <para>如果有网卡是直接接入私有网段的,
+ 这些网络接口就可能需要配置允许来自这些 LAN 的包在彼此之间,
+ 以及到外界 (Internet) 上的对应的通过规则。</para>
<para>一般说来, 规则应被组织为三个主要的小节:
所有允许自由通过的接口规则, 发到公网接口的规则,
@@ -1307,33 +1303,30 @@ sh /etc/ipf.rules.script</programlisting>
而最后一个规则应该是阻止包通过, 并记录它们。</para>
<para>下面防火墙规则集中, Outbound 部分是一些使用
- 'pass' 的规则, 这些规则指定了允许访问的公网
- Internet 服务, 并且指定了 'quick'、 'on'、
- 'proto'、 'port', 以及 'keep state' 这些选项。 'proto
- tcp' 规则还指定了 'flag' 这个选项, 这样会话的第一个包将出发状态机制。</para>
-
- <para>接下来的 Inbound 一节, 则首先阻止所有不希望的数据包。
- 这样做有两个原因, 其一是被阻止的包可能会被后面的规则允许,
- 从而并不妨碍获得授权的服务正常工作;
- 其二是这避免了那些不常见的包由于匹配到最后一条规则而触发日志,
- 规则集中的最后一条规则是阻止并记录所有的包,
- 通过这样的记录, 就比较容易找到攻击系统的人,
- 并为采取法律措施收集证据。</para>
-
- <para>需要注意的另一件事情是, 如果收到了不希望的数据包,
- 则这些包会被丢弃, 而不是给出什么响应。 这样做的好处是,
- 攻击者无法了解包是否已经被您的系统收到。
- 攻击者所能了解到的信息越少,
- 攻陷您的系统所需要花费的时间也就越长。
- 我们在这里记录的连入的 'nmap OS 指纹' 探测企图,
-
- <!-- XXX: what? -->
-
- 一般来说正是攻击者所做的第一件事。</para>
-
- <para>如果您看到了 'log first' 规则的日志,
- 就应该用 <command>ipfstat -hio</command> 命令来看看那个规则被匹配的次数,
- 以便了解系统是否正在或曾被攻击。</para>
+ <literal>pass</literal> 的规则, 这些规则指定了允许访问的公网
+ Internet 服务, 并且指定了 <literal>quick</literal>、 <literal>on</literal>、
+ <literal>proto</literal>、 <literal>port</literal>, 以及 <literal>keep state</literal> 这些选项。 <literal>proto
+ tcp</literal> 规则还指定了 <literal>flag</literal> 这个选项, 这样会话的第一个包将出发状态机制。</para>
+
+ <para>接收部分则首先阻止所有不希望的包, 这样做有两个不同的原因。
+ 其一是恶意的包可能和某些允许的流量规则存在部分匹配, 而我们希望阻止,
+ 而不是让这些包仅仅与 <literal>allow</literal> 规则部分匹配就允许它们进入。
+ 其二是, 已经确信要阻止的包被拒绝这件事, 往往并不是我们需要关注的,
+ 因此只要简单地予以阻止即可。
+ 防火墙规则集中的每个部分的最后一条规则都是阻止并记录包,
+ 这有助于为逮捕攻击者留下法律所要求的证据。</para>
+
+ <para>另外一个需要注意的事情是确保系统对不希望的数据包不做回应。
+ 无效的包应被丢弃和消失。 这样, 攻击者便无法知道包是否到达了您的系统。
+ 攻击者对系统了解的越少, 攻陷系统所需的时间也就越多。
+ 包含 <literal>log first</literal> 选项的规则只会记录它们第一次被触发时的包,
+ 在例子中这个选项被用于记录 <literal>nmap OS 指纹探测</literal> 规则。
+ <filename role="package">security/nmap</filename>
+ 是攻击者常用的一种用于探测目标系统所用操作系统的工具。</para>
+
+ <para>如果您看到了 <literal>log first</literal> 规则的日志,
+ 就应该用 <command>ipfstat -hio</command> 命令来看看那个规则被匹配的次数。
+ 如果数目较大, 则表示系统正在受到洪水式攻击。</para>
<para>如果记录的包的端口号并不是您所知道的,
可以在 <filename>/etc/services</filename> 或 <ulink
@@ -1344,10 +1337,10 @@ sh /etc/ipf.rules.script</programlisting>
url="http://www.simovits.com/trojans/trojans.html"></ulink>。</para>
<para>下面是我在自己的系统中使用的完整的, 非常安全的
- '包容式' 防火墙规则集。 直接使用这个规则集不会给您造成问题,
- 您所要做的只是注释掉那些您不需要的服务。</para>
+ <literal>明示允许</literal> 防火墙规则集。 直接使用这个规则集不会给您造成问题,
+ 您所要做的只是注释掉那些您不需要 <literal>pass</literal>(允许通过) 的服务。</para>
- <para>如果在日志中发现了希望阻止的记录, 只需在
+ <para>如果在日志中发现了希望 <literal>阻止</literal> 的记录, 只需在
inbound 小节中增加一条阻止规则集可。</para>
<para>您必须将每一个规则中的 <devicename>dc0</devicename>
@@ -1373,9 +1366,9 @@ pass out quick on lo0 all
#################################################################
# Interface facing Public Internet (Outbound Section)
-# Interrogate session start requests originating from behind the
+# Match session start requests originating from behind the
# firewall on the private network
-# or from this gateway server destine for the public Internet.
+# or from this gateway server destined for the public Internet.
#################################################################
# Allow out access to my ISP's Domain name server.
@@ -1410,38 +1403,38 @@ pass out quick on dc0 proto tcp from any to any port = 37 flags S keep state
# Allow out nntp news
pass out quick on dc0 proto tcp from any to any port = 119 flags S keep state
-# Allow out gateway &amp; LAN users non-secure FTP ( both passive &amp; active modes)
+# Allow out gateway &amp; LAN users' non-secure FTP ( both passive &amp; active modes)
# This function uses the IP<acronym>NAT</acronym> built in FTP proxy function coded in
# the nat rules file to make this single rule function correctly.
# If you want to use the pkg_add command to install application packages
# on your gateway system you need this rule.
pass out quick on dc0 proto tcp from any to any port = 21 flags S keep state
-# Allow out secure FTP, Telnet, and SCP
+# Allow out ssh/sftp/scp (telnet/rlogin/FTP replacements)
# This function is using SSH (secure shell)
pass out quick on dc0 proto tcp from any to any port = 22 flags S keep state
-# Allow out non-secure Telnet
+# Allow out insecure Telnet
pass out quick on dc0 proto tcp from any to any port = 23 flags S keep state
-# Allow out FBSD CVSUP function
+# Allow out FreeBSD CVSup
pass out quick on dc0 proto tcp from any to any port = 5999 flags S keep state
# Allow out ping to public Internet
pass out quick on dc0 proto icmp from any to any icmp-type 8 keep state
-# Allow out whois for LAN PC to public Internet
+# Allow out whois from LAN to public Internet
pass out quick on dc0 proto tcp from any to any port = 43 flags S keep state
# Block and log only the first occurrence of everything
# else that's trying to get out.
-# This rule enforces the block all by default logic.
+# This rule implements the default block
block out log first quick on dc0 all
#################################################################
# Interface facing Public Internet (Inbound Section)
-# Interrogate packets originating from the public Internet
-# destine for this gateway server or the private network.
+# Match packets originating from the public Internet
+# destined for this gateway server or the private network.
#################################################################
# Block all inbound traffic from non-routable or reserved address spaces
@@ -1512,9 +1505,8 @@ pass in quick on dc0 proto tcp from any to any port = 22 flags S keep state
# Block and log only first occurrence of all remaining traffic
# coming into the firewall. The logging of only the first
-# occurrence stops a .denial of service. attack targeted
-# at filling up your log file space.
-# This rule enforces the block all by default logic.
+# occurrence avoids filling up disk with Denial of Service logs.
+# This rule implements the default block.
block in log first quick on dc0 all
################### End of rules file #####################################</programlisting>
</sect2>
@@ -1561,17 +1553,9 @@ block in log first quick on dc0 all
在离开防火墙时转换为公网的 IP 地址。 此外, 当数据包返回时,
也将进行逆向的转换。</para>
- <para><acronym>NAT</acronym> 通常是在没有向 ISP 请求许可,
- 或事先知会的情况下进行的, 因而如果被发现,
- 有时可能会成为 ISP 撤销您的账号的一个借口。
- 商业用户一般来说会购买昂贵得多的 Internet 线路,
- 通常会获得一组长期有效的静态 IP 地址块。 ISP
- 一般会希望并同意商业用户在他们的内网中使用
- <acronym>NAT</acronym>。</para>
-
<para>在 IP 地址空间中, 有一些特殊的范围是保留供经过
<acronym>NAT</acronym> 的内网 LAN IP 地址使用的。 根据
- RFC 1918, 您可以使用下面这些 IP 范围用于内网,
+ RFC 1918, 可以使用下面这些 IP 范围用于内网,
它们不会在 Internet 公网上路由:</para>
<informaltable frame="none" pgwide="1">
@@ -1630,7 +1614,7 @@ block in log first quick on dc0 all
<para>如果在 <acronym>NAT</acronym> 已经启动之后想要修改
<acronym>NAT</acronym> 规则, 可以修改保存 NAT 规则的那个文件,
- 然后在执行 ipnat 命令时加上 <option>-CF</option> 参数,
+ 然后在执行 <command>ipnat</command> 命令时加上 <option>-CF</option> 参数,
以删除在用的 <acronym>NAT</acronym> 内部规则表,
以及所有地址翻译表中已有的项。</para>
@@ -1691,7 +1675,7 @@ block in log first quick on dc0 all
<acronym>NAT</acronym> 接下来会根据包对应的接口名字和源
IP 地址检查所有的规则。 如果包和某个 <acronym>NAT</acronym>
规则匹配, 则会检查包的
- [源 IP 地址, 例如, 内网的 IP 地址] 是否在
+ (源 IP 地址, 例如, 内网的 IP 地址) 是否在
<acronym>NAT</acronym> 规则中箭头左侧指定的 IP 地址范围匹配。
如果匹配, 则包的原地址将被根据用 <literal>0/32</literal>
关键字指定的 IP 地址重写。
@@ -1742,8 +1726,8 @@ block in log first quick on dc0 all
<programlisting>map dc0 192.168.1.0/24 -&gt; 0/32</programlisting>
<para>上面的规则中, 包的源端口在包通过 IP<acronym>NAT</acronym>
- 时时不会发生变化的。 通过使用 portmap 关键字, 您可以要求
- IP<acronym>NAT</acronym> 只使用一定范围内的端口地址。
+ 时时不会发生变化的。 通过使用 <literal>portmap</literal> 关键字, 您可以要求
+ IP<acronym>NAT</acronym> 只使用指定范围内的端口地址。
比如说, 下面的规则将让
IP<acronym>NAT</acronym> 把源端口改为指定范围内的端口:</para>
@@ -1862,7 +1846,7 @@ block in log first quick on dc0 all
<para>如果使用了
<acronym>NAT</acronym> FTP 代理, 则只需要为 FTP 创建一个规则。</para>
- <para>如果没有使用 FTP 代理, 则需要下面三个规则:</para>
+ <para>如果不使用 FTP 代理, 就需要下面这三个规则:</para>
<programlisting># Allow out LAN PC client FTP to public Internet
# Active and passive modes
@@ -1886,7 +1870,7 @@ pass in quick on rl0 proto tcp from any to any port = 20 flags S keep state</pro
<secondary>IPFW</secondary>
</indexterm>
- <para>IPFIREWALL (IPFW) 是一个由 &os; 发起的防火墙应用软件,
+ <para>IPFIREWALL (<acronym>IPFW</acronym>) 是一个由 &os; 发起的防火墙应用软件,
它由 &os; 的志愿者成员编写和维护。
它使用了传统的无状态规则和规则编写方式,
以期达到简单状态逻辑所期望的目标。</para>
@@ -1909,9 +1893,9 @@ pass in quick on rl0 proto tcp from any to any port = 20 flags S keep state</pro
<para>IPFW 由七个部分组成, 其主要组件是内核的防火墙过滤规则处理器,
及其集成的数据包记帐工具、 日志工具、 用以触发
- <acronym>NAT</acronym> 工具的 'divert' (转发) 规则、
+ <acronym>NAT</acronym> 工具的 <literal>divert</literal> (转发) 规则、
高级特殊用途工具、 dummynet 流量整形机制,
- 'fwd rule' 转发工具, 桥接工具, 以及 ipstealth 工具。
+ <literal>fwd rule</literal> 转发工具, 桥接工具, 以及 ipstealth 工具。
IPFW 支持 IPv4 和 IPv6。</para>
<sect2 id="firewalls-ipfw-enable">
@@ -1983,7 +1967,8 @@ net.inet.ip.fw.verbose_limit=5</programlisting>
<programlisting>options IPFIREWALL_VERBOSE</programlisting>
- <para>这个选项将启用记录通过 IPFW 的匹配了包含 'log' 关键字规则的每一个包的功能。</para>
+ <para>这个选项将启用记录通过 IPFW 的匹配了包含
+ <literal>log</literal> 关键字规则的每一个包的功能。</para>
<programlisting>options IPFIREWALL_VERBOSE_LIMIT=5</programlisting>
@@ -2014,9 +1999,10 @@ net.inet.ip.fw.verbose_limit=5</programlisting>
功能。</para>
<note>
- <para>如果内核选项中没有加入 IPFIREWALL_DEFAULT_TO_ACCEPT,
- 或将您的防火墙设置配置为允许所有的进入包,
- 则所有发到本机或发出的包都会被阻止。</para>
+ <para>如果内核选项中没有加入
+ <literal>IPFIREWALL_DEFAULT_TO_ACCEPT</literal>,
+ 而配置使用的规则集中也没有明确地指定允许连接进入的规则,
+ 默认情况下, 发到本机和从本机发出的所有包都会被阻止。</para>
</note>
</sect2>
@@ -2054,7 +2040,7 @@ net.inet.ip.fw.verbose_limit=5</programlisting>
<para><literal>UNKNOWN</literal> &mdash; 禁止加载防火墙规则。</para>
</listitem>
<listitem>
- <para><filename>filename</filename> &mdash; 到防火墙规则文件的绝对路径。</para>
+ <para><filename><replaceable>filename</replaceable></filename> &mdash; 到防火墙规则文件的绝对路径。</para>
</listitem>
</itemizedlist>
@@ -2063,66 +2049,22 @@ net.inet.ip.fw.verbose_limit=5</programlisting>
命令行选项的 <emphasis>防火墙规则</emphasis>
文件的完整路径。 下面是一个简单的规则集例子:</para>
- <programlisting>add block in all
-add block out all</programlisting>
+ <programlisting>add deny in
+add deny out</programlisting>
<para>除此之外, 也可以将
<literal>firewall_script</literal> 变量设为包含
<command>ipfw</command> 命令的可执行脚本,
这样这个脚本会在启动时自动执行。 与前面规则集文件等价的规则脚本如下:</para>
- <programlisting>#!/bin/sh
-
-ipfw -q flush
-
-ipfw add block in all
-ipfw add block out all</programlisting>
-
- <note>
- <para>如果 <literal>firewall_type</literal> 设为
- <literal>client</literal> 或 <literal>simple</literal>,
- 则还应查看在 <filename>/etc/rc.firewall</filename>
- 中的默认规则, 以确认它们与所在机器的配置相一致。
- 此外, 请注意这一章中的例子均假定 <literal>firewall_script</literal> 是
- <filename>/etc/ipfw.rules</filename>。</para>
- </note>
-
- <para>启用日志:</para>
-
- <programlisting>firewall_logging="YES"</programlisting>
-
- <warning>
- <para>设置
- <varname>firewall_logging</varname> 的唯一作用是,
- 系统将把 <varname>net.inet.ip.fw.verbose</varname> sysctl
- 变量置为 <literal>1</literal> (参见 <xref
- linkend="firewalls-ipfw-enable">)。 并没有能够设置日志限制的
- <filename>rc.conf</filename> 变量, 不过这种限制可以通过设置某些 sysctl
- 变量来完成, 可以手工进行操作, 也可以写到
- <filename>/etc/sysctl.conf</filename> 文件中:</para>
-
- <programlisting>net.inet.ip.fw.verbose_limit=5</programlisting>
- </warning>
-
- <para>如果您的计算机是作为网关使用的, 也就是它通过 &man.natd.8;
- 提供网络地址翻译 (NAT),
- 请参见 <xref linkend="network-natd"> 以了解需要在
- <filename>/etc/rc.conf</filename> 中配置的选项。</para>
- </sect2>
-
- <sect2 id="firewalls-ipfw-cmd">
- <title>IPFW 命令</title>
-
- <indexterm><primary><command>ipfw</command></primary></indexterm>
-
- <para>ipfw 命令是在防火墙运行时,
+ <para><command>ipfw</command> 命令是在防火墙运行时,
用于在其内部规则表中手工逐条添加或删除防火墙规则的标准工具。
这一方法的问题在于, 一旦您的关闭计算机或停机,
则所有增加或删除或修改的规则也就丢掉了。
把所有的规则都写到一个文件中, 并在启动时使用这个文件来加载规则,
或一次大批量地替换防火墙规则, 那么推荐使用这里介绍的方法。</para>
- <para>ipfw 的另一个非常实用的功能是将所有正在运行的防火墙规则显示出来。
+ <para><command>ipfw</command> 的另一个非常实用的功能是将所有正在运行的防火墙规则显示出来。
IPFW 的记账机制会为每一个规则动态地创建计数器,
用以记录与它们匹配的包的数量。 在测试规则的过程中,
列出规则及其计数器是了解它们是否工作正常的重要手段。</para>
@@ -2156,27 +2098,23 @@ ipfw add block out all</programlisting>
<para>只把规则号为
<replaceable>NUM</replaceable> 的计数器清零:</para>
- <screen>&prompt.root; <userinput>ipfw zero NUM</userinput></screen>
+ <screen>&prompt.root; <userinput>ipfw zero <replaceable>NUM</replaceable></userinput></screen>
</sect2>
<sect2 id="firewalls-ipfw-rules">
<title>IPFW 规则集</title>
- <!-- XXX: looks incorrect (and duplicated 2 times in this chapter):
- 1. Packet can be processed two times depend of firewall
- firewall configuration, but "return trip back" is
- another packet.
- 2. "Each TCP/IP service ... is predefined by its protocol ..."
- - this shold be about packet and it's parameters
- (source/destination address and port). -->
-
- <para>规则集是一组根据包中选择的数值使用 allow 或 deny 写出的 ipfw 规则。
- 在两个主机之前的双向包交换组成了一次会话交互。 防火墙规则集,
- 会对同一个包处理两次: 第一次是包从公网上到达防火墙时,
- 而第二次则是包返回 Internet 公网上的主机时。
- 每一个 TCP/IP 服务 (例如 telnet, www, mail,
- 等等), 都有事先定义好的协议, 以及一个端口号。
- 这可以作为建立允许或阻止规则时的基本选择依据。</para>
+ <!-- This has already appeared once -->
+
+ <para>规则集是指一组编写好的依据包的值决策允许通过或阻止 IPFW 规则。
+ 包的双向交换组成了一个会话交互。 防火墙规则集会作用于来自于
+ Internet 公网的包以及由系统发出来回应这些包的数据包。
+ 每一个 <acronym>TCP/IP</acronym> 服务 (例如 telnet, www,
+ 邮件等等) 都由协议预先定义了其特权 (监听) 端口。
+ 发到特定服务的包会从源地址使用非特权 (高编号) 端口发出,
+ 并发到特定服务在目的地址的对应端口。
+ 所有这些参数 (例如: 端口和地址)
+ 都是可以为防火墙规则所利用的, 判别是否允许服务通过的标准。</para>
<indexterm>
<primary>IPFW</primary>
@@ -2190,7 +2128,7 @@ ipfw add block out all</programlisting>
并自顶向下地进行匹配。 当包与某个选择规则参数相匹配时,
将会执行规则所定义的动作, 并停止规则集搜索。 这种策略,
通常也被称作 <quote>最先匹配者获胜</quote> 的搜索方法。
- 如果没有任何与包相匹配的规则, 那么它就会根据强制的 ipfw
+ 如果没有任何与包相匹配的规则, 那么它就会根据强制的 IPFW
默认规则, 也就是 65535 号规则截获。 一般情况下这个规则是阻止包,
而且不给出任何回应。</para>
@@ -2201,23 +2139,13 @@ ipfw add block out all</programlisting>
</note>
<para>这里所介绍的规则, 都是使用了那些包含状态功能的,
- 也就是 'keep state'、 'limit'、 'in'/'out'、
- 或者 'via' 选项的规则。 这是编写包容式防火墙规则集所需的基本框架。</para>
-
- <!-- XXX: something like this already in
- <xref linkend="firewalls-concepts">
- AND: the para below is repeated 3 times in this chapter. -->
-
- <para>包容式防火墙只允许与规则匹配的包通过。 这样,
- 您就既能够控制来自防火墙后面的机器请求 Internet 公网上的那些服务,
- 同时也可以控制来自 Internet 的请求能够访问内部网上的哪些服务。
- 所有其它的访问请求都会被阻止, 并记录下来。
- 包容式防火墙一般而言要远比排斥式的要安全,
- 而且也只需要定义允许哪些访问通过。</para>
+ 也就是 <literal>keep state</literal>、 <literal>limit</literal>、 <literal>in</literal>、 <literal>out</literal>
+ 以及 <literal>via</literal> 选项的规则。
+ 这是编写明示允许防火墙规则集所需的基本框架。</para>
<warning>
<para>在操作防火墙规则时应谨慎行事, 如果操作不当,
- 有可能将自己反锁在外面。</para>
+ 很容易将自己反锁在外面。</para>
</warning>
<sect3 id="firewalls-ipfw-rules-syntax">
@@ -2230,7 +2158,7 @@ ipfw add block out all</programlisting>
</indexterm>
<para>这里所介绍的规则语法已经经过了简化,
- 只包括了建立标准的包容式防火墙规则集所必需的那些。
+ 只包括了建立标准的明示允许防火墙规则集所必需的那些。
要了解完整的规则语法说明,
请参见 &man.ipfw.8; 联机手册。</para>
@@ -2291,15 +2219,16 @@ ipfw add block out all</programlisting>
<para><parameter>log</parameter> or
<parameter>logamount</parameter></para>
- <para>当数据包与带 log 关键字的规则匹配时,
- 将通过名为 SECURITY 的 facility 来把消息记录到 syslogd。
+ <para>当数据包与带 <literal>log</literal> 关键字的规则匹配时,
+ 将通过名为 SECURITY 的 facility 来把消息记录到 &man.syslogd.8;。
只有在记录的次数没有超过 logamount 参数所指定的次数时,
- 才会记录日志。 如果没有指定 logamount, 则会以 sysctl 变量
- net.inet.ip.fw.verbose_limit 所指定的限制为准。
+ 才会记录日志。 如果没有指定 <literal>logamount</literal>,
+ 则会以 sysctl 变量
+ <literal>net.inet.ip.fw.verbose_limit</literal> 所指定的限制为准。
如果将这两种限制值之一指定为零, 则表示不作限制。
- 万一达到了限制数,
+ 如果达到了限制数,
可以通过将规则的日志计数或包计数清零来重新启用日志,
- 请参见 ipfw reset log 命令来了解细节。</para>
+ 请参见 <command>ipfw reset log</command> 命令来了解细节。</para>
<note>
<para>日志是在所有其他匹配条件都验证成功之后,
@@ -2324,25 +2253,27 @@ ipfw add block out all</programlisting>
<para><parameter>from src to dst</parameter></para>
- <para>from 和 to 关键字用于匹配 IP 地址。
- 规则中必须同时指定源和目的两个参数。
+ <para><literal>from</literal> 和 <literal>to</literal> 关键字用于匹配 IP
+ 地址。 规则中必须 <emphasis>同时</emphasis> 指定源和目的两个参数。
如果需要匹配任意 IP 地址,
可以使用特殊关键字 <literal>any</literal>。
还有一个特殊关键字, 即 <literal>me</literal>,
用于匹配您的 &os; 系统上所有网络接口上所配置的 IP 地址,
它可以用于表达网络上的其他计算机到防火墙 (也就是本机),
- 例如 'from me to any' 或 'from any to me' 或 'from 0.0.0.0/0 to any' 或
- 'from any to 0.0.0.0/0' 或 'from 0.0.0.0 to any' 或 'from
- any to 0.0.0.0' 以及 'from me to 0.0.0.0'。 IP
- 地址可以通过 带点的 IP 地址/掩码长度,
- 或者一个带点的 IP 地址的形式来指定。 这是编写规则时所必需的。
- 如果不清楚如何写掩码长度, 请参见 <ulink
+ 例如 <literal>from me to any</literal> 或 <literal>from any to me</literal> 或 <literal>from 0.0.0.0/0 to any</literal> 或
+ <literal>from any to 0.0.0.0/0</literal> 或 <literal>from 0.0.0.0 to any</literal> 或 <literal>from
+ any to 0.0.0.0</literal> 以及 <literal>from me to 0.0.0.0</literal>。 IP
+ 地址可以通过 带点的 IP 地址/掩码长度 (CIDR 记法),
+ 或者一个带点的 IP 地址的形式来指定。
+ 这是编写规则时所必需的。 使用 <filename
+ role="package">net-mgmt/ipcalc</filename> port 可以用来简化计算。
+ 关于这个工具的更多信息, 也可参考它的主页: <ulink
url="http://jodies.de/ipcalc"></ulink>。</para>
<para><parameter>port number</parameter></para>
<para>这个参数主要用于那些支持端口号的协议 (例如
- <acronym>TCP</acronym> 和 UDP)。 如果要通过端口号匹配某个协议,
+ <acronym>TCP</acronym> 和 <acronym>UDP</acronym>)。 如果要通过端口号匹配某个协议,
就必须指定这个参数。 此外, 也可以通过服务的名字 (根据
<filename>/etc/services</filename>) 来指定服务,
这样会比使用数字指定端口号直观一些。</para>
@@ -2350,7 +2281,7 @@ ipfw add block out all</programlisting>
<para><parameter>in | out</parameter></para>
<para>相应地, 匹配进入和发出的包。
- 这里的 in 和 out 都是关键字, 在编写匹配规则时,
+ 这里的 <literal>in</literal> 和 <literal>out</literal> 都是关键字, 在编写匹配规则时,
必需作为其他条件的一部分来使用。</para>
<para><parameter>via IF</parameter></para>
@@ -2376,8 +2307,8 @@ ipfw add block out all</programlisting>
<para>防火墙只允许匹配规则时, 与指定的参数相同的
<replaceable>N</replaceable> 个连接。
可以指定至少一个源或目的地址及端口。
- 'limit' 和 'keep-state' 不能在同一规则中同时使用。
- 'limit' 提供了与 'keep-state' 相同的功能,
+ <literal>limit</literal> 和 <literal>keep-state</literal> 不能在同一规则中同时使用。
+ <literal>limit</literal> 提供了与 <literal>keep-state</literal> 相同的功能,
并增加了一些独有的能力。</para>
</sect4>
</sect3>
@@ -2399,7 +2330,7 @@ ipfw add block out all</programlisting>
并在遵循双向包交换的规则进行会话。
如果包与这些规则不符, 则将自动地拒绝它们。</para>
- <para>'check-state' 用来识别在 IPFW
+ <para><literal>check-state</literal> 用来识别在 IPFW
规则集中的包是否符合动态规则机制的规则。
如果匹配, 则允许包通过,
此时防火墙将创建一个新的动态规则来匹配双向交换中的下一个包。
@@ -2407,10 +2338,11 @@ ipfw add block out all</programlisting>
<para>动态规则机制在 SYN-flood 攻击下是脆弱的,
因为这种情况会产生大量的动态规则, 从而耗尽资源。
- 为了抵抗这种攻击, 从 &os; 中加入了一个叫做 limit
+ 为了抵抗这种攻击, 从 &os; 中加入了一个叫做 <literal>limit</literal>
的新选项。
这个选项可以用来限制符合规则的会话允许的并发连接数。
- 如果动态规则表中的规则数超过限制, 则包将被丢弃。</para>
+ 如果动态规则表中的规则数超过 <literal>limit</literal> 的限制数量,
+ 则包将被丢弃。</para>
</sect3>
<sect3>
@@ -2428,27 +2360,28 @@ ipfw add block out all</programlisting>
<para>即使启用了日志机制, IPFW 也不会自行生成任何规则的日志。
防火墙管理员需要指定规则集中的哪些规则应该记录日志,
- 并在这些规则上增加 log 动作。 一般来说, 只有
+ 并在这些规则上增加 <literal>log</literal> 动作。 一般来说, 只有
deny 规则应记录日志, 例如对于进入的
<acronym>ICMP</acronym> ping 的 deny 规则。 另外,
- 复制默认的 ipfw 终极 deny 规则, 并加入 log
+ 复制 <quote>默认的 ipfw 终极 deny 规则</quote>, 并加入 <literal>log</literal>
动作来作为您的规则集的最后一条规则也是很常见的用法。
这样, 您就能看到没有匹配任何一条规则的那些数据包。</para>
<para>日志是一把双刃剑, 如果不谨慎地加以利用,
则可能会陷入过多的日志数据中, 并导致磁盘被日志塞满。
将磁盘填满是 DoS 攻击最为老套的手法之一。
- 由于日志除了会写入磁盘之外, 还会输出到 root 的控制台屏幕上,
+ 由于 <application>syslogd</application> 除了会将日志写入磁盘之外,
+ 还会输出到 root 的控制台屏幕上,
因此有过多的日志信息是很让人恼火的事情。</para>
<para><literal>IPFIREWALL_VERBOSE_LIMIT=5</literal>
- 内核选项将限制同一个规则发到系统日志程序 syslogd 的连续消息的数量。
+ 内核选项将限制同一个规则发到系统日志程序 &man.syslogd.8; 的连续消息的数量。
当内核启用了这个选项时,
某一特定规则所产生的连续消息的数量将封顶为这个数字。
一般来说, 没有办法从连续 200 条一模一样的日志信息中获取更多有用的信息。
举例来说, 如果同一个规则产生了 5 次消息并被记录到
- syslogd, 余下的相同的消息将被计数,
- 并像下面这样发给 syslogd:</para>
+ <application>syslogd</application>, 余下的相同的消息将被计数,
+ 并像下面这样发给 <application>syslogd</application>:</para>
<programlisting>last message repeated 45 times</programlisting>
@@ -2469,8 +2402,8 @@ ipfw add block out all</programlisting>
并用同一个符号在多个规则中反复地表达它。
下面将给出一个例子。</para>
- <para>这个脚本使用的语法同 'sh'、
- 'csh' 以及 'tcsh' 脚本兼容。 符号替换字段使用美元符号 &dollar;
+ <para>这个脚本使用的语法同 &man.sh.1;、
+ &man.csh.1; 以及 &man.tcsh.1; 脚本兼容。 符号替换字段使用美元符号 &dollar;
作为前缀。 符号字段本身并不使用 &dollar; 前缀。
符号替换字段的值必须使用 "双引号" 括起来。</para>
@@ -2496,8 +2429,8 @@ ks="keep-state" # just too lazy to key this each time
它们主要是用来表示如何使用符号替换。</para>
<para>如果把上面的例子保存到
- <filename>/etc/ipfw.rules</filename> 文件中,
- 您就可以通过输入下面的命令来加载它。</para>
+ <filename>/etc/ipfw.rules</filename> 文件中。
+ 下面的命令来会重新加载规则。</para>
<screen>&prompt.root; <userinput>sh /etc/ipfw.rules</userinput></screen>
@@ -2519,10 +2452,11 @@ ks="keep-state" # just too lazy to key this each time
<title>带状态规则集</title>
<para>以下的这组非-<acronym>NAT</acronym> 规则集,
- 是如何编写非常安全的 '包容式' 防火墙的一个例子。
- 包容式防火墙只允许匹配了 pass 规则的包通过,
- 而默认阻止所有的其他数据包。 必须有至少两个网络接口,
- 并且在其上配置了规则才能使防火墙正常工作。</para>
+ 是如何编写非常安全的 '明示允许' 防火墙的一个例子。
+ 明示允许防火墙只允许匹配了 pass 规则的包通过,
+ 而默认阻止所有的其他数据包。
+ 用来保护整个网段的防火墙, 至少需要有两个网络接口,
+ 并且其上必须配置规则, 以便让防火墙正常工作。</para>
<para>所有类 &unix; 操作系统, 也包括 &os;,
都设计为允许使用网络接口 <devicename>lo0</devicename> 和 IP
@@ -2531,7 +2465,8 @@ ks="keep-state" # just too lazy to key this each time
<para>接入 Internet 公网的那个网络接口上,
应该配置授权和访问控制, 来限制对外的访问, 以及来自 Internet
- 公网的访问。 这个接口很可能是您的 ppp 接口, 例如
+ 公网的访问。 这个接口很可能是您的用户态
+ <acronym>PPP</acronym> 接口, 例如
<devicename>tun0</devicename>, 或者您接在 DSL 或电缆 modem
上的网卡。</para>
@@ -2546,27 +2481,27 @@ ks="keep-state" # just too lazy to key this each time
应该是最经常用到的放在尽可能靠前的位置,
而最后一个规则, 则应该是阻止那个接口在那一方向上的包。</para>
- <para>发出部分的规则只包含一些 'allow' 规则,
+ <para>发出部分的规则只包含一些 <literal>allow</literal> 规则,
允许选定的那些唯一区分协议的端口号所指定的协议通过,
以允许访问 Internet 公网上的这些服务。
- 所有的规则中都指定了 proto, port,
- in/out, via 以及 keep state 这些选项。 'proto tcp'
- 规则同时指定 'setup' 选项, 来区分开始协议会话的包,
+ 所有的规则中都指定了 <literal>proto</literal>、 <literal>port</literal>、
+ <literal>in/out</literal>、 <literal>via</literal> 以及 <literal>keep state</literal> 这些选项。 <literal>proto tcp</literal>
+ 规则同时指定 <literal>setup</literal> 选项, 来区分开始协议会话的包,
以触发将包放入
keep state 规则表中的动作。</para>
- <para>接收部分则首先阻止所有不希望的包, 在这里有两个目的。
- 首先是, 这些包被禁止掉之后, 就不会由于匹配了后面的某个规则而被允许。
- 其次, 明确地禁止这些包, 就不会再在日志中记录它们而形成干扰。
- 防火墙的最后一条规则是阻止并记录所有包, 这样,
- 您就可以留下用于起诉攻击您的系统的人的有用记录。</para>
-
- <para>另一件需要注意的事情是, 不希望的数据包一般来说不会有任何响应,
- 这些数据包会被丢弃并消失。 这样,
- 攻击者也就无法了解他的数据包是否到达了您的系统。
- 而攻击者了解的信息越少, 它们攻陷系统所需的时间也就越长。
- 当记录的包使用的端口号不是您所熟悉的那些时, 可以看一看
- <filename>/etc/services/</filename> 或到 <ulink
+ <para>接收部分则首先阻止所有不希望的包, 这样做有两个不同的原因。
+ 其一是恶意的包可能和某些允许的流量规则存在部分匹配, 而我们希望阻止,
+ 而不是让这些包仅仅与 <literal>allow</literal> 规则部分匹配就允许它们进入。
+ 其二是, 已经确信要阻止的包被拒绝这件事, 往往并不是我们需要关注的,
+ 因此只要简单地予以阻止即可。
+ 防火墙规则集中的每个部分的最后一条规则都是阻止并记录包,
+ 这有助于为逮捕攻击者留下法律所要求的证据。</para>
+
+ <para>另外一个需要注意的事情是确保系统对不希望的数据包不做回应。
+ 无效的包应被丢弃和消失。 这样, 攻击者便无法知道包是否到达了您的系统。
+ 攻击者对系统了解的越少, 其攻击的难度也就越大。 如果不知道端口号,
+ 可以查阅 <filename>/etc/services/</filename> 或到 <ulink
url="http://www.securitystats.com/tools/portsearch.php"></ulink>
并查找一下端口号, 以了解其用途。 另外,
您也可以在这个网页上了解常见木马所使用的端口: <ulink
@@ -2574,35 +2509,37 @@ ks="keep-state" # just too lazy to key this each time
</sect3>
<sect3>
- <title>包容式规则集的例子</title>
+ <title>明示允许规则集的例子</title>
<para>下面是一个非-<acronym>NAT</acronym> 的规则集,
- 它是一个完整的包容式规则集。 使用它作为您的规则集不会有什么问题。
+ 它是一个完整的明示允许规则集。 使用它作为您的规则集不会有什么问题。
只需把那些不需要的服务对应的 pass 规则注释掉就可以了。
如果您在日志中看到消息, 而且不想再看到它们,
- 只需在接收部分增加一个一个 deny 规则。 您可能需要把 'dc0'
- 改为接入公网的接口的名字。 对于使用用户态 ppp 的用户而言, 应该是
- 'tun0'。</para>
+ 只需在接收部分增加一个一个 <literal>deny</literal> 规则。
+ 您可能需要把 <devicename>dc0</devicename> 改为接入公网的接口的名字。
+ 对于使用用户态 <acronym>PPP</acronym> 的用户而言, 应该是
+ <devicename>tun0</devicename>。</para>
- <para>您可以看出这些规则中的模式。</para>
+ <para>这些规则遵循一定的模式。</para>
<itemizedlist>
<listitem>
<para>所有请求 Internet 公网上服务的会话开始包,
- 都使用了 keep-state。</para>
+ 都使用了 <literal>keep-state</literal>。</para>
</listitem>
<listitem>
<para>所有来自 Internet 的授权服务请求,
- 都采用了 limit 选项来防止洪水式攻击。</para>
+ 都采用了 <literal>limit</literal> 选项来防止洪水式攻击。</para>
</listitem>
<listitem>
- <para>所有的规则都使用了 in 或者 out 来说明方向。</para>
+ <para>所有的规则都使用了 <literal>in</literal> 或者 <literal>out</literal> 来说明方向。</para>
</listitem>
<listitem>
- <para>所有的规则都使用了 via 接口名来指定应该匹配通过哪一个接口的包。</para>
+ <para>所有的规则都使用了 <literal>via</literal> <replaceable>接口名</replaceable>
+ 来指定应该匹配通过哪一个接口的包。</para>
</listitem>
</itemizedlist>
@@ -2694,8 +2631,8 @@ pif="dc0" # public interface name of NIC
#################################################################
# Interface facing Public Internet (Inbound Section)
-# Interrogate packets originating from the public Internet
-# destine for this gateway server or the private network.
+# Check packets originating from the public Internet
+# destined for this gateway server or the private network.
#################################################################
# Deny all inbound traffic from non-routable reserved address spaces
@@ -2770,7 +2707,7 @@ pif="dc0" # public interface name of NIC
<para>要使用 IPFW 的 <acronym>NAT</acronym> 功能, 还需要进行一些额外的配置。
除了其他 IPFIREWALL 语句之外,
- 还需要在内核编译配置中加上 'option IPDIVERT' 语句。</para>
+ 还需要在内核编译配置中加上 <literal>option IPDIVERT</literal> 语句。</para>
<para>在
<filename>/etc/rc.conf</filename> 中, 除了普通的 IPFW 配置之外,
@@ -2780,13 +2717,13 @@ pif="dc0" # public interface name of NIC
natd_interface="rl0" # interface name of public Internet NIC
natd_flags="-dynamic -m" # -m = preserve port numbers if possible</programlisting>
- <para>将带状态规则与转发 natd 规则 (网络地址转换)
- 会使规则集的编写变得非常复杂。 check-state 的位置,
- 以及 'divert natd' 规则将变得非常关键。 这样一来,
- 就不再有简单的顺序处理逻辑流程了。 提供了一种新的动作类型,
- 称为 'skipto'。 要使用 skipto 命令,
- 就必须给每一个规则进行编号,
- 以确定 skipto 规则号是您希望跳转到的位置。</para>
+ <para>将带状态规则与 <literal>divert natd</literal> 规则 (网络地址转换)
+ 会使规则集的编写变得非常复杂。 <literal>check-state</literal> 的位置,
+ 以及 <literal>divert natd</literal> 规则将变得非常关键。 这样一来,
+ 就不再有简单的顺序处理逻辑流程了。 提供了一种新的动作类型, 称为
+ <literal>skipto</literal>。 要使用 <literal>skipto</literal> 命令,
+ 就必须给每一个规则进行编号, 以确定
+ <literal>skipto</literal> 规则号是您希望跳转到的位置。</para>
<para>下面给出了一些未加注释的例子来说明如何编写这样的规则,
用以帮助您理解包处理规则集的处理顺序。</para>
@@ -2800,7 +2737,7 @@ natd_flags="-dynamic -m" # -m = preserve port numbers if possible</pr
LAN IP 地址关联。 另一个需要注意的是, 所有的 allow
和 deny 规则都指定了包的方向 (也就是 outbound 或 inbound)
以及网络接口。 最后, 请注意所有发出的会话请求都会请求
- skipto rule 500 以完成网络地址转换。</para>
+ <literal>skipto rule 500</literal> 以完成网络地址转换。</para>
<para>下面以 LAN 用户使用 web 浏览器访问一个 web 页面为例。
Web 页面使用 80 来完成通讯。 当包进入防火墙时,
@@ -2811,23 +2748,23 @@ natd_flags="-dynamic -m" # -m = preserve port numbers if possible</pr
最终, 它会通过接入 Internet 公网的网卡发出。
这之前, 包的源地址仍然是内网 IP 地址。
一旦匹配这个规则, 就会触发两个动作。
- keep-state 选项会把这个规则发到 keep-state 动态规则表中,
+ <literal>keep-state</literal> 选项会把这个规则发到 keep-state 动态规则表中,
并执行所指定的动作。 动作是发到规则表中的信息的一部分。
- 在这个例子中, 这个动作是 "skipto rule
- 500"。 规则 500 <acronym>NAT</acronym> 包的 IP 地址,
+ 在这个例子中, 这个动作是 <literal>skipto rule
+ 500</literal>。 规则 500 <acronym>NAT</acronym> 包的 IP 地址,
并将其发出。 请务必牢记, 这一步非常重要。
接下来, 数据包将到达目的地, 之后返回并从规则集的第一条规则开始处理。
这一次, 它将与规则 100 匹配, 其目的 IP 地址将被映射回对应的内网
LAN IP 地址。 其后, 它会被
- check-state 规则处理, 进而在暨存会话表中找到对应项,
+ <literal>check-state</literal> 规则处理, 进而在暨存会话表中找到对应项,
并发到 LAN。 数据包接下来发到了内网 LAN PC 上,
而后者则会发送从远程服务器请求下一段数据的新数据包。
- 这个包会再次由 check-state 规则检查, 并找到发出的表项,
- 并执行其关联的动作, 即 'skipto 500'。 包跳转到规则 500 并被
+ 这个包会再次由 <literal>check-state</literal> 规则检查, 并找到发出的表项,
+ 并执行其关联的动作, 即 <literal>skipto 500</literal>。 包跳转到规则 500 并被
<acronym>NAT</acronym> 后发出。</para>
- <para>在接收一侧, 已经存在的会话的数据包, 会被 check-state
- 规则自动地处理, 并放到转发 natd 规则。 我们需要解决的问题是,
+ <para>在接收一侧, 已经存在的会话的数据包会被 <literal>check-state</literal>
+ 规则自动地处理, 并转到 <literal>divert nat</literal> 规则。 我们需要解决的问题是,
阻止所有的坏数据包, 而只允许授权的服务。
例如在防火墙上运行了 Apache 服务, 而我们希望人们在访问 Internet
公网的同时, 也能够访问本地的 web 站点。
@@ -2838,8 +2775,8 @@ natd_flags="-dynamic -m" # -m = preserve port numbers if possible</pr
数据包会被发到 keep-state 动态表, 但此时,
所有来自那个源 IP 的会话请求的数量会被限制为 2。
这一做法能够挫败针对指定端口上服务的 DoS 攻击。
- 动作同时指定了包应被发到 LAN 上。 包返回时,
- check-state 规则会识别出包属于某一已经存在的会话交互,
+ 动作同时指定了 <literal>allow</literal> 包应被发到 LAN 上。 包返回时,
+ <literal>check-state</literal> 规则会识别出包属于某一已经存在的会话交互,
并直接把它发到规则 500 做
<acronym>NAT</acronym>, 并发到发出接口。</para>
@@ -2933,9 +2870,9 @@ pif="rl0" # public interface name of NIC
#################################################################
# Interface facing Public Internet (Outbound Section)
-# Interrogate session start requests originating from behind the
+# Check session start requests originating from behind the
# firewall on the private network or from this gateway server
-# destine for the public Internet.
+# destined for the public Internet.
#################################################################
# Allow out access to my ISP's Domain name server.
@@ -2983,8 +2920,8 @@ pif="rl0" # public interface name of NIC
#################################################################
# Interface facing Public Internet (Inbound Section)
-# Interrogate packets originating from the public Internet
-# destine for this gateway server or the private network.
+# Check packets originating from the public Internet
+# destined for this gateway server or the private network.
#################################################################
# Deny all inbound traffic from non-routable reserved address spaces
diff --git a/zh_CN.GB2312/books/handbook/geom/chapter.sgml b/zh_CN.GB2312/books/handbook/geom/chapter.sgml
index deeb48f497..894328565f 100644
--- a/zh_CN.GB2312/books/handbook/geom/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/geom/chapter.sgml
@@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
- Original Revision: 1.47
+ Original Revision: 1.48
$FreeBSD$
-->
@@ -599,6 +599,35 @@ devfs on /dev (devfs, local)
/dev/label/usr on /usr (ufs, local, soft-updates)
/dev/label/var on /var (ufs, local, soft-updates)</screen>
</example>
+
+ <para>从 &os;&nbsp;7.2 开始, &man.glabel.8; class
+ 新增了一种用于 <acronym>UFS</acronym> 文件系统唯一标识符,
+ <literal>ufsid</literal> 的标签支持。
+ 这些标签可以在 <filename class="directory">/dev/ufsid</filename>
+ 目录中找到, 它们会在系统引导时自动创建。
+ 在 <filename>/etc/fstab</filename> 机制中,
+ 也可以使用 <literal>ufsid</literal> 标签。 您可以使用
+ <command>glabel status</command> 命令来获得与文件系统对应的
+ <literal>ufsid</literal> 标签列表:</para>
+
+ <screen>&prompt.user; <userinput>glabel status</userinput>
+ Name Status Components
+ufsid/486b6fc38d330916 N/A ad4s1d
+ufsid/486b6fc16926168e N/A ad4s1f</screen>
+
+ <para>在上面的例子中 <devicename>ad4s1d</devicename>
+ 代表了 <filename class="directory">/var</filename>
+ 文件系统, 而 <devicename>ad4s1f</devicename> 则代表了
+ <filename class="directory">/usr</filename> 文件系统。 您可以使用这些
+ <literal>ufsid</literal> 值来挂载它们, 在
+ <filename>/etc/fstab</filename> 中配置类似这样:</para>
+
+ <programlisting>/dev/ufsid/486b6fc38d330916 /var ufs rw 2 2
+/dev/ufsid/486b6fc16926168e /usr ufs rw 2 2</programlisting>
+
+ <para>所有包含了 <literal>ufsid</literal> 的标签都可以用这种方式挂载,
+ 从而消除了需要手工创建永久性标签的麻烦,
+ 而又能够提供提供与设备名无关的挂载方式的便利。</para>
</sect2>
</sect1>
diff --git a/zh_CN.GB2312/books/handbook/introduction/chapter.sgml b/zh_CN.GB2312/books/handbook/introduction/chapter.sgml
index 59cce23a31..4e8c7da492 100644
--- a/zh_CN.GB2312/books/handbook/introduction/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/introduction/chapter.sgml
@@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
- Original Revision: 1.135
+ Original Revision: 1.137
$FreeBSD$
-->
@@ -449,6 +449,12 @@
America</ulink></para>
</listitem>
+ <indexterm><primary>Experts Exchange</primary></indexterm>
+ <listitem>
+ <para><ulink url="http://www.experts-exchange.com/">Experts
+ Exchange</ulink></para>
+ </listitem>
+
</itemizedlist>
<para>等等许多。</para>
@@ -596,21 +602,25 @@
2004 年 2 月正式发布。</para>
<para>RELENG_5 于 2004 年 8 月正式创建, 紧随其后的是 5.3-RELEASE,
- 它是 5-STABLE 分支的标志性发行版。 最新的 5.5-RELEASE
- 是在 &rel2.current.date; 发布的。 RELENG_5 分支不会有后续的发行版了。</para>
+ 它是 5-STABLE 分支的标志性发行版。 这个分支的最后一个版本, 5.5-RELEASE
+ 是在 2006 年 5 月发布的。 RELENG_5 分支不会有后续的发行版了。</para>
<para>其后在 2005 年 7 月又建立了 RELENG_6 分支。 而 6.X 分支上的第一个版本,
- 即 6.0-RELEASE, 则是在 2005 年 11 月发布的。
- 最新的 &rel2.current;-RELEASE 发布于 &rel2.current.date;。
- RELENG_6 分支上不再会有发布版本了。</para>
+ 即 6.0-RELEASE, 则是在 2005 年 11 月发布的。 这个分支的最后一个版本,
+ 6.4-RELEASE 是在
+ 2008 年 11 月 发布的。 RELENG_6 分支上不再会有发布版本了。</para>
<para>RELENG_7 分支于 2007 年 10 月创建。
第一个这个分支的发行版是 7.0-RELEASE, 这个版本是 2008 年 2 月发布的。
- 最新的 &rel.current;-RELEASE 是在 &rel.current.date; 发布的。
+ 最新的 &rel2.current;-RELEASE 是在 &rel2.current.date; 发布的。
RELENG_7 还将会有其它后续的发布版本。</para>
+ <para>其后在 2009 年 8 月又建立了 RELENG_8 分支。
+ 8.X 分支的第一个版本, 8.0-RELEASE 是在 &rel.current.date;
+ 发布的。</para>
+
<para>目前, 中长期的开发项目继续在
- 8.X-CURRENT (主干, trunk) 分支中进行, 而 8.X 的
+ 9.X-CURRENT (主干, trunk) 分支中进行, 而 9.X 的
CD-ROM (当然, 也包括网络) 快照版本可以在
<ulink url="ftp://current.FreeBSD.org/pub/FreeBSD/snapshots/">
快照服务器</ulink> 找到。</para>
diff --git a/zh_CN.GB2312/books/handbook/jails/chapter.sgml b/zh_CN.GB2312/books/handbook/jails/chapter.sgml
index 322ef202d9..35936b77f8 100644
--- a/zh_CN.GB2312/books/handbook/jails/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/jails/chapter.sgml
@@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
- Original Revision: 1.18
+ Original Revision: 1.20
$FreeBSD$
-->
<chapter id="jails">
@@ -71,9 +71,10 @@
<variablelist>
<varlistentry>
- <term>&man.chroot.2; (命令)</term>
+ <term>&man.chroot.8; (命令)</term>
<listitem>
- <para>&os; 的一个系统调用, 其作用是改变进程及其衍生进程所能看到的根目录。</para>
+ <para>这个工具使用 &os; 的系统调用 &man.chroot.2; &os; 来改变进程,
+ 以及进程的所有衍生进程所能看到的根目录。</para>
</listitem>
</varlistentry>
@@ -205,8 +206,6 @@
&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make buildworld</userinput> <co id="jailbuildworld">
&prompt.root; <userinput>make installworld DESTDIR=$D</userinput> <co id="jailinstallworld">
-&prompt.root; <userinput>cd etc/</userinput> <footnote><para>在 &os; 6.0 及
-之后的版本中不必须进行这个步骤。</para></footnote>
&prompt.root; <userinput>make distribution DESTDIR=$D</userinput> <co id="jaildistrib">
&prompt.root; <userinput>mount -t devfs devfs $D/dev</userinput> <co id="jaildevfs"></screen>
diff --git a/zh_CN.GB2312/books/handbook/kernelconfig/chapter.sgml b/zh_CN.GB2312/books/handbook/kernelconfig/chapter.sgml
index 9fbb04f8c9..8839c55dc6 100644
--- a/zh_CN.GB2312/books/handbook/kernelconfig/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/kernelconfig/chapter.sgml
@@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Chinese Documentation Project
- Original Revision: 1.192
+ Original Revision: 1.194
$FreeBSD$
-->
@@ -387,9 +387,9 @@ following line in &man.loader.conf.5:
<para>这个变量的内容是所希望构建的模块列表。</para>
- <programlisting>WITHOUT_MODULES = linux acpi sound/sound sound/driver/ds1 ntfs</programlisting>
+ <programlisting>WITHOUT_MODULES = linux acpi sound ntfs</programlisting>
- <para>这个变量的内容是在联编过程中将不被编译的模块列表。
+ <para>这个变量的内容是将不在联编过程中编译的顶级模块列表。
如果希望了解更多与构建内核有关的变量, 请参见 &man.make.conf.5;
联机手册。</para>
</tip>
@@ -556,9 +556,9 @@ cpu I686_CPU</programlisting>
由于此选项将传递给 &man.gcc.1; 表示加入调试信息,
因此会将调试符号也包含进来。</para>
- <programlisting>options SCHED_4BSD # 4BSD scheduler</programlisting>
+ <programlisting>options SCHED_ULE # ULE scheduler</programlisting>
- <para>这是 &os; 传统上使用的默认系统调度器。 请保留此选项。</para>
+ <para>这是 &os; 上使用的默认系统调度器。 请保留此选项。</para>
<programlisting>options PREEMPTION # Enable kernel thread preemption</programlisting>
diff --git a/zh_CN.GB2312/books/handbook/l10n/chapter.sgml b/zh_CN.GB2312/books/handbook/l10n/chapter.sgml
index d92911f56e..87ae03a44d 100644
--- a/zh_CN.GB2312/books/handbook/l10n/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/l10n/chapter.sgml
@@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Chinese Documentation Project
- Original Revision: 1.128
+ Original Revision: 1.132
$FreeBSD$
-->
@@ -266,14 +266,14 @@ me:\
<para>检查用户的登入分类在
<filename>/etc/login.conf</filename>里面是否设置了正确的语言。主要确定下面的几个设置:</para>
- <programlisting><replaceable>language_name</replaceable>:<replaceable>accounts_title</replaceable>:\
+ <programlisting><replaceable>language_name</replaceable>|<replaceable>Account Type Description</replaceable>:\
:charset=<replaceable>MIME_charset</replaceable>:\
:lang=<replaceable>locale_name</replaceable>:\
:tc=default:</programlisting>
<para>再次使用前面的Latin-1编码的例子:</para>
- <programlisting>german:German Users Accounts:\
+ <programlisting>german|German Users Accounts:\
:charset=ISO-8859-1:\
:lang=de_DE.ISO8859-1:\
:tc=default:</programlisting>
@@ -398,14 +398,13 @@ font8x8=<replaceable>font_name</replaceable></programlisting>
</indexterm>
<indexterm><primary>keymap</primary></indexterm>
<indexterm><primary>screenmap</primary></indexterm>
- <para>您还需要确定正确地为您的 C 字符集配置了 keymap 和 screenmap,
- 这一工作可以通过
- <command>sysinstall</command> (在 &os; 5.2
- 之前的版本是 <command>/stand/sysinstall</command>) 来完成。。
- 进入 <application>sysinstall</application> 之后,
- 选择 <guimenuitem>Configure</guimenuitem>,
- <guimenuitem>Console</guimenuitem>。 此外, 您也可以将下面的设置加入
- <filename>/etc/rc.conf</filename>:</para>
+ <para>如果需要的话, 还应通过
+ <command>sysinstall</command> 来配置与单字节 C
+ 字符集对应的 keymap 和 screenmap。
+ 在 <application>sysinstall</application> 中,
+ 选择 <guimenuitem>Configure</guimenuitem> 之后选择
+ <guimenuitem>Console</guimenuitem> 即可进行配置。
+ 除此之外, 您也可以在 <filename>/etc/rc.conf</filename> 中加入类似下面的配置:</para>
<programlisting>scrnmap=<replaceable>screenmap_name</replaceable>
keymap=<replaceable>keymap_name</replaceable>
@@ -725,11 +724,7 @@ font8x8="cp866-8x8"</programlisting>
<literal>"Files"</literal> 小节。 下面的行, 应加到任何其它
<literal>FontPath</literal> 项之前:</para>
- <programlisting>FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/misc"
-FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi"
-FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/100dpi"</programlisting>
-
- <para>如果希望使用高分辨率的现实模式, 则应把 100 dpi 的配置行放在 75 dpi 前面。</para>
+ <programlisting>FontPath "/usr/local/lib/X11/fonts/cyrillic"</programlisting>
<note>
<para>请查看 ports 中的其它西里尔字体。</para></note>
diff --git a/zh_CN.GB2312/books/handbook/linuxemu/chapter.sgml b/zh_CN.GB2312/books/handbook/linuxemu/chapter.sgml
index f1b5c70db8..9bda7ae74f 100644
--- a/zh_CN.GB2312/books/handbook/linuxemu/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/linuxemu/chapter.sgml
@@ -1,7 +1,7 @@
<!--
The FreeBSD Documentation Project
- Original Revision: 1.139
+ Original Revision: 1.140
$FreeBSD$
-->
@@ -261,7 +261,9 @@ libc.so.4 (DLL Jump 4.5pl26) =&gt; /lib/libc.so.4.6.29</screen>
ELF binary type not known
Abort</screen>
- <para>为了帮助FreeBSD内核分辨FreeBSD ELF程序和Linux程序,要使用&man.brandelf.1;工具:</para>
+ <para>为帮助 FreeBSD 内核分辨 FreeBSD ELF
+ 执行文件和 Linux 执行文件, 需要使用 &man.brandelf.1;
+ 工具。</para>
<screen>&prompt.user; <userinput>brandelf -t Linux my-linux-elf-binary</userinput></screen>
diff --git a/zh_CN.GB2312/books/handbook/mac/chapter.sgml b/zh_CN.GB2312/books/handbook/mac/chapter.sgml
index fde94d2be2..e8ceed906a 100644
--- a/zh_CN.GB2312/books/handbook/mac/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/mac/chapter.sgml
@@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
- Original Revision: 1.74
+ Original Revision: 1.75
$FreeBSD$
-->
@@ -1586,7 +1586,7 @@ setpmac biba/10\(10-10\) /usr/local/etc/rc.d/nagios.sh forcestart</userinput></s
<para>首先, 在
<filename>/boot/loader.conf</filename> 中加入:</para>
- <programlisting>mac_seeotheruids_enabled="YES"</programlisting>
+ <programlisting>mac_seeotheruids_load="YES"</programlisting>
<para>随后, 可以通过下述 rc.conf 变量来启用 &man.mac.bsdextended.4;
安全策略模块:</para>
diff --git a/zh_CN.GB2312/books/handbook/mirrors/chapter.sgml b/zh_CN.GB2312/books/handbook/mirrors/chapter.sgml
index d6b608210e..54f998af0d 100644
--- a/zh_CN.GB2312/books/handbook/mirrors/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/mirrors/chapter.sgml
@@ -2,12 +2,12 @@
The FreeBSD Documentation Project
The FreeBSD Chinese Documentation Project
- Original Revision: 1.464
+ Original Revision: 1.477
$FreeBSD$
-->
<appendix id="mirrors">
- <title>获取 FreeBSD</title>
+ <title>获取 &os;</title>
<sect1 id="mirrors-cdrom">
<title>CDROM 和 DVD 发行商</title>
@@ -15,7 +15,7 @@
<sect2>
<title>零售盒装产品</title>
- <para>可以从下面几个零售商那里买到 FreeBSD 的盒装产品(FreeBSD CD,
+ <para>可以从下面几个零售商那里买到 &os; 的盒装产品 (&os; CD,
附加软件,印刷文档):</para>
<itemizedlist>
@@ -38,12 +38,12 @@
<sect2>
<title>CD 和 DVD 光盘</title>
- <para>FreeBSD CD 和 DVD 光盘可以从许多在线零售商那里买到:</para>
+ <para>&os; CD 和 DVD 光盘可以从许多在线零售商那里买到:</para>
<itemizedlist>
<listitem>
<address>
- <otheraddr>FreeBSD Mall, Inc.</otheraddr>
+ <otheraddr>&os; Mall, Inc.</otheraddr>
<street>700 Harvest Park Ste F</street>
<city>Brentwood</city>, <state>CA</state> <postcode>94513</postcode>
<country>USA</country>
@@ -142,7 +142,7 @@
<sect2>
<title>发行人</title>
- <para>如果您是销售商并且想销售 FreeBSD CDROM 产品,
+ <para>如果您是销售商并且想销售 &os; CDROM 产品,
请和发行人联系:</para>
<itemizedlist>
@@ -224,7 +224,7 @@
<sect1 id="mirrors-ftp">
<title>FTP 站点</title>
- <para>官方的 FreeBSD 源代码可以从遍布全球的镜像站点
+ <para>官方的 &os; 源代码可以从遍布全球的镜像站点
通过匿名 FTP 下载。 站点
<ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/"></ulink>
有着良好的网络连接并且允许大量的并发连接, 但是
@@ -232,18 +232,18 @@
镜像站点 (特别是当您想进行某种形式的镜像的时候)。</para>
<para><ulink
- url="http://mirrorlist.FreeBSD.org/">FreeBSD 镜像
+ url="http://mirrorlist.FreeBSD.org/">&os; 镜像
站点数据库</ulink>要比使用手册中的镜像列表更加精确,
因为它从 DNS 中获取信息而不依赖于静态的主机列表。</para>
- <para>FreeBSD 可以从下面这些镜像站点通过匿名 FTP
- 下载。如果您选择了通过匿名 FTP 获取 FreeBSD,
+ <para>&os; 可以从下面这些镜像站点通过匿名 FTP
+ 下载。如果您选择了通过匿名 FTP 获取 &os;,
请尽量使用离您比较近的站点。被列为
- <quote>主镜像站点</quote> 的镜像站点一般都有完整的 FreeBSD 文件
+ <quote>主镜像站点</quote> 的镜像站点一般都有完整的 &os; 文件
(针对每种体系结构的所有当前可用的版本),
您或许从您所在的国家或地区的站点下载会得到更快的下载速度。
每个站点提供了最流行的体系结构的最近的版本而有可能不提供完整的
- FreeBSD 存档。所有的站点都提供匿名 FTP
+ &os; 存档。所有的站点都提供匿名 FTP
访问而有些站点也提供其他的访问方式。对每个站点可用的访问方式
在其主机名后有所说明。</para>
@@ -282,9 +282,9 @@
</indexterm>
<para>匿名 CVS(或人们常说的
- <emphasis>anoncvs</emphasis>)是由和 FreeBSD 附带的 CVS 实用工具提供的用于和远程的
+ <emphasis>anoncvs</emphasis>)是由和 &os; 附带的 CVS 实用工具提供的用于和远程的
CVS 代码库同步的一种特性。
- 尤其是, 它允许 FreeBSD 用户不需要特殊的权限对任何一台 FreeBSD 项目的官方
+ 尤其是, 它允许 &os; 用户不需要特殊的权限对任何一台 &os; 项目的官方
anoncvs 服务器执行只读的 CVS 操作。
要使用它,简单的设置 <envar>CVSROOT</envar>
环境变量指向适当的 anoncvs 服务器,
@@ -319,7 +319,7 @@
模块名来从单个文件里检出任何东西并赋给特定的程序
(比如 <command>ls</command> 或者 <command>grep</command>)。
当然,<application>anoncvs</application> 也只适用于对
- CVS 仓库的只读操作,所以如果您是想用和 FreeBSD 项目共享的仓库提供本地开发的话,
+ CVS 仓库的只读操作,所以如果您是想用和 &os; 项目共享的仓库提供本地开发的话,
<application>CVSup</application> 几乎是您唯一的选择。</para>
</sect2>
@@ -327,8 +327,8 @@
<title><anchor id="anoncvs-usage">使用匿名 CVS</title>
<para>配置 &man.cvs.1; 使用匿名 CVS 仓库可以简单的设定
- <envar>CVSROOT</envar> 环境变量指向 FreeBSD 项目的
- <emphasis>anoncvs</emphasis> 服务器之一。到此书写作为止,
+ <envar>CVSROOT</envar> 环境变量指向 &os; 项目的
+ <emphasis>anoncvs</emphasis> 服务器之一。 到此书写作为止,
下面的服务器都是可用的:</para>
<itemizedlist>
@@ -350,7 +350,8 @@
(pserver (使用 <command>cvs login</command> 并在提示输入口令时,
输入任意口令。), ssh (无口令))</para>
- <programlisting>SSH2 HostKey: 1024 e8:3b:29:7b:ca:9f:ac:e9:45:cb:c8:17:ae:9b:eb:55 /etc/ssh/ssh_host_dsa_key.pub</programlisting>
+ <programlisting>SSH2 HostKey: 1024 02:ed:1b:17:d6:97:2b:58:5e:5c:e2:da:3b:89:88:26 /etc/ssh/ssh_host_rsa_key.pub
+SSH2 HostKey: 1024 e8:3b:29:7b:ca:9f:ac:e9:45:cb:c8:17:ae:9b:eb:55 /etc/ssh/ssh_host_dsa_key.pub</programlisting>
</listitem>
<listitem>
@@ -374,9 +375,9 @@ SSH2 HostKey: 1024 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65 ssh_host_dsa_
<para>因为 CVS 实际上允许 <quote>检出</quote>
曾经存在的 (或者,某种情况下将会存在)
- FreeBSD 源代码的任意版本, 您需要熟悉
+ &os; 源代码的任意版本, 您需要熟悉
&man.cvs.1; 的版本 (<option>-r</option>) 参数,
- 以及在 FreeBSD 代码库中可用的值。</para>
+ 以及在 &os; 代码库中可用的值。</para>
<para>有两种标签,修订标签和分支标签。
修订标签特指一个特定的修订版本。含义始终是不变的。
@@ -463,7 +464,7 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
<itemizedlist>
<listitem>
<para><ulink
- url="http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/cvs/">CVS 指南</ulink> 来自 Cal Poly。</para>
+ url="http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/cvs/">CVS 指南</ulink> 来自加州州立理工大学。</para>
</listitem>
<listitem>
@@ -474,7 +475,7 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
<listitem>
<para><ulink
url="http://www.FreeBSD.org/cgi/cvsweb.cgi">CVSweb</ulink> 是
- FreeBSD 项目的 CVS web 界面。</para>
+ &os; 项目的 CVS web 界面。</para>
</listitem>
</itemizedlist>
</sect2>
@@ -489,7 +490,7 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
</indexterm>
<para><application>CTM</application> 是保持远程目录树和中央服务器目录树同步的一种方法。
- 它被开发用于 FreeBSD 的源代码树,虽然其他人随着时间推移会发现它可以用于其他目的。
+ 它被开发用于 &os; 的源代码树,虽然其他人随着时间推移会发现它可以用于其他目的。
当前几乎没有,也或者只有很少的文档讲述创建 deltas 的步骤,
所以如果您希望使用 <application>CTM</application> 去做其它事情,
请联系 &a.ctm-users.name; 邮件列表了解更多信息。</para>
@@ -497,11 +498,11 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
<sect2>
<title>为什么我该使用 <application>CTM</application>?</title>
- <para><application>CTM</application> 会给您一份 FreeBSD
+ <para><application>CTM</application> 会给您一份 &os;
源代码树的本地副本。 代码树有很多的
<quote>flavors</quote> 可用。不管您是希望跟踪完整的 CVS 树还是只是一个分支,
<application>CTM</application> 都会给您提供信息。
- 如果您是 FreeBSD 上的一个活跃的开发者,但是缺乏或者不存在 TCP/IP 连接,或者只是希望把变化自动发送给您,
+ 如果您是 &os; 上的一个活跃的开发者,但是缺乏或者不存在 TCP/IP 连接,或者只是希望把变化自动发送给您,
<application>CTM</application> 就是适合您的。对于最积极的分支
您将会每天获得三个以上的 deltas。
然而,您应该考虑通过邮件来自动发送。
@@ -510,7 +511,7 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
<para>您也需要让自己了解直接和开发代码而不是预发行版本打交道的各种警告。这种情况会很显著,
如果您选择了 <quote>current</quote> 代码的话。强烈建议您阅读<link linkend="current">和
- FreeBSD 保持同步</link>。</para>
+ &os; 保持同步</link>。</para>
</sect2>
<sect2>
@@ -522,7 +523,7 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
<quote>current</quote> 级别)。</para>
<para><application>CTM</application> 程序从版本 2.0 发布以来
- 已经是 FreeBSD 的一部分了,如果您安装了源代码副本的话, 它位于
+ 已经是 &os; 的一部分了,如果您安装了源代码副本的话, 它位于
<filename>/usr/src/usr.sbin/ctm</filename>。</para>
<para>您喂给 <application>CTM</application> 的 <quote>deltas</quote>
@@ -725,7 +726,7 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
<sect2 id="mirrors-ctm">
<title>CTM 镜像</title>
- <para><link linkend="ctm">CTM</link>/FreeBSD 可以在下面的镜像站点通过匿名
+ <para><link linkend="ctm">CTM</link>/&os; 可以在下面的镜像站点通过匿名
FTP 下载。如果您选择通过匿名 FTP 获取 <application>CTM</application>,
请试着使用一个离您较近的站点。</para>
@@ -734,7 +735,7 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
<variablelist>
<varlistentry>
- <term>加利福尼亚州,海湾地区,官方源代码</term>
+ <term>加利福尼亚州,旧金山湾区,官方源代码</term>
<listitem>
<itemizedlist>
@@ -791,8 +792,8 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
<para><application>CVSup</application> 是一个用于从远程服务器主机上的主
CVS 仓库发布和升级源代码树的软件包。
- FreeBSD 的源代码维护在加利福尼亚州一台主开发服务器的 CVS 仓库里。
- 有了 <application>CVSup</application>,FreeBSD
+ &os; 的源代码维护在加利福尼亚州一台主开发服务器的 CVS 仓库里。
+ 有了 <application>CVSup</application>, &os;
用户可以很容易的保持他们自己的源代码树更新。</para>
<para><application>CVSup</application> 使用所谓的升级
@@ -806,15 +807,15 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
<para>术语 <application>CVSup</application>用大写字母写正是表示,
代表了完整的软件包。 它的主要组件是运行在每个用户机器上的客户端 <command>cvsup</command>,
- 和运行在每个 FreeBSD 镜像站点上的服务器端 <command>cvsupd</command>。</para>
+ 和运行在每个 &os; 镜像站点上的服务器端 <command>cvsupd</command>。</para>
- <para>当您阅读 FreeBSD 文档和邮件列表时,您可能会看见
+ <para>当您阅读 &os; 文档和邮件列表时,您可能会看见
<application>sup</application>。
<application>Sup</application> 是
<application>CVSup</application> 的前身,有着相似的目的。
<application>CVSup</application> 使用很多和 sup 相同的方式,
而且, 它还是用使用和 <command>sup</command> 的兼容的配置文件。
- <application>Sup</application> 已经不再被 FreeBSD 项目使用了,
+ <application>Sup</application> 已经不再被 &os; 项目使用了,
因为 <application>CVSup</application> 既快又有更好的灵活性。</para>
<note>
@@ -838,7 +839,7 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
<title>安装</title>
<para>安装 <application>CVSup</application> 最简单的方式就是使用
- FreeBSD <link linkend="ports">packages collection</link>
+ &os; <link linkend="ports">packages collection</link>
中预编译的 <filename role="package">net/cvsup</filename> 包。
如果您想从源代码构建 <application>CVSup</application>,
您可以使用 <filename role="package">net/cvsup</filename>
@@ -855,7 +856,7 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
</note>
<para>如果希望在 &os; 6.1 或更早版本中安装 <application>csup</application>,
- 则可以从 FreeBSD 的 <link linkend="ports">packages collection</link> 中安装预编译的
+ 则可以从 &os; 的 <link linkend="ports">packages collection</link> 中安装预编译的
<filename role="package">net/csup</filename> 包; 如果希望自行从源代码编译
<application>csup</application>,
也可以用 <filename role="package">net/csup</filename>
@@ -940,7 +941,7 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
<para>知道了这些,我们现在就可以开始创建一个
用于接收和升级 <link
- linkend="current">FreeBSD-CURRENT</link> 主源代码树的
+ linkend="current">&os;-CURRENT</link> 主源代码树的
<filename>supfile</filename> 文件了。</para>
<itemizedlist>
@@ -952,7 +953,7 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
这些可用的 collection 在 <link
linkend="cvsup-collec">随后的章节</link> 中描述。
在这个例子里,
- 我们希望接收 FreeBSD 系统的完整的主代码树。
+ 我们希望接收 &os; 系统的完整的主代码树。
有一个单独的大的 collection
<literal>src-all</literal> 让我们完成这个。
创建我们的
@@ -1016,7 +1017,7 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
<option>date=</option> 值字段指定一个日期来做到。
&man.cvsup.1; 手册页解释了如何来做。</para>
- <para>对于我们的示例来说,我们希望接收 FreeBSD-CURRENT。
+ <para>对于我们的示例来说,我们希望接收 &os;-CURRENT。
我们在我们的
<filename>supfile</filename> 的开头添加这行:</para>
@@ -1040,7 +1041,7 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
<command>cvsup</command> 从哪里获取更新。
任何一个 <link linkend="cvsup-mirrors">CVSup 镜像站点</link>都可以,
虽然您应该选择一个离您比较近的站点。
- 在这个例子里我们将使用一个虚拟的 FreeBSD 发布站点,
+ 在这个例子里我们将使用一个虚拟的 &os; 发布站点,
<hostid role="fqdn">cvsup99.FreeBSD.org</hostid>:</para>
<programlisting>*default host=cvsup99.FreeBSD.org</programlisting>
@@ -1093,7 +1094,7 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
<programlisting>*default release=cvs delete use-rel-suffix compress</programlisting>
- <para><literal>release=cvs</literal> 显示服务器应该从 FreeBSD 的主 CVS 仓库中获取信息。
+ <para><literal>release=cvs</literal> 显示服务器应该从 &os; 的主 CVS 仓库中获取信息。
事实上总是这样的,但是也有可能会超出这个讨论的范围。</para>
<para><literal>delete</literal> 给
@@ -1193,7 +1194,7 @@ doc/zh_*</screen>
<para>等等其他语言(您可以通过浏览
<ulink
- url="http://www.FreeBSD.org/cgi/cvsweb.cgi/">FreeBSD
+ url="http://www.FreeBSD.org/cgi/cvsweb.cgi/">&os;
CVS 仓库</ulink>找到完整的列表)。</para>
<para>有这个非常有用的特性,那些慢速连接或者要为他们的 Internet
@@ -1291,7 +1292,7 @@ doc/zh_*</screen>
<term><literal>cvs-all release=cvs</literal></term>
<listitem>
- <para>FreeBSD 主 CVS 仓库,包含
+ <para>&os; 主 CVS 仓库,包含
密码系统的代码。</para>
<variablelist>
@@ -1299,7 +1300,7 @@ doc/zh_*</screen>
<term><literal>distrib release=cvs</literal></term>
<listitem>
- <para>FreeBSD 发行版本和镜像相关的
+ <para>&os; 发行版本和镜像相关的
文件。</para>
</listitem>
</varlistentry>
@@ -1307,8 +1308,8 @@ doc/zh_*</screen>
<varlistentry>
<term><literal>doc-all release=cvs</literal></term>
<listitem>
- <para>FreeBSD 使用手册和其它文档的源代码。
- 其中不包含 FreeBSD web 站点的文件。</para>
+ <para>&os; 使用手册和其它文档的源代码。
+ 其中不包含 &os; web 站点的文件。</para>
</listitem>
</varlistentry>
@@ -1316,7 +1317,7 @@ doc/zh_*</screen>
<term><literal>ports-all release=cvs</literal></term>
<listitem>
- <para>FreeBSD Ports Collection。</para>
+ <para>&os; Ports Collection。</para>
<important id="cvsup-collec-pbase-warn">
<para>如果您不想升级全部的
@@ -1409,7 +1410,7 @@ doc/zh_*</screen>
重要警告</link>:您应该
<emphasis>总是</emphasis>更新这个
子 collection,无论您更新
- FreeBSD Ports Collection 的任何部分的时候!</para>
+ &os; Ports Collection 的任何部分的时候!</para>
</note>
</listitem>
</varlistentry>
@@ -1935,7 +1936,7 @@ doc/zh_*</screen>
<varlistentry>
<term><literal>projects-all release=cvs</literal></term>
<listitem>
- <para>FreeBSD 内部项目的代码库。</para>
+ <para>&os; 内部项目的代码库。</para>
</listitem>
</varlistentry>
@@ -1943,7 +1944,7 @@ doc/zh_*</screen>
<term><literal>src-all release=cvs</literal></term>
<listitem>
- <para>FreeBSD 主代码,包含密码系统的代码。</para>
+ <para>&os; 主代码,包含密码系统的代码。</para>
<variablelist>
<varlistentry>
@@ -1982,7 +1983,7 @@ doc/zh_*</screen>
release=cvs</literal></term>
<listitem>
- <para>FreeBSD 项目之外的工具和库,通常在 FreeBSD 中不作修改
+ <para>&os; 项目之外的工具和库,通常在 &os; 中不作修改
(<filename>/usr/src/contrib</filename>)。</para>
</listitem>
</varlistentry>
@@ -1991,8 +1992,8 @@ doc/zh_*</screen>
<term><literal>src-crypto release=cvs</literal></term>
<listitem>
- <para>FreeBSD 项目之外的
- 密码系统工具和库,通常在 FreeBSD 中不作修改
+ <para>&os; 项目之外的
+ 密码系统工具和库,通常在 &os; 中不作修改
(<filename>/usr/src/crypto</filename>)。</para>
</listitem>
</varlistentry>
@@ -2003,7 +2004,7 @@ doc/zh_*</screen>
<listitem>
<para>Kerberos 和 DES
(<filename>/usr/src/eBones</filename>)。
- 没有在当前的 FreeBSD 发行中使用。</para>
+ 目前的 &os; 中不再使用使用。</para>
</listitem>
</varlistentry>
@@ -2092,7 +2093,7 @@ doc/zh_*</screen>
release=cvs</literal></term>
<listitem>
- <para>生成 FreeBSD 版本必需的文件
+ <para>生成 &os; 版本必需的文件
(<filename>/usr/src/release</filename>)。</para>
</listitem>
</varlistentry>
@@ -2161,7 +2162,7 @@ doc/zh_*</screen>
release=cvs</literal></term>
<listitem>
- <para>维护 FreeBSD 的各种各样的工具
+ <para>维护 &os; 的各种各样的工具
(<filename>/usr/src/tools</filename>)。</para>
</listitem>
</varlistentry>
@@ -2193,7 +2194,7 @@ doc/zh_*</screen>
<term><literal>www release=cvs</literal></term>
<listitem>
- <para>FreeBSD WWW 站点的源代码。</para>
+ <para>&os; WWW 站点的源代码。</para>
</listitem>
</varlistentry>
</variablelist>
@@ -2222,7 +2223,7 @@ doc/zh_*</screen>
<term><literal>mail-archive release=current</literal></term>
<listitem>
- <para>FreeBSD 邮件列表存档。</para>
+ <para>&os; 邮件列表存档。</para>
</listitem>
</varlistentry>
@@ -2230,7 +2231,7 @@ doc/zh_*</screen>
<term><literal>www release=current</literal></term>
<listitem>
- <para>预处理过的 FreeBSD WWW 站点文件(不是源文件)。
+ <para>预处理过的 &os; WWW 站点文件(不是源文件)。
用于 WWW 镜像站点。</para>
</listitem>
</varlistentry>
@@ -2244,7 +2245,7 @@ doc/zh_*</screen>
<application>CVSup</application> 的其他信息, 请查看
<ulink url="http://www.cvsup.org">CVSup 主页</ulink>。</para>
- <para>多数与 FreeBSD 有关的
+ <para>多数与 &os; 有关的
<application>CVSup</application> 讨论会在
&a.hackers; 进行。 这个软件的新版本会在那里和 &a.announce; 公布。</para>
@@ -2257,7 +2258,7 @@ doc/zh_*</screen>
<sect2 id="cvsup-mirrors">
<title>CVSup 站点</title>
- <para>FreeBSD 的 <link linkend="cvsup">CVSup</link> 服务器运行于
+ <para>&os; 的 <link linkend="cvsup">CVSup</link> 服务器运行于
下列站点:</para>
&chap.mirrors.cvsup.inc;
@@ -2288,7 +2289,7 @@ doc/zh_*</screen>
<term>HEAD</term>
<listitem>
- <para>主线的符号名,或者说 FreeBSD-CURRENT。
+ <para>主线的符号名,或者说 &os;-CURRENT。
当没有指定修订版本的时候也是默认的。</para>
<para>在 <application>CVSup</application> 里,这个标签通过
@@ -2305,11 +2306,38 @@ doc/zh_*</screen>
</varlistentry>
<varlistentry>
+ <term>RELENG_8</term>
+
+ <listitem>
+ <para>这是 &os;-8.X 的开发分支,
+ 也被称作 &os; 8-STABLE。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_8_0</term>
+
+ <listitem>
+ <para>&os;-8.0 的发行版分支, 只用于安全公告,
+ 以及其他重要更新。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
<term>RELENG_7</term>
<listitem>
- <para>这是 FreeBSD-7.X 的开发分支,
- 也被称作 FreeBSD 7-STABLE。</para>
+ <para>这是 &os;-7.X 的开发分支,
+ 也被称作 &os; 7-STABLE。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_7_3</term>
+
+ <listitem>
+ <para>&os;-7.3 的发行版分支, 只用于安全公告,
+ 以及其他重要更新。</para>
</listitem>
</varlistentry>
@@ -2317,7 +2345,7 @@ doc/zh_*</screen>
<term>RELENG_7_2</term>
<listitem>
- <para>FreeBSD-7.2 的发行版分支, 只用于安全公告,
+ <para>&os;-7.2 的发行版分支, 只用于安全公告,
以及其他重要更新。</para>
</listitem>
</varlistentry>
@@ -2326,7 +2354,7 @@ doc/zh_*</screen>
<term>RELENG_7_1</term>
<listitem>
- <para>FreeBSD-7.1 的发行版分支, 只用于安全公告,
+ <para>&os;-7.1 的发行版分支, 只用于安全公告,
以及其他重要更新。</para>
</listitem>
</varlistentry>
@@ -2335,7 +2363,7 @@ doc/zh_*</screen>
<term>RELENG_7_0</term>
<listitem>
- <para>FreeBSD-7.0 的发行版分支, 只用于安全公告,
+ <para>&os;-7.0 的发行版分支, 只用于安全公告,
以及其他重要更新。</para>
</listitem>
</varlistentry>
@@ -2344,8 +2372,8 @@ doc/zh_*</screen>
<term>RELENG_6</term>
<listitem>
- <para>这是 FreeBSD-6.X 的开发分支,
- 也被称作 FreeBSD 6-STABLE。</para>
+ <para>这是 &os;-6.X 的开发分支,
+ 也被称作 &os; 6-STABLE。</para>
</listitem>
</varlistentry>
@@ -2353,7 +2381,7 @@ doc/zh_*</screen>
<term>RELENG_6_4</term>
<listitem>
- <para>FreeBSD-6.4 的发行版分支, 只用于安全公告,
+ <para>&os;-6.4 的发行版分支, 只用于安全公告,
以及其他重要更新。</para>
</listitem>
</varlistentry>
@@ -2362,7 +2390,7 @@ doc/zh_*</screen>
<term>RELENG_6_3</term>
<listitem>
- <para>FreeBSD-6.3 的发行版分支, 只用于安全公告,
+ <para>&os;-6.3 的发行版分支, 只用于安全公告,
以及其他重要更新。</para>
</listitem>
</varlistentry>
@@ -2371,7 +2399,7 @@ doc/zh_*</screen>
<term>RELENG_6_2</term>
<listitem>
- <para>FreeBSD-6.2 的发行版分支, 只用于安全公告,
+ <para>&os;-6.2 的发行版分支, 只用于安全公告,
以及其他重要更新。</para>
</listitem>
</varlistentry>
@@ -2380,7 +2408,7 @@ doc/zh_*</screen>
<term>RELENG_6_1</term>
<listitem>
- <para>FreeBSD-6.1 的发行版分支, 只用于安全公告,
+ <para>&os;-6.1 的发行版分支, 只用于安全公告,
以及其他重要更新。</para>
</listitem>
</varlistentry>
@@ -2389,7 +2417,7 @@ doc/zh_*</screen>
<term>RELENG_6_0</term>
<listitem>
- <para>FreeBSD-6.0 的发行版分支, 只用于安全公告,
+ <para>&os;-6.0 的发行版分支, 只用于安全公告,
以及其他重要更新。</para>
</listitem>
</varlistentry>
@@ -2398,8 +2426,8 @@ doc/zh_*</screen>
<term>RELENG_5</term>
<listitem>
- <para>这是 FreeBSD-5.X 的开发分支,
- 也被称作 FreeBSD 5-STABLE。</para>
+ <para>这是 &os;-5.X 的开发分支,
+ 也被称作 &os; 5-STABLE。</para>
</listitem>
</varlistentry>
@@ -2407,7 +2435,7 @@ doc/zh_*</screen>
<term>RELENG_5_5</term>
<listitem>
- <para>FreeBSD-5.5 安全分支。 只被安全公告和其它重要更新使用。</para>
+ <para>&os;-5.5 安全分支。 只被安全公告和其它重要更新使用。</para>
</listitem>
</varlistentry>
@@ -2415,7 +2443,7 @@ doc/zh_*</screen>
<term>RELENG_5_4</term>
<listitem>
- <para>FreeBSD-5.4 安全分支。 只被安全公告和其它重要更新使用。</para>
+ <para>&os;-5.4 安全分支。 只被安全公告和其它重要更新使用。</para>
</listitem>
</varlistentry>
@@ -2423,7 +2451,7 @@ doc/zh_*</screen>
<term>RELENG_5_3</term>
<listitem>
- <para>FreeBSD-5.3 安全分支。 只被安全公告和其它重要更新使用。</para>
+ <para>&os;-5.3 安全分支。 只被安全公告和其它重要更新使用。</para>
</listitem>
</varlistentry>
@@ -2431,8 +2459,8 @@ doc/zh_*</screen>
<term>RELENG_5_2</term>
<listitem>
- <para>针对 FreeBSD-5.2 和 FreeBSD-5.2.1 的发行版本分支,只做
- 安全咨询和其它紧急的修正。</para>
+ <para>针对 &os;-5.2 和 &os;-5.2.1 的安全分支,
+ 只被安全公告和其它重要更新使用。</para>
</listitem>
</varlistentry>
@@ -2440,8 +2468,8 @@ doc/zh_*</screen>
<term>RELENG_5_1</term>
<listitem>
- <para>针对 FreeBSD-5.1 的发行版本分支,只做
- 安全咨询和其它紧急的修正。</para>
+ <para>针对 &os;-5.1 的发行版本分支,
+ 只被安全公告和其它重要更新使用。</para>
</listitem>
</varlistentry>
@@ -2449,8 +2477,8 @@ doc/zh_*</screen>
<term>RELENG_5_0</term>
<listitem>
- <para>针对 FreeBSD-5.0 的发行版本分支,只做
- 安全咨询和其它紧急的修正。</para>
+ <para>针对 &os;-5.0 的发行版本分支,
+ 只被安全公告和其它重要更新使用。</para>
</listitem>
</varlistentry>
@@ -2458,8 +2486,8 @@ doc/zh_*</screen>
<term>RELENG_4</term>
<listitem>
- <para>FreeBSD-4.X 开发线,也被叫做
- FreeBSD-STABLE。</para>
+ <para>&os;-4.X 开发线,也被叫做
+ &os;-STABLE。</para>
</listitem>
</varlistentry>
@@ -2467,7 +2495,7 @@ doc/zh_*</screen>
<term>RELENG_4_11</term>
<listitem>
- <para>FreeBSD-4.11 发行版, 只被安全公告和其它重要更新使用。</para>
+ <para>&os;-4.11 安全分支。 只被安全公告和其它重要更新使用。</para>
</listitem>
</varlistentry>
@@ -2475,8 +2503,7 @@ doc/zh_*</screen>
<term>RELENG_4_10</term>
<listitem>
- <para>针对 FreeBSD-4.10 的发行版本分支,只做
- 安全咨询和其它紧急的修正。</para>
+ <para>&os;-4.10 安全分支。 只被安全公告和其它重要更新使用。</para>
</listitem>
</varlistentry>
@@ -2484,8 +2511,7 @@ doc/zh_*</screen>
<term>RELENG_4_9</term>
<listitem>
- <para>针对 FreeBSD-4.9 的发行版本分支,只做
- 安全咨询和其它紧急的修正。</para>
+ <para>&os;-4.9 安全分支。 只被安全公告和其它重要更新使用。</para>
</listitem>
</varlistentry>
@@ -2493,8 +2519,7 @@ doc/zh_*</screen>
<term>RELENG_4_8</term>
<listitem>
- <para>针对 FreeBSD-4.8 的发行版本分支,只做
- 安全咨询和其它紧急的修正。</para>
+ <para>&os;-4.8 安全分支。 只被安全公告和其它重要更新使用。</para>
</listitem>
</varlistentry>
@@ -2502,8 +2527,7 @@ doc/zh_*</screen>
<term>RELENG_4_7</term>
<listitem>
- <para>针对 FreeBSD-4.7 的发行版本分支,只做
- 安全咨询和其它紧急的修正。</para>
+ <para>&os;-4.7 安全分支。 只被安全公告和其它重要更新使用。</para>
</listitem>
</varlistentry>
@@ -2511,8 +2535,7 @@ doc/zh_*</screen>
<term>RELENG_4_6</term>
<listitem>
- <para>针对 FreeBSD-4.6 和 FreeBSD-4.6.2 的发行版本分支,只做
- 安全咨询和其它紧急的修正。</para>
+ <para>&os;-4.6 和 4.6.2 的安全分支。 只被安全公告和其它重要更新使用。</para>
</listitem>
</varlistentry>
@@ -2520,8 +2543,7 @@ doc/zh_*</screen>
<term>RELENG_4_5</term>
<listitem>
- <para>针对 FreeBSD-4.5 的发行版本分支,只做
- 安全咨询和其它紧急的修正。</para>
+ <para>&os;-4.5 安全分支。 只被安全公告和其它重要更新使用。</para>
</listitem>
</varlistentry>
@@ -2529,8 +2551,7 @@ doc/zh_*</screen>
<term>RELENG_4_4</term>
<listitem>
- <para>针对 FreeBSD-4.4 的发行版本分支,只做
- 安全咨询和其它紧急的修正。</para>
+ <para>&os;-4.4 安全分支。 只被安全公告和其它重要更新使用。</para>
</listitem>
</varlistentry>
@@ -2538,8 +2559,7 @@ doc/zh_*</screen>
<term>RELENG_4_3</term>
<listitem>
- <para>针对 FreeBSD-4.3 的发行版本分支,只做
- 安全咨询和其它紧急的修正。</para>
+ <para>&os;-4.3 安全分支。 只被安全公告和其它重要更新使用。</para>
</listitem>
</varlistentry>
@@ -2547,7 +2567,7 @@ doc/zh_*</screen>
<term>RELENG_3</term>
<listitem>
- <para>FreeBSD-3.X 的开发线,也被叫做
+ <para>&os;-3.X 的开发线,也被叫做
3.X-STABLE。</para>
</listitem>
</varlistentry>
@@ -2556,8 +2576,8 @@ doc/zh_*</screen>
<term>RELENG_2_2</term>
<listitem>
- <para>FreeBSD-2.2.X 的开发线,也被叫做
- 2.2-STABLE。这个分支过于陈旧了。</para>
+ <para>&os;-2.2.X 的开发线, 也被叫做
+ 2.2-STABLE。 这个分支基本上已经过时了。</para>
</listitem>
</varlistentry>
</variablelist>
@@ -2581,10 +2601,26 @@ doc/zh_*</screen>
<variablelist>
<varlistentry>
+ <term>RELENG_8_0_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 8.0</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_7_3_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 7.3</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
<term>RELENG_7_2_0_RELEASE</term>
<listitem>
- <para>FreeBSD 7.2</para>
+ <para>&os; 7.2</para>
</listitem>
</varlistentry>
@@ -2592,7 +2628,7 @@ doc/zh_*</screen>
<term>RELENG_7_1_0_RELEASE</term>
<listitem>
- <para>FreeBSD 7.1</para>
+ <para>&os; 7.1</para>
</listitem>
</varlistentry>
@@ -2600,7 +2636,7 @@ doc/zh_*</screen>
<term>RELENG_7_0_0_RELEASE</term>
<listitem>
- <para>FreeBSD 7.0</para>
+ <para>&os; 7.0</para>
</listitem>
</varlistentry>
@@ -2608,7 +2644,7 @@ doc/zh_*</screen>
<term>RELENG_6_4_0_RELEASE</term>
<listitem>
- <para>FreeBSD 6.4</para>
+ <para>&os; 6.4</para>
</listitem>
</varlistentry>
@@ -2616,7 +2652,7 @@ doc/zh_*</screen>
<term>RELENG_6_3_0_RELEASE</term>
<listitem>
- <para>FreeBSD 6.3</para>
+ <para>&os; 6.3</para>
</listitem>
</varlistentry>
@@ -2624,7 +2660,7 @@ doc/zh_*</screen>
<term>RELENG_6_2_0_RELEASE</term>
<listitem>
- <para>FreeBSD 6.2</para>
+ <para>&os; 6.2</para>
</listitem>
</varlistentry>
@@ -2632,7 +2668,7 @@ doc/zh_*</screen>
<term>RELENG_6_1_0_RELEASE</term>
<listitem>
- <para>FreeBSD 6.1</para>
+ <para>&os; 6.1</para>
</listitem>
</varlistentry>
@@ -2640,7 +2676,7 @@ doc/zh_*</screen>
<term>RELENG_6_0_0_RELEASE</term>
<listitem>
- <para>FreeBSD 6.0</para>
+ <para>&os; 6.0</para>
</listitem>
</varlistentry>
@@ -2648,7 +2684,7 @@ doc/zh_*</screen>
<term>RELENG_5_5_0_RELEASE</term>
<listitem>
- <para>FreeBSD 5.5</para>
+ <para>&os; 5.5</para>
</listitem>
</varlistentry>
@@ -2656,7 +2692,7 @@ doc/zh_*</screen>
<term>RELENG_5_4_0_RELEASE</term>
<listitem>
- <para>FreeBSD 5.4</para>
+ <para>&os; 5.4</para>
</listitem>
</varlistentry>
@@ -2664,7 +2700,7 @@ doc/zh_*</screen>
<term>RELENG_4_11_0_RELEASE</term>
<listitem>
- <para>FreeBSD 4.11</para>
+ <para>&os; 4.11</para>
</listitem>
</varlistentry>
@@ -2672,7 +2708,7 @@ doc/zh_*</screen>
<term>RELENG_5_3_0_RELEASE</term>
<listitem>
- <para>FreeBSD 5.3</para>
+ <para>&os; 5.3</para>
</listitem>
</varlistentry>
@@ -2680,7 +2716,7 @@ doc/zh_*</screen>
<term>RELENG_4_10_0_RELEASE</term>
<listitem>
- <para>FreeBSD 4.10</para>
+ <para>&os; 4.10</para>
</listitem>
</varlistentry>
@@ -2688,7 +2724,7 @@ doc/zh_*</screen>
<term>RELENG_5_2_1_RELEASE</term>
<listitem>
- <para>FreeBSD 5.2.1</para>
+ <para>&os; 5.2.1</para>
</listitem>
</varlistentry>
@@ -2696,7 +2732,7 @@ doc/zh_*</screen>
<term>RELENG_5_2_0_RELEASE</term>
<listitem>
- <para>FreeBSD 5.2</para>
+ <para>&os; 5.2</para>
</listitem>
</varlistentry>
@@ -2704,7 +2740,7 @@ doc/zh_*</screen>
<term>RELENG_4_9_0_RELEASE</term>
<listitem>
- <para>FreeBSD 4.9</para>
+ <para>&os; 4.9</para>
</listitem>
</varlistentry>
@@ -2712,7 +2748,7 @@ doc/zh_*</screen>
<term>RELENG_5_1_0_RELEASE</term>
<listitem>
- <para>FreeBSD 5.1</para>
+ <para>&os; 5.1</para>
</listitem>
</varlistentry>
@@ -2720,7 +2756,7 @@ doc/zh_*</screen>
<term>RELENG_4_8_0_RELEASE</term>
<listitem>
- <para>FreeBSD 4.8</para>
+ <para>&os; 4.8</para>
</listitem>
</varlistentry>
@@ -2728,7 +2764,7 @@ doc/zh_*</screen>
<term>RELENG_5_0_0_RELEASE</term>
<listitem>
- <para>FreeBSD 5.0</para>
+ <para>&os; 5.0</para>
</listitem>
</varlistentry>
@@ -2736,7 +2772,7 @@ doc/zh_*</screen>
<term>RELENG_4_7_0_RELEASE</term>
<listitem>
- <para>FreeBSD 4.7</para>
+ <para>&os; 4.7</para>
</listitem>
</varlistentry>
@@ -2744,7 +2780,7 @@ doc/zh_*</screen>
<term>RELENG_4_6_2_RELEASE</term>
<listitem>
- <para>FreeBSD 4.6.2</para>
+ <para>&os; 4.6.2</para>
</listitem>
</varlistentry>
@@ -2752,7 +2788,7 @@ doc/zh_*</screen>
<term>RELENG_4_6_1_RELEASE</term>
<listitem>
- <para>FreeBSD 4.6.1</para>
+ <para>&os; 4.6.1</para>
</listitem>
</varlistentry>
@@ -2760,7 +2796,7 @@ doc/zh_*</screen>
<term>RELENG_4_6_0_RELEASE</term>
<listitem>
- <para>FreeBSD 4.6</para>
+ <para>&os; 4.6</para>
</listitem>
</varlistentry>
@@ -2768,7 +2804,7 @@ doc/zh_*</screen>
<term>RELENG_4_5_0_RELEASE</term>
<listitem>
- <para>FreeBSD 4.5</para>
+ <para>&os; 4.5</para>
</listitem>
</varlistentry>
@@ -2776,7 +2812,7 @@ doc/zh_*</screen>
<term>RELENG_4_4_0_RELEASE</term>
<listitem>
- <para>FreeBSD 4.4</para>
+ <para>&os; 4.4</para>
</listitem>
</varlistentry>
@@ -2784,7 +2820,7 @@ doc/zh_*</screen>
<term>RELENG_4_3_0_RELEASE</term>
<listitem>
- <para>FreeBSD 4.3</para>
+ <para>&os; 4.3</para>
</listitem>
</varlistentry>
@@ -2792,7 +2828,7 @@ doc/zh_*</screen>
<term>RELENG_4_2_0_RELEASE</term>
<listitem>
- <para>FreeBSD 4.2</para>
+ <para>&os; 4.2</para>
</listitem>
</varlistentry>
@@ -2800,7 +2836,7 @@ doc/zh_*</screen>
<term>RELENG_4_1_1_RELEASE</term>
<listitem>
- <para>FreeBSD 4.1.1</para>
+ <para>&os; 4.1.1</para>
</listitem>
</varlistentry>
@@ -2808,7 +2844,7 @@ doc/zh_*</screen>
<term>RELENG_4_1_0_RELEASE</term>
<listitem>
- <para>FreeBSD 4.1</para>
+ <para>&os; 4.1</para>
</listitem>
</varlistentry>
@@ -2816,7 +2852,7 @@ doc/zh_*</screen>
<term>RELENG_4_0_0_RELEASE</term>
<listitem>
- <para>FreeBSD 4.0</para>
+ <para>&os; 4.0</para>
</listitem>
</varlistentry>
@@ -2824,7 +2860,7 @@ doc/zh_*</screen>
<term>RELENG_3_5_0_RELEASE</term>
<listitem>
- <para>FreeBSD-3.5</para>
+ <para>&os;-3.5</para>
</listitem>
</varlistentry>
@@ -2832,7 +2868,7 @@ doc/zh_*</screen>
<term>RELENG_3_4_0_RELEASE</term>
<listitem>
- <para>FreeBSD-3.4</para>
+ <para>&os;-3.4</para>
</listitem>
</varlistentry>
@@ -2840,7 +2876,7 @@ doc/zh_*</screen>
<term>RELENG_3_3_0_RELEASE</term>
<listitem>
- <para>FreeBSD-3.3</para>
+ <para>&os;-3.3</para>
</listitem>
</varlistentry>
@@ -2848,7 +2884,7 @@ doc/zh_*</screen>
<term>RELENG_3_2_0_RELEASE</term>
<listitem>
- <para>FreeBSD-3.2</para>
+ <para>&os;-3.2</para>
</listitem>
</varlistentry>
@@ -2856,7 +2892,7 @@ doc/zh_*</screen>
<term>RELENG_3_1_0_RELEASE</term>
<listitem>
- <para>FreeBSD-3.1</para>
+ <para>&os;-3.1</para>
</listitem>
</varlistentry>
@@ -2864,7 +2900,7 @@ doc/zh_*</screen>
<term>RELENG_3_0_0_RELEASE</term>
<listitem>
- <para>FreeBSD-3.0</para>
+ <para>&os;-3.0</para>
</listitem>
</varlistentry>
@@ -2872,7 +2908,7 @@ doc/zh_*</screen>
<term>RELENG_2_2_8_RELEASE</term>
<listitem>
- <para>FreeBSD-2.2.8</para>
+ <para>&os;-2.2.8</para>
</listitem>
</varlistentry>
@@ -2880,7 +2916,7 @@ doc/zh_*</screen>
<term>RELENG_2_2_7_RELEASE</term>
<listitem>
- <para>FreeBSD-2.2.7</para>
+ <para>&os;-2.2.7</para>
</listitem>
</varlistentry>
@@ -2888,7 +2924,7 @@ doc/zh_*</screen>
<term>RELENG_2_2_6_RELEASE</term>
<listitem>
- <para>FreeBSD-2.2.6</para>
+ <para>&os;-2.2.6</para>
</listitem>
</varlistentry>
@@ -2896,7 +2932,7 @@ doc/zh_*</screen>
<term>RELENG_2_2_5_RELEASE</term>
<listitem>
- <para>FreeBSD-2.2.5</para>
+ <para>&os;-2.2.5</para>
</listitem>
</varlistentry>
@@ -2904,7 +2940,7 @@ doc/zh_*</screen>
<term>RELENG_2_2_2_RELEASE</term>
<listitem>
- <para>FreeBSD-2.2.2</para>
+ <para>&os;-2.2.2</para>
</listitem>
</varlistentry>
@@ -2912,7 +2948,7 @@ doc/zh_*</screen>
<term>RELENG_2_2_1_RELEASE</term>
<listitem>
- <para>FreeBSD-2.2.1</para>
+ <para>&os;-2.2.1</para>
</listitem>
</varlistentry>
@@ -2920,7 +2956,7 @@ doc/zh_*</screen>
<term>RELENG_2_2_0_RELEASE</term>
<listitem>
- <para>FreeBSD-2.2.0</para>
+ <para>&os;-2.2.0</para>
</listitem>
</varlistentry>
</variablelist>
@@ -2930,7 +2966,7 @@ doc/zh_*</screen>
<sect1 id="mirrors-afs">
<title>AFS 站点</title>
- <para>FreeBSD 的 AFS 服务器运行于下面的站点:</para>
+ <para>&os; 的 AFS 服务器运行于下面的站点:</para>
<variablelist>
<varlistentry>
@@ -2954,16 +2990,16 @@ doc/zh_*</screen>
<sect1 id="mirrors-rsync">
<title>rsync 站点</title>
- <para>下面的站点让 FreeBSD 可以通过 rsync 协议下载。
+ <para>下面的站点让 &os; 可以通过 rsync 协议下载。
<application>rsync</application> 实用程序和
&man.rcp.1; 的工作方式很相像,
但是有更多的选项,使用 rsync 远程更新协议只传输
两份文件的不同之处,
因此能够大幅度的提高网络同步速率。
- 如果您是 FreeBSD FTP 服务器或者 CVS 仓库的镜像站点,
+ 如果您是 &os; FTP 服务器或者 CVS 仓库的镜像站点,
这一点非常有用。
<application>rsync</application> 套件可以工作在许多种
- 操作系统上,在 FreeBSD 上,查看
+ 操作系统上,在 &os; 上,查看
<filename role="package">net/rsync</filename>
port 或者使用 package。</para>
@@ -2976,9 +3012,9 @@ doc/zh_*</screen>
<para>可用的 collection:</para>
<itemizedlist>
- <listitem><para>ftp:FreeBSD FTP 服务器的
+ <listitem><para>ftp: &os; FTP 服务器的
部分镜像。</para></listitem>
- <listitem><para>FreeBSD:FreeBSD FTP 服务器的
+ <listitem><para>&os;: &os; FTP 服务器的
完整镜像。</para></listitem>
</itemizedlist>
</listitem>
@@ -2992,8 +3028,8 @@ doc/zh_*</screen>
<para>可用的 collection:</para>
<itemizedlist>
- <listitem><para>FreeBSD: 对于
- FreeBSD FTP 服务器的完整镜像。</para></listitem>
+ <listitem><para>&os;: 对于
+ &os; FTP 服务器的完整镜像。</para></listitem>
</itemizedlist>
</listitem>
</varlistentry>
@@ -3002,12 +3038,15 @@ doc/zh_*</screen>
<term>俄罗斯</term>
<listitem>
- <para>rsync://cvsup4.ru.FreeBSD.org/</para>
+ <para>rsync://ftp.mtu.ru/</para>
<para>可用的 collections:</para>
<itemizedlist>
- <listitem><para>FreeBSD-gnats: GNATS bug
- 跟踪数据库。</para></listitem>
+ <listitem><para>&os;: 完整的 &os; FTP
+ 服务器镜像。</para></listitem>
+ <listitem><para>&os;-gnats: GNATS 问题追踪数据库。</para></listitem>
+ <listitem><para>&os;-Archive: &os; 档案的 FTP
+ 服务器镜像。</para></listitem>
</itemizedlist>
</listitem>
</varlistentry>
@@ -3022,7 +3061,7 @@ doc/zh_*</screen>
<para>可用的 collection:</para>
<itemizedlist>
- <listitem><para>FreeBSD: FreeBSD FTP
+ <listitem><para>&os;: &os; FTP
服务器的完整镜像。</para></listitem>
</itemizedlist>
</listitem>
@@ -3036,7 +3075,7 @@ doc/zh_*</screen>
<para>可用的 collection:</para>
<itemizedlist>
- <listitem><para>sites/ftp.FreeBSD.org: FreeBSD FTP 服务器
+ <listitem><para>sites/ftp.FreeBSD.org: &os; FTP 服务器
的完整镜像。</para></listitem>
</itemizedlist>
</listitem>
@@ -3048,11 +3087,11 @@ doc/zh_*</screen>
<listitem>
<para>rsync://ftp-master.FreeBSD.org/</para>
- <para>服务器只供 FreeBSD 主镜像站点使用。</para>
+ <para>服务器只供 &os; 主镜像站点使用。</para>
<para>可用的 collection:</para>
<itemizedlist>
- <listitem><para>FreeBSD:FreeBSD FTP 服务器的主要存档。</para></listitem>
- <listitem><para>acl:FreeBSD 主 ACL
+ <listitem><para>&os;:&os; FTP 服务器的主要存档。</para></listitem>
+ <listitem><para>acl:&os; 主 ACL
列表。</para></listitem>
</itemizedlist>
@@ -3060,7 +3099,7 @@ doc/zh_*</screen>
<para>可用的 collection:</para>
<itemizedlist>
- <listitem><para>FreeBSD:FreeBSD FTP 服务器的完整
+ <listitem><para>&os;:&os; FTP 服务器的完整
镜像。</para></listitem>
</itemizedlist>
</listitem>
diff --git a/zh_CN.GB2312/books/handbook/multimedia/chapter.sgml b/zh_CN.GB2312/books/handbook/multimedia/chapter.sgml
index 6572b7d82f..d14e213256 100644
--- a/zh_CN.GB2312/books/handbook/multimedia/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/multimedia/chapter.sgml
@@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Documentation Project
- Original Revision: 1.132
+ Original Revision: 1.135
$FreeBSD$
-->
@@ -1351,7 +1351,8 @@ bktr0: Pinnacle/Miro TV, Philips SECAM tuner.</programlisting>
url="http://www.sane-project.org/sane-supported-devices.html">
支持的设备</ulink> 列表,
可以为您提供有关扫描仪的支持情况和状态的信息。
- &man.uscanner.4; 手册页也提供了一个支持的 USB 扫描仪列表。</para>
+ 在 &os;&nbsp;8.X 之前版本的系统中,
+ &man.uscanner.4; 手册页也提供了系统支持的 USB 扫描仪列表。</para>
</sect2>
<sect2>
@@ -1372,34 +1373,31 @@ bktr0: Pinnacle/Miro TV, Philips SECAM tuner.</programlisting>
<programlisting>device usb
device uhci
device ohci
-device uscanner</programlisting>
+device ehci</programlisting>
- <para>取决于您主板上的 USB 芯片,
- 您只需要 <literal>device uhci</literal> 或者
- <literal>device ohci</literal> 中的一种,但是两个都在
- 内核配置文件中是没有害处的。</para>
+ <para>在 &os;&nbsp;8.X 之前的版本中, 还需要下面这行配置:</para>
- <para>如果您不想重新编译内核而且您的内核也不是
- <filename>GENERIC</filename> 的,
- 您可以用 &man.kldload.8; 命令直接加载
- &man.uscanner.4; 设备驱动模块:</para>
+ <programlisting>device uscanner</programlisting>
- <screen>&prompt.root; <userinput>kldload uscanner</userinput></screen>
+ <para>在这些 &os; 版本中, 是通过设备驱动程序 &man.uscanner.4;
+ 来提供对 USB 扫描仪的支持的。 从
+ &os;&nbsp;8.0 开始, 这些支持则直接由
+ &man.libusb.3; 函数库提供。</para>
- <para>要在每次系统启动的时候加载这个模块,
- 添加下面这行到
- <filename>/boot/loader.conf</filename> 中:</para>
+ <para>使用正确的内核重新引导系统之后, 插入 USB 扫描仪。
+ 系统消息缓冲区 (使用 &man.dmesg.8; 查看)
+ 中会出现下面的信息, 表示检测到了扫描仪:</para>
- <programlisting>uscanner_load="YES"</programlisting>
+ <screen>ugen0.2: &lt;EPSON&gt; at usbus0</screen>
- <para>在使用正确的内核重启系统, 或加载了所需的内核模块之后,
- 就可以将您的 USB 扫描仪接到计算机上了。 在系统消息缓冲中,
- (&man.dmesg.8;) 应该会出现一行表示检测到您的扫描仪的信息:</para>
+ <para>或者, 对于 &os;&nbsp;7.X 系统而言:</para>
<screen>uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2</screen>
- <para>这表明我们的扫描仪正在使用
- <filename>/dev/uscanner0</filename> 设备节点。</para>
+ <para>随 &os; 版本不同, 这些信息表示扫描仪设备位于设备节点
+ <filename>/dev/ugen0.2</filename> 或
+ <filename>/dev/uscanner0</filename>。 在这个例子中, 我们使用的是
+ &epson.perfection;&nbsp;1650 USB 扫描仪。</para>
</sect3>
<sect3>
@@ -1492,6 +1490,18 @@ found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3</screen>
<screen>&prompt.root; <userinput>scanimage -L</userinput>
device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner</screen>
+ <para>或者, 如果使用的是 <xref
+ linkend="scanners-kernel-usb"> 中的 USB 扫描仪:</para>
+
+ <screen>&prompt.root; <userinput>scanimage -L</userinput>
+device 'epson2:libusb:/dev/usb:/dev/ugen0.2' is a Epson GT-8200 flatbed scanner</screen>
+
+ <para>上述输出来自于 &os;&nbsp;8.X 系统。
+ <literal>'epson2:libusb:/dev/usb:/dev/ugen0.2'</literal>
+ 给出了扫描仪所使用的后台名字 (<literal>epson2</literal>)
+ 和设备节点 (<literal>/dev/ugen0.2</literal>)。</para>
+
+ <note>
<para>如果没有输出任何信息, 或提示没有识别到扫描仪,
则说明 &man.scanimage.1; 无法识别它。
如果发生这种情况, 您就需要修改扫描仪支持后端的配置文件,
@@ -1501,9 +1511,14 @@ device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner</screen>
这类识别问题经常会在某些 USB
扫描仪上发生。</para>
- <para>例如, 对于在 <xref
+ <para>
linkend="scanners-kernel-usb"> 中所使用的 USB 扫描仪,
<command>sane-find-scanner</command> 会给出下面的信息:</para>
+ <para>例如, 对于在 <xref
+ linkend="scanners-kernel-usb">, 在 &os;&nbsp;8.X 中,
+ 扫描仪已经被很好地识别并能够正常工作了; 而对于更早版本的 &os;
+ 而言 (使用 &man.uscanner.4; 驱动程序)
+ <command>sane-find-scanner</command> 则会给出这样的信息:</para>
<screen>&prompt.root; <userinput>sane-find-scanner -q</userinput>
found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0</screen>
@@ -1519,16 +1534,16 @@ check that the scanner is plugged in, turned on and detected by the
sane-find-scanner tool (if appropriate). Please read the documentation
which came with this software (README, FAQ, manpages).</screen>
- <para>既然扫描仪没有被识别,我们就需要编辑
- <filename>/usr/local/etc/sane.d/epson.conf</filename>
- 文件。所用的扫描仪型号是 &epson.perfection; 1650,
+ <para>由于扫描仪没有识别成功, 我们就需要编辑
+ <filename>/usr/local/etc/sane.d/epson2.conf</filename>
+ 文件。 所用的扫描仪型号是 &epson.perfection;&nbsp;1650,
这样我们知道扫描仪应使用 <literal>epson</literal>
后端。确保阅读后端配置文件中的帮助注释。
改动非常简单:注释掉导致您的扫描仪使用错误接口的所有行
(在我们这种情况下,我们将注释掉从
<literal>scsi</literal> 开始的所有行,因为我们的扫描仪使用 USB
接口),然后在文件的结尾添加指定的接口和所用的设备节点。
- 这种情况下,我们添加下面这行:</para>
+ 这种情况下, 添加下面这行:</para>
<programlisting>usb /dev/uscanner0</programlisting>
@@ -1542,6 +1557,7 @@ device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scanner</screen>
并不会带来太大的麻烦。 您需要关注的是
<literal>`epson:/dev/uscanner0'</literal> 字段,
这个给了我们正确地后端名称和正确的设备节点。</para>
+ </note>
<para>一旦 <command>scanimage -L</command> 命令可以看到扫描仪,
配置就完成了。设备现在准备好等待扫描了。</para>
@@ -1570,23 +1586,43 @@ device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scanner</screen>
然而您可能需要让其他的用户也可以访问扫描仪。
用户需要有扫描仪所用的设备节点的读和写权限。
比如,我们的 USB 扫描仪使用设备节点
- <filename>/dev/uscanner0</filename>,这个节点属于
- <groupname>operator</groupname> 组。将用户
+ <filename>/dev/ugen0.2</filename>
+ 实际上只是到实际设备节点
+ <filename>/dev/usb/0.2.0</filename> 的符号连接
+ (可以通过查看 <filename class="directory">/dev</filename>
+ 目录的内容来确认这一点)。 设备节点本身和这个符号连接分别属于
+ <groupname>wheel</groupname> 和
+ <groupname>operator</groupname> 组。 将用户
<username><replaceable>joe</replaceable></username> 添加到
- <groupname>operator</groupname> 组会允许他使用扫描仪:</para>
+ 这些组中, 就可以允许他使用扫描仪了, 不过,
+ 出于显而易见的安全方面的原因, 在将用户加到特定的用户组, 特别是
+ <groupname>wheel</groupname> 组时, 无疑需三思而后行。
+ 更好的解决方法是创建一个专门用于访问 USB 设备的组,
+ 并让这个组的成员能够访问 USB 设备。</para>
+
+ <para>这里作为示例, 我们将会使用名为
+ <groupname><replaceable>usb</replaceable></groupname> 的组。
+ 第一步是借助
+ &man.pw.8; 命令来创建它:</para>
+
+ <screen>&prompt.root; <userinput>pw groupadd usb</userinput></screen>
+
+ <para>接下来, 令 <filename>/dev/ugen0.2</filename>
+ 符号连接和 <filename>/dev/usb/0.2.0</filename> 设备节点能够以 <groupname>usb</groupname> 组的身份来访问,
+ 具体而言是配置正确的写权限 (<literal>0660</literal> 或
+ <literal>0664</literal>), 因为默认情况下只有属主 (<username>root</username>)
+ 才能写这些设备。 这些配置是通过在
+ <filename>/etc/devfs.rules</filename> 文件中添加如下的设置来实现的:</para>
- <screen>&prompt.root; <userinput>pw groupmod operator -m <replaceable>joe</replaceable></userinput></screen>
+ <programlisting>[system=5]
+add path ugen0.2 mode 0660 group usb
+add path usb/0.2.0 mode 0666 group usb</programlisting>
- <para>要了解更多细节, 请阅读 &man.pw.8; 联机手册。 此外,
- 还需要为 <filename>/dev/uscanner0</filename>
- 设备节点设置正确的写入权限 (0660 或 0664),
- 因为默认情况下, <groupname>operator</groupname>
- 组只能读这个设备节点。
- 这项工作可以通过在 <filename>/etc/devfs.rules</filename>
- 文件中添加如下设置来自东完成:</para>
+ <para>&os;&nbsp;7.X 用户需要将上面的配置改为使用与之对应的
+ <filename>/dev/uscanner0</filename>:</para>
<programlisting>[system=5]
-add path uscanner0 mode 660</programlisting>
+add path uscanner0 mode 660 group usb</programlisting>
<para>随后您还需要在
<filename>/etc/rc.conf</filename>
@@ -1597,10 +1633,13 @@ add path uscanner0 mode 660</programlisting>
<para>关于这些配置的进一步细节请参考联机手册
&man.devfs.8;。</para>
- <note>
- <para>当然, 考虑安全的原因, 在您将用户添加到任何组, 尤其是
- <groupname>operator</groupname> 组时, 都应三思而后行。</para>
- </note>
+ <para>现在, 只需将用户添加到
+ <groupname><replaceable>usb</replaceable></groupname> 组,
+ 就可以使用扫描仪了:</para>
+
+ <screen>&prompt.root; <userinput>pw groupmod usb -m <replaceable>joe</replaceable></userinput></screen>
+
+ <para>更多详情, 请参见联机手册 &man.pw.8;。</para>
</sect2>
</sect1>
</chapter>
diff --git a/zh_CN.GB2312/books/handbook/network-servers/chapter.sgml b/zh_CN.GB2312/books/handbook/network-servers/chapter.sgml
index 2e25551746..41cd2e7763 100644
--- a/zh_CN.GB2312/books/handbook/network-servers/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/network-servers/chapter.sgml
@@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
- Original Revision: 1.118
+ Original Revision: 1.119
$FreeBSD$
-->
@@ -2258,7 +2258,7 @@ nis_client_flags="-S <replaceable>NIS domain</replaceable>,<replaceable>server</
客户端程序, <command>dhclient</command>,
是随 FreeBSD 作为它的一部分提供的; 而服务器部分,
则可以通过 <filename
- role="package">net/isc-dhcp3-server</filename> port 得到。
+ role="package">net/isc-dhcp31-server</filename> port 得到。
&man.dhclient.8;、 &man.dhcp-options.5;、 以及
&man.dhclient.conf.5; 联机手册, 加上下面所介绍的参考文献,
都是非常有用的资源。</para>
@@ -2357,7 +2357,7 @@ dhclient_flags=""</programlisting>
</indexterm>
<para>DHCP 服务器, <application>dhcpd</application>,
是作为 <filename
- role="package">net/isc-dhcp3-server</filename> port 的一部分提供的。
+ role="package">net/isc-dhcp31-server</filename> port 的一部分提供的。
这个 port 包括了 ISC DHCP 服务器及其文档。</para>
</sect2>
@@ -2419,7 +2419,7 @@ dhclient_flags=""</programlisting>
<para>DHCP 套件中的服务器部分并没有作为 FreeBSD 的一部分来提供,
因此您需要安装
- <filename role="package">net/isc-dhcp3-server</filename>
+ <filename role="package">net/isc-dhcp31-server</filename>
port 才能提供这个服务。 请参见 <xref linkend="ports">
以了解关于如何使用 Ports Collection 的进一步详情。</para>
</sect3>
@@ -2453,7 +2453,7 @@ dhclient_flags=""</programlisting>
<para>接下来要做的是编辑示范的
<filename>dhcpd.conf</filename>, 它由
- <filename role="package">net/isc-dhcp3-server</filename> port
+ <filename role="package">net/isc-dhcp31-server</filename> port
安装。 默认情况下, 它的名字应该是
<filename>/usr/local/etc/dhcpd.conf.sample</filename>,
在开始修改之前, 您需要把它复制为
@@ -2552,7 +2552,7 @@ dhcpd_ifaces="dc0"</programlisting>
<para>接下来, 可以用下面的命令来启动服务:</para>
- <screen>&prompt.root; <userinput>/usr/local/etc/rc.d/isc-dhcpd.sh start</userinput></screen>
+ <screen>&prompt.root; <userinput>/usr/local/etc/rc.d/isc-dhcpd start</userinput></screen>
<para>如果未来您需要修改服务器的配置, 请务必牢记发送
<literal>SIGHUP</literal> 信号给
@@ -2595,7 +2595,7 @@ dhcpd_ifaces="dc0"</programlisting>
<para><application>dhcrelay</application> 在更为复杂的环境中,
可以用来支持使用 DHCP 服务器转发请求给另一个独立网络上的
DHCP 服务器。 如果您需要这个功能, 需要安装 <filename
- role="package">net/isc-dhcp3-relay</filename> port。
+ role="package">net/isc-dhcp31-relay</filename> port。
&man.dhcrelay.8; 联机手册提供了更为详尽的介绍。</para>
</listitem>
</itemizedlist>
diff --git a/zh_CN.GB2312/books/handbook/ports/chapter.sgml b/zh_CN.GB2312/books/handbook/ports/chapter.sgml
index 21a021ef24..a5e52f813f 100644
--- a/zh_CN.GB2312/books/handbook/ports/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/ports/chapter.sgml
@@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Documentation Project
- Original Revision: 1.289
+ Original Revision: 1.290
$FreeBSD$
-->
@@ -641,8 +641,7 @@ docbook =
<step>
<para>以 <username>root</username> 身份运行
- <command>sysinstall</command>
- (对 &os; 5.2 之前的版本, 应执行 <command>/stand/sysinstall</command>):</para>
+ <command>sysinstall</command>:</para>
<screen>&prompt.root; <userinput>sysinstall</userinput></screen>
</step>
diff --git a/zh_CN.GB2312/books/handbook/printing/chapter.sgml b/zh_CN.GB2312/books/handbook/printing/chapter.sgml
index 37f65ffbbf..827e1bfeac 100644
--- a/zh_CN.GB2312/books/handbook/printing/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/printing/chapter.sgml
@@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
- Original Revision: 1.120
+ Original Revision: 1.121
$FreeBSD$
-->
@@ -4368,6 +4368,21 @@ cfA013rose dequeued
url="http://www.cups.org/"></ulink>。</para>
</listitem>
</varlistentry>
+
+ <varlistentry>
+ <term>HPLIP</term>
+
+ <indexterm><primary>HPLIP</primary></indexterm>
+ <listitem>
+ <para><application>HPLIP</application>, HP &linux; 成像及打印系统 (Imaging and
+ Printing system), 是一套由 HP 开发的用于支持 HP 的打印、
+ 扫描和传真设备的工具。 这套程序利用 <application>CUPS</application>
+ 打印系统作为后端来提供一些打印方面的功能。</para>
+
+ <para><application>HPLIP</application>
+ 的主页位于 <ulink url="http://hplipopensource.com/hplip-web/index.html"></ulink>。</para>
+ </listitem>
+ </varlistentry>
</variablelist>
</sect1>
diff --git a/zh_CN.GB2312/books/handbook/security/chapter.sgml b/zh_CN.GB2312/books/handbook/security/chapter.sgml
index eb7e781336..7060d61ac7 100644
--- a/zh_CN.GB2312/books/handbook/security/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/security/chapter.sgml
@@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
- Original Revision: 1.334
+ Original Revision: 1.335
$FreeBSD$
-->
@@ -440,10 +440,12 @@
并通过其他机制来检测入侵。</para>
<para>系统中另一个比较大的 <username>root</username> 漏洞
- 是安装在其中的 suid-root 和 sgid 的可执行文件。绝大多数这类程序,
- 例如 <application>rlogin</application>, 被存放于
- <filename>/bin</filename>, <filename>/sbin</filename>,
- <filename>/usr/bin</filename>, 或 <filename>/usr/sbin</filename> 中。
+ 是安装在其中的 suid-root 和 sgid 的可执行文件。 绝大多数这类程序,
+ 例如 <application>rlogin</application>
+ 会放在 <filename class="directory">/bin</filename>、 <filename
+ class="directory">/sbin</filename>、 <filename
+ class="directory">/usr/bin</filename>, 或 <filename
+ class="directory">/usr/sbin</filename> 目录中。
尽管并没有 100% 的安全保证,但系统默认的 suid 和 sgid 可执行文件通常是相对安全的。
当然,偶尔也会发现一些存在于这些可执行文件中的
<username>root</username> 漏洞。1998年,<literal>Xlib</literal>
@@ -555,7 +557,8 @@
然而, 这样做也可能有些过火, 而由于系统运行于较高的安全级别,
升级系统也会变得困难的多。 作为妥协, 可以让系统以较高的安全级别运行,
但并不将所有的启动文件都配置 <literal>schg</literal> 标记。
- 另一种方法是将 <filename>/</filename> 和 <filename>/usr</filename> 以只读模式挂载。
+ 另一种方法是将 <filename class="directory">/</filename> 和 <filename
+ class="directory">/usr</filename> 以只读模式挂载。
请注意, 过分严苛的安全配置很可能限制您检测入侵的能力。</para>
</sect2>
@@ -564,8 +567,8 @@
<para>当实施严格的限制时,往往会在使用的方便性上付出代价。例如,使用
<command>chflags</command> 来把 <literal>schg</literal> 标记
- 应用到 <filename>/</filename> 和
- <filename>/usr</filename> 中的绝大多数文件上可能会起到反作用,
+ 应用到 <filename class="directory">/</filename> 和
+ <filename class="directory">/usr</filename> 中的绝大多数文件上可能会起到反作用,
因为尽管它能够保护那些文件, 但同时也使入侵检测无法进行。
层次化安全的最后一层可能也是最重要的 &mdash; 检测。
如果无法检测出潜在的入侵行为,
@@ -589,10 +592,12 @@
就应该为实际的监控撰写脚本。以 NFS 挂接为例,可以用类似 &man.find.1;
和 &man.md5.1; 这样的命令为基础来完成我们所需的工作。
最好能够每天对被控机的所有执行文件计算一遍 md5,同时,还应以更高的频率测试那些
- <filename>/etc</filename> 和 <filename>/usr/local/etc</filename>
+ <filename class="directory">/etc</filename> 和
+ <filename class="directory">/usr/local/etc</filename>
中的控制文件。一旦发现了不匹配的情形,监控机应立即通知系统管理员。
好的安全脚本也应该检查在系统分区,如 <filename>/</filename> 和
- <filename>/usr</filename> 中是否有新增或删除的可执行文件,以及不适宜的 suid 。</para>
+ <filename class="directory">/usr</filename>
+ 中是否有新增或删除的可执行文件,以及不适宜的 suid 。</para>
<para>如果打算使用 ssh 来代替 NFS,那么撰写安全脚本将变得困难许多。
本质上,需要在脚本中使用 <command>scp</command> 在客户端复制文件,
@@ -1357,11 +1362,11 @@ sendmail : PARANOID : deny</programlisting>
<sect2>
<title>创建最初的数据库</title>
-
+
<para>这项工作只需要在 Kerberos 服务器上完成。 首先确认没有旧的
Kerberos 数据库存在。 您应该进入到
- <filename>/etc/kerberosIV</filename> 目录中并检查下述文件是否已经存在:</para>
-
+ <filename class="directory">/etc/kerberosIV</filename> 目录中并检查下述文件是否已经存在:</para>
+
<screen>&prompt.root; <userinput>cd /etc/kerberosIV</userinput>
&prompt.root; <userinput>ls</userinput>
README krb.conf krb.realms</screen>
@@ -1517,13 +1522,13 @@ Edit O.K.
<sect2>
<title>创建服务器文件</title>
-
+
<para>现在需要分析在每台机器上定义的服务的所有情况。
为了做到这一点, 可以使用
<command>ext_srvtab</command> 命令。 这将创建一个文件,
它需要被 <emphasis>通过安全的途径</emphasis> 复制或移动到每一个
Kerberos 客户端的
- <filename>/etc</filename> 目录中。
+ <filename class="directory">/etc</filename> 目录中。
在每一台服务器上都必须存在这个文件,
它对 Kerberos 的运行至关重要。</para>
@@ -1541,11 +1546,11 @@ Generating 'grunt-new-srvtab'....</screen>
<screen>&prompt.root; <userinput>mv grunt-new-srvtab srvtab</userinput></screen>
- <para>如果文件是针对客户系统的, 而且网络可能会不安全, 则应把
- <filename><replaceable>client</replaceable>-new-srvtab</filename> 复制到可移动的介质上,
- 并通过物理上安全的方式拿走。
- 将其改名为 <filename>srvtab</filename> 并放到客户机的
- <filename>/etc/kerberosIV</filename> 目录中, 并赋予
+ <para>如果文件是针对客户系统的, 并且网络的安全性存疑, 则应把
+ <filename><replaceable>client</replaceable>-new-srvtab</filename>
+ 复制到可移动介质上, 并以安全的实物交付方法拿走。 把文件复制到客户机的 <filename
+ class="directory">/etc</filename> 目录中,
+ 并将其改名为 <filename>srvtab</filename>, 并赋予
mode 600:</para>
<screen>&prompt.root; <userinput>mv grumble-new-srvtab srvtab</userinput>
@@ -1590,13 +1595,12 @@ Edit O.K.
<sect2>
<title>测试全部相关信息</title>
-
+
<para>首先必须启动 Kerberos 的服务程序。 这里需要指出,
如果您正确地修改了 <filename>/etc/rc.conf</filename> 则系统在启动时会自动完成这个工作。
- 只有在
- Kerberos 服务器上才需要这么做。 Kerberos 客户程序将自动地从
- <filename>/etc/kerberosIV</filename> 目录中的文件获取所需要的信息。</para>
-
+ 只有在 Kerberos 服务器上才需要这么做。 Kerberos 客户程序将自动地从 <filename
+ class="directory">/etc/kerberosIV</filename> 目录中的文件获取所需要的信息。</para>
+
<screen>&prompt.root; <userinput>kerberos &amp;</userinput>
Kerberos server starting
Sleep forever on error
@@ -2339,7 +2343,7 @@ jdoe@example.org</screen>
(<ulink url="http://web.mit.edu/Kerberos/www/"></ulink>)
上的说明来操作。 请小心关于路径的问题,
<acronym>MIT</acronym> port 会默认安装到
- <filename>/usr/local/</filename>, 您因此可能会执行
+ <filename class="directory">/usr/local/</filename>, 您因此可能会执行
<quote>普通的</quote> 系统应用程序而非
<acronym>MIT</acronym>, 如果您的 <envar>PATH</envar> 环境变量把
把系统目录放在前面的话。</para>
@@ -2396,8 +2400,8 @@ kadmind5_server_enable="YES"</programlisting>
<para>在多用户环境中
<application>Kerberos</application> 的安全性会被削弱。
- 这是因为它把 ticket 保存到
- <filename>/tmp</filename> 目录中, 而这个目录可以被任何用户读取。
+ 这是因为它把 ticket 保存到 <filename
+ class="directory">/tmp</filename> 目录中, 而这个目录可以被任何用户读取。
如果有用户与其它人同时共享一台计算机 (也就是 multi-user),
则这个用户的 ticket 就可能被其它用户窃取 (复制)。</para>
@@ -3265,9 +3269,9 @@ COPYRIGHT 100% |*****************************| 4735
<secondary>配置</secondary>
</indexterm>
- <para>针对 <application>OpenSSH</application>
- 服务程序和客户端的系统级配置文件在 <filename>/etc/ssh</filename>
- 目录中。</para>
+ <para>针对 <application>OpenSSH</application> 服务程序和客户端的系统级配置文件在
+ <filename class="directory">/etc/ssh</filename>
+ 目录中。</para>
<para><filename>ssh_config</filename> 用于配置客户端的设定,
而 <filename>sshd_config</filename> 则用于配置服务器端。</para>
@@ -3633,8 +3637,10 @@ drwxrwx---+ 2 robert robert 512 Dec 22 10:20 directory2
drwxrwx---+ 2 robert robert 512 Dec 27 11:57 directory3
drwxr-xr-x 2 robert robert 512 Nov 10 11:54 public_html</programlisting>
- <para>这里我们看到了 <filename>directory1</filename>、
- <filename>directory2</filename>, 以及 <filename>directory3</filename>
+ <para>这里我们看到了 <filename
+ class="directory">directory1</filename>、 <filename
+ class="directory">directory2</filename>, 以及 <filename
+ class="directory">directory3</filename>
目录使用了 <acronym>ACL</acronym>。 而
<filename>public_html</filename> 则没有。</para>
@@ -3867,7 +3873,8 @@ VII. References<co id="co-ref"></programlisting>
<callout arearefs="co-affects">
<para>The <literal>Affects</literal>(影响范围) 一栏给出了 &os; 的哪些版本存在这个漏洞。
对于内核来说, 检视受影响的文件上执行的 <command>ident</command> 输出可以帮助确认文件版本。
- 对于 ports, 版本号在 <filename>/var/db/pkg</filename> 里面的 port 的名字后面列出。
+ 对于 ports, 版本号在 <filename class="directory">/var/db/pkg</filename>
+ 里面的 port 的名字后面列出。
如果系统没有与 &os; <acronym>CVS</acronym> 代码库同步并每日构建,
它很可能是有问题的。</para>
</callout>
diff --git a/zh_CN.GB2312/books/handbook/virtualization/chapter.sgml b/zh_CN.GB2312/books/handbook/virtualization/chapter.sgml
index 27acb39aa1..f2bfc680ce 100644
--- a/zh_CN.GB2312/books/handbook/virtualization/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/virtualization/chapter.sgml
@@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
- Original Revision: 1.19
+ Original Revision: 1.23
$FreeBSD$
-->
@@ -36,20 +36,20 @@
<listitem>
<para>如何在采用 &intel; 处理器的 &apple; &macintosh;
- 计算机上安装 FreeBSD。</para>
+ 计算机上安装 &os;。</para>
</listitem>
<listitem>
- <para>如何在包含 <application>&xen;</application> 的 Linux 上安装 FreeBSD。</para>
+ <para>如何在包含 <application>&xen;</application> 的 Linux 上安装 &os;。</para>
</listitem>
<listitem>
<para>如何在 &microsoft.windows; 以
- <application>Virtual PC</application> 安装 FreeBSD。</para>
+ <application>Virtual PC</application> 安装 &os;。</para>
</listitem>
<listitem>
- <para>如何为虚拟化对 FreeBSD 系统进行性能调优。</para>
+ <para>如何针对虚拟化环境对 &os; 系统进行性能调优。</para>
</listitem>
</itemizedlist>
@@ -57,11 +57,11 @@
<itemizedlist>
<listitem>
- <para>理解 &unix; 和 FreeBSD 的基础知识 (<xref
+ <para>理解 &unix; 和 &os; 的基础知识 (<xref
linkend="basics">)。</para>
</listitem>
- <listitem><para>了解如何安装 FreeBSD (<xref
+ <listitem><para>了解如何安装 &os; (<xref
linkend="install">)。</para></listitem>
<listitem><para>了解如何配置网络连接 (<xref
@@ -76,22 +76,24 @@
<sect1 id="virtualization-guest">
- <title>作为客户 OS 的 FreeBSD</title>
+ <title>作为客户 OS 的 &os;</title>
<sect2 id="virtualization-guest-parallels">
<title>MacOS 上的 Parallels</title>
- <para>为 &mac; 设计的 <application>Parallels Desktop</application> 是一种可用于采用 &intel; 处理器, 并运行 &macos;
- 10.4.6 或更高版本的 &apple; &mac; 计算机的商业软件。 在 &macos;
+ <para>为 &mac; 设计的 <application>Parallels Desktop</application>
+ 是一种可用于采用 &intel; 处理器, 并运行 &macos;
+ 10.4.6 或更高版本的 &apple; &mac; 计算机的商业软件。
+ 它为 &os; 系统提供了完整的支持。 在 &macos;
X 上安装了这个软件之后, 用户需要配置虚拟机并安装所需的客户操作系统。</para>
<sect3 id="virtualization-guest-parallels-install">
- <title>在 Parallels/&macos; X 上安装 FreeBSD</title>
+ <title>在 Parallels/&macos; X 上安装 &os;</title>
<para>在 &macos;
X/<application>Parallels</application> 上安装 FreeBSD 的第一步是创建一个新的虚拟机。
- 在系统提示选择客户 OS 类型 (<guimenu>Guest OS Type</guimenu>) 时选择 <guimenuitem>FreeBSD</guimenuitem>,
- 并根据您使用 FreeBSD 虚拟实例的需要分配磁盘和内存:</para>
+ 在系统提示选择客户 OS 类型 (<guimenu>Guest OS Type</guimenu>) 时选择 <guimenuitem>&os;</guimenuitem>,
+ 并根据您使用 &os; 虚拟实例的需要分配磁盘和内存:</para>
<mediaobject>
<imageobject>
@@ -100,7 +102,7 @@
</mediaobject>
<para>对多数在 <application>Parallels</application> 上使用
- FreeBSD 的情形而言, 4GB 磁盘空间和 512MB 的 RAM 就够用了:</para>
+ &os; 的情形而言, 4GB 磁盘空间和 512MB 的 RAM 就够用了:</para>
<mediaobject>
<imageobject>
@@ -126,10 +128,39 @@
</imageobject>
</mediaobject>
- <para>在创建了 FreeBSD 虚拟机之后, 还需要在其中安装 FreeBSD。
- 最好的做法是使用官方的 FreeBSD CDROM 或从官方 FTP 站点下载的 ISO 镜像来完成这个任务。
+ <para>选择使用的网络和网卡类型:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/parallels-freebsd6">
+ </imageobject>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/parallels-freebsd7">
+ </imageobject>
+ </mediaobject>
+
+ <para>保存并完成配置:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/parallels-freebsd8">
+ </imageobject>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/parallels-freebsd9">
+ </imageobject>
+ </mediaobject>
+
+ <para>在创建了 &os; 虚拟机之后, 还需要在其中安装 &os;。
+ 最好的做法是使用官方的 &os; CDROM 或从官方 FTP 站点下载的 ISO 镜像来完成这个任务。
如果您的本地 &mac; 文件系统中有 ISO 映像文件, 或您的 &mac; 的 CD 驱动器中有
- CDROM, 就可以在 FreeBSD <application>Parallels</application> 窗口的右下角点击光盘图标。
+ CDROM, 就可以在 &os;
+ <application>Parallels</application> 窗口的右下角点击光盘图标。
之后, 系统将给出一个窗口, 供您完成将虚拟机中的
CDROM 驱动器连接到本地的 ISO 文件或真正的 CDROM 驱动器上。</para>
@@ -140,7 +171,8 @@
</mediaobject>
<para>在完成了将 CDROM 与您的安装源完成关联之后,
- 就可以按重启 (reboot) 图标来重启 FreeBSD 虚拟机了。 <application>Parallels</application> 将配合一个特殊的
+ 就可以按重启 (reboot) 图标来重启 &os; 虚拟机了。
+ <application>Parallels</application> 将配合一个特殊的
BIOS 启动, 后者能够像普通的 BIOS 一样检查系统中是否有 CDROM 驱动器。</para>
<mediaobject>
@@ -149,7 +181,7 @@
</imageobject>
</mediaobject>
- <para>此时, 它就能够找到 FreeBSD 安装介质并开始 <xref linkend="install">
+ <para>此时, 它就能够找到 &os; 安装介质并开始 <xref linkend="install">
中所介绍的标准的基于 <application>sysinstall</application> 安装的过程。</para>
<mediaobject>
@@ -159,7 +191,7 @@
</mediaobject>
<para>此时您可以安装 X11,
- 但暂时不要对它进行配置。 在完成安装之后, 重启并进入新安装的 FreeBSD 虚拟机。</para>
+ 但暂时不要对它进行配置。 在完成安装之后, 重启并进入新安装的 &os; 虚拟机。</para>
<mediaobject>
<imageobject>
@@ -169,9 +201,9 @@
</sect3>
<sect3 id="virtualization-guest-parallels-configure">
- <title>在 &macos; X/Parallels 上配置 FreeBSD</title>
+ <title>在 &macos; X/Parallels 上配置 &os;</title>
- <para>在您将 FreeBSD 安装到 &macos;
+ <para>在您将 &os; 安装到 &macos;
X 的 <application>Parallels</application> 上之后, 还需要进行一系列的配置,
以便为系统的虚拟化操作进行优化。</para>
@@ -180,13 +212,13 @@
<title>配置引导加载器变量</title>
<para>最重要的一步是通过调低
- <option>kern.hz</option> 变量来降低 <application>Parallels</application> 环境中的 FreeBSD
+ <option>kern.hz</option> 变量来降低 <application>Parallels</application> 环境中的 &os;
对 CPU 的使用。 这可以通过在
<filename>/boot/loader.conf</filename> 中增加下述配置来完成:</para>
<programlisting>kern.hz=100</programlisting>
- <para>如果不使用这个配置, 闲置的 FreeBSD <application>Parallels</application> 客户
+ <para>如果不使用这个配置, 闲置的 &os; <application>Parallels</application> 客户
OS 会在单处理器的 &imac; 上使用大约 15% 的 CPU。 如此修改之后,
空闲时的使用量就减少到大约 5% 了。</para>
</step>
@@ -229,11 +261,11 @@
<!-- Mar/Apr 2007 -->
</sect2info>
- <title>在 Linux 上通过 &xen; 运行 FreeBSD</title>
+ <title>在 Linux 上通过 &xen; 运行 &os;</title>
<para><application>&xen;</application> hypervisor 是一个开放源代码的并行虚拟化产品,
并由商业的 XenSource 公司提供支持。 在这种系统中, 客户操作系统称为 domU 域,
- 而宿主系统则称为 dom0。 在 Linux 上运行 FreeBSD 虚拟机实例的第一步, 是安装用于
+ 而宿主系统则称为 dom0。 在 Linux 上运行 &os; 虚拟机实例的第一步, 是安装用于
Linux dom0 的
<application>&xen;</application>。 在这个例子中,
宿主系统采用的发行版本是 Slackware Linux。</para>
@@ -307,11 +339,11 @@ Domain-0 0 256 1 r----- 54452.9</sc
</sect3>
<sect3>
- <title>FreeBSD 7-CURRENT domU</title>
+ <title>&os; 7-CURRENT domU</title>
<para>从 <ulink
url="http://www.fsmware.com/">http://www.fsmware.com/</ulink>
- 下载用于 <application>&xen; 3.0</application> 的 FreeBSD domU 内核。</para>
+ 下载用于 <application>&xen; 3.0</application> 的 &os; domU 内核。</para>
<itemizedlist>
<listitem>
@@ -515,10 +547,10 @@ xenbr1 8000.feffffffffff no vif0.1
之后, 必须针对所安装的虚拟机器来做相应设定。</para>
<sect3 id="virtualization-guest-virtualpc-install">
- <title>在 Virtual PC/&microsoft.windows; 上安装 FreeBSD</title>
+ <title>在 Virtual PC/&microsoft.windows; 上安装 &os;</title>
<para>在 &microsoft.windows;/<application>Virtual PC</application>
- 上安装 FreeBSD 的第一步是新增虚拟器。 如下所示,在提示向导中请选择
+ 上安装 &os; 的第一步是新增虚拟器。 如下所示,在提示向导中请选择
<guimenuitem>Create a virtual machine</guimenuitem>:</para>
<mediaobject>
@@ -543,7 +575,7 @@ xenbr1 8000.feffffffffff no vif0.1
</mediaobject>
<para>并依据自身需求来规划硬盘容量和内存的分配。对大多数在
- <application>Virtual PC</application> 使用 FreeBSD
+ <application>Virtual PC</application> 使用 &os;
的情况而言, 大约 4GB 的硬盘空间以及 512MB 的内存就够用了。</para>
<mediaobject>
@@ -566,7 +598,7 @@ xenbr1 8000.feffffffffff no vif0.1
</imageobject>
</mediaobject>
- <para>接下来选择新建的 FreeBSD 虚拟机器,并单击
+ <para>接下来选择新建的 &os; 虚拟机器,并单击
<guimenu>Settings</guimenu>, 以设定网络种类以及网卡:</para>
<mediaobject>
@@ -581,10 +613,10 @@ xenbr1 8000.feffffffffff no vif0.1
</imageobject>
</mediaobject>
- <para>在新建 FreeBSD 虚拟机器以后, 就可以继续以其安装
- FreeBSD。 安装方面, 比较好的作法是使用官方的 FreeBSD
+ <para>在新建 &os; 虚拟机器以后, 就可以继续以其安装
+ &os;。 安装方面, 比较好的作法是使用官方的 &os;
光盘或从官方 FTP 站下载 ISO 镜像。 若您的 &windows; 系统
- 内已有该 ISO 镜像, 那么就可以在 FreeBSD 虚拟机器上连按两下,
+ 内已有该 ISO 镜像, 那么就可以在 &os; 虚拟机器上双击,
以开始启动。 接着在 <application>Virtual PC</application>
窗口内按 <guimenu>CD</guimenu> 再按
<guimenu>Capture ISO Image...</guimenu>。 接着出现一个对话框,
@@ -613,7 +645,7 @@ xenbr1 8000.feffffffffff no vif0.1
</imageobject>
</mediaobject>
- <para>此时, 它会找到 FreeBSD 安装光盘, 并开始在
+ <para>此时, 它会找到 &os; 安装光盘, 并开始在
<xref linkend="install"> 内所介绍的
<application>sysinstall</application> 安装过程。
这时候也可以顺便安装 X11, 但不要进行相关设定。</para>
@@ -625,7 +657,7 @@ xenbr1 8000.feffffffffff no vif0.1
</mediaobject>
<para>完成安装之后, 记得把安装光盘或者 ISO 镜像退出。
- 最后, 把装好的 FreeBSD 虚拟机器重新开机即可。</para>
+ 最后, 把装好的 &os; 虚拟机器重新开机即可。</para>
<mediaobject>
<imageobject>
@@ -635,11 +667,11 @@ xenbr1 8000.feffffffffff no vif0.1
</sect3>
<sect3 id="virtualization-guest-virtualpc-configure">
- <title>调整 &microsoft.windows;/Virtual PC 上的 FreeBSD</title>
+ <title>调整 &microsoft.windows;/Virtual PC 上的 &os;</title>
<para>在 &microsoft.windows; 上以 <application>Virtual PC</application>
- 装好 FreeBSD 后, 还需要做一些设定步骤,
- 以便将虚拟机内的 FreeBSD 最佳化。</para>
+ 装好 &os; 后, 还需要做一些设定步骤,
+ 以便将虚拟机内的 &os; 最佳化。</para>
<procedure>
<step>
@@ -647,13 +679,13 @@ xenbr1 8000.feffffffffff no vif0.1
<para>最重要的步骤乃是藉由调降 <option>kern.hz</option>
来降低 <application>Virtual PC</application> 环境内
- FreeBSD 的 CPU 占用率。 在
+ &os; 的 CPU 占用率。 在
<filename>/boot/loader.conf</filename>
内加上下列设定即可:</para>
<programlisting>kern.hz=100</programlisting>
- <para>若不作这设定, 那么光是 idle 状态的 FreeBSD
+ <para>若不作这设定, 那么光是 idle 状态的 &os;
<application>Virtual PC</application> guest OS
就会在单一处理器的电脑上大约有 40% 的 CPU 占用率。
作了上述修改之后, 占用率大约会降至 3%。</para>
@@ -688,17 +720,17 @@ xenbr1 8000.feffffffffff no vif0.1
<sect2 id="virtualization-guest-vmware">
<title>运行于 MacOS 的 VMware</title>
- <para>&mac 版本的 <application>VMWare Fusion</application>
+ <para>&mac 版本的 <application>VMware Fusion</application>
是一个商业软件,运行在基于 &intel 的 &apple; &mac 计算机的
- &macos; 10.4.9 或更版本的操作系统上。FreeBSD
+ &macos; 10.4.9 或更版本的操作系统上。 &os;
是一个完全被支持的客户操作系统。 在 &macos; X 上安装了
- <application>VMWare Fusion</application> 之后,
+ <application>VMware Fusion</application> 之后,
用户就可以着手配置一个虚拟机器并安装客户操作系统。</para>
<sect3 id="virtualization-guest-vmware-install">
- <title>在 VMWare/&macos; X 上安装 FreeBSD</title>
+ <title>在 VMware/&macos; X 上安装 &os;</title>
- <para>第一步是运行 VMWare Fusion, 虚拟机器库将被装载。
+ <para>第一步是运行 VMware Fusion, 虚拟机器库将被装载。
单击 "New" 创建 VM:</para>
<mediaobject>
@@ -718,8 +750,8 @@ xenbr1 8000.feffffffffff no vif0.1
<para>在 <guimenuitem>Operatiing System</guimenuitem> 项选择
<guimenuitem>Other</guimenuitem>,<guimenuitem>Version</guimenuitem>
- 项可选 <guimenuitem>FreeBSD</guimenuitem> 或
- <guimenuitem>FreeBSD 64-bit</guimenuitem>。</para>
+ 项可选 <guimenuitem>&os;</guimenuitem> 或
+ <guimenuitem>&os; 64-bit</guimenuitem>。</para>
<mediaobject>
<imageobject>
@@ -810,29 +842,29 @@ xenbr1 8000.feffffffffff no vif0.1
</imageobject>
</mediaobject>
- <para>在你修改完设定之后,就可以从新安装的 FreeBSD
+ <para>在你修改完设定之后,就可以从新安装的 &os;
虚拟机器启动了。</para>
</sect3>
<sect3 id="virtualization-guest-vmware-configure">
- <title>配置运行于 &macos; X/VMWare 上的 FreeBSD</title>
+ <title>配置运行于 &macos; X/VMware 上的 &os;</title>
- <para>在 &macos; X 上的 <application>VMWare</application>
- 上安装完 FreeBSD 之后,有些配置的步骤可用来优化虚拟系统。</para>
+ <para>在 &macos; X 上的 <application>VMware</application>
+ 上安装完 &os; 之后,有些配置的步骤可用来优化虚拟系统。</para>
<procedure>
<step>
<title>设置 boot loader 变量</title>
<para>最重要的步骤是降低 <option>kern.hz</option>
- 来减少 <application>VMWare</application> 上 FreeBSD
+ 来减少 <application>VMware</application> 上 &os;
的 CPU 使用率。这需要在 <filename>/boot/loader.conf</filename>
里加入以下这行设定:</para>
<programlisting>kern.hz=100</programlisting>
- <para>如果没有这项设定,<application>VMWare</application>
- 上的 FreeBSD 客户 OS 空闲时将占用 &imac; 上一个 CPU
+ <para>如果没有这项设定,<application>VMware</application>
+ 上的 &os; 客户 OS 空闲时将占用 &imac; 上一个 CPU
大约 15% 的资源。在修改此项设定之后仅为 5%。</para>
</step>
@@ -840,7 +872,7 @@ xenbr1 8000.feffffffffff no vif0.1
<title>创建一个新的内核配置文件</title>
<para>你可以去掉所有的 FireWire, USB 设备的驱动程序。
- <application>VMWare</application> 提供了一个
+ <application>VMware</application> 提供了一个
&man.em.4; 支持的虚拟网络适配器,所以除了 &man.em.4;
之外的网卡驱动都可以被剔除。</para>
</step>
@@ -862,7 +894,7 @@ xenbr1 8000.feffffffffff no vif0.1
</sect1>
<sect1 id="virtualization-host">
- <title>作为宿主 OS 的 FreeBSD</title>
+ <title>作为宿主 OS 的 &os;</title>
<para>在过去的几年中 &os; 并没有任何可用的并被官方支持的虚拟化解决方案。
一些用户曾时使用过利用 &linux 二进制兼容层运行的
@@ -885,11 +917,11 @@ xenbr1 8000.feffffffffff no vif0.1
<sect2 id="virtualization-virtualbox-install">
<title>安装 &virtualbox;</title>
- <para><application>&virtualbox;</application> 已作为一个 &os;
- port 位于 <filename role="package">emulators/virtualbox</filename>,
+ <para><application>&virtualbox;</application> 已作为一个 &os; port 提供,
+ 位于 <filename role="package">emulators/virtualbox-ose</filename>,
可使用如下的命令安装:</para>
- <screen>&prompt.root; <userinput>cd /usr/ports/emulators/virtualbox</userinput>
+ <screen>&prompt.root; <userinput>cd /usr/ports/emulators/virtualbox-ose</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
<para>在配置对话框中的一个有用的选项是
@@ -912,8 +944,12 @@ xenbr1 8000.feffffffffff no vif0.1
<programlisting>vboxdrv_load="YES"</programlisting>
- <para><application>&virtualbox;</application> 还需要挂载
- <filename class="directory">proc</filename> 文件系统:</para>
+ <para>在 3.1.2 之前版本的 <application>&virtualbox;</application>
+ 需要挂接 <filename class="directory">proc</filename> 文件系统。
+ 在新版本中不再有此要求, 因为它们使用了由 &man.sysctl.3; 库提供的功能。</para>
+
+ <para>当使用旧版本的 port 时, 需要使用下面的步骤来挂载
+ <filename class="directory">proc</filename>:</para>
<screen>&prompt.root; <userinput>mount -t procfs proc /proc</userinput></screen>
@@ -959,8 +995,7 @@ xenbr1 8000.feffffffffff no vif0.1
<title>其他的虚拟化选项</title>
<para><application>&xen;</application>在 &os;
- 上作为宿主运行依然处于开发之中。 试验性版本将出现在
- &os;&nbsp;8.0。</para>
+ 上作为宿主运行依然处于开发之中。</para>
</sect2>
</sect1>
diff --git a/zh_CN.GB2312/books/handbook/x11/chapter.sgml b/zh_CN.GB2312/books/handbook/x11/chapter.sgml
index 6b84252917..d7c70c5a1b 100644
--- a/zh_CN.GB2312/books/handbook/x11/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/x11/chapter.sgml
@@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
- Original Revision: 1.194
+ Original Revision: 1.201
$FreeBSD$
-->
@@ -422,23 +422,31 @@ dbus_enable="YES"</programlisting>
<screen>&prompt.root; <userinput>Xorg -config xorg.conf.new -retro</userinput></screen>
- <para>如果用户看到一个黑灰的格子和一个 X 形的鼠标指针,那么配置就是成功的。
- 要退出测试, 只要同时按下
+ <para>如果看到黑灰的格子以及 X 型鼠标指针, 就表示配置成功了。
+ 要退出测试, 需要同时按下
<keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>Alt</keycap>
- <keycap>Backspace</keycap>
- </keycombo>。</para>
-
- <note><para>如果鼠标工作不正常, 则需要先配置它。
- 参见 &os; 安装一章中的 <xref linkend="mouse">。</para></note>
-
- <indexterm><primary>X11 调优</primary></indexterm>
+ <keycap>F<replaceable>n</replaceable></keycap>
+ </keycombo> 来切换到用于启动 X 的虚拟控制台
+ (<keycap>F1</keycap> 表示第一个虚拟控制台)
+ 之后按
+ <keycombo action="simul">
+ <keycap>Ctrl</keycap>
+ <keycap>C</keycap>
+ </keycombo>。</para>
<note>
- <para>此组合键在 <application>&xorg;</application> 7.3
- 或者之前的版本中默认启用。 在 7.4 或以后的版本中开启此选项,
- 你可以在任何的 X 终端模拟器中键入以下的命令:</para>
+ <para>在<application>&xorg;</application> 7.3
+ 以及更早期的版本中, 应使用
+ <keycombo action="simul">
+ <keycap>Ctrl</keycap>
+ <keycap>Alt</keycap>
+ <keycap>Backspace</keycap>
+ </keycombo> 组合键来强制退出
+ <application>&xorg;</application>。 如果需要在 7.4
+ 和之后的版本中启用这个组合键,
+ 可以在任意 X 终端模拟器中输入下面的命令:</para>
<screen>&prompt.user; <userinput>setxkbmap -option terminate:ctrl_alt_bksp</userinput></screen>
@@ -458,6 +466,13 @@ dbus_enable="YES"</programlisting>
<para>你可能需要重启你的机器来使得 <application>hald</application>
重新读取这个文件。</para>
+
+ <para>此外, 还需要在
+ <filename>xorg.conf.new</filename> 中的
+ <literal>ServerLayout</literal> 或 <literal>ServerFlags</literal>
+ 小节中添加:</para>
+
+ <programlisting>Option "DontZap" "off"</programlisting>
</note>
<para>如果鼠标无法正常工作, 在继续深入之前需要先配置它。
@@ -815,20 +830,12 @@ EndSection</programlisting>
<indexterm><primary>fonts</primary>
<secondary>anti-aliased</secondary></indexterm>
- <para>X11 从 <application>&xfree86;</application> 4.0.2 开始支持字体的反走样。
- 但是, 字体配置在
- <application>&xfree86;</application> 4.3.0 之前是非常繁琐的。
- 从 <application>&xfree86;</application> 4.3.0 开始,
- 对于所有支持 Xft 的应用程序, 所有放到 X11
+ <para>对于所有支持 Xft 的应用程序, 所有放到 X11
<filename>/usr/local/lib/X11/fonts/</filename> 和
<filename>~/.fonts/</filename> 中的字体都自动地被加入反走样支持。
- 并不是所有的应用程序都支持 Xft, 但已经有相当多的程序提供 Xft 支持了。
- 支持 Xft 的应用程序包括 Qt 2.3 以及更高版本
- (用以开发 <application>KDE</application> 桌面的工具包)、
- GTK+ 2.0 和更高版本 (用于开发
- <application>GNOME</application> 桌面的工具包), 以及
- <application>Mozilla</application> 1.2 和更高版本。
- </para>
+ 绝大多数较新的程序都提供了 Xft 支持, 包括
+ <application>KDE</application>、 <application>GNOME</application> 以及
+ <application>Firefox</application>。</para>
<para>要控制哪些字体是 anti-aliased,或者配置 anti-aliased 特性,
创建(或者编辑,如果文件已经存在的话)文件
@@ -924,8 +931,7 @@ EndSection</programlisting>
<para>某些字体,比如 Helvetica,当 anti-aliased 的时候可能存在问题。
通常的表现为字体本身似乎被垂直的切成两半。
- 糟糕的时候,还可能导致应用程序比如
- <application>Mozilla</application> 崩溃。
+ 糟糕的时候,还可能导致应用程序崩溃。
为了避免这样的现象,考虑添加下面几行到
<filename>local.conf</filename>文件里面:</para>
@@ -943,18 +949,6 @@ EndSection</programlisting>
<literal>&lt;/fontconfig&gt;</literal> 标签来结束文件。
不这样做将会导致您的更改被忽略。</para>
- <para>X11 默认的字库当使用反走样时会比较难看。
- 更好的字库可以在
- <filename role="package">x11-fonts/bitstream-vera</filename>
- port 中找到。 这个 port 会创建一个
- <filename>/usr/local/etc/fonts/local.conf</filename> 文件,
- 如果这个文件不存在的话。 反之,
- port 将创建 <filename>/usr/local/etc/fonts/local.conf-vera
- </filename> 文件。 将其内容合并到
- <filename>/usr/local/etc/fonts/local.conf</filename> 中,
- 则 Bitstream 字体将自动地代替默认的
- X11 Serif, Sans Serif, 以及单倍距字体。</para>
-
<para>最后,用户可以通过他们个人的
<filename>.fonts.conf</filename> 文件来添加自己的设定。
要完成此项工作, 用户只需简单地创建
@@ -986,24 +980,6 @@ EndSection</programlisting>
<literal>rgb</literal> 改为 <literal>bgr</literal>、
<literal>vrgb</literal> 或 <literal>vbgr</literal>:
试验一下看看那个更好。</para></note>
-
- <indexterm>
- <primary>Mozilla</primary>
- <secondary>disabling anti-aliased fonts (禁用反锯齿字体)</secondary>
- </indexterm>
-
- <para>在下次启动 X server 时, 反锯齿 (anti-aliasing) 功能就启用了。
- 不过, 应用程序必须了解如何使用它, 才能因此而受益。
- 目前 Qt 工具包已经对其提供了全面支持,
- 因此整个 <application>KDE</application> 环境都能使用反锯齿字体。
- GTK+ 和
- <application>GNOME</application> 也可以通过 <quote>Font</quote> capplet
- 来使用反锯齿功能 (进一步细节请参见 <xref
- linkend="x11-wm-gnome-antialias">)。 默认情况下,
- <application>Mozilla</application> 1.2 及更高版本有能力自动使用反锯齿。
- 要禁用这一特性, 则需要使用指定 <makevar>-DWITHOUT_XFT</makevar>
- 并重新联编
- <application>Mozilla</application>。</para>
</sect2>
</sect1>
@@ -1047,16 +1023,19 @@ EndSection</programlisting>
<sect2>
<title>使用 XDM</title>
- <para><application>XDM</application> 精灵程序在
- <filename>/usr/local/bin/xdm</filename> 中。您可以在任何时候
- 用 <username>root</username> 来运行这个程序,
- 在本地机器上,它将启动管理X的画面。如果要
- <application>XDM</application> 每次机器一启动就开始运行,
- 一个简单的办法是在 <filename>/etc/ttys</filename> 中加入一个记录。
- 有关这个文件的更多的格式和使用方法,可以看看 <xref
- linkend="term-etcttys">。在默认的
- <filename>/etc/ttys</filename> 文件中用于运行
- <application>XDM</application> 守护程序的一行是这样的:</para>
+ <para>如果希望使用 <application>XDM</application> 来启动, 首先需要安装
+ <filename role="package">x11/xdm</filename> port (在较新版本的
+ <application>&xorg;</application> 中它并不是默认安装的)。
+ <application>XDM</application>
+ 服务程序位于 <filename>/usr/local/bin/xdm</filename>。
+ 任何时候都可以 <username>root</username> 用户的身份来运行它,
+ 以令其管理本地系统的 X 显示。 如果希望让
+ <application>XDM</application> 在系统每次启动过程中自动运行,
+ 比较方便的做法是把它写到 <filename>/etc/ttys</filename>
+ 的配置中。 有关这个文件的具体格式和使用方法请参阅 <xref
+ linkend="term-etcttys">。 在默认的
+ <filename>/etc/ttys</filename> 文件中已经包含了在虚拟终端上运行
+ <application>XDM</application> 服务的示范配置:</para>
<screen>ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure</screen>
@@ -1306,8 +1285,12 @@ DisplayManager.requestPort: 0</screen>
<application>GDM</application> (但默认是禁用的), 可以通过在
<filename>/etc/rc.conf</filename> 中加入
<literal>gdm_enable="YES"</literal> 来启用。 这样在重新启动的时候,
- <application>GNOME</application> 就会在登录时自动启动 &mdash;
- 除此之外不需要进一步设置了。</para>
+ <application>GDM</application> 就会在登录时自动启动了。</para>
+
+ <para>此外, 如果希望在 <application>GDM</application> 启动时,
+ 同时启用所有的 <application>GNOME</application>
+ 服务, 还应在 <filename>/etc/rc.conf</filename> 中添加
+ <literal>gnome_enable="YES"</literal>。</para>
<para><application>GNOME</application> 也可以通过适当地配置名为
<filename>.xinitrc</filename> 的文件来启动。
@@ -1339,31 +1322,6 @@ DisplayManager.requestPort: 0</screen>
环节中介绍了关于如何为 <application>kdm</application>
(<application>KDE</application> 的显示管理器)进行这样的配置。</para>
</sect3>
-
- <sect3 id="x11-wm-gnome-antialias">
- <title>在GNOME上使用Anti-aliased字体</title>
-
- <indexterm><primary>GNOME</primary>
- <secondary>anti-aliased fonts</secondary></indexterm>
- <para>X11 通过<quote>RENDER</quote>扩展来支持 anti-aliasing。
- GTK+ 2.0 以及更高的版本(被
- <application>GNOME</application>使用的工具包)可以使用这个功能。
- 配置 anti-aliasing 在
- <xref linkend="antialias">描述。所以,使用最近的软件,
- anti-aliasing 可以应用在
- <application>GNOME</application>桌面环境中。只需要依次选择
- <menuchoice>
- <guimenu>应用程序</guimenu>
- <guisubmenu>桌面首选项</guisubmenu>
- <guimenuitem>字体</guimenuitem></menuchoice>,然后选上
- <guibutton>最佳形状</guibutton>,
- <guibutton>最佳对比度</guibutton>,或者
- <guibutton>像素圆滑(LCD)</guibutton>。对于
- GTK+ 应用程序,它们不是
- <application>GNOME</application> 桌面的一部分,在启动程序前需要设置
- 环境变量<varname>GDK_USE_XFT</varname>的值为
- <literal>1</literal>。</para>
- </sect3>
</sect2>
<sect2 id="x11-wm-kde">