您的位置:首頁>正文

CentOS 7 下 Firewalld 折騰記

用女票的學生帳號申請了阿裡雲的ECS機器, 作業系統是CentOS 7 。 之前有過CentOS 6 的操作經驗, 從6到7基本上也沒大變化。 感覺變化最大的就是防火牆的設置了:從iptables變成Firewalld。

Firewalld管理埠明顯變得比之前複雜許多, 命令也異常繁瑣, 但是如果從設定檔的角度去理解Firewalld的基本原理, 記不住繁瑣的命令也能玩轉Firewalld。

基本的三個命令是還是要掌握的, 即開啟、關閉、查詢狀態:

systemctl start/stop/status firewalld

Firewalld啟動的時候會載入一系列設定檔, 從設定檔中讀取需要被開放的服務, 一個服務會對應一個埠。 預設情況下只有服務ssh的埠22是被開放的。

那麼如何開放http服務使用的80埠呢?下面就來瞭解Firewalld的設定檔的具體資訊:

/usr/lib/firewalld是Firewalld的預設設定檔的存儲路徑, 這裡的檔不應該被修改, 因為Firewalld升級後會覆蓋掉所有的更改。 其中有如下目錄icmptypes ipsets services xmlschema zones

services目錄下存放的是一些系統預定義好的服務, 檔案名就是服務名, 比如ssh.xml、http.xml. 以http服務為例, XML中的內容就定義了埠為80:

zones目錄下會存放系統預定義的zone(類似區域的概念), 比如有home.xml、public.xml等, 同樣是檔案名代表zone名。

/etc/firewalld是可以用於自訂的設定檔存儲位址, 這裡的配置會優先被使用 , 和上面的目錄基本相同, 其中services目錄可以存放使用者自訂的服務, zones目錄可以存放自訂的區域。

在目錄/etc/firewalld下還有一個主要的設定檔firewalld.conf, 這個是Firewalld載入配置的入口, firewalld.conf定義的default zone如果是public的話, 那麼設置的服務就在/etc/firewalld/zones/public.xml下:

可以看到ssh是被默認加入到public zone中了,

所以22埠默認就是被開放的, 現在只需要添加一句(因為http服務已經在系統預設配置/usr/lib/firewalld/services中指定過了), 然後重啟Firewalld就可以開放80埠了。

參考 : http://www.firewalld.org/documentation/configuration/directories.html

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示