Root権限を実行する必要があるアプリケーションの「問題」を回避するために、私は以下を使用しています。
Sudo setcap CAP_NET_ADMIN+ep "$(readlink -f /usr/sbin/app)"
Sudo setcap CAP_NET_RAW+ep "$(readlink -f /usr/sbin/app)"
必要な生のネット機能を使用できるようにする(この場合、pythonはSOCK_RAW
)Sudoを使用する必要はありません。お客様が直面する環境でこれを行うことのセキュリティへの影響は何ですか?これは予期しない方法で悪用される可能性がありますか?
これはUbuntuサーバーで実行されています。
機能については capabilities(7)
のマンページで説明しています。
要約し、セキュリティ面で:
CAP_NET_RAW:あらゆる種類のパケットを偽造することができます。これには、偽の送信者、不正な形式のパケットの送信などが含まれます。これにより、任意のアドレス(関連する送信者を偽造する機能により、これはデバイスを偽装することを許可し、マンページに従って「透過プロキシ」に合法的に使用されますが、攻撃者の観点からは、この用語は中間者の同義語)、
CAP_NET_ADMIN:基本的に、ネットワークカード自体だけでなく、ネットワークインターフェイスの制御に関する制限もありません(ネットワーク構成を変更し、カードを無差別モードに切り替えてキャプチャしますトラフィックなど)だけでなく、ファイアウォール(これもお見逃しなく!)とルーティングテーブル(悪意のあるホストを介してトラフィックをルーティングすることを許可します)も含まれます。