centos 上没有安装 iptables

centos 上没有安装 iptables

如果一台机器没有安装iptables,防火墙还运行吗?

如果是,我该如何禁用/更改规则?

如果我输入命令,iptables我会收到响应:

iptables v1.4.7: no command specified

[root@ruad1 ~]# iptables -L
FATAL: Module ip_tables not found.
iptables v1.4.7: can't initialize iptables table `filter': Permission denied (you must be root)
Perhaps iptables or your kernel needs to be upgraded.

我一直在搜索,但有关 centos 防火墙的所有文档似乎都提到了 iptables。

如果我做 IP 路由列表,似乎有很多规则?

编辑:回答评论中的问题:

输出ls -alL /sbin/iptables

-rwxr-xr-x 1 root root 54200 Nov 23 2013 /sbin/iptables 

当我执行 iptables restart 时,我收到以下内容

iptables 重启输出

内核版本:

2.6.32-5-vserver-amd64

/lib/modules/2.6.32-5-vserver-amd64 的内容

/lib/模块/2.6.32-5-vserver-amd64

我使用 iptables 发出的任何命令(重新启动、停止..)都会收到与上面粘贴的相同的错误。

/sbin/iptables output:

iptables v1.4.7: can't initialize iptables table `filter': Permission denied (you must be root)

Perhaps iptables or your kernel needs to be upgraded.

输出touch /tmp/foo; ls -la /tmp/foo

-rw-r--r-- 1 root root 0 Jun 27 16:51 /tmp/foo

答案1

看起来这台机器正在虚拟化环境中运行,或者更具体地说:操作系统级虚拟化环境,如 LXC、OpenVZ 或 Virtuozzo。内核版本(2.6.32-5-虚拟服务器-amd64) 泄露了这一点。

在这样的环境中,内核在主机和客户系统之间共享,并且并非所有内核 API 都可在虚拟机中使用。我猜这就是您在调用时出现权限错误的原因iptables

当你查明你的机器在哪个环境中运行时,你也许能够在线找到解决方案:

但您可能必须联系主机系统的管理员来进行必要的更改。

答案2

首先尝试这个命令:

iptables -t nat -L

并且还检查 iptables 的已加载模块列表,可能是缺少模块。

cat /proc/net/ip_tables_matches

检查 /etc/sysconfig/iptables 中的规则是否有任何可疑的条目或空格字符。

其次尝试这个:

$ sudo grep -R "options nf_conntrack ip_conntrack_disable_ve0=1" /etc/modprobe.d/

and replace the "1" with "0":

options nf_conntrack ip_conntrack_disable_ve0=0

重启系统

答案3

通常,iptables 功能应包含在基本的 CentOS 6 安装(带最小网络)中,而其是否处于活动状态取决于是否加载模块(ip_tables 和 iptable_filter)。

要启用/禁用 iptables,您可以使用 service 命令来实现。(service iptables start/stop/restart,如 TBI infotech 所列。)

根据给定的日志 - “错误:未找到模块 ip_tables”,我看起来你的 ip_tables 模块不存在或被重新定位到某个地方。

另外,可能是你的内核版本与系统中的模块库不匹配。然后,你可以检查以下内容来确认

  1. modinfo ip_tables(如果失败,则意味着您无法在操作内核中找到目标模块文件。)

  2. 查找您正在运行的内核版本(uname -r),您的内核模块路径应该在文件夹“/lib/modules/ uname -r/”中。

  3. 正常情况下,文件“ip_tables.ko”应该位于路径“/lib/modules// uname -rkernel/net/ipv4/netfilter/”中。否则,你的 iptables 服务将无法运行。

答案4

也许这只是 PATH 的问题。尝试在 PATH 定义中放入 /sbin 而不是 /bin。

编辑:啊,好吧,现在你说它是 Debian。随便吧。

相关内容