10.19 iptables规则备份和恢复centos
1. 保存iptables规则服务器
命令:service iptables save //会把规则保存到/etc/sysconfig/iptables文件中,若是没有保存,重启后iptables规则会被清空。ssh
2. 备份iptables规则(若是不想备份到默认文件中)备份到/tmp/ipt.txt文件中ide
命令:iptables-save > /tmp/ipt.txt centos7
3、恢复刚才备份的规则:spa
命令:iptables-restore < /tmp/ipt.txt rest
4.停用iptables防火墙,有时候咱们须要清除防火墙的全部规则,使用命令iptables -F当然能够,但最好的办法还是中止防火墙服务,以下所示:xml
命令:service iptables stop ip
注:这样防火墙就失效了,可是一旦从新设定规则(哪怕只有一条),防火墙服务仍是会自动开启。内存
10.20 firewalld的9个zone
1.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相关命令在centos7也是能够继续使用的,不过在centos7里不用那么操做,Centos7里面有firewalld本身的命令。
1.1firewalld有两个基础概念,分别是zone和service,每个zone里面有不一样的iptables规则,默认一共有9个zone,而Centos 7默认的zone为public,
查看系统全部的zone,命令:firewall-cmd --get-zones (get前面是两个-)
1.2 查看默认zone:
命令:firewall-cmd –get-default-zone
1.3 9个zone的介绍以下:
10.21 firewalld关于zone的操做
firewall关于zone的操做
1、设定默认zone:
firewall-cmd –set-default-zone=work
2、 查指定网卡有没有zone:
firewall-cmd –get-zone-of-interface=eth0
3、给指定网卡设置zone:
firewall-cmd –zone=public –add-interface=eth0
4、 针对网卡更改zone:
firewall-cmd –zone=block –change-interface=eno16777736
5、 针对网卡删除zone :
firewall-cmd –zone=block –remove-interface=eno16777736
6、 查看系统全部网卡所在的zone:
firewall-cmd –get-active-zones
10.22 firewalld关于service的操做
介绍另外一个概念service,之因此有9种zone,是由于每一个zone里面都使用了不一样的service,而service就是针对一个服务(端口)作的iptables规则。
1、查看全部的servies:
firewall-cmd –get-services
这些service都是由一个个配置文件定义的,配置文件的模板在/usr/lib/firewalld/services/目录下,真正生效的配置在/etc/firewalld/services目录下面(默认为空)。
2、查看当前zone下有哪些service: (每一个zone里面都有不一样的service)
firewall-cmd –list-services
firewall-cmd --zone=public --list-service //查看指定zone下有哪些service
3、一个zone下面有某个service,意味着这个service是被信任的,好比,当前zone下面有个ssh,那么ssh服务(也就是22)端口是放行的,咱们能够给一个zone添加一个service
把http增长到public zone下面:
firewall-cmd –zone=public –add-service=http //当前zone下添加http
firewall-cmd –zone=public –remove-service=http //当前zone下删除http
仅在内存中生效,若是想要永久生效,须要更改配置文件,如下
4、对于每一个zone来讲,都有本身的配置文件,你能够查看目录/usr/lib/firewalld/zones/下面对应的文件,这些就是zone的配置文件:
ls /usr/lib/firewalld/zones/
5、前面已经试过一种方法能够在一个zone里面增长一个service,但这种方法仅仅在内存中生效,并无修改配置文件,若是想要修改配置文件,须要增长一个选项
更改配置文件,以后会在/etc/firewalld/zones目录下面生成配置文件(永久生效):
firewall-cmd –zone=public –add-service=http –permanent
ls /etc/firewalld/zones //查看zone的配置文件会生成public.xml public.xml.old
备注:一旦更改了某个zone的配置文件,则会在/etc/firewalld/zones目录下面生成对应zone的配置文件(.xml后缀的文件),其实这个目录下面的配置文件才是真正的配置文件,上面所介绍的目录,能够说是全部zone的模板配置文件。
6.实验举例:
假设服务器上配置了一个ftp服务,但端口并不是默认的21,而是要自定义端口1121,而且须要在work zone下面放行ftp。
# cp /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services //拷贝
# vi /etc/firewalld/services/ftp.xml //把21改成1121 (参考图1)
# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/
# vi /etc/firewalld/zones/work.xml //增长一行(参考图2)
<service name="ftp"/>
# firewall-cmd --reload //从新加载
success
# firewall-cmd --zone=work --list-services //验证work zone里面的services是否有ftp ssh dhcpv6-client ftp
图一
图二