Ubuntu

使用者定義的 TCP 埠權限

  • January 19, 2017

Ubuntu 中有沒有辦法為單個使用者設置 TCP 埠權限?

例如,userA 只允許打開 3000-3010 之間的埠。因此,如果 userA 執行以下命令php -S 0.0.0.0:3001,它將起作用。但是如果他們嘗試執行php -S 0.0.0.0:3200,他們將獲得一個權限被拒絕。

在不涉及 MAC(SELinux 或 AppArmor)的情況下,您可以使用 iptables 快速執行此操作:

iptables -P INPUT DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -o ethX -m owner --uid-owner <userA_UID> -m multiport --dports 3000-3010 -j ACCEPT

但是,它不會向使用者記錄任何內容,並且仍然允許使用者綁定埠。他只會遭受埠阻塞的症狀

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