
我希望在特定用戶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
就可以存取筆記本了。
我不確定為什麼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
將其放在您已有的規則之前。
BR