论坛风格切换切换到宽版
  • 583阅读
  • 8回复

[问题求助]Iptables中的反向匹配问题 [复制链接]

上一主题 下一主题
离线klxqlqw.
 
发帖
2074
C币
-262870
威望
355
贡献值
2
银元
-3
铜钱
4474
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
我在脚本中要.实现一个策略,forward的规则上允许来自 172.16.1.0/24 网段,目的地除以下三个v.lan的任何目的地可达,    健康
三个vlan 为 192.16.8.1.0/24  192.168.2.0/24 .  192.168.3.0/24           建材

我看了iptables 的语法,反向匹配用 !后面加条件即可实现。试了如下.格式总是不行,不知道正确的设置应该如何写。请教.大家,谢谢。     美容


脚本中相关内容如下:
v.lan1="192.168.1.0/24"教育
vlan2="192.168..2.0/24"                乙肝
vlan.2="192.168.3.0/24"              杀毒

iptables -A FORWARD  -s 172.16.1.0/24  -d   ! $vlan1 -j AC.CEPT     ####这句.测试.是没问题的.


#####下面.这两条这样.写一直提示有问题###########             汽车
ipt.ables -A F.ORWARD  -s 172.16.1.0./24   -d  ! $vlan1,$vlan2,$vlan3 -j ACCEPT     .
iptables -A. FORWARD  -s 172..16.1.0/24   -d  ! $vlan1,$vla.n2,$vlan3 -j ACCEPT    健康

评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线焊线.
发帖
2048
C币
-604756
威望
406
贡献值
4
银元
-1
铜钱
4678
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-13
分开3条写,你这样写条目之间是“与”关系,根本无法匹配。

发帖
1976
C币
-132244
威望
352
贡献值
1
银元
-3
铜钱
4443
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-13


QUOTE:原帖由 ssffzz1 于 2007-7-20 08:14 发表
分开3条写,你这样写条目之间是“与”关系,根本无法匹配。



我是考虑到分开三条写 又会跟策略有冲突

第一条: iptables -A FORWARD  -s 172.16.1.0/24  -d   ! $vlan1 -j ACCEPT
第二条: iptables -A FORWARD  -s 172.16.1.0/24  -d   ! $vlan2 -j ACCEPT
第三条: iptables -A FORWARD  -s 172.16.1.0/24  -d   ! $vlan3 -j ACCEPT

上面分开写的情况会出现,第一条已经允许了 除了vlan1的forward全部通行。 那我的第二条策略已经不会再起作用了,去往vlan2的数据包还是不会被拦截。

(不知道是不是我上述理解错误,麻烦指点)

离线tqt2000.
发帖
2043
C币
-60529
威望
379
贡献值
1
银元
-2
铜钱
4521
人人网人气币
0
只看该作者 地板  发表于: 2010-04-13
不用一句话就直接DROP得了,用一句话的目的不就是想更方便的实现吗?
第一条: iptables -A FORWARD  -s 172.16.1.0/24  -d  $vlan1 -j DROP
第二条: iptables -A FORWARD  -s 172.16.1.0/24  -d  $vlan2 -j DROP
第三条: iptables -A FORWARD  -s 172.16.1.0/24  -d  $vlan3 -j DROP

[ 本帖最后由 wysilly 于 2007-7-20 16:16 编辑 ]

离线smilei34516.
发帖
2024
C币
-140163
威望
393
贡献值
1
银元
-1
铜钱
4592
人人网人气币
0
只看该作者 4楼 发表于: 2010-04-13


QUOTE:原帖由 cmhuaer 于 2007-7-20 09:40 发表



我是考虑到分开三条写 又会跟策略有冲突

第一条: iptables -A FORWARD  -s 172.16.1.0/24  -d   ! $vlan1 -j ACCEPT
第二条: iptables -A FORWARD  -s 172.16.1.0/24  -d   ! $vlan2 -j ACCEPT
...



应该是通过FORWARD的数据会逐个匹配规则的,第一条通过了,会继续匹配第二条,这样知道所有规则结束,如果还没有匹配的按照-P规则执行。这样设可以达到你的效果

离线卡西亚.
发帖
2146
C币
-60466
威望
407
贡献值
1
银元
-1
铜钱
4829
人人网人气币
0
只看该作者 5楼 发表于: 2010-04-13


QUOTE:原帖由 wysilly 于 2007-7-20 16:14 发表
不用一句话就直接DROP得了,用一句话的目的不就是想更方便的实现吗?
第一条: iptables -A FORWARD  -s 172.16.1.0/24  -d  $vlan1 -j DROP
第二条: iptables -A FORWARD  -s 172.16.1.0/24  -d  $vlan2 -j  ...



向上面这样,-P规则accept,这3个drop,这样多方便,干吗要反着?

发帖
2063
C币
-60532
威望
431
贡献值
1
银元
-1
铜钱
4810
人人网人气币
0
只看该作者 6楼 发表于: 2010-04-13


QUOTE:原帖由 zhy0414 于 2007-7-20 16:18 发表



应该是通过FORWARD的数据会逐个匹配规则的,第一条通过了,会继续匹配第二条,这样知道所有规则结束,如果还没有匹配的按照-P规则执行。这样设可以达到你的效果



不是这样的。我见到的所有的ACL的匹配规则都是这样的:
1、首先顺序匹配。
2、当和一条规则匹配后,就执行该规则的动作。当然打标记之类的除外,这里指的是DROP或ACCEPT等。并且后续的规则不再匹配。
3、如果没有匹配成功,则执行默认动作。

离线ygzhd.
发帖
1968
C币
-236010
威望
330
贡献值
6
银元
0
铜钱
4280
人人网人气币
0
只看该作者 7楼 发表于: 2010-04-13
跟我的问题有点像哦。如果不改默认策略,有什么解决办法?

离线jjpan.
发帖
2081
C币
-198470
威望
399
贡献值
1
银元
-3
铜钱
4820
人人网人气币
0
只看该作者 8楼 发表于: 2010-04-13


QUOTE:原帖由 alexann 于 2007-7-21 09:38 发表
是否可以使用CIDR?汇聚一个4个C的超网,这样的话,你的192.168.0.x,1.x,2.x,3.x都会在匹配内。
iptables -A FORWARD  -s 172.16.1.0/24  -d   ! 192.168.0.0/22  -j ACCEPT



理论上完全可以的。实际没验证过,应该没问题的。
快速回复
限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
上一个 下一个