web-dev-qa-db-ja.com

nagiosプラグインcheck_dhcpがsetuidルートなしで機能することを許可する

Nagiosにはプラグイン check_dhcp があり、これはまさにあなたが思っていることを実行します。 広く推奨されています setuid rootをインストールします。これは、 SO_BINDTODEVICE を使用するためです。これは通常rootのみが実行できます。もちろん、Sudoでも同様のことができますが、check_dhcpは、root権限を必要としない場合は、root権限全体で実行されます。

残念ながら、check_dhcpはこの使用法のためにかなり愚かに書かれているようで、必要な操作を行った後でroot権限を削除しようとはしません。これにより、少なくとも1つの既知の セキュリティの問題 が発生しますが、 一般的には悪い習慣です であり、実行したくありません。

だから私は疑問に思います、check_dhcpがすべてのroot権限を完全に付与することなく、必要なネットワークインターフェイスの不正操作を実行できるようにする方法はありますか?おそらく、SELinux、AppArmorなどの機能を備えたものですか? Linuxソリューションを探しています-特にUbuntu14.04。

4
Phil Frost

ほとんどの標準(Cで記述された)プラグインでは、Nagios Exchangeに代替(Cではない)実装があります。

たとえば、 Perl check_dhcpがあります これは実際にはdhcpingの単なるラッパーです。もちろん、dhcpingバイナリはroot/Sudo/setuid-rootを介して実行する必要がありますが、おそらくそのバイナリは、ストックのcheck_dhcpプラグインよりもセキュリティ上の懸念が少ないでしょう。

2
Keith