iptables:位于/sbin/iptables,是用來管理防火墻的命令工具
網站建設哪家好,找創(chuàng)新互聯!專注于網頁設計、網站建設、微信開發(fā)、成都微信小程序、集團企業(yè)網站建設等服務項目。為回饋新老客戶創(chuàng)新互聯還提供了郟縣免費建站歡迎大家使用!
包過濾防火墻,工作在網絡層。
一.規(guī)則鏈:規(guī)則鏈是防火墻規(guī)則/策略的集合
INPUT:處理入站數據包
OUTPUT:處理出站數據包
FORWARD:處理轉發(fā)數據包
POSTROUTING鏈:在進行路由選擇后處理數據包
PREROUTING鏈:在進行路由選擇前處理數據包
二.規(guī)則表:規(guī)則表是規(guī)則鏈的集合(優(yōu)先順序:raw、mangle、nat、filter)
raw表:確定是否對該數據包進行狀態(tài)跟蹤(OUTPUT、PREROUTING)
mangle表:為數據包設置標記(PREROUNTING、POSTROUTING、INPUT、OUPUT、FORWARD)
nat表:修改數據包中的源、目標IP地址或端口(PREROUTING、POSTROUTIN、OUTPUT)
filter表:確定是否放行該數據包(過濾)(INPUT FOREARD、OUTPUT)
規(guī)則鏈間的匹配順序
入站數據:PREROUTING、INPUT
出站數據:OUTPUT、POSTROUTING
轉發(fā)數據:PREROUTING、FORWARD、POSTROUTING
三iptables命令的語法格式
iptables[-t 表名] 管理選項 [鏈名] [條件匹配] [-j 目標動作或跳轉]
注意:不指定表名時,默認表示filter表
不指定鏈名時,默認表示該表內所有鏈
除非設置規(guī)則鏈的缺省策略,否則需要指定匹配條件
四.命令選項
-A:在指定鏈的末尾添加(--apped)一條新的規(guī)則(注意與-I的插入位置區(qū)別)
-D:刪除(--delete)指定鏈中的某一條規(guī)則,按規(guī)則序號或內容確定要刪除的規(guī)則
-I:在指定鏈中插入(--insert)一條新的規(guī)則,若未指定插入位置,則默認在鏈的開頭插入
-R:修改、替換(--replace)指定鏈的某一條規(guī)則,按規(guī)則序號或內容確定要替換的規(guī)則
-L:列出(--list)指定鏈中所有的規(guī)則進行查看,若未指定鏈名,則列出表中所有鏈的內容
-F:清空(--flush)指定鏈中的所有規(guī)則,若未指定鏈名,則清空表中的所有鏈的內容
-N:新建(--new-chain)一條用戶自己定義的規(guī)則鏈
-X:刪除指定表中用戶自定義的規(guī)則鏈
-P:設置指定鏈的默認策略(--policy)
-n:使用數字形式(--numeric)顯示輸出結果
-v:查看規(guī)則列表時顯示詳細(--verbose)的信息
-V:查看iptables命令工具的版本(--version)信息
-h:查看命令幫助信息(--help)
--line-numbers:查看規(guī)則表時,同時顯示規(guī)則在鏈中的順序號
五.通用(general)條件匹配
可直接使用,不依賴于其他的條件或擴展模塊
包括網絡協(xié)議、IP地址、網絡接口等匹配方式
1.協(xié)議匹配
使用“-p協(xié)議名”的形式
協(xié)議名可使用在“/etc/protocols”文件中定義的名稱
常用的協(xié)議包括tcp、udp、icmp等
例:拒絕進入防火墻的所有icmp協(xié)議的數據包
iptables -I INPUT -p icmp -j REJECT
2.地址匹配
使用“-s源地址(--source)”、“-d 目標地址(--destination)”的形式
地址可以是單個IP地址、網絡地址(帶掩碼長度)
例:拒絕轉發(fā)來自192.168.1.11主機的數據
iptables -A FORWARD -s 192.168.1.11 -j REJECT
3.網絡端口匹配
使用“-i 網絡接口名 (--in-interface)”、 “-o 網絡接口名(--out-interface)”的形式,分別對應接收、發(fā)送數據包的網絡接口
例:丟棄10.20.30.0/24網段,并在2小時后解封
iptables -I INPUT -s 10.20.30.0/24 -j REJECT
iptables -I FORWARD -s 10.20.30.0/24 -j DROP
at now +2 hours
at > iptables -D INPUT 1
at > iptables -D FORWARD 1
(crtl + D 結束)
六.隱含(implicit)條件匹配
1.端口匹配
使用“--sport源端口”、“--dport目標端口”的形式
采用“端口1:端口2”的形式可以指定一個范圍的端口
例:僅允許管理員從202.13.0.0/16使用ssh
iptables -A INPUT -p tcp --dport 22 -s 202.13.0.0/16 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
2.TCP標記匹配
使用“--tcp-flags檢查范圍 被設置的標記”的形式
如“--tcp-flags SYN,RST,ACK SYN”表示檢查SYN、RST、ACK這3個標記,只有SYN為1時滿足條件
例:拒絕從外網接口(eth2)直接訪問防火墻備機的數據包,但是允許響應防火墻TCP請
求的數據包進入
iptables -P INPUT DROP
iptables -I INPUT -i eth2 -p tcp --tcp-flags SYN, RST, ACK SYN -j REJECT
iptables -I INPUT -i eth2 -p tcp --tcp-flags !--syn -j ACCEPT
(--syn的用法為兼容舊版本iptables的形式,此處等于--tcp-flags SYN, RST, ACK SYN)
3.ICMP類型匹配
使用“--icmp-type ICMP類型”的形式
ICMP類型可以使用類型字符串或者對應的數值,例如Echo-Request、Echo-Reply
例:禁止其他主機ping防火墻主機,但是允許從防火墻上ping其他主機(允許接收ICMP
回應數據)
iptables -A INPUT -p icmp --icmp-type Echo-Request -j DROP
iptables -A INPUT -p icmp --icmp-type Echo-Reply -j ACCEPT
iptables -A INPUT -p icmp --icmp-type destination-Unreachable -j ACCEPT
七.顯示條件匹配
1.MAC地址匹配
使用“-m mac”結合“--mac-source MAC地址”的形式
例:禁止轉發(fā)來自MAC地址為00:0C:29:27:55:3F的主機的數據包
iptables -A FORWARD -m mac --mac-source 00:0C:29:27:55:3F -j DROP
2.多端口匹配
使用“-m multiport”結合“--sports源端口列表”或者“--dports目標端口列表”的形式
多個端口之間使用逗號“,”分隔,連續(xù)的端口也可以使用冒號“:”分隔
例:允許防火墻本機對外開放TCP端口20、21、25、110以及被動模式FTP端口1250-1280
iptables -A INPUT -p tcp -m multiport --dport 20,21,25,110,1250:1280 -j ACCEPT
3.IP地址范圍匹配
使用“-m iprange”結合“--src-range源IP范圍”或者“--dst-range目標IP范圍” 的形式
以“-”符號連接起始IP地址、結束IP地址
例:禁止轉發(fā)源IP地址為192.168.1.20~192.168.1.99的TCP數據包
iptables -A FORWARD -p tcp -m iprange --src-range 192.168.1.20-192.168.1.99 -j DROP
4.數據包狀態(tài)匹配
使用“-m state”結合“--state狀態(tài)類型”的形式
同時表示多種狀態(tài)時以逗號“,”分隔
常見的數據包狀態(tài)包括:NEW、ESTABLISHED、RELATED
例:拒絕訪問防火墻的新數據包,但允許響應連接或與已有連接相關的數據包
iptables -A INPUT -p tcp -m state --state NEW -j DROP
iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
八.數據包控制
常見的數據包處理方式
ACCEPT:放行數據包
DROP:丟棄數據包,不給出任何回應信息
REJECT:拒絕數據包,必要時會給數據發(fā)送端一個響應信息
LOG:記錄日志信息,并傳遞給下一條規(guī)則處理
用戶自定義鏈名:傳遞給自定義鏈內的規(guī)則進行處理
SNAT:修改數據包的源地址信息
DNAT:修改數據包的目標地址信息
九.導入、導出防火墻規(guī)則
導出規(guī)則
iptables-save
結合重定向輸出“>”符號保存規(guī)則信息
導入規(guī)則
iptables-restore
結合重定向輸入“<”符號恢復規(guī)則信息
十.SNAT策略
SNAT策略的典型應用環(huán)境
局域網主機共享單個公網IP地址接入Internet
SNAT策略的原理
源地址轉換,Source Network Address Translation
修改數據包的源IP地址
前提條件
局域網各主機正確設置IP地址/子網掩碼
局域網各主機正確設置默認網關地址
推薦實現步驟
1. 開啟網關主機的路由轉發(fā)功能
2. 添加使用SNAT策略的防火墻規(guī)則
規(guī)則示例:

