firewalld的9個zone,firewalld關於zone的操做,firewalld關於service的操做

firewalld的9個zone

  • centOS7 開始,新的防火牆管理工具就是firewalld
  • 因此除了 iptables 也要熟悉 firewalld 的操做
  • 以前爲了開啓iptables把firewalld服務關閉了
  • 如今須要關閉iptables服務,把firewalld服務打開
  • 如圖,這是把iptables服務設置爲關閉狀態,而後把正在運行的服務關閉
  • 如圖,這是把firewalld服務設置爲開啓狀態,而後把firewalld服務打開

  • 開啓firewalld後,使用命令 iptables -nvL 查看信息
  • 能夠看到多了不少規則和其它信息
  • 這就是firewalld自帶的信息,以前iptables是沒有信息的,須要本身添加
  • firewalld 自帶9個zone,每一個zone是規則的集合
  • 如圖,firewall-cmd --get-zones 能夠查看全部的 zone 名稱
  • 能夠看到,總共有九個單詞,每一個單詞就是一個zone的名稱
  • 如圖,這條命令能夠查看默認的zone,默認的zone是public

firewalld關於zone的操做

  • 如圖,firewall-cmd --set-default-zone=work
  • 能夠設置默認的zone
  • 這裏把默認zone設置爲work,以前是public
  • 使用 firewall-cmd --get-default-zone 查看默認zone
  • 能夠看到,默認zone 已經變成 work了
  • 如圖,firewall-cmd --get-zone-of-interface=ens33
  • 能夠查看網卡 ens33 使用的 zone
  • 如圖,lo 網卡使用的 zone 是 no zone
  • 說明這塊網卡沒有使用任何zone
  • 假設新增了一塊網卡ens37,查看該網卡使用的zone是 no zone
  • 首先應該複製ens33的配置文件更名爲ens37
  • 而後把內部ip等信息配置好,而後重啓網絡服務
  • 如圖,重啓firewalld服務,再看下ens37使用的zone信息,是否仍是no zone
  • 若是仍是 no zone 狀態,能夠考慮手動指定一個zone給網卡
  • 如圖,手動設置網卡使用的 zone,這裏設置ens37的zone爲dmz
  • 而後查看一下ens37的zone,能夠看到,已經修改成 dmz
  • 如圖,這是修改網卡zone的命令,這是把ens37的zone修改成 block
  • 除了增長和修改zone以外,還能夠刪除zone
  • 如圖,查看默認zone 是 work
  • 而後 firewall-cmd --zone=block --remove-interface=ens37
  • 這是把 ens37 從block zone 裏面刪除了
  • 這樣ens37就再也不使用block zone了,而後查看ens37的zone
  • 能夠看到是work,刪除ens37的zone之後,會自動使用默認的work zone
  • 如圖,firewall-cmd --get-active-zones 能夠查看全部網卡所在的zone
  • 能夠看到,work zone 下面有 ens33,ens37兩塊網卡
  • public zone 下面有 lo 一塊網卡

firewalld關於service的操做

  • service 是 zone 下面的 子單元
  • 如圖,firewall-cmd --get-service 能夠查看系統全部的 service
  • 命令的 service 可使用 service 或者 services
  • 如圖,firewall-cmd --list-services/service 能夠查看默認zone有什麼services
  • 如圖,firewall-cmd --zone=public --list-service
  • 能夠指定查看 public zone 裏面的 services
  • 如圖,查看block和trusted,下面爲空,說明沒有service在這兩個zone裏面運行
  • 如圖,firewall-cmd --zone=public --add-service=http
  • 這條命令能夠在 public zone 添加 http service
  • 下面使用 --list-service 查看,能夠看到多了 http
  • 如圖,把 ftp service 也添加進入 public zone
  • list-service 查看能夠看到添加了 ftp
  • 可是這些改變都是發生在內存中的,若是想保存到配置文件裏面
  • 須要使用 --permanent 選項
  • firewall-cmd --zone=public --add-service=ftp --permanent
  • 能夠把新增的 ftp service 信息保存到配置文件
  • public zone 的配置文件就是 /etc/firewalld/zones/public.xml
  • 能夠看到,ftp的信息已經寫入 public.xml 文件裏面
  • 上圖是zone配置文件模板的目錄
  • /etc/firewalld/zones/ 目錄下面除了新保存的 public.xml 配置文件外
  • 修改前的 public.xml 會加上 old 後綴做爲一個備份
  • 每次修改保存後,上一個版本的public.xml就會加上old做爲備份
  • /etc/firewalld/services/ 目錄尚未建立文件,目前是空的
  • 無論是 /etc/firewalld/services/ 仍是 /etc/firewalld/zones/ 目錄
  • 建立新文件都會使用模板文件來建立
  • ls /usr/lib/firewalld/zones/ 能夠看到目錄下面有9個zone的模板文件
  • /etc/firewalld/zones/目錄建立文件就會從這9個模板文件裏面選擇
  • ls /usr/lib/firewalld/services/ 能夠看到下面有不少 xml後綴的模板文件
  • /etc/firewalld/services/ 目錄建立文件也會從這些模板裏面選擇

  • 如今作一個案例
  • 案例要求把 ftp服務的端口修改成 1121 ,並把ftp服務放到work zone 下放行
  • 首先,從模板目錄把 /usr/lib/firewalld/services/ftp.xml 文件模板複製到
  • /etc/firewalld/services/ 目錄,這是firewalld服務運行時加載配置文件的目錄
  • 而後 vi /etc/firewalld/services/ftp.xml 文件
  • 如圖,找到這一行把 port的值修改成 1121,port="1121",而後保存退出
  • 如圖,把 work zone 的模板文件 work.xml 複製到 zones 目錄裏面
  • 而後 vim work.xml 編輯該模板文件
  • 如圖,添加這一行 <service name="ftp" /> 而後保存退出
  • 編輯完配置文件,須要從新加載一下配置文件
  • 如圖, firewall-cmd --reload 就能夠從新加載配置文件
  • 而後再 --list-service 查看 work zone 的 services
  • 能夠看到,多了 ftp 服務
  • 因此,若是想放行某個service,在zone配置文件裏面加入這個service就能夠放行了
相關文章
相關標籤/搜索