以普通用户身份获取 /proc LACP 绑定信息?

以普通用户身份获取 /proc LACP 绑定信息?

作为普通用户我看不到

“详细演员 lacp pdu”

信息内容如下:

/proc/net/bonding/bond0

看来只有 root 才能看到。

但是普通用户如何才能看到这些 LACP 信息呢?还是只有root才可以?

答案1

是的,只有用户,或者更准确地说,具有 CAP_NET_ADMIN 功能的进程可以访问此信息,如源中所示/proc并为/sys 为了 各种各样的 分裂 莱斯

  if (capable(CAP_NET_ADMIN)) {
  if (BOND_MODE(bond) == BOND_MODE_8023AD && capable(CAP_NET_ADMIN)) {

这可能是出于bonding.txt文档:

3.7 以更安全的方式配置802.3ad模式的LACP


使用 802.3ad 绑定模式时,Actor(主机)和 Partner(交换机)交换 LACPDU。这些 LACPDU 无法被嗅探,因为它们注定要链接本地 MAC 地址(交换机/网桥不应该转发这些地址)。然而,大多数值很容易预测,或者只是机器的 MAC 地址(同一 L2 中的所有其他主机都知道)。这意味着 L2 域中的其他计算机可以欺骗从其他主机到交换机的 LACPDU 数据包,并可能通过加入(从交换机的角度)另一台计算机的聚合来造成混乱,从而接收该主机传入流量的一部分和/或欺骗该机器本身的流量(甚至有可能成功终止流量的某些部分)。尽管这不太可能发生,但可以通过简单地配置一些绑定参数来避免这种可能性:

无论后面描述的防止这种情况的步骤是什么,如果该系统上的非特权用户可以将信息泄露到同一 LAN 中的敌对系统,则这将无济于事。

因此,您可能需要一个具有正确访问权限的辅助进程。您可以简单地创建一个 shell 脚本来检索信息,并且可以使用 sudo 作为 root 进行调用,或者您可以创建一个具有适当访问权限的二进制可执行文件,并将 CAP_NET_ADMIN 功能附加到它:

chown root:allowedgroup /path/to/helper-binary
chmod u=rwx,g=rx,o=r /path/to/helper-binary
setcap cap_net_admin+ep /path/to/helper-binary
usermod -aG allowedgroup specialuser

此外,您还应该考虑切换到 using 条目,/sys/class/net/INTERFACE/bonding/因为它们比 from 更容易解析/proc/net/bonding/(并且它们还提供了(重新)配置绑定的替代方法, 随着/sys/class/net/bonding_masters)。

相关内容