ちなみにCentOS5です。
DocumentRootは/var/www/htmlなのですが、ディレクトリの所有者がrootでパーミッションが755なので、ここに書き込むにはいちいちrootにならなければならず、セキュリティ上からも手間からもよくない運用だと思っています。
どこでも誰にでもあるような問題に思うのですが、スマートというか一般的な解決策があれば教えてください。
まず、定石として、DocumentRoot を公開してはいけません。Apache インストール直後、DocumentRoot は /var/www/html に決め打ちとなっており、攻撃が仕掛けられやすいからです。
適当な公開ディレクトリを用意し、Alias で仮想ディレクトリ名を付けるべきです。
こちらのディレクトリに、適切なオーナーと適切な属性を付けておけばいいでしょう。
DocumentRootは/var/www/htmlなのですが、ディレクトリの所有者がrootでパーミッションが755なので、ここに書き込むにはいちいちrootにならなければならず、セキュリティ上からも手間からもよくない運用だと思っています。
ここまでわかっていながら、何を“問題”だと思っているのかわからないのですが、単純に所有者を変更すればいいのではないですか?
また、コンテンツの更新にはFTPをご利用ですか?その他の方法をご利用ですか?
いずれにしてもrootでログインできるようにしておくのは危険ですし、仮にSCPを利用しているようでしたらシェルログインもできるということですので、早急にディレクトリ管理者を変更して、rootでのSSHアクセスを制限するべきだと思います。
数人で運用したいのですが、apacheグループに変更してもうまくいかなかったもので。
それに、こんなべたな方法が定石だと思えなかったもので質問しました。
DocumentRootは/var/www/htmlなのですが、ディレクトリの所有者がrootでパーミッションが755なので、ここに書き込むにはいちいちrootにならなければならず、セキュリティ上からも手間からもよくない運用だと思っています。
ここまでわかっていながら、何を“問題”だと思っているのかわからないのですが、単純に所有者を変更すればいいのではないですか?
また、コンテンツの更新にはFTPをご利用ですか?その他の方法をご利用ですか?
いずれにしてもrootでログインできるようにしておくのは危険ですし、仮にSCPを利用しているようでしたらシェルログインもできるということですので、早急にディレクトリ管理者を変更して、rootでのSSHアクセスを制限するべきだと思います。
http://q.hatena.ne.jp/1223182382
urlはダミーです。
apacheに限りませんが、サーバプロセスはrootで動かさない方が安全です。不測の事態でサーバプロセスを乗っ取られた場合、root権限で動いていると、サーバ全体の統制をとられてしまうからです。
私が取っている対策を紹介すると…、あ、基本的なLinux/UNIXの操作は理解しているという前提でご説明します。
まず、apache用にユーザ www と、グループ www を作ります。グループwwwには、ユーザwwwを始め、web pageコンテンツを編集するユーザを加えます。
DocumentRootに当たるディレクトリ配下ディレクトリのバーミッションは 775または664 として、所有権をwww:wwwとします(# chown -R www:www [DocumentRoot])。そして、apacheの設定ファイル(httpd.conf)で、User wwwにGroup wwwにします。
こうしておけば、コンテンツを編集するユーザはrootになることなく書き込みができます。
DocumentRootを置くディレクトリについては、私は特にデフォルトでも支障ないと思います。例え異なるところに置いたとしても、rootを盗られたら全く意味がなですし、findされたら結局同じです。また、なまじ変な所に置くと管理者/ユーザが混乱して使いにくいサーバになってしまいますし(苦笑)。
乗っ取り対策をするのであれば、1週間~1が月程度の遡及ができるバックアップを定期的に取っておくことをおすすめします。
あと、これは蛇足ですが、sshdやftpdは受入ポート番号をずらしておく、使わないならことをおすすめします。デフォルトのままですと、絶え間なくポートスキャンがやってきて、精神衛生上(笑)もよろしくありません。我が家では、リモートルータの仮想サーバ機能を利用してずらしてますが、この対策以降、ほぼ完璧にアタックが無くなりました。ご参考になれば幸いです。
ありがとうございます。
そういえばwwwとかwww-userというのがありましたね。
yumまかせにしたのがどうもあやまりだったようです。
考え直してみます。
ありがとうございます。
aliasの指定方法はマニュアル本に書いてあるのですが、具体的にどこに置けばいいのかなどは分かりません。試行錯誤してみます。