如何使用iptable和Firewalld工具來(lái)管理Linux防火墻連接規(guī)則

小編給大家分享一下如何使用iptable和Firewalld工具來(lái)管理Linux防火墻連接規(guī)則,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供富寧網(wǎng)站建設(shè)、富寧做網(wǎng)站、富寧網(wǎng)站設(shè)計(jì)、富寧網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、富寧企業(yè)網(wǎng)站模板建站服務(wù),十多年富寧做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

防火墻

防火墻是一套規(guī)則。當(dāng)數(shù)據(jù)包進(jìn)入或離開受保護(hù)的網(wǎng)絡(luò)空間時(shí),將根據(jù)防火墻規(guī)則測(cè)試數(shù)據(jù)包的內(nèi)容(特別是有關(guān)其來(lái)源、目標(biāo)和計(jì)劃使用的協(xié)議的信息),以確定是否應(yīng)該允許數(shù)據(jù)包通過(guò)。下面是一個(gè)簡(jiǎn)單的例子:

如何使用iptable和Firewalld工具來(lái)管理Linux防火墻連接規(guī)則

防火墻可以根據(jù)協(xié)議或基于目標(biāo)的規(guī)則過(guò)濾請(qǐng)求.

一方面,iptables是管理Linux機(jī)器上防火墻規(guī)則的工具。

另一方面,firewalld也是管理Linux機(jī)器上防火墻規(guī)則的工具。

你對(duì)此有意見嗎?如果我告訴你外面還有另一個(gè)工具,叫做nftable?

好吧,我承認(rèn)整件事聞起來(lái)有點(diǎn)怪怪的,所以讓我解釋一下。這一切都是從Netfilter開始的,Netfilter控制Linux內(nèi)核模塊級(jí)別對(duì)網(wǎng)絡(luò)堆棧的訪問(wèn)。幾十年來(lái),管理Netfilter鉤子的主要命令行工具是iptables規(guī)則集。

因?yàn)檎{(diào)用這些規(guī)則所需的語(yǔ)法可能有點(diǎn)神秘,各種用戶友好的實(shí)現(xiàn)如下UFW并引入了Firewalld作為高級(jí)Netfilter解釋器.然而,UFW和Firewalld主要是為了解決獨(dú)立計(jì)算機(jī)所面臨的各種問(wèn)題而設(shè)計(jì)的。構(gòu)建全尺寸的網(wǎng)絡(luò)解決方案通常需要iptables的額外功能,或者自2014年以來(lái),它的替代品nftable(通過(guò)nft命令行工具)。
iptables沒(méi)有去任何地方,而且仍然被廣泛使用。事實(shí)上,在未來(lái)的許多年里,您應(yīng)該會(huì)在管理員的工作中遇到受iptables保護(hù)的網(wǎng)絡(luò)。但是nftable通過(guò)添加到經(jīng)典的Netfilter工具集,帶來(lái)了一些重要的新功能。

從現(xiàn)在開始,我將通過(guò)示例演示Firewalld和iptables如何解決簡(jiǎn)單的連接問(wèn)題。

使用Firewalld配置HTTP訪問(wèn)

正如您從其名稱中可能猜到的那樣,F(xiàn)irewalld是systemd一家人。Firewalld可以安裝在Debian/Ubuntu機(jī)器上,但在RedHat和CentOS上是默認(rèn)的。如果在計(jì)算機(jī)上運(yùn)行了像Apache這樣的Web服務(wù)器,則可以通過(guò)瀏覽服務(wù)器的Web根目錄來(lái)確認(rèn)防火墻是否正常工作。如果這個(gè)網(wǎng)站無(wú)法到達(dá),那么Firewalld就在做它的工作。

您將使用firewall-cmd工具來(lái)管理命令行中的Firewalld設(shè)置。添加–state參數(shù)返回當(dāng)前防火墻狀態(tài):

# firewall-cmd --state
running

默認(rèn)情況下,F(xiàn)irewalld將處于活動(dòng)狀態(tài),并將拒絕所有傳入通信量,但有幾個(gè)例外情況,如SSH。這意味著您的網(wǎng)站將不會(huì)有太多的訪問(wèn)者,這肯定會(huì)為您節(jié)省大量的數(shù)據(jù)傳輸成本。但是,由于這可能不是您對(duì)Web服務(wù)器的想法,所以您需要打開HTTP和HTTPS端口,按照約定,這兩個(gè)端口分別被指定為80和443。Firewalld提供了兩種方法來(lái)做到這一點(diǎn)。一個(gè)是通過(guò)–add-port參數(shù),直接引用端口號(hào)以及它將使用的網(wǎng)絡(luò)協(xié)議(在本例中為TCP)。這,這個(gè),那,那個(gè)–permanent參數(shù)告訴Firewalld在每次服務(wù)器啟動(dòng)時(shí)加載此規(guī)則:

# firewall-cmd --permanent --add-port=80/tcp
# firewall-cmd --permanent --add-port=443/tcp

–reload參數(shù)將這些規(guī)則應(yīng)用于本屆會(huì)議:

# firewall-cmd --reload

對(duì)防火墻上的當(dāng)前設(shè)置很好奇嗎?跑–list-services:

# firewall-cmd --list-services
dhcpv6-client http https ssh

假設(shè)您添加了前面描述的瀏覽器訪問(wèn),HTTP、HTTPS和SSH端口現(xiàn)在都應(yīng)該是打開的dhcpv6-client,它允許Linux從本地DHCP服務(wù)器請(qǐng)求IPv 6 IP地址。

使用iptables配置鎖定的客戶信息亭

我敢肯定你見過(guò)售貨亭-它們是平板電腦、觸摸屏和類似ATM的個(gè)人電腦-在一個(gè)包廂里,機(jī)場(chǎng)、圖書館和商務(wù)室隨處可見,邀請(qǐng)顧客和過(guò)路人瀏覽內(nèi)容。大多數(shù)信息亭的特點(diǎn)是,你通常不希望用戶在家里把自己當(dāng)成自己的設(shè)備。它們通常不是用來(lái)瀏覽、觀看youtube視頻或?qū)ξ褰谴髽前l(fā)起拒絕服務(wù)攻擊的。所以,為了確保它們不被濫用,你需要把它們鎖起來(lái)。

