ヘッダーをスキップ
Oracle® Database 2日でセキュリティ・ガイド
11g リリース2(11.2)
B56296-05
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

5 ネットワークの保護

この章の内容は次のとおりです。

ネットワークの保護について

『Oracle Database 2日でデータベース管理者』の「ネットワーク環境の構成」および使用しているプラットフォームの『Oracle Databaseインストレーション・ガイド』の手順に従って、Oracle Databaseインストール環境へのクライアント接続を構成できます。この章では、ネットワーク上を移動するデータを暗号化する方法を説明し、Oracle Databaseのネットワーク接続を保護するために従うことのできるガイドラインも示します。

ネットワーク上のクライアント接続の保護

ここでは、クライアント接続のセキュリティを高めて、完全な保護を確保する方法を説明します。データベースとの通信を保護するには、ネットワーク・トラフィックを暗号化する必要があります。

ガイドラインは次のとおりです。

クライアント接続保護のガイドライン

クライアント・コンピュータの認証には問題が多いため、通常は、かわりにユーザー認証が行われます。この方法により、偽造されたIPアドレス、危険にさらされたオペレーティング・システムまたはアプリケーション、偽造または盗用されたクライアント・システムIDがクライアント・システムで使用される問題を回避できます。また、次のガイドラインに従うことで、クライアント接続のセキュリティが向上します。

  1. アクセス制御を効果的に実施して、クライアントを厳密に認証します。

    デフォルトでは、オペレーティング・システムで認証されたログインのみがセキュア接続で許可され、Oracle Netおよび共有サーバー構成の使用は拒否されます。デフォルトで行われるこの制限により、リモート・ユーザーがネットワーク接続で他のオペレーティング・システム・ユーザーを装うことが阻止されます。

    初期化パラメータREMOTE_OS_AUTHENTTRUEに設定すると、データベースはセキュアでない接続を介して受信したクライアントのオペレーティング・システムのユーザー名を受け入れ、このユーザー名をアカウント・アクセスに使用します。(初期化パラメータの変更は、「初期化パラメータ値の変更」を参照してください。)PCなどのクライアントは、オペレーティング・システムの認証を正しく実行していない場合があるため、この機能を使用するとセキュリティが非常に低下します。

    デフォルト設定REMOTE_OS_AUTHENT = FALSEにより、よりセキュアな構成が作成され、Oracle Databaseに接続するユーザーに対してサーバーベースの適切な認証が行われます。

    このパラメータをFALSEに設定しても、ユーザーがリモートから接続できなくなるわけではありません。クライアントがすでに認証されていたとしても、データベースにより標準の認証プロセスが適用されるだけです。

  2. 暗号化を使用するように接続を構成します。

    Oracleのネットワーク暗号化を使用すると、盗聴が困難になります。暗号化の構成方法は、『Oracle Database Advanced Securityガイド』を参照してください。

  3. 厳密な認証を設定します。

    Kerberosおよび公開鍵基盤(PKI)の使用方法の詳細は、『Oracle Database Advanced Securityガイド』を参照してください。

ネットワーク接続の保護のガイドライン

不適切なアクセスまたは変更からネットワークおよびトラフィックを保護することは、ネットワーク・セキュリティにおいて非常に重要です。データが移動するすべての経路を検討し、各経路およびノードに対する脅威を評価します。次に、それらの脅威およびセキュリティが侵害された場合の影響を抑制または排除する手順を実行します。また、監視および監査を実施し、脅威レベルの増加または侵入の試行を検出します。

ネットワーク接続を管理するには、Oracle Net Managerを使用できます。Oracle Net Managerの使用の概要は、『Oracle Database 2日でデータベース管理者』を参照してください。『Oracle Database Net Services管理者ガイド』も参照してください。

