Iptables

您將如何阻止特定使用者訪問特定 IP 和特定埠?

  • February 15, 2022

在這裡只是好奇,沒有真正的案例……

答案可能是 /etc/hosts.deny 但詢問是否有其他方法可以做

您可以使用netfilter“所有者”模組/擴展來創建適當的規則來匹配來自特定使用者的流量(在使用者所在的 Linux 系統上)。

sudo iptables -I OUTPUT -m owner --uid-owner <USERNAME> -p tcp -m tcp -d destination-address --dport destination-port-number -j REJECT 

但是,一旦 IP 流量離開系統,TCP/IP 流量中就不再存在“使用者名/所有者”的概念,數據包僅包含協議、IP 地址和埠號,並且沒有可用作可靠依據的使用者標識。遠端系統或中間防火牆中的防火牆規則。

歷史上的解決方案是在傳入連接的源 IP 地址上執行的ident協議和identd服務(RFC 931 和後代RFC 1413),這將返回與特定 TCP 連接關聯的使用者名。這就是在hosts.[allow|deny]訪問控制中允許基於使用者名的身份驗證的原因。我不知道任何人仍然支持或信任 ident 服務,甚至 RFC 在第 6 節關於安全考慮*“標識協議不打算用作授權或訪問控制協議”*中也非常明確,所以不要不要去那裡。

引用自:https://serverfault.com/questions/1093356