firewalld学习--service

Posted a-s-m

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了firewalld学习--service相关的知识,希望对你有一定的参考价值。

service是firewalld中另外一个非常重要的概念。还是拿门卫的例子来解释。

在iptables的时代我们给门卫下达规则时需要告诉他“所有到22号楼的人全部予以放行”、“所有到80号楼的人全部予以放行”等等,

不过到了firewalld的时代就不需要这样了,

而是可以直接下达像“到销售部的全部予以放行”这样的命令,然后门卫再一查发现销售部在80号楼,那么所有到80号楼的人门卫就都会放行了。

这里的楼牌号和端口号相对应,部门名和服务名相对应,

这样就可以理解service的作用了。

从端口号改为服务名主要有两个好处:首先是使用服务名配置的语义清晰,不容易出错;其次在对某个服务的端口号进行修改的时候只需要修改相应的service文件就可以了,而不需要再修改防火墙方案——zone。这其实跟DNS将ip地址和域名关联了起来是一样的道理。下面学生再来给大家介绍一下service的配置文件。

service配置文件的命名规则是<服务名>.xml,比如ssh的配置文件是ssh.xml,http的配置文件是http.xml等,他们默认保存在“/usr/lib/firewalld/services/”目录下,

常见的服务其中都可以找到,

如果我们想修改某个服务的配置,那么可以复制一份到“/etc/firewalld/services/”目录下然后进行修改就可以了,要想恢复默认配置直接将我们自己的配置文件删除就可以了。

例:ssh.xml文件

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>SSH</short>
  <description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. 
        It provides secure encrypted communications.
        If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option.
        You need the openssh-server package installed for this option to be useful.
 </description> <port protocol="tcp" port="22"/> </service>

可以看到这里配置了tcp的22号端口,所以将ssh服务配置到所使用的zone(默认public)中后tcp的22号端口就开放了。

如果想将ssh的端口修改为222,那么只需要将ssh.xml复制一份到“/firewalld/services”中,然后将端口号修改为222就可以了。

当然直接修改“/usr/lib/firewalld/services/”中的配置文件也可以实现,但是强烈建议不要那么做。

明白原理之后使用起来就可以非常灵活了,

比如我们将“/etc/firewalld/services/ssh.xml”文件复制一份到“/etc/firewalld/services/”中,然后将名字改为abc.xml,

并且将abc这个服务配置到所使用的zone中,这时22端口就会开放。

也就是说在zone中所配置的服务其实跟实际的服务并不存在直接联系,而是和相应配置文件中配置的内容有关系。

firewalld的配置方法主要有三种:firewall-config、firewall-cmd和直接编辑xml文件,其中firewall-config是图形化工具,firewall-cmd是命令行工具,

以上是关于firewalld学习--service的主要内容,如果未能解决你的问题,请参考以下文章

Linux学习总结(二十六)防火墙规则之firewalld

firewalld 使用简介

Linux学习笔记(三十三)iptables备份firewalld

学习三十一

linux学习8章-iptables与firewalld防火墙

防火墙 firewalld 的常用命令