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。
ほとんどの標準(Cで記述された)プラグインでは、Nagios Exchangeに代替(Cではない)実装があります。
たとえば、 Perl check_dhcpがあります これは実際にはdhcping
の単なるラッパーです。もちろん、dhcpingバイナリはroot/Sudo/setuid-rootを介して実行する必要がありますが、おそらくそのバイナリは、ストックのcheck_dhcpプラグインよりもセキュリティ上の懸念が少ないでしょう。