iptables -t nat -A POSTROUTING-s192.168.1.0/24 -o eth0-jSNAT --to-source218.29.30.31
(在路由選擇之后進行處理,-s 特定局域網,-o需要從接口eth0外出的數據包--to-source 218.29.30.31網關主機外網口ip地址)
十一.MASQUERADE(地址偽裝)策略
只需將 “-j SNAT --to-source 218.29.30.31”的形式改為“-j MASQUERADE”即可
如果是通過ADSL撥號方式連接Internet,則外網接口名稱通常為ppp0、ppp1等
MASQUERADE策略應用示例
iptables -t nat -A POSTROUTING -s 192.168.1.0/24-o ppp0 -j MASQUERADE
十二.DNAT策略
DNAT策略的典型應用環(huán)境
在Internet中發(fā)布位于企業(yè)局域網內的服務器
DNAT策略的原理
目標地址轉換,Destination Network Address Translation
修改數據包的目標IP地址
前提條件
局域網的Web服務器正確設置了IP地址/子網掩碼
局域網的Web服務器正確設置了默認網關地址
推薦實現步驟
1. 確認已開啟網關的路由轉發(fā)功能
2. 添加使用DNAT策略的防火墻規(guī)則
規(guī)則示例:

iptables -t nat -APREROUTING -i eth0 -d 218.29.30.31 -p tcp --dport 80 -jDNAT--to-destination192.168.1.6
(在路由選擇之前進行處理,-i 外網接口進入的數據包,-d訪問網關的公網ip地址的數據包,-dport訪問標準Web服務端口的數據包,--to-destination內網中Web服務器的實際IP地址)
通過DNAT策略同時修改目標端口號
使用形式
只需要在“--to-destination”后的目標IP地址后面增加“:端口號”即可,即:
-j DNAT --to-destination目標IP:目標端口
通過DNAT策略修改目標端口號的應用示例
從Internet中訪問網關主機(218.29.30.31)的2222端口時,實際由運行在局域網主機(192.168.1.5)的22端口的應用程序提供服務
iptables -t nat -A PREROUTING -i eth0 -d 218.29.30.31 -p tcp --dport 2222 -j DNAT --to-destination 192.168.1.5:22
十三.iptables的開啟和關閉
1. Linux防火墻(Iptables)重啟系統(tǒng)生效
開啟: chkconfig iptables on
關閉: chkconfig iptables off
2.Linux防火墻(Iptables) 即時生效,重啟后失效
開啟: service iptables start
關閉: service iptables stop
本文標題:iptables總結
分享路徑:http://www.chinadenli.net/article12/iiosdc.html
成都網站建設公司_創(chuàng)新互聯,為您提供App開發(fā)、網站營銷、網站改版、虛擬主機、小程序開發(fā)、響應式網站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