《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 業界動態 > Linux內核防火墻netfilter的原理和應用

Linux內核防火墻netfilter的原理和應用

2009-09-16
作者:毛新宇

  摘? 要: 在分析ipchains缺陷的基礎上,著重介紹了Linux2.4版內核防火墻netfilter的結構框架、數據包的處理過程及配置工具iptables,并給出在Linux環境下使用iptables構建防火墻的實例。

  關鍵詞: 防火墻? Linux? netfilter

?

  近年來,Linux作為高性能的網絡操作系統得到了迅速發展,而Linux內核中所內嵌的防火墻起著重要作用。在Linux1.1版中使用的防火墻是從BSD UNIX中移植過來的ipfw;在Linux2.0版中則為ipfwadm;在Linux2.2版中為ipchains;而在新的2.4版中則是netfilter。

1?ipchains的缺陷

  Linux2.2版內核防火墻ipchains提供了基本的防火墻功能(如包過濾、地址偽裝、透明代理等),得到廣泛的應用。但是,ipchains也存在如下問題。

  (1)ipchains處理數據包的方式復雜(如IP偽裝和NAT)。NAT和ipchains是作為2個獨立的Linux項目各自開發的,后來才結合在一起使用,二者配合使用比較復雜。

  (2)輸入鏈描述整個進入IP層的規則,它不區分數據包是以該主機為目的地還是通過該主機中轉,混淆了input鏈和forward鏈。forward鏈只負責處理中轉的數據包,但它總跟在input鏈的后面。要區別進入的數據包和中轉的數據包,就必須編寫復雜的規則,效率就會下降。forward鏈和output鏈之間也存在同樣的問題。

  (3)ipchains沒有提供傳遞數據包到用戶空間的接口,任何對數據包進行處理的代碼都必須在內核空間運行,而內核編程復雜,對內核的穩定性構成威脅。

  (4)透明代理實現復雜,必須查看每個數據包判斷是否有專門處理該地址的Socket。

  (5)ipchains沒有采用開放型結構,用戶不能直接擴展ipchains的功能。

  為了解決這些問題,用戶需要一個開放的、擴展性好的內核防火墻。Linux2.4版提供了netfilter內核防火墻,它采用更完善的框架結構,具有許多新功能,如完整的動態NAT、基于用戶和MAC地址的過濾、真正基于狀態的過濾等。netfilter還實現了擴展過濾規則而不必修改內核。

2?netfilter的工作原理

2.1 netfilter的框架結構

  netfilter是Linux2.4內核中實現包過濾、NAT和包處理等的功能模塊,它已在IPv4、IPv6和DECnet等網絡協議棧中被實現。主要包括以下3部分。

  (1)Hook函數:netfilter為每種網絡協議(如IPv4、IPv6等)提供了一套Hook函數,如IPv4就有5個Hook函數。每個Hook函數分別定義了數據包進入協議棧的檢查點,當數據包流過檢查點時,協議棧將數據包和相關的Hook函數的標號作為參數來調用netfilter框架。

  (2)注冊:內核的任一模塊均可對每種協議的一個或多個Hook函數進行注冊,實現鏈接。當數據包通過netfilter時,netfilter檢查是否有模塊對該協議和Hook函數注冊,若已注冊,則將數據包傳給這些模塊處理。這些模塊就可以檢查、修改、丟棄或指示netfilter將該數據包傳送至用戶空間的隊列。

  (3)用戶空間隊列:傳送至用戶空間隊列的數據包是異步處理的,隊列中的數據包通過Hook函數被發送到用戶空間,在用戶空間中用戶進程可以檢查、修改數據包,還可以將該數據包通過離開內核的同一Hook函數重新注入到內核中。這樣,內核中就沒有用戶自編的代碼,有利于內核的穩定。

2.2 netfilter的數據包處理流程

  與ipchains相比,netfilter區分了數據包的類型。netfilter的數據包處理過程如圖1所示。數據包進入netfilter后,首先進行校驗和、完整性檢查;然后通過路由,確定數據包的類型,否則將數據包傳給輸入鏈,如果目的地址不是本機,則將數據包傳給轉發鏈;本地進程產生的數據包只經過輸出鏈,經路由轉發出去。每條鏈中可設1條或數條規則。當一個數據包到達一條鏈時,系統會從第一條規則開始檢查。若符合規則,則按規則定義的方法處理;若不符合,則繼續檢查下一條規則。如果該數據包不符合該鏈中任何一條規則,系統則按該鏈預先定義的策略來處理。

?

?

  下面以IPv4為例,說明數據包的處理流程及Hook函數在netfilter中的位置。在IPv4中Hook函數的位置如圖2所示。

