最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux安全防火墻(iptables)配置策略分享

 更新時(shí)間:2026年03月02日 09:28:02   作者:木合杉  
這篇文章主要介紹了Linux安全防火墻(iptables)配置策略,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

概念

防火墻(Firewall)是一種網(wǎng)絡(luò)安全設(shè)備或軟件,用于保護(hù)計(jì)算機(jī)網(wǎng)絡(luò)免受未經(jīng)授權(quán)的訪問(wèn)、惡意攻擊和惡意軟件的侵害。它充當(dāng)了網(wǎng)絡(luò)和互聯(lián)網(wǎng)與內(nèi)部網(wǎng)絡(luò)之間的關(guān)卡,對(duì)流量進(jìn)行過(guò)濾和監(jiān)控,以確保網(wǎng)絡(luò)安全和保護(hù)敏感數(shù)據(jù)。

防火墻可以部署在不同的層級(jí),包括網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層和應(yīng)用層,以提供不同級(jí)別的保護(hù)。有硬件防火墻和軟件防火墻兩種類(lèi)型,它們可以獨(dú)立運(yùn)行或組合使用,以實(shí)現(xiàn)全面的網(wǎng)絡(luò)安全。

綜而言之,防火墻是網(wǎng)絡(luò)安全的關(guān)鍵組成部分,有助于保護(hù)網(wǎng)絡(luò)和系統(tǒng)免受惡意攻擊、未經(jīng)授權(quán)的訪問(wèn)和數(shù)據(jù)泄露。在建立防火墻策略時(shí),必須根據(jù)網(wǎng)絡(luò)需求和威脅模型來(lái)定義規(guī)則,以確保網(wǎng)絡(luò)的安全性和可用性。

除此以外,還有防水墻,ensp:不透明的工作方式,就是你干什么都知道,但你自己不知道。

防火墻的主要功能和特點(diǎn)

  • 包過(guò)濾: 防火墻通過(guò)檢查網(wǎng)絡(luò)數(shù)據(jù)包的源地址、目標(biāo)地址、端口號(hào)和協(xié)議等信息,根據(jù)預(yù)定義的規(guī)則來(lái)決定是否允許或拒絕這些數(shù)據(jù)包通過(guò)。這種方式可以防止未經(jīng)授權(quán)的訪問(wèn)。
  • 狀態(tài)跟蹤: 某些防火墻能夠跟蹤連接的狀態(tài),允許有關(guān)已建立的連接的數(shù)據(jù)包通過(guò),從而實(shí)現(xiàn)應(yīng)用層協(xié)議的連接。這有助于支持網(wǎng)絡(luò)應(yīng)用程序的正常通信。
  • 代理服務(wù): 防火墻可以充當(dāng)代理服務(wù)器,對(duì)外部請(qǐng)求進(jìn)行代理,以隱藏內(nèi)部網(wǎng)絡(luò)的細(xì)節(jié)和提供額外的安全性。
  • 應(yīng)用層檢測(cè): 高級(jí)防火墻可以檢查數(shù)據(jù)包中的內(nèi)容,以識(shí)別特定應(yīng)用程序或惡意軟件,從而提供更精細(xì)的控制和安全。
  • 虛擬專(zhuān)用網(wǎng)絡(luò)(VPN)支持: 防火墻通常支持建立虛擬專(zhuān)用網(wǎng)絡(luò),以加密和安全地連接遠(yuǎn)程站點(diǎn)或用戶(hù)。
  • 日志記錄和報(bào)警: 防火墻可以記錄網(wǎng)絡(luò)活動(dòng)并生成報(bào)告,以幫助管理員監(jiān)控和分析網(wǎng)絡(luò)流量,識(shí)別潛在的威脅。
  • 更新和規(guī)則管理: 防火墻的規(guī)則和過(guò)濾策略可以進(jìn)行定期更新,以應(yīng)對(duì)新的威脅和安全漏洞。

防火墻分類(lèi)

按部署位置分類(lèi):

  • 邊界防火墻(Perimeter Firewall):位于內(nèi)部網(wǎng)絡(luò)和外部網(wǎng)絡(luò)之間的邊界,用于過(guò)濾進(jìn)入和離開(kāi)內(nèi)部網(wǎng)絡(luò)的流量,通常用于保護(hù)整個(gè)內(nèi)部網(wǎng)絡(luò)。
  • 個(gè)人防火墻(Personal Firewall):通常安裝在個(gè)人計(jì)算機(jī)上,用于保護(hù)個(gè)人計(jì)算機(jī)免受惡意軟件和網(wǎng)絡(luò)攻擊的侵害。
  • 混合防火墻(Hybrid Firewall):結(jié)合了邊界防火墻和個(gè)人防火墻的特性,可在組織和個(gè)人層面提供安全性。

按技術(shù)分類(lèi):

  • 包過(guò)濾型防火墻(Packet Filtering Firewall):基于數(shù)據(jù)包的源地址、目標(biāo)地址、端口號(hào)和協(xié)議等信息來(lái)過(guò)濾流量。iptables就是包過(guò)濾防火墻
  • 應(yīng)用代理型防火墻(Application Proxy Firewall):代理服務(wù)器充當(dāng)客戶(hù)端和服務(wù)器之間的中介,檢查和控制應(yīng)用層數(shù)據(jù),提供更精細(xì)的應(yīng)用層安全。
  • 復(fù)合型防火墻(Next-Generation Firewall):結(jié)合了包過(guò)濾和應(yīng)用代理功能,具備更全面的安全性和應(yīng)用層檢測(cè)能力。

