【我的Linux,我做主!】Linux防火墻核心概念全面解讀-創(chuàng)新互聯(lián)

目錄:
(一)tcpwraps的配置
(二)Firewalld的概念
(三)配置防火墻
(四)使用man firewalld.richlanguage

站在用戶的角度思考問題,與客戶深入溝通,找到西崗網(wǎng)站設(shè)計(jì)與西崗網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗(yàn)好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋西崗地區(qū)。

眾所周知,相較于企業(yè)內(nèi)網(wǎng),外部的公網(wǎng)環(huán)境更加惡劣,罪惡叢生。在公網(wǎng)與企業(yè)內(nèi)網(wǎng)之間充當(dāng)保護(hù)屏障的防火墻雖然有軟件和硬件之分,但主要功能都是依據(jù)策略對穿越防火墻自身的流量進(jìn)行過濾。防火墻策略可以基于流量的源地址、目的地址、端口號、協(xié)議、應(yīng)用等信息來定制,然后防火墻使用預(yù)先定制的策略規(guī)則監(jiān)控出入的流量,若流量與某一條策略規(guī)則相匹配,則執(zhí)行相應(yīng)的處理,反之則丟棄。這樣一來,就可以保證僅有合法的流量在企業(yè)內(nèi)網(wǎng)和外部公網(wǎng)之間流動了。
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(一)tcpwraps的配置
(1.1)在RHEL 7系統(tǒng)中有多種防火墻,其中一種是tcpwraps。Tcpwraps主要涉及到兩個配置文件:/etc/hosts.allow文件和/etc/hosts.deny配置文件。在配置文件中的配置語法主要為:“daemon : 客戶端”,例如在我們系統(tǒng)中有sshd服務(wù),當(dāng)這個服務(wù)運(yùn)行的時候,本質(zhì)上是有一個程序在后臺一直在運(yùn)行(圖1-3),如果在hosts.allow文件中進(jìn)行配置,那么就是允許指定的客戶端訪問這個服務(wù),如果在hosts.deny文件中進(jìn)行配置,那么就是不允許指定的客戶端訪問這個服務(wù)。其中我們在指定客戶端的時候,如果是填寫子網(wǎng)掩碼,是不支持直接寫/24的表示方法的,必須要完整的寫成/255.255.255.0的表示方法(圖1-2)。
# ps aux | grep -v grep | grep sshd
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(1.2)接著我們看一下tcpwraps的匹配規(guī)則,首先到hosts.allow里去匹配,如果匹配成功了則系統(tǒng)允許通過這個匹配的地址訪問,此后就不再到hosts.deny里去匹配了;如果在hosts.allow里沒有匹配成功,則才會到hosts.deny里去匹配,如果在hosts.deny里匹配成功了,則系統(tǒng)會拒絕這個匹配的地址訪問;如果在hosts.deny里也沒有匹配成功,則系統(tǒng)默認(rèn)是允許通過這個地址進(jìn)行訪問的,和沒有指定這個條目的效果是一致的。
(1.3)默認(rèn)情況下,在沒有設(shè)置任何tcpwraps規(guī)則時,vms002主機(jī)是可以正常的使用ssh服務(wù)連接到vms001主機(jī)的。
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(1.4)我們在vms001主機(jī)的hosts.allow中配置允許192.168.26.0網(wǎng)段中的所有主機(jī)可以訪問vms001主機(jī)的ssh服務(wù),此時我們發(fā)現(xiàn)vms002主機(jī)仍然是可以訪問vms001主機(jī)的ssh服務(wù)的。
注意:hosts.allow配置文件中修改的條目在修改完后是立即自動生效的
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(1.5)我們在vms001主機(jī)的/etc/hosts.allow配置文件和/etc/hosts.deny配置文件中都添加上允許192.168.26.102主機(jī)的條目,此時由于系統(tǒng)中先通過了hosts.allow配置文件中的條目,所以hosts.deny配置文件中的條目便不會再執(zhí)行了,所以vms002主機(jī)是可以正常的訪問vms001主機(jī)的ssh服務(wù)的。
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(1.6)接著我們在vms001主機(jī)的/etc/hosts.allow配置文件中設(shè)置允許192.168.26.即26.0網(wǎng)段中所有的主機(jī)都允許通過,在/etc/hosts.deny配置文件中設(shè)置不允許192.168.26.102主機(jī),此時由于是先執(zhí)行了hosts.allow文件的比對,再執(zhí)行hosts.deny文件的比對,所以vms002主機(jī)仍然是可以正常的訪問vms001主機(jī)的ssh服務(wù)的。
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(1.7)下面的一種情況是,我們在vms001主機(jī)的/etc/hosts.allow配置文件中設(shè)置允許192.168.26.0網(wǎng)段中所有的主機(jī),但是除了192.168.26.102,在/etc/hosts.deny配置文件中沒有做任何的配置,此時雖然排除了192.168.26.102主機(jī)允許通過,但是系統(tǒng)默認(rèn)也是允許通過,所以此時vms002主機(jī)仍然是可以正常的訪問vms001主機(jī)的ssh服務(wù)的(圖1-9)。而當(dāng)我們在/etc/hosts.deny配置文件中設(shè)置了192.168.26.102主機(jī)時,此時vms002主機(jī)就不可以訪問vms001主機(jī)的ssh服務(wù)了(圖1-10和圖1-11)。
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(1.8)一般我們?yōu)榱吮WC安全性,在/etc/hosts.allow文件中指定了可以訪問的主機(jī)后,同時也應(yīng)該在/etc/hosts.deny文件中指定其他的所有主機(jī)都不能訪問,從而提高系統(tǒng)的安全。此時我們在vms002主機(jī)上仍然可以正常的登錄到vms001主機(jī)的ssh服務(wù),但是其他IP地址的主機(jī)就無法登錄vms001主機(jī)的ssh服務(wù)了。此時我們?nèi)绻M渌闹鳈C(jī)也能夠訪問到vms001主機(jī)的ssh服務(wù),可以先登錄到vms002主機(jī),再通過vms002主機(jī)跳板登錄到vms001主機(jī),此時vms002主機(jī)便實(shí)現(xiàn)了“堡壘機(jī)”的作用。
在/etc/hosts.allow中配置:
# sshd : 192.168.26.102/255.255.255.0
在/etc/hosts.deny中配置:
# sshd : ALL
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(1.9)tcpwraps可以很好的進(jìn)行訪問控制的作用,我們使用ldd命令,可以查看tcpwraps是可以對sshd服務(wù)進(jìn)行訪問控制的(圖1-14);我們安裝好vsftpd服務(wù)后,使用ldd命令查看,發(fā)現(xiàn)tcpwraps也是可以對vsftpd服務(wù)進(jìn)行訪問控制的(圖1-15);安裝完httpd服務(wù)后發(fā)現(xiàn),tcpwraps并不能對httpd服務(wù)進(jìn)行訪問控制,因?yàn)閔ttpd服務(wù)并沒有鏈接到tcpwraps模塊(圖1-16)。
注意:如果我們想要知道關(guān)于hosts allow更詳細(xì)的用法,可以使用# man hosts.allow進(jìn)行查詢。
# ldd which sshd | grep wrap
# yum install vsftpd -y
# ldd which vsftpd | grep wrap
# yum install httpd -y
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(二)Firewalld的概念
(2.1)在RHEL 7系列的系統(tǒng)中,firewalld防火墻取代了iptables防火墻。對于接觸Linux系統(tǒng)比較早或?qū)W習(xí)過RHEL 6系統(tǒng)的讀者來說,當(dāng)他們發(fā)現(xiàn)曾經(jīng)掌握的知識在RHEL 7中不再適用,需要全新學(xué)習(xí)firewalld時,難免會有抵觸心理。其實(shí),iptables與firewalld都不是防火墻的真面目,它們都只是用來定義防火墻策略的的防火墻管理工具而已,或者說,它們只是一種服務(wù)。iptables服務(wù)會把配置好的防火墻策略交給內(nèi)核層面的netfilter網(wǎng)絡(luò)過濾器來處理,而firewalld服務(wù)則是把配置好的防火墻策略交給內(nèi)核層面的nftables包過濾框架來處理。換句話說,當(dāng)前在Linux系統(tǒng)中其實(shí)存在多個防火墻管理工具,旨在方便運(yùn)維人員管理Linux系統(tǒng)中的防火墻策略,我們只需要配置妥當(dāng)其中的一個就足夠了。雖然這些工具各有優(yōu)劣,但它們在防火墻策略的配置思路上是保持一致的。大家只要在多個防火墻管理工具中選擇一款并將其學(xué)透,就足以滿足日常的工作需求了。
(2.2)在RHEL 7系統(tǒng)中是同時存在多個防火墻的,例如firewalld、iptables、ebtables、ipv6tables等,但是RHEL 7系統(tǒng)默認(rèn)是使用firewalld防火墻的。我們在使用Firewalld防火墻主要可以通過圖形化界面和命令行這兩種方式來進(jìn)行配置,此處我們使用兩種方式配合使用。
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(三)配置防火墻
(3.1)通過圖形化的界面我們發(fā)現(xiàn),在區(qū)域部分展示的是防火墻所有的區(qū)域(zone)。在命令行,我們通過get-zones可以獲得防火墻所有區(qū)域的信息(圖1-19)。
# firewall-config &
# firewall-cmd --get-zones
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(3.2)我們知道每個網(wǎng)卡都會需要和某個zone進(jìn)行關(guān)聯(lián),如果某網(wǎng)卡沒有和任何的zone關(guān)聯(lián),則會使用默認(rèn)的zone,通過圖形化界面我們可以知道,默認(rèn)的zone是trusted,默認(rèn)情況下所有的數(shù)據(jù)包都是允許通過的。
# firewall-cmd --get-default-zone
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(3.3)而如果我們想修改防火墻的默認(rèn)區(qū)域,可以通過“選項(xiàng)”--“改變默認(rèn)區(qū)域”操作(圖1-22和圖1-23)。如果我們想要通過命令行的方式進(jìn)行修改,則可以通過set-default-zone的參數(shù)進(jìn)行設(shè)置,可以設(shè)置默認(rèn)的區(qū)域?yàn)閜ublic(圖1-24)
# firewall-cmd --set-default-zone=public
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(3.4)默認(rèn)情況下,所有的網(wǎng)卡都是和默認(rèn)的zone進(jìn)行關(guān)聯(lián)的,此時我們默認(rèn)的zone是public,所以網(wǎng)卡eno16777728顯示是和public關(guān)聯(lián)的;接著我們嘗試將默認(rèn)的zone修改為trusted,可以發(fā)現(xiàn)此時網(wǎng)卡eno16777728也會自動和修改為默認(rèn)zone的trusted進(jìn)行關(guān)聯(lián)。
# firewall-cmd --get-zone-of-interface=eno16777728
# firewall-cmd --set-default-zone=trusted
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(3.5)如果我們想將默認(rèn)的public區(qū)域中的接口網(wǎng)卡eno16777728更改為和home區(qū)域的zone進(jìn)行關(guān)聯(lián),此時如果我們直接在home區(qū)域添加eno16777728網(wǎng)卡,那么系統(tǒng)會彈出區(qū)域沖突的信息(圖1-26)。由于每張網(wǎng)卡只能和一個區(qū)域進(jìn)行關(guān)聯(lián),所以此時我們應(yīng)該先將eno16777728從public區(qū)域中移除,然后再添加至home區(qū)域中,此時我們通過圖形化界面便可以正常的將網(wǎng)卡和home區(qū)域進(jìn)行關(guān)聯(lián)了(圖1-27和圖1-28)。
# firewall-cmd --remove-interface=eno16777728---從public區(qū)域中移除網(wǎng)卡
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(3.6)如果我們使用remove-interface參數(shù)從區(qū)域中刪除網(wǎng)卡時,是從默認(rèn)的區(qū)域中刪除網(wǎng)卡的,此時防火墻默認(rèn)的區(qū)域是public,但是網(wǎng)卡關(guān)聯(lián)的是在home區(qū)域中,所以我們在刪除時也需要指定區(qū)域。如果我們使用add-interface添加eno16777728網(wǎng)卡,沒有指定區(qū)域時,那么系統(tǒng)會在默認(rèn)的區(qū)域public中添加網(wǎng)卡。
# firewall-cmd --remove-interface=eno16777728 --zone=home
# firewall-cmd --add-interface=eno16777728
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(3.7)現(xiàn)在我們的網(wǎng)卡eno16777728是在public區(qū)域中,如果我們想將網(wǎng)卡修改到其他的區(qū)域的zone中則可以使用change-interface,例如我們將網(wǎng)卡直接修改到home區(qū)域中。
# firewall-cmd --change-interface=eno16777728 --zone=home---將網(wǎng)卡直接修改到home區(qū)域中
# firewall-cmd --get-zone-of-interface=eno16777728
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(3.8)現(xiàn)在我們?nèi)匀辉O(shè)置網(wǎng)卡eno16777728是在public區(qū)域中,首先我們將httpd服務(wù)啟動起來,并設(shè)置主頁信息,此時我們在vms002主機(jī)上嘗試登錄vms001主機(jī)的主頁發(fā)現(xiàn)無法登錄(圖1-32)。接著我們在public區(qū)域中勾選http服務(wù)可以通過,此時便可以正常的登錄到vms001的主頁了(圖1-34)。接著我們通過命令行的方式實(shí)現(xiàn),首先通過get-services獲取系統(tǒng)中所有的服務(wù)(圖1-35),接著我們查詢默認(rèn)的public區(qū)域中http服務(wù)是否有勾選,并使用add-service添加http服務(wù),使用remove-service去除http服務(wù)(圖1-36)。
# firewall-cmd --get-services | grep http---獲取系統(tǒng)中所有的服務(wù)并查詢http服務(wù)是否有包含
# firewall-cmd --query-service=http---查詢http服務(wù)是否有勾選
# firewall-cmd --add-service=http---將默認(rèn)區(qū)域的http服務(wù)勾選
# firewall-cmd --remove-service=http---將默認(rèn)區(qū)域的http服務(wù)去除
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(3.9)以上的防火墻的設(shè)置都只是臨時生效,如果將防火墻的服務(wù)重啟后,會發(fā)現(xiàn)http服務(wù)便沒有勾選了,此時就無法正常的訪問http服務(wù)了。通過圖形化界面設(shè)置,我們可以選擇永久生效,然后在public區(qū)域中將http服務(wù)勾選,此時防火墻服務(wù)重啟后,也仍然可以正常的訪問http服務(wù)了(圖1-38)。如果我們只是在永久配置中勾選了http服務(wù),但是運(yùn)行時配置中并沒有勾選http服務(wù),由于永久配置必須要重啟后才會生效,所以此時當(dāng)前運(yùn)行的環(huán)境中并沒有生效允許訪問http服務(wù),通過命令行的方式,我們應(yīng)該通過加上“--permanent”寫入持久態(tài)的參數(shù)處理(圖1-39)。
# firewall-cmd --query-service=http
# systemctl restart firewalld.service---將服務(wù)重啟一下
# firewall-cmd --add-service=http---設(shè)置防火墻允許http服務(wù)訪問
# firewall-cmd --add-service=http --permanent---將配置寫入持久態(tài)
# firewall-cmd --remove-service=http---刪除防火墻允許http服務(wù)訪問
# firewall-cmd --remove-service=http --permanent---將配置寫入持久態(tài)
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(3.10)有時候我們可能會使用非標(biāo)準(zhǔn)的端口去運(yùn)行服務(wù),第二個我們來了解“端口”,例如使用808端口運(yùn)行http服務(wù),此時我們在服務(wù)配置中勾上http會發(fā)現(xiàn)也是仍然不能正常的訪問到vms001主機(jī)的主頁。我們首先在http服務(wù)中開放808端口,并修改好端口的上下文,然后將httpd服務(wù)重啟后,我們會發(fā)現(xiàn)由于防火墻并沒有設(shè)置808端口允許通過,所以此時仍然是無法訪問vms001主頁的(圖1-42),此時我們可以使用端口解決這個問題,我們在端口中添加808端口,使用的協(xié)議是tcp,這樣我們便可以正常的訪問到vms001主機(jī)在808端口開放的主頁了(圖1-44)。接著我們還可以使用命令行的方式實(shí)現(xiàn)添加808端口的操作,同時要記住添加端口完畢后需要添加“--permanent”參數(shù),可以實(shí)現(xiàn)配置在重啟后也仍然生效的效果。
# vim /etc/httpd/conf/httpd.conf
# vim /etc/ssh/sshd_config ---可以使用ssh配置文件中的修改端口上下文的模板
# semanage port -a -t http_port_t -p tcp 808---更改端口的上下文
# systemctl restart httpd.service
# firewall-cmd --query-port=808/tcp---查詢808端口在防火墻中是否有開啟
# firewall-cmd --remove-port=808/tcp---刪除防火墻中開啟的808端口,刪除端口
# firewall-cmd --add-port=808/tcp---添加808端口
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(3.11)第三個我們來了解“ICMP過濾器”,其中ICMP表示的是互聯(lián)網(wǎng)控制報文協(xié)議,主要用于在聯(lián)網(wǎng)的計(jì)算機(jī)之間發(fā)送出錯信息,但也發(fā)送類似ping請求及回應(yīng)等信息。此處ICMP過濾器和我們遇到的第一個“服務(wù)”在表示的時候是相反的,此處ICMP類型中的選項(xiàng),如果勾上表示的是不允許通過,不打勾代表的是允許通過,而在“服務(wù)”中,勾上表示的是服務(wù)允許通過,而不打勾代表的是不允許通過。我們在ICMP過濾器中勾選上“echo-request”,此時vms001主機(jī)就不允許其他主機(jī)對自己發(fā)送ping的請求了,我們在vms002主機(jī)上向vms001主機(jī)發(fā)送ping的請求,發(fā)現(xiàn)并不能ping成功(圖1-47)。接著我們再使用命令行的方式操作,使用add-icmp-block參數(shù),此時就可以實(shí)現(xiàn)禁止其他主機(jī)ping當(dāng)前vms001主機(jī)的要求了(圖1-48)。不過需要注意的是有時候設(shè)置了ICMP后并不能禁止Windows類型的客戶端的ping請求,此時我們可以在內(nèi)核參數(shù)中進(jìn)行相關(guān)的設(shè)置,從而實(shí)現(xiàn)禁ping的需求,/proc/sys/net/ipv4/目錄下的icmp_echo_ignore_all內(nèi)核參數(shù)默認(rèn)是0,表示的允許其他主機(jī)ping的請求,此時任何類型的客戶端都是無法ping通vms001主機(jī)的(圖1-49和圖1-50)
# firewall-cmd --get-icmptypes---查詢當(dāng)前防火墻中ICMP所有的類型
# firewall-cmd --add-icmp-block=echo-request---勾選ICMP請求的選項(xiàng),拒絕其他機(jī)器的訪問禁ping
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(3.12)第四個我們來了解“來源”,由于我們的網(wǎng)卡是關(guān)聯(lián)在public區(qū)域的,而且http服務(wù)并沒有勾選,所以在vms002主機(jī)使用http://192.168.26.101 的方式訪問時是無法打開vms001主機(jī)的主頁的(圖1-51至圖1-53),我們在vms001主機(jī)的home區(qū)域中的來源添加192.168.26.0網(wǎng)段,同時在home區(qū)域的“服務(wù)”中添加了允許訪問http服務(wù)后,此時雖然是在public區(qū)域中,但是仍然可以正常的訪問vms001主機(jī)的主頁(圖1-54至圖1-56)。這是由于我們在home區(qū)域的的“來源”設(shè)置了允許192.168.26.0網(wǎng)段后,那么訪問的客戶端IP地址只要是包含在這個網(wǎng)段中,那么即使此時使用的是public區(qū)域,但是仍然可以匹配到home區(qū)域中服務(wù)的設(shè)置規(guī)則,而home區(qū)域中允許了http服務(wù),所以vms002主機(jī)可以正常的訪問到vms001主機(jī)的主頁。
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(3.13)如果我們想了解當(dāng)前的防火墻中包含有哪些的“來源”,我們可以使用query-source參數(shù)來驗(yàn)證指定的區(qū)域是否包含來源的信息,例如我們測試出在home區(qū)域中包含192.168.26.0網(wǎng)段的“來源”信息(圖1-57)。不過我們還是可以通過“l(fā)ist-all”參數(shù)來查詢未知網(wǎng)段的情況下設(shè)置“來源”的區(qū)域信息(圖1-58)。我們可以通過命令行的方式對區(qū)域中的“來源”網(wǎng)段進(jìn)行添加和刪除操作。
# firewall-cmd --query-source=192.168.26.0/24
# firewall-cmd --query-source=192.168.26.0/24 --zone=home
# firewall-cmd --list-all---查詢public區(qū)域是否有包含“來源”信息
# firewall-cmd --list-all --zone=home---查詢home區(qū)域是否有包含“來源”信息
# firewall-cmd --remove-source=192.168.26.0/24 --zone=home---刪除home區(qū)域的“來源”信息
# firewall-cmd --add-source=192.168.26.0/24 --zone=home---在home區(qū)域添加“來源”信息
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(3.14)第五個是“偽裝”,第六個是“端口轉(zhuǎn)發(fā)”。目前IPv4的地址出現(xiàn)了資源短缺不夠用,我們的解決方案除了使用IPv6以外,還可以使用NAT方案來進(jìn)行緩解。在我們的環(huán)境中存在內(nèi)網(wǎng),內(nèi)網(wǎng)中存在一個交換機(jī),這個交換機(jī)會連接到一個對外訪問的路由器,這個路由器連接到外部互聯(lián)網(wǎng)的某主機(jī)(2.2.2.2),我們內(nèi)網(wǎng)的主機(jī)IP地址是內(nèi)網(wǎng)私有地址(10.0.0.2),而私有地址的網(wǎng)關(guān)是10.0.0.1在路由器的一個接口上,路由器的公網(wǎng)地址是1.1.1.1,現(xiàn)在我們內(nèi)網(wǎng)的主機(jī)(10.0.0.2)需要發(fā)送一個數(shù)據(jù)包到外部互聯(lián)網(wǎng)的某主機(jī)上(2.2.2.2),此時發(fā)送的源地址:10.0.0.2,目的地址:2.2.2.2,到達(dá)路由器后,會進(jìn)行網(wǎng)絡(luò)地址轉(zhuǎn)換,此時源地址:1.1.1.1,目的地址:2.2.2.2,這種轉(zhuǎn)換就稱之為SNAT(source nat)。而有時候我們內(nèi)網(wǎng)會有一個主機(jī)對外提供服務(wù),此時我們內(nèi)網(wǎng)的IP地址是10.0.0.3,而外部互聯(lián)網(wǎng)主機(jī)希望訪問內(nèi)部的Web服務(wù)器時,首先是通過源地址:2.2.2.2,目的地址:1.1.1.1,通過路由器后,會進(jìn)行網(wǎng)絡(luò)地址轉(zhuǎn)換,此時源地址:2.2.2.2,目的地址:10.0.0.3,這種轉(zhuǎn)換就稱之為DNAT(destination nat)。而對應(yīng)到防火墻中SNAT就是“偽裝”,而DNAT就是“端口轉(zhuǎn)發(fā)”。
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(3.15)現(xiàn)在我們的系統(tǒng)的環(huán)境是有三臺主機(jī),其中server主機(jī)的IP地址是10.0.0.2,vms002主機(jī)的IP地址是192.168.26.102,vms001主機(jī)的IP地址是192.168.26.101。其中vms001主機(jī)的網(wǎng)卡是eno16777728,而vms002主機(jī)的網(wǎng)卡其中一塊是eno16777728對應(yīng)的IP地址是192.168.26.102,接著我們在vms002主機(jī)上添加一塊新的網(wǎng)卡eno33554968,此網(wǎng)卡對應(yīng)的IP地址是10.0.0.1。我們在vms002主機(jī)上進(jìn)行防火墻的設(shè)置,我們先將vms002主機(jī)的第二張網(wǎng)卡eno33554968添加我們自己設(shè)置的LAN區(qū)段中,接著我們在網(wǎng)卡eno33554968上配置相應(yīng)的IP地址和子網(wǎng)掩碼信息,最后將網(wǎng)絡(luò)重啟一下。
# nmcli connection---查詢網(wǎng)卡的連接情況
# systemctl restart network---將網(wǎng)絡(luò)重啟一下
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(3.16)接著我們將server主機(jī)的網(wǎng)卡添加到LAN區(qū)段aa網(wǎng)段中,在server主機(jī)中,我們編輯網(wǎng)卡ens32,同時注意需要設(shè)置自動連接網(wǎng)絡(luò)的選項(xiàng),我們在server主機(jī)上設(shè)置好IP地址10.0.0.2,掩碼和網(wǎng)關(guān)的信息,其中網(wǎng)關(guān)指向vms002主機(jī)eno33554968網(wǎng)卡的IP地址10.0.0.1,并將服務(wù)重啟一下。我們在server主機(jī)上ping向vms002主機(jī)的網(wǎng)卡地址10.0.0.1時,是可以正常ping通的,我們使用server主機(jī)ping向vms002主機(jī)的網(wǎng)卡地址192.168.26.102時也是可以正常ping通的。
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(3.17)而我們嘗試從server主機(jī)ping向vms001主機(jī)的時候,發(fā)現(xiàn)是無法ping通的(圖1-72),這是由于server主機(jī)向vms001主機(jī)通信的時候會需要vms002主機(jī)開啟轉(zhuǎn)發(fā)的功能,但是此時vms002主機(jī)的轉(zhuǎn)發(fā)功能并沒有開啟,我們設(shè)置ip_forward的值為1(圖1-73至圖1-75)。
# cat /proc/sys/net/ipv4/ip_forward---查詢vms002主機(jī)的轉(zhuǎn)發(fā)功能是否有開啟
# echo 1 > /proc/sys/net/ipv4/ip_forward---將vms002主機(jī)的轉(zhuǎn)發(fā)功能開啟
# sysctl -a | grep forward---查詢系統(tǒng)中關(guān)于轉(zhuǎn)發(fā)的所有功能
# echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf---將轉(zhuǎn)發(fā)功能寫入到配置文件中
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(3.18)如果我們希望server主機(jī)能夠訪問成功vms001主機(jī),此時有兩種方案可以實(shí)現(xiàn),第一種是配置路由的方式,我們設(shè)置vms001主機(jī)的網(wǎng)關(guān)是指向vms002主機(jī)的IP地址192.168.26.102,并重啟網(wǎng)絡(luò)服務(wù),在vms001主機(jī)設(shè)置完路由信息后,此時server主機(jī)可以正常的ping通vms001主機(jī)了,但是vms001主機(jī)在抓包過程中是可以看到server主機(jī)的IP地址信息的(圖1-76至圖1-79);第二種方式是通過配置NAT的方式來進(jìn)行操作,我們在vms002主機(jī)上開啟防火墻,然后設(shè)置默認(rèn)的區(qū)域?yàn)閜ublic并將“偽裝區(qū)域”勾選起來,此時server主機(jī)是可以正常的訪問vms001主機(jī)的IP地址的,此時由于我們在vms002主機(jī)上設(shè)置了NAT,所以此時可以接收到server主機(jī)發(fā)送的信息,但是只能看到是vms002.example.com,無法獲取具體的IP地址信息,從而起到了偽裝的作用(圖1-80至圖1-82)。
# systemctl restart network---重啟網(wǎng)絡(luò)服務(wù)
# tcpdump -i eno16777728 icmp---查詢抓包信息
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(3.19)接著我們來了解第六個“端口轉(zhuǎn)發(fā)”,我們首先在內(nèi)網(wǎng)的server主機(jī)上搭建一個Web服務(wù)器,此時我們需求是vms001主機(jī)可以訪問訪問server主機(jī)提供的Web服務(wù),此時我們的做法就是設(shè)置端口轉(zhuǎn)發(fā),當(dāng)訪問到vms002主機(jī)的80端口的時候,自動轉(zhuǎn)發(fā)到server主機(jī)的80端口,所以可以正確的看到server主機(jī)的Web主頁(圖1-86)。我們也可以通過命令行的方式來實(shí)現(xiàn),我們在vms002主機(jī)上操作,我們在vms002主機(jī)上查詢發(fā)現(xiàn)端口轉(zhuǎn)發(fā)并沒有任何的設(shè)置,此時我們在vms002主機(jī)上設(shè)置端口port為80,協(xié)議proto為tcp,轉(zhuǎn)發(fā)的地址toaddr為10.0.0.2,轉(zhuǎn)發(fā)的端口為80,此時我們從vms001主機(jī)訪問192.168.26.102主機(jī)的80端口的時候,會轉(zhuǎn)發(fā)到server主機(jī)的80端口(圖1-88)。
# firewall-cmd --list-all---查詢當(dāng)前防火墻默認(rèn)區(qū)域的所有配置信息
# firewall-cmd --add-forward-port="port=80:proto=tcp:toaddr=10.0.0.2:toport=80"
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(3.20)我們還可以設(shè)置如果訪問本機(jī)端口80的時候,會轉(zhuǎn)發(fā)到本機(jī)的22端口的條目(圖1-89和圖1-90)。我們也可以設(shè)置如果訪問本機(jī)的80端口會轉(zhuǎn)發(fā)到10.0.0.2主機(jī)的22端口(圖1-91和圖1-92)。
# firewall-cmd --remove-forward-port="port=80:proto=tcp:toaddr=10.0.0.2:toport=80"---刪除端口轉(zhuǎn)發(fā)的條目
# firewall-cmd --add-forward-port="port=80:proto=tcp:toport=22"---添加轉(zhuǎn)發(fā)端口的條目,如果訪問本機(jī)端口80的時候,會轉(zhuǎn)發(fā)到本機(jī)的22端口
# firewall-cmd --remove-forward-port="port=80:proto=tcp:toport=22"---刪除端口轉(zhuǎn)發(fā)的條目
# firewall-cmd --add-forward-port="port=80:proto=tcp:toaddr=10.0.0.2:toport=22"---添加轉(zhuǎn)發(fā)端口的條目,如果訪問本機(jī)的80端口會轉(zhuǎn)發(fā)到10.0.0.2主機(jī)的22端口
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(四)使用man firewalld.richlanguage
(4.1)第七個我們來了解“富規(guī)則”,首先我們在vms002主機(jī)安裝http服務(wù),然后我們將“端口轉(zhuǎn)發(fā)”中的轉(zhuǎn)發(fā)配置刪除后,在“服務(wù)”中將http服務(wù)勾選,此時我們會發(fā)現(xiàn)此時如果允許http服務(wù)通過,那么所有主機(jī)都是可以訪問,如果禁止http服務(wù)通過,那么所有主機(jī)都是無法進(jìn)行訪問,無法按照我們的需求進(jìn)行精確控制(圖4-3)。
# echo vms002 > /var/www/html/index.html---設(shè)置主頁信息
# systemctl start httpd
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(4.2)有時候很我們的需求是某些客戶端可以訪問vms002主機(jī)的主頁,但同時也會拒絕某些客戶端訪問vms002主機(jī)的主頁,此時我們可以使用設(shè)置富規(guī)則的方式處理,不過如果我們啟用富規(guī)則進(jìn)行Web網(wǎng)頁的控制,那么“服務(wù)”和“端口”我們就不能做任何的勾選控制。如果我們想要以圖形化界面進(jìn)行配置,我們需要選用英文版的比較好,我們選擇“Rich_Rules”,選擇對ipv4進(jìn)行控制,選的service服務(wù)是http,選擇accept表示允許訪問的客戶端,其中Source源允許的客戶端我們填寫的是192.168.26.1(圖4-4)。此時我們的192.168.26.1客戶端是可以正常的訪問vms002主機(jī)的主頁的(圖4-6),而vms001主機(jī)的客戶端的IP地址為192.168.26.101,不符合富規(guī)則的要求,是無法訪問vms002主機(jī)的主頁的(圖4-7)。
# LANG=C firewall-config &
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(4.3)如果以上的操作我們希望通過命令行的方式實(shí)現(xiàn),則首先使用man -k命令查詢所有符合firewall的條目,然后進(jìn)入到firewalld.richlanguage條目中,在firewalld.richlanguage條目中,我們可以關(guān)注Example 3和Example 5。首先我們通過service進(jìn)行訪問控制,我們在vms002主機(jī)設(shè)置只允許192.168.26.1主機(jī)可以訪問http服務(wù),此時192.168.26.1主機(jī)可以正常的訪問vms002主機(jī)的主頁了(圖4-10至圖4-12)。
# man -k firewall---查詢所有符合firewall的條目
# man firewalld.richlanguage---查詢這個條目的具體解釋
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.26.1/24" service name="http" accept'---在vms002主機(jī)設(shè)置只允許192.168.26.1主機(jī)可以訪問http服務(wù)
# firewall-cmd --remove-rich-rule 'rule family="ipv4" source address="192.168.26.1" service name="http" accept'---刪除vms002主機(jī)設(shè)置只允許192.168.26.1主機(jī)可以訪問http服務(wù)
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(4.4)然后我們嘗試使用port端口進(jìn)行訪問控制,我們指定地址為192.168.26.101主機(jī),訪問本機(jī)vms002主機(jī)的80端口時可以通過,此時我們發(fā)現(xiàn)使用192.168.26.1主機(jī)訪問vms001主機(jī)的Web服務(wù)時無法正常的訪問主頁,而使用192.168.26.101主機(jī)可以正常的訪問vms001主機(jī)的主頁(圖4-14和圖4-15)。
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.26.101" port port="80" protocol="tcp" accept'---指定當(dāng)?shù)刂窞?92.168.26.101主機(jī),訪問本機(jī)vms002主機(jī)的80端口的時候可以通過
# firewall-cmd --remove-rich-rule 'rule family="ipv4" source address="192.168.26.101" port port="80" protocol="tcp" accept'---將指定的地址為192.168.26.101主機(jī),端口為80端口的訪問可以通過的條目刪除
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(4.5)現(xiàn)在我們的需求是當(dāng)192.168.26.101主機(jī)訪問vms002主機(jī)的88端口時會自動轉(zhuǎn)發(fā)到server主機(jī)的22端口。我們先使用圖形化的界面進(jìn)行操作,我們選擇forward-port,當(dāng)訪問本機(jī)的88端口時,自動轉(zhuǎn)發(fā)到10.0.0.2主機(jī)的22端口上,同時填寫允許訪問的主機(jī)地址,此時我們發(fā)現(xiàn)只有vms001主機(jī)可以正常的ssh連接到10.0.0.2主機(jī)上。
# ssh 192.168.26.102 -p 88---在vms001主機(jī)上連接,其中-p指明端口
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(4.6)如果我們想用命令行的方式實(shí)現(xiàn)當(dāng)192.168.26.1主機(jī)訪問vms002主機(jī)的88端口時會自動轉(zhuǎn)發(fā)到server主機(jī)的22端口,我們可以使用man firewalld.richlanguage查詢到Example 5的示例,此時我們就可以正常的連接到server主機(jī)的22端口了(圖4-21和圖4-22)。
# firewall-cmd --list-all
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.26.1" forward-port to-addr="10.0.0.2" to-port="22" protocol="tcp" port="88"'---其中port表示本機(jī)的端口,to-port表示轉(zhuǎn)發(fā)的端口
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
(4.7)有時候我們在企業(yè)內(nèi)部可能需要對特定的網(wǎng)段開放NAT地址轉(zhuǎn)換,例如我們只允許公司市場部網(wǎng)段的主機(jī)可以訪問外網(wǎng),但是開發(fā)部和財(cái)務(wù)部的網(wǎng)段主機(jī)不能訪問外網(wǎng),此時我們就可以在vms002主機(jī)上使用富規(guī)則(Rich Rules)的偽裝(masquerade)功能,同時我們需要保證在第三欄偽裝(masquerading)沒有勾選。我們的server主機(jī)的IP是10.0.0.2,此時我們使用server主機(jī)ping向vms001主機(jī)的時候是無法ping通的(圖4-24),接著我們修改server主機(jī)的IP地址和默認(rèn)網(wǎng)關(guān),使其符合富規(guī)則中主機(jī)IP的要求,默認(rèn)的網(wǎng)關(guān)指向vms002主機(jī)eno33554968網(wǎng)卡(10.0.0.1),此時我們便可以正常的使用NAT實(shí)現(xiàn)內(nèi)網(wǎng)IP訪問外部主機(jī)的需求了(圖4-25)。
# ifconfig ens32 10.0.0.3 netmask 255.255.255.0;route add default gw 10.0.0.1---修改IP地址為10.0.0.3,修改掩碼為255.255.255.0,修改默認(rèn)網(wǎng)關(guān)為10.0.0.1
# route delete default gw 10.0.0.1---刪除默認(rèn)的網(wǎng)關(guān)
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀
【我的Linux,我做主!】Linux防火墻核心概念全面解讀

—————— 本文至此結(jié)束,感謝閱讀 ——————

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)頁名稱:【我的Linux,我做主!】Linux防火墻核心概念全面解讀-創(chuàng)新互聯(lián)
文章出自:http://muchs.cn/article20/dpppjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站網(wǎng)站內(nèi)鏈、網(wǎng)站制作自適應(yīng)網(wǎng)站、微信公眾號、App開發(fā)

廣告

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

搜索引擎優(yōu)化