18

私は公開されている Debian サーバーで Apache を実行していますが、インストールのセキュリティが少し心配です。これは、いくつかの自由時間の趣味のプロジェクトをホストするマシンであるため、マシンを使用する私たちの誰も、アップストリームのパッチを常に監視したり、セキュリティの問題に注意したりする時間はありません.しかし、私は悪者を締め出したい. 、または侵入した場合は、サンドボックスに保管してください。

では、セットアップが簡単で保守が容易な最適なソリューションは何でしょうか? Debian でユーザーモードの Linux サンドボックスをセットアップするのは簡単ですか? それともchroot監獄?外部から sadbox 内のファイルに簡単にアクセスできるようにしたいと考えています。これは、私がシステム管理者ではなくプログラマーであることが非常に明確になったときの 1 つです。どんな助けでも大歓迎です!

4

11 に答える 11

15

完全なサンドボックス環境を実行している場合、chroot 監獄は非常に安全ではない可能性があります。攻撃者はカーネル機能に完全にアクセスでき、たとえばドライブをマウントして「ホスト」システムにアクセスする可能性があります。

linux-vserver を使用することをお勧めします。linux-vserver は、内部に完全な debian がインストールされた、改善された chroot 監獄として見ることができます。単一のカーネル内で実行され、すべてのコードがネイティブに実行されるため、非常に高速です。

私は個人的にすべてのサービスを分離するために linux-vserver を使用していますが、パフォーマンスの違いはほとんど目立ちません。

インストール手順については、linux-vserver wikiを参照してください。

よろしく、デニス

于 2008-09-28T09:24:33.163 に答える
4

私はxardiasの言うことを二番目にしていますが、代わりにOpenVZをお勧めします。

これはLinux-Vserverに似ているため、このルートを使用するときにこれら2つを比較することをお勧めします。

プロキシhttpサーバー(nginx)を使用してWebサーバーをセットアップしました。これにより、トラフィックが(ホスト名または要求されたパスに基づいて)さまざまなOpenVZコンテナーに委任されます。各コンテナ内で、Apacheまたはその他のWebサーバー(nginx、lighttpdなど)をセットアップできます。このように、すべてに1つのApacheを用意する必要はありませんが、サービスのサブセット(プロジェクトごとなど)のコンテナーを作成できます。

OpenVZコンテナーは、非常に簡単に完全に更新できます( "for i in $(vzlist); do vzctl exec apt-get upgrade; done")

さまざまなコンテナのファイルはハードウェアノードに保存されているため、ハードウェアノードにSFTPで接続することでファイルに簡単にアクセスできます。それとは別に、いくつかのコンテナにパブリックIPアドレス追加し、そこにSSHをインストールして、コンテナから直接アクセスすることができます。SSHプロキシからも聞いたことがあるので、その場合でも追加のパブリックIPアドレスは不要かもしれません。

于 2008-09-28T14:04:03.740 に答える
3

確かに言うと、CHRoot ジェイルはめったに良いアイデアではありません。その意図にもかかわらず、非常に簡単に抜け出すことができます。実際、ユーザーが誤ってそれを行ったのを見たことがあります。

于 2008-09-28T09:40:42.547 に答える
3

mod_chrootsuEXECについて言及した人が誰もいなかったことは驚くべきことです。

于 2008-09-28T18:08:58.100 に答える
3

問題はありませんが、セキュリティ パッチを監視する時間がなく、セキュリティの問題を常に把握している場合は、設定に関係なく心配する必要があります。一方、これらの問題について考えているという事実だけで、そのようなマシンの他の 99.9% の所有者とは一線を画しています。あなたは正しい道を進んでいます!

于 2008-09-28T13:37:21.170 に答える
3

いつでも仮想マシン内にセットアップしてイメージを保持できるため、必要に応じて再ロールできます。このようにして、サーバーは実際のコンピューターから抽象化され、ウイルスなどは仮想マシン内に封じ込められます。前に言ったように、イメージをバックアップとして保存しておけば、以前の状態に簡単に復元できます。

于 2008-09-28T09:18:04.270 に答える
1

SELinux を使用する必要があります。Debian でどの程度サポートされているかはわかりません。そうでない場合は、VM で SELinux が有効になっている Centos 5.2 をインストールするだけです。ほとんどの人が信じているほど安全ではないアマチュアの chroot よりもはるかに安全であり、あまりにも多くの作業を行うべきではありません。SELinux は管理が難しいという評判がありますが、Web サーバーを実行しているだけであれば問題にはなりません。httpd を DB に接続させるには、いくつかの「sebool」を実行する必要があるだけかもしれませんが、それだけです。

于 2008-11-03T14:31:50.260 に答える
1

Debian を使用している場合、debootstrap は、QEMU、Xen、OpenVZ、Lguest、またはその他多数と組み合わせた友人です。

于 2008-12-30T11:21:23.107 に答える
1

上記はすべて良い提案ですが、予期しない発信ネットワーク接続を禁止する iptables ルールを追加することもお勧めします。ほとんどの自動化された Web エクスプロイトが最初に行うことは、残りのペイロードをダウンロードすることであるため、ネットワーク接続を阻止すると、攻撃者の速度が低下する可能性があります。

これらに似たいくつかのルールを使用できます (注意してください。Web サーバーは他のプロトコルにアクセスする必要がある場合があります): iptables --append OUTPUT -m owner --uid-owner apache -m state --state ESTABLISHED,RELATED --jump ACCEPT iptables - -append OUTPUT -m owner --uid-owner apache --protocol udp --destination-port 53 --jump ACCEPT iptables --append OUTPUT -m owner --uid-owner apache --jump REJECT

于 2008-12-30T11:14:09.720 に答える
0

仮想マシンを作成します。vmware や qemu などを試してください

于 2008-09-28T09:19:23.660 に答える
0

あなたが本当に解決しようとしている問題は何ですか?そのサーバーの内容に関心がある場合は、侵入者がサーバーに侵入するのを防ぐ必要があります。侵入者がサーバーで何をするかを気にする場合は、サーバー自体の機能を制限する必要があります。

これらの問題はいずれも、サーバー自体に深刻な障害を与えることなく、仮想化によって解決することはできませんでした。あなたの問題に対する本当の答えはこれだと思います:

  1. OS 更新のための簡単なメカニズムを提供する OS を実行します。
  2. ベンダー提供のソフトウェアを使用します。
  3. すべてを頻繁にバックアップします。
于 2008-09-28T17:40:44.377 に答える