次の手順を実行して、ネットワーク・セキュリティを強化します。

  1. リスナーのアクティビティを監視します。

    Oracle Enterprise Manager Database Controlを使用してリスナーのアクティビティを監視できます。Database Controlのホームページの「一般」で、使用しているリスナーのリンクをクリックします。「リスナー」ページが表示されます。このページには、生成されたアラートのカテゴリ、アラート・メッセージ、アラートがトリガーされた日時などの詳細な情報が含まれています。このページには、リスナーのパフォーマンス統計などの情報も含まれています。

  2. 管理者に対してリスナーのパスワードおよびサーバー上のlistener.oraファイルへの書込み権限を要求して、オンライン管理を防止します。

    1. listener.oraファイルで、次の行を追加または変更します。

      ADMIN_RESTRICTIONS_LISTENER=ON
      
    2. RELOADを使用して構成をリロードします。

    3. 次のように、アドレス・リストの第1エントリをTCPSプロトコルにして、リスナーの管理にSSLを使用します。

      LISTENER=
        (DESCRIPTION=
          (ADDRESS_LIST=
            (ADDRESS=
              (PROTOCOL=tcps)
              (HOST = shobeen.us.example.com)
              (PORT = 8281)))
      

      リモートからリスナーを管理するには、クライアント・コンピュータ上のlistener.oraファイルでリスナーを定義します。たとえば、リスナーUSER281にリモートからアクセスする場合は、次の構成を使用します。

      user281 =
        (DESCRIPTION =
          (ADDRESS =
            (PROTOCOL = tcps)
            (HOST = shobeen.us.example.com)
            (PORT = 8281))
          )
        )
      

    listener.oraのパラメータの詳細は、『Oracle Net Servicesリファレンス・ガイド』を参照してください。

  3. リスナー・パスワードを設定しないでください。

    パスワードがlistener.oraファイルに設定されていないことを確認します。オペレーティング・システム認証によってリスナー管理が保護されます。パスワードが設定されていない場合、リモート・リスナー管理は無効です。これによって、リスナーのパスワードへの総当り攻撃が防止されます。

    リスナーのパスワードは、このリリースで非推奨となっており、Oracle Databaseの次のリリースではサポートされなくなることに注意してください。

  4. 複数のNICカードに関連付けられている複数のIPアドレスがホストにある場合は、リスナーを特定のIPアドレスに設定します。

    これにより、リスナーはすべてのIPアドレスを監視できます。指定したIPアドレスを監視するように制限することもできます。これらのタイプのコンピュータでは、リスナーにすべてのIPアドレスを監視させるのではなく、IPアドレスを指定することをお薦めします。特定のIPアドレスの監視に制限することで、リスナー・プロセスからTCPエンドポイントが盗用されることを防止できます。

  5. リスナーの権限を制限して、データベースまたはOracleサーバーのアドレス空間のファイルを読取り/書込みできないようにします。

    この制限により、リスナー(またはエージェントが実行するプロシージャ)によって起動される外部プロシージャ・エージェントに、読取りまたは書込み操作の実行権限が継承されなくなります。この個別のリスナー・プロセスの所有者には、Oracleをインストールした所有者またはOracleインスタンスを実行する所有者(デフォルトの所有者であるORACLEなど)は指定しないでください。

    リスナーにおける外部プロシージャの構成の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。

  6. 暗号化を使用して送信中のデータを保護します。

    ネットワークを介してOracleデータを保護する方法については、「ネットワーク暗号化を使用したネットワーク上のデータの保護」を参照してください。ネットワーク暗号化の詳細は、『Oracle Database Advanced Securityガイド』を参照してください。

  7. ファイアウォールを使用します。

    ファイアウォールを適切に配置および構成することで、データベースへの外部アクセスを防止できます。

    • データベース・サーバーはファイアウォールの内側に配置してください。Oracle Databaseネットワーク・インフラストラクチャであるOracle Net(以前のNet8およびSQL*Net)は、様々なベンダーの各種ファイアウォールをサポートしています。サポートされるプロキシ対応のファイアウォールには、Network AssociatesのGauntletやAxentのRaptorなどが含まれます。サポートされるパケット・フィルタ型のファイアウォールにはCiscoのPIX Firewall、またサポートされるステートフル・インスペクション・ファイアウォール(より高機能なパケット・フィルタを実装したファイアウォール)には、CheckPointのFirewall-1が含まれます。

    • ファイアウォールは、保護するネットワークの外側に配置されている必要があります。

    • 安全性が確認されているプロトコル、アプリケーションまたはクライアント/サーバーのソースのみを受け入れるようにファイアウォールを構成します。

    • Oracle Connection Managerなどの製品を使用し、データベースへの単一のネットワーク接続を介して複数のクライアント・ネットワーク・セッションを多重化します。ソース、宛先およびホスト名を使用してフィルタ処理できます。この製品により、物理的に保護された端末または既知のIPアドレスのアプリケーションWebサーバーからの接続のみを受け入れるようにできます。(IPアドレスは偽造可能なため、IPアドレスのみでフィルタ処理した認証では不十分です)。

  8. Oracleリスナーの不正な管理を防止します。

    リスナーの詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。

  9. ネットワークIPアドレスをチェックします。

    Oracle Netの有効なノードの確認セキュリティ機能を利用すると、指定のIPアドレスを持つネットワーク・クライアントからOracleサーバー・プロセスへのアクセスを許可または拒否できます。この機能を使用するには、次のsqlnet.ora構成ファイル・パラメータを設定します。

    tcp.validnode_checking = YES
    
    tcp.excluded_nodes = {list of IP addresses}
    
    tcp.invited_nodes = {list of IP addresses}
    

    tcp.validnode_checkingパラメータで、機能を有効にします。tcp.excluded_nodesおよびtcp.invited_nodesパラメータは、特定のクライアントIPアドレスによるOracleリスナーへの接続の確立を拒否または有効にします。これにより、潜在的なサービス拒否(DoS)攻撃を防ぐことができます。

    Oracle Net Managerを使用して、これらのパラメータを構成できます。詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。

  10. ネットワーク・トラフィックを暗号化します。

    可能な場合は、Oracle Advanced Securityを使用して、クライアント、データベースおよびアプリケーション・サーバー間のネットワーク・トラフィックを暗号化します。Oracleネットワーク暗号化の概要は、「ネットワーク暗号化を使用したネットワーク上のデータの保護」を参照してください。ネットワーク暗号化の詳細は、『Oracle Database Advanced Securityガイド』を参照してください。

  11. ホスト・オペレーティング・システム(Oracle Databaseが配置されているシステム)を保護します。

    オペレーティング・システムの不要なサービスをすべて使用禁止にして、ホスト・オペレーティング・システムを保護します。UNIXおよびWindowsの大部分のサービスは、標準的なデプロイメントでは必要ありません。この種のサービスには、FTP、TFTP、TELNETなどがあります。使用を禁止している各サービスのUDPポートとTCPポートは、両方とも必ず閉じてください。いずれかのポートが使用可能になっていると、オペレーティング・システムが攻撃を受けやすくなります。

