Linux学习笔记--12(iptables与firewalld)
防火墻管理
在公網(wǎng)與企業(yè)內(nèi)網(wǎng)之間充當(dāng)保護(hù)屏障的防火墻,雖然有軟件或硬件之分,但主要功能都是依據(jù)策略對(duì)穿越防火墻自身的流量進(jìn)行過(guò)濾。
防火墻策略可以基于流量的源目地址、端口號(hào)、協(xié)議、應(yīng)用等信息來(lái)定制,然后防火墻使用預(yù)先定制的策略規(guī)則監(jiān)控出入的流量,若流量與某一條策略規(guī)則相匹配,則執(zhí)行相應(yīng)的處理,反之則丟棄。這樣一來(lái),就能夠保證僅有合法的流量在企業(yè)內(nèi)網(wǎng)和外部公網(wǎng)之間流動(dòng)了。
防火墻會(huì)按照從上到下的順序來(lái)讀取配置的策略規(guī)則,在找到匹配項(xiàng)后就立即結(jié)束匹配工作并去執(zhí)行匹配項(xiàng)中定義的行為(即放行或阻止)。
如果在讀取完所有的策略規(guī)則之后沒(méi)有匹配項(xiàng),就去執(zhí)行默認(rèn)的策略。
一般防火墻策略規(guī)則的設(shè)置有兩種:“通”(即放行)和“堵”(即阻止)。
當(dāng)防火墻的默認(rèn)策略為拒絕時(shí)(堵),就要設(shè)置允許規(guī)則(通),否則誰(shuí)都進(jìn)不來(lái);如果防火墻的默認(rèn)策略為允許,就要設(shè)置拒絕規(guī)則,否則誰(shuí)都能進(jìn)來(lái),防火墻也就失去了防范的作用。
iptables
iptables服務(wù)會(huì)把配置好的防火墻策略交由內(nèi)核層面的netfilter網(wǎng)絡(luò)過(guò)濾器來(lái)處理。
iptables服務(wù)把用于處理或過(guò)濾流量的策略條目稱(chēng)之為規(guī)則,多條規(guī)則可以組成一個(gè)規(guī)則鏈,而規(guī)則鏈則依據(jù)數(shù)據(jù)包處理位置的不同進(jìn)行分類(lèi),具體如下:
在進(jìn)行路由選擇前處理數(shù)據(jù)包(PREROUTING);
處理流入的數(shù)據(jù)包(INPUT);
處理流出的數(shù)據(jù)包(OUTPUT);
處理轉(zhuǎn)發(fā)的數(shù)據(jù)包(FORWARD);
在進(jìn)行路由選擇后處理數(shù)據(jù)包(POSTROUTING)
iptables服務(wù)的術(shù)語(yǔ)中分別是:
ACCEPT(允許流量通過(guò))、REJECT(拒絕流量通過(guò))、LOG(記錄日志信息)、DROP(拒絕流量通過(guò))。“允許流量通過(guò)”和“記錄日志信息”都比較好理解,這里需要著重講解的是REJECT和DROP的不同點(diǎn)。就DROP來(lái)說(shuō),它是直接將流量丟棄而且不響應(yīng);REJECT則會(huì)在拒絕流量后再回復(fù)一條“信息已經(jīng)收到,但是被扔掉了”信息,從而讓流量發(fā)送方清晰地看到數(shù)據(jù)被拒絕的響應(yīng)信息。
如:默認(rèn)的時(shí)候INPUT是 accept。可以ping通
我們改成默認(rèn)的為drop,則ping不通
iptables 基本命令參數(shù)
iptables中常用的參數(shù)以及作用
如:查看,清空
防火墻策略規(guī)則的設(shè)置無(wú)非有兩種方式:“通”和“堵”。
當(dāng)把INPUT鏈設(shè)置為默認(rèn)拒絕后,就要往里面寫(xiě)入允許策略了,否則所有流入的數(shù)據(jù)包都會(huì)被默認(rèn)拒絕掉。
注意:規(guī)則鏈的默認(rèn)策略拒絕動(dòng)作只能是DROP,而不能是REJECT。
如:向INPUT鏈中添加允許ICMP流量進(jìn)入的策略規(guī)則。
如:我們默認(rèn)的INPUT是DROP,添加只允許指定網(wǎng)段的主機(jī)訪問(wèn)本機(jī)的22端口
如:添加拒絕所有主機(jī)訪問(wèn)本機(jī)1000~1024端口的策略規(guī)則
保存
firewalld
firewalld服務(wù)則是把配置好的防火墻策略交由內(nèi)核層面的nftables包過(guò)濾框架來(lái)處理。
firewalld(Dynamic Firewall Manager of Linux systems,Linux系統(tǒng)的動(dòng)態(tài)防火墻管理器)服務(wù)是默認(rèn)的防火墻配置管理工具,它擁有基于CLI(命令行界面)和基于GUI(圖形用戶(hù)界面)的兩種管理方式。
firewalld支持動(dòng)態(tài)更新技術(shù)并加入了區(qū)域(zone)的概念。簡(jiǎn)單來(lái)說(shuō),區(qū)域就是firewalld預(yù)先準(zhǔn)備了幾套防火墻策略集合(策略模板),用戶(hù)可以根據(jù)生產(chǎn)場(chǎng)景的不同而選擇合適的策略集合,從而實(shí)現(xiàn)防火墻策略之間的快速切換。
firewalld中常用的區(qū)域名稱(chēng)及策略規(guī)則
trusted:是放行所有,再配置拒絕。drop:則是拒絕所有再配置放行。
firewall-cmd終端管理工具
firewall-cmd是firewalld防火墻配置管理工具的CLI(命令行界面)版本。它的參數(shù)一般都是以“長(zhǎng)格式”來(lái)提供的。
RHEL8中可用Tab鍵自動(dòng)補(bǔ)齊命令或文件名等內(nèi)容之外,還可以用Tab鍵來(lái)補(bǔ)齊長(zhǎng)格式參數(shù)。
firewall-cmd命令中使用的參數(shù)以及作用
firewalld配置的有兩種模式:
運(yùn)行時(shí)(Runtime)模式,又稱(chēng)為當(dāng)前生效模式,而且會(huì)隨著系統(tǒng)的重啟而失效,防火墻策略默認(rèn)模式。
永久(Permanent)模式了,方法就是在用firewall-cmd命令正常設(shè)置防火墻策略時(shí)添加–permanent參數(shù),這樣配置的防火墻策略就可以永久生效了。但是永久模式需要重啟才可以。如果想讓配置的策略立即生效,需要手動(dòng)執(zhí)行firewall-cmd --reload命令。
注:
Runtime:當(dāng)前立即生效,重啟后失效。
Permanent:當(dāng)前不生效,重啟后生效。
如:查看默認(rèn)區(qū)域和修改默認(rèn)區(qū)域
緊急情況:使用–panic-on參數(shù)會(huì)立即切斷一切網(wǎng)絡(luò)連接,而使用–panic-off則會(huì)恢復(fù)網(wǎng)絡(luò)連接。
查詢(xún),移除(拒絕),添加(放行)
把原本訪問(wèn)本機(jī)888端口的流量轉(zhuǎn)發(fā)到22端口,要且求當(dāng)前和長(zhǎng)期均有效。
使用firewall-cmd命令實(shí)現(xiàn)端口轉(zhuǎn)發(fā)的格式有點(diǎn)長(zhǎng):
firewall-cmd --permanent --zone=<區(qū)域> --add-forward-port=port=<源端口號(hào)>:proto=<協(xié)議>:toport=<目標(biāo)端口號(hào)>:toaddr=<目標(biāo)IP地址>
富規(guī)則:
富規(guī)則也叫復(fù)規(guī)則,表示更細(xì)致、更詳細(xì)的防火墻策略配置,它可以針對(duì)系統(tǒng)服務(wù)、端口號(hào)、源地址和目標(biāo)地址等諸多信息進(jìn)行更有針對(duì)性的策略配置。它的優(yōu)先級(jí)在所有的防火墻策略中也是最高的。
如:使其拒絕192.168.115.0/24網(wǎng)段的所有用戶(hù)訪問(wèn)本機(jī)的ssh服務(wù)(22端口),之前的可以現(xiàn)在不行了。
firewall-config 圖形管理工具
firewall-config是firewalld防火墻配置管理工具的GUI(圖形用戶(hù)界面),幾乎可以實(shí)現(xiàn)所有以命令行來(lái)執(zhí)行的操作。但在默認(rèn)情況下系統(tǒng)并沒(méi)有提供firewall-config命令,我們需要自行用dnf命令進(jìn)行安裝,所以需要先配置軟件倉(cāng)庫(kù)。
安裝成功后,firewall-config工具其功能具體如下:
1:選擇運(yùn)行時(shí)(Runtime)或永久(Permanent)模式的配置。
2:可選的策略集合區(qū)域列表。
3:常用的系統(tǒng)服務(wù)列表。
4:主機(jī)地址的黑白名單。
5:當(dāng)前正在使用的區(qū)域。
6:管理當(dāng)前被選中區(qū)域中的服務(wù)。
7:管理當(dāng)前被選中區(qū)域中的端口。
8:設(shè)置允許被訪問(wèn)的協(xié)議。
9:設(shè)置允許被訪問(wèn)的端口。
10:開(kāi)啟或關(guān)閉SNAT(源網(wǎng)絡(luò)地址轉(zhuǎn)換)技術(shù)。
11:設(shè)置端口轉(zhuǎn)發(fā)策略。
12:控制請(qǐng)求icmp服務(wù)的流量。
13:管理防火墻的富規(guī)則。
14:被選中區(qū)域的服務(wù),若勾選了相應(yīng)服務(wù)前面的復(fù)選框,則表示允許與之相關(guān)的流量。
15:firewall-config工具的運(yùn)行狀態(tài)。
使用firewall-config工具配置完防火墻策略之后,無(wú)須進(jìn)行二次確認(rèn),因?yàn)橹灰行薷膬?nèi)容,它就自動(dòng)進(jìn)行保存。
先將當(dāng)前區(qū)域中請(qǐng)求http服務(wù)的流量設(shè)置為允許放行,但僅限當(dāng)前生效
嘗試添加一條防火墻策略規(guī)則,使其放行訪問(wèn)8080~8088端口(TCP協(xié)議)的流量,并將其設(shè)置為永久生效,以達(dá)到系統(tǒng)重啟后防火墻策略依然生效的目的
局域網(wǎng)中有多臺(tái)PC,如果網(wǎng)關(guān)服務(wù)器沒(méi)有應(yīng)用SNAT技術(shù),則互聯(lián)網(wǎng)中的網(wǎng)站服務(wù)器在收到PC的請(qǐng)求數(shù)據(jù)包,并回送響應(yīng)數(shù)據(jù)包時(shí),將無(wú)法在網(wǎng)絡(luò)中找到這個(gè)私有網(wǎng)絡(luò)的IP地址,所以PC也就收不到響應(yīng)數(shù)據(jù)包了。在局域網(wǎng)中,由于網(wǎng)關(guān)服務(wù)器應(yīng)用了SNAT技術(shù),所以互聯(lián)網(wǎng)中的網(wǎng)站服務(wù)器會(huì)將響應(yīng)數(shù)據(jù)包發(fā)給網(wǎng)關(guān)服務(wù)器,再由后者轉(zhuǎn)發(fā)給局域網(wǎng)中的PC。
在firewall-config中用戶(hù)只需選中Masquerade zone復(fù)選框,就自動(dòng)開(kāi)啟了SNAT技術(shù)。
將本機(jī)888端口的流量轉(zhuǎn)發(fā)到22端口,且要求當(dāng)前和長(zhǎng)期均有效
富規(guī)則配置:
照片見(jiàn)證
總結(jié)
以上是生活随笔為你收集整理的Linux学习笔记--12(iptables与firewalld)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 红蓝军对抗
- 下一篇: 【记录】开源软件缺陷定位工具合集(fau