Sun ONE ロゴ      前へ      目次      索引      次へ     

Sun ONE Application Server 7, Enterprise Edition セキュリティ管理者ガイド

第 2 章
一般的なセキュリティ対策

認証、暗号化、ACL ファイルなどのセキュリティメカニズムや、J2EE の認証、承認メカニズムを利用するほかに、数多くの手順を手動で実行して、Sun ONE Application Server をより安全にすることができます。

この章には、次の項目があります。


一般的なセキュリティについて

ネットワークは、さまざまな方法でサーバーやサーバー上の情報にアクセスを試みる外部および内部の攻撃者による侵入の危険にさらされています。Sun ONE Application Server は、サーバーとクライアントの間に安全な接続を提供します。しかし、クライアント側に移った情報のセキュリティを制御したり、サーバーマシン自体や、そのディレクトリとファイルに対するアクセスを制御したりすることはできません。

この限界を意識することは、避ける必要のある状況を理解する上で役立ちます。たとえば、SSL 接続でクレジットカードの番号を入手した場合、この番号はサーバーマシン上の安全なファイルに記録されるのか、 SSL 接続が終了した後で、この番号はどのような状態に置かれるのか、 管理者は、SSL を介してクライアントが送信した情報の安全に対して責任があります。


物理アクセスの制限

サーバーをアクセスから物理的に保護する簡単なセキュリティ対策は、見過ごされがちです。サーバーマシンは、適切な権限のある者だけに入室が許される、キーのかかった部屋に設置します。これにより、サーバーマシン自体への侵入を防ぐことができます。

Sun ONE Application Server は、サーバーマシン自体に物理的にアクセスできる者がサーバーチャンネルを悪用しないことを前提としています。サーバーマシンへのアクセスを、適切な権限を持ち、悪意のないユーザーに限定するために、可能な限りの対策をとることが重要です。


ファイアウォールの使用

この節では、ファイアウォールの一般的な設定と、正しく機能させるためのパラメータ設定について説明します。これは、Sun ONE Application Server に関連する一般的な情報です。詳細については、ファイアウォールベンダーのマニュアルを参照してください。

この節では次の項目について説明します。

シングルファイアウォール

最も単純で最も一般的なファイアウォールの構成は、Sun ONE Application Server のサーバーとインターネットブラウザとの間に、1 つのファイアウォールを配置するものです。Web コンテナへのアクセスに合わせて、HTTP ポート (デフォルトは 80) または HTTPS ポート (デフォルトは 443) あるいはその両方に HTTP 接続できるようにファイアウォールを設定する必要があります。


インターネットから Enterprise JavaBean に直接 RMI/IIOP アクセスができるようにするには、IIOP/RMI リスナーポート (デフォルトは 3700) も開く必要があります。ただし、セキュリティリスクの可能性があるため、このような設定を行わないことを強くお勧めします。


シングルファイアウォールの利点は、その単純さにあります。最大の欠点は、防衛ラインが 1 つに限定されることです。ファイアウォールを通過して侵入された場合、プライベートネットワークに接続している個々のマシンのセキュリティだけが防御の頼りとなります。

次の表は、ファイアウォールが適切に機能するように設定する必要のあるプロトコルとポートを示しています。左の列は使用するプロトコル、中央の列はポート、右の列は通信の種類をそれぞれ示しています。

表 2-1 ダブルファイアウォール構成のプロトコルとポート

プロトコル

ファイアウォール

ポート

通信の種類

TCP/IP

外部

80 (デフォルト)

HTTP 要求

TCP/IP

外部

443

HTTPS 要求

これらのポートについては、『Sun ONE Application Server 管理者ガイド』および管理インタフェースのオンラインヘルプを参照してください。

ダブルファイアウォール - DMZ 設定

DMZ (非武装ゾーン) 設定とも呼ばれる 2 つのファイアウォールによる設定は、プライベートネットワークへのアクセスをパートナー企業や顧客に限定する方法として、多くの企業で一般的に使用され始めています。2 段階による保護、および各ファイアウォールと DMZ 内でのアクティビティのアクティブな監視によって、内部ネットワークに侵入しようとしてもほとんどが検知されます。そのため、シングルファイアウォールによる設定よりも高いセキュリティが保証されます。

ダブルファイアウォールでは、次の要素の設定を行います。

ダブルファイアウォールの設定では、外部ファイアウォールはHTTP と HTTPS のトランザクションを通過させるように設定する必要があります。内部ファイアウォールは、HTTP サーバープラグインと、ファイアウォールの奥の Sun ONE Application Server との通信が可能になるように設定する必要があります。

次の表は、ファイアウォールが適切に機能するように設定する必要のあるプロトコルとポートを示しています。左の列は使用するプロトコル、次の列はプロトコルとポートに適用されるファイアウォール、3 番目の列はポート、右の列は通信の種類をそれぞれ示しています。

表 2-2 シングルファイアウォール構成のプロトコルとポート

プロトコル

ファイアウォール

デフォルトポート

通信の種類

TCP/IP

外部

80

ルーティングサーバーへの HTTP 要求

TCP/IP

外部

443

