您的位置:首页 > 运维架构 > Linux

Linux日常维护(firewalld的9个zone和service)

2017-12-03 17:31 615 查看
一、iptables规则备份和恢复iptables如果不使用service iptables save命令,则重启之后规则会全部消失。services save命令默认把规则保存在/etc/sysconfig/iptables文件里。可以用ipables-save > ipt.txt 这个命令把现在的规则保存在文本文件里。然后在恢复默认配置等到想用的时候再用iptables-restore < ipt.txt这个命令恢复保存的配置。如果想启动服务就让有规则,就把iptables保存在/etc/sysconfig/iptables
举例:




二、firewalld防火墙的9个zone以及他们的用法

firewalld默认有9个zone(zone是firewalld的单位)默认zone为publicdrop(丢弃):任何接受的网络数据包都被丢弃,没有任何恢复,仅能有发送出去的网络连接(数据包不能进来,但是可以出去)block(限制):任何接受的网络连接都被IPv4的icmp-host-prohibited信息和IPv6的icmp6-adm-prohibited信息所拒绝。(和drop相比,比较宽松一些,主要是为了针对icmp)piblic(公共):在公共区域内使用,不能相信网络内其他计算机不会对你造成危害,只能接受经过选取的连接。external(外部):特别是为路由器启用了伪装功能的外部网,你不能信任来自网络的其他计算,不能相信他们不会对你造成伤害,只能接受经过选择的连接。dmz(非军事区):用于你的非军事区内的电脑,此区域可公开访问,可以有限的进入你的内部网络,仅仅接受经过选择的连接。work(工作):用于工作区,你可以基本信任网络内的其他电脑不会对你造成危害,仅仅接收经过选择的连接。home(家庭):用于内部网络,你可以基本上信任网络内其他电脑不会对你造成危害,仅仅接收经过选择的连接。internal(内部):用于内部网络,你可以基本上信任网络内其他电脑不会对你造成危害,仅仅接收经过选择的连接。trusted(信任):可接受所有的网络连接。
[root@litongyao ~]# firewall-cmd --get-zones (查看所有zone的命令,一共有9个zone)work drop internal external trusted home dmz public block[root@litongyao ~]# firewall-cmd --get-default-zone (查看默认的zone的命令)public我们知道每个zone就是一套规则集,但是有那么多zone,对于一个具体的请求来说应该使用哪个zone(哪套规则)来处理呢?这个问题至关重要,如果这点不弄明白其他的都是空中楼阁,即使规则设置的再好,不知道怎样用、在哪里用也不行,在/usr/lib/iptables/zone,保存着zone的配置文件
对于一个接受到的请求具体使用哪个zone,firewalld是通过三种方法来判断的:1、source,也就是源地址2、interface,接收请求的网卡3、firewalld.conf中配置的默认zone这三个的优先级按顺序依次降低,也就是说如果按照source可以找到就不会再按interface去查找,如果前两个都找不到才会使用第三个。[root@litongyao ~]# firewall-cmd --get-active-zones (查看素有网卡所拥有的zone)
public interfaces: ens33 ens37[root@litongyao ~]# firewall-cmd --get-zone-of-interface=ens33 (查看指定网卡的zone)public
[root@litongyao ~]# firewall-cmd --zone=public --add-interface=lo (给指定网卡设置zone)success[root@litongyao ~]# firewall-cmd --get-zone-of-interface=lo public
[root@litongyao ~]# firewall-cmd --zone=dmz --change-interface=lo (给指定网卡更改zone)success[root@litongyao ~]# firewall-cmd --get-zone-of-interface=lodmz
[root@litongyao ~]# firewall-cmd --zone=dmz --remove-interface=lo (指定网卡删除zone,会恢复到默认网卡zone)success[root@litongyao ~]# firewall-cmd --get-zone-of-interface=lono zone
没有办法删除网卡的默认zone,如果要更改,可以使用以下命令更改默认zone:[root@litongyao ~]# firewall-cmd --set-default-zone=work success[root@litongyao ~]# firewall-cmd --get-zone-of-interface=ens33work[root@litongyao ~]# firewall-cmd --get-zone-of-interface=ens37work

三、service
在/usr/lib/firewalld/services/目录中,还保存了另外一类配置文件,每个文件对应一项具体的网络服务,如ssh服务等。
与之对应的配置文件中记录了各项服务所使用的tcp/udp端口,在最新版的firewalld中默认已经定义了70多种服务供我们使用。
zone就是调用了不同的service而实现了不同的效果。

[root@litongyao ~]# firewall-cmd --get-service (把系统文件内所有的service列出来)[root@litongyao ~]# firewall-cmd --get-default-zone (查看系统当前的默认zone)[root@litongyao ~]# firewall-cmd --list-service (把默认zone下的service列出来)[root@litongyao ~]# firewall-cmd --zone=(zone名) --list-service (把指定的zone下的service列出来)[root@litongyao ~]# firewall-cmd --zone=(zone名) --add-service=(service名)(把service加入到指定zone下)(只是暂时写入内存中)[root@litongyao ~]# firewall-cmd --zone=(zone名) --add-service=(service名) --permanent (修改配置文件,把service永久的加入到指定Zone下面)配置文件在/etc/firewalld/zones/下,每次修改完配置文件,他都会把旧的配置文件后缀名加上.old也保存在目录下[root@litongyao zones]# ls /etc/firewalld/zones/public.xml public.xml.ol
修改zone和service有两种方法,一种是刚才我们写的命令行,一种是直接修改配置文件
在/usr/lib/firewalld/services下保存的是services的模板在/usr/lib/firewalld/zone下保存的是zone的模板举例:(使用配置文件的方法修改zone和service)1.需求:把ftp服务自定义端口1121,需要在work zone下面方形ftp[root@litongyao zones]# cp /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services (复制模板到service下)[root@litongyao zones]# vim /etc/firewalld/services/ftp.xml (修改ftp的配置文件,修改端口1121)[root@litongyao zones]# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/ (复制模板到zones下)[root@litongyao zones]# vim /etc/firewalld/zones/work.xml (修改work.xml的配置文件,把ftp加到里面) <service name="ftp"/>[root@litongyao zones]# firewall-cmd --reload (重新加载配置,配置文件生效)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  firewalld zone service