CentOS 7 firewalld 配置相關教程

2021-10-23 21:05:14 字數 4320 閱讀 2777

在centos 7預設是使用firewalld為防火牆。不過centos 7裡有幾種防火牆共存:firewalld、iptables、ebtables。雖然centos 7預設是使用firewalld來管理netfilter子系統,不過底層呼叫的命令仍然是iptables等。firewalld跟iptables比起來,不好的地方是每個服務都需要去設定才能放行,因為預設是拒絕。而iptables裡預設是每個服務是允許,需要拒絕的才去限制。

firewalld跟iptables比起來至少有兩大好處:

注:firewalld自身並不具備防火牆的功能,而是和iptables一樣需要通過核心的netfilter來實現,

也就是說firewalld和 iptables一樣,他們的作用都是用於維護規則,而真正使用規則幹活的是核心的netfilter,只不過firewalld和iptables的結構以及使用方法不一樣罷了。

區域zone 預設共有9個:

block dmz drop external home internal public trusted work
不同的區域之間的差異是其對待資料報的預設行為不同,根據區域名字我們可以很直觀的知道該區域的特徵,在centos7系統中,預設區域被設定為public.

在最新版本的fedora(fedora21)當中隨著 server 版和 workstation 版的分化則新增了兩個不同的自定義 zone fedoraserver 和 fedoraworkstation 分別對應兩個版本。

通過將網路劃分成不同的區域,制定出不同區域之間的訪問控制策略來控制不同程式區域間傳送的資料流。

例如,網際網路是不可信任的區域,而內部網路是高度信任的區域。網路安全模型可以在安裝,初次啟動和首次建立網路連線時選擇初始化。

該模型描述了主機所連線的整個網路環境的可信級別,並定義了新連線的處理方式。有如下幾種不同的初始化區域:

注:firewalld的預設區域是public。

他們都儲存在「/usr/lib/firewalld/zones/」目錄下:

預設情況下,在/etc/firewalld/zones下面只有乙個public.xml。如果給另外乙個zone做一些改動,並永久儲存,那麼會自動生成對應的配置檔案。比如給work zone增加乙個埠:

firewall-cmd --permanent --zone=work --add-port=1000/tcp
此時就會生成乙個work.xml的配置檔案

[root@localhost ~]# cat /etc/firewalld/zones/xx.xml
注意:(1)xx為2.3節中具體的配置檔名;(2)防火牆配置檔案也可以手動修改,修改後記得reload防火牆:firewall-cmd --reload

firewalld的配置方法主要有三種:firewall-config、firewall-cmd和直接編輯xml檔案,其中 firewall-config是圖形化工具,firewall-cmd是命令列工具。

而對於linux來說大家應該更習慣使用命令列方式的操作,所以 firewall-config我們就不給大家介紹了。firewalld預設配置檔案有如下兩個:

在 /usr/lib/firewalld/services/ 目錄中,還儲存了另外一類配置檔案,每個檔案對應一項具體的網路服務,如 ssh 服務等。與之對應的配置檔案中記錄了各項服務所使用的 tcp/udp 埠,在最新版本的 firewalld 中預設已經定義了 70+ 種服務供我們使用。當預設提供的服務不夠用或者需要自定義某項服務的埠時,我們需要將 service 配置檔案放置在 /etc/firewalld/services/ 目錄中。而使用service 配置的好處顯而易見:

假如你伺服器的ftp不使用預設埠,預設ftp的埠21改為1121,但想通過服務的方式操作防火牆。

**如下:

複製模版到/etc,以便修改和呼叫

[root@localhost~]# cp /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services/
修改模版配置/etc/firewalld/services/ftp.xml把21改為1121

接下來修改配置/etc/firewalld/zones/public.xml,由於public為預設zone,所以要編輯這個,增加一行,以下內容

firewall-cmd --reload
yum install firewalld firewall-config

systemctl start firewalld

systemctl enable firewalld

systemctl status firewalld

firewall-cmd --state

systemctl stop firewalld

systemctl disable firewalld

yum install iptables-services

systemctl start iptables

systemctl enable iptables

firewall-cmd --version

firewall-cmd --help

firewall-cmd --state

firewall-cmd --get-active-zones

firewall-cmd --get-zone-of-inte***ce=xx

firewall-cmd --panic-on

firewall-cmd --panic-off

firewall-cmd --query-panic

systemctl is-enabled firewalld

firewall-cmd --reload

firewall-cmd --complete-reload

注意:

(1)通常在防火牆出現嚴重問題時,這個命令才會被使用。比如,防火牆規則是正確的,但卻出現狀態資訊問題和無法建立連線。

(2)firewall-cmd --reload與firewall-cmd --complete-reload兩者的區別就是:第乙個無需斷開連線,就是firewalld特性之一動態新增規則,第二個需要斷開連線,類似重啟服務

firewall-cmd --get-default-zone

(將介面新增到xx區域,如果不指定區域,則新增到預設區域)

firewall-cmd --zone=xx --add-inte***ce=eth0

永久生效再加上--permanent 然後reload防火牆

firewall-cmd --set-default-zone=xx

firewall-cmd --zone=xx --list-ports

firewall-cmd --zone=xx --list-services

firewall-cmd --zone=xx --add-port=8080/tcp

若要永久生效方法加引數--permanent

開啟乙個服務,類似於將埠視覺化,服務需要在配置檔案中新增,/etc/firewalld 目錄下有services資料夾,檢視其它的xml檔案以及參考前面說方法

firewall-cmd --zone=work --add-service=smtp

firewall-cmd --zone=work --remove-service=smtp

firewall-cmd --get-zones

firewall-cmd --list-all-zones

firewall-cmd --zone=xx --list-all

firewall-cmd --get-active-zones

firewall-cmd --get-zone-of-inte***ce=xx

firewall-cmd --zone=yy --query-inte***ce=xx

firewall-cmd --zone=yy --remove-inte***ce=xx

firewall-cmd --zone=yy --change-inte***ce=xx 

可以通過兩種方式控制埠的開放:

雖然開放 http 服務就是開放了 80 埠,但是還是不能通過埠號來關閉,也就是說通過指定服務名開放的就要通過指定服務名關閉;

更多參考:

centos 7 firewall無法啟動

報錯資訊 root localhost bin systemctl status firewalld firewalld.service firewalld dynamic firewall daemon loaded loaded usr lib systemd system firewalld....

CentOS 7 firewall使用方法

1.在firewall規則中新增80埠 firewall cmd zone public add port 80 tcp permanent 2.獲取firewall狀態資訊 firewall cmd state firewall cmd reload 不改變狀態 firewall cmd comp...

centos7 firewall指定IP與埠訪問

1 啟動防火牆 systemctl start firewalld.service 2 指定ip與埠 firewall cmd permanent add rich rule rule family ipv4 source address 192.168.142.166 port protocol ...