一、Iptables原理
現在防火牆主要分以下三種類型:包過濾、應用代理、狀態檢測
包過濾防火牆:現在靜態包過濾防火牆市面上已經看不到了,取而代之的是動態包過濾技術的防火牆哈~
代理防火牆:因一些特殊的報文攻擊可以輕松突破包過濾防火牆的保護,比如大家知道的SYN攻擊、ICMP洪水攻擊,所以以代理服務器作為專門為用戶保密或者突破訪問限制的數據轉發通道的應用代理防火牆出現了哈~其使用了一種應用協議分析的新技術。
狀態檢測防火牆:其基於動態包過濾技術發展而來,加入了一種狀態檢測的模塊,進一點發展了會話過濾功能,會話狀態的保留是有時間限制的,此防火牆還可以對包的內容進行分析,從而避免開放過多的端口。
netfilter/iptables IP數據包過濾系統實際上由netfilter和iptables兩個組件構成。netfilter是集成在內核中的一部分,其作用是定義、保存相應的規則,而iptables是一種工具,用來修改信息的過濾規則及其他配置,我們可以通過iptables來設置一些適合我們企業需求環境的規則哈~,而這些規則會保存在內核空間之中。
netfilter是Linux核心中的一個通用架構,其提供了一系列的表(tables),每個表由若干個鏈(chains)組成,而每條鏈可以由一條或若干條規則(rules)組成。實際上netfilter是表的容器,表是鏈的容器,而鏈又是規則的容器。
iptables內置鏈
PREROUTING:數據包進入本機,進入路由器之前
INPUT:通過路由表後目的地為本機
FORWARDING:通過路由表後,目的地不為本機
OUTPUT:由本機產生,向外轉發
POSTROUTIONG:通過路由表後,發送到網卡接口之前
以下是表和鏈的對應關系
--------------------------------------分割線 --------------------------------------
iptables使用范例詳解 http://www.linuxidc.com/Linux/2014-03/99159.htm
iptables—包過濾(網絡層)防火牆 http://www.linuxidc.com/Linux/2013-08/88423.htm
Linux防火牆iptables詳細教程 http://www.linuxidc.com/Linux/2013-07/87045.htm
iptables+L7+Squid實現完善的軟件防火牆 http://www.linuxidc.com/Linux/2013-05/84802.htm
iptables的備份、恢復及防火牆腳本的基本使用 http://www.linuxidc.com/Linux/2013-08/88535.htm
Linux下防火牆iptables用法規則詳解 http://www.linuxidc.com/Linux/2012-08/67952.htm
--------------------------------------分割線 --------------------------------------
二、iptables的基本用法
基本語法:
iptables [-t table] COMMAND CHAIN CRETIRIA -j TARGET
-t table:
net,mangle,raw,filter
默認為filter
COMMAND:
鏈:
-F:(flush)清空規則鏈
-N:(new)自建一條鏈
-X:(delete)刪除一條自定義的空鏈
-Z:(zero)計數器歸零
-P:(policy)設置默認策略,對filter表來講,默認規則為ACCEPT或DROP
-E:重命名自定義鏈
CHAIN:指定你接下來的規則到底是在哪個鏈上操作的
CRETIRIA:指定匹配標准
ACTION :指定如何進行處理
常用指令
DROP:悄悄丟棄;一般我們多用DROP來隱藏我們的身份,以及隱藏我們的鏈表
REJECT:明示拒絕
ACCEPT:接受
DNAT:明確申明要做的是目的地地址轉換操作
SNAT:明確申明要做的是源地址轉換操作
MASQUERADE:源地址偽裝
REDIRECT:重定向:主要用於實現端口重定向
MARK:打防火牆標記的
RETURN:返回在自定義鏈執行完畢後使用返回,來返回原規則鏈
鏈中的規則
-A:(append)在所選擇的鏈末添加一條或更多規則
-I: (insert) 根據給出的規則序號向所選鏈中插入一條或更多規則
-D:(delete)從所選鏈中刪除一條或更多規則
-R:(replace)從選中的鏈中取代一條規則
常用查詢命令
-L
-n :數字格式顯示主機地址端口
-v:顯示詳細格式信息
-vv
-vvv:越多顯示的越詳細
--line-numbers:顯示規則編號
-x: exactly,不要對計數器的計數結果做單位換算,而顯示其精確值
pkts bytes target prot opt in out source destination
pkts: packets, 被本規則所匹配到的報文的個數
bytes: 被本規則所匹配到的所有報文的大小之和,會執行單位換算
target: 目標,即處理機制
prot: 協議,一般為{TCP|UDP|ICMP}
opt: 可選項
in: 數據包的流入接口
out: 數據包的流出接口
source: 源地址
destination: 目標地址
更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-11/109611p2.htm