国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Linux系統(tǒng)防火墻iptables

這篇具有很好參考價值的文章主要介紹了Linux系統(tǒng)防火墻iptables。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、iptables防火墻概述

1.簡介

2.netfilter/iptables關(guān)系

3.iptables的四表五鏈

(1)四表

(2)五鏈

4.數(shù)據(jù)包過濾的匹配流程

(1)入站

(2)轉(zhuǎn)發(fā)

(3)出站

二、iptables防火墻配置

1.下載相關(guān)服務(wù)

2.iptables命令

3.實操

(1)添加新的規(guī)則

(2)查看規(guī)則

(3) 刪除規(guī)則

(4)清空規(guī)則

(5)修改規(guī)則

三、規(guī)則的匹配

1.通用匹配

2.隱含匹配

(1)協(xié)議端口匹配?

(2) tcp標(biāo)記匹配

(3)ICMP類型匹配

3.顯式匹配

(1)多端口匹配

(2)ip范圍匹配

(3)mac地址匹配

(4)狀態(tài)匹配

四、iptables配置NAT地址轉(zhuǎn)換

1.配置SNAT

(1)轉(zhuǎn)換為固定公網(wǎng)ip

(2)轉(zhuǎn)換為非固定的公網(wǎng)ip(動態(tài))

2.配置DNAT

五、iptables防火墻策略的備份和恢復(fù)


一、iptables防火墻概述

1.簡介

????????Linux系統(tǒng)的防火墻: IP信息包過濾系統(tǒng),它實際上由兩個組件netfilteriptables組成。

????????主要工作在網(wǎng)絡(luò)層,針對IP數(shù)據(jù)包。針對 TCP/IP 數(shù)據(jù)包實施過濾和限制,屬于典型的包過濾防火墻(或稱為網(wǎng)絡(luò)層防火墻)

2.netfilter/iptables關(guān)系

netfilter:屬于“內(nèi)核態(tài)” (Kernel Space, 又稱為內(nèi)核空間)的防火墻功能體系。 是內(nèi)核的一部分,由一些數(shù)據(jù)包過濾表組成,這些表包含內(nèi)核用來控制數(shù)據(jù)包過濾處理的規(guī)則集。

iptables:屬于“用戶態(tài)” (User Space,又稱為用戶空間)的防火墻管理體系。 是一種用來管理Linux防火墻的命令程序,它使插入,修改和刪除數(shù)據(jù)包過濾表中的規(guī)則變得容易,通常位于/sbin/iptables目錄下。

netfilter/iptables后期簡稱為iptables。

iptables是基于內(nèi)核的防火墻,其中內(nèi)置了raw、mangle、 nat和filter四個規(guī)則表。

表中所有規(guī)則配置后,立即生效,不需要重啟服務(wù)。

3.iptables的四表五鏈

(1)四表

raw表:確定是否對該數(shù)據(jù)包進(jìn)行狀態(tài)跟蹤。包含兩個規(guī)則鏈,OUTPUT、PREROUTING。

mangle表:修改數(shù)據(jù)包內(nèi)容,用來做流量整形的,給數(shù)據(jù)包設(shè)置標(biāo)記。包含五個規(guī)則鏈,INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING。

nat表:負(fù)責(zé)網(wǎng)絡(luò)地址轉(zhuǎn)換,用來修改數(shù)據(jù)包中的源、目標(biāo)IP地址或端口。包含三個規(guī)則鏈,OUTPUT、PREROUTING、POSTROUTING。

filter表:負(fù)責(zé)過濾數(shù)據(jù)包,確定是否放行該數(shù)據(jù)包(過濾)。包含三個規(guī)則鏈,INPUT、FORWARD、OUTPUT。

在iptables的四個規(guī)則表中,filter表是防火墻默認(rèn)表,mangle表和raw表的應(yīng)用相對較少。

(2)五鏈

INPUT:處理入站數(shù)據(jù)包,匹配目標(biāo)IP為本機的數(shù)據(jù)包。

OUTPUT:處理出站數(shù)據(jù)包,一般不在此鏈上做配置。

FORWARD:處理轉(zhuǎn)發(fā)數(shù)據(jù)包,匹配流經(jīng)本機的數(shù)據(jù)包。

PREROUTING鏈:在進(jìn)行路由選擇前處理數(shù)據(jù)包,用來修改目的地址,用來做DNAT。相當(dāng)于把內(nèi)網(wǎng)中的80端口映射到路由器外網(wǎng)端口上。

POSTROUTING鏈:在進(jìn)行路由選擇后處理數(shù)據(jù)包,用來修改源地址,用來做SNAT。相當(dāng)于內(nèi)網(wǎng)通過路由器NAT轉(zhuǎn)換功能實現(xiàn)內(nèi)網(wǎng)主機通過一個公網(wǎng)IP地址上網(wǎng)。

