全新概念firewalld防火牆

CentOS7 Firewalld防火牆

一、理論部分

    CentOS7最大的改變之一firewalld防火牆,FirewallD 提供了支持網絡/防火牆區域(zone)定義網絡鏈接以及接口安全等級的動態防火牆管理工具。它支持 IPv4, IPv6 防火牆設置以及以太網橋接,並且擁有運行時配置和永久配置選項。它也支持允許服務或者應用程序直接添加防火牆規則的接口。

    下面來看看firewalld的九大區域:

firewalld防火牆有九大區域

丟棄區域(Drop Zone:如果使用丟棄區域,任何進入的數據包將被丟棄。這個類似與我們之前使用iptables -j drop。使用丟棄規則意味着將不存在響應。

阻塞區域(Block Zone:阻塞區域會拒絕進入的網絡連接,返回icmp-host-prohibited,只有服務器已經建立的連接會被通過即只允許由該系統初始化的網絡連接。

公共區域(Public Zone:只接受那些被選中的連接,默認只允許 ssh dhcpv6-client。這個 zone 是缺省 zone

外部區域(External Zone:這個區域相當於路由器的啓用僞裝(masquerading)選項。只有指定的連接會被接受,即ssh,而其它的連接將被丟棄或者不被接受。

隔離區域(DMZ Zone:如果想要只允許給部分服務能被外部訪問,可以在DMZ區域中定義。它也擁有隻通過被選中連接的特性,即ssh

工作區域(Work Zone:在這個區域,我們只能定義內部網絡。比如私有網絡通信才被允許,只允許sshipp-client dhcpv6-client

家庭區域(Home Zone:這個區域專門用於家庭環境。它同樣只允許被選中的連接,即sshipp-clientmdnssamba-client dhcpv6-client

內部區域(Internal Zone:這個區域和工作區域(WorkZone)類似,只有通過被選中的連接,和home區域一樣。

信任區域(Trusted Zone:信任區域允許所有網絡通信通過。

Firewalld的基本操作:

1獲取firewalld狀態

wKiom1hzCUTRnYRBAAAONUotLaI164.gif

2在不改變狀態的條件下重新加載防火牆

wKioL1hzCUTiFDJNAAAOMj_Vte4322.gif

如果使用--complete-reload ,狀態信息將會丟失。

3獲取支持的區域列表

wKiom1hzCUXy1gggAAAUMtgs83g229.gif

4獲取所有支持的服務

wKioL1hzCUXhiLcaAABp2IWhxxY481.gif

想要列出默認有效的服務,也可以進入下面的目錄也能夠取得。

cd /usr/lib/firewalld/services/

wKioL1hzCUWiN6jqAABfZIJPn-w315.gif

自己創建服務,任選一個服務複製一份,服務名叫rhel 端口號是1937

wKiom1hzCUazrDrIAAAuumXSPDw473.gif

wKioL1hzCUbjhaIhAAAh4LJvoqA885.gif

vim rhel.xml

 修改文件內容

wKiom1hzCUaRaXoHAAAjEj11YBY910.gif

prot=1937 第三行改成rhel. [firewall-cmd  --reload]

確認服務是否啓動:

firewall-cmd --get-services

wKioL1hzCUbjNxx9AAAwQP29wgY205.gif

5、獲取所有支持的ICMP類型

wKiom1hzCUfDX9SRAAAczpP6PTs035.gif

二、操作部分

實驗拓撲:

wKiom1hzC1bC3jaoAAA9ly6bLHA386.jpg

實驗要求:

一、web主機

         1、通過8000端口提供www服務,22端口提供ssh服務

         2、其他主機通過80端口訪問web服務

         3、允許ssh遠程管理

         4、禁止ping請求

二、gateway主機   開啓路由轉發

         1、通過地址僞裝實現內網訪問外網

         2、外網主機可以訪問內網web(通過80端口訪問)和ssh(通過222端口訪問)

實驗步驟:

1、配置Web服務器IP地址並安裝httpd服務

yum -y install httpd

2、關閉selinux

       永久關閉:編輯

vim  /etc/selinux/config

將文件中的SELINUX=""  disabled ,然後重啓。

wKioL1hzC1bjp8tAAABKq16h364936.jpg

如果不想重啓系統,使用命令setenforce 0注:setenforce 1 設置SELinux 成爲enforcing模式。

       臨時關閉:輸入“setenforce  0 設置SELinux 成爲permissive模式

3、修改httpd端口爲8000

修改httpd配置文件:

# vim /etc/httpd/conf/httpd.conf

wKiom1hzC1bwvS_7AAATWlivB9Q115.jpg

Listen的值改爲8000後保存退出

重啓httpd服務:

systemctl restart httpd

wKiom1hzC1aApe4nAAA9FfGYy2Q828.jpg

驗證效果如下:

wKioL1hzC1eRrVhOAABSVUIxQr8919.jpg

5、配置防火牆支持shh訪問

wKioL1hzC1iQfjDvAAAtC9n5l3M510.jpg

firewall防火牆默認允許ssh端口訪問,如需設置請輸入一下命令:

firewall-cmd [--zone= 區域] --add-service=ssh

6、禁止ping請求

wKiom1hzC1jxfKW7AAA5iU0_Bv4247.jpg

7、配置gateway主機實現通過地址僞裝實現內網訪問外網

         開啓路由轉發功能:

 vim /etc/sysctl.conf

wKiom1hzC1ix6Xo-AAAmaIuyvH8413.jpg

 然後將兩個網卡分別加入相應的區域

wKioL1hzC1nzrdvgAAA_rB4X_Gc815.jpg

externet外部區域設置地址僞裝

wKioL1hzC1njfFmvAAAfsw_91Ok425.jpg

在這裏默認就是開啓狀態,如需開啓請輸入以下命令:

 firewall-cmd --zone=external --add-masquerade

8、實現外網主機可以訪問內網web通過80端口訪問和通過222端口訪問ssh服務

wKiom1hzC1qDhLfwAABYJDIEnzM132.jpg

實驗效果1

wKiom1hzC1qDHbRcAAB1yuP0U_8471.jpg

實驗效果2

wKioL1hzC1vRYIFjAAAhWzpdfMo352.jpgwKiom1hzC1uAde5nAAAcjDrhj5Y933.jpg



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