用活firewalld防火牆之service

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

前面學生已經給你們介紹了在firewalld中service的概念以及在zone中怎麼使用service,可是service自己怎麼配置咱們還沒講,本節學生就來給你們介紹service自己的配置。app

service配置文件

service相對於zone來講結構要簡單的多,其總體配置文件結構以下tcp

1 <service [version="string"]>
2      [<short>short description</short>]
3      [<description>description</description>]
4      [<port [port="portid[-portid]"] protocol="protocol"/>]
5      [<module name="helper"/>]
6      [<destination ipv4="address[/mask]" ipv6="address[/mask]"/>]
7 </service>

firewall-cmd分別提供了兩個命令來建立和刪除serviceui

1 firewall-cmd --permanent --new-service='service'
2 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/」目錄中,而後修改文件名和其中的內容。this

下面學生對service中的每一個配置項給你們解釋一下spa

version

version是service節點的一個可選屬性,用於表示service的版本。.net

short

short在zone、icmptype等配置文件中也存在,其做用是簡介,主要是讓咱們對所配置的內容有所瞭解,相似於註釋的做用。unix

description

做用跟short相同,不過描述信息更加詳細。excel

port

服務所對應的端口,這項是service中很是重要的一個配置項,大部分service主要就是對port進行綁定的,當一個service綁定了指定端口以後,該端口接收到的鏈接就會當成這個service,而後到所對應的zone中去查詢規則,從而判斷是否能夠放行。code

一個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

1 <?xml version="1.0" encoding="utf-8"?>
2 <service>
3   <short>FTP</short>
4   <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>
5   <port protocol="tcp" port="21"/>
6   <module name="nf_conntrack_ftp"/>
7 </service>

這裏就使用了nf_conntrack_ftp這個helper,關於netfilter中helper的更多詳細內容你們能夠查看學生在參考文獻中給你們列出的兩個連接地址。

destination

destination很是簡單,他就表示目標地址,也就是根據目標地址來綁定服務,他有兩個屬性:ipv4和ipv6,分別用於綁定ipv4和ipv6的地址,可使用單個地址也可使用掩碼。

另外,在一個service中destination最多隻能出現一次。

使用service

編輯完service配置文件後咱們就能夠在zone中使用了,具體使用方法學生在前面已經給你們介紹過,這裏就再也不重述了。

 

 

 

參考文獻

一、http://blog.chinaunix.net/uid-23069658-id-3169450.html  二、http://blog.csdn.net/appletreesujie/article/details/6838218
相關文章
相關標籤/搜索