按硬件或軟件分類(lèi):

  • 軟件防火墻(Software Firewall):運(yùn)行在一臺(tái)服務(wù)器或計(jì)算機(jī)上的軟件,通常用于保護(hù)單個(gè)設(shè)備或主機(jī)。
  • 硬件防火墻(Hardware Firewall):獨(dú)立的硬件設(shè)備,通常位于網(wǎng)絡(luò)的入口點(diǎn),用于保護(hù)整個(gè)網(wǎng)絡(luò)。

按防火墻結(jié)構(gòu)分類(lèi):

  • 單一主機(jī)防火墻(Host-based Firewall):部署在單個(gè)主機(jī)上,用于保護(hù)該主機(jī)免受攻擊。
  • 路由器集成式防火墻(Router-Integrated Firewall):防火墻功能集成在路由器中,用于保護(hù)整個(gè)網(wǎng)絡(luò)。
  • 分布式防火墻(Distributed Firewall):多個(gè)防火墻設(shè)備協(xié)同工作,以提供更大規(guī)模的網(wǎng)絡(luò)保護(hù)。

按性能分類(lèi):

  • 百兆級(jí)防火墻(100Mbps Firewall):能夠處理百兆位速度的網(wǎng)絡(luò)流量。

  • 千兆級(jí)防火墻(1Gbps Firewall):能夠處理千兆位速度的網(wǎng)絡(luò)流量。

按使用方法分類(lèi):

  • 網(wǎng)絡(luò)層防火墻(Network Layer Firewall):操作在網(wǎng)絡(luò)層,通常用于過(guò)濾IP數(shù)據(jù)包。

  • 物理層防火墻(Physical Layer Firewall):操作在物理數(shù)據(jù)鏈路層,用于控制網(wǎng)絡(luò)物理連接。

  • 鏈路層防火墻(Link Layer Firewall):操作在數(shù)據(jù)鏈路層,通常用于控制訪問(wèn)局域網(wǎng)內(nèi)的網(wǎng)絡(luò)設(shè)備。

其他概念

通信五要素:

源ip和目的ip

源端口和目的端口

協(xié)議(tcp/udp)

通信四要素

源ip和目的ip

源端口和目的端口

用戶(hù)態(tài)和內(nèi)核態(tài)

用戶(hù)態(tài)防火墻:面向使用對(duì)象,就是使用工具,配置策略

  • 位置: 用戶(hù)態(tài)防火墻是運(yùn)行在操作系統(tǒng)的用戶(hù)空間(User Space)的防火墻。它是一個(gè)獨(dú)立的應(yīng)用程序,不直接訪問(wèn)操作系統(tǒng)內(nèi)核。
  • 特點(diǎn): 用戶(hù)態(tài)防火墻通常是第三方應(yīng)用程序,它們使用操作系統(tǒng)提供的網(wǎng)絡(luò)套接字 API 來(lái)監(jiān)控和控制網(wǎng)絡(luò)流量。它們提供了更靈活的配置選項(xiàng),允許用戶(hù)根據(jù)需要定義規(guī)則和策略。
  • 優(yōu)點(diǎn): 用戶(hù)態(tài)防火墻具有更高的可配置性,可以支持高級(jí)的應(yīng)用層規(guī)則和應(yīng)用程序特定的策略。它們通常更容易管理和調(diào)整,適用于特定網(wǎng)絡(luò)應(yīng)用的定制需求。
  • 缺點(diǎn): 用戶(hù)態(tài)防火墻的性能通常較低,因?yàn)樗鼈冃枰獙⒕W(wǎng)絡(luò)數(shù)據(jù)包從內(nèi)核空間復(fù)制到用戶(hù)空間,然后再進(jìn)行處理。這可能會(huì)導(dǎo)致性能瓶頸。

內(nèi)核態(tài)防火墻:代碼層(開(kāi)發(fā))

  • 位置: 內(nèi)核態(tài)防火墻是運(yùn)行在操作系統(tǒng)內(nèi)核空間(Kernel Space)的防火墻。它直接與操作系統(tǒng)內(nèi)核交互,可以更有效地控制網(wǎng)絡(luò)流量。
  • 特點(diǎn): 內(nèi)核態(tài)防火墻通常是操作系統(tǒng)的一部分,它們能夠在數(shù)據(jù)包到達(dá)操作系統(tǒng)時(shí)立即處理,無(wú)需復(fù)制到用戶(hù)空間。
  • 優(yōu)點(diǎn): 內(nèi)核態(tài)防火墻具有較高的性能,因?yàn)樗鼈兛梢栽诓僮飨到y(tǒng)內(nèi)核中直接操作。它們適用于需要快速和高效的網(wǎng)絡(luò)流量處理的情況,如防止網(wǎng)絡(luò)攻擊和快速數(shù)據(jù)包過(guò)濾。
  • 缺點(diǎn): 內(nèi)核態(tài)防火墻通常具有較少的可配置性,因?yàn)樗鼈兛赡苁芟抻趦?nèi)核模塊的特定規(guī)則。定制化程度較低,難以滿(mǎn)足某些高級(jí)網(wǎng)絡(luò)需求。