ルーティングサーバーへの HTTPS 要求

TCP/IP

内部

80

Sun ONE Application Server への HTTP 要求

TCP/IP

内部

443

Sun ONE Application Server への HTTPS 要求

これらのポートについては、『Sun ONE Application Server 管理者ガイド』および管理インタフェースのオンラインヘルプを参照してください。

トリプルファイアウォール - DMZ とデータベース保護

一部の企業向けの設定では、ネットワーク上にデータベースが存在し、それをファイアウォールで保護しています。3 つのファイアウォールを設定すると、企業データベースに保存されたデータという最も重要な企業資産のセキュリティを最大限に確保することができます。LAN とデータベースの間にファイアウォールを設置することで、内部だけでなく、外部からの侵入も防ぐことができます。

データベースへの接続は、ODBC (Open DataBase Connectivity)、JDBC (Java DataBase Connectivity) などの標準のアクセスメカニズムと、データベースベンダーから提供されるコネクタライブラリを使って行います。データベースへの接続は、その他のアプリケーションへの接続と異なる点はありません。このため、データベース保護層のファイアウォールは、使用する特定のデータベースへのアクセスに必要な標準設定に合わせます。


管理アクセスの制限

リモート設定を使用する場合は、アクセス制御を設定し、管理アクセスを少数のユーザーおよびコンピュータに限定する必要があります。

マスター管理サーバーの暗号化は、常にオンにしておく必要があります。管理に SSL 接続を使わない場合は、安全ではないネットワークを通じてリモートサーバーの管理作業を実行するときに、特別な注意を払う必要があります。管理パスワードが盗まれ、サーバーが再設定される可能性があります。

管理サーバーを使って、LDAP サーバーまたはローカルディレクトリの情報にエンドユーザーがアクセスできるようにする場合は、2 つの管理サーバーの利用とクラスタの管理を検討してください。SSL が有効な管理サーバーはマスターサーバーとして機能し、もう一方の管理サーバーはエンドユーザーがアクセスするために利用できます。詳細は、「LDAP との SSL 通信の有効化」を参照してください。

クラスタ管理の導入方法については、クラスタリングに関する Sun のマニュアルを参照してください。


パスワードの管理

サーバーには、 管理パスワード、秘密鍵パスワード、データベースパスワードなど、多くのパスワードがあります。コンピュータ上のすべてのサーバーの設定に利用可能な管理パスワードは、その中でも最も重要なパスワードです。次に重要なパスワードは、秘密鍵のパスワードです。秘密鍵と秘密鍵のパスワードが他者に知られると、使用しているサーバーに似せた偽のサーバーを作成したり、サーバーを出入りする通信内容を傍受または変更したりすることが可能になります。

良いパスワードは、自分が思い出せて、他者が想像できないパスワードです。たとえば、自分の子供が誕生後 12 か月であれば、「My Child is 12 months old!」から MCi12!mo を思い出すことができます。悪いパスワードは、子供の名前や誕生日を使ったパスワードです。

次の項では、パスワードについて次の追加情報を提供します。

解読されにくいパスワードの作成

解読されにくいパスワードを作成するための簡単なガイドラインを次に示します。

このガイドラインのすべてに従う必要はありませんが、多くの項目を満たした方がパスワードは解読されにくくなります。

スーパーユーザーのパスワードの管理

管理サーバーにスーパーユーザー権限を設定できます。この場合、スーパーユーサーとは、サーバーにアクセスして設定の一部または全部を変更できるユーザーを意味します (システムのスーパーユーザーやルートとは異なります)。この設定は、スーパーユーザーのアカウントだけに影響します。つまり、管理サーバーが分散管理を採用している場合は、有効化する管理ユーザー用に追加のアクセス制御を設定する必要があります。

スーパーユーザーの名前とパスワードは、intsall_dir/domains/domain_dir/admin-server/config/admpw というファイルに記録されます。ユーザー名を忘れたときは、このファイルを表示して実際の名前を確認できますが、パスワードは暗号化されているので読めません。このファイルの書式は、username:password です。

パスワードを忘れたときは、admpw ファイルを開き、暗号化されたパスワードを削除します。


警告

admpw ファイルは編集可能なので、サーバーマシンを安全な場所に設置し、ファイルシステムへのアクセスを制限することが重要です。

  • UNIX/Linux システムでは、ルートまたは管理サーバーデーモンを実行するシステムユーザーだけが書き込みを許可されるように、ファイルの所有権を変更できます。デフォルトでは、ディレクトリや他の機密ファイルを保護するインスタンスの所有者だけが /config ディレクトリの内容を読み込めます。このアクセス権が変更されないように注意してください。
  • Windows システムでは、ファイルの所有権を管理サーバーが使用するユーザーアカウントに制限してください。

