- Cleanup whitespace
Obtained from: The FreeBSD Traditional Chinese Project https://opensvn.csie.org/traccgi/freebsddoc/wiki
This commit is contained in:
parent
4cf3369c7d
commit
84681e1751
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=31049
1 changed files with 73 additions and 68 deletions
|
@ -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; 5.3 版也是第一次將 <acronym>PF</acronym>
|
||||
整合為基礎系統的一部分。
|
||||
而 2004 年 11 月份所發行的 &os; 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
|
||||
|
|
Loading…
Reference in a new issue