カテゴリー
Linux

【WordPress】ドキュメントルートの所有ユーザ・グループは apache で問題ないと考えます!

更新の躓きを解決♪「要求されたアクションを実行するには、WordPress が Web サーバーにアクセスする必要があります。…」 | oki2a24 にコメントをいただきました。


2013年7月17日 17:12

この記事のおかげで問題解決しました
けどこの方法でサーバーのセキュリティは大丈夫なんですかね?・・・少し不安

ありがとうございます。わたくしたちは Linux サーバについて系統だった教育を受けたこともありませんし、ましてや人に深くものを教えられるような知識も持ちあわせておりません。

ですのでこれから述べることが「誤りである」可能性は否定いたしません。そのうえで、わたくしたちの見解を記したいと思います。

順番としては、まず何が問題なのか定義し、次に問題に対してお答え申し上げます。そして最後に、その根拠を示しまして、わたくしたちの考えを記す次第です。

問題の定義

いただいたコメントには、「セキュリティが心配」とだけありましたので何を行ったことに対して心配なのかを補い、何が問題なのかを改めて定めます。

  • ドキュメントルートである /var/www/html/ ディレクトリに WordPress がインストールされている(そして実際に動いている)状態で、/var/www/html/ ディレクトリの所有者を次のように root ユーザから変更してセキュリティ強度は下がらないのか?

    # /var/www/html/ ディレクトリ以下の所有ユーザ・グループを apache に変更
    chown -R apache:apache /var/www/html/

問題に対する答え

セキュリティ強度は下がらない、と考えます。

答えの根拠

コメントくださった方は、/var/www/html/ ディレクトリの所有者(所有グループも)を root ユーザから他のユーザに変更することにより、次のセキュリティが弱くなってしまう問題を思い描いたのではないでしょうか?

前提として ssh への root ユーザでのログインは禁止するよう設定されているものとします。

  • root ユーザでの ssh ログイン禁止
    → 一般ユーザのパスワード、さらに root ユーザのパスワードを入手しないと 
    /var/www/html/ ディレクトリ以下を変更できない
    2つのパスワードを突破する必要がある。セキュリティ強い
  • 一般ユーザでのログイン許可
    → 一般ユーザのパスワードを入手すれば 
    /var/www/html/ ディレクトリ以下を変更できる
    1つだけパスワードを突破出来ればやりたい放題!セキュリティ弱い

以前の投稿では、わたくしたちは /var/www/html/ ディレクトリの所有ユーザもグループも「apache」にしたのでした。

もし apache ユーザでシェル、つまり ssh ログインができてしまえば、apache ユーザのパスワードが奪われた時点で WordPress のすべては自由に改変されてしまうことになります。

では、この apache ユーザとは何者なのでしょうか?

  • apache ユーザは yum でウェブサーバ Apache をインストールした時に自動で追加されるユーザおよびグループです。
  • また、Aapche の設定ファイル、/etc/httpd/conf/httpd.conf に、Apache を実行するユーザ・グループとして apache が指定されています。
  • そして apache ユーザには特徴がございまして、apache ユーザとして ssh ログインできないようになっております。このことは、次のコマンドで確認できます。
[root@localhost ~]# # 全ユーザ情報から apache ユーザ情報を抽出して表示
[root@localhost ~]# cat /etc/passwd | grep apache
apache:x:48:48:Apache:/var/www:/sbin/nologin
[root@localhost ~]# # 強引に apache ユーザになろうと試みる
[root@localhost ~]# su apache
This account is currently not available.
[root@localhost ~]#

上記のコマンド例から拾いますと、「/sbin/nologin が設定されたユーザ」=「シェルログインを禁止されたユーザ」です。

このことから、たとえ一般ユーザログイン情報が奪われたとしても、apache ユーザになることはできず、結果として /var/www/html/ ディレクトリ以下を変更できません。変更したいのであれば結局、攻撃者は root ユーザのパスワードも奪う必要があります。

以上のことから、ドキュメントルート(/var/www/html/ ディレクトリ)の所有ユーザ・グループを apache へと変更してもセキュリティ強度は変わらない、と考えます。

おわりに

いただいたコメントへの返信として本投稿を書かせていただきました。この度のような勉強のきっかけを与えていただき、感謝いたします。

勉強し、自分なりに考えたことを記しておりますので、間違いが無いとは言い切れないと考えております。

ですので、不安が払拭されなくとも、また、やはりちっとも信用できなくとも、もともとが貧弱なわたくしたちですので仕方が無きことと思います。

最後に、今回の投稿を書くにあたって、参考にさせていただいたページを紹介いたします。

  • WordPress の安全性を高める – WordPress Codex 日本語版
    → 今回、WordPress の話題でしたので、WordPress の本家ページをまず当たりました。結局、未熟ゆえに確信に至ることはできませんでしたけれども、さらにセキュリティを高めるヒントをいただけました。ありがとうございます♪
    なお、日本語ページは最新である英語ページと少し違いがありましたので、本当に頼りにするべきは英語本家ページです。
  • httpd ドキュメントルート 所有者 – Google 検索
    → Apache のドキュメントルートの所有者変更について、改めて調べた時の検索結果ページです。大丈夫とは思ってはいても、不勉強ゆえやはりわたくしも不安になってしまいましたの。それで、他の事例を参考にすべく、検索いたしました。おかげさまで裏がとれ、少し自信がつきました。ありがとうございます♪
  • 今日の腕試し! – /sbin/nologinを実行すると?:ITpro
    → クイズページですけれども、解説が充実しており、大変勉強になりました。出題者情報を拝見いたしましても、情報の精度の高さが伺えます。本投稿で「/sbin/nologin が設定されたユーザ」=「シェルログインを禁止されたユーザ」と断定いたしましたけれども、それができたのはこのページのおかげです。ありがとうございます♪

以上です。

「【WordPress】ドキュメントルートの所有ユーザ・グループは apache で問題ないと考えます!」への3件の返信

まさか記事を書いてくれるとは・・・
分かりやすい記事ありがとうございます
初心者なので勉強になります

[…] 所有ユーザーをwebサーバーに変更したんだけど、これってセキュリティ的に大丈夫なんだろうかと初心者ながら心配に。ググるとこのような記事を発見。なるほど、そういうことかぁと。 […]

[…] 所有ユーザーをwebサーバーに変更したんだけど、これってセキュリティ的に大丈夫なんだろうかと初心者ながら心配に。ググるとこのような記事を発見。なるほど、そういうことかぁと。 […]

コメントを残す