AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 437378
Accepted
Avihai Marchiano
Avihai Marchiano
Asked: 2012-10-12 08:12:45 +0800 CST2012-10-12 08:12:45 +0800 CST 2012-10-12 08:12:45 +0800 CST

eth在Promisc模式下有没有适合iptables的链?

  • 772

我有一台前端机器。机器有 2 个 eth 卡。我想使用 netfilter queue 对数据包进行一些检查。

我这样设置 eth: ifconfig eth0 0.0.0.0 promisc up ifconfig eth1 0.0.0.0 promisc up

我想要一个像这样的 iptable 规则(仅示例): iptables -A INPUT -i eth0 -j LOG --log-prefix " eth0 packet "

但是数据包没有通过 iptables,因为它没有指向这个 MAC。Promisc 模式没有帮助。

我看到有一种方法可以为 PROMISC 添加 iptables 链,但需要编译...当数据包不是针对此 eth 时,有没有更简单的方法来使用 iptables 规则。

目前我通过在 2 eth 之间创建一个桥梁并将规则放在 FORWARD 上来绕过这个,但我确实想创建桥梁。

networking
  • 2 2 个回答
  • 2563 Views

2 个回答

  • Voted
  1. Best Answer
    Alastair McCormack
    2012-10-12T10:54:10+08:002012-10-12T10:54:10+08:00

    请记住,在与以太网交换机连接的网络上,即使网卡处于混杂模式,您也看不到大部分数据,除非您有带端口镜像的托管交换机。

    实现您想要的一种方法是使用 arp 中毒工具,例如 Ettercap。然后您应该能够应用 netfilter 规则或 tcpdump 您需要的信息。

    编辑 - 根据 OP 的要求提供更多详细信息:

    从您的问题来看,您似乎希望窥探传递的网络流量并通过 iptables 传递它。

    通过使用网桥,您可以通过坐在有趣的机器和它们的网关之间来实现这一点,物理上,但听起来您想以更被动的方式来做,因此您为什么要尝试在服务器上使用混杂模式NIC。正确的?(如果您不知道,混杂模式也允许您看到未寻址到您的 NIC 的以太网帧)

    您遇到的问题是,以太网交换机的设计使其能够了解每个端口上的 MAC 地址,并使用它根据 MA​​C 地址将以太网帧“路由”到正确的端口。这是为了减少与以太网集线器相关的冲突(现在很少见)。因此,您只会看到发往或源自您的 NIC 的以太网帧,包括广播以太网帧,例如 ARP,但看不到外部流量。这是一件好事:)

    大多数托管交换机(不是哑桌面交换机)允许您指定端口镜像,以便所有以太网帧都复制到特定端口,您可以在其中以混杂模式连接机器并使用 tcpdump/Wireshark 捕获“外部”以太网帧。

    但是,这仍然不会让它们被 iptables 捕获。因此,您需要一种方法再次充当感兴趣的主机和它们的网关之间的以太网桥,但又不在物理路径中。输入 Ettercap,这是一个 arp 中毒工具。它通过发送“免费 arp”来欺骗您感兴趣的主机(和交换机)您的机器 MAC 地址现在拥有旧 IP 网关的 IP。有趣的机器会无意中将所有网关/默认路由的目标流量发送到您的机器。您的机器现在将通过其 IP 堆栈转发数据包,就好像它是网关一样。

    这不起作用的地方是在交换机上启用了“端口安全”,这是一种常见的做法。这是通过阻止 IP 从一个以太网端口移动到另一个端口的无故 arps 来阻止 arp 中毒。

    • 1
  2. poige
    2012-10-12T11:20:54+08:002012-10-12T11:20:54+08:00

    至于我,您似乎对自己的需求缺乏清晰的了解。这就是为什么您难以实施的原因。

    主要问题不是 iptables 的“合适的链”,而是如何让流量流入盒子,然后如何用操作系统内核或用户空间处理它。

    Bridge 是一种很自然的方式,但实际上我看不出FORWARD-chain(根据定义用于转发)如何帮助处理交换的流量。

    您当然必须转发此流量,这意味着您的 comp. 应该是该流量的路由器。如果你能以自然的方式管理它——那就去做吧。如果您没有这种可能性,我会说像proxy_arp机制这样的东西可能会有所帮助。

    更新。: 我最近在重读LARTC,遇到了“ Pseudo-bridges with Proxy-ARP ”这让我意识到我的建议真的很合适。

    • 0

相关问题

  • 谁能指出我的 802.11n 范围扩展器?

  • 我怎样才能得到一个网站的IP地址?

  • 在一个 LAN 中使用两台 DHCP 服务器

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve