自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux 下如何設(shè)置防火墻,你會(huì)嗎

系統(tǒng) Linux
在 Linux 中,防火墻是以一個(gè)守護(hù)進(jìn)程的方式存在,服務(wù)的名字是 firewalld,它能夠定義一組規(guī)則來(lái)控制外部傳入系統(tǒng)中的網(wǎng)絡(luò)流量,規(guī)則允許的流量才能進(jìn)入系統(tǒng),規(guī)則禁止的流量會(huì)被攔下。

防火墻,顧名思義,就是用一睹墻隔絕了外部的攻擊,讓墻里面的環(huán)境相對(duì)安全

在 Linux 中,防火墻是以一個(gè)守護(hù)進(jìn)程的方式存在,服務(wù)的名字是 firewalld,它能夠定義一組規(guī)則來(lái)控制外部傳入系統(tǒng)中的網(wǎng)絡(luò)流量,規(guī)則允許的流量才能進(jìn)入系統(tǒng),規(guī)則禁止的流量會(huì)被攔下

簡(jiǎn)介

firewalld 提供了一個(gè)動(dòng)態(tài)定制規(guī)則的方式,我們可以實(shí)時(shí) 創(chuàng)建、更改和刪除規(guī)則

firewalld 使用區(qū)域和服務(wù)的概念來(lái)簡(jiǎn)化流量管理。區(qū)域是預(yù)定義的規(guī)則集,網(wǎng)絡(luò)接口可以分配給區(qū)域。流量能否進(jìn)入主機(jī)取決于計(jì)算機(jī)連接的網(wǎng)絡(luò)以及為網(wǎng)絡(luò)設(shè)置的安全級(jí)別。所有預(yù)定義的規(guī)則,對(duì)各服務(wù)的傳入流量,都有一些必要的設(shè)置

服務(wù)是通過(guò)端口和外部應(yīng)用通訊的,而防火墻就是根據(jù)端口進(jìn)行流量過(guò)濾的,Linux 的防火墻默認(rèn)是關(guān)閉所有端口的,如果要允許服務(wù)和外部應(yīng)用進(jìn)行通訊,必須開(kāi)啟服務(wù)的端口,但是某些區(qū)域 ( 例如:trusted ),默認(rèn)是允許所有流量通過(guò)的

  • 區(qū)域

防火墻能夠根據(jù)用戶(hù)設(shè)置的信任級(jí)別把網(wǎng)絡(luò)劃分成許多的區(qū)域,一個(gè)網(wǎng)絡(luò)連接只能歸屬于一個(gè)區(qū)域,一個(gè)區(qū)域能容納很多的網(wǎng)絡(luò)連接

系統(tǒng)默認(rèn)的所有區(qū)域存儲(chǔ)在 /usr/lib/firewalld/zones 目錄中,它們可以應(yīng)用在網(wǎng)絡(luò)接口上 , 下面的截圖展示了各區(qū)域默認(rèn)配置

block : 對(duì)于外部主動(dòng)主動(dòng)發(fā)起的連接,主機(jī)會(huì)返回一個(gè) icmp 包來(lái)拒絕,但主機(jī)可以向外部主動(dòng)發(fā)起連接

dmz: 非軍事區(qū)域內(nèi)的計(jì)算機(jī)可以公開(kāi)訪(fǎng)問(wèn),但是對(duì)于內(nèi)部網(wǎng)絡(luò),只接受指定的連接

drop:對(duì)于傳入的網(wǎng)絡(luò)數(shù)據(jù)包,主機(jī)直接拒接,不返回任何消息包,只允許從主機(jī)傳出數(shù)據(jù)包

external:用于使用偽裝的外部網(wǎng)絡(luò),尤其是路由器,為了防止網(wǎng)絡(luò)中其他計(jì)算機(jī)的攻擊,僅接受指定的傳入連接

home: 用于在家里使用,此時(shí),對(duì)于網(wǎng)絡(luò)中的計(jì)算機(jī),大多比較信任,也是僅接受指定的傳入連接

