![如何阻止来自特定用户(本地主机除外)的所有传出连接?](https://linux22.com/image/776171/%E5%A6%82%E4%BD%95%E9%98%BB%E6%AD%A2%E6%9D%A5%E8%87%AA%E7%89%B9%E5%AE%9A%E7%94%A8%E6%88%B7%EF%BC%88%E6%9C%AC%E5%9C%B0%E4%B8%BB%E6%9C%BA%E9%99%A4%E5%A4%96%EF%BC%89%E7%9A%84%E6%89%80%E6%9C%89%E4%BC%A0%E5%87%BA%E8%BF%9E%E6%8E%A5%EF%BC%9F.png)
我希望在特定用户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
将其放在您已有的规则之前。
巴西雷亚尔