數(shù)據(jù)包到達(dá)防火墻時,規(guī)則表之間的優(yōu)先順序

raw > mangle > nat > filter

Linux系統(tǒng)防火墻iptables

4.數(shù)據(jù)包過濾的匹配流程

(1)入站

????????入站數(shù)據(jù)包從A網(wǎng)絡(luò)發(fā)到B網(wǎng)絡(luò),首先發(fā)到防火墻,先后順序經(jīng)過有PREROUTING鏈的三個表(raw、mangle、nat),如果都是放通狀態(tài)的會經(jīng)過路由選擇,然后根據(jù)目的地址一層一層往上送,經(jīng)過有INPUT的兩個表(mangle、filter),一直送到應(yīng)用程序。

(2)轉(zhuǎn)發(fā)

????????目的地不是本機,數(shù)據(jù)包先從A網(wǎng)絡(luò)過濾,經(jīng)過PREROUTING鏈,看是否是自己的目的地址,如果是外網(wǎng)到內(nèi)網(wǎng)需要用nat轉(zhuǎn)換成內(nèi)網(wǎng)IP,找到內(nèi)網(wǎng)用戶,經(jīng)過FORWARD鏈進(jìn)行過濾,允許放通的到達(dá)POSTROUING鏈,再把內(nèi)網(wǎng)地址轉(zhuǎn)換成公網(wǎng),這樣數(shù)據(jù)包才能回去;如果是內(nèi)網(wǎng)往外網(wǎng)發(fā)順序就是反過來。

(3)出站

????????從本機的應(yīng)用程序發(fā)出來, 經(jīng)過路由選擇,讓路由知道從哪里發(fā),先后順序經(jīng)過有OUTPUT鏈的四個表(raw、mangle、nat、filter),都放通后到達(dá)POSTROUING鏈的兩個表(mangle、nat),如果沒有什么轉(zhuǎn)換地址,就出站。

Linux系統(tǒng)防火墻iptables

總結(jié)

????????當(dāng)一個數(shù)據(jù)包進(jìn)入網(wǎng)卡時,數(shù)據(jù)包首先進(jìn)入PREROUTING鏈,內(nèi)核根據(jù)數(shù)據(jù)包目的IP判斷是否需要轉(zhuǎn)送出去。

????????如果數(shù)據(jù)包是進(jìn)入本機的,數(shù)據(jù)包就會沿著圖向下移動,到達(dá)INPUT鏈。數(shù)據(jù)包到達(dá)INPUT鏈后, 任何進(jìn)程都會收到它。本機上運行的程序可以發(fā)送數(shù)據(jù)包,這些數(shù)據(jù)包經(jīng)過OUTPUT鏈,然后發(fā)送出去。

????????如果數(shù)據(jù)包是要轉(zhuǎn)發(fā)出去的,且內(nèi)核允許轉(zhuǎn)發(fā),數(shù)據(jù)包就會向右移動,經(jīng)過FORWARD鏈,然后到達(dá)POSTROUTING鏈輸出。

二、iptables防火墻配置

1.下載相關(guān)服務(wù)

????????Centos 7默認(rèn)使用firewalld防火墻,沒有安裝iptables, 若想使用iptables防火墻。必須先關(guān)閉firewalld防火墻,再安裝iptables

systemctl stop firewalld. service? ? ? ? ? ? ? ? ?? //關(guān)閉firewalld防火墻
systemctl disable firewalld. service? ? ? ? ? ? ??//取消firewalld防火墻開機自啟動
yum -y install iptables iptables-services? ? ? ?//安裝iptables和iptables-services
systemctl start iptables.service? ? ? ? ? ? ? ? ? ? //啟動iptables-services

2.iptables命令

iptables ?[-t 表名] ?管理選項 ?[鏈名] [匹配條件] [-j 控制類型]

-t 指定表名(raw、mangle、nat、filter)
-j 指定控制類型

常用管理選項

選項 作用
-A? (--append) 在指定鏈的末尾追加一條新的規(guī)則

-I? ?(--insert)

在指定鏈的開頭插入一條新的規(guī)則;未指定序號時默認(rèn)作為第一條規(guī)則
-R? (--replace) 修改、替換指定鏈中的某一條規(guī)則,可指定規(guī)則序號或具體內(nèi)容
-P? (--policy)

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

-D? (--delete) 刪除指定鏈中的某一條規(guī)則,可指定規(guī)則序號或具體內(nèi)容
-F? (--flush) 清空指定鏈中的所有規(guī)則;若未指定鏈名,則清空表中的所有鏈
-L? (--list) 列出指定鏈中所有的規(guī)則;若未指定鏈名,則列出表中的所有鏈
-n? (--numeric) (搭配-L使用)使用數(shù)字形式顯示輸出結(jié)果,如顯示IP地址而不是主機名
-v (搭配-L使用)顯示詳細(xì)信息,包括每條規(guī)則的匹配包數(shù)量和匹配字節(jié)數(shù)
--line-numbers (搭配-L使用)查看規(guī)則時,顯示規(guī)則的序號

