原文地址:http://www.excelib.com/article/291/show

前面学生已经给大家介绍了在firewalld中service的概念以及在zone中怎么使用service,但是service本身怎么配置我们还没讲,本节学生就来给大家介绍service本身的配置。

service配置文件

service相对于zone来说结构要简单的多,其整体配置文件结构如下

 <service [version="string"]>
[<short>short description</short>]
[<description>description</description>]
[<port [port="portid[-portid]"] protocol="protocol"/>]
[<module name="helper"/>]
[<destination ipv4="address[/mask]" ipv6="address[/mask]"/>]
</service>

firewall-cmd分别提供了两个命令来创建和删除service

 firewall-cmd --permanent --new-service='service'
firewall-cmd --permanent --delete-service='service'

不过我们如果直接编辑xml文件应该更简单,前面学生给大家介绍service概念的时候已经给大家介绍过了操作service配置文件的方法了,大部分服务在“/usr/lib/firewalld/services/”目录下都可以找到,不过我们不要直接修改而要复制一份到“/etc/firewalld/services/”中然后再进行修改,当然如果想自己创建一个服务也可以直接在“/etc/firewalld/services/”目录中创建,另外,更好的做法是在“/usr/lib/firewalld/services/”中找一个类似的服务复制一份到“/etc/firewalld/services/”目录中,然后修改文件名和其中的内容。

下面学生对service中的每个配置项给大家解释一下

version

version是service节点的一个可选属性,用于表示service的版本。

short

short在zone、icmptype等配置文件中也存在,其作用是简介,主要是让我们对所配置的内容有所了解,类似于注释的作用。

description

作用跟short相同,不过描述信息更加详细。

port

服务所对应的端口,这项是service中非常重要的一个配置项,大部分service主要就是对port进行绑定的,当一个service绑定了指定端口之后,该端口接收到的连接就会当成这个service,然后到所对应的zone中去查询规则,从而判断是否可以放行。

一个service中可以配置多个port节点,这在有的时候是非常有用的,比如

port节点有两可个配置的属性:port和protocol

port属性

port用来配置所使用的端口号,可以是单个端口也可以是一个端口段,比如port=100-105表示100到105之间的端口号,另外,port属性是个可选属性,可以不进行设置。

protocol属性

protocol属性用于指定所对应的协议,如果port属性不为空,那么protocol应该设置为tcp或者udp,如果port属性为空(没设置),那么protocol可以设置为/etc/protocols中所包含的任意协议。

module

module用于设置netfilter的helper。学生前面给大家介绍过,firewalld其实是基于netfilter进行工作的,netfilter中的helper主要用于连接的跟踪,这样就可以实现“有状态的防火墙”,也就是将相关的连接管理到一起。一个典型的例子就是ftp的连接,我们知道一般来说ftp使用的是21号端口,不过21号端口主要是用来传输命令的,实际传输文件又会使用一个其他的端口,不过这两个连接还有内在的联系,这种情况就可以使用netfilter中的helper来处理,在我们这里service中就是module节点。我们看一下firewalld默认给我们提供的ftp的service配置文件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=""/>
<module name="nf_conntrack_ftp"/>
</service>

这里就使用了nf_conntrack_ftp这个helper,关于netfilter中helper的更多详细内容大家可以查看学生在参考文献中给大家列出的两个链接地址。

destination

destination非常简单,他就表示目标地址,也就是根据目标地址来绑定服务,他有两个属性:ipv4和ipv6,分别用于绑定ipv4和ipv6的地址,可以使用单个地址也可以使用掩码。

另外,在一个service中destination最多只能出现一次。

使用service

编辑完service配置文件后我们就可以在zone中使用了,具体使用方法学生在前面已经给大家介绍过,这里就不再重述了。

参考文献

1、http://blog.chinaunix.net/uid-23069658-id-3169450.html 
2、http://blog.csdn.net/appletreesujie/article/details/6838218