iptables就屬于用戶(hù)態(tài)防火墻,配置規(guī)則生效后,立即生效,無(wú)需重啟。centos7之前,iptables是默認(rèn)配置,現(xiàn)在默認(rèn)是firewalld。centos7之后要使用iptables要把firewalld關(guān)閉

四個(gè)表五個(gè)鏈

在 Linux 上,iptables 防火墻系統(tǒng)通常使用四個(gè)主要表來(lái)控制網(wǎng)絡(luò)數(shù)據(jù)包的過(guò)濾和處理。這四個(gè)表分別是:????filter????、????mangle????、????nat???? 和 ????raw????。每個(gè)表有不同的目的和功能,用于管理不同層次的數(shù)據(jù)包處理。

四個(gè)表

raw 表:關(guān)閉啟用的連接跟蹤機(jī)制,加快封包穿越防火墻速度

  • 用途:raw 表用于配置原始數(shù)據(jù)包處理,通常用于在數(shù)據(jù)包進(jìn)入連接跟蹤系統(tǒng)之前進(jìn)行特殊處理,如連接跟蹤追蹤。

  • 鏈:raw 表包括兩個(gè)主要鏈:PREROUTING(數(shù)據(jù)包到達(dá)路由前處理)和 OUTPUT(出站數(shù)據(jù)包處理)。

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

  • 用途:mangle 表主要用于數(shù)據(jù)包的修改和特殊處理,如修改數(shù)據(jù)包頭部信息、更改數(shù)據(jù)包的 TOS(Type of Service)字段等。

  • 鏈:mangle 表包括一系列鏈,如 PREROUTING(數(shù)據(jù)包到達(dá)路由前處理)、INPUT(進(jìn)入系統(tǒng)前處理)、FORWARD(轉(zhuǎn)發(fā)前處理)等。

nat 表:network address translation 地址轉(zhuǎn)換規(guī)則表

  • 用途:nat(Network Address Translation)表用于進(jìn)行網(wǎng)絡(luò)地址轉(zhuǎn)換,允許內(nèi)部網(wǎng)絡(luò)中的多個(gè)設(shè)備共享單一公共 IP 地址,以及實(shí)現(xiàn)端口映射和端口轉(zhuǎn)發(fā)等功能。

  • 鏈:nat 表包括三個(gè)主要鏈:PREROUTING(數(shù)據(jù)包到達(dá)路由前處理,用于端口映射和 DNAT)、POSTROUTING(數(shù)據(jù)包離開(kāi)路由后處理,用于源地址轉(zhuǎn)換和 SNAT)、OUTPUT(出站數(shù)據(jù)包處理,通常用于本地流量的 NAT)。

filter 表:過(guò)濾規(guī)則表,根據(jù)預(yù)定義的規(guī)則過(guò)濾符合條件的數(shù)據(jù)包,默認(rèn)表

  • 用途:filter 表是最常用的表,用于控制數(shù)據(jù)包的過(guò)濾和策略路由。

  • 鏈:filter 表包括三個(gè)主要鏈:INPUT(用于處理進(jìn)入系統(tǒng)的數(shù)據(jù)包)、FORWARD(用于處理轉(zhuǎn)發(fā)的數(shù)據(jù)包)和 OUTPUT(用于處理離開(kāi)系統(tǒng)的數(shù)據(jù)包)。

這四個(gè)表共同構(gòu)成了 iptables 防火墻的核心,允許管理員通過(guò)配置規(guī)則和鏈來(lái)控制數(shù)據(jù)包的流向、處理和修改。這種細(xì)粒度的控制有助于實(shí)施網(wǎng)絡(luò)安全策略和網(wǎng)絡(luò)地址轉(zhuǎn)換等功能。管理員可以使用不同鏈和規(guī)則來(lái)自定義防火墻行為,以滿(mǎn)足網(wǎng)絡(luò)環(huán)境的需求。

五條鏈

  • PREROUTING鏈:處理數(shù)據(jù)包進(jìn)入本機(jī)之前的規(guī)則。

  • INPUT鏈:處理數(shù)據(jù)包進(jìn)入本機(jī)的規(guī)則。

  • FORWARD鏈:處理數(shù)據(jù)包轉(zhuǎn)發(fā)到其他主機(jī)的規(guī)則。

  • OUTPUT鏈:處理本機(jī)發(fā)出的數(shù)據(jù)包的規(guī)則,一般不做處理。

  • POSTROUTING鏈:處理數(shù)據(jù)包離開(kāi)本機(jī)之后的規(guī)則。

四表五鏈

  • 規(guī)則表的作用:容納各種規(guī)則鏈
  • 規(guī)則鏈的作用:容納各種防火墻規(guī)則
  • 總結(jié):表里有鏈,鏈里有規(guī)則

