如何阻止来自特定用户(本地主机除外)的所有传出连接?

如何阻止来自特定用户(本地主机除外)的所有传出连接?

我希望在特定用户user通过 ssh 进入我的服务器(运行 RHEL 7.4)后阻止所有传出连接,也就是说,他们user不能通过 ssh 进入/ping 网络上的其他服务器。

我最初配置了以下firewall-cmd规则,并且它正在发挥作用。

firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 -m owner --uid-owner user -j DROP

但是,user现在需要访问也在同一台服务器上运行的 Jupyter Notebook(http://localhost:8888),但无法访问。websocket 出现错误。删除上述防火墙规则后,user即可访问 Notebook。

我不确定为什么user无法访问localhost,因为我认为该规则仅阻止传出连接。

我如何允许user访问localhost任何端口或特定端口范围,同时仍然阻止访问其他地方的网络访问?

答案1

正如 djdomi 提到的,您希望在已有的 DROP 规则之前添加一个例外。这可能有效

firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 -m owner --uid-owner user --dport=8888 -j ACCEPT

将其放在您已有的规则之前。

巴西雷亚尔

相关内容