Chinaunix

标题: netfilter module - multiip v0.0.1 发布 [打印本页]

作者: platinum    时间: 2006-02-22 11:46
标题: netfilter module - multiip v0.0.1 发布

用过 iptables 的人可能都知道,里面有个 multiport 模块,可以用来匹配多个离散端口
既然有 multiport 可以匹配多个离散端口,那么为什么不能有匹配多个离散 IP 的模块呢?
于是,参考 multiport 和 iprange 两个模块,我自己改写了一个 multiip 模块,用来匹配多个离散 IP
欢迎大家使用,由于我是在 kernel-2.4 下编写的,不知道 2.6 会不会有问题,有什么 BUG 或不足请告诉我 ^_^

multiip v0.0.1
  2006.02.22, platinum
=======================


How to install ?

  # make KERNEL_SRC=<your kernel source> IPTABLES_SRC=<your iptables source> install
  # depmod -a


How to use ?

  # iptables -m multiip -h


multiip v0.0.1 options:
  --sip IP[,IP2,IP3]            Match source IP
  --dip IP[,IP2,IP3]            Match destination IP
  --both IP[,IP2,IP3]           Match both source and destination IP

  example: iptables -A FORWARD -m multiip --sip 192.168.1.3,192.168.1.8,192.168.1.33 -j DROP
           iptables -A FORWARD -m multiip --dip 222.36.44.8,222.36.44.5 -j DROP
           iptables -A FORWARD -m multiip --both 1.2.3.4,5.6.7.8 -j DROP



[ 本帖最后由 platinum 于 2006-7-14 00:53 编辑 ]

multiip-0.0.1.tar.gz

3.35 KB, 下载次数: 351


作者: platinum    时间: 2006-02-22 17:00
之前 2.6 内核的问题已解决,大家可以用了 ^_^
作者: murong    时间: 2006-02-22 17:04
标题: ^_^.恭喜
帮顶下
作者: anhui    时间: 2006-02-22 17:07
多谢分享!
作者: ybbnew    时间: 2006-02-22 17:14
又见好东西!
作者: thatday    时间: 2006-02-22 20:37
标题: 回复 1楼 platinum 的帖子
支持白金,有空我试试看。
不过,不试都知道是好东西,呵呵:)
作者: iakuf    时间: 2006-02-23 09:32
有没有人测试过啊,呵呵,我想在2.6下面用
作者: platinum    时间: 2006-02-23 17:32
用过的朋友请提一下 BUG
作者: 我    时间: 2006-02-23 17:39
正在使用中。
提个问题: 改大 MAX ,性能损失大吗?
作者: platinum    时间: 2006-02-23 17:42
不大,但每个策略占用的内存比较多一些
作者: monkeyem    时间: 2006-02-25 20:24
感谢楼主发贴,学习中!!!
作者: bleach    时间: 2006-02-25 22:51
明天试试
对了,oracle 第一个版本是 2.0 ,LZ应向其学习 :)

[ 本帖最后由 bleach 于 2006-2-25 23:12 编辑 ]
作者: caocheng    时间: 2006-02-28 23:05
好东西! 好人! 不顶算什么啊!
作者: platinum    时间: 2006-03-01 08:14
希望有用过的人发表一下意见或提一些建议
作者: 枫影谁用了    时间: 2006-03-01 08:24
昨我回復不了呢!!
作者: 枫影谁用了    时间: 2006-03-01 08:25
一發代碼就不讓我提交
作者: 我爱臭豆腐    时间: 2006-03-01 08:29
虽然不使用但是也要顶以下.好东西而且精神值得学习
作者: platinum    时间: 2006-03-01 08:44
谢谢豆腐哥支持
作者: 枫影谁用了    时间: 2006-03-01 09:27
呵呵。沒有用。

不過我發現2.6.15的內核很好,起碼不用像2.6.13那樣打mppe/pptp等補丁。

連string也一起搞定。


