专栏首页阿dai_linuxLinux系统firewalld、zone、service

Linux系统firewalld、zone、service

10.20 firewalld的9个zone

先执行以下操作切换至firewalld防火墙:

关闭iptables:
[root@adai003 ~]# systemctl disable iptables
Removed symlink /etc/systemd/system/basic.target.wants/iptables.service.
[root@adai003 ~]# systemctl stop iptables

开启firewalld:
[root@adai003 ~]# systemctl enable firewalld
Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service.
Created symlink from /etc/systemd/system/basic.target.wants/firewalld.service to /usr/lib/systemd/system/firewalld.service.
[root@adai003 ~]# systemctl start firewalld

注: 此时防火墙的规则已发生改变,可以使用命令iptables -nvL查看。

9种zone:

  • 查看zone类型:
[root@adai003 ~]# firewall-cmd --get-zones
work drop internal external trusted home dmz public block

关于9种zone的解析:

注: 9个zone中内容分别保存着不同的规则!

  • 查看系统默认的zone:
[root@adai003 ~]# firewall-cmd --get-default-zone 
public

10.21 firewalld关于zone的操作

设置默认的zone

设置默认的zone:
[root@adai003 ~]# firewall-cmd --set-default-zone=work
success

查看:
[root@adai003 ~]# firewall-cmd --get-default-zone 
work

查看指定网卡的zone:

[root@adai003 ~]# firewall-cmd --get-zone-of-interface=ens33
public  

[root@adai003 ~]# firewall-cmd --get-zone-of-interface=lo
no zone

给指定网卡增加zone

可以通过以下两种方法为网卡添加zone:

方法1:

编辑网卡配置文件(复制系统网卡配置文件进行更名)的方法为其添加zone(配置完成后重启网络服务,并重新加载firewalld服务:“systemctl restart firewalld”)。

方法2:

[root@adai003 ~]# firewall-cmd --zone=work --add-interface=ens37
success
[root@adai003 ~]# firewall-cmd --get-zone-of-interface=ens37
work

给指定网卡更改zone

[root@adai003 ~]# firewall-cmd --zone=block --change-interface=ens37
success
[root@adai003 ~]# firewall-cmd --get-zone-of-interface=ens37
block

给指定网卡删除zone

[root@adai003 ~]# firewall-cmd --zone=bmz --remove-interface=ens37
The interface is under control of NetworkManager, setting zone to default.
success

[root@adai003 ~]# firewall-cmd --get-zone-of-interface=ens37
work

查看系统中所有网卡所在的zone

[root@adai003 ~]# firewall-cmd --get-active-zones 
work
  interfaces: ens37
public
  interfaces: ens33

10.22 firewalld关于service的操作

查看系统所有service

[root@adai003 ~]# firewall-cmd --get-services 

查看当前zone下的service

[root@adai003 ~]# firewall-cmd --list-services 
dhcpv6-client ssh

查看指定zone下的service

[root@adai003 ~]# firewall-cmd --zone=public --list-services 
dhcpv6-client ssh

添加一个服务到某个zone下

  • 临时添加(配置文件中不存在,重启会恢复原配置)
[root@adai003 ~]# firewall-cmd --zone=public --add-service=http
success
[root@adai003 ~]# firewall-cmd --zone=public --list-services 
dhcpv6-client ssh http
  • 永久添加(即,更改配置文件)
[root@adai003 ~]# firewall-cmd --zone=public --add-service=http --permanent

删除zone下某服务

  • 临时删除
删除前:
[root@adai003 ~]# firewall-cmd --zone=public --list-service
ftp dhcpv6-client ssh

[root@adai003 ~]# firewall-cmd --zone=public --remove-service=ftp
success
删除后:
[root@adai003 ~]# firewall-cmd --zone=public --list-service
dhcpv6-client ssh
  • 永久删除
[root@adai003 ~]# firewall-cmd --zone=public --list-service
ftp dhcpv6-client http ssh
[root@adai003 ~]# firewall-cmd --zone=public --remove-service=ftp --permanent 
success
[root@adai003 ~]# firewall-cmd --reload 
success
[root@adai003 ~]# firewall-cmd --zone=public --list-service
dhcpv6-client http ssh

