以下是 `firewall-cmd` 各区域的详细功能作用说明: ## 区域(Zone)概念 区域是 firewalld 的核心概念,每个区域预定义了一组防火墙规则,根据网络环境的信任级别来划分。 ## 查看所有可用区域 ```bash # 查看系统所有预定义区域 firewall-cmd --get-zones # 查看默认区域 firewall-cmd --get-default-zone # 查看活动区域(绑定到接口的区域) firewall-cmd --get-active-zones ``` ## 各区域详细功能作用 ### 1. **drop(丢弃)** **信任级别:** 最低 **应用场景:** 最高安全级别,只允许出站连接 ```bash # 特性: - 所有传入数据包都被丢弃(无响应) - 只允许出站连接 - 类似于"默认拒绝"策略 # 适用:对外服务器,不需要任何入站连接 ``` ### 2. **block(阻塞)** **信任级别:** 很低 **应用场景:** 高安全级别,对非法访问有响应 ```bash # 特性: - 所有传入连接被拒绝(返回 icmp-host-prohibited) - 只允许出站连接 - 比 drop 更友好,会通知连接被拒绝 # 适用:需要明确拒绝通知的环境 ``` ### 3. **public(公共)** **信任级别:** 低 **应用场景:** 公共网络(默认区域) ```bash # 特性: - 不信任网络上的其他计算机 - 只允许选定的传入连接(如 SSH) - 默认区域 # 适用:机场、咖啡馆等公共WiFi ``` ### 4. **external(外部)** **信任级别:** 中等偏低 **应用场景:** 启用伪装的外部网络(如路由器) ```bash # 特性: - 用于启用了伪装的外部网络 - 信任网络上的其他计算机 - 通常用于网关/路由器 # 适用:网络网关,IPv4伪装启用 ``` ### 5. **internal(内部)** **信任级别:** 高 **应用场景:** 内部网络,其他计算机基本可信 ```bash # 特性: - 用于内部网络 - 信任网络上的其他计算机 - 允许更多服务(如DHCP、SSH、Samba等) # 适用:企业内部网络 ``` ### 6. **dmz(隔离区)** **信任级别:** 中等 **应用场景:** 对外公开服务但限制访问内部网络 ```bash # 特性: - 用于DMZ(非军事区)中的计算机 - 仅允许选定的传入连接 - 限制对内部网络的访问 # 适用:Web服务器、邮件服务器等公开服务 ``` ### 7. **work(工作)** **信任级别:** 高 **应用场景:** 工作场所网络 ```bash # 特性: - 信任网络上的大多数计算机 - 允许更多服务(SSH、DHCPv6-client等) # 适用:公司内部办公网络 ``` ### 8. **home(家庭)** **信任级别:** 高 **应用场景:** 家庭网络环境 ```bash # 特性: - 信任网络上的其他计算机 - 允许更多家庭网络服务