Ubuntu
使用者定義的 TCP 埠權限
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
但是,它不會向使用者記錄任何內容,並且仍然允許使用者綁定埠。他只會遭受埠阻塞的症狀