一種方法是應(yīng)用某種Kiosk模式,無(wú)論是通過(guò)聰明地使用Linux顯示管理器還是在瀏覽器級(jí)別。但是,為了確保所有的漏洞都已堵塞,您可能還需要通過(guò)防火墻添加一些硬網(wǎng)絡(luò)控件。在下一節(jié)中,我將描述如何使用iptable來(lái)實(shí)現(xiàn)它。

關(guān)于使用iptables,有兩件重要的事情要記?。耗o出的規(guī)則的順序是至關(guān)重要的,僅憑它本身,Iptable規(guī)則將無(wú)法在重新啟動(dòng)后存活下來(lái)。我會(huì)在這里一次講一遍。

亭工程
為了說(shuō)明這一切,讓我們想象一下,我們?cè)谝患颐麨锽igMart的大型連鎖商店工作。他們已經(jīng)存在了幾十年;事實(shí)上,我們想象中的祖父母很可能是在那里購(gòu)物長(zhǎng)大的。但如今,BigMart公司總部的人可能只是在數(shù)著亞馬遜(Amazon)把他們永遠(yuǎn)趕下去之前的幾個(gè)小時(shí)。

盡管如此,BigMart的IT部門正在盡力而為,他們剛剛給您發(fā)送了一些WiFi準(zhǔn)備的信息亭設(shè)備,您可以在整個(gè)商店的戰(zhàn)略位置安裝這些設(shè)備。他們的想法是,他們將顯示一個(gè)登錄到BigMart.com產(chǎn)品頁(yè)面的網(wǎng)頁(yè)瀏覽器,允許他們查找商品特征、走道位置和庫(kù)存級(jí)別。這些信息亭還需要訪問(wèn)bigmart-data.com,那里存儲(chǔ)了許多圖像和視頻媒體。

除此之外,您還希望允許更新,并在必要時(shí)允許包下載。最后,您希望只允許從本地工作站訪問(wèn)入站SSH,并阻止其他所有人。下圖說(shuō)明了這一切將如何運(yùn)作:

如何使用iptable和Firewalld工具來(lái)管理Linux防火墻連接規(guī)則

亭的交通流量由iptable控制。

劇本

下面是如何將所有這些都放入一個(gè)Bash腳本中:

#!/bin/bash
iptables -A OUTPUT -p tcp -d bigmart.com -j ACCEPT
iptables -A OUTPUT -p tcp -d bigmart-data.com -j ACCEPT
iptables -A OUTPUT -p tcp -d ubuntu.com -j ACCEPT
iptables -A OUTPUT -p tcp -d ca.archive.ubuntu.com -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -j DROP
iptables -A OUTPUT -p tcp --dport 443 -j DROP
iptables -A INPUT -p tcp -s 10.0.3.1 --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -s 0.0.0.0/0 --dport 22 -j DROP

我們的規(guī)則的基本解剖是從-A告訴iptables我們要添加以下規(guī)則。OUTPUT這意味著這個(gè)規(guī)則應(yīng)該成為輸出鏈的一部分。-p指示此規(guī)則僅適用于使用tcp協(xié)議的數(shù)據(jù)包,其中,-d告訴我們,目的地是bigmart.com。這,這個(gè),那,那個(gè)-j標(biāo)志指向ACCEPT作為當(dāng)數(shù)據(jù)包與規(guī)則匹配時(shí)要采取的操作。在第一條規(guī)則中,該操作是允許或接受請(qǐng)求。但在更低的范圍內(nèi),您可以看到將被刪除或拒絕的請(qǐng)求。