ネットワーク暗号化を使用したネットワーク上のデータの保護

情報は、データベース・レベルで暗号化して保護するだけでなく、ネットワークで送受信されるときにも保護する必要があります。

この項の内容は次のとおりです。


関連項目:

ネットワーク暗号化の詳細は、『Oracle Database Advanced Securityガイド』を参照してください。

ネットワーク暗号化について

ネットワーク暗号化とは、クライアントとサーバー間のネットワークを移動するデータを暗号化することです。データベース・レベルだけでなくネットワーク・レベルでもデータを暗号化する必要があるのは、ネットワーク・レベルで読み取られる可能性があるためです。たとえば、ネットワークを移動する情報がネットワーク・パケット・スニファを使用して傍受され、ファイルにスプールされて不正に使用される可能性があります。ネットワーク上のデータを暗号化することにより、このようなアクティビティを防止できます。

ネットワーク上のデータを暗号化するには、次のコンポーネントが必要です。

  • 暗号化シード。暗号化シードは、最大256文字のランダムな文字列です。ネットワークを移動するデータを暗号化する暗号化鍵を生成します。

  • 暗号化アルゴリズム。サポートされるアルゴリズムのタイプ(AES、RC4、DES、3DES)からいずれかを指定します。

  • クライアントまたはサーバーに適用する設定。サーバーと、サーバーが接続する各クライアントを設定する必要があります。

  • クライアントまたはサーバーが暗号化されたデータを処理する方法。サーバーとクライアントで、同じ設定を選択する必要があります(オプションが4つあります)。

  • 暗号化を構成するためのメカニズム。Oracle Net Managerを使用して暗号化を構成できます。または、sqlnet.ora構成ファイルを編集できます。Oracle Net Managerとsqlnet.oraはどちらもデフォルトのOracle Databaseインストール環境で使用できます。

