centos7默認使用firewall作爲防火牆,其使用方式已經變化。
基於iptables的防火牆被默認不啓用,但仍然可以繼續使用。
管理工具是firewall-cmd,centos7內核版本是3.10,此版本的內核裏防火牆過濾機制是firewalld,使用firewall來管理netfiler,不過底層調用的命令仍然是iptables等。因爲這幾種daemon是衝突的,所以建議禁用其他幾種服務
1.firewall區域
丟棄區域,如果使用丟棄區域,任何進入的數據包將被丟棄。
阻塞區域,如果使用阻塞區域會拒絕進入的網絡連接。
公共區域,只接受那些被選中的連接。
外部區域,這個區域相當於路由器的啓用僞裝(masqierading)選項。
隔離區域,如果想要只允許給部分服務器能被外部訪問,可以在DMZ區域中定義。
工作區域,在這個區域,我們只能定義內部網絡。
家庭區域,這個區域專門用於家庭環境。
內部區域,這個區域和工作區域類似。
信任區域,信任區域允許所有網絡通信通過。
2.Firewall的原則
一個源只能屬於一個zone,不能同時使用多個zone
3.一個接口只能屬於一個zone,不能同時屬於多個zone
如果以上原則都不滿足,那麼缺省的zone將被應用
一般應用
4.獲取防火牆的狀態
Firewall-cmd --state
5.不改變條件重新加載防火牆
Firewall-cmd --reload
如果使用--complete-reload 狀態信息將會丟失。
6.獲取所有支持的服務
Firewall-cmd --get-services
想要列出默認有效的服務,也可以進入下面的目錄也能夠取得
cd /usr/lib/firewall/services/
如果自己想添加一個服務,首先任選一個服務複製一下。把複製過來的文件重命名。 修改端口號和頭部,描述,協議。
7.獲取所有支持的icmp協議
Firewall-cmd --get-icmptypes
8.列出全部啓用的區域的特性
firewall-cmd --list-all-zones
9.查看默認區域
firewall-cmd --get-default-zone
10.設置默認區域
firewall-cmd --set-default-zone=區域名
public是默認區域
在文件/etc/firewall/firewalld.conf中定義成defaultzone=public
11.獲取活動的區域
firewall-cmd --get-active-zones
12.根據接口獲取區域即需要查看那個區域和這個接口綁定即查看某個接口是屬於那個zone
Firewall-cmd --get-zone-of-interface=接口名
13.將接口增加到區域
Firewall-cmd {-zone區域} --add-interface=接口名
14.修改接口所屬區域
Firewall-cmd {-zone區域} --change-interface=接口名
15.從區域中刪除一個接口
Firewall-cmd {-zone區域} --remove-interface=接口名
16.查詢區域中是否包含某接口
Firewall-cmd {-zone區域} --query-interface=接口名
17.列舉區域中啓用的服務
Firewall-cmd {-zone區域} --list-services
如果區域被省略了,將使用默認區域
18.啓用應急模式阻斷所有網絡連接,以防出現緊急狀況
Firewall-cmd --panic-on
禁用應急模式
Firewall-cmd --panic-off
查詢應急模式
Firewall-cmd --query-panic
2.處理永久區域
1.獲取永久選項所支持的服務
Firewall-cmd --permanent --get-services
2.獲取永久選項所支持的icmp類型列表
Firewall-cmd --permanent --get-icmptypes
3.獲取支持的永久區域
Firewall-cmd --permanent --get-zones
4.查看富規則
Firewall-cmd --list-rich-rules
netfilter防火牆總是容易受到規則順序的影響,因爲一條規則在鏈中沒有固定的位置