root以外が所有するスクリプトを/etc/init.dに保存することはどのくらい安全ですか?


15

デーモンとして実行され、
/ etc / init.d内のスクリプトによって制御されるアプリケーションがあります。これらのスクリプトの起動/制御のいくつかのパラメーターを変更してから、デーモンを再起動する必要がある場合があります。これらのスクリプトには、rootユーザーに対する書き込み権限しかありません。したがって、これらのスクリプトを編集するときは、root権限が必要です。

私が考えていたのは、非rootユーザーをそれらのスクリプトの所有者にする必要があるということです。この方法では、rootと特別なユーザーのみがこれらのスクリプトを編集できます。

/etc/init.dディレクトリの下に非ルート所有ファイルを保持することは受け入れられますか?
それとも、システムの自然な秩序を乱す不条理ですか?


1
悪い考え、しないでください。
ChuckCottrill 14年

回答:


17

すぐに思い浮かぶのは、権限のないユーザーがブート時にrootとして実行できることです。これは、クラッカーにとって望ましいことです。

  • 他のアカウントの特権をエスカレートしたい
  • サーバーを使用して不正なサービスをホストしたい
  • サーバーが再起動した場合にIRC / Spamボットを開始したい
  • 母船にpingを送信して、「また起きたよ」と言い、おそらく新しいペイロードをダウンロードしたい
  • トラックを整理したい
  • ...その他の悪。

これは、おそらく別のサービス(http /など)を介して、特権のないユーザーが何らかの形で侵害された場合に可能です。ほとんどの攻撃者はすぐに実行されるlsfindで、すべての/上を/etcちょうどそのような可能性が存在する場合、彼らはそれが、このシンプルになります使用し、さまざまな言語で書かれたシェルがあります参照してください。

主にSSHを介してサーバーをリモートで管理する場合、initスクリプトを検査しない限り、起動時に出力が表示されないため、これを表示できない可能性が非常に高くなります(ただし、それらのスクリプトのハッシュを既知のハッシュと照合して、何か変更があったかどうか、またはバージョン管理ソフトウェアなどを確認します)

あなたは間違いなくそれが起こることを望まない、ルートは本当にそのinitスクリプトを所有する必要がある。開発ユーザーをsudoerのリストに追加して、スクリプトを更新するのに十分便利にすることできますが、init.d内のすべてのものへの特権のない書き込みアクセスを許可しないことをお勧めします


5
tl; dr:これを行うと、非rootユーザーは次回の起動時にrootと同じくらい良い状態になります。あなたはpwnedされることを懇願しています。
ウォーレンヤング14年

9

Tim Postの非常に良い点に加えて、複数の人が変更をサーバーにプッシュする必要があるセットアップでは、何らかの構成管理システムの使用を検討する必要があると付け加えます。

たとえば、puppet、chef、またはcfengineを使用する場合、関連ユーザーにファイルをローカルで編集してから、構成管理で変更をプッシュすることができます。もちろん、これをどのように設定するかは、使用しているシステムによって異なりますが、適切に設定すると、バージョン管理ソフトウェアが含まれ、構成ファイルを以前のバージョンに簡単に戻すことができます(注:when、not if!)誰かが間違えた。また、構成を別のテストシステムなどにコピーしやすくなります。


システムが危険にさらされる可能性があるかどうかを考慮しなくても、スクリプトと構成データファイルの両方を構成/バージョン管理システムでバージョン管理することは優れたアイデアです。
チャックコットリル

確かに、侵害されたシステムの修正に使用するよりも、数倍程度頻繁にミスを修正するために使用しました。
ジェニーD

どうもありがとうございました 。ここでは主に専用ユーザーがこのアプリケーションを使用しているため、sudoはかなり機能しており、これは私が長い間やっていたことです。しかし、私は本当に設定に非常に興味があるバージョン管理システムです。親愛なるジェニー、あなたがそうするための参考やその他の例を教えてくれますか!! :)。
Akaks 14年

1
puppet / chef / cfengineなどの完全なルートを使用したくない場合は、個人的にwww.perforce.comを使用します。puppetが存在し、その評価ライセンスが1つのサーバーに十分である前に、私たちはそれを〜100台のサーバーに使用しました。主な利点は、1つのサブパスに制限される代わりに、ファイルシステム内の任意の場所にVCされたファイルをチェックアウトできることです。他のオプションは、joeyh.name/code/etckeeper、またはスクリプトと組み合わせたVCを使用してファイルを適切なディレクトリに移動することです。
ジェニーD 14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.