ネットワーク暗号化の設定

Oracle Net Managerを使用するか、sqlnet.oraファイルを編集して、ネットワーク暗号化を設定できます。このマニュアルでは、Oracle Net Managerを使用してネットワーク暗号化を設定する方法を説明します。

ネットワーク暗号化を設定するには、次のようにします。 

  1. サーバー・コンピュータで、Oracle Net Managerを起動します。

    • UNIX: $ORACLE_HOME/binから、次のコマンドラインを入力します。

      netmgr
      
    • Windows: 「スタート」メニューから「すべてのプログラム」をクリックします。次に「Oracle - HOME_NAME」「Configuration and Migration Tools」「Net Manager」の順にクリックします。

  2. Oracle Net Configurationのナビゲーション・ツリーで、「ローカル」を拡張してから「プロファイル」を選択します。

    netmgr_profile.gifの説明が続きます
    netmgr_profile.gifの説明

  3. リストから「Oracle Advanced Security」を選択します。

    netmgr_adv_sec.gifの説明が続きます
    netmgr_adv_sec.gifの説明

  4. 「Oracle Advanced Security」で、「暗号化」タブを選択します。

    「暗号化」設定ペインが表示されます。

    netmgr_encrypt.gifの説明が続きます
    netmgr_encrypt.gifの説明

  5. 次の設定を入力します。

    • 暗号化: リストから、SERVERを選択してサーバーのネットワーク暗号化を構成します。(クライアント・コンピュータの場合は「CLIENT」を選択します)。

    • 暗号化タイプ: 次の値のいずれかを選択して、暗号化および完全性のネゴシエーションをするときのサーバー(またはクライアント)の動作を指定します。

      • 適用: 一方の接続側で「必要」または「リクエスト」が指定されており、受信側のデータベースで矛盾のないアルゴリズムが使用可能になっている場合、サービスはアクティブになります。それ以外の場合、サービスはアクティブにはなりません。

      • 拒否: サービスはアクティブにはなりません。一方の接続側でこのリストのいずれかのメソッドが必要な場合、接続は失敗します。

      • リクエスト: 一方の接続側で「適用」、「必要」または「リクエスト」が指定されており、もう一方の接続側で矛盾のないアルゴリズムが使用可能になっている場合、サービスはアクティブになります。それ以外の場合、サービスはアクティブにはなりません。

      • 必要: サービスはアクティブになります。一方の接続側で「拒否」が指定されている場合、または両立するアルゴリズムがない場合、接続は失敗します。

    • 暗号化シード: 最大256文字のランダムな文字列を入力します。Oracle Databaseは暗号化シードを使用して暗号化キーを生成します。暗号化または完全性のいずれかが有効な場合は必須です。

      暗号化シード・パラメータの一部にカンマ「,」、右括弧「)」などの特殊文字を使用する場合は、一重引用符で値を囲んでください。

    • 使用可能なメソッド: 次のアルゴリズムから1つ以上を選択し、移動ボタン(>)を使用して「選択メソッド」リストに移動します。「選択メソッド」リストに表示される順番により、ネゴシエーションの優先順位が決まります。つまり、最初に表示されるアルゴリズムが最初に選択されます。

      • AES256: Advanced Encryption Standard(AES)。AESはデータ暗号化規格(DES)にかわる暗号化規格として、米国標準技術局(National Institute of Standards and Technology: NIST)で認定されています。AES256を使用すると、256ビットのブロック・サイズを暗号化できます。

      • RC4_256: Rivest Cipher 4 (RC4)。RC4は、Secure Sockets Layer (SSL)などのプロトコルを保護するために最も一般的に使用されるストリーム暗号です。RC4_256を使用すると、最大256ビットのデータを暗号化できます。

      • AES192: AESを使用して192ビットのブロック・サイズを暗号化できます。

      • 3DES168: 3キー・オプションによるTriple Data Encryption Standard (TDES)。3DES168を使用すると、最大168ビットのデータを暗号化できます。

      • AES128: AESを使用して128ビットのブロック・サイズを暗号化できます。

      • RC4_128: RC4を使用して最大128ビットのデータを暗号化できます。

      • 3DES112: 2キー(112ビット)オプションによるトリプルDESを使用できます。

      • DES: 56ビットのData Encryption Standard(DES)キーです。DESは、米国標準技術局(National Institute of Standards and Technology: NIST)の推奨対象ではなくなりました。

      • RC4_40: RC4を使用して最大40ビットのデータを暗号化できます。(推奨しません。)

      • DES40: DESを使用して最大40ビットのデータを暗号化できます。(推奨しません。)

  6. 「ファイル」メニューから「ネットワーク構成の保存」を選択し、次に 「終了」を選択してOracle Net Managerを終了します。

  7. サーバーに接続するクライアント・コンピュータごとに、これらの手順を繰り返します。


