Linux系統管理 –RHEL-7 防火牆篇

Linux系統管理 –RHEL-7 防火牆篇

 

 

Linux系統的防火牆功能是由內核實現的:

2.0 版內核中,包過濾機制是ipfw,管理工具是ipfwadm

2.2 版內核中,包過濾機制是ipchain,管理工具是ipchains

2.4 版及以後的內核中,包過濾機制是netfilter,管理工具是iptables

3.10版內核中,包過濾機制是firewalld,管理工具是firewall-cmd

 

大家應該都知道RHEL7內核的版本是3.10,在此版本的內核裏防火牆的包過濾機制是firewalld ,雖然說它的工具變了,但是‘firewall-cmd’ 命令其實是調用的iptables

[root@serverX ~]# for SERVICE in iptables ip6tables ebtables; do

>   systemctl mask${SERVICE}.service

> done

包過濾防火牆是工作在TCP/IP的網絡層

附件  TCP/IP


規則表

具有某一類相似用途的防火牆規則,按照不同處理時機區分到不同的規則鏈以後,被歸置到不同的“表”中規則表是規則鏈的集合

     默認的4個規則表

 raw表:確定是否對該數據包進行狀態跟蹤

mangle表:爲數據包設置標記

nat表:修改數據包中的源、目標IP地址或端口

 filter表:確定是否放行該數據包(過濾)

其中filter表、nat表是最常用的,每個表的功能不同,通過數據的匹配規則也不同,在今後使用中請確認後再去使用mangle表可以對數據包進行特殊標記,結合這些標記可以在filter表中對數據包進行有選擇性的處理(如“策略路由”,舉個例子,網關主機有兩條ADSL線路,分別使用網通、電信的接口,可以將訪問網通服務器的數據交給網通ADSL接口,而訪問電信服務器的數據交給電信ADSL接口)raw表是自1.2.9以後版本的iptables新增的表,主要用於決定數據包是否被狀態跟蹤機制處理,目前raw表中的應用尚不多見

 

 附件 規則表

規則鏈

包過濾防火牆的主要特點是過濾網絡層的IP數據包。實際上在應用iptables規則的時候會發現,有些規則應用是針對傳輸層、鏈路層的這些規則的實現是由一個叫“規則鏈”的規則的作用在於對數據包進行過濾或處理,根據處理時機的不同,各種規則被組織在不同的“鏈”中規則鏈是防火牆規則/策略的集合。這些規則鏈有五種默認的分別是:

INPUT                        處理入站數據包

OUTPUT                     處理出站數據包

FORWARD                處理轉發數據包

POSTROUTING :在進行路由選擇後處理數據包

PREROUTING   在進行路由選擇前處理數據包

在“主機防火牆中,主要針對服務器本機進出的數據實施控制,多以INPUTOUTPUT鏈的應用爲主在“網絡防火牆中,主要針對數據轉發實施控制,特別是防火牆主機作爲網關使用時的情況,因此多以FORWARDPREROUTINGPOSTROUTING鏈的應用爲主

   入站數據流向:來自外界的數據包到達防火牆後,首先被PREROUTING規則鏈處理(是否修改數據包地址等),之後會進行路由選擇(判斷該數據包應該發往何處),如果數據包的目標地址是防火牆本機(如Internet用戶訪問防火牆主機中Web服務的數據包),那麼內核將其傳遞給INPUT鏈進行處理(決定是否允許通過等),通過以後再交給系統上層的應用程序(如httpd服務器)進行響應

   轉發數據流向:來自外界的數據包到達防火牆後,首先被PREROUTING規則鏈處理,之後會進行路由選擇,如果數據包的目標地址是其他外部地址(如局域網用戶通過網關訪問QQ站點的數據包),則內核將其傳遞給FORWARD鏈進行處理(是否轉發或攔截),然後再交給POSTROUTING規則鏈(是否修改數據包的地址等)進行處理

   出站數據流向:防火牆本機向外部地址發送的數據包(如在防火牆主機中測試公網DNS服務時),首先被OUTPUT規則鏈處理,之後進行路由選擇,然傳遞給POSTTOUTING規則鏈(是否修改數據包的地址等)進行處理

 附件 規則鏈