[quote][0:0] -A FORWARD -m string --hex-string "|e9bb84e889b2|" --algo bm --to 65535 -j REJECT --reject-with icmp-port-unreachable
[0:0] -A FORWARD -m string --hex-string "|e794b5e5bdb1|" --algo bm --to 65535 -j REJECT --reject-with icmp-port-unreachable
[0:0] -A FORWARD -m string --hex-string "|e68890e4babae794b5e5bdb1e78987|" --algo bm --to 65535 -j REJECT --reject-with icmp-port-unreachable
[0:0] -A FORWARD -m string --hex-string "|e6bf80e68385e59bbee78987|" --algo bm --to 65535 -j REJECT --reject-with icmp-port-unreachable
[16:23232] -A FORWARD -m string --hex-string "|e680a7|" --algo bm --to 65535 -j
作者: 枫影谁用了    时间: 2006-03-01 09:28
呵呵。沒有用。

不過我發現2.6.15的內核很好,起碼不用像2.6.13那樣打mppe/pptp等補丁。

連string也一起搞定。


[quote][0:0] -A FORWARD -m string --hex-string "|e9bb84e889b2|" --algo bm --to 65535 -j REJECT --reject-with icmp-port-unreachable
[0:0] -A FORWARD -m string --hex-string "|e794b5e5bdb1|" --algo bm --to 65535 -j REJECT --reject-with icmp-port-unreachable
[0:0] -A FORWARD -m string --hex-string "|e68890e4babae794b5e5bdb1e78987|" --algo bm --to 65535 -j REJECT --reject-with icmp-port-unreachable
[0:0] -A FORWARD -m string --hex-string "|e6bf80e68385e59bbee78987|" --algo bm --to 65535 -j REJECT --reject-with icmp-port-unreachable
[16:23232] -A FORWARD -m string --hex-string "|e680a7|" --algo bm --to 65535 -j REJECT
作者: 枫影谁用了    时间: 2006-03-01 09:29
呵呵。沒有用。

不過我發現2.6.15的內核很好,起碼不用像2.6.13那樣打mppe/pptp等補丁。

連string也一起搞定。


[quote][0:0] -A FORWARD -m string --hex-string "|e9bb84e889b2|" --algo bm --to 65535 -j REJECT --reject-with icmp-port-unreachable
[0:0] -A FORWARD -m string --hex-string "|e794b5e5bdb1|" --algo bm --to 65535 -j REJECT --reject-with icmp-port-unreachable
[0:0] -A FORWARD -m string --hex-string "|e68890e4babae794b5e5bdb1e78987|" --algo bm --to 65535 -j REJECT --reject-with icmp-port-unreachable
[0:0] -A FORWARD -m string --hex-string "|e6bf80e68385e59bbee78987|" --algo bm --to 65535 -j REJECT --reject-with icmp-port-unreachable
[16:23232] -A FORWARD -m string --hex-string "|e680a7|" --algo bm --to 65535 -j
作者: 枫影谁用了    时间: 2006-03-01 09:31
[code][0:0] -A FORWARD -m string --hex-string "|e9bb84e889b2|" --algo bm --to 65535 -j REJECT --reject-with icmp-port-unreachable
[0:0] -A FORWARD -m string --hex-string "|e794b5e5bdb1|" --algo bm --to 65535 -j REJECT --reject-with icmp-port-unreachable
[0:0] -A FORWARD -m string --hex-string "|e68890e4babae794b5e5bdb1e78987|" --algo bm --to 65535 -j REJECT --reject-with icmp-port-unreachable
[0:0] -A FORWARD -m string --hex-string "|e6bf80e68385e59bbee78987|" --algo bm --to 65535 -j REJECT --reject-with icmp-port-unreachable
[16:23232] -A FORWARD -m string --hex-string "|e680a7|" --algo bm --to 65535 -j REJECT --reject-with icmp-port-unreachable
[0:0] -A FORWARD -m string --hex-string "|e889b2e68385e794b5e5bdb1|" --algo
作者: 枫影谁用了    时间: 2006-03-01 09:35
暈!!!!!!!!!!!!!!!!

怎麽又提交上來了>???????????????????????剛剛明明顯示該頁無法顯示的!:em12::em12::em12::em12:
作者: platinum    时间: 2006-03-01 10:08
原帖由 枫影谁用了 于 2006-3-1 09:27 发表
呵呵。沒有用。

不過我發現2.6.15的內核很好,起碼不用像2.6.13那樣打mppe/pptp等補丁。