関連項目:

  • sqlnet.oraファイルのパラメータを変更してネットワーク暗号化を設定する詳細は、『Oracle Net Servicesリファレンス・ガイド』を参照してください。

  • ネットワーク・データ暗号化の詳細は、『Oracle Database Advanced Securityガイド』を参照してください。


ネットワーク・セキュリティに使用される初期化パラメータ

表5-1に、ユーザー・アカウントを保護するために設定する初期化パラメータを示します。

表5-1 ネットワーク・セキュリティに使用される初期化パラメータ

初期化パラメータ デフォルト設定 説明

OS_AUTHENT_PREFIX

OPS$

データベースへの接続を試行するユーザーを識別するためにOracle Databaseで使用される接頭辞を指定します。Oracle Databaseは、このパラメータの値をユーザーのオペレーティング・システム・アカウント名およびパスワードの先頭に連結します。ユーザーが接続リクエストを試行すると、Oracle Databaseは接頭辞の付いたユーザー名をデータベース内のユーザー名と比較します。

REMOTE_LISTENER

デフォルト設定なし

Oracle Netリモート・リスナー(つまり、このインスタンスと同じコンピュータで実行されていないリスナー)のアドレスまたはアドレス・リストを解決するネットワーク名を指定します。アドレスまたはアドレス・リストは、tnsnames.oraファイル、またはシステムで構成されているその他のアドレス・リポジトリで指定されます。

REMOTE_OS_AUTHENT

FALSE

リモート・クライアントがOS_AUTHENT_PREFIXパラメータの値で認証されるかどうかを指定します。

REMOTE_OS_ROLES

FALSE

オペレーティング・システム・ロールがリモート・クライアントに対して許可されるかどうかを指定します。デフォルト値のFALSEを指定すると、Oracle Databaseはリモート・クライアントのロールを識別および管理します。


初期化パラメータを変更するには、「初期化パラメータ値の変更」を参照してください。初期化パラメータの詳細は、『Oracle Databaseリファレンス』および『Oracle Database管理者ガイド』を参照してください。