Linux:ebtables可以对某个IP地址范围的包进行过滤吗?怎么实现?

luckydean 2009-07-16 09:36:20
我知道ebtables可以实现IP+MASK的范围的包进行过滤,但是可不可以对某个Ip范围的包进行过滤?比如:对source Ip为200.1.1.1~200.1.1.100的包设置规则过滤,能实现吗?
...全文
615 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
cybertitan 2009-07-17
  • 打赏
  • 举报
回复
用脚本实现应该是可以的
直接修改ebtables源码应该更好,这样也是为开源软件做一些贡献了
我估计应该有一些人已经在写这样的代码了,只是还没有发布出来
yhf365 2009-07-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 luckydean 的回复:]
iptables自己就带有ip range的过滤规则,现在我是想在ebtables中也实现相似的过滤规则
[/Quote]
都用shell脚本实现吗?
我给的那个只是一个循环处理的例子。
ebtables肯定可以对单个IP设定规则吧,
我的意思是参照那个例子,写一个自己的脚本,
在一个循环中给你的IP段的所有IP设定规则。
luckydean 2009-07-17
  • 打赏
  • 举报
回复
另外还需增加对这些规则的处理函数
luckydean 2009-07-17
  • 打赏
  • 举报
回复
回楼上
iptables自己就带有ip range的过滤规则,现在我是想在ebtables中也实现相似的过滤规则
yhf365 2009-07-17
  • 打赏
  • 举报
回复
客气~
哈哈
luckydean 2009-07-17
  • 打赏
  • 举报
回复
哈哈,写好了,iptables和ebtables都提供了一下扩展规则,仿照iptables中的ip range写了一个,目前看起来正常~~
多谢各位
luckydean 2009-07-16
  • 打赏
  • 举报
回复
谢谢楼上回复,
看了ebtables的MAN中没有提供这样的规则,所以需要自己写一个扩展规则出来。
哎,工作量不少啊~~
ShowMan 2009-07-16
  • 打赏
  • 举报
回复
看看这个。
tables即是以太网桥防火墙,以太网桥工作在数据链路层,Ebtables来过滤数据链路层数据包。
   2.6内核内置了Ebtables,要使用它必须先安装Ebtables的用户空间工具(ebtables-v2.0.6),安装完成后就可以使用ebtables来过滤网桥的数据包。
   参照用户实际要求,设置ebtables规则如下:
   1:对所有的数据包默认通过
   2:分清楚源地址和目的地址和源端口和目的端口
   3:对TCP,UDPP数据包分别过滤
  /**********************************************************************************/
  Ebtables使用规则如下:
  ebtables [-t table] -[ADI] chain rule-specification [match-extensions] [watcher-extensions]
  -t table :一般为FORWARD链。
  -ADI:A添加到现有链的末尾;D删除规则链(必须指明规则链号);I插入新的规则链(必须指明规则链号)。
  -P:规则表的默认规则的设置。可以DROP,ACCEPT,RETURN。
  -F:对所有的规则表的规则链清空。
  -L:指明规则表。可加参数,--Lc,--Ln
  -p:指明使用的协议类型,ipv4,arp等可选(使用时必选)详情见/etc/ethertypes
  --ip-proto:IP包的类型,1为ICMP包,6为TCP包,17为UDP包,在/etc/protocols下有详细说明
  --ip-src:IP包的源地址
  --ip-dst:IP包的目的地址
  --ip-sport:IP包的源端口
  --ip-dport:IP包的目的端口
  -i:指明从那片网卡进入
  -o:指明从那片网卡出去
  /***********************************************************************************/
  
  简单配置规则如下:
  #!/bin/bash
  echo "The ebtables start !"
  ebtables -P FORWARD ACCEPT
  ebtables -P INPUT ACCEPT
  ebtables -P OUTPUT ACCEPT
  ebtables -F
  ebtables -A FORWARD -p ipv4 -i eth0/eth1 --ip-proto (6/17) --ip-dst(目的IP) --ip-dport(目的端口) -j DROP
  ebtables -A FPRWARD -p ipv4 -i eth0/eth1 --ip-proto (7/17) --ip-src(源IP) --ip-sport(源端口) -j
  DROP
luckydean 2009-07-16
  • 打赏
  • 举报
回复
没人气啊~
yhf365 2009-07-16
  • 打赏
  • 举报
回复
工作量不大呀,
楼主写个shell脚本,
加个for循环在里面,很容易实现的。
这是一个iptable的例子,把allowip中存放的ip地址都设置成可以访问。
每个ip占用一行。

for ip in `cat allowip.txt`
do
$iptables -A INPUT -s $ip -d $inet -j ACCEPT
$iptables -A OUTPUT -d $ip -s $inet -j ACCEPT
done

当然可以不用文件,直接在循环中改变ip。

再说了,也就一百个IP,用个文件存起来也不麻烦。
比在循环中改变IP要简单。
steptodream 2009-07-16
  • 打赏
  • 举报
回复
楼主加油把 自己写出来得时候 很有成就感哦
内容概要:本文详细介绍了Linux系统中的两大网络管理工具——iptables和ebtables。iptables工作在网络层,通过对IP数据过滤、地址转换等操作,实现网络流量的精细管控,适用于构建网络防火墙和保障网络安全。iptables含filter、NAT、mangle和raw四个表,每个表又由多个链组成,每个链中含具体的规则,用于决定数据的处理方式。ebtables则专注于数据链路层,通过管理以太网帧的过滤、修改或重定向,实现基于MAC地址的流量控制,适用于桥接网络的接入管理和流量控制。文章还通过多个实际应用案例,展示了iptables和ebtables在企业网络安全防护、网络地址转换和MAC地址过滤等场景中的具体配置和使用方法。最后,文章展望了网络管理技术的未来发展,指出智能化、自动化和云化将是主要趋势。 适用人群:具备一定Linux基础,对网络安全和网络管理感兴趣的IT从业人员、网络管理员、系统工程师等。 使用场景及目标:①构建企业级网络防火墙,防止外部非法访问和内部数据泄露;②实现网络地址转换(NAT),使内部设备共享公网IP访问互联网;③基于MAC地址进行流量控制,防止非法设备接入网络。 其他说明:iptables和ebtables是Linux系统中不可或缺的网络管理工具,随着网络技术的发展,它们将继续演进和完善,以应对新的挑战和需求。未来,网络管理将更加智能化、自动化,并逐步向云平台迁移,iptables和ebtables将在这一过程中继续发挥重要作用。

23,217

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