用活firewalld防火墙之service的更多相关文章

  1. centos7 firewall-cmd 用活firewalld防火墙中的zone

    原文:http://www.excelib.com/article/290/show/ firewalld中zone的含义学生前面已经给大家介绍过了,说白了一个zone就是一套规则集.可是什么时候该用 ...

  2. 用活firewalld防火墙中的zone

    原文地址:http://www.excelib.com/article/290/show firewalld中zone的含义学生前面已经给大家介绍过了,说白了一个zone就是一套规则集.可是什么时候该 ...

  3. 用活Firewalld防火墙之direct

    原文地址:http://www.excelib.com/article/294/show 学生在前面已经给大家介绍过了Firewalld中direct的作用,使用他可以直接使用iptables.ip6 ...

  4. CentOS 7出现Failed to start firewalld.service: Unit is masked的解决办法和firewalld 防火墙开关

    说明:刚刚使用systemctl start firewalld命令开启防火墙的时候,却开不成功,出现Failed to start firewalld.service: Unit is masked ...

  5. 第8章 Iptables与Firewalld防火墙

    章节简述: 红帽RHEL7系统已经用firewalld服务替代了iptables服务,新的防火墙管理命令firewall-cmd与图形化工具firewall-config. 本章节基于数十个防火墙需求 ...

  6. CentOS7使用firewalld防火墙配置端口

    安装启用firewalld防火墙 CentOS7默认的防火墙是firewalld 如果没有firewalld防火墙,可以执行yum install firewalld 命令进行安装 firewalld ...

  7. CentOS7、REHL7的firewalld防火墙使用简单说明

    title: CentOS7.REHL7的firewalld防火墙使用简单说明 categories: Linux tags: - Linux timezone: Asia/Shanghai date ...

  8. Linux firewalld 防火墙

    Linux firewalld 防火墙  简介 RHEL 7 系统中集成了多款防火墙管理工具,其中 firewalld(Dynamic Firewall Manager of Linux system ...

  9. CentOS 7 打开关闭FirewallD防火墙端口命令

    CentOS 7 使用firewalld代替了原来的iptables,使用方法如下: >>>关闭防火墙 systemctl stop firewalld.service        ...

随机推荐

  1. L3-010. 是否完全二叉搜索树

    L3-010. 是否完全二叉搜索树 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 将一系列给定数字顺序插入一个初始为空的二叉搜 ...

  2. 企业号验证后携带URL参数跳转问题

    http://report.dyxx.com/authorize/weixinlogin.aspx?url=http://user.dyxx.com/Xshow/lsWX.aspx?code=0000 ...

  3. Java语言基础-运算符

    一丶逻辑运算符 1.&和&&的区别 (1).两个逻辑运算符的结果是一样的 (2).当第一个表达式为false时,&是会判断后边的表达式,而&&会产生短路 ...

  4. MAC 下安装 SVN

    在mac下安装svn走了很多弯路,进过探索,现在对svn的安装做了总结,可以分为2种: 1.由于 xCode自带svn,所以可以安装xCode 1).打开App Store,搜索xCode,下载安装 ...

  5. swift metal ios8 关键字.

    swift metal ios8  关键字. 4000API. 无所谓谁打败谁吧. 行业内用户用的多 资源多 问题容易解决. 今年明显unity 火热程度非常. 然,万变不离其中. 对于游戏产品来说, ...

  6. learn go anonymous function

    package main // 参考文档: // https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/06.8.md im ...

  7. sqlserver 执行脚本报内存溢出的处理方式

    用微软自带的sqlcmd工具,可以导入执行.以SQL Server 2008R2版本为例: 第一步:Win+R 键入:cmd 命令,开启命令行工具: 第二步:键入:cd C:\Program File ...

  8. 考研系列 HDU2241之早起看书 三分

    考研并不是说说就可以了,要付诸于行动. 对于Lele来说,最痛苦的事莫过于早起看书了,不过为了考研,也就豁出去了.由于早起看书会对看书效率产生影响,所以对于要什么时候起床看书,还是有必要考虑的. 经过 ...

  9. Page View Controllers

    Page View Controllers You use a page view controller to present content in a page-by-page manner. A ...

  10. 如何通过eclipse查看、阅读hadoop2.4源码

    问题导读:1.官网src包下载包,能否直接使用?2.如何跟踪和查看hadoop源码? 此篇是从零教你如何获取hadoop2.4源码并使用eclipse关联hadoop2.4源码基础上的一个继续,上文其 ...