Highslide for Wordpress Plugin

Linux 的防火牆為什麼功能這麼好?這是因為他本身就是由 Linux kernel 所提供, 由於直接經過核心來處理,因此效能非常好!不過,不同核心版本所使用的防火牆軟體是不一樣的! 因為核心支援的防火牆是逐漸演進來的嘛!

l Version 2.0:使用 ipfwadm 這個防火牆機制;

l Version 2.2:使用的是 ipchains 這個防火牆機制;

l Version 2.4 與 2.6 :主要是使用 iptables 這個防火牆機制,不過在某些早期的 Version 2.4 版本的 distributions 當中,亦同時支援 ipchains (編譯成為模組),好讓使用者仍然可以使用來自 2.2 版的 ipchains 的防火牆規劃。不過,不建議在 2.4 以上的核心版本使用 ipchains 喔!

因為不同的核心使用的防火牆機制不同,且支援的軟體指令與語法也不相同, 所以在 Linux 上頭設定屬於你自己的防火牆規則時,要注意啊,先用 uname -r 追蹤一下你的核心版本再說! 如果你是安裝 2004 年以後推出的 distributions ,那就不需要擔心了,因為這些 distributions 幾乎都使用 kernel 2.6 版的核心啊!

因為 iptables 是利用封包過濾的機制, 所以他會分析封包的表頭資料。根據表頭資料與定義的『規則』來決定該封包是否可以進入主機或者是被丟棄。 意思就是說:『根據封包的分析資料 “比對" 你預先定義的規則內容, 若封包資料與規則內容相同則進行動作,否則就繼續下一條規則的比對!』 重點在那個『比對與分析順序』上。

舉個簡單的例子,假設我預先定義 10 條防火牆規則好了,那麼當 Internet 來了一個封包想要進入我的主機, 那麼防火牆是如何分析這個封包的呢?我們以底下的圖示來說明好了:

image
圖2-5、封包過濾的規則動作及分析流程

當一個網路封包要進入到主機之前,會先經由 NetFilter 進行檢查,那就是 iptables 的規則了。 檢查通過則接受 (ACCEPT) 進入本機取得資源,如果檢查不通過,則可能予以丟棄 (DROP) ! 上圖主要的目的在告知您:『規則是有順序的』!例如當網路封包進入 Rule 1 的比對時, 如果比對結果符合 Rule 1 ,此時這個網路封包就會進行 Action 1 的動作,而不會理會後續的 Rule 2, Rule 3…. 等規則的分析了。而如果這個封包並不符合 Rule 1 的比對,那就會進入 Rule 2 的比對了!如此一個一個規則去進行比對就是了。 那如果所有的規則都不符合怎辦?此時就會透過預設動作 (封包政策, Policy) 來決定這個封包的去向。 所以啦,當您的規則順序排列錯誤時,就會產生很嚴重的錯誤了。

事實上,那個圖2-5所列出的規則僅是 iptables 眾多表格當中的一個鏈 (chain) 而已。 什麼是鏈呢?這得由 iptables 的名稱說起。為什麼稱為 ip"tables" 呢?因為這個防火牆軟體裡面有多個表格 (table) ,每個表格都定義出自己的預設政策與規則, 且每個表格都用途都不相同。我們可以使用底下這張圖來稍微瞭解一下:

image
圖2-6、iptables 的表格示意圖

預設的情況下,咱們 Linux 的 iptables 至少就有三個表格,包括管理本機進出的 filter 、管理後端主機 (防火牆內部的其他電腦) 的 nat 、管理特殊旗標使用的 mangle (較少使用) 。更有甚者,我們還可以自訂額外的鏈呢!真是很神奇吧!每個表格與其中鏈的用途分別是這樣的:

  • filter:主要跟 Linux 本機有關,這個是預設的 table 喔!
    • INPUT:主要與封包想要進入我們 Linux 本機有關;
    • OUTPUT:主要與我們 Linux 本機所要送出的封包有關;
    • FORWARD:這個咚咚與 Linux 本機比較沒有關係,他可以封包『轉遞』到後端的電腦中,與 nat 這個 table 相關性很高。
  • nat:這個表格主要在用作來源與目的之 IP 或 port 的轉換, 與 Linux 本機較無關,主要與 Linux 主機後的區域網路內的電腦較有相關。
    • PREROUTING:在進行路由判斷之前所要進行的規則(DNAT/REDIRECT)
    • POSTROUTING:在進行路由判斷之後所要進行的規則(SNAT/MASQUERADE)
    • OUTPUT:與發送出去的封包有關
  • mangle:這個表格主要是與特殊的封包的路由旗標有關, 早期僅有 PREROUTING 及 OUTPUT 鏈,不過從 kernel 2.4.18 之後加入了 INPUT 及 FORWARD 鏈。 由於這個表格與特殊旗標相關性較高,所以像咱們這種單純的環境當中,較少使用 mangle 這個表格。

幸好有lokkit這款工具,可以免卻我們逐字輸入表格檔的麻煩:

[root@team9807 ~]# lokkit

#進入設定畫面後選擇自訂,用空白鍵選取需要開放的服務端口

setenforce: SELinux is disabled

[root@team9807 ~]# service iptables restart

正在清除防火牆規則: [ 確定 ]

正在設定 chains 為 ACCEPT 政策: filter [ 確定 ]

正在卸載 iptables 模組: [ 確定 ]

正在套用 iptables 防火牆規則: [ 確定 ]

正在載入額外的 iptables 模組: ip_conntrack_netbios_ns ip_co[ 確定 ]p

另外,如果有安裝過Webmin的話,在網路=> Linux Firewall那邊也是可以設定防火牆的。

image

Reference Page:

http://linux.vbird.org/linux_server/0250simple_firewall.php

Related Posts with Thumbnails
留下迴響