internal:用于內(nèi)部網(wǎng)絡(luò),此時(shí),對(duì)于網(wǎng)絡(luò)中的計(jì)算機(jī),大多比較信任,也是僅接受指定的傳入連接

public:用于公共區(qū)域,此時(shí),不能信任網(wǎng)絡(luò)中的計(jì)算機(jī),僅接受指定的傳入連接

trusted:接受所有的網(wǎng)絡(luò)連接

work:用于工作區(qū)域,此時(shí),對(duì)于網(wǎng)絡(luò)中的計(jì)算機(jī),大多比較信任,但也僅接受指定的傳入連接

在上述區(qū)域中,public 是安裝防火墻時(shí)默認(rèn)的區(qū)域,當(dāng)有網(wǎng)絡(luò)連接到達(dá)時(shí),會(huì)將它分配到默認(rèn)區(qū)域里

安裝

一般發(fā)行版的 Linux 都預(yù)裝了防火墻,如果沒(méi)有裝的話(huà),可以使用下面的命令進(jìn)行安裝

  1. yum install firewalld -y 

啟動(dòng)、關(guān)閉防火墻

  1. systemctl start firewalld   # 啟動(dòng)防火墻服務(wù) 
  2.  
  3. systemctl stop firewalld    # 關(guān)閉防火墻服務(wù) 

設(shè)置開(kāi)機(jī)啟動(dòng)、禁止開(kāi)機(jī)啟動(dòng)

  1. systemctl enable firwalld   # 開(kāi)機(jī)啟動(dòng)防火墻服務(wù) 
  2.  
  3. systemctl disable firwalld  # 禁止開(kāi)機(jī)啟動(dòng)防火墻服務(wù) 

常用選項(xiàng)

firewall-cmd 是防火墻配置管理工具,它的參數(shù)較多,下表列出常用的參數(shù)及作用,更多參數(shù)自行通過(guò) man 命令進(jìn)行查看

選項(xiàng) 說(shuō)明
--state 防火墻開(kāi)啟狀態(tài)
--reload 重新加載防火墻規(guī)則
--get-default-zone 獲取默認(rèn)區(qū)域
--set-default-zone=xxx 設(shè)置默認(rèn)區(qū)域?yàn)?xxx
--list-all --zone=xxx 列出 xxx 區(qū)域中所有允許的子項(xiàng)
--list-all-zones 列出所有區(qū)域中所有允許的子項(xiàng)
--permanent --new-zone=xxx 增加一個(gè)永久的新區(qū)域
--permanent --delete-zone=xxx 移除一個(gè)已存在的永久區(qū)域
--list-ports --zone=xxx 列出 xxx 區(qū)域中添加的端口
--add-port=x --zone=xxx xxx 區(qū)域中添加 x 端口
--remove-port=x --zone=xxx xxx區(qū)域中移除 x 端口
--query-port=x --zone=xxx 查詢(xún) xxx 區(qū)域中是否已添加 x 端口
--list-services=x --zone=xxx 列出 xxx 區(qū)域中所有允許的服務(wù)器
--query-service=x --zone=xxx 查詢(xún)是否允許 xxx 區(qū)域中 x 服務(wù)的流量
--add-service=x --zone=xxx --timeout= t 允許 xxx 區(qū)域中 x 服務(wù)的流量,超時(shí)時(shí)間 t
--remove-service=x --zone=xxx 從 xxx 區(qū)域中移除 x 服務(wù)
 

常用操作

  • 運(yùn)行時(shí)和永久

對(duì)防火墻規(guī)則的修改有運(yùn)行時(shí)和永久兩種模式

運(yùn)行時(shí)模式又稱(chēng)為當(dāng)前生效模式,是默認(rèn)的模式,它在防火墻服務(wù)重新加載、重啟服務(wù),重啟系統(tǒng)時(shí)會(huì)失效

