91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

【我的Linux,我做主!】Linux防火墻核心概念全面解讀

發布時間:2020-07-08 11:10:36 來源:網絡 閱讀:314 作者:Tom王 欄目:系統運維

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


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

—————— 本文至此結束,感謝閱讀 ——————

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

建始县| 遵化市| 儋州市| 大庆市| 霞浦县| 河东区| 工布江达县| 宝坻区| 临澧县| 大港区| 偃师市| 西乌珠穆沁旗| 上栗县| 沾益县| 栾川县| 桂平市| 都匀市| 双流县| 甘德县| 滦南县| 民勤县| 武隆县| 湖口县| 南陵县| 寻乌县| 夹江县| 遂昌县| 罗平县| 正蓝旗| 新化县| 台南县| 平邑县| 文水县| 怀集县| 潞城市| 肇州县| 虎林市| 凌海市| 南宁市| 布拖县| 合作市|