Networking
如何以普通使用者的身份創建安全的本地埠
我以普通使用者的身份在共享 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
正是這樣做的(根據它的文件,我從未使用過它)。