web-dev-qa-db-ja.com

CentOSでApacheをchrootする方法は?

Sysadminから、攻撃者がサーバーを制御するのを防ぐために、chrootjailでApacheを実行するようにアドバイスされました。

だから私の質問は:

  • RHEL/CentOS5でApache/2.2.3をchrootするための最良の方法は何ですか?、mod_phpやmod_securityなどのApacheに付属するデフォルトのモジュールのみを使用します。

Mod_security SecChrootDirについて聞いたことがありますが、それが私の構成に適しているかどうかはわかりません。ドキュメントで提供されている静的ファイルにのみ推奨されると書かれています。

ありがとうございました!

3
Jonathan Meyer

これは、SELinuxを使用する方がおそらく簡単な場所です。 CentOSとApacheでどのように機能するかについても文書化されています。

http://wiki.centos.org/HowTos/SELinux

つまり、SELinuxとApacheを使用している場合、さらに悪いことに、侵入者は同じhttpdドメイン内のファイルにしかアクセスして変更できません。その侵入者は、httpdドメイン外のプロセスを開始したり、httpdに関連しないファイルにアクセスしたりできませんでした。

編集:本当の問題は特権の昇格を防止または軽減することであることに注意することが重要です。 Chrootは役に立ちますが、完全な証拠ではありません-chrootのセキュリティに関する情報を調べたところ、 this であることがわかりました。これにより、次のようになります。

http://www.linuxsecurity.com/content/view/117632/49/

そのリンクから覚えておくべき重要なことは、chroot内にデプロイするソフトウェアが多いほど、誰かが刑務所から抜け出す可能性が高くなるということです。 Apacheを取得しようとするとき、およびchroot jail内で動作するライブラリをサポートするときは、このことを覚えておいてください。

2
Rilindo

mod_chroot を見てください

動的なウェブページをchrootで動作させるのは面倒な場合があり、mod_chrootをDjangoで動作させることができなかったので、長くて手動の方法でした。

mkdir /chroot
''populate /chroot with everything you need, this is a long process'''
chroot /chroot /usr/sbin/Apache2 -k start

/ chroot/usr/sbin /にApacheバイナリファイルのコピーがある場合。 chrootコマンドは、最初の引数で見つかったjail内で実行されたコマンドを生成します。

設定ははるかに大きなプロセスでした。Apacheを実行するために必要なドキュメントがオンラインにたくさんあり、それらを確認する必要があります。

1
Pratik Amin

nixCraftでこれを行うための素晴らしいチュートリアル があります。これを大規模に展開する場合は、再現が難しい場合があることに注意してください。

0
Andrew M.