RHEL7中防火牆firewalld的配置

轉自http://lduan.blog.51cto.com/5428084/1547139web


在RHEL7裏有幾種防火牆共存:firewalld、iptables、ebtables,默認使用firewalld來管理netfilter子系統,不過底層調用的命令仍然是iptables等。由於這幾個daemon是衝突的建議禁用其餘的幾種服務: 瀏覽器

    systemctl mask iptables(ip6tables,ebtables)

bubuko.com,布布扣 

    在firewalld中使用了區域(zone)的概念,默認已經定義了幾個zone:安全

bubuko.com,布布扣 

    zone的解釋:網絡

bubuko.com,布布扣 

    數據包要進入到內核必需要經過這些zone中的一個,而不一樣的zone裏定義的規則不同(即信任度不同,過濾的強度也不同)。能夠根據網卡所鏈接的網絡的安全性來判斷,這張網卡的流量到底使用哪一個zone,好比上圖來自eth0的流量所有使用zone1的過濾規則,eth1的流量使用zone3。一張網卡同時只能綁定到一個zone。你們就能夠把這些zone想象成進入火車站(地鐵)的安檢,不一樣的入口檢測的嚴格度不同。tcp

    默認的幾個zone(由firewalld 提供的區域按照從不信任到信任的順序排序):ide

dropspa

    任何流入網絡的包都被丟棄,不做出任何響應,只容許流出的網絡鏈接。即便開放了某些服務(好比http),這些服務的數據也是不容許經過的。3d

blockorm

    任何進入的網絡鏈接都被拒絕,並返回 IPv4 的 icmp-host-prohibited 報文或者 IPv6 的 icmp6-adm-prohibited 報文。只容許由該系統初始化的網絡鏈接。blog

public(默認)

    用以能夠公開的部分。你認爲網絡中其餘的計算機不可信而且可能傷害你的計算機,只容許選中的服務經過。

external

    用在路由器等啓用假裝的外部網絡。你認爲網絡中其餘的計算機不可信而且可能傷害你的計算機,只容許選中的服務經過。

dmz

    用以容許隔離區(dmz)中的電腦有限地被外界網絡訪問,只容許選中的服務經過。

work

    用在工做網絡。你信任網絡中的大多數計算機不會影響你的計算機,只容許選中的服務經過。

home

    用在家庭網絡。你信任網絡中的大多數計算機不會影響你的計算機,只容許選中的服務經過。

internal

    用在內部網絡。你信任網絡中的大多數計算機不會影響你的計算機,只容許選中的服務經過。

trusted

容許全部網絡鏈接,即便沒有開聽任何服務,那麼使用此zone的流量照樣經過(一路綠燈)。

查看當前的默認的區域:

bubuko.com,布布扣 

設置默認的區域:

bubuko.com,布布扣 

 

給某個區域開啓某個服務

bubuko.com,布布扣 

 

 

關閉某個服務:

bubuko.com,布布扣 

若是沒有指定zone的話,則是在默認的zone上操做。

 

查看某個zone上是否容許某個服務:

bubuko.com,布布扣 

在firewalld裏添加一個端口,這樣就能夠訪問了:

bubuko.com,布布扣 

 

查看開啓了哪些端口:

bubuko.com,布布扣 

 

查看某個接口是屬於哪一個zone的:

bubuko.com,布布扣 

把接口加入到某個zone:

bubuko.com,布布扣 

 

查看某個zone裏開啓了哪些服務、端口、接口:

bubuko.com,布布扣 

如今默認的zone是trusted,雖然如今已經不容許http訪問了,可是還能訪問,爲何?

記住:由於trusted是最被信任的,即便沒有設置任何的服務,那麼也是被容許的,由於trusted是容許全部鏈接的。

有多個不一樣的zone,每一個zone定義的規則是不同的,由於全部的數據都是從網卡進入,到底使用哪一個zone的規則,關鍵就在於這個網卡是在哪一個區域的,好比下面的例子:

bubuko.com,布布扣 

如今eth0是在public這個zone裏的,此時public是容許http的:

bubuko.com,布布扣 

可是默認的zone是external,且不容許http訪問:

bubuko.com,布布扣 

可是瀏覽器卻能訪問,證實了上面的說法。

若是改變eth0所在的zone,好比改到external:

bubuko.com,布布扣 

則訪問不了:

bubuko.com,布布扣 

下面驗證下源地址的意思:

網卡的source地址,也能決定能夠使用哪一個zone,新添加了一張網卡,此網卡開始默認不屬於任何的zone:

bubuko.com,布布扣 

此時經過訪問eth1來訪問web是訪問不了的:

bubuko.com,布布扣 

下面咱們給public設置source,來自源192.168.30.0/24網段的都走public區:

bubuko.com,布布扣 

bubuko.com,布布扣 

經過驗證,如今訪問是成功的。

若是在external裏面同時也加入192.168.30.0/24這個源呢?

bubuko.com,布布扣 

顯示爲衝突,即一個源只能屬於一個zone,不能同時屬於多個zone。

 

以上是對tcp協議作的實驗,下面對ICMP作一些演示:

首先獲取firewalld所支持的ICMP類型:

bubuko.com,布布扣 

記住:默認狀況下是容許全部類型的ICMP經過。

bubuko.com,布布扣 

下面阻斷public的request的包:

bubuko.com,布布扣 

這樣凡是進來的是echo-request類型的包都會被拒絕,由於public是和eth0綁定在一塊的,因此ping 192.168.2.130的時候是不通的:

 

bubuko.com,布布扣 

刪除此規則:

bubuko.com,布布扣 

-端口的轉發

bubuko.com,布布扣 

意思是凡是來從external進來的22端口的數據包所有轉發到192.168.30.254

bubuko.com,布布扣 

驗證:

bubuko.com,布布扣 

 

更詳細的寫法,能夠指定目標端口的:

bubuko.com,布布扣 

bubuko.com,布布扣 

查詢:

bubuko.com,布布扣 

刪除:

bubuko.com,布布扣

相關文章
相關標籤/搜索