--permanent 是設(shè)置永久的選項(xiàng),設(shè)置之后不會(huì)立馬生效,需要重啟服務(wù)、重新加載防火墻服務(wù)或者系統(tǒng)重啟才生效

沒(méi)有 --permanent 選項(xiàng),修改的僅僅是運(yùn)行時(shí)的配置,另外,--permanent 選項(xiàng)并不是對(duì)所有的選項(xiàng)都有效

如果要運(yùn)行時(shí)和永久都生效的話(huà),需要運(yùn)行時(shí)和永久性各設(shè)置一次,也即 運(yùn)行時(shí)不帶 --permanent ,而永久性時(shí)則需添加該選項(xiàng)

例如:現(xiàn)在設(shè)置 public 區(qū)域允許 80 端口 TCP 流量通過(guò),并且運(yùn)行時(shí)和永久性都都生效,具體的設(shè)置如下

  1. [root@cghost23 ~]# firewall-cmd --zone=public --list-port --permanent          
  2. [root@cghost23 ~]# firewall-cmd --zone=public --list-port 
  3. [root@cghost23 ~]# firewall-cmd --zone=public --add-port=80/tcp  
  4. success 
  5. [root@cghost23 ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent  
  6. success 
  7. [root@cghost23 ~]# firewall-cmd --zone=public --list-port --permanent   
  8. 80/tcp 
  9. [root@cghost23 ~]# firewall-cmd --zone=public --list-port 
  10. 80/tcp 

設(shè)置之前,運(yùn)行時(shí)和永久都禁止 80 端口的流量通過(guò),設(shè)置后,都允許通過(guò),--add-port=80/tcp 是設(shè)置運(yùn)行時(shí),--add-port=80/tcp --permanent 是設(shè)置永久

  • 查看防火墻狀態(tài)

防火墻未啟用

  1. [root@cghost23 ~]# firewall-cmd --state 
  2. not running 

防火墻已啟用

  1. [root@cghost23 ~]# firewall-cmd --state 
  2.  
  3. running 
  • 重新加載

--reload 選項(xiàng)是重新加載防火墻規(guī)則,并保持活躍連接的狀態(tài)

  1. [root@cghost23 ~]# firewall-cmd --reload 
  2. success 

需要注意的是,重新加載會(huì)導(dǎo)致已經(jīng)添加的運(yùn)行時(shí)的規(guī)則丟失

  1. [root@cghost23 ~]# firewall-cmd --zone=public --add-port 80/tcp 
  2. success 
  3. [root@cghost23 ~]# firewall-cmd --zone=public --list-port   
  4. 80/tcp 
  5. [root@cghost23 ~]# firewall-cmd --reload 
  6. success 
  7. [root@cghost23 ~]# firewall-cmd --zone=public --list-port 
  8. [root@cghost23 ~]# 

上面的示例中,先設(shè)置 public 區(qū)域允許 80 端口通過(guò) TCP 協(xié)議的流量,通過(guò) --zone=public --list-port 選項(xiàng)的結(jié)果確認(rèn)設(shè)置成功了

重新加載防火墻規(guī)則,然后再次查詢(xún) public 區(qū)域中所有已經(jīng)允許流量通過(guò)的端口號(hào),從上述結(jié)果中可以知道之前的設(shè)置丟失了

要想重新加載之后配置依然生效的話(huà),需要添加永久選項(xiàng) --permanent

  1. [root@cghost23 ~]# firewall-cmd --zone=public --add-port 80/tcp --permanent 
  2. success 
  3. [root@cghost23 ~]# firewall-cmd --zone=public --list-port --permanent 
  4. 80/tcp 
  5. [root@cghost23 ~]# firewall-cmd --reload 
  6. success 
  7. [root@cghost23 ~]# firewall-cmd --zone=public --list-port --permanent 
  8. 80/tcp 
  9. [root@cghost23 ~]# firewall-cmd --zone=public --list-port 
  10. 80/tcp 

可以看到,在添加了 --permanent 選項(xiàng)后,重新加載防火墻規(guī)則,之前的設(shè)置依然是有效的,所以,如果想要添加的規(guī)則永久生效,需要加上 --permanent 選項(xiàng)

  • 當(dāng)前默認(rèn)區(qū)域

新的網(wǎng)絡(luò)連接,默認(rèn)是分配到防火墻 public 區(qū)域的,這個(gè)默認(rèn)區(qū)域可以通過(guò)下面的命令獲取

  1. [root@cghost23 ~]# firewall-cmd --get-default-zone 
  2. public 

下面的命令是設(shè)置默認(rèn)區(qū)域?yàn)?public,由于當(dāng)前默認(rèn)區(qū)域已經(jīng)是 public 了,所以會(huì)提示當(dāng)前默認(rèn)區(qū)域已經(jīng)是 public

  1. [root@cghost23 ~]# firewall-cmd --set-default-zone=public 
  2. Warning: ZONE_ALREADY_SET: public 
  • 列出所有可用的區(qū)域
  1. [root@cghost23 ~]# firewall-cmd --get-zones 
  2. block dmz drop external home internal public trusted work 
  • 添加和刪除新區(qū)域

