前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux系统firewalld、zone、service

Linux系统firewalld、zone、service

作者头像
阿dai学长
发布2019-04-03 14:51:09
1.3K0
发布2019-04-03 14:51:09
举报
文章被收录于专栏:阿dai_linux阿dai_linux

10.20 firewalld的9个zone

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

代码语言:javascript
复制
关闭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类型:
代码语言:javascript
复制
[root@adai003 ~]# firewall-cmd --get-zones
work drop internal external trusted home dmz public block

关于9种zone的解析:

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

  • 查看系统默认的zone:
代码语言:javascript
复制
[root@adai003 ~]# firewall-cmd --get-default-zone 
public

10.21 firewalld关于zone的操作

设置默认的zone

代码语言:javascript
复制
设置默认的zone:
[root@adai003 ~]# firewall-cmd --set-default-zone=work
success

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

查看指定网卡的zone:

代码语言:javascript
复制
[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:

代码语言:javascript
复制
[root@adai003 ~]# firewall-cmd --zone=work --add-interface=ens37
success
[root@adai003 ~]# firewall-cmd --get-zone-of-interface=ens37
work

给指定网卡更改zone

代码语言:javascript
复制
[root@adai003 ~]# firewall-cmd --zone=block --change-interface=ens37
success
[root@adai003 ~]# firewall-cmd --get-zone-of-interface=ens37
block

给指定网卡删除zone

代码语言:javascript
复制
[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

代码语言:javascript
复制
[root@adai003 ~]# firewall-cmd --get-active-zones 
work
  interfaces: ens37
public
  interfaces: ens33

10.22 firewalld关于service的操作

查看系统所有service

代码语言:javascript
复制
[root@adai003 ~]# firewall-cmd --get-services 

查看当前zone下的service

代码语言:javascript
复制
[root@adai003 ~]# firewall-cmd --list-services 
dhcpv6-client ssh

查看指定zone下的service

代码语言:javascript
复制
[root@adai003 ~]# firewall-cmd --zone=public --list-services 
dhcpv6-client ssh

添加一个服务到某个zone下

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

删除zone下某服务

  • 临时删除
代码语言:javascript
复制
删除前:
[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
  • 永久删除
代码语言:javascript
复制
[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/
代码语言:javascript
复制
[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配置文件模板
代码语言:javascript
复制
[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内各项服务的配置文件模板
代码语言:javascript
复制
[root@adai003 ~]# ls /usr/lib/firewalld/
icmptypes  ipsets  services  xmlschema  zones

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

应用

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

方法:

代码语言:javascript
复制
步骤一:复制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({});

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017/07/14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 10.20 firewalld的9个zone
    • 9种zone:
    • 10.21 firewalld关于zone的操作
      • 设置默认的zone
        • 查看指定网卡的zone:
          • 给指定网卡增加zone
            • 给指定网卡更改zone
              • 给指定网卡删除zone
                • 查看系统中所有网卡所在的zone
                • 10.22 firewalld关于service的操作
                  • 查看系统所有service
                    • 查看当前zone下的service
                      • 查看指定zone下的service
                        • 添加一个服务到某个zone下
                          • 删除zone下某服务
                            • 配置文件
                              • 应用
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档