Sun Java System Web Proxy Server 4.0.4 管理ガイド

その他のセキュリティーに関する注意事項

第三者が暗号を解読しようとする以外にも、セキュリティーに関するリスクがあります。ネットワークは常に、内側と外側から、ハッカーのリスクにさらされています。ハッカーはさまざまな手口を使って、サーバーやサーバーに格納されている情報にアクセスしようとしています。サーバーで暗号化を有効にするだけでなく、別のセキュリティー対策を立てる必要があります。たとえば、セキュリティー保護された部屋にサーバーコンピュータを設置し、信頼できない個人にサーバーへのプログラムのアップロードを許可しないようにするなどです。この節では、サーバーのセキュリティーをさらに強化するのに必要な、重要な事項についていくつか説明します。

ここでは、次の内容について説明します。

物理的アクセスの制限

このシンプルなセキュリティー手段が、意外と見落とされがちです。承認された人だけが入室できる鍵の掛かった部屋にサーバーコンピュータを設置してください。このようにすると、サーバーコンピュータ自体へのハッキングを防げます。また、コンピュータの管理 (root) パスワードを所有している場合には、パスワードを保護しておく必要があります。

管理アクセスの制限

リモート構成を使用している場合、必ず、数人のユーザーと数台のコンピュータだけが管理作業を実行できるように、アクセス制御を設定します。管理サーバーからエンドユーザーの権限で LDAP サーバーやローカルディレクトリ情報へのアクセスを許可 する場合、2 台の管理サーバーを維持し、クラスタ管理を使用することを検討してください。1 台を SSL を有効にしてマスターとなる管理サーバーにし、もう 1 台の管理サーバーをエンドユーザーからアクセスできるようにします。クラスタについては、第 6 章「サーバークラスタの管理」を参照してください。

管理サーバーの暗号化機能もオンにすることをお勧めします。管理に SSL 接続を使用しない場合、リモートサーバーの管理がセキュリティー保護されていないネットワークを介して行われるという点に注意してください。管理パスワードの傍受や、サーバーの再設定がだれにでも可能になってしまいます。

強固なパスワードの選択

サーバーでは多数のパスワードが使用されています。管理パスワード、非公開鍵パスワード、データベースパスワードなどです。この中でもっとも重要なパスワードは管理パスワードです。このパスワードを使えば、誰もがコンピュータ上のどのサーバーの設定でも行えるからです。次に重要なのは、非公開鍵パスワードです。非公開鍵と非公開鍵パスワードを持っていれば誰でも、ユーザーのサーバーであるように見せかけた偽のサーバーを作成したり、サーバーの通信を傍受して改ざんしたりすることができます。

優れたパスワードは、ユーザー自身が覚えやすく、第三者には推測できないようなパスワードです。たとえば、MCi12!mo は「My Child is 12 months old!」として覚えることができます。悪いパスワードの例としては、子供の名前や誕生日などが挙げられます。

推測しにくいパスワードの作成

これらのガイドラインに従って、安全性の高いパスワードを作成できます。1 つのパスワードに次の規則のすべてを取り入れる必要はありませんが、使用する規則が多ければ多いほど、パスワードは推測されにくくなります。いくつかヒントを示します。

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

信頼データベースおよび鍵ペアファイルのパスワードまたは PIN は定期的に変更するようにしてください。管理サーバーで SSL を有効にしている場合、サーバーを起動するときにこのパスワードが必要です。パスワードを定期的に変更すると、サーバーのセキュリティー保護が強化されます。

このパスワードは、ローカルコンピュータでのみ変更することをお勧めします。パスワードを変更するときに考慮する必要のあるガイドラインについては、「推測しにくいパスワードの作成」を参照してください。

Procedure信頼データベース/鍵ペアファイルのパスワードを変更するには

  1. 管理サーバーまたはサーバーマネージャーにアクセスし、「Security」タブを選択します。

  2. 「Change Key Pair File Password」リンクをクリックします。

  3. 「Cryptographic Module」ドロップダウンリストから、パスワードを変更するセキュリティートークンを選択します。

    デフォルトでは、このトークンは内部鍵データベースの「Internal」になっています。PKCS #11 モジュールがインストールされている場合は、すべてのセキュリティートークンが一覧表示されます。

  4. 現在のパスワードを入力します。

  5. 新しいパスワードを入力します。

  6. もう一度新しいパスワードを入力し、「了解」をクリックします。

    鍵ペアファイルは必ずセキュリティー保護するようにします。管理サーバーは、server-root/alias ディレクトリ内に鍵ペアファイルを格納します。

    このファイルがバックアップテープに格納されるのかどうか、または第三者が傍受できるような状態かどうかを知っておくことも大切です。その場合には、バックアップをサーバーと同じように、完全にセキュリティー保護する必要があります。

サーバー上でのほかのアプリケーションの制限

サーバーと同じコンピュータで実行するすべてのアプリケーションを十分に検討します。サーバー上で実行するほかのアプリケーションのセキュリティーホールを利用して、サーバーのセキュリティーが危険にさらされる可能性があります。不必要なプログラムやサービスはすべて無効にしてください。たとえば、UNIX sendmail デーモンは、安全に設定することが難しく、悪影響を及ぼす可能性のあるほかのプログラムをサーバーコンピュータ上で実行するようにプログラムされる可能性があります。

UNIX と Linux

inittab スクリプトと rc スクリプトから開始するプロセスを注意して選択します。telnet または rlogin をサーバーコンピュータから実行しないでください。また、サーバーコンピュータに rdist を置かないでください。このプログラムを使用すると、ファイルを配布できますが、サーバーコンピュータ上のファイルの更新にも使用される可能性があります。

Windows

他のコンピュータと共有するドライブやディレクトリについて、十分に検討してください。また、どのユーザーがアカウントやゲストの特権を所有しているかについても検討してください。サーバー上に置いているプログラムや、ほかのユーザーにインストールを許可するプログラムについても注意してください。ほかのユーザーのプログラムにセキュリティーホールがある可能性もあります。最悪の場合、セキュリティーを侵害するために設計した悪意のあるプログラムを何者かがアップロードする可能性もあります。したがって、サーバー上にプログラムを置くことを許可する前に、そのプログラムを良く調べてください。

クライアントによる SSL ファイルキャッシングの防止

HTML ファイルの <HEAD> セクション内に次の行を追加することで、暗号化されているファイルがクライアントによりキャッシュに書き込まれるのを事前に防止することができます。

<meta http-equiv="pragma" content="no-cache">

ポートの制限

コンピュータ上で使用していないポートは、すべて無効にします。ルーターやファイアウォールの設定を使用して、最低限のポートセット以外には着信接続ができないように設定します。この保護は、すでに制限された領域内にあるサーバーコンピュータを物理的に使用することによってのみ、コンピュータ上でシェルを取得することができるということを意味します。

サーバーの限界の把握

サーバーは、サーバーとクライアントの間でセキュリティー保護された接続ができるようにします。サーバーは、情報がいったんクライアントに取得されると、情報のセキュリティーを制御することはできず、サーバーコンピュータ自体およびそのディレクトリやファイルに対するアクセスも制御できません。

このような限界を認識しておくことは、避けるべき状況を理解するのに役立ちます。たとえば、SSL 接続を介してクレジットカードの番号を取得するとします。しかしそれらの番号はサーバーコンピュータ上のセキュリティー保護されたファイルに格納されるでしょうか。SSL 接続が終了したあとでこれらの番号はどうなるのでしょうか。SSL を介してクライアントから送信されたすべての情報に対して、必ずセキュリティー保護するようにしてください。