如果曾經用過CentOS6或是更早之前的版本,應該會知道原本預設的防火牆是使用一個稱為iptables的程式,而在CentOS7中則變成了firewalld。當然你還是可以裝回iptables繼續使用,不過如果你是還沒學過使用iptables的人,先從firewalld下手應該會比較容易一點。
在以前,如果是使用iptables來管理防火牆的話,一般來說要編輯一份iptables的設定檔,所以的防火牆規則都記錄在裡面,每次編輯之後都要重新套用。當然也是有圖形化或是其他管理介面可以來協助我們,不過如果學會使用firewalld也只是幾行指令就可以解決的事。
在firewalld中有幾個區域的規則組,分別是:
首先先確認firewalld是否已經安裝並啟用,接下來可以用firewall-cmd來查詢或編輯防火牆設定。
[root@localhost cbb104026]# firewall-cmd --get-default-zone #顯示預設提供的區域(zone) block dmz drop external home internal public trusted work [root@localhost cbb104026]# firewall-cmd --zone=block --list-all #列出block區域內容 block target: %%REJECT%% icmp-block-inversion: no interfaces: sources: services: ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: [root@localhost cbb104026]# firewall-cmd --list-all-zones #列出所有區域內容 [root@localhost cbb104026]# firewall-cmd --get-active-zones #列出運作中的區域 public interfaces: enp0s3 [root@localhost cbb104026]# firewall-cmd --get-services #列出所有支援的服務 [root@localhost cbb104026]# firewall-cmd --zone=public --permanent --add-service=http #永久添加我們需要的服務規則 success [root@localhost cbb104026]# firewall-cmd --zone=public --permanent --list-services #列出public中永久允許的服務 [root@localhost cbb104026]# firewall-cmd --zone=public --permanent --add-port=2001/tcp #允許指定連接埠 [root@localhost cbb104026]# firewall-cmd --zone=public --permanent --add-port=2000-2100/udp #允許指定連接埠範圍 [root@localhost cbb104026]# firewall-cmd --zone=public --permanent --list-ports #列出public中永久允許連接埠
那麼要怎麼樣移除防火牆規則呢?很簡單,我們怎麼新增(add),就怎麼移除(remove)。
最後不要忘了重啟firewalld生效
[root@localhost cbb104026]# service firewalld restart詳細參考資料