溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

centos6.5下iptables基礎(chǔ)知識(shí)詳解與配置

發(fā)布時(shí)間:2020-07-22 00:00:53 來(lái)源:網(wǎng)絡(luò) 閱讀:1605 作者:雪楓楠 欄目:安全技術(shù)

一、ipables防火墻

 netfilter/iptables框架可以實(shí)現(xiàn)數(shù)據(jù)包過(guò)濾、網(wǎng)絡(luò)地址轉(zhuǎn)換、以及數(shù)據(jù)包管理功能

linux中的防火墻系統(tǒng)包括兩部分:netfilter和iptables。netfilter位于系統(tǒng)內(nèi)核空間

,是linux內(nèi)核的組成部分。具體的說(shuō)netfilter是linux內(nèi)核的一系列鉤子,這些鉤子允

許數(shù)據(jù)表過(guò)濾函數(shù)掛載至系統(tǒng)內(nèi)核中。而iptables是用戶工具,因netfilter在內(nèi)核空間

中,用戶無(wú)法直接接觸內(nèi)核和修改內(nèi)核,就需要iptables這樣的命令行工具添加、刪除具

體的過(guò)濾規(guī)則。


二、iptables規(guī)則表、鏈結(jié)構(gòu)、表之間的優(yōu)先級(jí)、規(guī)則鏈的優(yōu)先級(jí)

 2.1、規(guī)則表

 iptables管理4個(gè)不同的規(guī)則表,其功能由獨(dú)立的內(nèi)核模塊實(shí)現(xiàn)

   filter表(過(guò)濾規(guī)則表):                        包含3個(gè)鏈INPUT OUTPUT FORWARD

   nat表(地址轉(zhuǎn)換規(guī)則表):                PREROUTING POSTROUTING OUTPUT

 (1)DNAT:改變數(shù)據(jù)包的目的地址使包能重路由到某臺(tái)機(jī)器(使公網(wǎng)能夠訪問局域網(wǎng)的服務(wù)器

 (2)SNAT: 改變數(shù)據(jù)包的源地址(使局域網(wǎng)能訪問公網(wǎng))

 (3)NASQUERADE:和SNAT一樣使局域網(wǎng)能訪問公網(wǎng),無(wú)固定IP使用PPP.PPPoE等撥號(hào)上入Internet

   mangle表(修改數(shù)據(jù)標(biāo)記位規(guī)則表):PREROUTING POSTROUTING INPUT OUTPUT FORWARD

   mangle表修改數(shù)據(jù)包,改變包頭中的內(nèi)容(TTL、TOS、MARK)

   

 (1)TOS :設(shè)置改變數(shù)據(jù)包的服務(wù)類型,不要使用TOS設(shè)置發(fā)往Internet的包除非打算依賴TOS來(lái)路由,不  能在表中配置任何過(guò)濾。SNAT、DNAT

 (2)TTL:改變數(shù)據(jù)包的生存時(shí)間,可以讓數(shù)據(jù)包只有一個(gè)特殊的TTL,欺騙ISP,有些ISP并不希望多臺(tái)計(jì)算  機(jī)共享一個(gè)連接訪問Internet,ISP通過(guò)檢查一臺(tái)計(jì)算機(jī)所發(fā)出的數(shù)據(jù)包是否含有不同的TTL來(lái)判斷。

 (3)MaRk:給數(shù)據(jù)包設(shè)置特殊的標(biāo)記,通過(guò)標(biāo)記配置帶寬限制和基于請(qǐng)求分類。

raw表(跟蹤數(shù)據(jù)表規(guī)則表):             OUTPUT PREROUTING

 

 2.2、規(guī)則鏈

   INPUT鏈:             當(dāng)收到訪問防火墻本機(jī)的數(shù)據(jù)包(入站)時(shí),應(yīng)用此鏈的規(guī)則

   OUTPUT鏈:          當(dāng)防火墻本機(jī)向外發(fā)送數(shù)據(jù)包(出站)時(shí),應(yīng)用此鏈中的規(guī)則

   FORWARD鏈:       收到需要通過(guò)防火墻發(fā)送給其他地址的數(shù)據(jù)包時(shí)、應(yīng)用此鏈

   PREROUTING鏈:   做路由選擇之前,應(yīng)用此鏈

   POSTROUTING鏈: 對(duì)數(shù)據(jù)包做路由選擇之后,應(yīng)用此鏈


 2.3、規(guī)則表優(yōu)先級(jí)

   raw mangel nat filter

   

centos6.5下iptables基礎(chǔ)知識(shí)詳解與配置


 2.4   規(guī)則鏈優(yōu)先級(jí)

    

centos6.5下iptables基礎(chǔ)知識(shí)詳解與配置


 三、防火墻的語(yǔ)法格式

  3.1、用法:iptables [-t 表名] {命令-A|-D|-I|-F|-L|-Z|-P} 鏈名  [條件匹配] [-j 觸發(fā)動(dòng)作]

 

  3.2、命令參數(shù)詳解:

-A        在指定鏈的末尾添加(--append)一條新規(guī)則 

[root@server136 ~]# iptables -A INPUT -p tcp -s 192.168.8.8 -j DROP(追加一條規(guī)則,禁止

192.168.8.8訪問本機(jī))


