一乳讥、初識(shí)防火墻
Firewall:防火墻,隔離工具知残;工作于主機(jī)或網(wǎng)絡(luò)邊緣靠瞎,對(duì)于進(jìn)出本主機(jī)或本網(wǎng)絡(luò)的報(bào)文根據(jù)事先定義的檢查規(guī)則作匹配檢測,對(duì)于能夠被規(guī)則匹配到的報(bào)文作出相應(yīng)處理的組件求妹;
防火墻類型分為: 主機(jī)防火墻 和網(wǎng)絡(luò)防火墻
實(shí)現(xiàn)方法分為:軟件防火墻(軟件邏輯)和硬件防火墻(硬件和軟件邏輯)
二乏盐、iptables五種鏈接
iptables五種鏈接分別是prerouting、input 制恍、output 父能、forward 、postrouting
- prerouting:流入的數(shù)據(jù)包進(jìn)入路由表之前净神。
- input :通過路由表判斷后目的地址是本機(jī)何吝,然后進(jìn)入本機(jī)內(nèi)部資源溉委。
- output :由本機(jī)產(chǎn)生的數(shù)據(jù)向外轉(zhuǎn)發(fā)
- forward :通過路由表判斷目的地址是本機(jī),然后通過路由轉(zhuǎn)發(fā)到其他地方爱榕。
- postrouting:傳出的數(shù)據(jù)包到達(dá)網(wǎng)卡出口前瓣喊。
iptables的四張表
現(xiàn)在用的比較多的表是前兩個(gè):
- 表(功能):
filter:過濾,防火墻黔酥;
nat:network address translation藻三;用于修改源IP或目標(biāo)IP,也可以改端口跪者;
mangle:拆解報(bào)文棵帽,做出修改,并重新封裝起來坑夯;
raw:關(guān)閉nat表上啟用的連接追蹤機(jī)制岖寞;
- 表(功能)和鏈對(duì)應(yīng)關(guān)系:
raw:PREROUTING, OUTPUT
mangle:PREROUTING柜蜈,INPUT仗谆,F(xiàn)ORWARD,OUTPUT淑履,POSTROUTING
nat:PREROUTING隶垮,[INPUT,]OUTPUT秘噪,POSTROUTING
filter:INPUT狸吞,F(xiàn)ORWARD,OUTPUT
- 處理優(yōu)先級(jí):raw-->mangle-->nat-->filter
- 報(bào)文流向:
流入本機(jī):PREROUTING --> INPUT
由本機(jī)流出:OUTPUT --> POSTROUTING
轉(zhuǎn)發(fā):PREROUTING --> FORWARD --> POSTROUTING
三指煎、iptables規(guī)則
1蹋偏、添加規(guī)則時(shí)的考量點(diǎn):
(1) 要實(shí)現(xiàn)哪種功能:判斷添加到哪個(gè)表上;
(2) 報(bào)文流經(jīng)的路徑:判斷添加到哪個(gè)鏈上至壤;
2威始、鏈的規(guī)則
鏈上的規(guī)則次序,即為檢查的次序像街;因此黎棠,隱含一定的應(yīng)用法則:
(1) 同類規(guī)則(訪問同一應(yīng)用),匹配范圍小的放上面镰绎;
(2) 不同類的規(guī)則(訪問不同應(yīng)用)脓斩,匹配到報(bào)文頻率較大的放在上面;
(3) 將那些可由一條規(guī)則描述的多個(gè)規(guī)則合并起來畴栖;
(4) 設(shè)置默認(rèn)策略随静;
3、匹配規(guī)則:
組成部分:根據(jù)規(guī)則匹配條件來嘗試匹配報(bào)文吗讶,一旦匹配成功燎猛,就由規(guī)則定義的處理動(dòng)作作出處理叼丑;
匹配條件:
基本匹配條件:內(nèi)建
擴(kuò)展匹配條件:由擴(kuò)展模塊定義;
4扛门、處理動(dòng)作:
基本處理動(dòng)作:內(nèi)建
擴(kuò)展處理動(dòng)作:由擴(kuò)展模塊定義;
自定義處理機(jī)制:自定義鏈
四纵寝、iptables命令:
高度模塊化论寨,由諸多擴(kuò)展模塊實(shí)現(xiàn)其檢查條件或處理動(dòng)作的定義;
/usr/lib64/xtables/
適用IPv6報(bào)文:libip6t_
適用IPv4報(bào)文:libipt_, libxt_
規(guī)則格式:
iptables [-t table] COMMAND chain [-m matchname [per-match-options]] -j targetname [per-target-options]
-t table:raw, mangle, nat, [filter]#表
rule-specification = [matches...] [target] #規(guī)則格式爽茴,matches匹配條件葬凳,target處理動(dòng)作
match = -m matchname [per-match-options] #指明一個(gè)匹配模塊 定義它的選項(xiàng)和值
target = -j targetname [per-target-options]#指明一個(gè)處理動(dòng)作的擴(kuò)展 并定義它的選項(xiàng)
- 查詢filter表有三個(gè)鏈
[root@bogon ~]# iptables -t filter -L#查詢filter表有三個(gè)鏈
Chain INPUT (policy ACCEPT) #指明那個(gè)表(默認(rèn)法則+黑名單)
target prot opt source destination #(執(zhí)行動(dòng)作-端口-選擇-原地址-目標(biāo)地址)
ACCEPT all -- anywhere anywhere #(允許-所有端口-任意地址-任意地址)
Chain FORWARD (policy ACCEPT)
Chain OUTPUT (policy ACCEPT)
- 查詢mangle表有五個(gè)鏈
[root@bogon ~]# iptables -t mangle -L#查詢mangle表有五個(gè)鏈
Chain PREROUTING (policy ACCEPT)
Chain INPUT (policy ACCEPT)
Chain FORWARD (policy ACCEPT)
Chain OUTPUT (policy ACCEPT)
Chain POSTROUTING (policy ACCEPT)
- 查詢nat表有四個(gè)鏈
[root@bogon ~]# iptables -t nat -L#查詢nat表有四個(gè)鏈
Chain PREROUTING (policy ACCEPT)
Chain INPUT (policy ACCEPT)
Chain OUTPUT (policy ACCEPT)
Chain POSTROUTING (policy ACCEPT)
- 查詢r(jià)aw表有兩個(gè)鏈
[root@bogon ~]# iptables -t raw -L#查詢r(jià)aw表有兩個(gè)鏈
Chain PREROUTING (policy ACCEPT)
Chain OUTPUT (policy ACCEPT)
五、鏈管理:
- 1室奏、 -N:new, 自定義一條新的規(guī)則鏈火焰;
[root@bogon ~]# iptables -N in_web_rules#只能調(diào)用內(nèi)建鏈
- 2、 -X: delete胧沫,刪除自定義的規(guī)則鏈昌简;
[root@bogon ~]# iptables -X in_web_rules#注意:僅能刪除 用戶自定義的 引用計(jì)數(shù)為0的 空的 鏈;
- 3绒怨、 -P:Policy纯赎,設(shè)置默認(rèn)策略;對(duì)filter表中的鏈而言南蹂,其默認(rèn)策略有:
ACCEPT:接受(內(nèi)建)
DROP:丟棄(內(nèi)建)
REJECT:拒絕(擴(kuò)展)
[root@bogon ~]# iptables -P FORWARD DROP或ACCEPT#關(guān)閉或打開轉(zhuǎn)發(fā)報(bào)文
[root@bogon ~]# iptables -vnL#查詢狀態(tài)
- 4犬金、 -E:重命名自定義鏈;引用計(jì)數(shù)不為0的自定義鏈不能夠被重命名六剥,也不能被刪除晚顷;
[root@bogon ~]# iptables -E in_web_rules in_web
六、規(guī)則管理:
- 1疗疟、-A:append该默,追加;
- 2秃嗜、-I:insert, 插入权均,要指明位置,省略時(shí)表示第一條锅锨;
- 3叽赊、-D:delete,刪除必搞;
(1) 指明規(guī)則序號(hào)必指;
(2) 指明規(guī)則本身;
4恕洲、-R:replace塔橡,替換指定鏈上的指定規(guī)則梅割;
5、-F:flush葛家,清空指定的規(guī)則鏈户辞;
[root@bogon ~]# iptables -F IN_public#清空指定的規(guī)則
- 6、-Z:zero癞谒,置零底燎;
iptables的每條規(guī)則都有兩個(gè)計(jì)數(shù)器:
(1) 匹配到的報(bào)文的個(gè)數(shù);
(2) 匹配到的所有報(bào)文的大小之和弹砚;
[root@bogon ~]# iptables -Z INPUT_ZONES 1#把這個(gè)鏈第一條規(guī)則置零
- 7双仍、查看:
-L:list, 列出指定鏈上的所有規(guī)則;
-n:numberic桌吃,以數(shù)字格式顯示地址和端口號(hào)朱沃;
-v:verbose,詳細(xì)信息茅诱;
-vv, -vvv
-x:exactly逗物,顯示計(jì)數(shù)器結(jié)果的精確值;
--line-numbers:顯示規(guī)則的序號(hào)瑟俭;
[root@bogon ~]# iptables -L -n --line-numbers #顯示當(dāng)前表鏈并編號(hào)
[root@bogon ~]# iptables -L -n --line-numbers -v#顯示詳細(xì)信息
[root@bogon ~]# iptables -vnL INPUT#顯示INPUT信息