常用控制類型

控制類型 作用
ACCEPT 允許數(shù)據(jù)包通過
DROP 直接丟棄數(shù)據(jù)包,不給出任何回應(yīng)消息
REJECT 拒絕數(shù)據(jù)包通過,會給數(shù)據(jù)發(fā)送端一個響應(yīng)信息
SNAT 修改數(shù)據(jù)包的源地址
DNAT 修改數(shù)據(jù)包的目的地址
MASQUERADE 偽裝成—個非固定公網(wǎng)IP地址
LOG 在/varlog/messages文件中記錄日志信息,然后將數(shù)據(jù)包傳遞給下一條規(guī)則。(LOG只是一種輔助動作,并沒有真正處理數(shù)據(jù)包)

匹配條件

匹配條件 說明
-p 指定要匹配的數(shù)據(jù)包的協(xié)議類型
-s 指定要匹配的數(shù)據(jù)包的源IP地址
-d 指定要匹配的數(shù)據(jù)包的目的IP地址
-i 指定數(shù)據(jù)包進(jìn)入本機的網(wǎng)絡(luò)接口
-o 指定數(shù)據(jù)包離開本機做使用的網(wǎng)絡(luò)接口
--sport 指定源端口號
--dport 指定目的端口號

注意事項
不指定表名時,默認(rèn)指filter表
不指定鏈名時,默認(rèn)指表內(nèi)的所有鏈
除非設(shè)置鏈的默認(rèn)策略,否則必須指定匹配條件控制類型使用大寫字母,其余均為小寫

3.實操

(1)添加新的規(guī)則

//1.-A 在filter表的INPUT鏈末行添加拒絕icmp的規(guī)則
[root@localhost1 ~]#iptables -t filter -A INPUT -p icmp -j REJECT

//2.-I 不指定行,是在指定鏈?zhǔn)仔胁迦胍?guī)則(允許tcp 22端口)
[root@localhost1 ~]#iptables -t filter -I INPUT -p tcp --dport 22 -j ACCEPT

//3.-I 指定行,是在指定鏈的指定行上插入規(guī)則
[root@localhost1 ~]#iptables -t filter -I INPUT 2 -p tcp --dport 22 -j ACCEPT

(2)查看規(guī)則

//1.查看指定表的規(guī)則(不加鏈名顯示所有鏈的所有規(guī)則)
[root@localhost1 ~]#iptables -t filter -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
REJECT     icmp --  anywhere             anywhere             reject-with icmp-port                                                                                                         -unreachable

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

//2.-nL 以數(shù)字形式顯示
[root@localhost1 ~]#iptables -t filter -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
REJECT     icmp --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port                                                                                                         -unreachable

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

//3.-nvL 以數(shù)字形式顯示,并顯示詳細(xì)信息
[root@localhost1 ~]#iptables -t filter -nvL
Chain INPUT (policy ACCEPT 3 packets, 381 bytes)
 pkts bytes target     prot opt in     out     source               destination                                                                                                             
  408 29984 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0                                                                                                                     tcp dpt:22
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0                                                                                                                     tcp dpt:22
    5   420 REJECT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0                                                                                                                     reject-with icmp-port-unreachable

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination                                                                                                             

Chain OUTPUT (policy ACCEPT 66 packets, 5784 bytes)
 pkts bytes target     prot opt in     out     source               destination                                                