數(shù)據(jù)包過(guò)濾的匹配流程

  • 當(dāng)一個(gè)數(shù)據(jù)包進(jìn)入網(wǎng)卡時(shí),數(shù)據(jù)包首先進(jìn)入PREROUTING鏈,內(nèi)核根據(jù)數(shù)據(jù)包目的IP判斷是否需要轉(zhuǎn)送出去。
  • 如果數(shù)據(jù)包是進(jìn)入本機(jī)的,數(shù)據(jù)包就會(huì)沿著圖向下移動(dòng),到達(dá)INPUT鏈。 數(shù)據(jù)包到達(dá)INPUT鏈后, 任何進(jìn)程都會(huì)收到它。本機(jī)上運(yùn)行的程序可以發(fā)送數(shù)據(jù)包, 這些數(shù)據(jù)包經(jīng)過(guò)OUTPUT鏈,然后到達(dá)
  • 如果數(shù)據(jù)包是要轉(zhuǎn)發(fā)出去的,且內(nèi)核允許轉(zhuǎn)發(fā),數(shù)據(jù)包就會(huì)向右移動(dòng), 經(jīng)過(guò)FORWARD鏈,然后到達(dá)POSTROUTING鏈輸出

三種報(bào)文流向

流入本機(jī):PREROUTING --> INPUT-->用戶(hù)空間進(jìn)程 httpd服務(wù)-目的轉(zhuǎn)換-httpd 流出本機(jī):用戶(hù)空間進(jìn)程 -->OUTPUT--> POSTROUTING httpd服務(wù)-out-源地址 轉(zhuǎn)發(fā):PREROUTING --> FORWARD --> POSTROUTING -----FOR------

規(guī)則內(nèi)的匹配順序

自上向下按順序依次進(jìn)行檢查,找到相匹配的規(guī)則即停止(LOG策略例外,表示記錄相關(guān)日志) 若在該鏈內(nèi)找不到相匹配的規(guī)則,則按該鏈的默認(rèn)策略處理(未修改的狀況下,默認(rèn)策略為允許)

iptables

iptables命令的格式和相關(guān)選項(xiàng)

管理選項(xiàng)

匹配規(guī)則:從上到下按照順序依次檢查,找到匹配的規(guī)則立刻停止匹配。找到匹配規(guī)則,會(huì)按照鏈的默認(rèn)規(guī)則進(jìn)行執(zhí)行。如果不指定表名,默認(rèn)就是filter

-A:向指定的鏈(如INPUT、OUTPUT、FORWARD)的末尾追加一條規(guī)則。

iptables -A INPUT (操作)

-I:在指定鏈的指定位置插入一條規(guī)則,根據(jù)編號(hào)來(lái)進(jìn)行插入,不指定序號(hào),直接插入當(dāng)前鏈中的第一條(不推薦)。

iptables -I INPUT (操作)

-P:設(shè)置指定鏈的默認(rèn)策略(如ACCEPT、DROP)。

iptables -P OUTPUT ACCEPT (操作)

-D:從指定的鏈中刪除一條規(guī)則。

iptables -t nat -D INPUT 2 (操作)

-R:替換指定鏈中的一條規(guī)則。

iptables -t nat -R INPUT (操作)

-L:列出指定鏈中的所有規(guī)則。

iptables -t nat -L (查看)

-n:所有字段以數(shù)字形式展示

iptables -L -n,iptables -nL,iptables -vnL (查看)

-v:顯示詳細(xì)信息

常跟-L一起使用 (查看)

-F:清除指定鏈中的所有規(guī)則。

iptables -F

-N:創(chuàng)建一個(gè)新的自定義鏈。

iptables -N

-X:刪除一個(gè)自定義鏈。

iptables -X

-Z:將所有鏈中的數(shù)據(jù)包計(jì)數(shù)器歸零。

iptables -Z

-S:看鏈的所有規(guī)則或者某個(gè)鏈的規(guī)則/某個(gè)具體規(guī)則后面跟編號(hào)

匹配條件

匹配條件是用來(lái)確定是否應(yīng)用某個(gè)規(guī)則的依據(jù)。

  • -p:指定傳輸層協(xié)議(如TCP、UDP、ICMP)。
  • -s:指定源IP地址或地址范圍。
  • -d:指定目標(biāo)IP地址或地址范圍。
  • -i:指定進(jìn)入網(wǎng)絡(luò)接口。
  • -o:指定離開(kāi)網(wǎng)絡(luò)接口。
  • --sport:指定源端口號(hào)或端口范圍。
  • --dport:指定目標(biāo)端口號(hào)或端口范圍。
  • --protocol:指定協(xié)議(與 -p 類(lèi)似)。
  • -m state:根據(jù)連接狀態(tài)匹配規(guī)則(如ESTABLISHED、RELATED)。
  • -m multiport:匹配多個(gè)端口。
  • -m mac:根據(jù)MAC地址匹配規(guī)則。
  • -m comment:為規(guī)則添加注釋。

數(shù)據(jù)包的控制類(lèi)型

  • ACCPET:允許數(shù)據(jù)包通過(guò)
  • DROP:直接丟棄數(shù)據(jù)包,沒(méi)有任何回應(yīng)信息
  • REJECT:拒絕數(shù)據(jù)包通過(guò),會(huì)給一個(gè)響應(yīng)信息
  • SNAT:修改數(shù)據(jù)包的源地址
  • DNAT:修改數(shù)據(jù)包的目的地址

使用實(shí)例

實(shí)驗(yàn)準(zhǔn)備

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

bash systemctl stop firewalld.service

setenforce 0

systemctl disable --now firewalld.service

開(kāi)機(jī)不自啟 并且立即關(guān)閉

systemctl enable --now firewalld.service

開(kāi)機(jī)自啟 并且 立即開(kāi)啟

yum -y install iptables iptables-services systemctl start iptables.service systemctl enable iptables.service

查看

