免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6102 | 回复: 6

[网络子系统] iptables实现对目的mac的限制 [复制链接]

论坛徽章:
0
发表于 2016-09-02 16:22 |显示全部楼层
iptables里面有一个mac模块可以对源mac进行限制,但是没有对目的mac进行限制。有其他拓展模块可以对目的mac进行限制吗?


mac match options:
[!] --mac-source XX:XX:XX:XX:XX:XX
                                Match source MAC address

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2016-09-02 21:51 |显示全部楼层
本帖最后由 Godbach 于 2016-09-02 21:53 编辑

回复 1# linuxlearning4R
这个 mac 匹配的就是 源 IP,应该是匹配 dst mac 没有太大意义吧。

kernel 中的 xt_mac.c 的核心代码如下,也说明是 source mac
28 static bool mac_mt(const struct sk_buff *skb, struct xt_action_param *par)
29 {
30     const struct xt_mac_info *info = par->matchinfo;
31     bool ret;
32
33     if (skb->dev == NULL || skb->dev->type != ARPHRD_ETHER)
34         return false;
35     if (skb_mac_header(skb) < skb->head)
36         return false;
37     if (skb_mac_header(skb) + ETH_HLEN > skb->data)
38         return false;
39     ret  = ether_addr_equal(eth_hdr(skb)->h_source, info->srcaddr);
40     ret ^= info->invert;
41     return ret;
42 }

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2016-09-02 21:54 |显示全部楼层
回复 1# linuxlearning4R

LZ 对匹配 dest mac 的需求是什么。

论坛徽章:
0
发表于 2016-09-02 23:00 |显示全部楼层
Godbach 发表于 2016-09-02 21:54
回复 1# linuxlearning4R

LZ 对匹配 dest mac 的需求是什么。



我也大概看了一下netfilter里面的xt_mac.c文件,按理来说说,nf是在三层的,mac地址是在二层的。
但是包由二层进入三层的时候,skb里面带有源mac信息,所以nf就实现了基于源mac的匹配。
到包要往外发的时候,目的mac是在二层填上,让后由网口发走的。所以nf完全时候是不知道目的mac是什么的。
所以,按理来说,nf(iptables)是没办法做基于目的mac的匹配的,这样理解对吗?

我后来查了一下,有一个ebtables是可以实现对源/目的mac进行匹配限制,但是ebtables只能是用在网桥模式上,对路由模式是不生效的。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2016-09-03 00:49 |显示全部楼层
回复 4# linuxlearning4R

是的,ebtables 应该是支持的。
只是要搞清楚你什么场景,需要过滤目的 mac

论坛徽章:
0
发表于 2016-09-05 18:08 |显示全部楼层
回复 5# Godbach

应用场景,就是常见的防火墙部署。客户说为什么会有源mac限制,但是没有目的mac限制。
所以非得要弄一个目的mac限制出来。并且只要路由模式的。


那么ebtables只是用在以太二层,走的是桥模式,不是路由模式,有不满足客户需求,无语了

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2016-09-05 21:59 |显示全部楼层
回复 6# linuxlearning4R

哈哈,果然是客户的不假思索需求啊。

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP