如何從伺服器推送腳本以在客戶端上運行?

如何從伺服器推送腳本以在客戶端上運行?

我有一個無法再連接到的裝置(ssh、salt...),無法輕鬆進行實體存取 - 但它仍然打開與我的伺服器的 OpenVPN 會話。為了嘗試恢復它,我想:

  • 在伺服器上強制此客戶端重新連接
  • 當客戶端重新連接時 - 推送客戶端將執行的腳本(首先我會透過日誌和配置的轉儲查看正在發生的情況,然後可能會恢復正確的設定)

有解決方案連接後在客戶端上運行的腳本但所有人都假設這是客戶端的選擇(= 配置位於客戶端)。我正在尋找相反的方法。

我可以看到這種方法有安全性問題(VPN 提供者可以接管客戶端電腦),但也許有一種從文件中不明顯的方法?

答案1

若要強制客戶端重新連接,您可以:

  • 使用刪除特定來源 IP 位址和來源連接埠組合iptables輸出鏈,或目標位址和目標端口輸入比 ping 重啟間隔更長的時間段,
  • 在OpenVPN的管理介面中殺死指定的客戶端:看這裡
  • 重新啟動 OpenVPN 服務@伺服器,以上所有內容將強制新的對稱金鑰交換、新的套接字和新的目標連接埠號碼。

為什麼無法執行腳本:

  • 你在這裡運氣不好。腳本已設定且必須位於客戶端,AFAIK 即使 OpenVPN 的 ccd 也不允許這樣做,客戶端也需要正確的「拉」設定指令 - 以允許伺服器拉動最基本的隧道選項,例如:密碼、緩衝區大小、壓縮、路由等,但不是腳本配置指令。
  • 在預設配置中,OpenVPN 以無人權限運行,
  • 這將是一個安全漏洞。

相關內容