?

?

  5個Hook函數分別是:(1)Hook1,NF_IP_ROUTING。(2)Hook2,NF_IP_LOCAL_IN。(3)Hook3,NF_IP_FORWARD。(4)Hook4,NF_IP_POST_ROUNTING。

  (5)Hook5,NF_IP_LOCAL_OUT。

  當一個數據包進入netfilter時,首先由Hook1進行目的地址轉換;然后經路由,將此數據包發往本機進程或轉發至其他主機。發往本機進程前,數據包要進入Hook2進行輸入包過濾;如果是轉發至其他主機,則數據包要進入Hook3進行轉發包過濾,再進入Hook4進行源地址轉換,最后發出本機;如果數據包由本地進程產生,則先進入Hook5進行輸出包過濾,然后經路由進入Hook4。這5個Hook函數運行結束后,將返回以下4個結果之一:

  (1)NF_DROP,丟棄此數據包。(2)NF_ACCEPT,允許此數據包繼續傳遞。(3)NF_STOLEN,Hook函數接收此數據包,不再繼續傳遞。(4)NF_QUEUE,將此數據包放入用戶空間隊列。

2.3 iptables的使用

??? iptables是用來配置netfilter過濾規則的工具。在使用iptable命令之前必須加載netfilter內核模塊,最簡單的方法是使用mod probe命令:mod probe ip_tables。

  利用iptables可以實現數據包過濾(Filter表)、數據包處理(Mangle表)和網絡地址轉換(NAT表)功能。內核模塊可注冊一個新的規則表(table),并規定數據包經過指定的規則表,以實現用戶所需的功能。iptables通過插入、刪除和修改規則鏈中的規則,可以對所有的IP表進行處理,包括Filter表、Mangle表和NAT表等。它支持插件以匹配新的參數和目標動作。因此對netfilter的擴展就很簡單,僅需編寫一個完成目標動作的處理模塊和iptables插件(動態鏈接庫)。以上3種數據包的處理功能都是基于netfilter的Hook函數和IP表,它們是相互獨立的模塊,都被集成到netfilter提供的框架內。

  iptables命令基本包括以下5部分:(1)工作在哪個表上(Filter、Mangle、NAT)。(2)使用該表的哪條鏈(input、output、forward)。(3)進行的操作(插入、添加、刪除、修改)。(4)對特定規則的目標動作。(5)匹配數據包的條件。

3?應用舉例

  使用iptables工具建立一個簡單的包過濾防火墻。

3.1 物理結構

  防火墻主機采用雙宿主機形式,eth0為外部網絡接口,eth1為內部網絡接口,主機操作系統采用RedHat7.1(Linux2.4內核)。防火墻要求:允許內部主機瀏覽外部網頁;允許外部主機瀏覽內部Web服務器;可以阻攔某些非法攻擊?,F假設內部網絡IP為202.206.230.00~25;Web服務器地址為202.206.230.75:80;DNS服務器地址為212.112.20.132。

3.2 防火墻的配置

3.2.1 系統設置

  以root用戶身份登錄,在/etc/rc.d/目錄下創建rc.firewall文件,執行命令“chmod 700 rc.firewall”。更改文件屬性,防止其他用戶對其訪問。再編輯/etc/rc.d/rc.local文件,在末尾加上sh/etc/rc.d/rc.firewall,這樣在開機時能自動執行該腳本。

