1. 程式人生 > >2018.1.26 7周5次課

2018.1.26 7周5次課

簡化 機器 什麽 ane -perm 不同的 conf all fig

七周五次課(1月26日)

10.19 iptables規則備份和恢復

10.20 firewalld的9個zone

10.21 firewalld關於zone的操作

10.22 firewalld關於service的操作

10.19 iptables規則備份和恢復

咱們設定的防火墻規則只保存在內存中,並沒有保存到某一個文件中。也就是說,當系統重啟後以前設定的規則就沒有了,所以設定好規則後要先保存一下。命令如下:

# service iptables save

iptables: Saving firewall rules to /etc/sysconfig/iptables: [確定]

它會提示你防火墻規則保存在/etc/sysconfig/iptables文件內,這個文件就是iptables的配置文件。所以日後如果你遇到備份防火墻規則的任務,只要復制一份這個文件的副本即可

有時我們需要清除防火墻的所有規則,使用命令iptables -F固然可以,但最好的辦法還是停止防火墻服務,如下所示:

# service iptables stop

iptables:清除防火墻規則 [確定]

iptables:將鏈設置為政策ACCEPT: nat filter [確定]

iptables:正在卸載模塊: [確定]

這樣防火墻就失效了,但是一旦重新設定規則(哪怕只有一條),防火墻服務會自動開啟。

備份防火墻規則的命令:利用重定向功能,重定向到一個文件裏

iptables-save > my.ipt

恢復防火墻規則的命令

iptables-restore < my.ipt

10.20 firewalld的9個zone

介紹完了netfilter,覺得也有必要再說一下行firewalld,畢竟這個才是Centos7上的防火墻機器。在上一節中,把行firewalld服務給禁掉了,而是打開了iptables服務,現在再反過來關閉iptables服務,打開firewalld服務

打開firewalld

  • systemctl disable iptables

  • systemctl stop iptables

  • systemctl enable firewalld

  • systemctl start firewalld

技術分享圖片

打開行firewalld以後,你可以執行一下iptables –nvL命令查看行firewalld的默認規則,會發現這些規則要比netfilter的規則復雜。上面介紹的iptables相關的命令,其實也是可以繼續使用的,只不過在 CentOS 7中不用那麽操作,而是有firewalld自己的命令。

firewalld有兩個基礎概念,分別是zone和service,每一個zone裏面有不同的iptables規則,默認一共有9個zone,而centos 7默認的zone為public

  • firewall-cmd --get-zones //查看所有zone

技術分享圖片

  • firewall-cmd --get-default-zone //查看默認zone

技術分享圖片

技術分享圖片

10.21 firewalld關於zone的操作

下面介紹幾個關於zone的命令:

  • firewall-cmd --set-default-zone=work //設定默認zone

技術分享圖片

  • firewall-cmd --get-zone-of-interface=ens33 //查指定網卡

技術分享圖片

  • firewall-cmd --zone=public --add-interface=lo //給指定網卡設置zone

技術分享圖片

技術分享圖片

  • firewall-cmd --zone=dmz --change-interface=lo //針對網卡更改zone

技術分享圖片

  • firewall-cmd --zone=dmz --remove-interface=lo //針對網卡刪除zone

技術分享圖片

變成默認的zone=work

  • firewall-cmd --get-active-zones //查看系統所有網卡所在的zone

技術分享圖片

10.22 firewalld關於service的操作

在centos7中使用firewalld,開發者可能是想簡化用戶的使用過程,在提供的9種zone中,總有一個是適合我們的使用場景的。那麽到底zone是什麽?每一種zone之間有什麽區別呢?這裏就要給大家介紹一個概念——service。其實,之所以有9種zone,是因為每一種zone裏面提供了不同的service,而service就是針對一個服務(端口)做的iptables規則。這些service都是由一個個配置文件定義的,配置文件的模板在/usr/lib/firewalld/services/目錄下,真正生效的配置在/etc/firewalld/services目錄下面(默認為空)。

  • firewall-cmd --get-services //查看所有的servies

技術分享圖片

  • firewall-cmd --list-services //查看當前zone下有哪些service

技術分享圖片

技術分享圖片

  • firewall-cmd --zone=public --add-service=http //把http增加到public zone下面

技術分享圖片

  • firewall-cmd --zone=public --add-service=http --permanent //更改配置文件,之後會在/etc/firewalld/zones目錄下面生成配置文件

ftp服務寫入配置文件

技術分享圖片

http服務寫入配置文件

技術分享圖片

技術分享圖片

zones配置文件

技術分享圖片

services配置文件(目前是空的)

技術分享圖片

  • ls /usr/lib/firewalld/zones/ //zone的配置文件模板

技術分享圖片

  • ls /usr/lib/firewalld/services/ //service的配置文件模板

技術分享圖片

需求:ftp服務自定義端口1121,需要在work zone下面放行ftp

  • cp /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services //拷貝ftp配置文件模板到生效的目錄下

技術分享圖片

  • vi /etc/firewalld/services/ftp.xml //把21改為1121

  • cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/ //拷貝work配置文件模板到生效的目錄下

技術分享圖片

  • vi /etc/firewalld/zones/work.xml //增加一行

<service name="ftp"/>

  • firewall-cmd --reload //重新加載

技術分享圖片

  • firewall-cmd --zone=work --list-services

技術分享圖片


2018.1.26 7周5次課