管理サーバーのスーパーユーザー権限を設定するには、管理インタフェースから次の手順を実行します。

  1. 「Admin Server (管理サーバー)」にアクセスし、「Security (セキュリティ)」を選択します。次の画面が表示されます。
  2. 図 2-1 「Superuser Access Control (スーパーユーザーアクセス制御)」ページ
    この画面ショットは、スーパーユーザーのアクセス制御を設定するページを示しています。

  3. 「Access Control (アクセス制御)」を選択します。
  4. 「Superuser Access Control (スーパーユーザーアクセス制御)」ページが表示されます。

  5. 管理サーバーへのスーパーユーザーとしてのアクセスが許可されるホストの名前を入力します。
  6. 管理サーバーへのスーパーユーザーとしてのアクセスが許可されるホストの IP アドレスを入力します。
  7. 認証ユーザー名を入力します。
  8. 認証パスワードを入力します。
  9. パスワードの変更時に注意すべきガイドラインについては、を参照してください。

  10. 認証パスワードをもう一度入力します。
  11. 「OK (了解)」をクリックします。
  12. 左のペインで「App Server Instances (アプリケーションサーバーインスタンス)」にアクセスしてサーバーインスタンスを選択し、「Apply Changes (変更を適用)」をクリックします。
  13. サーバーを停止し、再起動して変更を適用します。

パスワードまたは PIN の変更

信頼データベースおよびキーペアファイルのパスワードまたは PIN を定期的に変更することをお勧めします。SSL が有効な管理サーバーでは、サーバーの起動時にこのパスワードが必要です。このパスワードの変更は、ローカルマシンで行う必要があります。手順については、「信頼データベースのパスワードの変更」を参照してください。

キーペアファイルは、確実に保護されている必要があります。管理サーバーは、キーペアファイルをインスタンスの /config ディレクトリに保存します。デフォルトでは、インスタンスの所有者だけが /config ディレクトリ内のファイルを読み込むことができます。このアクセス権を監視し、バックアップスクリプトなどのイベントによってこのファイルへのアクセス権が後から変更されないように注意する必要があります。

また、ファイルがバックアップテープに残されていたり、他者がアクセスできるその他の場所に保存されていないかどうかを確認することも重要です。このような場合は、サーバー上のデータの保護と同様に、バックアップテープを慎重に保護する必要があります。

password.conf ファイルの使用

デフォルトでは、Sun ONE Application Server の起動時に SSL キーデータベースのパスワードが要求されます。Sun ONE Application Server を自動で再起動させるには、このパスワードを password.conf ファイルに保存しておく必要があります。


password.conf ファイルは、システムが適切に保護され、このファイルとキーデータベースが危険にさらされていない場合にだけ使用してください。


セキュリティ上の危険性が問題にならない場合は、次の手順に従って SSL が有効なサーバーを自動的に起動します。

  1. SSL が有効なことを確認します。
  2. サーバーインスタンスの config サブディレクトリに password.conf ファイルを新規作成します。
    • サーバーに付属している内部 PKCS11 ソフトウェア暗号化モジュールを使用している場合には、次の情報を入力します。
    • internal:your_password

    • ハードウェア暗号化用またはハードウェアアクセラレータ用の別の PKCS11 モジュールを使っている場合は、PKCS11 モジュールの名前に続けてパスワードを指定します。次に例を示します。
    • nFast:your_password

  3. サーバーを停止後、再起動して新しい設定を適用します。


サーバーでの別アプリケーション実行の制限

サーバー上で実行している他のプログラムの弱点を利用して Sun ONE Application Server のセキュリティをかいくぐることができます。これを避けるには、サーバー上で実行している不要なプログラムやサービスを無効にします。

管理者自身または他のユーザーがサーバーにインストールするプログラムにも注意が必要です。認識しているかどうかに関わらず、他のユーザーがインストールしたプログラムにセキュリティホールがあるかもしれません。最悪の場合には、セキュリティを無効にすることを目的とした悪質なプログラムを何者かがインストールすることも考えられます。プログラムをサーバーにインストールする場合は、事前に注意深く調べる必要があります。


保護されていないサーバーのセキュリティ

保護されているサーバーと保護されていないサーバーの両方を維持する場合は、別のマシン上の保護されていないサーバーを保護されているサーバーから操作する必要があります。

リソースに限りがあり、保護されているサーバーと同じマシンで保護されていないサーバーを実行する必要がある場合は、次のように対応します。

管理インタフェースで次の手順を実行することで、特定の仮想サーバーの chroot ディレクトリを指定できます。

  1. 「App Server Instances (アプリケーションサーバーインスタンス)」にアクセスし、左のペインでサーバーインスタンスを選択します。
  2. 「HTTP Server (HTTP サーバー)」の「Virtual Servers (仮想サーバー)」を選択します。
  3. chroot ディレクトリを指定する仮想サーバーを選択します。
  4. 「General (一般)」タブのページが表示されます。

  5. 「Chroot (ディレクトリ変更)」フィールドが表示されるまでページをスクロールします。
  6. Chroot ディレクトリのフルパス名を入力します。
  7. 「Save (保存)」をクリックします。
  8. 左のペインで「App Server Instances (アプリケーションサーバーインスタンス)」にアクセスしてサーバーインスタンスを選択し、「Apply Changes (変更を適用)」をクリックします。
  9. サーバーを停止し、再起動して変更を適用します。


前へ      目次      索引      次へ     


Copyright 2003 Sun Microsystems, Inc. All rights reserved.