連string也一起搞定。


[quote][0:0] -A FORWARD -m string --hex-string "|e9bb84e889b2|" --algo b ...

不懂你的意思,什么没有用?
作者: platinum    时间: 2006-03-02 09:59
呵呵我明白你的意思了,你是说“没什么用处”,而不是“没什么效果”
作者: 枫影谁用了    时间: 2006-03-02 10:20
原帖由 platinum 于 2006-3-1 10:08 发表

不懂你的意思,什么没有用?


不是說你寫的這個沒有用,我是說我沒有用到。

誤解了。
作者: lovegqin    时间: 2006-11-14 11:03
提示: 作者被禁止或删除 内容自动屏蔽
作者: sleepycat    时间: 2006-11-16 09:51
我现在用的是2.6.17內核,可惜用不了。
make KERNRL_SRC=/usr/src/linux IPTABLES_SRC=/usr/src/iptables install
make -C /lib/modules/2.6.17/build SUBDIRS=/home/wangzm/multiip-0.0.1 modules
make[1]: Entering directory `/usr/src/linux-2.6.17'
  CC [M]  /home/wangzm/multiip-0.0.1/ipt_multiip.o
/home/wangzm/multiip-0.0.1/ipt_multiip.c:80: warning: initialization from incompatible pointer type
/home/wangzm/multiip-0.0.1/ipt_multiip.c:81: warning: initialization from incompatible pointer type
  Building modules, stage 2.
  MODPOST
  CC      /home/wangzm/multiip-0.0.1/ipt_multiip.mod.o
  LD [M]  /home/wangzm/multiip-0.0.1/ipt_multiip.ko
make[1]: Leaving directory `/usr/src/linux-2.6.17'
gcc -O3 -Wall -DIPTABLES_VERSION=\"1.3.5\" -I/usr/src/iptables/include -fPIC -c libipt_multiip.c
ld -shared -o libipt_multiip.so libipt_multiip.o
cp -rf libipt_multiip.so /lib/iptables/
cp -rf ipt_multiip.ko /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/

depmod -a
modprobe ipt_multiip
執行:iptables -A FORWARD -m multiip --sip 192.168.1.3,192.168.1.8 -j DROP
結果報錯:iptables: Unknown error 4294967295
作者: yszll    时间: 2006-11-16 18:03
向白金学习. 顶个!!!
作者: bleach    时间: 2006-11-28 06:05
老大看一下 这样的一条规则要怎么在一条中实现~~

  1. iptables -A FORWARD -m multiip --dip 58.60.9.0/24,58.60.11.0/24,58.60.13.0/24,219.133.41.0/24,219.133.48.0/24,219.133.62.0/24,219.133.63.0/24,218.3.116.0/24,218.30.73.0/24,59.36.97.0/24,202.104.241.0/24 -j DROP
复制代码

作者: platinum    时间: 2006-11-28 09:56
原帖由 bleach 于 2006-11-28 06:05 发表
老大看一下 这样的一条规则要怎么在一条中实现~~
[code]
iptables -A FORWARD -m multiip --dip 58.60.9.0/24,58.60.11.0/24,58.60.13.0/24,219.133.41.0/24,219.133.48.0/24,219.133.62.0/24,219.133.63.0/24, ...

不支持多 IP 段的处理。。。。
作者: mack2050    时间: 2007-02-03 10:49
标题: 我在AS4上装了怎么不行呢?
下了之后,按INSTALL文件的说明:
make KERNEL_DIR=/usr/src/linux-2.6.9 IPTABLES_SRC=/usr/src/iptables-1.3.7 install
depmod -a
这样做了以后不行呀,是不是还要编译呀,该怎么做,谢谢!
作者: heizi_liu    时间: 2007-12-14 10:23
怎么说了,谢谢白大哥吧,我今天是得了一个便宜了,把你这个东西拿过来用了,呵呵,我以后也会写了和大家分享的
作者: luo118    时间: 2007-12-15 09:46
学习..............
作者: mumuqz    时间: 2007-12-19 15:42
make出错,哪位老大帮忙看看:

