防火牆---firewalld

1、FIREWALLD簡介
vim

   動態防火牆後臺程序FIREWALLD提供一個動態管理的防火牆,用以支持網絡"zones",以分配對一個網絡即相關連接和界面的必定程度的信任。它具有IPV4和IPV6對防火牆設置的支持。它還具有一個通向服務或應用程序以直接增長防火牆規則的接口。瀏覽器

2、FIREWALLD的基本瞭解
服務器

 上層管理工具:iptables(server) ;firewalld(高集成) 網絡

 下層管理工具:iptables(在內核中以表格的形式顯示)
 firewalld域有如下幾種:
   網絡區名稱          默認配置
   trusted(信任)    可接受全部的網絡鏈接
   home(家庭)    用於家庭網絡。僅接受ssh、mdns、ipp-client、samba-client、或dhcpv6-client服務鏈接
   internal(內部)    用於內部網絡,僅接受ssh、mdns、ipp-client、dhcpv6-client服務鏈接
   work(工做)    用於工做區,僅接受ssh、ipp-client或dhcpv6-client服務鏈接
   public(公共)    在公共區域內使用,僅接受ssh或dhcpv6-client服務鏈接,爲firewalld的默認區域
   external(外部)    出去的ipv4網絡鏈接經過此區域假裝和轉發,僅接受ssh服務鏈接
   dmz(非軍事區)    僅接受ssh服務鏈接
   block(限制)    拒絕全部網絡鏈接
   drop(丟棄)    任何接受的網絡數據包都被丟棄,沒有任何回覆
3、 火牆的安裝和開啓:

  1)防火牆firewalld的安裝、開啓  (在一個系統中只能有一種防火牆工做)
ssh

    yum install  firewalld    -y              ##安裝防火牆firewalld
tcp

    systemctl  start  firewalld工具

    systemctl  enable  firewalld
測試

    systemctl status firewalld.service  spa

     firewall-cmd  --list-all                  ##查看firewalld火牆信息
命令行

  2) 防火牆iptables的安裝、開啓(要是開啓iptables的話,必須先關閉firewalld防火牆

    systemctl  stop   firewalld               ##關閉firewalld

    systemctl  mask   firewalld                  ##把firewalld火牆上鎖
    yum install  iptables-server  -y         ##安裝iptables火牆
    systemctl   start   iptables.server
    systemctl  enable   iptables
    iptables  -nL      ##顯示iptables火牆信息
4、使用命令行接口配置防火牆
    firewall-cmd  --state                    ##查看當前火牆的狀態
    firewall-cmd  --get-active-zones         ##查看火牆的活躍域
    firewall-cmd  --get-default-zone         ##查看默認域
    firewall-cmd  --get-zones                ##顯示全部域
    firewall-cmd  --zone=public --list-all   ##顯示域爲public的信息
    firewall-cmd  --get-services             ##查看火牆內可開啓的全部服務
    firewall-cmd  --list-all-zones           ##列出全部域的詳細信息
    firewall-cmd  --set-default-zone=dmz     ##修改默認域爲dmz

     

    firewall-cmd  --add-source=172.25.254.21 --zone=public      ##添加ip到public域中   

    firewall-cmd  --add-interface=eth1 --zone=trusted           ##給trusted域添加接口

     

    firewall-cmd  --get-active-zones         ##查看如今可用的域

     

    firewall-cmd  --remove-source=172.25.254.21 --zone=public  從publuc域中移出ip主機  

     

    注意:當默認活躍類型時trusted的時候,全部請求均可以經過。當爲public的時候,添加進去容許訪問的ip和接口,就能夠進行訪問!
    當爲永久設定的時候,設定完成要使用reload命令從新加載,使其生效。
     修改服務,reload不會馬上中斷(會讀修改的配置文件);complete會馬上中斷

5、火牆端口的修改

   示例:對httpd服務進行測試;http默認端口爲80,當修改httpd服務的配置文件以後,要想在瀏覽器中訪問,得改變火牆中容許的端口號。需進行以下修改

   1)vim  /etc/httpd/conf/httpd.conf  

      

   2) systemctl  restart  httpd

   3) firewall-cmd  --permanent  --add-server=http
      firewall-cmd --permanent --add-port=8080/tcp --zone=public   ##永久修改,至關與改寫了配置文件/etc/firewalld/zones中的public.xml文件(能夠看到有端口信息的存在)

       

      查看/etc/firewalld/zones/public.xml的內容
       

     

   註釋:/etc/firewalld/firewalld.conf       ##火牆的主配置文件

 

6、火牆的高級規則
   firewall-cmd  --direct --get-all-rules         ##查看已有的規則

    cat /etc/services |  grep ssh                            ##查看ssh服務的端口協議等信息    

   iptables -nL                                                       ##查看加進去的規則

   1)實驗一:不讓21的主機訪問22端口

     一、 firewall-cmd  --direct --add-rule ipv4 filter  INPUT  1  -s 172.25.254.21  -p tcp --dport 22  -j  REJECT       ##添加一個規則;類型是filter的input列

        

     

 

    二、 測試結果以下:(在21主機上進行)

     


   三、firewall-cmd  --direct --remove-rule ipv4 filter  INPUT  1  -s 172.25.254.21  -p tcp --dport 22  -j  REJECT            ##刪除規則

     

   2)實驗二:端口轉發(當鏈接121主機的時候,會自動鏈接到221主機上。)           

   一、 首先修改服務器端(121)的火牆信息:

      firewall-cmd  --add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.221               ##添加規則:端口爲22;協議tcp;到達端口22;目的地址爲221

     firewall-cmd  --add-masquerade    

      firewall-cmd --list-all     會顯示目的端口地址
     
       
  二、完成以後,在客戶端進行測試。在鏈接121後的IP爲221:(此時要輸入的密碼爲目的地址221的密碼)

     

    註釋: 在221主機中輸入:---  w   -i  --- 能夠查看鏈接本機的狀況

  三、規則的刪除:

     

  3)實驗三:源地址的轉換(進行不一樣網段的鏈接)
   一、  修改服務端的masquerade爲yes;添加兩個接口的ip (須要有兩個物理網卡)

              [root@desktop121 ~]# firewall-cmd --add-masquerade              ##開啓假裝功能

              

              修改後的網絡接口信息以下所示:

            

    二、修改服務端配置文件(使兩個接口能夠進行轉換)

            sysctl -a |  grep  forward                                                     ##查看forward相關服務的開

           vim   /etc/sysctl.conf ---->  net.ipv4.ip_forward=1            ##開啓接口轉換功能   

           

           sysctl   -p                                                                     ##刷新

                  

   三、客戶端進行ip和網關的設定

         vim  /etc/sysconfig/network-scripts/ifcfg-eth0                       #此處的網關爲服務端中eth1的IP

            

       systemctl  restart  network                                                 ##重啓網絡服務  

       ifconfig   eth0                                                                  ##查看已修改ip

          

   四、客戶端就能夠鏈接其餘網段的ip來測試

        

    補充:firewall-cmd   --add-icmp-block=destination-unreachable         ##添加連接時的提示信息

               firewall-cmd    --remoce-icmp-block=destination-unreachable    ##移除規則

               firewall-cmd    --get-icmptypes                                                            ##查看全部可用提示信息

相關文章
相關標籤/搜索