Networking

如何以普通使用者的身份創建安全的本地埠

  • April 11, 2018

我以普通使用者的身份在共享 linux 伺服器上工作,沒有 root 訪問權限。我可以啟動一個在本地 tcp 埠上偵聽的程序,並且是唯一能夠連接到該埠的使用者嗎?我可以控製程序監聽的地址和埠。

例如,該程序可以是 Web 伺服器的開發/測試版本。

此外,由於伺服器僅接受埠 22 (ssh) 上的傳入 tcp 連接,因此我通過 ssh 轉發本地埠,因此我可以使用筆記型電腦連接到該埠。ssh -L 8080:localhost:8000 evaben@dice01因此,仍然允許這樣做或類似的解決方案會很好。

只有 root 可以設置防火牆。

一種可能性是在 Docker 等容器中執行程序。這需要 root 權限,但即使您沒有 root 訪問權限,您也有可能被允許實例化 Docker 容器。

如果您沒有直接或間接的方式來設置網路保護,則需要修改程序的工作方式。讓它在Unix 套接字而不是 TCP 上偵聽。假設程序與標準庫動態連結(實際上所有程序都是),您不需要更改程序本身,只需更改執行方式即可。您可以使用LD_PRELOAD, 通過為 TCP 套接字打開函式載入一個包裝器來代替打開 Unix 套接字來執行此操作。ttu正是這樣做的(根據它的文件,我從未使用過它)。

引用自:https://unix.stackexchange.com/questions/436927