粗略查看默認(rèn)規(guī)則:

[root@localhost ~]#iptables -L

數(shù)字化的形式查看規(guī)則: [root@localhost ~]#iptables -nL

注意:當(dāng)-nL同時(shí)使用時(shí),n一定要在L 的前面,否則會(huì)報(bào)錯(cuò),使用-vnL時(shí)也是如此,L要在最后面

指定表查看:

[root@localhost ~]#iptables -t filter -vnL

查看指定表中的指定鏈

[root@localhost ~]#iptables -t filter -vnL INPUT #不指定表,默認(rèn)就是filter
  • pkts:對(duì)應(yīng)規(guī)則匹配到的報(bào)文的個(gè)數(shù)。
  • bytes:對(duì)應(yīng)匹配到的報(bào)文包的大小總和。
  • target:規(guī)則對(duì)應(yīng)的target,往往表示規(guī)則對(duì)應(yīng)的”動(dòng)作”,即規(guī)則匹配成功后需要采取的措施。
  • prot:表示規(guī)則對(duì)應(yīng)的協(xié)議,是否只針對(duì)某些協(xié)議應(yīng)用此規(guī)則。
  • opt:表示規(guī)則對(duì)應(yīng)的選項(xiàng)。
  • in:表示數(shù)據(jù)包由哪個(gè)接口(網(wǎng)卡)流入,我們可以設(shè)置通過(guò)哪塊網(wǎng)卡流入的報(bào)文需要匹配當(dāng)前規(guī)則。
  • out:表示數(shù)據(jù)包由哪個(gè)接口(網(wǎng)卡)流出,我們可以設(shè)置通過(guò)哪塊網(wǎng)卡流出的報(bào)文需要匹配當(dāng)前規(guī)則。
  • source:表示規(guī)則對(duì)應(yīng)的源頭地址,可以是一個(gè)IP,也可以是一個(gè)網(wǎng)段。
  • destination:表示規(guī)則對(duì)應(yīng)的目標(biāo)地址??梢允且粋€(gè)IP,也可以是一個(gè)網(wǎng)段。

列出當(dāng)前防火墻規(guī)則,并顯示每條規(guī)則的行號(hào)、詳細(xì)信息、以數(shù)值格式顯示的 IP 地址和端口號(hào)

iptables: 這是用于配置Linux內(nèi)核防火墻規(guī)則的命令。

-vnL: 這是一組參數(shù),具體含義如下:

  • -v: 用于顯示更詳細(xì)的信息,包括數(shù)據(jù)包計(jì)數(shù)和字節(jié)計(jì)數(shù)。
  • -n: 用于顯示數(shù)值格式的 IP 地址和端口號(hào),而不是解析為主機(jī)名和服務(wù)名稱(chēng)。
  • -L: 用于列出防火墻規(guī)則。

--line-numbers: 這個(gè)參數(shù)用于顯示規(guī)則的行號(hào)(line numbers),以便更容易識(shí)別和引用特定規(guī)則。

這個(gè)命令的作用是列出當(dāng)前防火墻規(guī)則,并顯示每條規(guī)則的行號(hào)、詳細(xì)信息、以數(shù)值格式顯示的 IP 地址和端口號(hào)。

添加規(guī)則

添加新的防火墻規(guī)則時(shí),使用管理選項(xiàng)“-A”、“-I”,前者用來(lái)追加規(guī)則,后者用來(lái)插入規(guī)則。

禁止所有主機(jī)ping本機(jī)和允許(如果先允許,那么就不會(huì)禁止。匹配到了就不在匹配后面的規(guī)則)

iptables: 這是用于配置Linux防火墻規(guī)則的命令。

  • -t filter: 這部分指定了使用名為 "filter" 的表(table)。iptables支持不同的表,用于管理不同類(lèi)型的規(guī)則。 "filter" 表用于過(guò)濾數(shù)據(jù)包。
  • -A INPUT: 這部分表示要將規(guī)則附加(Append)到 INPUT 鏈中。"INPUT" 鏈用于處理進(jìn)入系統(tǒng)的數(shù)據(jù)包。
  • -p icmp: 這部分指定了要匹配的協(xié)議類(lèi)型,這里是 ICMP 協(xié)議。ICMP(Internet Control Message Protocol)是用于網(wǎng)絡(luò)通信和診斷的協(xié)議,包括 ping 請(qǐng)求和響應(yīng)。
  • -j ACCEPT: 這部分表示如果數(shù)據(jù)包匹配了上述條件(ICMP協(xié)議),則將其接受(ACCEPT)。這意味著允許 ICMP 數(shù)據(jù)包通過(guò)防火墻,允許系統(tǒng)響應(yīng) ping 請(qǐng)求和其他 ICMP 請(qǐng)求。

因此,這個(gè)命令的作用是將一個(gè)規(guī)則添加到 "filter" 表的 "INPUT" 鏈中,以允許所有的 ICMP 數(shù)據(jù)包通過(guò)防火墻。

指定序號(hào)插入