記住秩序很重要。這是因?yàn)閕ptables將運(yùn)行一個(gè)請(qǐng)求,超過(guò)它的每個(gè)規(guī)則,但只有在它得到匹配為止。所以一個(gè)向外發(fā)送的瀏覽器請(qǐng)求,比如說(shuō),youtube.com將通過(guò)前四條規(guī)則,但是當(dāng)它到達(dá)–dport 80或–dport 443規(guī)則-取決于它是HTTP請(qǐng)求還是HTTPS請(qǐng)求-它將被刪除。Iptable不會(huì)再費(fèi)心檢查了,因?yàn)槟鞘瞧ヅ涞摹?/p>

另一方面,如果系統(tǒng)請(qǐng)求ubuntu.com進(jìn)行軟件升級(jí),那么當(dāng)它達(dá)到適當(dāng)?shù)囊?guī)則時(shí),它就會(huì)通過(guò)。顯然,我們?cè)谶@里所做的是只允許發(fā)送HTTP或HTTPS請(qǐng)求到我們的BigMart或Ubuntu目的地,而不是其他目的地。

最后兩個(gè)規(guī)則將處理傳入的SSH請(qǐng)求。由于它們不使用端口80或443,而是使用22,所以它們不會(huì)被前面的兩個(gè)DROP規(guī)則所拒絕。在這種情況下,從我的工作站登錄請(qǐng)求將被接受,但其他任何地方的請(qǐng)求將被刪除。這一點(diǎn)很重要:確保用于端口22規(guī)則的IP地址與用于登錄的機(jī)器的地址相匹配-如果不這樣做,您將立即被鎖在門外。當(dāng)然,這沒(méi)什么大不了的,因?yàn)榘凑债?dāng)前的配置方式,您可以簡(jiǎn)單地重新啟動(dòng)服務(wù)器,而iptables規(guī)則就會(huì)被刪除。如果您使用LXC容器作為您的服務(wù)器并從您的LXC主機(jī)登錄,那么使用您的主機(jī)用來(lái)連接到容器的IP地址,而不是它的公共地址。

如果我的機(jī)器的IP曾經(jīng)改變,您需要記住更新這個(gè)規(guī)則;否則,您將被鎖在門外。

在家里玩(希望是在一個(gè)丟棄的VM上)?太棒了創(chuàng)建自己的腳本?,F(xiàn)在我可以保存腳本,使用chmod使其可執(zhí)行,并將其運(yùn)行為sudo。別擔(dān)心bigmart-data.com not found錯(cuò)誤-當(dāng)然找不到;它不存在。

chmod +X scriptname.sh
sudo ./scriptname.sh

您可以在命令行中使用cURL。請(qǐng)求ubuntu.com有效,但是manning.com失敗了。

curl ubuntu.com
curl manning.com

將iptables配置為在系統(tǒng)啟動(dòng)時(shí)加載

現(xiàn)在,我如何使這些規(guī)則自動(dòng)加載每次售貨機(jī)啟動(dòng)?第一步是使用iptables-save工具。這將在根目錄中創(chuàng)建一個(gè)包含規(guī)則列表的文件。這個(gè)管道,后面跟著tee命令,是應(yīng)用我的sudo權(quán)限到字符串的第二部分:將文件實(shí)際保存到其他受限制的根目錄。

然后,我可以告訴系統(tǒng)運(yùn)行一個(gè)名為iptables-restore每次它啟動(dòng)。像我們?cè)谇懊娴哪K中看到的那樣的常規(guī)cron作業(yè)不會(huì)有幫助,因?yàn)樗鼈兪窃谠O(shè)定的時(shí)間運(yùn)行的,但是我們不知道我們的計(jì)算機(jī)何時(shí)會(huì)決定崩潰和重新啟動(dòng)。

有很多方法來(lái)處理這個(gè)問(wèn)題。這里有一個(gè):

在我的Linux機(jī)器上,我將安裝一個(gè)名為anacron這將在/etc/目錄中提供一個(gè)名為anacrontab的文件。我將編輯該文件并添加以下內(nèi)容iptables-restore命令,告訴它每天(必要時(shí))在啟動(dòng)后一分鐘將該.Rule文件的當(dāng)前值加載到iptables中。我會(huì)給作業(yè)一個(gè)標(biāo)識(shí)符(iptables-restore),然后添加命令本身。既然你在家里和我一起玩,你應(yīng)該重新啟動(dòng)你的系統(tǒng)來(lái)測(cè)試這一切。

sudo iptables-save | sudo tee /root/my.active.firewall.rules
sudo apt install anacron
sudo nano /etc/anacrontab
1 1 iptables-restore iptables-restore < /root/my.active.firewall.rules

我希望這些實(shí)際的例子已經(jīng)說(shuō)明了如何使用iptables和Firewalld來(lái)管理基于Linux的防火墻上的連接問(wèn)題。

以上是“如何使用iptable和Firewalld工具來(lái)管理Linux防火墻連接規(guī)則”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

當(dāng)前標(biāo)題:如何使用iptable和Firewalld工具來(lái)管理Linux防火墻連接規(guī)則
分享網(wǎng)址:http://bm7419.com/article38/jjchpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、外貿(mào)網(wǎng)站建設(shè)、App開發(fā)品牌網(wǎng)站制作、網(wǎng)站導(dǎo)航、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化