七周五次课(5月10日)

10.19 iptables规则备份和恢复
10.20 firewalld的9个zone
10.21 firewalld关于zone的操作
10.22 firewalld关于service的操作



iptables的规则备份和恢复


image.png


service iptables save会把配置保存到配置文件中 /etc/sysconfig/iptables


如果不想保存在这 可以使用


iptables-save > 文件路径

image.png


如果想恢复之前的iptables表,就使用

iptables-restore <文件路径 

iptables  -t nat -F 是将nat表的规则清空,然后查看无规则。接着restore后查看, 规则重新出现。看下图。

image.png



Linux防火墙 firewalled

image.png

firealled是之后centos7以及以后版本可能会使用的一个工具,所以需要将iptables关闭,打开firewalld

image.png

image.png

相对来说 firewalld自带的规则相对iptables比较多。以下就是firewalld自带的规则。不仅仅是filter 也包括nat表,链也比较多。

image.png


firewalld默认是9个zone 默认zone为public 。一个zone就是一个规则集。

firewall-cmd --get-zones 查看所有的zone

image.png


firewall-cmd --get-default-zone查看默认的zone

image.png


不同zone的区别

image.png


firewalld关于zone的操作

image.png

默认的zone是可以修改的 

firewall-cmd --set-default-zone=work 将work更改为默认的zone

image.png

firewall-cmd --get-zone-of-interface=ens33 查网卡的zone。如果no zone的话可以将ens33的配置文件拷贝一份给37然后修改对应的网络文件。然后重启网络服务以及重启firewalld。

image.png


也可以手动给指定的网卡设置zone

firewall-cmd --zone=public --add-interface=lo 给指定网卡设置zone

image.png

但是如果需要修改成功的话,需要先将NetworkManager关闭。systemctl stop NetworkManager why?

image.png


firewall-cmd --zone=dmz --change-interface=lo 

针对网卡更改zone

image.png

删除当前的zone

firewall-cmd --zone=dmz--remove-interface=ens37

注意还是牵涉到一个networkmanager的开启问题。why

image.png


查看所有的生效的网卡

firewall-cmd --get-active-zones

image.png




firewalld service操作


所谓的防火墙就是针对端口做一些限制,service可以理解为是zone下面的端口的操作。

比如http 是操作80端口 ssh 是21端口 https是43端口 

image.png


查看所有的service

firewall-cmd --get-services

image.png


查看当前默认的zone下都有哪些服务呢?

firewall-cmd --list-services

image.png

如果是查找对应的zone的service呢?

firewall-cmd --zone=public --list-services

image.png


在某个zone下面添加service,比如下面就是给public的zone添加http服务

firewall-cmd --zone=public --add-service=http

然后 firewall-cmd --zone=public --list-services

image.png

但是,目前只是在内存中给zone添加了service,如果想写入配置文件,需要添加一个选项 --permanent 

firewall-cmd --zone=public --add-service=http --permanent

之后会在/etc/firewalld/zones目录下面生成配置文件

image.png

有意思的地方是,配置文件有更新的时候,旧的不会覆盖而是会备份。

image.png

同样 service也是有配置文件的,配置文件的目录是 /etc/firewalld/services/

在没有更改配置文件之前这里面是空的

image.png

实际上这些xml格式的保存文件是有模板的,保存在/ usr/lib/firewalld/zone下

image.png

同样 service也是有模板的 保存在/ usr/lib/firewalld/services下

image.png


做一个小练习。

需求:ftp默认端口21更改为1121,需要在work zone下进行放行ftp

  1. 更改ftp服务。步骤,将ftp模板拷贝到配置文件路径的service目录下。然后编辑把21端口改成1121

    cp /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services/

     image.png

    image.png

2. 将ftp服务放到work zone下。步骤 把work zone的模板文件拷贝到配置目录下,然后修改work.xml文件将ftp服务添加进去

image.png

image.png


3. 重新加载。 firewall-cmd --reload

image.png


in sum,

防火墙 firewall 下主要有zone和service,zone下的service有哪些service,那就说明给哪些service 放行了。

也可以自定义service,比如进去ftp.xml进去改port