插入到第一條:iptables -t filter -I INPUT 1 -p icmp -j ACCEPT

  • iptables: 這是用于配置Linux防火墻規(guī)則的命令。
  • -t filter: 這部分指定了使用名為 "filter" 的表(table)。 "filter" 表用于過(guò)濾數(shù)據(jù)包。
  • -I INPUT 1: 這部分表示要在 "INPUT" 鏈的位置 1(即第一個(gè)規(guī)則位置)插入(Insert)規(guī)則。之前的命令使用的是 -A INPUT,將規(guī)則附加到 INPUT 鏈的末尾,而這個(gè)命令將規(guī)則插入到 INPUT 鏈的開(kāi)頭。
  • -p icmp: 這部分指定了要匹配的協(xié)議類(lèi)型,這里是 ICMP 協(xié)議。
  • -j ACCEPT: 這部分表示如果數(shù)據(jù)包匹配了上述條件(ICMP協(xié)議),則將其接受(ACCEPT),即允許 ICMP 數(shù)據(jù)包通過(guò)防火墻。

因此,這個(gè)命令的作用是將一個(gè)規(guī)則插入到 "filter" 表的 "INPUT" 鏈的第一個(gè)位置,以允許所有的 ICMP 數(shù)據(jù)包通過(guò)防火墻。

禁止任何主機(jī)tcp

拒絕來(lái)自特定源IP地址 192.168.41.13,目標(biāo)端口為 80 的 TCP 數(shù)據(jù)包。

iptables -t filter -I INPUT 1 -s 192.168.41.13 -p tcp --dport 80 -j REJECT
  • -t filter: -t 參數(shù)指定了要操作的表(table),在這里是 filter 表。filter 表用于數(shù)據(jù)包過(guò)濾,允許或者拒絕數(shù)據(jù)包通過(guò)防火墻。
  • -I INPUT 1: -I 參數(shù)表示要在特定鏈(chain)中插入一條規(guī)則。INPUT 鏈?zhǔn)侵笖?shù)據(jù)包進(jìn)入本地系統(tǒng)的網(wǎng)絡(luò)數(shù)據(jù)包處理鏈。1 表示將規(guī)則插入到鏈的第一個(gè)位置。
  • -s 192.168.41.13: -s 參數(shù)用于指定源 IP 地址,這個(gè)規(guī)則將僅適用于源IP地址為 192.168.41.13 的數(shù)據(jù)包。
  • -p tcp: -p 參數(shù)指定匹配的協(xié)議類(lèi)型,這里是 TCP 協(xié)議。
  • --dport 80: --dport 參數(shù)指定目標(biāo)端口號(hào)為 80,這意味著這個(gè)規(guī)則將匹配目標(biāo)端口號(hào)為 80 的 TCP 數(shù)據(jù)包。
  • -j REJECT: -j 參數(shù)用于指定如果規(guī)則匹配成功,應(yīng)該執(zhí)行的動(dòng)作。在這個(gè)規(guī)則中,當(dāng)匹配成功時(shí),動(dòng)作是拒絕(REJECT)匹配的數(shù)據(jù)包。這將導(dǎo)致系統(tǒng)向發(fā)送方發(fā)送拒絕連接的消息。

拒絕多態(tài)主機(jī),用,連接ip

iptables -t filter -A INPUT -s 192.168.41.11,192.168.41.13 -p icmp -j REJECT

拒絕單臺(tái)主機(jī),其他主機(jī)可以連接

iptables -t filter -A INPUT -s 192.168.41.11 -p icmp -j REJECT

拒絕主機(jī)發(fā)出數(shù)據(jù)包

iptables -t filter -A OUTPUT -s 192.168.41.10 -p icmp -j REJECT

刪除規(guī)則

根據(jù)序號(hào)刪除內(nèi)容 iptables -D INPUT 1 #刪除指定的INPUT鏈中的第一條規(guī)則

INPUT 鏈中刪除第二條規(guī)則

iptables -D INPUT 2

iptables: 這是用于配置Linux內(nèi)核防火墻規(guī)則的命令。 -D INPUT 2: -D 參數(shù)表示刪除規(guī)則,INPUT 是規(guī)則所在的鏈(chain),2 是要?jiǎng)h除的規(guī)則的位置或規(guī)則編號(hào)。在這個(gè)例子中,它指示刪除 INPUT 鏈中的第二條規(guī)則。 這個(gè)命令的作用是從 INPUT 鏈中刪除第二條規(guī)則。防火墻規(guī)則是按順序執(zhí)行的,所以刪除一條規(guī)則后,后續(xù)規(guī)則的編號(hào)會(huì)向前移動(dòng)。

按照內(nèi)容匹配刪除

內(nèi)容匹配刪除(有兩個(gè)相同的則作用為去重) 如果有兩個(gè)重復(fù)的規(guī)則,則刪除序號(hào)較小的 [root@localhost ~]# iptables -D INPUT -p icmp -j REJECT #刪除序號(hào)小的

演示刪除序號(hào)較小的 [root@localhost ~]# iptables -t filter -A INPUT -p icmp -j REJECT

[root@localhost ~]# iptables -t filter -A INPUT -p icmp -j ACCEPT

[root@localhost ~]# iptables -t filter -A INPUT -p icmp -j REJECT

[root@localhost ~]# iptables -nL INPUT --line-number

Chain INPUT (policy ACCEPT)

num target prot opt source destination

1 REJECT icmp -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable

2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0

[root@localhost ~]# iptables -D INPUT -p icmp -j REJECT #第二次就時(shí)刪除指定。 [root@localhost ~]# iptables -nL INPUT --line-numbers

Chain INPUT (policy ACCEPT)

num target prot opt source destination

