论坛风格切换切换到宽版
  • 843阅读
  • 9回复

[问题求助]新年快乐。问一个iptables通过自定义chain来减少规则数目的问题。 [复制链接]

上一主题 下一主题
离线jacky750512.
 
发帖
2162
C币
-152267
威望
379
贡献值
1
银元
-3
铜钱
4755
人人网人气币
0
只看楼主 正序阅读 使用道具 楼主  发表于: 2009-05-01
我的linux ip.tables防火墙对用.户通过认证实现收费上网的功能。          婚庆
用户认证后, 在防火墙中插入.规则来允许用户上网。规.则有7条。虚拟主机
我的问题是:如果我有很.多的用.户,比如1000个用户,那规则总数就是7000条。--- 印刷
防.火墙效率就有问题。规则如下:健康
nat 表
-A PREROUTING -s 10.255..255.1 -i eth1 -j COUNTE.R.
-A. PREROUTING -s 10.255.255.1 -i eth1 -p tcp -m tcp --.dport 443 -j ACCEPT.
-.A PREROUTING -s 10..255..255.1 -i eth1 -p tcp -m tcp --dport 25 -j REDIRECT --to-ports 25--- 印刷
-A PREROUTING -.s 10.255.255.1 -i eth1 -p tcp -m t.cp --dport 80 -j REDIRECT --to-ports 8.028              乙肝

filter表
-A IN.PUT -s 10.255.255.1 -i eth1 -p tcp -m tcp --d.port 25 -j LOCAL学习
-A FORWARD -s 10.255.255.1 -i eth.1 -o eth0 -j. ACKED          婚庆
-A COUNTER .-d 10.255.255.1 .-o eth1 -j ACCEPT             汽车

其中COUNTER,LOC.AL.和ACKED是自定义的chian。10.255.255.1是客户的IP。             汽车
eth1是内网int.er.face,eth0是外网interface。<性病>

我的想法是能否自定义.一个表或链, 如果用户通过认证后,就redirect用户到这个自定.义的链中。.
也就是说, 把上面7条规.则中的-.s 10.255.255.1(-d 10.255.255.1)都去掉。教育


请问这可行吗?


谢谢指教。

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

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线风语.
发帖
2116
C币
-139044
威望
379
贡献值
1
银元
-2
铜钱
4703
人人网人气币
0
只看该作者 9楼 发表于: 2010-04-13


QUOTE:原帖由 ssffzz1 于 2008-1-2 16:05 发表
规则减少了几条,可是模块有增加了。这种方法也是得不偿失的。模块间的调用及处理也是很耗资源的。



可不是减少几条

他原来是每个IP有7条,而用set模块后,除了counter的那两条规则不能聚合外,其他的规则都可以把-s IP去掉,而聚合成
-m set --set setname src  这样不管有多少IP,对于同一类规则(只是源IP或者目的不同),就可以聚合成一条规则
同样的
-d IP  也可以写成 -m set --set setname dst  来聚合

因此,IP越多,能够通过聚合而减少的规则条数就越多
发帖
1864
C币
-199171
威望
342
贡献值
1
银元
-4
铜钱
4126
人人网人气币
0
只看该作者 8楼 发表于: 2010-04-13
规则减少了几条,可是模块有增加了。这种方法也是得不偿失的。模块间的调用及处理也是很耗资源的。

离线17772.
发帖
2092
C币
-60655
威望
392
贡献值
1
银元
-3
铜钱
4723
人人网人气币
0
只看该作者 7楼 发表于: 2010-04-13
离线soomi.
发帖
2064
C币
-235379
威望
372
贡献值
1
银元
-2
铜钱
4643
人人网人气币
0
只看该作者 6楼 发表于: 2010-04-13


QUOTE:原帖由 springwind426 于 2008-1-2 11:03 发表
用set模块吧

把经过认证的用户的IP添加到set中,然后
-A PREROUTING -s 10.255.255.1 -i eth1 -p tcp -m tcp --dport 443 -j ACCEPT
-A PREROUTING -s 10.255.255.1 -i eth1 -p tcp -m tcp --dport 25 -j  ...



请问什么是set模块?

在网上没有找到相关资料.

谢谢.

离线joo.
发帖
1980
C币
-235833
威望
395
贡献值
1
银元
-1
铜钱
4431
人人网人气币
0
只看该作者 5楼 发表于: 2010-04-13
用set模块吧

把经过认证的用户的IP添加到set中,然后
-A PREROUTING -s 10.255.255.1 -i eth1 -p tcp -m tcp --dport 443 -j ACCEPT
-A PREROUTING -s 10.255.255.1 -i eth1 -p tcp -m tcp --dport 25 -j REDIRECT --to-ports 25
-A PREROUTING -s 10.255.255.1 -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8028

-A INPUT -s 10.255.255.1 -i eth1 -p tcp -m tcp --dport 25 -j LOCAL
-A FORWARD -s 10.255.255.1 -i eth1 -o eth0 -j ACKED

都可以整合

但是,对于counter这样的,还是需要一个IP2条规则的(或者,你可以尝试使用ACCOUNT这个扩展)

应该能够大幅度减少规则的条数

离线lilingdong.
发帖
1975
C币
-132200
威望
375
贡献值
1
银元
-1
铜钱
4481
人人网人气币
0
只看该作者 4楼 发表于: 2010-04-13
自建立链不能跨表

离线brokenfly.
发帖
1941
C币
-152808
威望
364
贡献值
1
银元
-2
铜钱
4383
人人网人气币
0
只看该作者 地板  发表于: 2010-04-13
自己顶一下。

请问有办法把我上面的7条规则放到一条自定义链中吗?

有点理不清头绪了。

谢谢。

离线dfberry.
发帖
2014
C币
-235712
威望
341
贡献值
1
银元
-5
铜钱
4446
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-13


QUOTE:原帖由 ssffzz1 于 2007-12-29 07:56 发表
1 你说的用跳转的方法也不能提高多少效率.最根本的还是优化防火墙规则.减少条目.



谢谢回复.

我就是希望用跳转的办法来减少规则数目.

目前还没有想出什么好主意来.

离线zd052.
发帖
2053
C币
-193435
威望
385
贡献值
1
银元
-3
铜钱
4617
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-13
1 你说的用跳转的方法也不能提高多少效率.最根本的还是优化防火墙规则.减少条目.

快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个