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

相關文章
相關標籤/搜索