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-cmd 或 iptables 命令配置放行必要端口(如 SSH、HTTP)。

  2. firewalld 与 iptables 冲突

    • 如果同时修改两者,可能导致规则混乱。建议统一使用一种工具。

  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 规则(仅限内网测试环境)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值