Sles

以普通使用者的身份訪問 /proc LACP 綁定資訊?

  • June 30, 2020

作為普通使用者,我看不到

“詳情演員 lacp pdu”

資訊內容:

/proc/net/bonding/bond0

看起來只有root才能看到。

但是普通使用者怎麼會看到這些 LACP 資訊呢?還是真的只有root可以?

是的,只有root使用者,或者更準確地說是具有 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

此外,您應該考慮切換到使用條目 in/sys/class/net/INTERFACE/bonding/因為它們比 from 更容易解析/proc/net/bonding/(並且它們還提供了另一種方法來(重新)配置綁定,以及/sys/class/net/bonding_masters)。

引用自:https://unix.stackexchange.com/questions/595887