iptables规则备份和恢复
iptables规则保存,默认保存的位置路径:/etc/sysconfig/iptables文件里;
[root@hch ~]# service iptables save
iptables规则备份到指定路径;
[root@hch ~]# iptables-save > /tmp/ipt.txt
iptables清空规则;
[root@hch ~]# iptables -t nat -F
iptables查看规则;
[root@hch ~]# iptables -t nat -nvL
iptables恢复规则;
[root@hch ~]# iptables-restore < /tmp/ipt.txt
firewalld的9个zone
关闭iptables;
[root@hch ~]# systemctl disable iptables
[root@hch ~]# systemctl stop iptables
打开firewalled;
[root@hch ~]#systemctl enable firewalld
[root@hch ~]# systemctl start firewalld
firewalled有两个基础概念,分别是zone和service,每个zone里面有不同的iptables规则,默认一共有9个zone,而Centos7默认的zone为public。
获取系统所有的zone命令如下;
[root@hch ~]# firewall-cmd --get-zones
block dmz drop external home internal public trusted work
查看系统默认的zone命令如下;
[root@hch ~]# firewall-cmd --get-default-zone
public
9个zone的简介:
drop(丢弃):任何接收的网络数据包都被抛弃,没有任何回复。仅能有发送出去的网络连接。
block(限制):任何接收的网络连接都被IPv4的icmp-host-prohibited信息和IPv6的icmp-adm-prohibited信息所拒绝。
public(公共):在公共区域使用,不能相信网络内的其他计算机不会对你的计算机造成危害,只能接收经过选取的连接
external(外部):特别是为路由器启用了伪装功能的外部网。你不能信任来自网络的其他计算,不能相信它们不会对你的计算机造成危害,只能接收经过选择的连接。
dmz(非军事区):用于你的非军事区内的计算机,此区域内可公开访问,可以有限地进入你的内部网络,仅仅接收经过选择的连接。
work(工作):用于工作区。你可以基本相信网络内的其它计算机不会危害你的计算机。仅仅接收经过选择的连接。
home(家庭):用于家庭网络。你可以基本信任网络内的其它计算机不会危害你的计算机。仅仅接收经过选择的连接。
internal(内部):用于内部网络。你可以基本上信任网络内的其它计算机不会威胁你的计算机,仅仅接收经过选择的连接。
trusted(信任):可接收所有的网络连接
firewalld关于zone的操作
关于zone的命令;
[root@hch ~]# firewall-cmd --set-default-zone=work //设定默认的zone为work
[root@hch ~]# firewall-cmd --get-zone-of-interface=ens33 //查看指定网卡所在的zone
[root@hch ~]# firewall-cmd --zone=public --add-interface=lo //给指定网卡设置zone
[root@hch ~]# firewall-cmd --zone=dmz --change-interface=lo //针对网卡更改zone
[root@hch ~]# firewall-cmd --zone=dmz --remove-interface=lo //针对网卡删除zone
[root@hch ~]# firewall-cmd --get-active-zones //查看系统所有网卡所在的zone
public
interfaces: ens33
firewalld关于service的操作
[root@hch ~]# firewall-cmd --get-services //列出当前系统所有的service
[root@hch ~]# firewall-cmd --list-services //查看当前zone下有哪些service
[root@hch ~]# firewall-cmd --zone=public --list-services //查看指定zone下有哪些service
[root@hch ~]# firewall-cmd --zone=public --add-service=http //把http增加到public zone下面
[root@hch ~]# firewall-cmd --zone=public --add-service=http --permanent //以修改配置文件来增加service
[root@hch ~]# ls /usr/lib/firewalld/zones/ //查看zone对应的配置文件
[root@hch ~]# ls /etc/firewalld/zones/ //一旦更改zone配置文件,则会在这个路径下面生成对应的zone的配置文件
演示一个需求操作,ftp服务自定义端口1121,需要在work zone下面方行ftp
操作如下;
[root@hch ~]# cp /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services/
[root@hch ~]# vi /etc/firewalld/services/ftp.xml //把里面的21改为1121
[root@hch ~]# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/
[root@hch ~]# vi /etc/firewalld/zones/work.xml //在里面增加一行FTP相关的配置,内容如下
如此配置工作就完成,输入以下命令重新加载
[root@hch ~]# firewall-cmd --reload
并验证以下
[root@hch ~]# firewall-cmd --zone=work --list-services
ssh dhcpv6-client ftp