linux初學者-firewall篇

  linux初學者-firewall篇

         firewalld是防火牆的另外一種程序,與iptables相同,可是使用起來要比iptables簡單的點,不須要了解3張表和5條鏈也可使用。linux

         一、firewall的基本命令vim

         "firewall-cmd --list-all"。查看當前的firewall的信息和配置。網絡

         "firewall-cmd --reload"。從新加載firewall配置,ssh

         "firewall-cmd --add-service=xxxx"。添加一個服務,例以下圖,添加http,使得這個服務的數據能夠經過,可是這個添加是臨時的,從新加載配置後就會消失。tcp

         "firewall-cmd --permanent --add-service=xxxx"。能夠永久添加這個服務。post

         "vim /etc/firewalld/zones/public.xml"。firewall的默認模式"public"的配置文件,以下圖所示,能夠看到添加的服務都在裏面,若是在其中按照格式添加"ftp",從新加載後就添加了這個服務了。測試

         "firewall-cmd --remove-service=xxxx"。能夠去掉某一個服務。spa

         "cd /usr/lib/firewalld/services/"。進入這個目錄後,以下圖所示,輸入"ls",就能夠看到能夠添加哪些服務,而且能夠看到這些服務的名稱了。.net

         "firewall-cmd --permanent --add-port=xxxx/tcp"。使某個端口的數據能夠經過。例如在Apache配置文件中將端口改成8080,則即便firewall中添加了htpp也沒法訪問,由於其設置的能夠經過的端口是80。此時須要用上述命令,添加8080端口,完成後,便可使用Apache訪問。rest

         "firewall-cmd --permanent --add-source=172.25.254.102 --zone=trusted"。表示來自"172.25.254.102"的數據所有經過。若是開啓,firewall不添加http,且改成8080端口後不添加到firewall,"172.25.254.102"主機也能夠訪問Apache。"add"改成"remove"能夠取消。

         "firewall-cmd --permanent --remove-interface=eth1 --zone=public"。將eth1網卡從public模式下移除。

         "firewall-cmd --permanent --add-interface=eth1 --zone=trusted"。將eth1網卡添加到trusted模式下。可是完成後須要重啓防火牆"systemctl restart firewalld"才能夠生效。

        二、firewall的模式

        "firewall-cmd --get-default-zone"。查看firewall的默認模式,是public。

        "firewall-cmd --get-zones"。查看firewall都有哪幾種模式。

        "firewall-cmd --set-default-zone=xxx"。將firewall的默認模式改成xxx,這是一個臨時更改。

        firewall中經常使用的幾種模式以下所示:

        trusted:信任。可接受全部的網絡鏈接。

        home   :家庭。用於家庭網絡,僅接受dhcpv6-client ipp-client mdns samba-client ssh服務鏈接。

        work   :工做。工做網絡,僅接受dhcpv6-client ipp-client ssh服務鏈接。

        public :公共。公共區域使用,僅接受dhcpv6-client ssh服務鏈接,這是firewalld的默認區域。

        external:外部。出去的ipv4網絡鏈接經過此區域假裝和轉發,僅接受ssh服務鏈接。

        dmz    :非軍事區。僅接受ssh服務鏈接。

        block  :限制。拒絕全部網絡鏈接。

        drop   :丟棄。任何接收的網絡數據包都被丟棄,沒有任何回覆。

        三、firewall的應用

        例以下圖所示,client的主機能夠經過ssh鏈接上server主機。去掉server主機上所添加的ssh服務,這樣全部主機都不能鏈接了。而後在server主機上配置"firewall-cmd --permanent --direct --add-rule -ipv4 filter INPUT 0 ! -s 172.25.254.102 -p tcp --dport 22 -j ACCEPT",該策略表示除了172.25.254.102的主機的數據均可以經過22端口。添加後可使用"firewall-cmd --direct --get-all-rules"來查看所添加的策略。

        完成後用client測試,從新經過ssh鏈接,發現就鏈接不上了。

        去除這條策略將"add"改成"remove"便可。

        四、firewall的路由策略

       與iptables相同,firewall也能夠添加路由策略,使得不一樣網段的主機也能夠鏈接。三臺主機的IP與網關與iptables篇中相同。

       "firewall-cmd --list-all"。基本上是最初的樣子。

       firewall的路由策略配置以下所示:

       "firewall-cmd --permanent --add-masquerade"。打開地址假裝功能。

       "firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=172.25.254.202 masquerade""。該策略表示,將經過server主機的數據都封裝爲IP"172.25.254.202"。

       "firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=172.25.254.0/24 forward-port port=22 protocol=tcp to-port=22 to-addr=172.25.2.102""。該條策略表示,將全部"172.25.254"網段的經過22端口的數據轉到"172.25.2.102"主機上。

       完成後重啓firewall生效。"firewall-cmd --list-all"能夠看到這些策略。

       測試時,"2"網段的client主機能夠成功鏈接"254"網段的"172.25.254.2"主機。與iptables相同,"172.25.254.2"的主機上看到的依舊是"172.25.254.202"的鏈接,ssh鏈接這個IP就會自動鏈接到"2"網段的client主機。

       iptables和firewall是防火牆中經常使用的兩種程序,能夠靈活運用。

相關文章
相關標籤/搜索