天天看點

firewall防火牆(一)筆記

一、Linux防火牆功能

1、netfilter子產品和防火牆的管理工具

    1)、netfilter子產品

        是Linux系統的包過濾子產品

        linux系統是否支援防火牆功能是netfilter決定的

    2)、防火牆的管理工具

        firewalld    CentOS7

        iptables    CentOS6

    3)、firewalld和iptables的差別

        firewalld支援圖形管理簡單友善

        iptables隻能使用指令行管理使用繁瑣

    4)防火牆的作用 

        對資料包進行過濾,發現可疑流量進行阻斷

    5)防火牆的特點 

        增強安全

        防止外網對内部網絡發送攻擊

2、防火牆功能分類

    1)、代理防火牆

        管理應用程式

        監控應用程式通路資料情況

        過濾使用者通路資源

        需要指定防火牆代理IP位址和端口上網

    2)、網絡防火牆

        工作在網絡層

        能夠對資料包進行識别過濾

        netfilter防火牆子產品工作在網絡層

    3)、狀态化防火牆

        根據狀态化清單進行通路控制

        動态識别網絡中的資料包

        硬體防火牆屬于狀态化防火牆

        ASA屬于狀态化防火牆

3、防火牆的類型

    1)軟體防火牆

        Windows防火牆、iptables、firewalld、TMG都屬于軟體防火牆

        處理資料速度慢

    2)硬體防火牆

        華為防火牆、深信服、ASA防火牆都屬于硬體防火牆

        處理資料速度快

        可靠性強

5、firewalld的新功能和配置模式

    1)、firewall的新功能

        支援ipv4和ipv6

        将網絡劃分成不同的區域

        将規則應用到區域中限制特定的内容

    2)、配置模式

        運作配置模式:臨時配置防火牆使用,防火牆規則不能儲存

        永久配置模式:配置防火牆規則儲存在配置檔案中永久生效

6、firewalld資料處理流程和常見的區域

    1)、firewalld處理的流程

        源位址關聯到特定區域,執行區域中所設定的規則

        源位址沒有關聯到特定區域,執行接口所在的防火牆規則

        接口沒有關聯到防火牆區域,接口使用預設區域中的防火牆規則

    2)、firewalld防火牆區域的類型

        trusted        信任區域    接受所有網絡連接配接。

        public        公共區域    除非與傳出流量相關,或與ssh或dhcpv6-client預定義服務比對,否則拒絕流量傳入。新添加網絡接口的預設區域。            //在公共區域内部使用,不能相信網絡内部的其他計算機不會對您的計算機造成危害,隻能接收通過選擇的連接配接。

        work        工作區域    除非與傳出流量相關,或與ssh、ipp-client、dhcpv6-client預定義服務比對,否則拒絕流量傳入。                        //為工作區。您可以基本相信網絡内部的其他電腦不會危害您的電腦。僅接收通過選擇的連接配接。

        home        家庭區域    除非與傳出流量相關,或與ssh、ipp-client、mdns、samba-client、dhcpv6-client預定義服務比對,否則拒絕流量傳入。    //用于家庭網絡。您可以基本信任網絡内部的其他計算機不會危害您的計算機。僅接收通過選擇的連接配接。

        internal    内部區域    除非與傳出流量相關,或與ssh、ipp-client、mdns、samba-client、dhcpv6-client預定義服務比對,否則拒絕流量傳入。    //用于内部網絡。您可以基本上信任網絡内部的其他計算機不會威脅您的計算機。隻需接受通過選擇的連接配接。

        external    外部區域    除非與傳出流量相關,或與ssh預定義服務比對,否則拒絕流量傳入。大部分攻擊發生在目前區域。                            //通過此區域轉發的ipv4傳出流量将進行位址僞裝,可用于為路由器啟用了僞裝功能的外部網絡。

        dmz            隔離區域    除非與傳出流量相關,或與ssh預定義服務比對,否則拒絕流量傳入。儲存對公網使用者提供的伺服器,允許出不允許進。        //用于您的非軍事區域的電腦,此區域内可公開通路,可以有限地進入您的内部網絡,僅接收通過選擇的連接配接。

        block        限制區域    除非與傳出流量相關,否則拒絕流量傳入。                                                                            //任何接收的網絡連接配接都被IPv4的icmp-host-prohibited資訊和IPv6的icmp6-adm-prohibited資訊所拒絕。

        drop        丢棄區域    除非與傳出流量相關,否則丢去流量傳入。并且不産生ICMP的錯誤響應。                                                //任何接收的網絡資料包都被替換,沒有任何回複。僅能有發送出去的網絡連接配接。

二、配置firewalld防火牆

    1、firewalld防火牆配置工具類型

        1)、firewalld-config

            圖形配置管理工具

        2)、firewalld-cmd

            指令行配置管理工具

        3)、修改防火牆配置檔案

            /etc/firewalld/firewalld.conf

    2、防火牆的基本配置

        1)、修改預設區域

[[email protected] ~]# firewall-cmd --set-default-zone=internal 

success

[[email protected] ~]# firewall-cmd --get-active-zones 

internal

        2)、顯示所有區域中的預設規則

[[email protected] ~]# firewall-cmd --list-all-zones 

