国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 網絡通信 > 正文

菜鳥學堂之Iptables基礎絕對的基礎

2019-11-04 20:10:18
字體:
來源:轉載
供稿:網友

  前言
  防火墻在校園內一直被認為陌晦高深,很少有系管師有勇氣進行計劃性的實驗,基本上這份講義也可以當成測試報告來閱讀,是筆者秉持我不入地獄、誰入地獄的精神,冒著生命危險,蠻干出來的成果,也藉此拋磚引玉,希望能帶動國內能力高于筆者許多的眾家高手,一起來進行有利于校園網絡的公益研究!
  
  一、什么是防火墻
  防火墻是一套能夠在兩個或兩個以上的網絡之間,明顯區隔出實體線路聯機的軟硬件設備組合。被區隔開來的網絡,可以透過封包轉送技術來相互通訊,透過防火墻的安全治理機制,可以決定哪些數據可以流通,哪些資料無法流通,藉此達到網絡安全保護的目的。
  防火墻產品可以概略歸類為硬件式防火墻和軟件式防火墻,但實際上無論是硬件式或軟件式防火墻,它們都需要使用硬件來作為聯機介接,也需要使用軟件來設定安全政策,嚴格說兩者間的差別并不太大。我們只能從使用的硬件與操作系統來加以區分,硬件式防火墻是使用專有的硬件,而軟件式防火墻則使用一般的計算機硬件,硬件式防火墻使用專有的操作系統,而軟件式防火墻則使用一般的操作系統。
  防火墻依照其運作方式來分類,可以區分為封包過濾式防火墻 (Packet Filter) 、應用層網關式防火墻 (application-Level Gateway,也有人把它稱為 PRoxy 防火墻)、電路層網關式防火墻 (Circuit-Level Gateway)。其中被廣為采用的是封包過濾式防火墻,本文要介紹的 iptables 防火墻就是屬于這一種。
  封包過濾是最早被實作出來的防火墻技術,它是在 TCP/IP 四層架構下的 IP 層中運作。封包過濾器的功能主要是檢查通過的每一個 IP 數據封包,假如其標頭中所含的數據內容符合過濾條件的設定就進行進一步的處理,主要的處理方式包含:放行(accept)、丟棄(drop)或拒絕(reject)。要進行封包過濾,防火墻必須要能分析通過封包的來源 IP 與目的地 IP,還必須能檢查封包類型、來源埠號與目的埠號、封包流向、封包進入防火墻的網卡接口、TCP的聯機狀態等數據。
  防火墻由于種種理由價格一直居高不下,對于貧窮的中小學來講要采購一臺防火墻,簡直是不可能的任務,而由于 linux 的風行,使用 Linux 來充作軟件式防火墻,似乎是不錯的解決之道,本文擬介紹以 Linux 上最新最強大的 iptables 防火墻軟件,建置出適合學校使用的過濾規則,讓缺錢的學校能有一套好用的防火墻來看管校園網絡的大門。
  
  二、Linux 防火墻演變簡史
  Linux 最早出現的防火墻軟件稱為 ipfw,ipfw 能透過 IP 封包標頭的分析,分辨出封包的來源 IP 與目的地 IP、封包類型、來源埠號與目的埠號、封包流向、封包進入防火墻的網卡界面......等,并藉此分析結果來比對規則進行封包過濾,同時也支持 IP 偽裝的功能,利用這個功能可以解決 IP 不足的問題,可惜這支程序缺乏彈性設計,無法自行建立規則組合(ruleset)作更精簡的設定,同時也缺乏網址轉譯功能,無法應付越來越復雜的網絡環境,而逐漸被淘汰。
  取而代之的 ipchains,不但指令語法更輕易理解,功能也較 ipfw 優越;ipchains 答應自訂規則組合(ruleset),稱之為 user-define chains,透過這種設計,我們可以將彼此相關的規則組合在一起,在需要的時候跳到該組規則進行過濾,有效將規則的數量大幅縮減,以往 ipfw 僅能進行循序過濾,導致規則又臭又長的毛病,就不藥而愈了。除了這個明顯的好處以外,ipchains 并能結合本身的端口對應功能和 redir 程序的封包轉送機制,模擬出網址轉譯的能力,而滿足 NAT 的完整需求,堪稱為一套成熟的防火墻作品。
  防火墻軟件的出現,確實曾經讓駭客們晚上睡不著覺,因為防火墻的阻隔能夠有效讓內部網絡不設防的單機不致于暴露在外,也能有效降低服務器的能見度,減少被攻擊的機會,駭客過去所用的網絡探測技術因此受到嚴格的挑戰,越來越多的攻擊對象躲藏在防火墻后方,讓駭客難以接近,因此必須針對新的情勢,研究出新的探測技術,藉以規避防火墻的檢查,達到發現目標并進而攻擊入侵的目的,新的技術非常多,本文并不擬進一步討論,請自行參考 CERT 組織的技術文件,網址是 www.cert.org ,想看中文請連到 www.cert.org.tw。
  iptables 作為 ipchains 的新一代繼續人,當然也針對駭客不斷推陳出新的探測技術擬出一些因應之道,那就是對封包的聯機狀態,作出更具體的分析,例如:是否為新聯機或響應封包、是否為轉向聯機、聯機是否失去響應,聯機時間是否過長......等等,透過這樣的分析能對一些可能被駭客利用的弱點加以阻隔(請詳見后文的說明),另外也開發出真正的封包改寫能力,不需要透過其它程序的協助來仿真網址轉譯,除此之外,iptables 也獲得系統核心的直接支持,不需要像 ipchains 那樣需要自行重新編譯核心。
  iptables 優越的性能使它取代了 ipchains,成為網絡防火墻的主流,而 ipchains 并未被淘汰,目前 ipchains 已經轉型成單機防火墻,在安裝新版 Linux 時,會自動被安裝啟用,以保護單機上未被使用的通訊端口。
  
  三、iptables 防火墻概論
  iptables 防火墻的指令非常類似于 ipchains,使用過 ipchains 的人應該很輕易上手,但是 iptables 的機制與 ipchains 有很大的不同,使用 ipchains 的概念來設定規則,將會使防火墻無法正常運作。ipchains 跟 iptables 最大的不同在于對 INPUT、FORWARD 、OUTPUT 三個網絡函式的定義不同,這三個網絡函式是 TCP/IP 驅動程序的一部分,結構如下圖所示,是介于網卡驅動程序和應用程序的中間,Linux 核心預設會啟用 INPUT、OUTPUT 和 LOOPBACK,而 FORWARD 函式則必須自行啟用,可以使用下面指令,或直接修改 /etc/sysconfig/network 組態檔:
  echo "1" > /proc/sys/net/ipv4/ip_forward
  左圖為 ipchains 概念下的運作圖
  從上圖可以知道 ipchains 如何處理封包的流動,分述如下:
  • IP INPUT:所有封包都由 IP INPUT 函式負責處理,所以設定過濾規則時,幾乎都是設定在 INPUT 規則煉上。
  • IP FORWARD:目的 IP 非本機的 IP,這些封包需要進一步作轉送處理,此函式用來處理 IP 偽裝和 Port 轉送。
  • IP OUTPUT:所有流出的封包都由這個函式處理,通常不需設定任何規則。
  iptables 除了上述三支函式以外,還使用兩個新的函式:Prerouting、Postrouting?,F在來比較一下 iptables 的運作模式(loopback 接口與上圖相同,所以省略不畫):
  
  從上圖可以知道 iptables 如何處理封包的流動,分述如下:
  • IP INPUT:只有要到達本機的封包才會 由 INPUT 函式處理,所以會讓來自內部網絡的封包無條件放行,來自外部網絡的封包則過濾是否為 響應封包,若是則放行。
  • PREROUTING:需要轉送處理的封包由此函式負責處理,此函式用來做目的地 IP 的轉譯動作(DNAT)。
  • IP FORWARD:所有轉送封包都在這里處理,這部分的過濾規則最復雜。
  • POSTROUTING:轉送封包送出之前,先透過這個函式進行來源 IP 的轉譯動作(SNAT)。
  • IP OUTPUT:從本機送出去的封包由這個函式處理,通常會放行所有封包。
  iptables 和 ipchains 都可以自行定義規則群組(rule-set),規則群組被稱為規則煉(chains),前面所描述的函式,也都有相對應的規則煉(INPUT、FORWARD、OUTPUT、Prerouting、Postrouting),為了有別于自行定義的規則煉,這些規則煉我們就稱為內建規則煉,其運作流程仿真如下圖:
  
  
  從上面兩張假想圖,學員們不難了解 ipchains 為什么要叫做 chains,因為它是將所有規則串接成一個序列逐一檢查過濾,就像一條鐵鏈一樣一個環接一個環,在過濾過程中只要符合其中一條規則就會立即進行處理,假如處理動作是跳到某個規則群組,則繼續檢查群組內之規則設定,但假如處理動作是 ACCEPT、REJECT、DROP、REDIRECT 或 MASQUERADE,則會中斷過濾程序,而不再繼續檢查后面的規則設定,在這樣的結構之下,有時候規則順序的對調會產生完全相反的結果,這一點在設定防火墻時不能不謹慎。
  而 iptables 是采用規則堆棧的方式來進行過濾,當一個封包進入網卡,會先檢查 Prerouting,然后檢查目的 IP 判定是否需要轉送出去,接著就會跳到 INPUT 或 Forward 進行過濾,假如封包需轉送處理則檢查 Postrouting,假如是來自本機封包,則檢查 OUTPUT 以及 Postrouting。過程中假如符合某條規則將會進行處理,處理動作除了 ACCEPT、REJECT、DROP、REDIRECT 和 MASQUERADE 以外,還多出 LOG、ULOG、DNAT、SNAT、MIRROR、QUEUE、RETURN、TOS、TTL、MARK 等,其中某些處理動作不會中斷過濾程序,某些處理動作則會中斷同一規則煉的過濾,并依照前述流程繼續進行下一個規則煉的過濾(注重:這一點與 ipchains 不同),一直到堆棧中的規則檢查完畢為止。透過這種機制所帶來的好處是,我們可以進行復雜、多重的封包過濾,簡單的說,iptables 可以進行縱橫交錯式的過濾(tables)而非煉狀過濾(chains)。
  雖然 iptables 為了擴充防火墻功能,而必須采用比較復雜的過濾流程,但在實際應用時,同一規則煉下的規則設定還是有先后順序的關系,因此在設定規則時還是必須注重其中的邏輯。
  
  四、訂定校園網絡安全政策
  在實際設定防火墻之前,我們必須根據校園網絡的安全需求,先擬定一份安全政策,擬定安全政策前必須搜集以下資料:
  1. 找出需要過濾保護的服務器
  2. 條列出被保護的服務器將提供何種網絡服務
  3. 一般工作站,需要何種等級的保護
  4. 了解網絡架構與服務器擺放位置
  根據這些數據,我們可以決定安全政策,以石牌國小為例:
  1. 校內使用 NAT 虛擬網絡,IP 數量需要兩組 C,所有 IP 均需作 IP 偽裝
  2. 校園內安全


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嵊泗县| 博白县| 霞浦县| 治多县| 西华县| 黔西| 监利县| 道孚县| 措勤县| 宝丰县| 麻江县| 璧山县| 滨海县| 平度市| 平邑县| 文化| 武隆县| 台北市| 两当县| 托里县| 兰州市| 扬中市| 彭阳县| 福清市| 澄江县| 敖汉旗| 商水县| 郴州市| 疏附县| 山丹县| 泰来县| 钟山县| 绥棱县| 连山| 文水县| 明溪县| 泸州市| 乌鲁木齐县| 乌拉特中旗| 婺源县| 高阳县|