Iptables 子网

Iptables 子网

我有一条 iptable 规则,允许 IP 子网。规则如下:

iptables -I 输入 2 -i eth0 -s xxxx/24 -d xxXx -j 接受

例如,我想允许子网 172.16.0.0/24。尽管我已将此子网配置为允许,但我是否会遇到此子网的 IP 无法访问的问题?

我正在处理这样的问题。我已将 172.16.0.0/24 配置为允许从 iptables 访问,但当我尝试从 IP 172.16.0.9 访问时,却无法访问。

答案1

您可以通过启用 TRACE 目标来调试 netfilter 规则:

首先加载相关内核模块,直接将日志记录到syslog中:

modprobe -i ipt_LOG

然后创建一个规则来记录来自行为不端的系统的所有流量:

iptables -t raw -A PREROUTING --source 172.16.0.9 -p tcp -j TRACE

数据包使用字符串前缀进行记录: TRACE: tablename:chain- name:type:rulenum其中类型可以是“rule”(表示普通规则)、“return”(表示用户定义链末尾的隐式规则)和“policy”(表示内置链的策略)。规则号可以通过以下方式找到:iptables -L --line-numbers

答案2

尝试删除“-d xxxx”。我这样说是因为 INPUT 表示所有发往您机器的流量,因此无需指定目的地。编辑:此外,尝试在“-s xxxx/24”之前添加“-p tcp”。我认为您需要指定匹配的协议。– aseaudi 17 分钟前

答案3

我正在考虑两个可能的问题:

1 - 您不允许流量从您的机器出去

iptables -I OUTPUT 1 -i eth0 -d x.x.x.x/24 -j ACCEPT

2 - 您正在阻止广播数据包到达您的机器

尝试这个来代替你原来的输入:

iptables -I INPUT 1 -i eth0 -s x.x.x.x/24 -j ACCEPT

不使用目标 IP。

相关内容