配置文件

  • zone的系统配置文件位置:/etc/firewalld/zones/
[root@adai003 ~]# ls /etc/firewalld/zones/
public.xml  public.xml.old

[root@adai003 ~]# cat /etc/firewalld/zones/public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="dhcpv6-client"/>
  <service name="http"/>
  <service name="ssh"/>
</zone>

说明: public.xml.old相当于一个备份文件,每次编辑public.xml时,系统会自动将原public.xml内容备份到public.xml.old。

  • zone配置文件模板
[root@adai003 ~]# ls /usr/lib/firewalld/zones/
block.xml  drop.xml      home.xml      public.xml   work.xml
dmz.xml    external.xml  internal.xml  trusted.xml
  • firewalld内各项服务的配置文件模板
[root@adai003 ~]# ls /usr/lib/firewalld/
icmptypes  ipsets  services  xmlschema  zones

注: 每次编辑配置文件后需要重新加载(reload)firewall-cmd才生效。

应用

需求: ftp服务自定义端口1121,需要在work zone下面放行ftp。

方法:

步骤一:复制ftp的配置文件到/etc/firewalld/services/

[root@adai003 ~]# cp /usr/lib/firewalld/services/ftp.xml  /etc/firewalld/services/

步骤二:编辑该文件,将port="21"改为port="1121"

[root@adai003 ~]# vim /etc/firewalld/services/ftp.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>FTP</short>
  <description>FTP is a protocol used for remote file transfer. If you plan to make your FTP server publicly available, enable this option. You need the vsftpd package installed for this option to be useful.</description>
  <port protocol="tcp" port="1121"/>
  <module name="nf_conntrack_ftp"/>
</service>

步骤三:复制workzone的配置文件到/etc/firewalld/zones/

[root@adai003 ~]# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/

步骤四:编辑该文件,增加“<service name="ftp"/>”

[root@adai003 ~]# vim /etc/firewalld/zones/work.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Work</short>
  <description>For use in work areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="ssh"/>
  <service name="dhcpv6-client"/>
  <service name="ftp"/>
</zone>

步骤五:重新加载

[root@adai003 ~]# firewall-cmd --reload 
success

Finished!

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • elasticsearch节点迁移 原

    待es恢复至green状态后需要配置logstash、kibana以及grafna(kibana和grafna之前都是从md6采集数据)。

    阿dai学长
  • 常用文本工具cut、wc、sort、uniq、tr

    语法: cut -d ‘分隔符’ [-cf] n [filename] (这里n是正整数) -d:指定分隔符号 -f:指定第几段 -c:后面只有一个数字...

    阿dai学长
  • Ansible自动化运维配置与应用(结合实例)

    注: command模块和shell模块的区别是:shell模块支持“管道符”及脚本。

    阿dai学长
  • 腾讯WeTest移动测试沙龙邀请【第二期】——Unity性能及测试开发沙龙,与你相约ChinaJoy!

                     测试开发者的共同关注! 7月28日ChinaJoy期间,我们将举办Unity性能及测试开发沙龙,分享手游上线前的适配兼容测试...

    WeTest质量开放平台团队
  • The 2018 ACM-ICPC Asia Qingdao Regional Contest M. Function and Function(规律)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4070

    Ch_Zaqdt
  • go-fastdfs安装以及python调用

    上一篇Centos7下FastDFS从安装到入门中讲述了FastDFS的安装以及概念。

    Devops海洋的渔夫
  • 消息中间件的设计与实践

    也无风雨也无晴 消息中间件对应用的解耦 如登陆系统负责向消息中间件发送消息,而其他的系统则向消息中间件来订阅这个消息,然后完成自己的工作. 通过消息中间件解耦...

    于霆霖
  • 消息队列设计精要

    消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。 当今市面上...

    美团技术团队
  • 别让自己成为一名废弃的程序员

    Java架构
  • 「多图警告」手撕排序算法 - iOS进阶必备

    冒泡排序是通过比较两个相邻元素的大小实现排序,如果前一个元素大于后一个元素,就交换这两个元素。这样就会让每一趟冒泡都能找到最大一个元素并放到最后。

    五分钟学算法

扫码关注云+社区

领取腾讯云代金券