firewalld学习--service

service是firewalld中另一个很是重要的概念。仍是拿门卫的例子来解释。html

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

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

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

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

这样就能够理解service的做用了。this

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

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

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

若是咱们想修改某个服务的配置,那么能够复制一份到“/etc/firewalld/services/”目录下而后进行修改就能够了,要想恢复默认配置直接将咱们本身的配置文件删除就能够了。xml

例: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是命令行工具,

相关文章
相关标签/搜索