nat:~/multiip-0.0.1 # make KERNEL_SRC=/usr/src/linux-2.6.16.13-4 IPTABLES_SRC=/usr/src/iptables-1.3.5
make -C /usr/src/linux-2.6.16.13-4 SUBDIRS=/root/multiip-0.0.1 modules
make[1]: Entering directory `/usr/src/linux-2.6.16.13-4'
Makefile:450: .config: No such file or directory

  WARNING: Symbol version dump /usr/src/linux-2.6.16.13-4/Module.symvers
           is missing; modules will have no dependencies and modversions.

  Building modules, stage 2.
/usr/src/linux-2.6.16.13-4/scripts/Makefile.modpost:38: .config: No such file or directory
make[2]: *** No rule to make target `.config'.  Stop.
make[1]: *** [modules] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.16.13-4'
make: *** [ipt_multiip.ko] Error 2
作者: ShadowStar    时间: 2007-12-19 16:38
原帖由 mumuqz 于 2007-12-19 15:42 发表
make出错,哪位老大帮忙看看:

nat:~/multiip-0.0.1 # make KERNEL_SRC=/usr/src/linux-2.6.16.13-4 IPTABLES_SRC=/usr/src/iptables-1.3.5
make -C /usr/src/linux-2.6.16.13-4 SUBDIRS=/root/multiip-0.0.1 ...


内核没有配置
作者: dbsrv    时间: 2008-11-21 18:43
domain和multiip模块一直是我硬盘上的必备项目,从rh90到CentOS4.4用得都好好的。昨天弄了个CenOS 5.2,今天狂装了一下午domain和Multiip模块,一个都没装上
刚才努力查了一下domain的那个帖子,发现domain模块不能用在2.6.18的内核下,谁清楚mutiip模块能用在2.6.18内核下否?能用我就再努力,不能用我就睡觉。只是可惜了domain的那个模块。
作者: hc_ttcm    时间: 2008-11-24 17:18
都不可以
我试过了
mutiip报错 ,一堆数字、
作者: funix_zjx    时间: 2008-11-24 22:35
原帖由 bleach 于 2006-11-28 06:05 发表
老大看一下 这样的一条规则要怎么在一条中实现~~

iptables -A FORWARD -m multiip --dip 58.60.9.0/24,58.60.11.0/24,58.60.13.0/24,219.133.41.0/24,219.133.48.0/24,219.133.62.0/24,219.133.63.0/24,218. ...



ipset可以实现这个功能
作者: tyuthht    时间: 2011-01-21 18:14
请问楼主:


执行命令


/sbin/iptables -t nat -A PREROUTING -p tcp -d 112.125.32.2 --dport 53 -j DNAT  --to-destination  192.168.82.1-192.168.82.5

是可以的

但是如果后面的IP是离散的怎么写?

我用你的模块,好像不支持这样的,求助谢谢!!!
作者: platinum    时间: 2011-01-23 23:15
你是怎么用的?
作者: platinum    时间: 2011-01-23 23:16
回复 40# tyuthht


    你是怎么用的?
作者: tyuthht    时间: 2011-01-26 17:03
回复  tyuthht


    你是怎么用的?
platinum 发表于 2011-01-23 23:16



    /sbin/iptables -t nat -A PREROUTING -p tcp -d 122.70.152.83 --dport 53 -j DNAT --to-destination  -m multiip --dip 192.168.200.1,192.168.200.3,192.168.200.5


提示:

iptables v1.3.5: Bad IP address `'

Try `iptables -h' or 'iptables --help' for more information.

有没有什么好的方法,把不连续IP加到后面

连续的 这样是可以的

/sbin/iptables -t nat -A PREROUTING -p tcp -d 122.70.152.83 --dport 53 -j DNAT --to-destination 192.168.200.1-192.168.200.10
作者: tyuthht    时间: 2011-01-26 17:04
回复 42# platinum


    谢谢 请赐教
作者: platinum    时间: 2011-01-26 17:50
multiip 是匹配模块,不能作为 DNAT 的处理部分使用
所以你的使用语法是错误的,iptables 是这样解析的

/sbin/iptables -t nat -A PREROUTING -p tcp -d 122.70.152.83 --dport 53 -j DNAT --to-destination  -m multiip --dip 192.168.200.1,192.168.200.3,192.168.200.5

红色部分是 --to-destination 的参数




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2