1 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0

注意:按照內(nèi)容匹配刪除規(guī)則,只能每次刪除內(nèi)容相同序號(hào)較小的規(guī)則。

直到刪除最后一條時(shí),才能將該規(guī)則全部清除 。

一定要報(bào)保證該匹配的內(nèi)容存在,且完全匹配規(guī)則才能刪除,不然報(bào)錯(cuò)。

修改規(guī)則

-R 直接修改。
為了保險(xiǎn)起見(jiàn),我們可以嘗試著先添加一條新的規(guī)則,
確保新規(guī)則不會(huì)帶來(lái)任何不利的影響再刪除舊的規(guī)則(也能達(dá)到替換的效果)

[root@localhost ~]# iptables -t filter -A INPUT -p icmp -j ACCEPT

[root@localhost ~]# iptables -nL INPUT --line-number  #查看規(guī)則
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0

[root@localhost ~]# iptables -R INPUT 1 -p icmp -j REJECT #替換
[root@localhost ~]# iptables -nL INPUT --line-number  #ACCEPT替換成了REJECT
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    REJECT     icmp --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

設(shè)置默認(rèn)策略

  • 指定當(dāng)沒(méi)有與已有規(guī)則匹配的情況下,如何處理進(jìn)入系統(tǒng)的數(shù)據(jù)包

iptables -P INPUT DROP

這個(gè)命令的效果是,如果沒(méi)有特定規(guī)則匹配一個(gè)進(jìn)入系統(tǒng)的數(shù)據(jù)包,那么該數(shù)據(jù)包將被拒絕,從而增強(qiáng)了系統(tǒng)的安全性。

  • -P INPUT 意味著這個(gè)策略將應(yīng)用于 "INPUT" 鏈,用于處理進(jìn)入系統(tǒng)的數(shù)據(jù)包。

  • DROP 意味著默認(rèn)情況下,所有不匹配已有規(guī)則的進(jìn)入數(shù)據(jù)包將被丟棄(DROP),即拒絕通過(guò)防火墻。

設(shè)置一條允許,相當(dāng)于白名單

iptables -t filter -A INPUT -p ICMP -j ACCEPT

1.-F 僅僅是清空鏈中的規(guī)則,并不影響 -P 設(shè)置的規(guī)則,默認(rèn)規(guī)則需要手動(dòng)進(jìn)行修改 2.-P 設(shè)置了DROP后,使用 -F 一定要小心!

#防止把允許遠(yuǎn)程連接的相關(guān)規(guī)則清除后導(dǎo)致無(wú)法遠(yuǎn)程連接主機(jī),此情況如果沒(méi)有保存規(guī)則可重啟主機(jī)解決

此時(shí)的解決方案有三種:

  • 第一種:我的防火墻設(shè)置只是臨時(shí)設(shè)置,并為保存,重啟服務(wù)器即可
  • 第二種:操作服務(wù)器,重啟iptables服務(wù)
  • 第三種:進(jìn)入機(jī)房操作該服務(wù)器(將設(shè)置恢復(fù),重新修改規(guī)則)炸!

在生產(chǎn)中都是默認(rèn)DROP

通用匹配

網(wǎng)絡(luò)協(xié)議、IP地址、網(wǎng)絡(luò)接口等條件。

  • 協(xié)議匹配: -p協(xié)議名
  • 地址匹配: -s 源地址、-d目的地址
  • #可以是IP、網(wǎng)段、域名、空(任何地址)
  • 接口匹配: -i入站網(wǎng)卡、-o出站網(wǎng)卡
  • 感嘆號(hào)”!”表示取反
網(wǎng)絡(luò)協(xié)議
[root@localhost ~]# iptables -A INPUT ! -p icmp -j ACCEPT #除了icmp以外,所有的協(xié)議都可以進(jìn)入

#這是假的取反。定義的默認(rèn)策略還在執(zhí)行ACCEPT,只有該變默認(rèn)策略,才能生效

[root@localhost ~]#iptables -P INPUT DROP #這時(shí)候才能取反

其他的服務(wù)不受影響,這個(gè)時(shí)候,把策略清空,所有的協(xié)議都將被DROP

[root@localhost ~]#iptables -F

只能進(jìn)虛擬機(jī)重啟

IP地址
[root@localhost ~]# iptables -A INPUT -s 192.168.41.13 -j DROP #禁止22的數(shù)據(jù)進(jìn)入
IP范圍匹配
  • -m iprange --src-range 源IP范圍

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

[root@localhost ~]# iptables -A INPUT -p icmp -m iprange --src-range 192.168.233.20-192.168.233.30 -j REJECT

禁止網(wǎng)段內(nèi)的ip地址ping主機(jī)

網(wǎng)絡(luò)接口
[root@localhost ~]# iptables -I INPUT 1 -i ens33 -s 192.168.41.0/24 -j DROP #禁止指定的網(wǎng)絡(luò)設(shè)備名稱(chēng)ens33的所有網(wǎng)段
使整個(gè)網(wǎng)段不能用指定的端口
[root@localhost ~]# iptables -t filter -A INPUT -s 192.168.41.0/24 -p tcp --dport 80 -j REJECT #禁止整個(gè)網(wǎng)段訪問(wèn)80端口
端口匹配
[root@localhost ~]# iptables -A INPUT -p tcp --dport 22:80 -j REJECT #禁止整個(gè)網(wǎng)段訪問(wèn)22和80端口