-D        刪除(--delete)指定鏈中的某一條規(guī)則,按規(guī)則序號(hào)或內(nèi)容確定要?jiǎng)h除的規(guī)則 

[root@server136 ~]# iptables -D INPUT -p tcp -s 192.168.8.8 -j DROP(刪除這條規(guī)則)


-I         在指定鏈中插入一條新規(guī)則,若未指定插入位置,則默認(rèn)在鏈的開頭插入

[root@server136 ~]# iptables -I INPUT 2 -p tcp --dport 443 -j ACCEPT(在INPUT

第二行插入一條規(guī)則,允許443端口進(jìn)入)


-R        修改、替換指定鏈中的一條規(guī)則,按按規(guī)則序號(hào)或內(nèi)容確定要替換的規(guī)則 

[root@server136 ~]# iptables -R INPUT 2 -s 192.168.8.9 -j REJECT (替換第二條規(guī)則,拒絕此ip訪問本機(jī))


-L        列出指定鏈中所有的規(guī)則進(jìn)行查看,若未指定鏈名,則列出表中所有鏈的內(nèi)容 

[root@server136 ~]# iptables -L -n(查看filter表中的規(guī)則)


-F        清空指定鏈中的所有規(guī)則,若未指定鏈名,則清空表中所有鏈的內(nèi)容 

[root@server136 ~]# iptables -F(清除filter表中的所有規(guī)則)


-N       新建一條用戶自定義的規(guī)則鏈 

[root@server136 ~]# iptables -t nat -N tarace (nat表新建一條規(guī)則)


-X        刪除表中用戶自定義的規(guī)則鏈 

[root@server136 ~]# iptables -t nat -X tarace (刪除新建的tarace規(guī)則鏈)


-P        設(shè)置指定鏈的默認(rèn)策略(大p)

[root@server136 ~]# iptables -P INPUT DROP (定義INPUT規(guī)則鏈的策略為丟棄,慎用,遠(yuǎn)程會(huì)全部斷開

用之前需添加22端口的策略

[root@server136 ~]# iptables -I INPUT -p tcp --dport 22 -j ACCEPT

[root@server136 ~]# /etc/init.d/iptables save

iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

[root@server136 ~]# service iptables restart

iptables: Setting chains to policy ACCEPT: nat filter      [  OK  ]

iptables: Flushing firewall rules:                         [  OK  ]

iptables: Unloading modules:                               [  OK  ]

iptables: Applying firewall rules:                         [  OK  ] 


-n        使用數(shù)字形式顯示輸出結(jié)果,如顯示主機(jī)的IP地址而不是主機(jī)名 

[root@server136 ~]# iptables -n -L (需配合-L參數(shù)使用)


-v        查看規(guī)則列表時(shí)顯示詳細(xì)的信息 

[root@server136 ~]# iptables -n -L -v

Chain INPUT (policy DROP 13 packets, 2753 bytes)

 pkts bytes target     prot opt in     out     source               destination         

   81  7629 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22 


Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination         


Chain OUTPUT (policy ACCEPT 75 packets, 9341 bytes)

 pkts bytes target     prot opt in     out     source               destination  


-V        查看iptables命令工具的版本信息 

[root@server136 ~]# iptables -V

iptables v1.4.7


-h        查看命令幫助信息 

[root@server136 ~]# iptables -h


--line-numbers    查看規(guī)則列表時(shí),同時(shí)顯示規(guī)則在鏈中的順序號(hào)、地方

[root@server136 ~]# iptables -n -L --line-numbers


3.3、規(guī)則鏈的匹配條件類型

 3.3.1通用匹配:可以直接使用,不依賴其他條件或擴(kuò)展,包括網(wǎng)絡(luò)協(xié)議、IP地址、網(wǎng)絡(luò)接口等

