一级女人毛片人一女人-一级女性大黄生活片免费-一级女性全黄久久生活片-一级女性全黄生活片免费-国产美女在线一区二区三区-国产美女在线观看

始創于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊有禮 登錄
  • 掛牌上市企業
  • 60秒人工響應
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補償
您的位置: 網站首頁 > 幫助中心>文章內容

基于Linux系統的包過濾防火墻(1)

發布時間:  2012/9/14 18:47:01

第1 章、基于路由器的包過濾防火墻
1.1 包過濾防火墻的一般概念
1.1.1 什么是包過濾防火墻
包過濾防火墻是用一個軟件查看所流經的數據包的包頭(header),由此決定整個包的命運。它可能會決定丟棄(DROP)這個包,可能會接受(ACCEPT)這個包(讓這個包通過),也可能執行其它更復雜的動作。
在Linux系統下,包過濾功能是內建于核心的(作為一個核心模塊,或者直接內建),同時還有一些可以運用于數據包之上的技巧,不過最常用的依然是查看包頭以決定包的命運。
1.1.2 包過濾防火墻的工作層次
包過濾是一種內置于Linux內核路由功能之上的防火墻類型,其防火墻工作在網絡層。
1.1.3 包過濾防火墻的工作原理
(1)使用過濾器。數據包過濾用在內部主機和外部主機之間,        過濾系統是一臺路由器或是一臺主機。過濾系統根據過濾規則來決定是否讓數據包通過。用于過濾數據包的路由器被稱為過濾路由器。
數據包過濾是通過對數據包的IP頭和TCP頭或UDP頭的檢查來實現的,主要信息有:
* IP源地址
* IP目標地址
* 協議(TCP包、UDP包和ICMP包)
* TCP或UDP包的源端口
* TCP或UDP包的目標端口
* ICMP消息類型
* TCP包頭中的ACK位
* 數據包到達的端口
* 數據包出去的端口
在TCP/IP中,存在著一些標準的服務端口號,例如,HTTP的端口號為80。通過屏蔽特定的端口可以禁止特定的服務。包過濾系統可以阻塞內部主機和外部主機或另外一個網絡之間的連接,例如,可以阻塞一些被視為是有敵意的或不可信的主機或網絡連接到內部網絡中。
(2)過濾器的實現。數據包過濾一般使用過濾路由器來實現,這種路由器與普通的路由器有所不同。
普通的路由器只檢查數據包的目標地址,并選擇一個達到目的地址的最佳路徑。它處理數據包是以目標地址為基礎的,存在著兩種可能性:若路由器可以找到一個路徑到達目標地址則發送出去;若路由器不知道如何發送數據包則通知數據包的發送者“數據包不可達”。
過濾路由器會更加仔細地檢查數據包,除了決定是否有到達目標地址的路徑外,還要決定是否應該發送數據包。“應該與否”是由路由器的過濾策略決定并強行執行的。
路由器的過濾策略主要有:
* 拒絕來自某主機或某網段的所有連接。
* 允許來自某主機或某網段的所有連接。
* 拒絕來自某主機或某網段的指定端口的連接。
* 允許來自某主機或某網段的指定端口的連接。
* 拒絕本地主機或本地網絡與其它主機或其它網絡的所有連接。
* 允許本地主機或本地網絡與其它主機或其它網絡的所有連接。
* 拒絕本地主機或本地網絡與其它主機或其它網絡的指定端口的連接。
* 允許本地主機或本地網絡與其它主機或其它網絡的指定端口的連接。
1.1.4 包過濾器操作的基本過程
下面做個簡單的敘述:
(1)包過濾規則必須被包過濾設備端口存儲起來。
(2)當包到達端口時,對包報頭進行語法分析。大多數包過濾設備只檢查IP、TCP、或UDP報頭中的字段。
(3)包過濾規則以特殊的方式存儲。應用于包的規則的順序與包過濾器規則存儲順序必須相同。
(4)若一條規則阻止包傳輸或接收,則此包便不被允許。
(5)若一條規則允許包傳輸或接收,則此包便可以被繼續處理。
(6)若包不滿足任何一條規則,則此包便被阻塞。
1.1.5 包過濾技術的優缺點
(1)優點:
→對于一個小型的、不太復雜的站點,包過濾比較容易實現。
→因為過濾路由器工作在IP層和TCP層,所以處理包的速度比代理服務器快。
→過濾路由器為用戶提供了一種透明的服務,用戶不需要改變客戶端的任何應用程序,也不需要用戶學習任何新的東西。因為過濾路由器工作在IP層和TCP層,而IP層和TCP層與應用層的問題毫不相關。所以,過濾路由器有時也被稱為“包過濾網關”或“透明網關”,之所被稱為網關,是因為包過濾路由器和傳統路由器不同,它涉及到了傳輸層。
→過濾路由器在價格上一般比代理服務器便宜。
(2)缺點:
→一些包過濾網關不支持有效的用戶認證。
→規則表很快會變得很大而且復雜,規則很難測試。隨著表的增大和復雜性的增加,規則結構出現漏洞的可能  性也會增加。
→這種防火墻最大的缺陷是它依賴一個單一的部件來保護系統。如果這個部件出現了問題,會使得網絡大門敞開,而用戶其至可能還不知道。
→在一般情況下,如果外部用戶被允許訪問內部主機,則它就可以訪問內部網上的任何主機。
→包過濾防火墻只能阻止一種類型的IP欺騙,即外部主機偽裝內部主機的IP,對于外部主機偽裝外部主機的IP欺騙卻不可能阻止,而且它不能防止DNS欺騙。
雖然,包過濾防火墻有如上所述的缺點,但是在管理良好的小規模網絡上,它能夠正常的發揮其作用。一般情況下,人們不單獨使用包過濾網關,而是將它和其他設備(如堡壘主機等)聯合使用。
1.2 Netfilter/iptables架構
1.2.1 Linux下的包過濾防火墻管理工具
從1.1內核開始,Linux系統就已經具有包過濾功能了,隨著Linux內核版本的不斷升級,Linux下的包過濾系統經歷了如下3個階段:
→ 在2.0的內核中,采用ipfwadm來操作內核包過濾規則。
→ 在2.2的內核中,采用ipchains來控制內核包過濾規則。
→  在2.4內核中,采用一個全新的內核包過濾管理工具—iptables.
Linux因其健壯性、可靠性、靈活性以及幾乎無限范圍的可定制性而在IT界變得非常受歡迎。Linux具有許多內置的能力,使開發人員可以根據自己的需要定制其工具、行為和外觀,而無需昂貴的第三方工具。如果Linux系統連接到因特網或LAN、服務器或連接LAN和因特網的代理服務器,所要用到的一種內置能力就是針對網絡上Linux系統的防火墻配置。可以在Netfilter/iptables IP信息包過濾系統(它集成在2.4.x版本的Linux內核中)的幫助下運用這種能力。Netfilter/iptables是與最新的2.4.x版本 Linux內核集成的IP信息包過濾系統。
與ipfwadm和ipchains這樣的Linux信息包過濾方案相比,Netfilter/iptables信息包過濾系統是最新的解決方案,使用戶更易于理解其工作原理,也具有更為強大的功能。對于Linux系統管理員、網絡管理員以及家庭用戶(他們想要根據自己特定的需求來配置防火墻、在防火墻解決方案上節省費用和對IP信息包過濾具有完全控制權)來說,Netfilter/iptables系統十分理想,且更容易被使用。
1.2.2 新一代的Netfilter網絡底層架構
Netfilter是一種內核中用于擴展各種網絡服務的結構化底層構架。Netfilter的設計思想是生成一個模塊結構使之能夠比較容易的擴展。新的特性加入到內核中并不需要重新啟動內核。這樣,可以通過簡單的構造一個內核模塊來實現網絡新特性的擴展。為底層的網絡特性擴展帶來了極大的便利,使更多從事網絡底層研發的人員能夠集中精力實現新的網絡特性。
事實上,我們可以將Netfilter視為網絡協議堆棧中可以讓其它模塊操作網絡數據包的一系列“鉤子”,在數據包通過協議堆棧的某些特定的點上, Netfilter框架允許一個模塊轉發或丟棄數據包、通過某種方式改變數據包、在用戶空間(非內核模式)對包進行排隊,當然也可以根本不去干涉它。
(1)Netfilter/iptables系統的含義。Linux 2.4內核中Netfilter是新的用來實現防火墻的過濾器。 iptables是用來指定Netfilter規則的用戶工具。
Iptables只是一個管理內核包過濾的工具,它為用戶配置防火墻規則提供了方便。
Iptables可以加入、插入或刪除核心包過濾表格(鏈)中的規則。實際上真正來執行這些規則的netfilter及其相關模塊(如iptables模塊和nat模塊等)。
因此,要使用Netfilter/iptables系統,必須首先有2.4版本內核的相關支持,同時必須安裝iptables軟件包。在Red Hat 9.0發行版中,此系統是默認的配置。
(2)使用Netfilter/iptables替代ipchains的原因:
→連接跟蹤
→自動碎片重裝
→改良的匹配規則
→增強的日志功能
→允許撕裂包中的任何信息
→用戶隊列允許用戶空間對包進行編程
→支持內置包轉發而舍棄了IPMASQANDM
(3)Netfilter/iptables系統的主要功能
→狀態包過濾(連接跟蹤)
→各種網絡地址翻譯
→靈活、易擴展的急智機制
→大量的增強型補丁包
(4)Netfilter/iptables的用途
→建立Internet防火墻和基于狀態的包過濾
→用NAT和偽裝(masquerading)共享上網
→用NAT實現透明代理
→用修改IP包頭的ToS字段來實現更復雜的功能
→和tc+iprouter2配合使用可以實現QoS路由
(5)Netfilter/iptables系統的優點。Netfilter/iptables的最大優點是它可以配置有狀態的防火墻,這是 ipfwadm和ipchains等以前的工具都無法提供的一種重要功能。有狀態的防火墻能夠指定并記住為發送或接收信息包所建立的連接的狀態。防火墻可以從信息包的連接跟蹤狀態獲得該信息。在決定新的信息包過濾時,防火墻所使用的這些狀態信息可以增加其效率和速度。有4種有效狀態,名稱分別為 ESTABLISHED、INVALID、NEW和RELATED。其中:
→狀態ESTABLISHED指出該信息包屬于已建立的連接,該連接一直用于發送和接收信息包并且完全有效。
→狀態INVALID指出該信息包與任何已知的流或連接都不相關聯,它可能包含錯誤的數據或頭。
→狀態NEW意味著該項信息包已經或將啟動新的連接,或者它與尚味用于發送和接收信息包的連接相關聯。
→狀態RELATED表示該信息包正在啟動新連接,以及它與已建立的連接相關聯。
Netfilter/iptables的另一個重要優點是,它使用戶可以完全控制防火墻配置和信息包過濾。您可以定制自己的規則來懣足您的特定需求,從而只允許您想要的網絡流量進入系統。
此外,Netfilter/iptables是免費的,這對于那些想要節省費用的人來說十分理想,它可以代替昂貴的防火墻解決方案。
總之,最新的Linux內核2.4.x具有Netfilter/iptables系統這種內置的IP信息包過濾工具,它使配置防火墻和信息包過濾變得便宜且方便。Netfilter/iptables系統使其用戶可以完全控制防火墻配置和信息包過濾。它允許為防火墻建立可定制化的規則來控制信息包過濾。它還允許配置有狀態的防火墻。
1.2.3 Netfilter/iptables的內核空間和用戶空間
雖然netfilter/iptables IP信息包過濾系統被稱為單個實體,但它實際上由兩個組件netfilter和iptables組成。
(1)內核空間。Netfilter組件也稱為內核空間(KernelSpace),是內核的一部分,由一些“表”(table)組成,每個表由若干“鏈”組成,而每條鏈中可以有一條或數條規則(rule)。
(2)用戶空間。Iptables組件是一種工具,也稱為用戶空間(userspace),它使插入、修改和除去信息包過濾表中的規則變得容易。
1.2.4 Netfilter/iptables過濾系統是如何工作的
Netfilter/iptables IP信息包過濾系統是一種功能強大的工具,可用于添加、編輯和除去規則,這些規則是在做包過濾決定時所遵循的依據。這些規則存儲在專用的信息包過濾表中,而這些表集成在Linux內核中。在信息包過濾表中,規則被分組在鏈(chain)中。
(1)用戶使用iptables命令在用戶空間設置過濾規則。通過使用用戶空間可以構建用戶自己的定制過濾規則,這些規則存儲在內核空間的信息包過濾表中。這些規則具有目標,它們告訴內核對來自某些源、前往某些目的地或具有某些協議類型的信息包做些什么。如果某個信息包與規則匹配,那么使用目標 ACCEPT允許該信息包通過。還可以使用目標DROP或REJECT來阻塞并殺死信息包。對于可對信息包執行的其它操作,還有許多其它目標。
根據規則所處理的信息包的類型,可以將規則分組在鏈中。
→處理入站信息包的規則被添加到INPUT鏈中。
→處理出站信息包的規則被添加到OUTPUT鏈中。
→處理正在轉發的信息包的規則被添加到FORWARD鏈中。
這3個鏈是系統默認的表(filter)中內置的3個默認主鏈。每個鏈都有一個策略,它定義默認目標,也就是要執行的默認操作,當信息包與鏈中的任何規則都不匹配時,執行此操作。
(2)內核空間接管過濾工作。當規則建立并將鏈放在filter表之后,        就可以開始進行真正的信息包過濾工作了。這時內核空間從用戶空間接管工作。
包過濾工作要經過如下的步驟:
1)路由。當信息包到達防火墻時,內核先檢查信息包的頭信息,尤其是信息包的目的地。我們將這個過程稱為路由。
2)根據情況將數據包送往包過濾表(filter)的不同的鏈。
→如果信息包源自外界并且數據包的目的地址是本機,而且防火墻是打開的,那么內核將它傳遞到內核空間信息包過濾表的INPUT鏈。
→如果信息包源自系統本機,并且此信息包要前往另一個系統,那么信息包被傳遞到OUTPUT鏈。
→信息包源自廣域網前往局域網或相反方向的信息包被傳遞到FORWARD鏈。
3)規則檢查。將信息包的頭信息與它所傳遞到的鏈中的每條規則進行比較,看它是否與某條規則完全匹配。
→如果信息包與某條規則匹配,那么內核就對該信息包執行由該項規則的目標指定的操作。
&如果目標為ACCEPT,則允許該信息包通過,并將該包發給相應的本地進程處理。
&如果目標為DROP或REJECT,則不允許該信息包通過,并將該包阻塞并殺死。
→如果信息包與這條規則不匹配,那么它將與鏈中的下一條規則進行比較。
→最后,如果信息包與鏈中的任何規則都不匹配,那么內核將參考該鏈的策略來決定如何處理該信息包。理想的策略應該告訴內核DROP該信息包。
1.2.5 Red Hat linux 9中的Netfilter/iptables
Red Hat linux 9使用2.4版本的內核,并且內核的編譯選項中包含對Netfilter的支持,同時iptables軟件包是被默認安裝的,所以可以直接使用。
另外,為了完成轉發功能,必須打開系統內核的IP轉發功能。使Linux變成路由器。
在Red Hat中有兩種方法:
(1)修改內核變量ip_forward
#echo “1”>;/proc/sys/net/ipv4/ip_forward
(2)修改腳本/etc/sysconfig/network。
將FORWARD_IPV4=false
改為FORWARD_IPV4=true
如果有需要服務器的租用與托管的敬請聯系QQ:1501281758(億恩星辰)   聯系電話:0371—63322220


本文出自:億恩科技【www.laynepeng.cn】

服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線