- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務(wù)經(jīng)營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網(wǎng)協(xié)會理事單位
- 安全聯(lián)盟認(rèn)證網(wǎng)站身份V標(biāo)記
- 域名注冊服務(wù)機(jī)構(gòu)許可:滇D3-20230001
- 代理域名注冊服務(wù)機(jī)構(gòu):新網(wǎng)數(shù)碼
iptables是用來管理防火墻的命令工具包過濾防火墻,工作在網(wǎng)絡(luò)層。大體常用的規(guī)則總結(jié)如下:
-A INPUT -s 1.2.3.4 -p tcp -m tcp –dport 80 -j drop 封進(jìn)來的包 s源 input入站 -p指定協(xié)議
-A OUTPUT -d 1.2.3.4 -p tcp -m tcp –dport 80 -j drop 封出去發(fā)包 d目標(biāo) output出站
iptables基礎(chǔ)知識說明:
一.規(guī)則鏈:規(guī)則鏈?zhǔn)欠阑饓σ?guī)則/策略的集合
INPUT:處理入站數(shù)據(jù)包
OUTPUT:處理出站數(shù)據(jù)包
FORWARD:處理轉(zhuǎn)發(fā)數(shù)據(jù)包
POSTROUTING鏈:在進(jìn)行路由選擇后處理數(shù)據(jù)包
PREROUTING鏈:在進(jìn)行路由選擇前處理數(shù)據(jù)包
二.規(guī)則表:規(guī)則表是規(guī)則鏈的集合(優(yōu)先順序:raw、mangle、nat、filter)
raw表:確定是否對該數(shù)據(jù)包進(jìn)行狀態(tài)跟蹤(OUTPUT、PREROUTING)
mangle表:為數(shù)據(jù)包設(shè)置標(biāo)記(PREROUNTING、POSTROUTING、INPUT、OUPUT、FORWARD)
nat表:修改數(shù)據(jù)包中的源、目標(biāo)IP地址或端口(PREROUTING、POSTROUTIN、OUTPUT)
filter表:確定是否放行該數(shù)據(jù)包(過濾)(INPUT FOREARD、OUTPUT)
規(guī)則鏈間的匹配順序
入站數(shù)據(jù):PREROUTING、INPUT
出站數(shù)據(jù):OUTPUT、POSTROUTING
轉(zhuǎn)發(fā)數(shù)據(jù):PREROUTING、FORWARD、POSTROUTING
三iptables命令的語法格式
iptables [-t 表名] 管理選項(xiàng) [鏈名] [條件匹配] [-j 目?動作或跳轉(zhuǎn)]
注意:不指定表名時,默認(rèn)表示filter表
不指定鏈名時,默認(rèn)表示該表內(nèi)所有鏈
除非設(shè)置規(guī)則鏈的缺省策略,否則需要指定匹配條件
四.命令選項(xiàng)
-A:在指定鏈的末尾添加(–apped)一條新的規(guī)則(注意與-I的插入位置區(qū)別)
-D:刪除(–delete)指定鏈中的某一條規(guī)則,按規(guī)則序號或內(nèi)容確定要刪除的規(guī)則
-I:在指定鏈中插入(–insert)一條新的規(guī)則,若未指定插入位置,則默認(rèn)在鏈的開頭插入
-R:修改、替換(–replace)指定鏈的某一條規(guī)則,按規(guī)則序號或內(nèi)容確定要替換的規(guī)則
-L:列出(–list)指定鏈中所有的規(guī)則進(jìn)行查看,若未指定鏈名,則列出表中所有鏈的內(nèi)容
-F:清空(–flush)指定鏈中的所有規(guī)則,若未指定鏈名,則清空表中的所有鏈的內(nèi)容
-N:新建(–new-chain)一條用戶自己定義的規(guī)則鏈
-X:刪除指定表中用戶自定義的規(guī)則鏈
-P:設(shè)置指定鏈的默認(rèn)策略(–policy)
-n:使用數(shù)字形式(–numeric)顯示輸出結(jié)果
-v:查看規(guī)則列表時顯示詳細(xì)(–verbose)的信息
-Z: 清空防火墻包的數(shù)量和字節(jié)數(shù)
-V:查看iptables命令工具的版本(–version)信息
-h:查看命令幫助信息(–help)
–line-numbers:查看規(guī)則表時,同時顯示規(guī)則在鏈中的順序號
其中-A -I的區(qū)別在于,-A添加到鏈末尾,-I插入到鏈最前邊。 防火墻規(guī)則是越前邊的越先生效,存在生效次序的差別。
五.通用(general)條件匹配
可直接使用,不依賴于其他的條件或擴(kuò)展模塊
包括網(wǎng)絡(luò)協(xié)議、IP地址、網(wǎng)絡(luò)接口等匹配方式
1.協(xié)議匹配
使用“-p 協(xié)議名”的形式
協(xié)議名可使用在“/etc/protocols”文件中定義的名稱
常用的協(xié)議包括tcp、udp、icmp等
例:拒絕進(jìn)入防火墻的所有icmp協(xié)議的數(shù)據(jù)包
iptables -I INPUT -p icmp -j REJECT
2.地址匹配
使用“-s源地址(–source)”、“-d 目標(biāo)地址(–destination)”的形式
地址可以是單個IP地址、網(wǎng)絡(luò)地址(帶掩碼長度)
例:拒絕轉(zhuǎn)發(fā)來自192.168.1.11主機(jī)的數(shù)據(jù)
itables -A FORWARD -s 192.168.1.11 -j REJECT
3.網(wǎng)絡(luò)端口匹配
使用“-i 網(wǎng)絡(luò)接口名 (–in-interface)”、 “-o 網(wǎng)絡(luò)接口名(–out-interface)”的形式,分別對應(yīng)接收、發(fā)送數(shù)據(jù)包的網(wǎng)絡(luò)接口
例:丟棄10.20.30.0/24網(wǎng)段,并在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 結(jié)束)
六.隱含(implicit)條件匹配
1.端口匹配
使用“–sport 源端口”、“–dport 目標(biāo)端口”的形式
采用“端口1:端口2”的形式可以指定一個范圍的端口
例:僅允許管理員從202.13.0.0/16使用ssh
iptables -A INPUT 118.114.245.37 -p tcp 22000 -s -j ACCEPT
iptables -A INPUT -p tcp 22000 -j DROP
2.TCP標(biāo)記匹配
使用“–tcp-flags 檢查范圍 被設(shè)置的標(biāo)記”的形式
如“–tcp-flags SYN,RST,ACK SYN”表示檢查SYN、RST、ACK這3個標(biāo)記,只有SYN為1時滿足條件
例:拒絕從外網(wǎng)接口(eth1)直接訪問防火墻備機(jī)的數(shù)據(jù)包,但是允許響應(yīng)防火墻TCP請
求的數(shù)據(jù)包進(jìn)入
iptables -P INPUT DROP
iptables -I INPUT -i eth1 -p tcp –tcp-flags SYN, RST, ACK SYN -j REJECT
iptables -I INPUT -i eth1 -p tcp –tcp-flags !–syn -j ACCEPT
(–syn的用法為兼容舊版本iptables的形式,此處等于–tcp-flags SYN, RST, ACK SYN)
3.ICMP類型匹配
使用“–icmp-type ICMP類型”的形式
ICMP類型可以使用類型字符串或者對應(yīng)的數(shù)值,例如Echo-Request、Echo-Reply
例:禁止其他主機(jī)ping防火墻主機(jī),但是允許從防火墻上ping其他主機(jī)(允許接收ICMP
回應(yīng)數(shù)據(jù))
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”結(jié)合“–mac-source MAC地址”的形式
例:禁止轉(zhuǎn)發(fā)來自MAC地址為00:0C:29:27:55:3F的主機(jī)的數(shù)據(jù)包
iptables -A FORWARD -m mac –mac-source 00:0C:29:27:55:3F -j DROP
2.多端口匹配
使用“-m multiport”結(jié)合“–sports 源端口列表”或者“–dports 目標(biāo)端口列表”的形式
多個端口之間使用逗號“,”分隔,連續(xù)的端口也可以使用冒號“:”分隔
例:允許防火墻本機(jī)對外開放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”結(jié)合“–src-range 源IP范圍”或者“–dst-range 目標(biāo)IP范圍” 的形式
以“-”符號連接起始IP地址、結(jié)束IP地址
例:禁止轉(zhuǎn)發(fā)源IP地址為192.168.1.20~192.168.1.99的TCP數(shù)據(jù)包
iptables -A FORWARD -p tcp -m iprange –src-range 192.168.1.20-192.168.1.99 -j DROP
4.數(shù)據(jù)包狀態(tài)匹配
使用“-m state”結(jié)合“–state 狀態(tài)類型”的形式
同時表示多種狀態(tài)時以逗號“,”分隔
常見的數(shù)據(jù)包狀態(tài)包括:NEW、ESTABLISHED、RELATED
例:拒絕訪問防火墻的新數(shù)據(jù)包,但允許響應(yīng)連接或與已有連接相關(guān)的數(shù)據(jù)包
iptables -A INPUT -p tcp -m state –state NEW -j DROP
iptables -A INPUT -p tcp -m state –state ESTABLISHED,RELATED -j ACCEPT
八.?dāng)?shù)據(jù)包控制
常見的數(shù)據(jù)包處理方式
ACCEPT:放行數(shù)據(jù)包
DROP:丟棄數(shù)據(jù)包,不給出任何回應(yīng)信息
REJECT:拒絕數(shù)據(jù)包,必要時會給數(shù)據(jù)發(fā)送端一個響應(yīng)信息
LOG:記錄日志信息,并傳遞給下一條規(guī)則處理
用戶自定義鏈名:傳遞給自定義鏈內(nèi)的規(guī)則進(jìn)行處理
SNAT:修改數(shù)據(jù)包的源地址信息
DNAT:修改數(shù)據(jù)包的目標(biāo)地址信息
九.導(dǎo)入、導(dǎo)出防火墻規(guī)則
導(dǎo)出規(guī)則
iptables-save
結(jié)合重定向輸出“>”符號保存規(guī)則信息
導(dǎo)入規(guī)則
iptables-restore
結(jié)合重定向輸入“<”符號恢復(fù)規(guī)則信息
十.SNAT策略
SNAT策略的典型應(yīng)用環(huán)境
局域網(wǎng)主機(jī)共享單個公網(wǎng)IP地址接入Internet
SNAT策略的原理
源地址轉(zhuǎn)換,Source Network Address Translation
修改數(shù)據(jù)包的源IP地址
前提條件
局域網(wǎng)各主機(jī)正確設(shè)置IP地址/子網(wǎng)掩碼
局域網(wǎng)各主機(jī)正確設(shè)置默認(rèn)網(wǎng)關(guān)地址
推薦實(shí)現(xiàn)步驟
1. 開啟網(wǎng)關(guān)主機(jī)的路由轉(zhuǎn)發(fā)功能
2. 添加使用SNAT策略的防火墻規(guī)則
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0-j SNAT –to-source 218.29.30.31
(在路由選擇之后進(jìn)行處理,-s 特定局域網(wǎng),-o需要從接口eth0外出的數(shù)據(jù)包–to-source 218.29.30.31網(wǎng)關(guān)主機(jī)外網(wǎng)?ip地址)
十一.MASQUERADE(地址偽裝)策略
只需將 “-j SNAT –to-source 218.29.30.31”的形式改為“-j MASQUERADE”即可
如果是通過ADSL撥號方式連接Internet,則外網(wǎng)接口名稱通常為 ppp0、ppp1等
MASQUERADE策略應(yīng)用示例
iptables -t nat -A POSTROUTING -s 192.168.1.0/24-o ppp0 -j MASQUERADE
十二.DNAT策略
DNAT策略的典型應(yīng)用環(huán)境
在Internet中發(fā)布位于企業(yè)局域網(wǎng)內(nèi)的服務(wù)器
DNAT策略的原理
目標(biāo)地址轉(zhuǎn)換,Destination Network Address Translation
修改數(shù)據(jù)包的目標(biāo)IP地址
前提條件
局域網(wǎng)的Web服務(wù)器正確設(shè)置了IP地址/子網(wǎng)掩碼
局域網(wǎng)的Web服務(wù)器正確設(shè)置了默認(rèn)網(wǎng)關(guān)地址
推薦實(shí)現(xiàn)步驟
1. 確認(rèn)已開啟網(wǎng)關(guān)的路由轉(zhuǎn)發(fā)功能
2. 添加使用DNAT策略的防火墻規(guī)則
規(guī)則示例:
iptables -t nat -A PREROUTING -i eth0 -d 218.29.30.31 -p tcp –dport 80 -j DNAT–to-destination192.168.1.6
(在路由選擇之前進(jìn)行處理,-i 外網(wǎng)接口進(jìn)入的數(shù)據(jù)包,-d訪問網(wǎng)關(guān)的公網(wǎng)ip地址的數(shù)據(jù)包,-dport訪問標(biāo)準(zhǔn)Web服務(wù)端口的數(shù)據(jù)包,–to-destination內(nèi)網(wǎng)中Web服務(wù)器的實(shí)際IP地址)
通過DNAT策略同時修改目標(biāo)端口號
使用形式
只需要在“–to-destination”后的目標(biāo)IP地址后面增加“:端口號”即可,即:
-j DNAT –to-destination 目標(biāo)IP:目標(biāo)端口
通過DNAT策略修改目標(biāo)端口號的應(yīng)用示例
從Internet中訪問網(wǎng)關(guān)主機(jī)(218.29.30.31)的 2222 端口時,實(shí)際由運(yùn)行在局域網(wǎng)主機(jī)(192.168.1.5)的 22 端口的應(yīng)用程序提供服務(wù)
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的開啟和關(guān)閉
1. Linux?火墻(Iptables)重啟系統(tǒng)生效
開啟: chkconfig iptables on
關(guān)閉: chkconfig iptables off
2.Linux防火墻(Iptables) 即時生效,重啟后失效
開啟: service iptables start
關(guān)閉: service iptables stop
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP