iptables规则备份和恢复、firewalld的9个zone、以及firewalld关于zone和service的操作 使用介绍
第7周第5次课(5月11日)
课程内容:
10.19 iptables规则备份和恢复
10.20 firewalld的9个zone
10.21 firewalld关于zone的操作
10.22 firewalld关于service的操作
10.19 iptables规则备份和恢复
iptables规则的备份和恢复,默认会把规则保存到/etc/sysconfig/iptables 这个路径,如果需要保存到其他路径,可以使用命令iptables-save > /tmp/ipt.txt
以上就是保存的规则,filter里面是没有规则的。
[root@jimmylinux-002 ~]# iptables-restore < /tmp/ipt.txt 恢复规则的命令
备份的规则只有在恢复的时候用到它,如果服务器一重启就想要加载,那么就需要把规则保存到配置文件中去/etc/sysconfig/iptables
10.20 firewalld的9个zone
之前把firewalld禁用了,打开了iptables,现在要重新打开firewalld。
查看iptables规则会出现很多内容,里面的就是默认的firewalld规则。
[root@jimmylinux-002 ~]# iptables -t nat -nvL
firewalld默认有9个zone,zone是firewalld的一个单位,默认zone为public,每个zone就好比是一个规则集。
[root@jimmylinux-002 ~]# firewall-cmd --get-zones 查看所有zone
[root@jimmylinux-002 ~]# firewall-cmd --get-default-zone 查看默认zone
不同zone的定义
10.21 firewalld关于zone的操作
操作实例如下
如果ens37也是显示no zone,需要把这个路径/etc/sysconfig/network-scripts/下面的ens33复制一份成ens37,再写下配置文件,然后重启下网络服务,重启完网络服务后再加载下firewalld服务。
[root@jimmylinux-002 network-scripts]# cp ifcfg-ens33 ./ifcfg-ens37 复制一份ens33并改为ens37
[root@jimmylinux-002 network-scripts]# vim /etc/sysconfig/network-scripts/ifcfg-ens37 编辑配置文件并修改IP
[root@jimmylinux-002 ~]# systemctl restart network.service 重启网络服务
[root@jimmylinux-002 ~]# systemctl restart firewalld 重新加载firewalld服务
这个时候再查看指定网卡默认的zone,ens33和ens37都是work了。
[root@jimmylinux-002 ~]# firewall-cmd --zone=dmz --add-interface=ens37 也可以给指定网卡设置zone
firewall-cmd --get-active-zones 查看系统所有网卡所在的zone
以上命令都是关于zone的一些操作
10.22 firewalld关于service的操作
所谓service就是zone下面的一个子单元,可以理解成指定的一个端口,因为防火墙无非就是对端口做一些限制。
firewall-cmd --get-services 查看系统中所有的servies
[root@jimmylinux-002 ~]# firewall-cmd --get-default-zone 查看当前的zone
[root@jimmylinux-002 ~]# firewall-cmd --list-service 查看当前zone(work)里面都有哪些service
firewall-cmd --zone=public --add-service=http //把http服务增加到public zone下面,再查看就多出刚才添加的服务了。
现在仅仅是在内存里把zone增加了service,如果想把配置保存到配置文件去,按照下面方法操作。
同样的方法把http写入到配置文件
目前已经有4个service
etc下面是系统firewalld服务所用到的配置文件,每当改完之后把它永久保存,都会把旧的作为一个备份加上一个后缀名.old,同样除了zone还有service,默认情况service下面是没有东西的,因为还没有更改过任何的service配置文件。
zone也好service也好,其实都是有一个模板的,在这个路径/usr/lib/firewalld/zones/ 下面,一共有9个模板。
实例需求:把ftp服务默认端口改为1121,并且需要在work zone下面放行ftp
第一步需要更改ftp服务,第二步把ftp的service加到work zone下面去。
操作步骤如下:
①cp /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services
②vi /etc/firewalld/services/ftp.xml //把21改为1121
③cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/
④vi /etc/firewalld/zones/work.xml //增加一行
<service name="ftp"/>
⑤firewall-cmd --reload //重新加载
最后检查一下,如果有ftp就说明操作成功。
以上就是关于service的一些操作
总结:
firewalld服务有2个角色,一个是zone,一个是service,zone是它的规则集合,每个zone下面都有对应的iptables规则,而每个zone下面有一些service,如果有这个service,就会作为白名单,放行这个service。如果遇到需求,放行某一个服务,那么就把这个服务增加到它的配置文件里面去,再重新reload就可以了,至于service也是可以自定义的。