CentOS 7 系统中,防火墙要怎么使用?

CentOS 7 系统中,默认有两个防火墙管理工具:

  1. firewalld (默认的动态防火墙,基于 D-Bus 管理)

  2. iptables (传统的静态防火墙,底层由 netfilter 提供支持)

是否需要关闭这两个防火墙,取决于你的具体需求。以下是详细分析和操作指南:

1. 两个防火墙的关系

  • firewalld 是 CentOS 7 的默认前端管理工具,底层仍然依赖 iptables/nftables 规则。

  • iptables 是直接操作内核级防火墙规则的传统工具。

  • 两者同时启用可能导致规则冲突 (例如端口开放不一致),但通常 firewalld 会管理 iptables 规则。

2. 是否需要关闭?

场景 建议操作
使用 firewalld 保持 firewalld 开启,无需关闭 iptablesfirewalld 会自动管理规则)。
使用 iptables 关闭 firewalld,直接通过 iptables 配置规则(避免冲突)。
完全禁用防火墙 关闭 firewalld 并清空 iptables 规则(仅限测试环境,生产环境不推荐!)。

3. 操作步骤

(1)查看防火墙状态
复制代码
systemctl status firewalld    # 检查 firewalld 状态
systemctl status iptables     # 检查 iptables 服务(通常未启用)
iptables -L -n                # 查看 iptables 规则
(2)关闭 firewalld
复制代码
sudo systemctl stop firewalld      # 临时停止
sudo systemctl disable firewalld   # 永久禁用
(3)关闭 iptables(如需)
复制代码
sudo systemctl stop iptables       # 临时停止
sudo systemctl disable iptables    # 永久禁用
sudo iptables -F                  # 清空所有规则(谨慎操作!)
(4)启用 iptables(替代 firewalld
复制代码
sudo yum install iptables-services  # 确保 iptables 服务已安装
sudo systemctl enable iptables      # 启用服务
sudo systemctl start iptables       # 启动服务

4. 注意事项

  1. 生产环境建议保留防火墙

    • 使用 firewalld(推荐)或 iptables 至少开启一个,避免暴露所有端口。

    • 通过 firewall-cmdiptables 命令配置放行必要端口(如 SSH、HTTP)。

  2. firewalldiptables 冲突

    • 如果同时修改两者,可能导致规则混乱。建议统一使用一种工具。
  3. 临时测试关闭防火墙

    复制代码
    sudo systemctl stop firewalld
    sudo iptables -F

5. 推荐方案

  • 大多数情况 :保持 firewalld 开启,通过以下命令管理:

    复制代码
    sudo firewall-cmd --zone=public --add-port=80/tcp --permanent  # 放行端口
    sudo firewall-cmd --reload                                    # 重载配置
  • 需要传统 iptables :禁用 firewalld,手动编写 /etc/sysconfig/iptables 规则。


总结

需求 操作
默认安全防护 保持 firewalld 开启,无需操作 iptables
使用自定义规则 关闭 firewalld,启用 iptables-services 并手动配置。
彻底关闭防火墙 停止并禁用 firewalld + 清空 iptables 规则(仅限内网测试环境)。
相关推荐
啊吧怪不啊吧22 分钟前
Linux常见指令介绍下(入门级)
linux·开发语言·centos
lllsure41 分钟前
SpringCloud——负载均衡
服务器·网络·spring cloud
陈大大陈1 小时前
基于 C++ 的用户认证系统开发:从注册登录到Redis 缓存优化
java·linux·开发语言·数据结构·c++·算法·缓存
李菠菜1 小时前
CentOS系统指定版本Docker与Docker-Compose在线安装教程
docker·容器·centos
masx2001 小时前
升级uptime-kuma版本2.0.0-beta.2的cloudflared版本到2025.4.0
运维·后端
maotou5261 小时前
Ubuntu22学习记录
linux·ubuntu
杨凯凡1 小时前
Linux安全防护:全方位服务安全配置指南
linux·运维·服务器·安全
李菠菜1 小时前
CentOS系统中重置Root用户密码的完整步骤详解
linux·运维
Nightwish51 小时前
Linux随记(十七)
linux·运维·服务器
ghostmen1 小时前
Centos 实现 MySql 8.0.40 主从配置
linux·mysql·mysql主从