這里寫(xiě)發(fā)要注意,小的數(shù)字寫(xiě)在前面,大的寫(xiě)在后面

多端口匹配

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

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

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

[root@localhost ~]# iptables -A INPUT -p tcp -m multiport --dport 80,22,21,20,53 -j REJECT 多端口匹配,一次性禁止多個(gè)tcp網(wǎng)絡(luò)協(xié)議的端口匹配規(guī)則

[root@localhost ~]# iptables -A INPUT -p udp -m multiport --dport 53,54,55 -j ACCEP 多端口匹配,一次性放通多個(gè)udp網(wǎng)絡(luò)協(xié)議的端口匹配規(guī)則
MAC匹配
-m mac --mac-source MAC地址

[root@localhost ~]# iptables -A INPUT -m mac --mac-source 00:0c:29:f7:24:38 -j DROP
隱藏?cái)U(kuò)展模塊
  • iptables在使用-p 指定協(xié)議時(shí),若指明特定協(xié)議后就無(wú)須再使用-m指明擴(kuò)展模塊的擴(kuò)展機(jī)制。 例如若已經(jīng)指明是 -p tcp協(xié)議則使用--dport及--sport等tcp模塊內(nèi)容時(shí)即可省略-m tcp。

策略備份與還原

yum -y install iptables iptables-services

systemctl start iptables.service

systemctl enable iptables.service

我們對(duì)iptables命令行中的設(shè)置,都是臨時(shí)設(shè)置,只要遇到服務(wù)器關(guān)機(jī),或者服務(wù)重啟時(shí),

所有的設(shè)置都會(huì)清空且還原為原本的設(shè)置。

為此,我們可以對(duì)已經(jīng)測(cè)試完畢符合我們需求的防火墻設(shè)置進(jìn)行備份,在必要時(shí),可以一鍵還原

備份iptables設(shè)置

格式:iptables-save >/指定的文件

[root@localhost ~]# iptables-save >/opt/iptables.bak

一鍵導(dǎo)入,設(shè)置為當(dāng)前防火墻設(shè)置

[root@localhost ~]#iptables-restore </opt/iptables.bak

修改iptables的默認(rèn)設(shè)置

iptables的默認(rèn)配置文件存在于 cat /etc/sysconfig/iptables

直接把配置導(dǎo)入配置文件:

cat /opt/iptables.bak >/etc/sysconfig/iptables

立即生效了,實(shí)驗(yàn)環(huán)境下,了解就可以了。不要嘗試

[root@localhost opt]# systemctl restart iptables #重啟之后生效的就是配置文件中的內(nèi)容,操作需謹(jǐn)慎,

注意拍快照,方便還原

自定義鏈

創(chuàng)建自定義鏈

iptables -N MYCHAIN

向自定義鏈添加規(guī)則,例如

iptables -A MYCHAIN -s 192.168.1.0/24 -j DROP

這條規(guī)則將禁止192.168.1.0/24網(wǎng)段的訪問(wèn),丟棄源地址的流量。

可以使用類(lèi)似的命令來(lái)添加更多規(guī)則到自定義鏈中,根據(jù)需求進(jìn)行配置。如果想要?jiǎng)h除自定義鏈,確保滿(mǎn)足以下條件:

  • 自定義鏈沒(méi)有被任何默認(rèn)鏈引用,即自定義鏈的引用計(jì)數(shù)為0。
  • 自定義鏈中沒(méi)有任何規(guī)則,即自定義鏈為空。

可以使用-x選項(xiàng)來(lái)刪除自定義鏈,例如:

iptables -X MYCHAIN

示例

自定義鏈?zhǔn)褂?/strong>

  • 自定義鏈添加:iptables -N custom(鏈名) 創(chuàng)建鏈
  • 自定義鏈改名:iptables -E custom(原來(lái)名稱(chēng)) ky29(新名稱(chēng)) 自定義鏈改名
  • 創(chuàng)建自定義鏈規(guī)則:iptables -t filter -I ky29 -p icmp -j REJECT 創(chuàng)建自定義規(guī)則,

iptables的鏈中添加一條對(duì)應(yīng)到自定義鏈中才能生效

iptabales創(chuàng)建對(duì)應(yīng)鏈規(guī)則然后跳轉(zhuǎn)自定義鏈web:iptables -t filter -I INPUT -p icmp -j custom

刪除自定義規(guī)則鏈:先刪除iptables INPUT鏈中的對(duì)應(yīng)關(guān)系,然后刪除自定義鏈中的規(guī)則。 iptables -D INPUT 1

iptables -D ky27 1

然后再用 iptables -X ky27 刪除這個(gè)鏈

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

沽源县| 木里| 奈曼旗| 枣阳市| 宁城县| 沾益县| 南昌市| 海口市| 阿合奇县| 石林| 铜川市| 页游| 宜宾县| 阿拉尔市| 乡城县| 东乌珠穆沁旗| 乐东| 民乐县| 当涂县| 扎兰屯市| 鄂尔多斯市| 黔西| 舒兰市| 财经| 阳高县| 津南区| 扶余县| 秀山| 左云县| 太谷县| 海兴县| 阜新| 云林县| 安陆市| 陆丰市| 田林县| 西华县| 梅州市| 修水县| 滕州市| 斗六市|