天天看點

Linux的防火牆firewalld

一.firewalld

動态防火牆背景程式提供了一個動态管理的防火牆,用以支援網絡“zone”,以配置設定對一個網絡及其相關連結和界面一定程度上的信任。它具備對IPV4和

IPV6防火牆設定的支援。它支援以太網橋,并有分離運作時間和永久性配置選擇。它還具備一個通向服務或者應用程式以直接增加防火牆規則的接口。

系統提供了圖像化的配置工具firewall-config、system-config-firewall,提供指令行用戶端firewall-

cmd,用于配置firewalld永久性運作時間的改變:它依次用iptables工具與執行資料包篩選的核心中的Netfilter通信。

firewalld和iptables service之間最本質的不同是:

        1)iptables service在/etc/sysconfig/iptables中存儲配置,而firewalld将配置存儲在/usr/lib/firewalld/和 /etc/firewalld/ 中的各種XML檔案裡。

        2)使用iptables service每一個單獨更改意味着清楚所有舊的規則和從

/etc/sysconfig/iptables 裡讀取所有新的規則,然而使用firewalld卻不會建立任何新的規則;僅僅運作規則中的不同之處。此,firewalld可以在運作時間内,改變設定而不丢失現行連接配接。

二.配置參數

1.firewalld的網絡“zone”

Linux的防火牆firewalld

firewall-cmd --get-zones                                   檢視可用區域

firewall-cmd --state                                           檢視firewalld的狀态

firewall-cmd --get-default-zone                       檢視目前預設活動的區域

firewall-cmd --get-default-zone=trusted         修改預設區域為trusted,可以接受任何連接配接

Linux的防火牆firewalld
Linux的防火牆firewalld

2.firewall-cmd --get-default-zone=trusted         修改預設區域為trusted,可以接受任何連接配接

Linux的防火牆firewalld
Linux的防火牆firewalld

4.firewall-cmd --list-all                      檢視防火牆政策

   firewall-cmd --add-service=http   防火牆添加通過http服務

   firewall-cmd --reload                      重新加載

Linux的防火牆firewalld

5.使用配置檔案添加防火牆通過服務

編輯/etc/firewalld/zones/public.xml

Linux的防火牆firewalld
Linux的防火牆firewalld

6.設定防火牆通過8080端口

測試前修改http預設通路端口,無法浏覽

Linux的防火牆firewalld
Linux的防火牆firewalld

添加8080端口後可以通路

Linux的防火牆firewalld

7.允許172.25.254.228主機通路任何連接配接,将172.25.254.228添加到trusted域中

Linux的防火牆firewalld

8.删除添加的服務

Linux的防火牆firewalld

三.Direct Rules

        通過firewall-cmd工具,可以使用

 --direct選項在運作時間裡增加或者移除鍊。如果不熟悉iptables,使用直接接口非常危險,因為泥坑無意間導緻防火牆被入侵。直接端口模式,适用于服務或者程式,以便在運作時間内增加特定的防火牆規則。直接端口模式添加的規則優先應用。

1.firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 ! -s 172.25.254.228

-p tcp --dport 22 -j ACCEPT    

除了228主機22端口不能通路,其他主機22端口都可通路

Linux的防火牆firewalld

測試228主機,顯示無法通路,别的主機可以

Linux的防火牆firewalld
Linux的防火牆firewalld

2.firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 1 -s 172.25.254.228

-p tcp --dport 80 -j REJECT   

除了228主機80端口不能通路,其他主機80端口都可通路

Linux的防火牆firewalld
Linux的防火牆firewalld

3.删除第二條政策

Linux的防火牆firewalld

四.不同網卡接口的通路設定

1.eth0和eth1都屬于public域

Linux的防火牆firewalld

2.将eth1網口從public域調整到trusted域中

Linux的防火牆firewalld
Linux的防火牆firewalld

3.與eth0連接配接的網段無法通路服務,因為有public域的限制

Linux的防火牆firewalld

4.與eth1連接配接的網段可以通路服務,因為eth1在trusted域

Linux的防火牆firewalld

五.Rich Rules

        通過“rich language”文法,可以用比直接接口方式更易了解的方法建立複雜防火牆規則。此外,還能永久保留設定。這種語言使用關鍵詞值,是iptables工具的抽象表示,這種語言可以用來配置分區,也仍然支援現行的配置方式。

環境配置

服務端兩塊網卡   eth0 172.25.254.128

                               eth1 172.25.0.128

用戶端IP 172.25.0.228

真機         172.25.254.28

服務端firewall-cmd --add-masqueeade                        開啟位址僞裝

1.端口轉換 真機到用戶端

将從172.25.254.28的22端口 僞裝為172.25.0.228的22端口

Linux的防火牆firewalld

測試,從真機進入到服務端128,顯示的網卡為172.25.0.228

Linux的防火牆firewalld

2.位址僞裝   客戶機到真機

将從客戶傳過來的資料僞裝為172.25.254.128端口的源資料

Linux的防火牆firewalld

用戶端登陸真機,顯示域名為www.westos.com服務端128主機,僞裝成功

Linux的防火牆firewalld

六.允許非系統端口的服務通過防火牆(httpd服務修改端口為例)

1.防火牆通過http

Linux的防火牆firewalld

2.修改http的端口為6666

Linux的防火牆firewalld

3.添加系統http預設端口

由于修改後無法重新開機服務

原因是系統預設允許的http端口沒有6666

添加6666端口到http的預設端口清單中

重新開機服務成功

Linux的防火牆firewalld

4.通路http6666端口成功

Linux的防火牆firewalld

繼續閱讀