firewall防火墙笔记

Posted 醉人与轩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)、修改默认区域
[root@centos001 ~]# firewall-cmd --set-default-zone=internal 
success
[root@centos001 ~]# firewall-cmd --get-active-zones 
internal
        2)、显示所有区域中的默认规则
[root@centos001 ~]# 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
 

以上是关于firewall防火墙笔记的主要内容,如果未能解决你的问题,请参考以下文章

整理笔记-防火墙实现iptables防火墙搭建

CentOS 7安装配置iptables笔记

Linux自学笔记——iptables

firewall防火墙

centos7 firewall 防火墙

firewall防火墙