レガシーソース管理: xinetd 下の CVS
私たちのチームには、従来のソース管理である cvs を使用しています。xinetd の下で cvs pserver を実行しています (以下の設定ファイル)。
監査フラグ
セキュリティ監査で、「CVS サーバーが root で実行されていないことを確認してください」というフラグが立てられました。
質問:
「user=root」を「user=cvs」に置き換えることで、「cvs pserver」を安全にロックダウンできますか? 有害な副作用や「落とし穴」はありますか?
注意: ユーザー「cvs」は、「cvs ルート」ディレクトリ「/var/cvs/cvs」内のすべてのファイルを所有します。
私が質問する理由は、10 年前のドキュメントをすべて調べたところ、すべての例に「user=root」が含まれ、セキュリティを強化するために「user=」パラメータを変更することを提案するものがなかったからです。
アップデート: 試してみました。うまくいきました。問題ありませんでした。
ありがとう
例: cvspserver 設定ファイル
# Begin /etc/xinetd.d/cvspserver
service cvspserver
{
port = 2401
socket_type = stream
protocol = tcp
wait = no
user = root
passenv = PATH
server = /usr/bin/cvs
server_args = -f --allow-root=/var/cvs/cvs pserver
}
# End /etc/xinetd.d/cvspserver
答え1
彼らのアドバイスには絶対に従うべきです。それは非常に良いアドバイスです。
通常、これを行うときは、デーモンが実行に必要な権限を持っていることを確認する必要があります。この特定のケースでは、それはおそらく、デーモンがすでに持っている所有権を意味します。リポジトリをバックアップして、変更を加えることをお勧めします。
この仕組みは、xinetd (多くの場合、root として実行) が権限を放棄し、stdin と stdout を xinetd が管理するソケットに向けて /usr/bin/cvs を実行するというものです。実際には何もする必要はありません。CVS は十分にシンプルで、ルート下のファイルを操作できるだけの権限は必要ありません。