用户定义的 TCP 端口权限

用户定义的 TCP 端口权限

Ubuntu 中有没有办法为单个用户设置 TCP 端口权限?

例如,userA 只允许打开 3000-3010 之间的端口。因此,如果 userA 运行以下命令php -S 0.0.0.0:3001,它就会起作用。但如果他们尝试跑步php -S 0.0.0.0:3200,他们的许可就会被拒绝。

答案1

不涉及 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

但是,它不会向用户记录任何内容,并且仍然允许用户绑定港口。他只会出现端口被阻塞的症状

相关内容