3.2.2 配置步驟

  (1)清除所有鏈的規則

  # !/bin/sh

  /sbin/iptables-F

  (2)設置防火墻默認規則

  默認規則就是當數據包不匹配鏈上的任何規則時所采取的策略,此處采用禁止一切的默認策略,即:如果某個數據包沒有規則與之匹配,則該數據包將被禁止。

  /sbin/iptables-P INPUT DROP

  /sbin/iptables-P OUTPUT DROP

  /sbin/iptables-P FORWARD DROP

  (3)設置服務器的包過濾規則

  由于服務器/客戶機是雙向交互的,所以既要設置數據包出去的規則,又要設置數據包進來的規則。

 ?、僭试S對內部網服務器訪問。下面的一條規則是指:允許目的地址是內部網Web服務器且采用TCP協議的數據包通過。

  /sbin/iptables-A FORWARD-p tcp - d

            202.206.230.75 - -dport 80-i eth0- j ACCEPT

  /sbin/iptables-A FORWARD-p tcp - s

            202.206.230.75 - -sport80-o eth0- j ACCEPT

 ?、谠试S域名解析。對外部網服務器訪問應先開放域名解析服務。域名服務器的端口為53,該規則是:允許目的地址是DNS服務器且采用UDP協議的數據包通過。

  /sbin/iptables-A FOREARD-p udp- -dport 53 - d

            212.112.20.132 - o eth0-j ACCEPT

  /sbin/iptables-A FORWARD-p udp- -sport53 - s

            212.112.20.132 - i eth0- j ACCEPT

  ③允許對外部網服務器訪問。該規則是:允許目的端口為80、采用TCP協議,來自內部網地址的數據包通過。

  /sbin/iptables-A FORWARD-p tcp-s 202.206.230.00

           /25- -dport 80- o eth0-j ACCEPT

  /sbin/iptables-A FORWARD-p tcp- d 202.206.230.00

           /25 - -sport 80 -i eth0-j ACCEPT

  (4)阻攔非法攻擊

 ?、俜乐笽P碎片攻擊:接收所有的IP碎片,但對單位時間內通過的IP碎片數量進行限制,只允許每秒通過100個IP碎片。

  /sbin/iptables-A FORWARD-f-m limit- -limit

           100/s- -limit-burst 100-j ACCEPT

 ?、诜乐筽ing攻擊:ping是基于ICMP協議的一個常用網絡工具,但黑客常常利用它進行攻擊(如Ping Flooding、Ping of death等),所以必須對它的使用加以限制。允許每秒通過一個ICMP包,默認觸發條件是5個包。

  /sbin/iptables-A FORWARD-p icmp-m limit- -limit1/s - j ACCEPT

  通過以上的步驟,可以建立一個較完整的防火墻。只對外開放有限的端口,同時又允許用戶進行網絡訪問,并且還可以阻攔一些非法攻擊。在此基礎上,讀者還可以根據需要對防火墻進行其他設置,如開放FTP服務和電子郵件服務等。

4? 結束語

  netfilter是目前Linux各版本中較完善和強大的防火墻子系統,而且它兼容以前的ipfwadm和ipchains,并針對舊版本存在的缺陷進行了改進,使之更簡便、易用。由于Linux的高效、免費的特點,其在服務器領域得到越來越廣泛的應用。因此Linux防火墻子系統netfilter作為一種實現網絡安全的手段,也得到了廣泛的應用。

?

參考文獻

1? Ziegler R.Linux防火墻.北京:人民郵電出版社,2000

2? Rodrigues C.Introduce to Netfilter.http://www.gis.net/~craigr/netfilter,2001

3? Satchell S T,Clifford H B.Linux IP協議棧源代碼分析.北京:機械工業出版社,2000

