実行中/usr/lib/postfix/master
ルートとしてセキュリティ上の脅威を引き起こす可能性がありますか?フレッシュインストールはこれを与えます:
root 11622 0.0 0.0 4792 1432 ? Ss 19:11 0:00 /usr/lib/postfix/master
postfix 11624 0.0 0.0 4812 1324 ? S 19:11 0:00 pickup -l -t unix -u -c
postfix 11625 0.0 0.0 4856 1344 ? S 19:11 0:00 qmgr -l -t unix -u
Postfix master プロセスは、他のデーモンを起動するプロセスです。特に、メールをローカルに配信するデーモンを起動します。後者は、システム内のすべてのユーザーIDを偽装できる必要があります。これには、root
としてのライフの開始が含まれます。したがって、マスタープロセスがrootとして実行されることはほとんど避けられません。それ以外の場合は、まったく機能しません。
さらに、rootとしての実行に伴う「リスク」は、しばしば過大評価されます。たとえば、自分のサーバーで最も恐れているのは、自分のマシンが破壊され、他の人を攻撃するためのリレーとして使用されることです。攻撃者がrootアクセスを取得するか、「通常のユーザー」アクセスのみを取得するかどうかは、その点で大きな変化はありません。
ルートデーモンを非ルートデーモンにして、「セキュリティの向上」を喜ぶ習慣が広まっています。 メインフレームシナリオでの改善は本当です。多くのユーザーが同じマシン上にシェルアカウントを持ち、攻撃者はこれらのユーザーの1人であり、他のユーザーのファイルへのアクセス。ただし、メインフレームモデルはほとんど姿を消しました(以前は大学で普及していましたが、現在ではすべての学生が自分のコンピューターで遊ぶことができます)。マシンが「パーソナル」である場合(たとえば、独自のサーバーがあり、悪意のある個人がそのアカウントを持っていない場合)、一部のデーモンを非ルートUIDで実行する利点はわずかです。それ自体は害はありませんが、「ルートデーモンを修正する」ための複雑な方法で邪魔になることを正当化するものではありません。
Postfixデーモンを安全にするのは、バッファオーバーフローまたは同様の脆弱性がないことです。非ルートとして実行することは、脆弱性が存在し、攻撃者によって悪用された場合の結果を軽減するための単なる方法です。マシンが共有メインフレームでない場合、緩和策はあまり効果がありません。
電子メールを受信してローカルユーザーに配信するサーバーには、2つのことについてroot権限が必要です。
メールの送信に関係するPostfixの部分はrootとして実行する必要はなく、rootとして実行する必要もありません。リモートマシンからの電子メールの受信に関係する部分は、必要なためrootとして実行されます。
非rootユーザーとしてPostfixまたは他のMTAを完全に実行することは可能ですが、これには制限が伴います。
Root以外のプロセスのみを実行することを常にお勧めします。
例として:postfixがシステムで唯一の重要なアプリケーションではない場合、rootとして実行すると、postfixのマスタープロセスにアクセスすることで、敵の作業が減るだけです。システム内の任意の場所(たとえば、すべてのFSへのアクセス、機密情報を含む他のプロセスのダンプ、基本的にrootユーザーが実行できるあらゆる種類の厄介なこと)。それ以外の場合は、特権エスカレーションエクスプロイトを見つける/作成する必要があります。 postfixが単一のアプリケーションであっても、攻撃者がログを削除したり、システム内での存在を隠したりすることははるかに簡単です。
非ルートプロセスが1024未満のポートをバインドする方法があります。
$ cp -v $(which nc) .
'/bin/nc' -> './nc'
$ ./nc -v -l -p 1025
Listening on [0.0.0.0] (family 0, port 1025)
$ ./nc -v -l -p 25
nc: Permission denied
$ Sudo setcap 'cap_net_bind_service=+ep' ./nc
$ ./nc -v -l -p 25
Listening on [0.0.0.0] (family 0, port 25)
Connection from localhost 39964 received!
test
Setcapの詳細については、次を参照してください https://stackoverflow.com/a/414258
最小特権の原則: https://en.wikipedia.org/wiki/Principle_of_least_privilege
マスタープロセスをルートとして開始する必要があるのは、最初の1024個の「特権」ポートの範囲内のポートにバインドできるのはルートだけだからです。
Rootとしてあらゆる種類のソフトウェアを実行することはセキュリティスレッドと見なすことができますが、ソフトウェア自体の安全性や、更新/パッチが定期的に適用されるかどうかにも依存します。
セキュリティの層を追加したい場合は、次のことを検討してください。
これも考慮してください。セキュリティの観点から、Postfixよりもiptablesを信頼していますか?