1、協(xié)議匹配:-p 協(xié)議名

[root@server136 ~]# iptables -A FORWARD ! -p icmp -j ACCEPT (除了icmp協(xié)議的

數(shù)據(jù)包,其他協(xié)議的包都能轉(zhuǎn)發(fā))


2、地址匹配:-s 源地址、-d 目標(biāo)地址

3、接口匹配:-i 入站網(wǎng)卡、-o 出站網(wǎng)卡

[root@server136 ~]# iptables -I FORWARD -s 192.168.8.10 -p tcp -o eht1 --sport 80 -j ACCEPT

(源地址192.168.8.10的80端口可以回應(yīng)Eth2網(wǎng)卡的請(qǐng)求)


3.3.2、隱含匹配:要求以特定的協(xié)議匹配為前提,包括端口、tcp標(biāo)記、icmp類型等

1、端口匹配:--sport 源端口、--dport 目標(biāo)端口

[root@server136 ~]# iptables -A FORWARD -s 192.168.8.0/24 -p udp --dport 53 -j ACCEPT

(192.168.8.0網(wǎng)絡(luò)的之計(jì)可以訪問其他網(wǎng)絡(luò)的53號(hào)端口)


[root@server136 ~]# iptables -A FORWARD -d 192.168.9.0/24 -p udp --sport 53 -j ACCEPT

(來(lái)自53號(hào)端口的數(shù)據(jù)包可以訪問192.168.9.0網(wǎng)段的主機(jī))


2、TCP標(biāo)記匹配 --tcp-flags [檢查范圍] [被設(shè)置的標(biāo)記]

[root@server136 ~]# iptables -IINPUT -i eth2 -p tcp --tcp-flags SYN,RST,ACK SYN -j DROP

(檢測(cè)到入站的syn數(shù)據(jù)包就丟棄)


3、ICMP類型:--icmp-type    icmp類型(8請(qǐng)求、0返回、3請(qǐng)求但主機(jī)不可達(dá))

[root@server136 ~]# iptables -A INPUT -p icmp --icmp-type 8 -j DROP

(別人請(qǐng)求ping我的主機(jī),丟棄)


[root@server136 ~]# iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT(我ping別人時(shí),允許返回)


3.3.3、顯示條件匹配

1、多端口匹配:-m multiport --sports 源端口列表

                          -m multiport --dport  目標(biāo)端口列表

[root@server136 ~]# iptables -A INPUT -p tcp -m multiport --dport 80,110,443 -j ACCEPT


2、ip范圍匹配:-m iprange --src-range 源IP范圍

                          -m iprange --dst-range目標(biāo)IP范圍

[root@server136 ~]# iptables -A FORWARD -p tcp -m iprange --src-range 192.168.7.10-192.168.7.123 -j ACCEPT(允許以上ip地址范圍數(shù)據(jù)包通過(guò))

[root@server136 ~]# iptables -A FORWARD -p tcp -m iprange --dst-range 192.168.8.10-192.168.8.123 -j ACCEPT

3、MAC地址匹配:-m mac --mac-source 源mac地址

[root@server136 ~]# iptables -A INPUT -m mac --mac-source 00:0c:29:b1:f6:c4 -j ACCEPT


4、狀態(tài)匹配:-m state --state 連接狀態(tài)

                     NEW: 與任何連接無(wú)關(guān)

                      ESTABLISHED: 響應(yīng)請(qǐng)求或已經(jīng)建立連接的

                      RELATED:與已有連接有相關(guān)性的

[root@server136 ~]# iptables -I INPUT -m state --state ESTABLISHED -j ACCEPT


四、觸發(fā)動(dòng)作

 ACCEPT             允許數(shù)據(jù)庫(kù)通過(guò)

 DROP                丟棄數(shù)據(jù)包

 REJECT              拒絕數(shù)據(jù)包通過(guò)

 LOG                  將數(shù)據(jù)包信息記錄syslog日志

 DNAT               目標(biāo)地址轉(zhuǎn)換

 SNAT                源地址轉(zhuǎn)換

 MASQUERADE 地址欺騙

 REDIRECT         重定向

五、寫規(guī)則注意事項(xiàng): 

服務(wù)端:先進(jìn)后出

客戶端:先出后進(jìn)

先全部堵上,在發(fā)通行證     一般******可以堵截到,沒發(fā)通行證給他

做放行規(guī)則時(shí)是一定要有進(jìn)有出,不然放行不成功


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI