天天看點

Linux日常維護(firewalld的9個zone和service)

一、iptables規則備份和恢複

iptables如果不使用service iptables save指令,則重新開機之後規則會全部消失。

services save指令預設把規則儲存在/etc/sysconfig/iptables檔案裡。

可以用ipables-save > ipt.txt 這個指令把現在的規則儲存在文本檔案裡。然後在恢複預設配置

等到想用的時候再用iptables-restore < ipt.txt這個指令恢複儲存的配置。

如果想啟動服務就讓有規則,就把iptables儲存在/etc/sysconfig/iptables

舉例:

Linux日常維護(firewalld的9個zone和service)
Linux日常維護(firewalld的9個zone和service)

二、firewalld防火牆的9個zone以及他們的用法

firewalld預設有9個zone(zone是firewalld的機關)

預設zone為public

drop(丢棄):任何接受的網絡資料包都被丢棄,沒有任何恢複,僅能有發送出去的網絡連接配接(資料包不能進來,但是可以出去)

block(限制):任何接受的網絡連接配接都被IPv4的icmp-host-prohibited資訊和IPv6的icmp6-adm-prohibited資訊所拒絕。(和drop相比,比較寬松一些,主要是為了針對icmp)

piblic(公共):在公共區域内使用,不能相信網絡内其他計算機不會對你造成危害,隻能接受經過選取的連接配接。

external(外部):特别是為路由器啟用了僞裝功能的外部網,你不能信任來自網絡的其他計算,不能相信他們不會對你造成傷害,隻能接受經過選擇的連接配接。

dmz(非軍事區):用于你的非軍事區内的電腦,此區域可公開通路,可以有限的進入你的内部網絡,僅僅接受經過選擇的連接配接。

work(工作):用于工作區,你可以基本信任網絡内的其他電腦不會對你造成危害,僅僅接收經過選擇的連接配接。

home(家庭):用于内部網絡,你可以基本上信任網絡内其他電腦不會對你造成危害,僅僅接收經過選擇的連接配接。

internal(内部):用于内部網絡,你可以基本上信任網絡内其他電腦不會對你造成危害,僅僅接收經過選擇的連接配接。

trusted(信任):可接受所有的網絡連接配接。

[root@litongyao ~]# firewall-cmd --get-zones                (檢視所有zone的指令,一共有9個zone)

work drop internal external trusted home dmz public block

[root@litongyao ~]# firewall-cmd --get-default-zone           (檢視預設的zone的指令)

public

我們知道每個zone就是一套規則集,但是有那麼多zone,對于一個具體的請求來說應該使用哪個zone(哪套規則)來處理呢?這個問題至關重要,如果這點不弄明白其他的都是空中樓閣,即使規則設定的再好,不知道怎樣用、在哪裡用也不行,在/usr/lib/iptables/zone,儲存着zone的配置檔案

對于一個接受到的請求具體使用哪個zone,firewalld是通過三種方法來判斷的:

1、source,也就是源位址

2、interface,接收請求的網卡

3、firewalld.conf中配置的預設zone

這三個的優先級按順序依次降低,也就是說如果按照source可以找到就不會再按interface去查找,如果前兩個都找不到才會使用第三個。

[root@litongyao ~]# firewall-cmd --get-active-zones        (檢視素有網卡所擁有的zone)

public 

  interfaces: ens33 ens37

[root@litongyao ~]# firewall-cmd --get-zone-of-interface=ens33            (檢視指定網卡的zone)

[root@litongyao ~]# firewall-cmd --zone=public --add-interface=lo          (給指定網卡設定zone)

success

[root@litongyao ~]# firewall-cmd --get-zone-of-interface=lo             

[root@litongyao ~]# firewall-cmd --zone=dmz --change-interface=lo        (給指定網卡更改zone)

[root@litongyao ~]# firewall-cmd --get-zone-of-interface=lo

dmz

[root@litongyao ~]#  firewall-cmd --zone=dmz  --remove-interface=lo      (指定網卡删除zone,會恢複到預設網卡zone)

no zone

沒有辦法删除網卡的預設zone,如果要更改,可以使用以下指令更改預設zone:

[root@litongyao ~]# firewall-cmd --set-default-zone=work 

[root@litongyao ~]# firewall-cmd --get-zone-of-interface=ens33

work

[root@litongyao ~]# firewall-cmd --get-zone-of-interface=ens37

三、service

在/usr/lib/firewalld/services/目錄中,還儲存了另外一類配置檔案,每個檔案對應一項具體的網絡服務,如ssh服務等。

與之對應的配置檔案中記錄了各項服務所使用的tcp/udp端口,在最新版的firewalld中預設已經定義了70多種服務供我們使用。

zone就是調用了不同的service而實作了不同的效果。

[root@litongyao ~]# firewall-cmd --get-service             (把系統檔案内所有的service列出來)

[root@litongyao ~]# firewall-cmd --get-default-zone          (檢視系統目前的預設zone)

[root@litongyao ~]# firewall-cmd --list-service             (把預設zone下的service列出來)

[root@litongyao ~]# firewall-cmd --zone=(zone名) --list-service  (把指定的zone下的service列出來)

[root@litongyao ~]# firewall-cmd --zone=(zone名) --add-service=(service名)(把service加入到指定zone下)(隻是暫時寫入記憶體中)

[root@litongyao ~]# firewall-cmd --zone=(zone名) --add-service=(service名) --permanent (修改配置檔案,把service永久的加入到指定Zone下面)

配置檔案在/etc/firewalld/zones/下,每次修改完配置檔案,他都會把舊的配置檔案字尾名加上.old也儲存在目錄下

[root@litongyao zones]# ls /etc/firewalld/zones/

public.xml  public.xml.ol

修改zone和service有兩種方法,一種是剛才我們寫的指令行,一種是直接修改配置檔案

在/usr/lib/firewalld/services下儲存的是services的模闆

在/usr/lib/firewalld/zone下儲存的是zone的模闆

舉例:(使用配置檔案的方法修改zone和service)

1.需求:把ftp服務自定義端口1121,需要在work zone下面方形ftp

[root@litongyao zones]# cp /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services   (複制模闆到service下)

[root@litongyao zones]# vim /etc/firewalld/services/ftp.xml              (修改ftp的配置檔案,修改端口1121)

[root@litongyao zones]# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/         (複制模闆到zones下)

[root@litongyao zones]# vim /etc/firewalld/zones/work.xml             (修改work.xml的配置檔案,把ftp加到裡面)

  <service name="ftp"/>

[root@litongyao zones]#  firewall-cmd --reload                  (重新加載配置,配置檔案生效)

本文轉自 小新銳 51CTO部落格,原文連結:http://blog.51cto.com/13407306/2046941,如需轉載請自行聯系原作者

繼續閱讀