Firewalld 防火墙

一、Firewalld 概述

firewalld 是一种简单、有状态、基于区域的防火墙。策略和区域 用于组织防火墙规则。

firewalld 提供动态管理的防火墙,支持网络/防火墙区域来定义网络连接或接口的信任级别。它支持 IPv4、IPv6 防火墙设置和以太网网桥,并具有运行时和永久配置选项的分离。它还支持服务或应用程序直接添加防火墙规则的接口。

firewalldiptables 的区别在于 firewalld 是动态防火墙(无需重新启动整个防火墙),iptables 是静态防火墙(需重新启动整个防火墙)

 

二、Firewalld 区域

  • 什么是区域

区域定义连接、接口或源地址绑定的信任级别,也可以说是特定场景(如家庭、公共、受信任等)下各种策略的集合。

  • 预定义区域

    1. drop(丢弃区):丢弃任何传入的网络数据包,没有回复(无错误响应)。只能进行传出网络连接,无法传入。
    2. block(限制区):拒绝任何传入的网络连接,IPv4 显示 icmp 主机禁止消息,IPv6 显示 icmp6 adm 禁止的消息。只能在此系统内启动网络连接。
    3. public(公共区):用于公共区域。您不信任网络上的其他计算机不会损坏您的计算机。仅接受选定的传入连接。
    4. external(外部区):用于启用伪装的外部网络,尤其是路由器。您不信任网络上的其他计算机不会损坏您的计算机。仅接受选定的传入连接。
    5. dmz(隔离区也称非军事区):适用于非军事区内的计算机,这些计算机可以通过有限的内部网络进行公开访问。仅接受选定的传入连接。
    6. work(工作区):用于工作区域。你通常相信网络上的其他计算机不会伤害你的计算机。仅接受选定的传入连接。
    7. home(家庭区):用于家庭区域。你通常相信网络上的其他计算机不会伤害你的计算机。仅接受选定的传入连接。
    8. internal(内部区):用于内部网络。你通常相信网络上的其他计算机不会伤害你的计算机。仅接受选定的传入连接。
    9. trusted(可信区):接受所有网络连接。

默认情况下,public(公共区)是默认区域,包含所有接口(网卡)

 

三、Firewalld 防火墙的配置

  • 配置方法

    • firewall-cmd 命令行工具
    • firewall-config 图形化工具
    • 编辑 /etc/firewalld/ 中的配置文件
  • firewalld-cmd 命令选项

--state  获取防火墙的状态

--reload  在不丢失状态信息的情况下重新加载防火墙

--get-zones  获取所有受支持区域的列表

--get-services  获取所有受支持服务的列表

--get-icmptypes  获取所有受支持的 icmp 类型的列表

--list-all-zones  列出所有区域添加或启用的所有内容

--zone=<zone> --list-all  列出指定区域的所有内容,不指定区域则显示默认区域的所有内容

--get-default-zone  获取为网络连接设置的默认区域

--set-default-zone=<zone>  设置默认区域

--get-zone-of-interface=<interface>  获取与接口相关的区域

--zone=<zone> --add-interface=<interface>  向指定区域添加接口

--zone=<zone> --change-interface=<interface>  更改接口所属的区域为指定区域

--zone=<zone> --remove-interface=<interface>  从指定区域中删除接口

--zone=<zone> --query-interface=<interface>  查询接口是否在指定区域中

--zone=<zone> --list-services  列出指定区域中添加的服务

--panic-on  启用紧急模式以在紧急情况下阻止所有网络流量

--panic-off  禁用紧急模式

--query-panic  查询紧急模式,如果启用紧急模式,则返回0,否则返回1。

--zone=<zone> --add-service=<service> [--timeout=<seconds>]   在指定区域中(添加)启用服务

--zone=<zone> --remove-service=<service>  (删除)禁用指定区域中的服务

--zone=<zone> --query-service=<service>  查询指定区域中是否启用了服务

--zone=<zone> --add-port=<port>[-<port>]/<protocol> [--timeout=<seconds>]  在区域中启用端口和协议组合

--zone=<zone> --remove-port=<port>[-<port>]/<protocol>  禁用区域中的端口和协议组合

--zone=<zone> --query-port=<port>[-<port>]/<protocol>  查询区域中是否启用了端口和协议组合

--zone=<zone> --add-masquerade  在指定区域中启用伪装

--zone=<zone> --remove-masquerade  在指定区域中禁用伪装

--zone=<zone> --query-masquerade  查询是否为指定区域启用了伪装

--zone=<zone> --add-icmp-block=<icmptype>  在指定区域中启用(添加) ICMP 块 [作用:对所选互联网控制消息协议 (ICMP) 消息的阻止]

--zone=<zone> --remove-icmp-block=<icmptype>  禁用(删除)指定区域中的 ICMP 块

--zone=<zone> --query-icmp-block=<icmptype>  查询指定区域中指定的 ICMP 块是否存在

--zone=<zone> --add-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }  在区域中启用端口转发或端口映射

--zone=<zone> --remove-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }  禁用区域中的端口转发或端口映射

--zone=<zone> --query-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }  查询指定的端口转发或端口映射在区域中是否存在

--permanent  可用于永久设置选项,只有在服务重新启动/重新加载或系统重新启动后,这些更改才会立即生效。如果没有--permanent选项,那么设定的策略会在服务重启或重新加载时消失。

 

posted @ 2022-12-29 02:38  一个入门学者  阅读(115)  评论(0编辑  收藏  举报