添加一個(gè)新的永久的區(qū)域 myzone,添加新區(qū)域需要加上 --permanent 選項(xiàng),之后再重新加載一下就可以生效了

  1. [root@cghost23 ~]# firewall-cmd --new-zone=myzone --permanent 
  2. success 
  3. [root@cghost23 ~]# firewall-cmd --reload 
  4. success 
  5. [root@cghost23 ~]# firewall-cmd --zone=myzone --list-all 
  6. myzone 
  7.   interfaces:  
  8.   sources:  
  9.   services:  
  10.   ports:  
  11.   masquerade: no 
  12.   forward-ports:  
  13.   icmp-blocks:  
  14.   rich rules: 

移除區(qū)域 myzone,同樣,移除一個(gè)已存在的區(qū)域也需要加上 --permanent 選項(xiàng),并且需要重新加載才會(huì)生效

  1. [root@cghost23 ~]# firewall-cmd --delete-zone=myzone --permanent 
  2. success 
  3. [root@cghost23 ~]# firewall-cmd --reload 
  4. success 
  5. [root@cghost23 ~]# firewall-cmd --zone=myzone --list-all 
  6. Error: INVALID_ZONE: myzone 
  • 查詢(xún)區(qū)域允許的服務(wù)和端口

使用 --list-all 選項(xiàng)可查詢(xún)默認(rèn)區(qū)域中允許的服務(wù)以及端口, 下面的結(jié)果中 services 和 ports 分別表示允許的服務(wù)和端口

  1. [root@cghost23 ~]# firewall-cmd  --list-all 
  2. public (default, active) 
  3.   interfaces: ens33 
  4.   sources:  
  5.   services: dhcpv6-client samba-client ssh 
  6.   ports: 80/tcp 
  7.   masquerade: no 
  8.   forward-ports:  
  9.   icmp-blocks:  
  10.   rich rules:  

如果需要查詢(xún)指定區(qū)域所有允許的服務(wù)和端口,可以加上 --zone = xxx 選項(xiàng), xxx 表示指定的區(qū)域,比如:下面的命令是查詢(xún) trusted 區(qū)域允許的服務(wù)和端口

  1. [root@cghost23 ~]# firewall-cmd  --zone=trusted --list-all 
  2. trusted 
  3.   interfaces:  
  4.   sources:  
  5.   services:  
  6.   ports:  
  7.   masquerade: no 
  8.   forward-ports:  
  9.   icmp-blocks:  
  10.   rich rules:  
  • 查看是否允許指定服務(wù)的流量通過(guò)

不指定區(qū)域時(shí),默認(rèn)區(qū)域是 public, 下面是查看默認(rèn)區(qū)域是否允許 SSH 以及 HTTPS 流量

  1. [root@cghost23 ~]# firewall-cmd --query-service=ssh 
  2. yes 
  3. [root@cghost23 ~]# firewall-cmd --query-service=https 
  4. no 