防火牆區域

firewall區域許多預定義的區域運輸firewalld,每個都有自己的用途,每一個區域都和其他區域是有聯繫的,不指定區域時,默認區域爲public,默認的區域不是一個獨立的區域;相反,它指向一個在系統定義的其他區域,在RHEL7中常見的區域有

trusted:允許所有傳入的流量

 home    拒絕傳入流量,允許外出及服務sshmdnsipp-clientsamba-clientdhcpv6-client

internal:拒絕傳入流量,允許外出及服務sshmdnsipp-clientsamba-clientdhcpv6-client(同home

  work      拒絕傳入流量,允許外出及服務ssh ipp-client dhcpv6-client

  public   拒絕傳入流量,允許外出及服務sshdhcpv6-client,新添加的網絡接口缺省的默認區域。

  external:拒絕傳入流量,允許外出及服務sshmdnsipp-clientsamba-clientdhcpv6-client,允許IPV4的流量輸出

   dmz         拒絕傳入流量,允許外出及服務ssh

   block      拒絕流量進出

   drop       放棄所有的傳入流量,除非外出交通相關(甚至不響應ICMP協議錯誤)

如果傳入的數據包的源地址相匹配的一個區的規則設置,數據包將通過該區域路由如果一個數據包傳入接口與一個區域規則的設置匹配,該區域將被使用。

 

防火牆的配置

     RHEL7內提供了三種防火牆的管理方式:①命令模式下使用命令 firewall-cmd  ② 圖形界面下使用命令 firewall-config③修改配置文件在/etc/firewalld/,在這裏我們重點介紹第一種命令行模式。

firewall-cmd 不得不說RHEL7中的防火牆命令動不動就兩三行,而且還有好多我都沒見過的選項和參數,至於有哪些選項和參數呢,我列出來給大家看看

 

設置 wab服務的訪問權限

驗證firewall是否啓用

第一步Systemctl status firewalld.Service

 

wKioL1QFxWaQroquAAHYv0xtjYU292.jpg

第二步安裝 httpdmod_ssl 軟件包並開啓 httpd 服務以及自啓動

wKioL1QFxWfSj0dgAAD_m9-u-bU827.jpg

wKiom1QFxWWTffm3AADzxMovUrA562.jpg

第三步 創建wab服務的首頁文件

wKioL1QFxWqxfcPsAADb0ozFIEI442.jpg

第四步  默認配置 防火牆對 主機server1 允許所有流量通過DMZ區域

firewall-cmd –set-defaule-zone=dmz

wKioL1QFxWejJfMgAABdTE9U6ZM650.jpg

第五步配置防火牆對主機server1所在網

的流量通過 即允許172.25.1.0/24通過DMZ區域

firewall-cmd   --permanent  --zone=work   --add-source=172.25.1.0/24

wKioL1QFxWjBJ3OIAABT0Vyj2hw631.jpg

第六步配置區域work 允許訪問wab服務的流

量進出(https

firewall-cmd  --permanent --zone=work  --add-service=https

wKioL1QFxWmghGKZAABa6kv7GQ4186.jpg

第六步使防火牆的配置生效

firewall-cmd  --reload

wKiom1QFxWjzOC07AABK9WTl4zc618.jpg

第七步  檢測對server1 網段防火牆的配置

Firewall-cmd  --get-default-zone

Firewall-cmd  --get-active-z

ones

Firewall-cmd  --zone=work --list-all

wKiom1QFxWaD1z61AAGn9LESdjk414.jpg

第八步  切換到server1驗證網頁是否能訪問

Curl http//server0.example.com

wKiom1QFxWTh0DtEAACzyAseFm4289.jpg

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章