Firewalld简介

  • 支持网络区域所定义的网络连接以及接口安全等级的动态防火墙管理工具
  • 支持IPv4、IPv6防火墙设置以及以太网桥
  • 支持服务或应用程序直接添加防火墙规则接口
  • 拥有两种配置模式
    (1)运行时配置
    (2)永久配置
    Linux防火墙与iptables_第1张图片
    netfilter
  • 位于Linux内核中的包过滤功能体系
  • 称为Linux防火墙的“内核态”
    Friewalld/iptables
  • Centos7默认的管理防火墙规则的工具(Firewalld)
  • 称为Linux防火墙的“用户态”

Friewalld和iptables的区别
Linux防火墙与iptables_第2张图片
iptables
四表五链!!!(重要)
链就是位置:共有五个,进路由(PRUROUTING)、进系统(INPUT)、转发(FORWORD)、出系统(OUTPUT)、出路由(POSTROUTING);表就是存储的规则;数据包到了该链处,会去对应表中查询设置的规则,然后决定是否放行、丢弃、转发还是修改等等操作。
表当中包含多个链,链当中包含多个规则!
具体的四表:

  • filter表:过滤数据包
  • Nat表:用于网络地址转换(IP、端口)
  • Mangle表:修改数据包的服务类型、TTL、并且可以配置路由实现QOS
  • Raw表:决定数据包是否被状态跟踪机制处理
    具体的五链:
  • INPUT链:进来的数据包应用此规则链中的策略
  • OUTPUT链:外出的数据包应用此规则链中的策略
  • FORWARD链:转发数据包时应用此规则链中的策略
  • PREROUTING链:对数据包作路由选择前应用此链中的规则(所有的数据包进来的时候先有这个链处理)
  • POSTROUTING链:对数据包作路由选择前应用此链中的规则(所有的数据包出来的时候先有这个链处理)
    iptables 【-t 表名】选项 【链名】【条件】【-j 控制类型】
  • -p 设置默认策略:iptables
  • -P:INPUT (DROP|ACCEPT)
  • -F:清空规则链
  • -L:查看规则链
  • -A:在规则链的末尾加入新规则
  • -I:num 在规则链的头部加入新规则
  • -D:删除某一条规则
  • -s:匹配来源地址IP/MASK,加“ !”表示除了这个ip外
  • -d:匹配目标地址
  • -i:网卡名称 匹配从这块网卡流入的数据
  • -o:网卡名称 匹配从这块网卡流出的数据
  • -p:匹配协议如tcp、udp、icmp
  • --dport num 匹配目标端口号
  • --sport num 匹配来源端口号
    Linux防火墙与iptables_第3张图片
    默认的所有端口存放在public区域中。
    访问权限由高到低。高权限访问低权限。

Linux防火墙与iptables_第4张图片
运行时配置

  • 实时生效,并持续至firewalld重新启动或重新加载配置
  • 不中断先有连接
  • 不能修改服务配置
    永久配置
  • 不立即生效,除非Firewalld重新启动或重新加载配置
  • 中断现有连接
  • 可以修改服务配置
    Linux防火墙与iptables_第5张图片
    图形化界面操作不做过多介绍,字符界面操作:
    [root@localhost~]#systemctl 选项 firewalld
    选项:start stop restart status

    防火墙管理操作

  • firewall-cmd命令
  • 支持全部防火墙特性
  • 对于状态和查询模式,命令只返回状态,没有其他输出
  • --permanent参数:携带该参数表示永久配置,否则表示运行时配置
  • [--zone=]选项:不携带此选项表示针对默认区域操作,否则针对指定区域操作
    查询Firewalld状态
    systemctl status firewalld

    Linux防火墙与iptables_第6张图片

    firewall-cmd-reload
    重新加载firewalld的配置

    显示网络连接或接口的默认区域

    firewall-cmd --get-default-zone

    Linux防火墙与iptables
    设置网络连接或接口的默认区域为internal

    firewall-cmd --set-default-zone=internal

    Linux防火墙与iptables
    显示已激活的所有区域

    firewall-cmd --get-active-zones 

    Linux防火墙与iptables
    显示ens33接口绑定的区域

    firewall-cmd --get-zone-of-interface=ens33

    Linux防火墙与iptables
    为ens33接口绑定work区域

    firewall-cmd --zone=work --add-interface=ens33

    Linux防火墙与iptables
    为work区域更改啊绑定的网络接口ens33

    firewall-cmd --zone=work --change-interface=ens33

    为work区域删除绑定的网络接口ens33

    firewall-cmd --zone=work --remove-interface=ens33

    显示左右区域及规则

    firewall-cmd --list-all-zones

    显示internal区域的所有规则

    firewall-cmd ---zones=internal --list-all

    现在默认区域的所有规则

    firewall-cmd --list-all

    Linux防火墙与iptables_第7张图片
    Linux防火墙与iptables_第8张图片
    Linux防火墙与iptables_第9张图片
    Linux防火墙与iptables_第10张图片
    Linux防火墙与iptables_第11张图片