人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Linuxサーバを構築中です。
Apache、Tomcat、MySQLをインストールしたのですが、
いつも手順書通りに、
Apacheの実行権限・所有者はApacheユーザ
TomcatはTomcat
MySQLはMySQL
という風に設定していたのですが、これってどういう意味があるのでしょうか?
全部rootじゃ駄目なのでしょうか?

僕の予想としては、
例えばTomcatユーザが乗っ取られた場合に、他のアプリケーションに影響がないようにセキュリティ上の為。
としか思いつきません。

●質問者: ピ
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Apache Linux MySQL root Tomcat
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● koriki-kozou
●77ポイント

セキュリティの問題は当然あるけれど、別の大きな問題が存在する


(1)rootでの操作は極力行わないほうがいいという話

rootは全てのリソースに対して何でもありのとんでもない権限を持っている

そのため、root上で行った操作はすべてのユーザー、すべてのアプリケーションに影響を与えてしまう可能性がある

必要なときに必要最低限の権限の元で作業を行えば、そのような危険は回避できる

通常はユーザーレベルで操作し、どうしてもroot並みの権限が必要な場合のみsudoコマンドの利用を許可するという手法なども、そのために存在する


(2)デーモン毎にユーザーを分けたほうがいいという話

rootほどではないけどapache/Tomcat/MySQLという具合にそれぞれ権限を分けておけば、トラブル対応などで操作する場合に誤って他のデーモンに大きな影響を与える心配が無くなる

デーモン専用のユーザーを1つ用意して3つまとめて管理しても、それは個人の勝手だから止めないけどね。仕事で使うなら分けておいたほうが無難だとは言っておく

◎質問者からの返答

なるほど、作業の時の思わぬミスを防ぐ事にもなるんですね。


2 ●
●77ポイント

rootでダメなわけではありません。

が、しかし、1の方の仰る通りでapache,mysql,tomcatにセキュリティ上の問題がでたとき、root権限を攻撃するものに持っていかれると、

そのサーバに関わるものすべてを奪われてしまうので、rootじゃなくて動かせるものはそうすべき。

daemon毎もそれと同じですべてがapacheというユーザだったとする場合、

どれかがやられるとapacheユーザで動いているアプリケーションが悪用される可能性が大いにあります。

なので管理が面倒という理由はさておいて、バラバラがいいと思いますよ。

その上でbindってのがDNSサーバの実装で多くつかわれていますが、

このアプリケーションの場合は起動するユーザはbindなどと指定でき、

その上でchroot環境で動かすことができるので、セキュリティとしては一段階レベルアップしたものになります。

chrootは特定のディレクトリの配下に抑え込むものと考えていただいていいかと。

これだと、bindが乗っ取られても/etc以下などのファイルの保護がある程度確保されます。

セキュリティに関わるものはちょっと面倒なところもありますが、

常に気をつけておきたいことです。

仕事などで、自身のところで満足に行えない場合は外部に協力してもらうなどが必要と考えています。

私もそういうことを仕事にしていますし、世の中もっと積極的にセキュリティを高めるべきと考えます。

selinuxはちょっとやりすぎな感もありますが、使いこなせている方はよいと思います。

心配をお金払って安心にするのがビジネスでのセキュリティかなと。

なにごとも完ぺきは難しいので外注してもそれだけで守りが100%にはならないですが。

一番のセキュリティで外部ではどうにもならないこととして、

コンプライアンス、モラルといった人間的要素が大きいですね。

◎質問者からの返答

なるほど、切り分けは重要ですね。


3 ● 小力子象
●10ポイント

Linuxは複数のユーザーが同時に利用できる,マルチユーザー対応OSです。このようなOSは,ユーザーごとにファイルのアクセス権を管理することが不可欠です。Linuxでも当然,アクセス権を利用できます。

◎質問者からの返答

答えとしてはちょっとずれてるかと。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