//4. --line-numbers 顯示規(guī)則序號(指定鏈名,就顯示指定鏈的規(guī)則)
[root@localhost1 ~]#iptables -t filter -nvL INPUT --line-numbers
Chain INPUT (policy ACCEPT 3 packets, 381 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1      902 64816 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22
2        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22
3        5   420 REJECT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

(3) 刪除規(guī)則

注意
若規(guī)則列表中期多條相同的規(guī)則時,按內(nèi)容匹配只刪除的序號最小的一條

按號碼匹配刪除時,確保規(guī)則號碼小于等于已有規(guī)則數(shù),否則報錯
按內(nèi)容匹配刪數(shù)時,確保規(guī)則存在,否則報錯

//1.根據(jù)規(guī)則序號刪
[root@localhost1 ~]#iptables -D INPUT 3

//2.根據(jù)規(guī)則內(nèi)容刪(相當(dāng)于操作一遍創(chuàng)建指定規(guī)則的步驟加上-D選項刪除)
[root@localhost1 ~]#iptables -D INPUT -p icmp -j REJECT

//3.有相同的規(guī)則會刪除第一個
[root@localhost1 ~]#iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
REJECT     icmp --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-p 

[root@localhost1 ~]#iptables -D INPUT -p tcp --dport 22 -j ACCEPT

(4)清空規(guī)則

注意
-F僅僅是清空鏈中的規(guī)則,并不影響-Р設(shè)置的默認(rèn)規(guī)則,默認(rèn)規(guī)則需要手動進(jìn)行修改

-P設(shè)置了默認(rèn)規(guī)則為DROP后,使用-F一定要小心,因為iptables的修改是立刻生效的!
防止把允許遠(yuǎn)程連接的相關(guān)規(guī)則清除后導(dǎo)致無法遠(yuǎn)程連接主機,此情況如果沒有保存規(guī)則可重啟主機解決

如果不寫表

名和鏈名,默認(rèn)清空filter表中所有鏈里的所有規(guī)則

//1.清空指定鏈中所有規(guī)則
[root@localhost1 ~]#iptables -F OUTPUT

//2.不指定鏈名默認(rèn)清空所有規(guī)則
[root@localhost1 ~]#iptables -F

(5)修改規(guī)則

//1.-R 修改已有的規(guī)則
[root@localhost1 ~]#iptables -t filter -R INPUT 1 -p icmp -j ACCEPT

//2.-P 修改默認(rèn)策略(修改為丟棄轉(zhuǎn)發(fā)數(shù)據(jù)包)
[root@localhost1 ~]#iptables -P FORWARD DROP

三、規(guī)則的匹配

1.通用匹配

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

協(xié)議匹配

-p??協(xié)議名

地址匹配

-s? 源地址

-d 目的地址(可以是IP、網(wǎng)段、域名、空(代表任何地址))

接口匹配

-i 入站網(wǎng)卡

-o 出站網(wǎng)卡

//1.(使用!取反)不是icmp協(xié)議的其他數(shù)據(jù)包全部接受
//注:雖然不是icmp包都接受,但是沒有指定icmp包的規(guī)則,所以icmp包默認(rèn)還是接受的
[root@localhost1 ~]#iptables -A INPUT ! -p icmp -j ACCEPT

//2.將指定主機192.168.116.20的數(shù)據(jù)包丟棄
[root@localhost1 ~]#iptables -A INPUT -s 192.168.116.20 -j DROP

//3.拒絕指定網(wǎng)段的數(shù)據(jù)包從ens33網(wǎng)卡進(jìn)入
[root@localhost1 ~]#iptables -I INPUT -i ens33 -s 192.168.110.0/24 -j REJECT

2.隱含匹配

????????某些條件,如端口、TCP標(biāo)記、ICMP類型,隱含要求以特定的協(xié)議匹配作為前提。

(1)協(xié)議端口匹配?

?--sport--dsport 必須配合 -p 指定協(xié)議使用

詳細(xì)用法?

--sport 1000 匹配源端口是1000的數(shù)據(jù)包
--sport 1000:3000 匹配源端口是1000-3000的數(shù)據(jù)包
--dport? :3000 匹配目標(biāo)端口是3000及以下的數(shù)據(jù)包
--dport? 1000: 匹配目標(biāo)端口是1000及以上的數(shù)據(jù)包
//1.允許tcp的20和21端口通過(即允許ftp數(shù)據(jù)包)
[root@localhost1 ~]#iptables -I INPUT -p tcp --dport 20:21 -j ACCEPT

//2.丟棄192.168.11.0網(wǎng)段轉(zhuǎn)發(fā)的tcp 24000到24500 端口的數(shù)據(jù)包
[root@localhost1 ~]#iptables -I FORWARD -d 192.168.11.0/24 -p tcp --dport 24000:24500 -j DROP

(2) tcp標(biāo)記匹配

--tcp-flags? ? ? ? 配合 -p tcp 使用,指定tcp標(biāo)記(SYN、ACK、RST、URG、PSH、FIN)

//1.丟棄SYN請求包,允許其他指定的數(shù)據(jù)包
[root@localhost1 ~]#iptables -A INPUT -p tcp --tcp-flags SYN,RST,ACK SYN -j ACCEPT

SYN,RST,ACK SYN  前面指定包范圍,空格后再指定
表明前面指定的里面,除了這空格后面的SYN,其他都放行

//2.tcp三次握手第一次接受SYN,拒絕其他,第二次發(fā)送SYN和ACK
[root@localhost1 ~]#iptables -I INPUT -p tcp --dport 22 --tcp-flags SYN,ACK,FIN,RST,URG,PSH  SYN -j REJECT
[root@localhost1 ~]#iptables -I OUTPUT -p tcp --dport 22 --tcp-flags SYN,ACK,FIN,RST,URG,PSH SYN,ACK -j REJECT

(3)ICMP類型匹配

--icmp-type????????配合 -p icmp 使用,指定icmp類型(字符串或數(shù)字代碼)

注:icmp類型可用iptables -p icmp -h 查看幫助信息

Echo-Request(代碼為8) 請求
Echo-Reply (代碼為0) 回顯
Destination-Unreachable(代碼為3) 目標(biāo)不可達(dá)
//1.丟棄icmp請求包(使別人不能ping通本機,但本機默認(rèn)情況可以ping通別人)
[root@localhost1 ~]#iptables -A INPUT -p icmp --icmp-type 8 -j DROP

//2.丟棄icmp回顯包(本機發(fā)送ping請求,但是別人回顯的包被本機丟棄,默認(rèn)情況下本機不能ping通別人)
[root@localhost1 ~]#iptables -A INPUT -p icmp --icmp-type 0 -j DROP

//3.當(dāng)ping不通時,允許顯示目標(biāo)不可達(dá)
[root@localhost1 ~]#iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT

3.顯式匹配

????????要求以 -m (擴展模塊)的形式明確指出類型,包括多端口、MAC地址、IP范圍、數(shù)據(jù)包狀態(tài)等條件。

(1)多端口匹配

-m multiport --sport? ?源端口列表

-m multiport --dport? ?目的端口列表

//1.允許tcp的20,21,22,53端口
[root@localhost1 ~]#iptables -A INPUT -p tcp -m multiport --dport 20,21,22,53 -j ACCEPT

//2.允許udp的53,67,68端口
[root@localhost1 ~]#iptables -A INPUT -p udp -m multiport --dport 53,67,68 -j ACCEPT

(2)ip范圍匹配

-m iprange --src-range? 源IP范圍

-m iprange --dst-range? 目的IP范圍

//1.禁止轉(zhuǎn)發(fā)源ip范圍是192.168.10.100-192.168.10.200的udp數(shù)據(jù)包
[root@localhost1 ~]#iptables -A FORWARD -p udp -m iprange --src-range 192.168.10.100-192.168.10.200 -j DROP

//2.禁止發(fā)送目的ip范圍是192.168.10.100-192.168.10.200的udp數(shù)據(jù)包
[root@localhost1 ~]#iptables -A INPUT -p udp -m iprange --dst-range 192.168.10.100-192.168.10.200 -j DROP

(3)mac地址匹配

-m mac --mac-source? 源MAC地址

(4)狀態(tài)匹配

-m state --state? 連接狀態(tài)

常見的連接狀態(tài)

NEW 本機要連接目標(biāo)主機,在目標(biāo)主機上看到的第一個想要連接的包
ESTABLISHED 本機已與目標(biāo)主機進(jìn)行通信,判斷標(biāo)準(zhǔn)只要目標(biāo)主機回應(yīng)了第一個包,就進(jìn)入該狀態(tài)
RELATED 本機已與目標(biāo)主機進(jìn)行通信,目標(biāo)主機發(fā)起新的鏈接方式,一般與ESTABLISHED配合使用
INVALID 無效的封包,例如數(shù)據(jù)破損的封包狀態(tài)
//第一個包我只看22端口的包(-p tcp是隱含匹配,可以省略-m tcp)
[root@localhost1 ~]#iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

//允許放通tcp和udp的這些端口號
[root@localhost1 ~]#iptables -A INPUT -p tcp -m multiport --dport 443,80,22,21,20,53 -j ACCEPT
[root@localhost1 ~]#iptables -A INPUT -p udp -m multiport --dport 53 -j ACCEPT

//使已建立連接的包以及該鏈接相關(guān)的包允許通過
[root@localhost1 ~]#iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

//默認(rèn)策略設(shè)為drop,以上所有配置就成了一個tcp相關(guān)包的白名單,通過第一步的檢測后允許相關(guān)包通過
[root@localhost1 ~]#iptables -P INPUT DROP

 

四、iptables配置NAT地址轉(zhuǎn)換

1.配置SNAT

應(yīng)用場景

局域網(wǎng)主機共享轉(zhuǎn)換的公網(wǎng)ip接入internet公網(wǎng)(內(nèi) --> 外)

模擬實驗環(huán)境

私網(wǎng)客戶端一臺、網(wǎng)關(guān)服務(wù)器一臺(設(shè)置iptables防火墻)、外網(wǎng)web服務(wù)端(有httpd服務(wù))

三臺都需要關(guān)閉默認(rèn)防火墻firewalld和selinux?

準(zhǔn)備私網(wǎng)客戶端:設(shè)置網(wǎng)卡網(wǎng)段為192.168.146.0/24;ip設(shè)為192.168.146.20;網(wǎng)關(guān)設(shè)為192.168.146.30。

Linux系統(tǒng)防火墻iptables

準(zhǔn)備網(wǎng)關(guān)服務(wù)器:一個網(wǎng)卡設(shè)為192.168.146.0/24網(wǎng)段,并設(shè)置ip為192.168.146.30;另一個網(wǎng)卡設(shè)為12.0.0.0/8網(wǎng)段,并設(shè)置ip為12.0.0.12;添加路由轉(zhuǎn)發(fā)功能;下載?iptables-services 并開始iptables之后做防護墻策略。

Linux系統(tǒng)防火墻iptables

Linux系統(tǒng)防火墻iptables

Linux系統(tǒng)防火墻iptables

Linux系統(tǒng)防火墻iptables

準(zhǔn)備外網(wǎng)web服務(wù)端:設(shè)置網(wǎng)卡網(wǎng)段為12.0.0.0/8;ip設(shè)為12.0.0.12;網(wǎng)關(guān)設(shè)為12.0.0.254;下載并開啟httpd服務(wù)。

Linux系統(tǒng)防火墻iptables

Linux系統(tǒng)防火墻iptables

(1)轉(zhuǎn)換為固定公網(wǎng)ip

iptables -t nat -A POSTROUTING -s 源網(wǎng)段?-o 出站網(wǎng)卡 -j SNAT --to 轉(zhuǎn)換的公網(wǎng)地址

iptables -t nat -A POSTROUTING -s 源網(wǎng)段?-o 出站網(wǎng)卡 -j SNAT --to-source 轉(zhuǎn)換的公網(wǎng)地址范圍(如12.0.0.1-12.0.0.10)

注:每一個做轉(zhuǎn)換的公網(wǎng)ip,一般可以支持內(nèi)網(wǎng)100~200臺主機。

Linux系統(tǒng)防火墻iptables

測試效果

使用客戶端訪問外網(wǎng)web服務(wù)器地址;在web服務(wù)器查訪問日志/var/log/httpd/access.log,發(fā)現(xiàn)私網(wǎng)客戶端使用了轉(zhuǎn)換的12.0.0.254地址訪問了服務(wù)端。

Linux系統(tǒng)防火墻iptables

Linux系統(tǒng)防火墻iptables

(2)轉(zhuǎn)換為非固定的公網(wǎng)ip(動態(tài))

iptables -t nat -A POSTROUTING -s 源網(wǎng)段?-o 出站網(wǎng)卡 -j MASQUERADE

2.配置DNAT

應(yīng)用場景

在internet公網(wǎng)中發(fā)布位于企業(yè)局域網(wǎng)的服務(wù)器(外 --> 內(nèi))

模擬實驗環(huán)境

私網(wǎng)客戶端一臺(有httpd服務(wù))、網(wǎng)關(guān)服務(wù)器一臺(設(shè)置iptables防火墻)、外網(wǎng)web服務(wù)端

三臺都需要關(guān)閉默認(rèn)防火墻firewalld和selinux?

可參考上個模擬場景,再為私網(wǎng)主機增設(shè)httpd服務(wù)使之成為私網(wǎng)web服務(wù)端,將原來的外網(wǎng)主機當(dāng)做客戶端。

為私網(wǎng)主機添加httpd服務(wù)并啟用?

Linux系統(tǒng)防火墻iptables

Linux系統(tǒng)防火墻iptables

轉(zhuǎn)換為私網(wǎng)ip

注: 在配置DNAT前一定要先配置SNAT!??!

iptables -t nat -A PREROUTING -d 外網(wǎng)客戶端地址 -p 指定協(xié)議?--dport 指定端口?-i 入站網(wǎng)卡 -j DNAT --to 轉(zhuǎn)換到的內(nèi)網(wǎng)服務(wù)器地址:服務(wù)端口(如果前面指定的端口和服務(wù)端口一致則可省略,如http默認(rèn)80端口,若前面修改成 -- dport 8080,最后就需要加上:80)

Linux系統(tǒng)防火墻iptables

測試效果

外網(wǎng)客戶端訪問指定修改后的的外網(wǎng)ip就可以訪問內(nèi)網(wǎng)服務(wù)器

Linux系統(tǒng)防火墻iptables

Linux系統(tǒng)防火墻iptables

五、iptables防火墻策略的備份和恢復(fù)

? ? ? ? iptables的配置存放在/etc/sysconfig/iptables 文件中,我們對iptables所做的策略修改,雖然會立刻生效,但是并沒有保存下來,當(dāng)我們重啟iptables防火墻時,會讀取配置文件中設(shè)置的策略,我們之前修改過的策略便失效了。所以需要對修改的iptables策略進(jìn)行備份和恢復(fù)。

iptables-save > 備份文件? ? ? ? ? ? ? ? ? ? ? ? 將修改的iptables策略導(dǎo)入到備份文件中

iptables-restore < /opt/iptables.bak? ? ? ? 將備份文件中的策略還原到配置文件中

systemctl restart iptables.service? ? ? ? ? ? 重啟服務(wù)生效文章來源地址http://www.zghlxwxcb.cn/news/detail-443842.html

//1.查看配置文件中的默認(rèn)策略
[root@localhost1 opt]#cat /etc/sysconfig/iptables
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configur                                                                                                            ation
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

//2.以下為我們修改過的策略,使用iptables -nL查看
[root@localhost1 opt]#iptables -nL
Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:                                                                                                            22
DROP       icmp --  0.0.0.0/0            0.0.0.0/0            icmptype 8
DROP       icmp --  0.0.0.0/0            0.0.0.0/0            icmptype 0
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0            icmptype 3
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 2                                                                                                            0,21,22,53
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 5                                                                                                            3,67,68
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 5                                                                                                            3
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTA                                                                                                            BLISHED

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
DROP       udp  --  0.0.0.0/0            0.0.0.0/0            source IP range 19                                                                                                            2.168.10.100-192.168.10.200

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

//3.對自定義的iptables策略做備份(將命令導(dǎo)入一個備份文件iptables.bak)
[root@localhost1 opt]#iptables-save > /opt/iptables.bak
[root@localhost1 opt]#cd /opt
[root@localhost1 opt]#cat iptables.bak
# Generated by iptables-save v1.4.21 on Thu Sep 15 21:55:58 2022
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [14:1392]
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j DROP
-A INPUT -p icmp -m icmp --icmp-type 0 -j DROP
-A INPUT -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 20,21,22,53 -j ACCEPT
-A INPUT -p udp -m multiport --dports 53,67,68 -j ACCEPT
-A INPUT -p udp -m multiport --dports 53 -j ACCEPT
-A INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -p udp -m iprange --src-range 192.168.10.100-192.168.10.200 -j DROP
COMMIT
# Completed on Thu Sep 15 21:55:58 2022

//4.重啟服務(wù)(用作模擬未保留修改的策略),再查看發(fā)現(xiàn)策略又恢復(fù)成了配置文件中的默認(rèn)策略
[root@localhost1 opt]#systemctl restart iptables.service

[root@localhost1 opt]#iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

//5.將備份文件中的策略恢復(fù)到配置文件中,再重啟服務(wù)就還原成功了
[root@localhost1 opt]#iptables-restore < /opt/iptables.bak

[root@localhost1 opt]#systemctl restart iptables.service

[root@localhost1 opt]#iptables -nL
Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:                                                                                                            22
DROP       icmp --  0.0.0.0/0            0.0.0.0/0            icmptype 8
DROP       icmp --  0.0.0.0/0            0.0.0.0/0            icmptype 0
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0            icmptype 3
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 2                                                                                                            0,21,22,53
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 5                                                                                                            3,67,68
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 5                                                                                                            3
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTA                                                                                                            BLISHED

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
DROP       udp  --  0.0.0.0/0            0.0.0.0/0            source IP range 19                                                                                                            2.168.10.100-192.168.10.200

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

到了這里,關(guān)于Linux系統(tǒng)防火墻iptables的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Linux防火墻之iptables(下)

    Linux防火墻之iptables(下)

    承接上文,上文介紹了iptables的工作原理,四表五鏈,以及基本規(guī)則的增刪改查。本文為上文的拓展,繼續(xù)延申iptables規(guī)則設(shè)置的匹配方式。以及如何備份,還原iptables設(shè)置,還有修改iptables的初始化設(shè)置 ?1.通用匹配 1.1 協(xié)議匹配? 1.2 地址匹配? 1.3 接口匹配 ?2.隱含匹配 ?2.

    2024年01月19日
    瀏覽(45)
  • linux  iptables安全技術(shù)與防火墻

    linux iptables安全技術(shù)與防火墻

    一、入侵檢測系統(tǒng) 二、防火墻 1.特點 2.防火墻分類 3.按實現(xiàn)方式劃分 4.按網(wǎng)絡(luò)協(xié)議劃分 5.Netfilter 6.iptables 三、防水墻 四、tcpdump抓包 五、實驗演示 1.SNAT? ? ? ? ? ? ? ? ? ? ? ? ? ? 是不阻斷任何網(wǎng)絡(luò)訪問,量化、定位來自內(nèi)外網(wǎng)絡(luò)的威脅情況, 主要以提供報警和事后監(jiān)督

    2024年02月08日
    瀏覽(27)
  • Linux_iptables防火墻學(xué)習(xí)筆記

    Linux_iptables防火墻學(xué)習(xí)筆記

    主機型 對主機進(jìn)行保護 網(wǎng)絡(luò)型 系統(tǒng)當(dāng)作路由時使用,對網(wǎng)絡(luò)進(jìn)行保護 iptables是一個用戶空間的應(yīng)用,用來設(shè)置內(nèi)核空間的netfilter iptables沒有守護進(jìn)程,不能算是真正意義上的服務(wù),應(yīng)該算是內(nèi)核提供的功能 數(shù)據(jù)經(jīng)過防火墻的流程 四表 filter表 負(fù)責(zé)過濾功能,防火墻;內(nèi)核模塊:ipta

    2024年04月16日
    瀏覽(56)
  • linux防火墻查看狀態(tài)firewall、iptable

    1、iptables防火墻 查看防火墻狀態(tài)? service iptables status 停止防火墻 service iptables stop 啟動防火墻 service iptables start 重啟防火墻 service iptables restart 永久關(guān)閉防火墻 chkconfig iptables off 永久關(guān)閉后重啟 chkconfig iptables on 開啟80端口 vim /etc/sysconfig/iptables 加入一下代碼 -A INPUT -m state --s

    2024年01月16日
    瀏覽(31)
  • Linux網(wǎng)絡(luò)服務(wù)之iptables防火墻工具

    Linux網(wǎng)絡(luò)服務(wù)之iptables防火墻工具

    Netfilter是一個Linux內(nèi)核功能,用于在網(wǎng)絡(luò)數(shù)據(jù)包從網(wǎng)絡(luò)堆棧進(jìn)入或離開時進(jìn)行包過濾和操作。 Netfilter內(nèi)稱為防火墻的“內(nèi)核態(tài)”。 Firewalld和Iptables 都不是防火墻,是 防火墻管理工具 ,被稱為防火墻的“用戶態(tài)”。 Centos 7中默認(rèn)管理防火墻規(guī)則的工具是firewalld。 由軟件包ip

    2024年02月12日
    瀏覽(23)
  • Centos上 關(guān)閉Linux防火墻(iptables) 及 SELinux

    一、關(guān)閉防火墻 1、重啟后永久性生效: 開啟: chkconfig iptables on 關(guān)閉: chkconfig iptables off 2、即時生效,重啟后失效: 開啟: service iptables start 關(guān)閉: service iptables stop 在開啟了防火墻時,做如下設(shè)置,開啟相關(guān)端口,修改?/etc/sysconfig/iptables?文件,添加以下內(nèi)容: -A INPUT

    2024年02月08日
    瀏覽(19)
  • 【防火墻】iptables防火墻(一)

    【防火墻】iptables防火墻(一)

    防火墻具有 隔離功能 主要部署在網(wǎng)絡(luò)邊緣或者主機邊緣,防火墻的主要作用是 決定哪些數(shù)據(jù)可以被外網(wǎng)訪問,哪些數(shù)據(jù)可以進(jìn)入內(nèi)網(wǎng)訪問 網(wǎng)絡(luò)層(路由器):數(shù)據(jù)的轉(zhuǎn)發(fā) 安全技術(shù) 1.入侵監(jiān)測系統(tǒng):在檢測到威脅(木馬、病毒)后,不會阻斷網(wǎng)絡(luò)訪問,只會在事后提供報警

    2024年02月15日
    瀏覽(53)
  • iptables防火墻(一)

    iptables防火墻(一)

    Linux系統(tǒng)的防火墻:IP信息包過濾系統(tǒng),它實際上由兩個組件 netfilter 和 iptables 組成。 主要工作在網(wǎng)絡(luò)層,針對IP數(shù)據(jù)包。體現(xiàn)在對包內(nèi)的IP地址、端口、協(xié)議等信息的處理上。 1.netfilter netfilter 屬于\\\"內(nèi)核態(tài)\\\"(Kernel Space,又稱為內(nèi)核空間)的防火墻功能體系。 netfilter是內(nèi)核的

    2024年02月05日
    瀏覽(23)
  • iptables 防火墻(二)

    iptables 防火墻(二)

    目錄 1. SNAT 策略及應(yīng)用 1.1 SNAT策略概述 ?1. 只開啟路由轉(zhuǎn)發(fā),未設(shè)置地址轉(zhuǎn)換的情況 2. 開啟路由轉(zhuǎn)發(fā),并設(shè)置SNAT轉(zhuǎn)換的情況 1.2 SNAT策略的應(yīng)用 1. 2.1 共享固定IP上網(wǎng) (1)打開網(wǎng)關(guān)的路由轉(zhuǎn)發(fā) (2)設(shè)置正確的SNAT策略 (3)測試SNAT共享接入結(jié)果 1.2.2 共享動態(tài)IP 地址上網(wǎng) 2. DN

    2024年02月03日
    瀏覽(25)
  • iptables防火墻詳解

    iptables防火墻詳解

    1.1 防火墻概念 從邏輯上講,防火墻可以大體分為 主機防火墻和網(wǎng)絡(luò)防火墻 。網(wǎng)絡(luò)防火墻和主機防火墻并不沖突,可以理解為,網(wǎng)絡(luò)防火墻主外(集體), 主機防火墻主內(nèi)(個人) 主機防火墻:針對于單個主機進(jìn)行防護 網(wǎng)絡(luò)防火墻:往往處于網(wǎng)絡(luò)入口或邊緣,針對于網(wǎng)絡(luò)入

    2024年02月04日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包