- Cleanup whitespace

Obtained from:		The FreeBSD Traditional Chinese Project
			https://opensvn.csie.org/traccgi/freebsddoc/wiki
This commit is contained in:
Chin-San Huang 2007-11-24 16:54:14 +00:00
parent 4cf3369c7d
commit 84681e1751
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=31049

View file

@ -34,24 +34,23 @@
</indexterm>
<sect1 id="firewalls-intro">
<title>介紹</title>
<title>概述</title>
<para>防火牆能夠過濾你的系統中進出的流量。
防火牆也能藉由設置一或多組「規則 (rules)」
來檢查你的網路連結中進出的網路封包 (network packets)
並且能允許或阻擋其通過。
這些防火牆的規則可以檢查封包中的特徵,
這些特徵涵蓋,但不限於某些通訊協定類型、主機位址的來源或目的,
以及連接埠 (port) 的來源及目的。</para>
防火牆也能藉由設置一或多組「規則(rules)」
來檢查你的網路連結中進出的網路封包(network packets)
並且能允許或阻擋其通過。
這些防火牆的規則可以檢查封包中的特徵,
這些特徵涵蓋,但不限於某些通訊協定類型、主機位址的來源或目的,
以及連接埠(port)的來源及目的。</para>
<para>防火牆能夠大幅地增強主機或是網路的安全性。
它也能夠用來執行下列事項:</para>
它也能夠用來執行下列事項:</para>
<itemizedlist>
<listitem>
<para>保護或隔離你內部網路的應用程式、
服務以及機器,免於被來自 Internet 中你不想要的傳輸所影響
</para>
<para>保護或隔離你內部網路的應用程式、服務以及機器,
免於被來自 Internet 中你不想要的傳輸所影響</para>
</listitem>
<listitem>
@ -60,11 +59,9 @@
<listitem>
<para>支援「網路位址轉換」(network address translation
, <acronym>NAT</acronym>)
它可以允許你的內部網路使用私有<acronym>IP</acronym>
位址並可以共同分享一個單一連線到網際網路上
(可同時用單一<acronym>IP</acronym>位址或是一組公共網址)
</para>
, <acronym>NAT</acronym>),它可以允許你的內部網路使用 private
<acronym>IP</acronym> 位址並可以共同分享一個單一連線到網際網路上
(可同時用單一<acronym>IP</acronym>位址或是一組公共網址)</para>
</listitem>
</itemizedlist>
@ -113,31 +110,28 @@
<secondary>規則</secondary>
</indexterm>
<para>
基本上防火牆規則可分為兩種型態分別為「exclusive」以及「inclusive」。
<!--inclusive/exclusive 參考 Mattlinuxer 的意見
因為 exclusive 防火牆是先容許所有封包通過,再透過規則阻擋
不想讓其通過的封包。而 inclusive 則是檔掉所有,後來再容許
符合規則的封包通過。
<para>基本上防火牆規則可分為兩種型態分別為「exclusive」以及
「inclusive」。
<!-- inclusive/exclusive 參考 Mattlinuxer 的意見
因為 exclusive 防火牆是先容許所有封包通過,再透過規則阻擋
不想讓其通過的封包。而 inclusive 則是檔掉所有,後來再容許
符合規則的封包通過。
-->
「exclusive」類似「黑名單」它先允許所有封包通過
然後違反規則的封包則禁止通過防火牆。
相反的「inclusive」類似「白名單」它先擋住所有封包通過
然後只允許有符合規則的才可通過防火牆。</para>
「exclusive」類似「黑名單」它先允許所有封包通過
然後違反規則的封包則禁止通過防火牆。
相反的「inclusive」類似「白名單」它先擋住所有封包通過
然後只允許有符合規則的才可通過防火牆。</para>
<para>
整體來說「inclusive」式防火牆會比「exclusive」式防火牆安全些。
<para>整體來說「inclusive」式防火牆會比「exclusive」式防火牆安全些。
因為「inclusive」明顯降低了不必要的風險。</para>
<para>此外使用「stateful firewall」可讓安全性更嚴密。
它會持續記錄通過防火牆開放的連線,
並且只允許符合現存或開啟新的連線才能通過防火牆。
狀態防火牆的缺點是如果在非常快的速度下開啟許多新連線,就可能會受到阻絕式服務攻擊
(<acronym>DoS</acronym>, Denial of Service)。
在大多數的防火牆方案中也可以交叉運用「stateful 」及「non-stateful 」防火牆的組合,
讓該網站的防火牆達到最佳化。
</para>
狀態防火牆的缺點是如果在非常快的速度下開啟許多新連線,
就可能會受到阻絕式服務攻擊(<acronym>DoS</acronym>, Denial of Service)。
在大多數的防火牆方案中也可以交叉運用「stateful 」及「non-stateful」
防火牆的組合,讓該網站的防火牆達到最佳化。</para>
</sect1>
<sect1 id="firewalls-apps">
@ -148,7 +142,8 @@
它們分別是 <emphasis>IPFILTER</emphasis>
(也就是 <acronym>IPF</acronym>)、
<emphasis>IPFIREWALL</emphasis> (也就是 <acronym>IPFW</acronym>)
以及<emphasis> OpenBSD 的 PacketFilter</emphasis> (即有名的 <acronym>PF</acronym>)。
以及<emphasis> OpenBSD 的 PacketFilter</emphasis> (即有名的
<acronym>PF</acronym>)。
&os; 也有兩個內建的流量控管套件(基本上是控制頻寬的使用)
&man.altq.4; 以及 &man.dummynet.4;。
通常我們習慣把 Dummynet 與 <acronym>IPFW</acronym> 一併運用,
@ -157,20 +152,19 @@
雖然 IPF、IPFW 以及 PF 是使用不同的實做方式及規則語法,
但是它們都使用規則來控制是否允許資料封包進出你的系統。</para>
<para>&os; 為何會內建許多不同的防火牆軟體套件,
這是因為不同人會有不同的需求、偏好,很難說哪一個防火牆軟體套件是最好的。</para>
<para>&os; 為何會內建許多不同的防火牆軟體套件,這是因為不同人會有不同的需求
、偏好,很難說哪一個防火牆軟體套件是最好的。</para>
<para>而筆者偏好 IPFILTER 的原因,是因為運用在 <acronym>NAT</acronym>
<para>而筆者偏好 IPFILTER 的原因,是因為運用在 <acronym>NAT</acronym>
環境的時候,它的狀態規則是相對簡單許多的。
而且它內建的 FTP 代理,也簡化了如何設定安全的對外 FTP 服務規則。</para>
<!-- psilotum: 20060309: 這段實在翻的有點怪,參考 zh_CN 翻譯 -->
<para>正由於所有的防火牆都是以「檢查、控制所選定之封包」的實作,所以,
<!-- psilotum: 20060309: 這段實在翻的有點怪,參考 zh_CN 翻譯 -->
<para>正由於所有的防火牆都是以「檢查、控制所選定之封包」的實作,所以,
制定防火牆規則的人就更必須了解 <acronym>TCP</acronym>/IP 如何運作,
以及如何控制封包在正常 session 的各種作用。
更詳盡的說明,請參閱:
<ulink
url="http://www.ipprimer.com/overview.cfm"></ulink>。</para>
<ulink url="http://www.ipprimer.com/overview.cfm"></ulink>。</para>
</sect1>
@ -186,46 +180,52 @@
<para>在 2003 年 6 月份OpenBSD 的防火牆軟體 <acronym>PF</acronym>
被移植到 &os; 中,並且收錄於 Ports Collection 內。
而 2004 年 11 月份所發行的 &os;&nbsp;5.3 版也是第一次將 <acronym>PF</acronym>
整合為基礎系統的一部分。
而 2004 年 11 月份所發行的 &os;&nbsp;5.3 版也是第一次將
<acronym>PF</acronym> 整合為基礎系統的一部分。
<acronym>PF</acronym>是個完備、全功能的防火牆,
並且具有選擇性 <acronym>ALTQ</acronym>(交錯佇列Alternate Queuing)
<!--psilotum: 20060309 alternative queuing 參考 zh_CN 的翻譯 -->
的功能。
<acronym>ALTQ</acronym>提供了「<acronym>QoS</acronym>」(Quality of Service)頻寬管制功能,
<acronym>ALTQ</acronym>提供了「<acronym>QoS</acronym>」
(Quality of Service)頻寬管制功能,
它可以用過濾規則的方式來保障各種不同服務的頻寬。
另外OpenBSD 計劃中已經對 PF 的使用指南提供了詳盡的解說,
因此在這本手冊中我們不會作重複的贅述,而只介紹概要。</para>
<!--20060309 psilotum怎麼翻譯都覺得有點怪所以最後一句重寫-->
<para>更多關於 PF 的資訊可於下列網址查詢:<ulink
url="http://pf4freebsd.love2party.net/"></ulink>.</para>
<para>更多關於 PF 的資訊可於下列網址查詢:<ulink
url="http://pf4freebsd.love2party.net/"></ulink>.</para>
<sect2>
<title>啟用 PF</title>
<sect2>
<title>啟用 PF</title>
<para>PF 在 &os; 5.3 之後的系統中,就可以輕鬆使用 kernel 動態模組來載入。
在 rc.conf 中加入 <literal>pf_enable="YES"</literal> 後,
系統就會載入 PF 的 kernel 動態模組。這模組會在建立時也啟用 &man.pflog.4; 記錄功能。</para>
<para>PF 在 &os; 5.3 之後的系統中,就可以輕鬆使用 kernel 動態模組來載入。
在 rc.conf 中加入 <literal>pf_enable="YES"</literal> 後,
系統就會載入 PF 的 kernel 動態模組。這模組會在建立時也啟用 &man.pflog.4;
記錄功能。</para>
<note>
<para>這個模組會假設 kernel 內已有 <literal>options INET</literal> 和
<literal>device bpf</literal>。
除非編譯 kernel 時已在像是 &man.make.conf.5; 設定檔中加入 <literal>NOINET6</literal>(
&os; 6.0 以後的版本則是 <literal>NO_INET6</literal>)
這樣才會避免不打開 IPv6 支援,
否則 pf 模組同時也需要 <literal>options INET6</literal>,也就是 IPv6 支援。</para>
<para>這個模組會假設 kernel 內已有 <literal>options INET</literal> 和
<literal>device bpf</literal>。
除非編譯 kernel 時已在像是 &man.make.conf.5; 設定檔中加入
<literal>NOINET6</literal>(
&os; 6.0 以後的版本則是 <literal>NO_INET6</literal>)
這樣才會避免不打開 IPv6 支援,
否則 pf 模組同時也需要 <literal>options INET6</literal>,也就是 IPv6
支援。</para>
</note>
<para>一旦載入 PF 的 kernel 模組或是靜態編譯入 kernel 內,
就可以使用 <command>pfctl</command> 來啟動或關閉 <application>pf</application>。</para>
就可以使用 <command>pfctl</command> 來啟動或關閉
<application>pf</application>。</para>
<para>下面這個例子示範如何啟動 <application>pf</application></para>
<screen>&prompt.root; <userinput>pfctl -e</userinput></screen>
<para><command>pfctl</command> 是使用 <application>pf</application> 防火牆的指令。
若要了解更詳盡的 <command>pfctl</command> 運用,請查閱 &man.pfctl.8; 線上手冊。</para>
<para><command>pfctl</command> 是使用 <application>pf</application>
防火牆的指令。 若要了解更詳盡的 <command>pfctl</command> 運用,請查閱
&man.pfctl.8; 線上手冊。</para>
</sect2>
<sect2>
@ -260,14 +260,18 @@
device pflog
device pfsync</programlisting>
<para><literal>device pf</literal> 是用來啟動「packet filter(封包過濾)」的防火牆支援。</para>
<para><literal>device pf</literal> 是用來啟動「packet filter(封包過濾)」
的防火牆支援。</para>
<para>而 <literal>device pflog</literal>,此功能要裝不裝皆可,它會啟動 &man.pflog.4;,以 &man.bpf.4; 格式來記錄網路流量。
&man.pflogd.8; daemon 則是用來紀錄這些訊息,並存在硬碟上。</para>
<!-- psilotum:20060311 參考 zh_CN 翻譯 -->
<para>而 <literal>device pflog</literal>,此功能要裝不裝皆可,它會啟動
&man.pflog.4;,以 &man.bpf.4; 格式來記錄網路流量。
&man.pflogd.8; daemon 則是用來紀錄這些訊息,並存在硬碟上。</para>
<!-- psilotum:20060311 參考 zh_CN 翻譯 -->
<para><literal>device pfsync</literal>,此功能要裝不裝皆可,它會啟動 &man.pfsync.4;,可以用來監控「狀態的改變」。
請注意:<literal>device pfsync</literal>並不是 kernel 動態模組,要使用的話,必須要編入自訂的 kernel 中才行。</para>
<para><literal>device pfsync</literal>,此功能要裝不裝皆可,它會啟動
&man.pfsync.4;,可以用來監控「狀態的改變」。 請注意:
<literal>device pfsync</literal>並不是 kernel 動態模組,要使用的話,
必須要編入自訂的 kernel 中才行。</para>
<para>這些設定將會在你編譯及安裝好新 kernel 後才會生效。</para>
</sect2>
@ -309,7 +313,8 @@ options ALTQ_NOPCC # Required for SMP build</programlisting>
<para><literal>options ALTQ</literal> 是啟用 <acronym>ALTQ</acronym> 主架構。</para>
<para><literal>options ALTQ_CBQ</literal> 會啟用「<acronym>CBQ</acronym>」(Class Based Queuing, )支援。
<para><literal>options ALTQ_CBQ</literal> 會啟用「<acronym>CBQ</acronym>」
(Class Based Queuing)支援。
<acronym>CBQ</acronym> 允許你
divide a connection's bandwidth into different
classes or queues to prioritize traffic based on filter