基本概念
iptables只是linux的防火墻的管理工具,真正實(shí)現(xiàn)防火墻功能的是netfilter,它是Linux內(nèi)核中實(shí)現(xiàn)包過濾的內(nèi)部結(jié)構(gòu)诊赊。
iptables過濾各種規(guī)則的,主要依賴于如下的四表五鏈:
- filter表——過濾數(shù)據(jù)包 【重要】
- Nat表——用于網(wǎng)絡(luò)地址轉(zhuǎn)換(IP、端口)
- Mangle表——修改數(shù)據(jù)包的服務(wù)類型、TTL唱蒸、并且可以配置路由實(shí)現(xiàn)QOS
- Raw表——決定數(shù)據(jù)包是否被狀態(tài)跟蹤機(jī)制處理
- INPUT鏈——進(jìn)來的數(shù)據(jù)包應(yīng)用此規(guī)則鏈中的策略 【重要】
- OUTPUT鏈——外出的數(shù)據(jù)包應(yīng)用此規(guī)則鏈中的策略 【重要】
- FORWARD鏈——轉(zhuǎn)發(fā)數(shù)據(jù)包時(shí)應(yīng)用此規(guī)則鏈中的策略 【重要】
- PREROUTING鏈——對數(shù)據(jù)包作路由選擇前應(yīng)用此鏈中的規(guī)則(所有的數(shù)據(jù)包進(jìn)來的時(shí)侯都先由這個(gè)鏈處理)
- POSTROUTING鏈——對數(shù)據(jù)包作路由選擇后應(yīng)用此鏈中的規(guī)則(所有的數(shù)據(jù)包出來的時(shí)侯都先由這個(gè)鏈處理)
基本語法
iptables 表名 鏈名 匹配條件 動(dòng)作
-t 表名(默認(rèn)為filter)
鏈名 ( INPUT | OUTPUT | FORWARD )
匹配條件:
-P設(shè)置默認(rèn)策略:iptables-P INPUT(DROP|ACCEPT)
-F清空規(guī)則鏈
-L查看規(guī)則鏈
-A在規(guī)則鏈的末尾加入新規(guī)則
-I num在規(guī)則鏈的頭部加入新規(guī)則
-D num刪除某一條規(guī)則
-s匹配來源地址IP/MASK,加嘆號(hào)"!"表示除這個(gè)IP外烛愧。
-d匹配目標(biāo)地址
-i網(wǎng)卡名稱匹配從這塊網(wǎng)卡流入的數(shù)據(jù)
-o網(wǎng)卡名稱匹配從這塊網(wǎng)卡流出的數(shù)據(jù)
-p匹配協(xié)議,如tcp,udp,icmp
--dport num匹配目標(biāo)端口號(hào)
--sport num匹配來源端口號(hào)
動(dòng)作:
ACCEPT:對滿足策略的數(shù)據(jù)包允許通過
DROP:丟棄數(shù)據(jù)包油宜,且不返回任何信息
REJECT:丟棄數(shù)據(jù)包掂碱,但是會(huì)返回拒絕的信息
LOG:把通過的數(shù)據(jù)包寫到日志中(相當(dāng)于一個(gè)門衛(wèi)對進(jìn)去的人進(jìn)行登記)
示例:iptables -t filter -A INPUT –s 192.168.0.0/24 -p tcp --dport 80 –j REJECT
說明: 對filter表的INPUT鏈,追加一條策略慎冤,策略是疼燥,源地址在192.168.0.0/24網(wǎng)段內(nèi),使用tcp協(xié)議蚁堤,目標(biāo)端口為80的所有輸入包都執(zhí)行REJECT動(dòng)作(拒絕)
常用命令
iptables -nvL --line-number (詳細(xì)信息)
iptables -L (簡單列表)