アドレスを受信した後、dhcpクライアントにサーバーのdhcpサービスを停止させることはできますか?

アドレスを受信した後、dhcpクライアントにサーバーのdhcpサービスを停止させることはできますか?

クライアントからサーバーに移動し、自動化された方法でサービスを停止するなどのルートレベルの操作を実行できるもの(特にLinuxボックス)はありますか? (サービスとは関係ありません)

例:サーバー側でdnsmasqを実行しているDHCPサーバーからクライアントにアドレスを発行します。クライアントはアドレスを受け取り、何らかの方法でサーバーに「大丈夫です。今、dnsmasqを停止できます」と言います。これは可能ですか?それでは、どうすればいいですか?

これは大きなセキュリティ抜け穴になることを十分に認識し、多くの場合、ある種の認証が必要であると推測しますが、これが可能かどうか疑問に思います。私はこれについてこの例を考えることはできません。

答え1

これを行う安全な方法はSSHを使用することです。クライアントが次のコマンドを実行できるように、サービス固有のユーザー(「dhcpkiller」)と秘密鍵と公開鍵のペアを作成します。

ssh dhcpkiller@dhcpserver pkill dnsmasq

この 1 行スクリプトは dhcp 環境によってトリガーされ、クライアントの DHCP ファミリに応じてさまざまな方法で発生する可能性があります。 dhclient/RHEL マンページ引用:

dhclientはREBOOT / BOUND状態で新しいIPアドレス、サブネットマスク、およびパスをインターフェイスにインポートし、すぐに実行可能ファイルが存在することを確認します /etc/dhcp/dhclient-up-hooks script源泉 見つかった場合。このスクリプトは、環境でデフォルトで処理されないDHCPオプションを処理します。

dhclientがクライアント構成スクリプトを呼び出す必要がある場合は、環境で変数セットを定義してから/ sbin / dhclient-scriptを呼び出します。すべての場合において、$reasonはスクリプトを呼び出した理由の名前に設定されます。現在定義されている理由は、MEDIUM、PREINIT、BOUND、RENEW、REBIND、REBOOT、EXPIRE、FAIL、STOP、RELEASE、NBI、およびTIMEOUTです。

関連情報