firewalld是centos7開始提供的管理防火牆工具,提供了一個動態管理的防火牆,固然低層仍然調用的是 netfilter 。php
1、區域(zone)
firewalld將網卡對應到不一樣的區域(zone),zone默認共有9個,block,dmz,drop,external,home,internal,public,trusted,work。centos
2、服務(services)
/usr/lib/firewalld/services目錄中,保存了另外一類配置文件,每一個文件對應一項具體的網絡服務,如 ssh 服務。
對應的配置文件中記錄了各項服務所使用的 tcp/udp 端口,最新的 firewalld 中默認已經定義了 70 多種服務供咱們使用。網絡
修改服務的配置只需將/usr/lib/firewalld/services中的配置文件複製到/etc/firewalld/services中修改便可。ssh
3、firewalld經常使用命令tcp
安裝工具
yum install firewalld
啓動centos7
systemctl start firewalld
中止xml
systemctl stop firewalld
查看版本blog
firewall-cmd --version
查看狀態接口
firewall-cmd --state
從新載入
firewall-cmd --reload
查看firewalld支持的service
firewall-cmd --get-services
查看當前zone加載的service
firewall-cmd --list-services
查看區域信息
firewall-cmd --get-active-zone
查看活動的區域
firewall-cmd --get-active-zones
查看指定接口所屬區域
firewall-cmd --get-zone-of-interface=ens33
查看默認區域
firewall-cmd --get-default-zone
設置默認區域
firewall-cmd --set-default-zone public
獲取全部的區域
firewall-cmd --get-zones
拒絕全部包
firewall-cmd --panic-on
取消拒絕狀態
firewall-cmd --panic-off
查看是否拒絕
firewall-cmd --query-panic
將接口添加到區域
firewall-cmd --zone=public --add-interface=eth0
將接口從區域中刪除
firewall-cmd --zone=public --remove-interface=eth0
修改接口所屬區域
firewall-cmd --zone=dmz --change-interface=eth0
查詢區域中是否包含某接口
firewall-cmd --zone=public --query-interface=eth0
4、打開端口 (最經常使用)
查看區域打開的全部端口
firewall-cmd --zone=public --list-ports
加入一個端口到區域
firewall-cmd --zone=public --add-port=8080/tcp
從區域中刪除一個端口
firewall-cmd --zone=public --remove-port=8080/tcp
永久生效加上 --permanent 而後 reload 防火牆
注意,若是加上 --permanent 參數後,會把該配置寫入到指定的區域配置文件中,好比:/etc/firewalld/zones/public.xml
5、如何打開一個服務
打開一個服務,相似端口可視化,服務須要在配置文件中添加,/etc/firewalld/services目錄下。
查詢區域中啓用的服務
firewall-cmd --zone=public --list-services
將ssh服務添加到public區域
firewall-cmd --zone=public --add-service=ssh
移除服務
firewall-cmd --zone=public --remove-service=ssh
6、如何設置端口轉發
要使用端口轉發,需開啓防火牆假裝
firewall-cmd --add-masquerade --permanent
如:咱們想把訪問本機192.168.1.222的3306端口轉發到192.168.1.111主機的3306端口上
一、先把本機的3306端口放開
firewall-cmd --permanent --zone=public --add-port=3306/tcp
二、把訪問本地3306端口的請求轉發到192.168.1.111主機的3306上
firewall-cmd --permanent --zone=public --add-forward-port=port=3306:proto=tcp:toaddr=192.168.1.111:toport=3306
這樣當咱們訪問222主機的3306端口時,實際訪問的是111主機的3306端口。