posts - 167,  comments - 30,  trackbacks - 0

          Iptables

          感覺防火墻可能不能完美的保護主機,比如ping措施,這時,就需要使用iptables來進行配置。

          使用Iptables的內置firewall機制,是通過kernel中的netfilter        模塊實現的,Linux kernel使用netfilter對進出數據包進行過濾,netfilter由三個規則表組成,每個表又有許多內建的鏈組成。使用iptables命令可以對這些表鏈進行操作,如添加、刪除、列出規則等。

          Netfilter 規則表 --- filter nat managle

          filter用于路由網絡數據包。是默認的,也就是說如果沒有指定-t參數,當創建一條新規則時,他默認存放到該表內。

          INPUT 網絡數據包流向服務器

          OUTPUT 網絡數據包從服務器流出

          FORWARD 網絡數據包經服務器路由

          nat 用于NAT Net Address Translation 是一種IP地址轉換方法

          PREROUTING 網絡數據包到達服務器時可以被修改

          POSTROUTING 網絡數據包在即將從服務器發出時可以被修改

          managle 用于修改網絡數據包的表

           

          配置iptables

          當數據包進入服務器時,Linux kernel會查找對應的鏈,直到找到一條規則與數據包匹配。如果該規則的targetACCEPT,就會跳過剩下的規則,數據包會繼續被傳送。如果該規則targetDROP,該數據包會被攔截掉,kernel不會在參考其他規則。

           

          Note:如果從始至終都沒有一條規則與數據包匹配,而且表末尾有沒有drop all規則,那么該數據包會被acceptCisco則相反,在表末尾會因含deny all的規則。

          1)     iptables命令選項

          iptables [-t iptables ] command option parameter target

          -A 在鏈尾添加一條規則

          -C 將規則添加到用戶定義鏈之前對其進行檢查

          -D 從鏈中刪除一條規則

          -E重命名用戶定義的鏈,不改變鏈本身

          -F 清空鏈,刪除鏈上的所有規則

          -I在鏈中插入一條規則

          -L 列出某個鏈上的規則,如:iptables –L INPUT 列出INPUT鏈上的規則

          -N 創建一個新鏈

          -P 定義某個鏈的默認策略

          -R替換鏈上的某條規則

          -X 刪除某個用戶相關的鏈

          -Z 將所有表的所有鏈的字節和數據包統計數器清零

          2)     Iptables的命令參數

          -p protocol

          應用于數據包的協議類型,可以是TCP UDP ICMP ALL ! 也可以

          當使用-p tcp時,還可使用其他可選項,一邊允許進一步定義規則,選項如下:

          -sport 允許指定匹配數據包源端口 port1:port2表示port1port2之間的所有端口

          -dport目的端口,和sport雷同

          當使用-p !udp 時,也有特殊的選項供使用

          -sport-dport-p tcp相同,只不過用于UDP

          使用-p icmp參數時,只有一個選項可用

          -icmp-type 允許在過濾規則中指定icmp類型

          -s source 指定數據包包的源地址,該參數后跟一個IP地址,一個帶有sub-net mask的網絡地址,或者一個主機名(不建議使用主機名)

          -d destination 數據包的目的地址 -s

          -j jump 用于指定一個target,告訴規則將該匹配的數據包發送到該targetTarget可以是ACCEPTDROPQUEIEPETURN。如果沒有-j,那么不會對數據包進行任何操作,只是將計數器加1

          -I in-interface 對于INPUT FOREARD PREROUTING鏈,指定數據包到達服務器時所使用的端口

          -o out-interface 對于OUTPUT FORWARD POSTROUTING,該參數指定數據包離開服務器時使用的端口

          3Iptables的命令target

          創建規則最后一步是指定iptables對數據包的操作。只要某一規則匹配該數據包,就不會再有別的規則的操作。內建的target有:ACCEPT 允許數據包通過 ,到達目的地

          DROP 拒絕數據包通過,丟棄該包

          QUEUE 將數據包發送回到用戶應用程序處理

          RETURN 不再根據當前鏈的其他規則來檢查數據包,而是直接返回,繼續被發送到其目的地址,或下一個鏈。

          2、示例:

          允許www

          Iptables –A INPUT –p tcp –dport 80 –j ACCEPT

          該規則被調價到filter表的INPUT鏈,允許目的端口為80的數據包通過

          在內部接口上允許DHCP

          Iptables –A INPUT –I eth0 –p tcp - - sport - - dport 67 ACCEPT

           Iptables –A INPUT –I eth0 –p udp - - sport - - dport 67 ACCEPT

          同時允許tcpudp協議

          3、保存和修改iptables

          使用iptables-save 可將現行的iptables規則保存

          恢復iptables

          使用iptables-restore可從配置文檔恢復iptables表到現行iptables表。

          posted on 2011-06-30 18:59 David1228 閱讀(397) 評論(0)  編輯  收藏 所屬分類: Linux

          <2011年6月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          常用鏈接

          留言簿(4)

          隨筆分類

          隨筆檔案

          文章檔案

          新聞分類

          新聞檔案

          相冊

          收藏夾

          Java

          Linux知識相關

          Spring相關

          云計算/Linux/虛擬化技術/

          友情博客

          多線程并發編程

          開源技術

          持久層技術相關

          搜索

          •  

          積分與排名

          • 積分 - 359318
          • 排名 - 154

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 克什克腾旗| 绿春县| 乌拉特中旗| 宁国市| 石景山区| 包头市| 东乌珠穆沁旗| 桦川县| 宣恩县| 铜梁县| 祁连县| 县级市| 鹤庆县| 万荣县| 镇江市| 金坛市| 石台县| 鹰潭市| 定远县| 建瓯市| 洮南市| 峨边| 中江县| 阜阳市| 密云县| 棋牌| 合山市| 大庆市| 中西区| 渑池县| 宁强县| 伊春市| 蓬安县| 读书| 巨野县| 璧山县| 营口市| 柘城县| 八宿县| 拉孜县| 岳池县|