4? Bandel D A.Linux安全開發工具.北京:電子工業出版社,2000

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美日韩精品三区| 久久精品99国产精品日本| 国产精品毛片a∨一区二区三区|国| 另类专区欧美制服同性| 亚洲一区二区3| 国产精品一区久久久久| 99热免费精品在线观看| 欧美日韩国产三级| 久久影视三级福利片| 好吊妞这里只有精品| 国产日产欧美精品| 国产精品日韩一区二区| 国产一区白浆| 亚洲午夜av电影| 久久精品日产第一区二区| 欧美午夜影院| 欧美亚洲一区二区在线观看| 亚洲精品美女在线| 久久久人成影片一区二区三区| 在线免费观看成人网| 欧美成人免费va影院高清| 欧美日韩国产成人精品| 久久久国产午夜精品| 久久久九九九九| 欧美黄色免费网站| 午夜视黄欧洲亚洲| 国产精品美女久久久久av超清| 欧美精品在线一区二区三区| 国产欧美精品久久| 欧美黑人在线播放| 一本久久知道综合久久| 久久夜色精品国产| 久久躁狠狠躁夜夜爽| 久久久人成影片一区二区三区| 免费亚洲一区二区| 亚洲欧美日韩中文播放| 亚洲国产欧美另类丝袜| 在线日韩精品视频| 亚洲盗摄视频| 女人天堂亚洲aⅴ在线观看| 蜜桃久久av一区| 国产精品日韩欧美一区二区| 国模吧视频一区| 亚洲男人第一av网站| 狠狠色丁香久久婷婷综合_中| 在线亚洲激情| 欧美不卡激情三级在线观看| 欧美高清视频一区| 久久免费国产| 国产欧美精品xxxx另类| 在线观看亚洲| 国产精品日韩久久久久| 美女国内精品自产拍在线播放| 亚洲一区二区三区影院| 日韩一区二区免费高清| 国产精品swag| 国产精品久久久久久av福利软件| 欧美v国产在线一区二区三区| 在线观看欧美精品| 欧美色图首页| 亚洲美女淫视频| 亚洲天堂偷拍| 欧美久久久久中文字幕| 国产日韩视频一区二区三区| 欧美国产欧美亚洲国产日韩mv天天看完整| 久久国产精品72免费观看| 久久精品国产免费观看| 国产日韩精品一区二区三区| 久久综合九色欧美综合狠狠| 99re在线精品| 久久久久久自在自线| 欧美精品一区三区| 蜜臀av在线播放一区二区三区| 久久久www成人免费毛片麻豆| 欧美亚洲三区| 欧美日韩在线一区二区| 国产综合亚洲精品一区二| 欧美a级一区| 99伊人成综合| 亚洲第一福利在线观看| 国产精品美女xx| 亚洲电影欧美电影有声小说| 韩国欧美一区| 久久久最新网址| 久久久亚洲一区| 日韩视频专区| 久久精品一区二区三区中文字幕| 亚洲激情图片小说视频| 欧美aaaaaaaa牛牛影院| 久久综合久久久久88| 久久久女女女女999久久| 亚洲第一精品久久忘忧草社区| 欧美激情久久久久| 欧美亚洲一区| 欧美网站在线| 久久天天综合| 久久久亚洲精品一区二区三区| 在线电影欧美日韩一区二区私密| 激情婷婷亚洲| 国产精品中文在线| 亚洲一区美女视频在线观看免费| 国产精品美女诱惑| 久久激五月天综合精品| 欧美视频免费在线观看| 一区国产精品| 欧美制服第一页| 一卡二卡3卡四卡高清精品视频| 国产精品综合不卡av| 久久精品国产2020观看福利| 国产精品高潮粉嫩av| 亚洲激情视频网| 你懂的视频一区二区| 久久www免费人成看片高清| 国产精品日韩精品欧美精品| 久久aⅴ国产欧美74aaa| 美女黄毛**国产精品啪啪| 国产一区二区电影在线观看| 亚洲精品国产欧美| 性欧美大战久久久久久久久| 国产视频在线一区二区| 欧美亚洲系列| 国产日韩欧美中文在线播放| 亚洲人成在线观看一区二区| 亚洲精品偷拍| 亚洲第一在线| 狠狠干成人综合网| 亚洲国产成人高清精品| 亚洲精品欧美在线| 国产精品红桃| 欧美日韩一区二区三区在线看| 国产麻豆午夜三级精品| 国产精品久久久久天堂| 国产精品无码永久免费888| 日韩小视频在线观看| 美女视频一区免费观看| 午夜精品久久久久久久久久久久久| 欧美视频在线一区二区三区| 国产精品日韩在线观看| 老司机精品久久| 国产手机视频一区二区| 亚洲伊人久久综合| 欧美视频不卡| 久久大逼视频| 欧美激情一区二区三级高清视频| 亚洲精品日韩激情在线电影| 欧美视频免费看| 亚洲男人第一网站| 欧美日本亚洲韩国国产| 国模叶桐国产精品一区| 亚洲国产精品一区二区www在线| 久久精品噜噜噜成人av农村| 亚洲午夜激情免费视频| 亚洲国产老妈| 1000部精品久久久久久久久| 国产亚洲综合性久久久影院| 国产伊人精品| 玉米视频成人免费看| 亚洲欧美激情在线视频| 久久久久国产精品一区三寸| 欧美国产精品va在线观看| 久久精品视频在线观看| 午夜免费在线观看精品视频| 中日韩男男gay无套| 欧美日韩一区在线视频| aⅴ色国产欧美| 亚洲香蕉网站| 国产日韩欧美日韩大片| 欧美在线影院| 久久精品亚洲精品| 久久国内精品视频| 欧美一区二区三区四区视频| 欧美日韩国产高清| 国产精品丝袜久久久久久app| 亚洲韩国精品一区| 亚洲午夜三级在线| 一区二区精品国产| 欧美精品手机在线| 亚洲国产精品99久久久久久久久| 亚洲欧美日韩国产综合| 欧美日韩国产欧美日美国产精品| 欧美成人午夜| 欧美专区中文字幕| 国产精品av一区二区| 欧美午夜女人视频在线| 欧美成熟视频| 国产精品亚洲综合天堂夜夜| 欧美日韩播放| 国产区精品在线观看| 久久精品国产一区二区三区免费看| 国产伦精品一区| 久久手机精品视频| 尤物99国产成人精品视频| 欧美va亚洲va香蕉在线| 欧美亚洲免费高清在线观看| 激情久久久久久久久久久久久久久久| 亚洲第一精品夜夜躁人人躁| 午夜免费久久久久| 亚洲国产欧美在线人成| 亚洲国产高清在线观看视频| 久久亚洲一区| 亚洲激情视频在线观看| 国产欧美在线视频| 欧美日韩国产色综合一二三四| 亚洲免费观看高清完整版在线观看熊| 欧美午夜不卡| 亚洲婷婷综合色高清在线| 欧美视频在线观看 亚洲欧| 亚洲高清网站| 香蕉久久夜色精品国产使用方法| 狠狠干成人综合网| 亚洲欧美www| 另类酷文…触手系列精品集v1小说| 洋洋av久久久久久久一区| 亚洲免费观看高清完整版在线观看| 欧美精品一区二区久久婷婷| 国产精品嫩草99a| 亚洲精品免费看| 国产精品久久二区二区| 久久精品一区二区国产| 国产精品乱人伦一区二区| 欧美午夜视频| 欧美精品在线免费| 欧美—级高清免费播放| 久久综合伊人77777蜜臀| 亚洲欧洲99久久| 久久综合狠狠综合久久激情| 欧美中文在线免费| 国产精品久在线观看| 亚洲成人在线网站| 欧美精品色一区二区三区| 亚洲激情婷婷| 蜜桃av一区| 亚洲午夜久久久| 午夜精品在线观看| 激情伊人五月天久久综合| 亚洲韩国精品一区| 欧美剧在线免费观看网站| 国产欧美三级| 亚洲精品久久久久中文字幕欢迎你| 欧美三日本三级少妇三2023| 国产精品高潮呻吟久久av黑人| 久久精品国产成人| 欧美激情一区二区三区四区| 91久久国产综合久久蜜月精品| 激情综合色综合久久综合| 欧美午夜不卡影院在线观看完整版免费| 欧美一区观看| 久久久精品国产免费观看同学| 欧美新色视频| 国内精品嫩模av私拍在线观看| 欧美体内she精视频在线观看| 亚洲国产精品www| 欧美激情性爽国产精品17p| 亚洲精品日产精品乱码不卡| 久久久精品国产免费观看同学| 午夜久久福利| 欧美日韩国产一区二区三区| 在线看日韩av| 国产精品免费一区豆花| 欧美在线视屏| 国产欧美日韩91| 亚洲精品视频中文字幕| 国产亚洲电影| 欧美国产日韩一区二区三区| 国产精品www| 欧美不卡视频一区发布| 久久久久久久久一区二区| 亚洲欧美综合一区| 久久亚洲春色中文字幕久久久| 欧美日韩在线不卡一区| 国产毛片一区二区| 国产精品久久久| 亚洲在线视频一区| 激情综合中文娱乐网| 国模私拍视频一区| 久久一区精品| 久久久久久国产精品mv| 欧美日韩国产综合视频在线观看中文| 亚洲一区日韩在线| 国产精品女主播在线观看| 亚洲欧美日韩在线一区| 久久综合999| 亚洲欧美www| 一区二区三区|亚洲午夜| 欧美精品v日韩精品v韩国精品v| 久久久高清一区二区三区| 亚洲免费高清视频| 久久久久成人精品免费播放动漫| 久久久久久亚洲精品杨幂换脸| 欧美成人视屏| 老鸭窝91久久精品色噜噜导演| 99精品视频一区二区三区| 亚洲欧洲一区二区在线播放| 蜜臀av性久久久久蜜臀aⅴ| 日韩一二三在线视频播| 欧美日韩亚洲一区二| 亚洲二区视频在线| 蜜臀久久久99精品久久久久久| 久久久综合香蕉尹人综合网| 国内外成人免费视频| 国产精品qvod| 六月婷婷一区| 亚洲国产高清自拍| 久热综合在线亚洲精品| 亚洲一级免费视频| 亚洲精品一区二区三区蜜桃久| 欧美中文字幕视频| 亚洲国产一区二区三区a毛片| 亚洲精品在线观看免费| 国内伊人久久久久久网站视频| 国产精品综合av一区二区国产馆| 国产伦精品一区二区三区视频黑人| 国内精品一区二区三区| 国产精品―色哟哟| 亚洲国产精品一区制服丝袜| 麻豆国产精品一区二区三区| 国产精品久久777777毛茸茸| 久久久久久亚洲精品不卡4k岛国| 亚洲黄色影片| 欧美一级专区免费大片| 亚洲欧洲一区二区三区久久| 国产精品成人在线观看| 国产精品进线69影院| 亚洲一区免费看| 欧美日韩精品一区二区天天拍小说| 国产精品女人毛片| 国产色爱av资源综合区| 欧美日韩一区二区免费在线观看|