防火牆對服務器起到必定的保護做用,因此瞭解一些相關的操做是頗有必要的。html
在CentOS 7.x中,有了一種新的防火牆策略,FireWall , 還記得在6.x中用的仍是iptables。bash
這幾天一直在本身的服務器上瞎搞,因爲關於這個防火牆的命令尚未爛熟於心,每次都須要google一下,因此就本身動手整理了一下,方便從此的使用也同時增強記憶。服務器
在CentOS 7.x中,防火牆的基本命令是 firewall-cmdtcp
先經過man firewall-cmd
來簡單看看它的幫助文檔。ide
具體的使用方法能夠用 firewall-cmd -h
來進行查詢。post
要用防火牆,天然是須要知道防火牆有沒有啓動。google
能夠經過查詢防火牆的當前狀態來肯定服務器是否開啓了防火牆spa
firewall-cmd --state
若是終端輸出running就表示防火牆已經開啓了,反之就沒有。3d
也可使用下面的命令來查詢code
systemctl status firewalld
輸出的信息中,會告訴你是否處於活動狀態
當得知防火牆沒有被開啓時,就須要手動將其開啓。
systemctl start firewalld
執行上述命令後,是沒有任何輸出信息的。沒有提示信息對咱們來講就是個好消息,說明咱們的防火牆起來了。
這個時候在經過查詢防火牆狀態的命令就能看到它已經跑起來了。
許多狀況下是須要查看服務器是否開啓了端口的。好比我添加了一個站點,用的端口是8080,在服務器能正常訪問,可是外面卻訪問不了,這個時候的第一反應應該就是防火牆的8080端口尚未對外開放。
firewall-cmd --list-ports
執行上面的命令後,就能夠查看全部開放的端口了。
因爲Catcher還開放了除80之外的其餘端口,因此對其餘端口打了碼。
這一步的操做就比如在Windows上的防火牆中新建一個入站規則。
只添加一個單獨的端口(示例爲81)
firewall-cmd --zone=public --add-port=81/tcp --permanent
添加一組連續的端口(示例爲82到85)
firewall-cmd --zone=public --add-port=82-85/tcp --permanent
當添加成功以後,發現並無看到剛纔添加的端口。
此時咱們應該要從新啓動防火牆,讓其生效。
firewall-cmd --reload
執行這條命令後,會輸出success的字樣表示已經重啓成功了。
此時在去查看端口的狀況就能夠發現81端口已經成功添加進去了。
查詢指定的端口是否已經開放
firewall-cmd --zone=public --query-port=81/tcp
執行上面的命令後,若是指定的端口已經開放就會輸出yes,反之就輸出no
經過zones下面的xml文件來查看
在 /etc/firewall/zones
目錄下面有一個名爲public.xml
的文件。這裏存放着這個zone相關的信息,不僅是端口!
cat /etc/firewall/zones/public.xml
firewall-cmd --zone=public --remove-port=81/tcp --permanent
一樣的,關閉端口以後也是要重啓才能生效。
systemctl stop firewalld.service