1. 程式人生 > >【Linux】Rhel7firewalld防火牆規則

【Linux】Rhel7firewalld防火牆規則

在Redhat Enterprise Linux7中已經預設使用firewalld作為防火牆,其使用方式已經變化。基於iptables的防火牆被預設不啟動,但仍然可以繼續使用.RHRE7中有幾種防火牆共存:firewalld,iptables,ebtables等,預設使用firewalld作為防火牆,管理工具是firewall-cmd.RHEL7的核心版本是3.10,在此版本的核心裡防火牆的包過濾機制是firewalld,使用firewalld來管理netfilter,不過底層呼叫的命令仍然是iptables等。因為這幾種守護程序是衝突的,所以建議禁用其他幾種服務

RHEL7雖然有iptables但是不建議使用了,使用新的firewalld服務。

1)檢視firewalld軟體包是否安裝

2)Firewalld提供了支援網路/防火牆區域(區域)定義網路連結以及介面安全等級的防火牆管理工具。擁有執行時配置和永久配置選項。它也支援允許服務或者應用程式直接新增防火牆規則的介面。以前的system-config-firewall防火牆模型是靜態的,每次修改都要求防火牆完全重啟。這個過程包括核心netfilter防火牆模組的解除安裝和新配置所需模組的裝載等。相反,防火牆守護程序動態管理防火牆,不需要重啟整個防火牆便可應用更改。因而也就沒有必要過載所有核心防火牆模組了

3)網路區域定義了網路連線的可信等級。

丟棄區域(拖放區):如果使用丟棄區域,任何進入的資料包將被丟棄這個類似與我。
們之前使用的iptables -j下降使用丟棄規則意味著將不存在響應。
阻塞區域(塊區):阻塞區域會拒絕進入的網路連線,返回ICMP主機禁止,只
有伺服器已經建立的連線會被通過即只網求允許由該系統-初始化的網路連線。
公共區域(公共區):只接受那些被選中的連線,預設只允許SSH和DHCPv6的客戶端這。
個區是預設區
外部區域(外部區):這個區域相當於路由器的啟用偽裝(偽裝)只選項對話
有指定的連線會被接受,即SSH,而其它的連線將被丟棄或者不被接受。
隔離區域(DMZ區):如果想要只允許給部分服務能被外部訪問,可以在DMZ區域中定
。義它也擁有隻通過被選中連線的特性,即SSH。
工作區域(工作區):在這個區域,我們只能定義內部網路比 網路私有通訊才被允
許,只允許SSH,IPP客戶機和支援DHCPv6客戶端。
家庭區域(家庭地帶):這個區域專門用於家庭環境它同樣只允許被選中的連線,即SSH,
IPP客戶端,MDNS,桑巴客戶端和支援DHCPv6客戶端。
內部區域(內部區域):這個區域和工作區域(工作區)類似,通過只有被選中的連
接,和家區域一樣。
信任區域(可信區):信任區域允許所有網路通訊通過記住:因為可信最的英文信被
任的,即使沒有設定任何的服務,那麼也是被允許的,因為可信是允許所有連線的

1)獲取firewalld狀態

2)在不改變狀態條件下載入防火牆;

3)獲取所支援區域的列表

4)獲取所有支援的服務

5)列出預設有效的服務也可以進入下面的目錄檢視

cd / usr / lib / firewalld / services

6)想要建立屬於自己的服務,需要在下面的目錄自定義它。例如我想建立一個延間的服務埠號為1314。首先我們我們任選一個服務複製過來改名為yankai.xml

7)然後我們開啟建立的yankai.xml修改以下內容wq儲存退出

8)儲存退出後我們載入firewalld防火牆,檢視是否有延間的服務

1)獲取所有支援ICMP的型別

2)列出全部啟用的區域的特性(即查詢當前防火牆策略) 

3)輸出區域全部啟用的特性。如果省略區域,將顯示預設區域的資訊.shaceence-cmd [--zone =] --list-all 

4)檢視預設區域

5)設定預設區域firewall-cmd --set-default-zone =區域名例如我們把drop設定為預設區域

6)列舉區域中啟用的服務例如:檢視家區域啟用的服務

7)啟用應急模式,由於臨時問題,在這裡我就不給大家演示了。 

方法:開啟兩臺linux主機例如:192.168.1.100去ping192.168.1.110這時候是可以ping通的當你在192.168.1.110主機上輸入啟用應急模式firewall-cmd --panic-on 1.100的主機就會ping不通1.110因為啟用了應急模式。怎麼取消應急模式呢?firewall-cmd --panic-off

1)啟用區域中的一種服務即給某個區域開啟某個服務 這裡以httpd服務為例,在這裡我沒有關閉防火牆但是啟用了httpd服務在客戶機上訪問apache網頁是出不來的因為防火牆是執行狀態。

firewall-cmd [--zone=區域] --add-service=服務 [--timeout=秒數] 

2)我們把httpd服務新增到drop區域。新增成功後再次訪問apache測試頁

3)我們這時候可以看到apache測試頁已經訪問成功

4)禁用區域中的某種服務即關閉某個服務 firewall-cmd [--zone=區域] --remove-service=服務  例:我們禁用drop區域下的httpd服務

這時候再次訪問apache測試頁就會失敗。

5)啟用區域埠和協議組合 firewall-cmd [--zone=區域] --add-port=portid[-portid]/protocol [--timeout=seconds] 此操作將啟用埠和協議的組合。埠可以是一個單獨的埠或者是一個埠範圍 - 。 協議可以是 tcp 或 udp 這裡就以tomcat TCP/8080為例: 首先需要安裝tomcat這裡我就不說安裝步驟了,安裝成功後查詢8080埠是否起來

以埠的方式新增到區域之後,我們訪問tomcat測試頁。

6)禁用埠和協議組合 firewall-cmd [--zone=區域] --remove-port=portid[-portid]/protocol 

禁用之後我們在訪問tomcat頁面的時候就訪問不到了 這裡我就不在演示了同上面的httpd服務 只不過是用了埠的方式。

7)埠轉發。例如:

埠轉發。desktop訪問server的5423埠,將訪問server的80埠。 Server 上的操作:(192.168.106.129 是 desktop 的 IP 地址)

配置防火牆在公共區域開啟http協議,並儲存,以致重啟有效firewall-cmd --permanent --zone = public --add-service = http 

配置埠轉發,講httpd 80埠轉發1314

重新載入firewalld防火牆

配置完成後我們直接去用轉發的1314埠訪問的httpd

用1314埠訪問成功代埠轉發配置成功!希望對您有所幫助〜