博客 / Linux/ 解决重启 iptables 服务时 security raw nat mangle fi[FAILED] 错误

解决重启 iptables 服务时 security raw nat mangle fi[FAILED] 错误

解决重启 iptables 服务时 security raw nat mangle fi[FAILED] 错误

问题描述

在重启 iptables 服务时,控制台输出以下错误信息:

Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: security raw nat mangle fi[FAILED]
Unloading iptables modules: [ OK ]
Applying iptables firewall rules: [ OK ]
Loading additional iptables modules: ip_conntrack_netbios_n[FAILED]

这表明在设置链的默认策略和加载额外模块时遇到了问题。

解决方案一:修复 Setting chains to policy ACCEPT 失败

此错误通常与特定内核版本或 iptables 初始化脚本的兼容性问题有关。以下方法在某些旧版本系统中可能有效,但最根本的解决方案可能是升级系统或内核。

  1. 备份并尝试修补 iptables 初始化脚本:
cd /etc/init.d/
cp iptables ~/iptables.backup
wget -O iptables.patch http://bpaste.net/raw/47952/

注意:如果下载链接失效或提示证书错误,请尝试:

wget --no-check-certificate -O iptables.patch http://bpaste.net/raw/47952/
  1. 应用补丁:
patch -p1 < iptables.patch

如果提示需要指定文件,请输入 /etc/init.d/iptables

  1. 清理补丁文件:
rm iptables.patch

重要说明:此补丁链接(bpaste.net/raw/47952)可能已失效,因为原文内容较旧。如果修补无效,建议考虑升级系统或使用更新的防火墙解决方案(如 firewalld 或 nftables)。

解决方案二:修复 Loading additional iptables modules 失败

此错误是因为系统尝试加载一个已废弃或不存在的内核模块 ip_conntrack_netbios_ns

  1. 编辑 iptables 配置文件:
vi /etc/sysconfig/iptables-config
  1. 找到并注释掉加载该模块的行。通常配置类似:
# Load additional iptables modules (space separated).
# Example: IPTABLES_MODULES="ip_conntrack_ftp ip_conntrack_irc"
IPTABLES_MODULES="ip_conntrack_netbios_ns"

将其修改为:

# Load additional iptables modules (space separated).
# Example: IPTABLES_MODULES="ip_conntrack_ftp ip_conntrack_irc"
# IPTABLES_MODULES="ip_conntrack_netbios_ns"
  1. 保存并退出编辑器(在 vi 中按 Esc 键,输入 :wq,然后按回车)。

最终步骤

完成上述修改后,重启 iptables 服务以应用更改:

service iptables restart

或者,在 Systemd 系统中使用:

systemctl restart iptables

总结与建议

本文提供的解决方案针对较旧的 Linux 发行版(如 CentOS 6/RHEL 6)。对于现代系统:

  • CentOS 7/RHEL 7 及以上版本默认使用 firewalld
  • 考虑迁移到 nftables(iptables 的继任者)。
  • 如果问题持续存在,升级内核或更换到更新的发行版可能是最有效的解决方案。

发表评论

您的邮箱不会公开。必填项已用 * 标注。