如果查看其它區(qū)域,則需要指定具體的區(qū)域

  1. [root@cghost23 ~]# firewall-cmd --zone=public  --query-service=ssh 
  2. yes 
  3. [root@cghost23 ~]# firewall-cmd --zone=trusted  --query-service=ssh 
  4. no 
  • 允許和禁止指定服務(wù)的流量通過(guò)

public 區(qū)域允許 samba-client 服務(wù)的流量通過(guò)

  1. [root@cghost23 ~]# firewall-cmd --add-service=samba-client --zone=public      
  2. success 
  3. [root@cghost23 ~]# firewall-cmd --query-service=samba-client --zone=public 
  4. yes 

public 區(qū)域禁止 samba-client 服務(wù)的流量

  1. [root@cghost23 ~]# firewall-cmd --remove-service=samba-client --zone=public      
  2. success 
  3. [root@cghost23 ~]# firewall-cmd --query-service=samba-client --zone=public  
  4. no 
  • 查看是否允許指定端口的流量通過(guò)

查看 public 區(qū)域所有允許的端口

  1. [root@cghost23 ~]# firewall-cmd --list-port --zone=public               
  2. 80/tcp 6379/tcp 6000-6010/tcp 

查看 public 區(qū)域是否允許 6379 端口的 TCP 流量通過(guò)

  1. [root@cghost23 ~]# firewall-cmd --list-port --zone=public               
  2. 80/tcp 6379/tcp 6000-6010/tcp 
  • 允許和禁止指定端口的流量通過(guò)

public 區(qū)域允許 8080 端口的 TCP 流量通過(guò),也可以理解為對(duì)外開(kāi)啟 8080 端口

  1. [root@cghost23 ~]# firewall-cmd --add-port=8080/tcp --zone=public        
  2. success 
  3. [root@cghost23 ~]# firewall-cmd --list-port --zone=public                  
  4. 80/tcp 6379/tcp 8080/tcp 6000-6010/tcp 

public 區(qū)域禁止 8080 端口的 TCP 流量

  1. [root@cghost23 ~]# firewall-cmd --remove-port=8080/tcp --zone=public 
  2. success 
  3. [root@cghost23 ~]# firewall-cmd --list-port --zone=public            
  4. 80/tcp 6379/tcp 6000-6010/tcp 

小結(jié)

本文講解了 Linux 中的防火墻服務(wù) firewalld 的一些常用操作,防火墻作為公網(wǎng)與內(nèi)網(wǎng)之間的流量屏障,對(duì)系統(tǒng)至關(guān)重要,所以,熟練掌握防火墻的知識(shí)是很有必要的

 

責(zé)任編輯:武曉燕 來(lái)源: Linux開(kāi)發(fā)那些事兒
相關(guān)推薦

2009-12-02 18:54:28

2009-10-12 12:51:50

Linux作系統(tǒng)防火墻

2009-12-21 14:44:06

2011-03-15 15:47:26

LinuxIptables防火墻

2012-07-10 10:39:48

Linux防火墻

2022-07-24 14:49:17

NetfilterLinux防火墻

2011-03-15 17:12:11

2018-02-06 10:53:53

2011-03-15 17:25:38

2009-07-06 17:00:17

Ubuntu Linushorewall防火墻

2011-03-17 16:00:57

2009-09-28 10:06:09

Linux防火墻Linux規(guī)則

2012-02-07 09:31:59

2009-08-28 18:12:26

防火墻規(guī)則測(cè)試

2009-02-22 09:30:24

2011-03-15 16:35:27

2020-04-07 13:20:52

Linux防火墻ufw

2011-03-16 12:46:29

CentOSiptables防火墻

2012-04-17 09:58:41

RedHat Linu防火墻

2017-08-29 16:04:13

Linux命令防火墻設(shè)置
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)