Services

是否可以讓 dhcp 客戶端在收到地址後停止伺服器的 dhcp 服務?

  • May 12, 2015

是否有任何東西(特別是在 Linux 機器中)可以從客戶端跳轉到能夠執行根級任務的伺服器,例如以自動方式停止服務?(無論服務如何)

範例:從伺服器端的 dnsmasq 執行的 DHCP 伺服器向客戶端發出地址。客戶端收到地址並以某種方式告訴伺服器“好的,我們都很好,你現在可以停止 dnsmasq”。這可以做到嗎?如果是這樣,怎麼做?

完全意識到這將是一個巨大的安全漏洞,我猜在許多情況下都需要涉及某種身份驗證,但我主要是好奇它是否可能。我想不出一個我見過的例子。

一種安全的方法是通過 ssh 執行此操作。創建一個特定於服務的使用者(“dhcpkiller”)和一個私鑰/公鑰對,以便客戶端可以執行以下命令:

ssh dhcpkiller@dhcpserver pkill dnsmasq

這個單行腳本由您的 dhcp 環境觸發,這可能以多種方式發生,具體取決於客戶端上的 DHCP 套件。引用 dhclient / RHEL 手冊頁:

在 dhclient 使用新的 IP 地址、子網遮罩和路由啟動介面後,在 REBOOT/BOUND 狀態下,它會立即檢查是否存在執行檔 /etc/dhcp/dhclient-up-hooks script, 如果找到則*源它。*此腳本可以處理預設情況下未處理的環境中的 DHCP 選項。

當dhclient需要呼叫客戶端配置腳本時,它會在環境中定義一組變數,然後呼叫/sbin/dhclient-script。在所有情況下,$reason 都設置為呼叫腳本的原因的名稱。目前定義了以下原因:MEDIUM、PREINIT、BOUND、RENEW、REBIND、REBOOT、EXPIRE、FAIL、STOP、RELEASE、NBI和TIMEOUT

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