質問

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

では、ここで、セットアップが簡単で、メンテナンスが簡単な最良のソリューションは何ですか? DebianでユーザーモードのLinuxサンドボックスを設定するのは簡単ですか?それともchroot刑務所? sadbox内のファイルに外部から簡単にアクセスできるようにしたいと思います。これは、私がシステム管理者ではなくプログラマーであることが非常に明確になる時期の1つです。どんな助けでも大歓迎です!

役に立ちましたか?

解決

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

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

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

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

よろしく、デニス

他のヒント

xardiasが言うことは2番目ですが、代わりに 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アドレスは不要かもしれません。

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

それが言われていることを確認するために、CHRootジェイルはめったに良いアイデアではありません、意図にもかかわらず、非常に簡単に抜け出すことができます。

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

mod_chroot および suEXEC 。これは、最初に使用する必要がある基本的なものであり、おそらく必要なものだけです。

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

上記はすべて良い提案ですが、予期しない送信ネットワーク接続を禁止する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

Debianを使用している場合、debootstrapはQEMU、Xen、OpenVZ、Lguest、または他の多くの人と相まってあなたの友人です。

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

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

これらの問題はどちらも仮想化では解決できませんでした。あなたの問題に対する本当の答えはこれだと思います:

  1. OS更新の簡単なメカニズムを提供するOSを実行します。
  2. ベンダー提供のソフトウェアを使用します。
  3. すべてを頻繁にバックアップします。
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top