-----------------------------------

firewall-cmd 指令的區域管理選項說明

--get-default-zone                            //顯示網絡連接配接或接口的預設區域

--set-default-zone=<zone>                    //設定網絡連接配接或接口的預設區域

--get-active-zones                            //顯示已激活的所有區域

--get-zone-of-interface=<interface>            //顯示指定接口綁定的區域

--zone=<zone> --add-interface=<interface>    //為指定接口綁定區域

--zone=<zone> --change-interface=<interface>//為指定的區域更改綁定的網絡接口

--zone=<zone> --remove-interface=<interface>//為指定的區域删除綁定的網絡接口

--list-all-zones                            //顯示所有區域及其規則

--zone=<zone> --list-all                    //顯示指定區域的所有規則(省略--zone=<zone>則表示僅對預設區域操作)

firewall-cmd 指令的區域管理示例

systemctl start firewalld

systemctl restart firewalld

systemctl enable firewalld

systemctl disable firewalld

systemctl stop firewalld

systemctl status firewalld

firewall-cmd --state                                        //檢視其允許狀态

firewall-cmd --get-zones                                    //顯示預定義的區域

firewall-cmd --get-services                                 //顯示預定義的服務

firewall-cmd --get-icmptypes                                 //顯示預定義的ICMP類型

firewall-cmd --get-default-zone                             //顯示目前系統中的預設區域

firewall-cmd --list-all                                        //顯示預設區域的所有規則

firewall-cmd --get-zone-of-interface=ens33                     //顯示網絡接口ens33的對應區域

firewall-cmd --zone=internal --add-interface=ens33            //将接口加入internal區域

将網絡接口ens33對應區域更改為internal區域

firewall-cmd --zone=internal --change-interface=ens33         //為指定的區域更改綁定的網絡接口

firewall-cmd --zone=internal --list-interfaces                 //顯示指定區域的所有規則

firewall-cmd --get-zone-of-interface=ens33                     //顯示網絡接口ens33的對應區域

firewall-cmd --zone-internal --remove-interface=ens33        //将ens33從internal區域移除

-----------------------------------------

firewall-cmd --get-active-zones                             //顯示所有激活區域

firewall-cmd 指令區域中服務管理的常用選項說明

[--zone=<zone>]--list-services                                //顯示指定區域内允許通路的所有服務

[--zone=<zone>]--add-service=<service>                        //為指定區域設定允許通路的某項服務

[--zone=<zone>]--remove-service=<service>                    //删除指定區域已設定的允許通路的某項服務

[--zone=<zone>]--list-ports                                    //顯示指定區域内允許通路的所有端口号

[--zone=<zone>]--add-port=<portid>[-<portid>]/<protocol>    //為指定區域設定允許通路的某個/某段端口号(包括協定名)

[--zone=<zone>]--remove-port=<portid>[-<portid>]/<protocol> //删除指定區域設定允許通路的某個/某段端口号(包括協定名)

[--zone=<zone>]--list-icmp-blocks                            //顯示指定區域内拒絕通路的所有ICMP類型

[--zone=<zone>]--add-icmp-block=<icmptypes>                    //為指定區域設定拒絕通路的某項ICMP類型

[--zone=<zone>]--remove-icmp-block=<icmptypes>                //删除指定區域已設定的拒絕通路的某項ICMP類型,省略--zone=<zone>時表示對預設區域操作

為預設區域設定允許通路的服務

firewall-cmd --list-services                                //顯示預設區域内允許通路的所有服務

firewall-cmd --add-service=http                                //設定預設區域允許通路http服務

firewall-cmd --add-service=https                            //設定預設區域允許通路https服務

firewall-cmd --list-services                                //顯示預設區域内允許通路的所有服務

為internal區域設定允許通路的服務

firewall-cmd --zone=internal --add-service=mysql             //設定internal區域允許通路MySQL服務

firewall-cmd --zone=internal --remove-service=samba-client    //設定internal區域移除samba-client服務

firewall-cmd --zone=internal --list-services                 //顯示internal區域内允許通路的所有服務

端口管理

firewall-cmd --zone=internal --add-port=443/tcp                //設定internal區域打開443/tcp端口

firewall-cmd --zone=internal --remove-port=443/tcp            //設定internal區域禁止443/tcp端口

firewall-cmd --zone=internal --list-ports                    //檢視區域中所有允許的端口

ICMP管理

設定internal區域

firewall-cmd --zone=internal --list-icmp-blocks                    //檢視内部區域是否運作使用PING

firewall-cmd --zone=internal --add-icmp-block=echo-request         //添加阻止使用PING

firewall-cmd --zone=internal --add-icmp-block=echo-reply        

firewall-cmd --zone=internal --remove-icmp-block=echo-request    //删除阻止發送PING請求

3、防火牆的配置模式

    1)、防火牆配置模式的類型

    --reload                //重新加載防火牆規則

    --permanent                //永久生效防火牆規則

    --runtime-to-permanent    //将運作配置儲存到永久生效配置檔案中

    2)、允許使用者通路http服務的80端口

    firewall-cmd --zone=internal --add-port=80\tcp --permanent

    firewall-cmd --zone=internal --add-service=http --permanent

繼續閱讀