プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle HTTP Serverの管理
12c (12.1.3)
E56227-07
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

5 Oracle HTTP Serverの操作

この章では、インストールされたバージョンのOracle HTTP Serverを操作する際に実行が求められる可能性のある共通タスクについて説明します。次の項で構成されます。

5.1 構成ファイル編集上の注意

WebLogic Serverドメインの一部であるインスタンスの場合、Fusion Middleware Controlおよび管理インフラストラクチャはOracle HTTP Server構成を管理します。ステージング・ディレクトリ内での構成に対する直接編集は、Fusion Middleware Controlでの構成の変更などの後続の管理操作の後で上書きされる可能性があります。このようなインスタンスでは、直接編集は管理サーバーが停止時にのみ実行できます。管理サーバーがその後に起動されると、(起動によって)手動編集の結果が、管理対象インスタンスのノード上のランタイム・ディレクトリにレプリケートされます。

スタンドアロン・インスタンスの場合、構成はいつでもステージング・ディレクトリ内で直接編集できます。起動、再起動または停止の操作時に、構成は有効化されます。WebLogicドメインでは、ステージング・ディレクトリにあるファイルを修正する時には、必ず先に管理サーバーを停止する必要があります。

5.2 サーバー・プロパティの指定

Fusion Middleware Controlを使用するか、Oracle HTTP Server構成ファイルを直接編集することによってのみ、Oracle HTTP Serverを設定可能です。WLSTコマンドを使用してサーバー・プロパティを指定することはできません。

5.2.1 Fusion Middleware Controlを使用したサーバー・プロパティの指定

Fusion Middleware Controlを使用してサーバー・プロパティを指定するには、次の手順を実行します。

  1. 「Oracle HTTP Server」メニューから「管理」を選択します。

  2. 「管理」メニューから「サーバー構成」を選択します。「サーバー構成」ページが表示されます。

    srv_prop3.gifの説明が続きます
    図「srv_prop3.gif」の説明

  3. 「ドキュメント・ルート」フィールドに、Webサイトから表示できるメイン・ドキュメント・ツリーを構成するドキュメント・ルート・ディレクトリを入力します。

  4. 「管理者の電子メール」フィールドに、サーバーがクライアントに送信するエラー・メッセージに挿入する電子メール・アドレスを入力します。

  5. 「ディレクトリの索引」フィールドにディレクトリの索引を入力します。これは、クライアントがWebサイトに最初にアクセスしたときに表示されるメイン・ページ(indexページ)です。

  6. オプション: 「オペレーティング・システム・ユーザー」フィールドにユーザー名を入力します。

    通常、このフィールドは空白です。これは、Oracle HTTP Serverをインストールし起動したユーザーに設定できます。

  7. オプション: 「オペレーティング・システム・グループ」フィールドにグループ名を入力します。

    通常、このフィールドは空白です。これは、Oracle HTTP Serverをインストールし起動したユーザーのグループに設定できます。

  8. 「モジュール」リージョンは、モジュールを有効化または無効化するために使用します。有効化または無効化できるモジュールは、mod_perl、mod_fcgiおよびmod_plsqlの3つです。

    mod_perlモジュールの構成手順は、「mod_perlの構成」を参照してください。

  9. 必要な場合は、「別名」表に別名を作成します。別名は、指定したディレクトリにマップされます。たとえば、あるグループでコンテンツ・ページの特定のセットを使用するため、そのコンテンツ・ページを含むディレクトリに別名を作成できます。

  10. 設定を確認します。設定に問題がない場合、「適用」をクリックして変更を適用します。設定に問題がある場合、または変更を適用しない場合、「元に戻す」をクリックして元の設定に戻します。

  11. 4.3.4項「Oracle HTTP Serverインスタンスの再起動」の説明に従って、Oracle HTTP Serverを再起動します。

サーバー・プロパティが保存され、「サーバー構成」ページに表示されます。

5.2.2 httpd.confファイルの編集によるサーバー・プロパティの指定

httpd.confファイルを使用してサーバー・プロパティを指定するには、次の手順を実行します。


注意:

.confファイルを編集しようとする前に、構成ファイル・ディレクトリのレイアウト、ファイル編集のメカニズムおよびファイル自体の詳細に精通しておく必要があります。この情報については、1.6項「構成ファイルの理解」を参照してください。

  1. テキスト・エディタまたはFusion Middleware Controlの「サーバーの詳細構成」ページを使用して、httpd.confファイルを開きます。(1.6.3項「構成ファイルの変更」を参照してください)

  2. ファイルのDocumentRootセクションに、Webサイトのメイン・コンテンツを格納するディレクトリを入力します。この構文の例を次に示します。

    DocumentRoot "${ORACLE_INSTANCE}/config/fmwconfig/components/${COMPONENT_TYPE}/instances/${COMPONENT_NAME}/htdocs"
    
  3. ファイルのServerAdminセクションに、管理者の電子メール・アドレスを入力します。これは、クライアント・ページに表示される電子メール・アドレスです。この構文の例を次に示します。

    ServerAdmin WebMaster@example.com
    
  4. ファイルのDirectoryIndexセクションに、ディレクトリの索引を入力します。これは、クライアントがWebサイトに最初にアクセスしたときに表示されるメイン・ページ(indexページ)です。この構文の例を次に示します。

    DirectoryIndex index.html index.html.var
    
  5. 必要に応じて別名を作成します。別名は、指定したディレクトリにマップされます。たとえば、アイコンの特定のセットを使用するため、Webページ用のアイコンを含むディレクトリに別名を作成できます。この構文の例を次に示します。

    Alias /icons/ "${PRODUCT_HOME}/icons/"
    
    <Directory "${PRODUCT_HOME}/icons">
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
    
  6. ファイルを保存します。

  7. 4.3.4項「Oracle HTTP Serverインスタンスの再起動」の説明に従って、Oracle HTTP Serverを再起動します。

5.3 Oracle HTTP Serverインスタンスの構成

この項では、より一般的なOracle HTTP Serverインスタンス構成手順についていくつか説明します。この項には初期のシステム構成情報は含まれていませんので、それらの構成命令の詳細は、『Oracle HTTP Serverのインストールと構成』を参照してください。

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


注意:

Oracle HTTP Server構成を管理するFusion Middleware Controlおよびその他のOracleソフトウェアは、同等の異なる形式で構成ファイルを保存する可能性があります。ソフトウェアを使用して構成を変更した後に、複数の構成ファイルがリライトされる可能性があります。

5.3.1 Secure Sockets Layerの構成

Secure Sockets Layer (SSL)は、インターネット経由でメッセージを安全に送信することを目的に設計された、暗号化された通信プロトコルです。Oracle HTTP Server間のアプリケーション層およびTCP/IP層にあって、クライアントによってセキュアな接続が確立された場合に暗号化と復号化を透過的に行います。

SSLの一般的な用途の1つは、ブラウザとWebサーバー間のWeb HTTP通信を保護することです。この場合、保護されていないHTTPの使用は排除されません。保護されたバージョンは、単純にHTTP over SSL (HTTPS)と呼ばれます。HTTPSではURLスキームとしてhttp://ではなくhttps://を使用するという点が異なります。Oracle HTTP Serverのデフォルト通信ポートは4443です。Oracle HTTP Serverでは、セキュリティ上の理由から443標準https://特権ポートを使用しません。特権ポートでOracle HTTP Serverを実行する方法の詳細は、4.3.2.4項「特権ポートでのOracle HTTP Serverインスタンスの起動(UNIXのみ)」を参照してください。

デフォルトでは、SSLリスニング・ポートはインストール中にデフォルトのウォレットを使用して構成されて有効化されます。ウォレットには、証明書リクエスト、証明書および秘密鍵など、資格証明が格納されます。

Oracle HTTP Serverとともに自動的にインストールされるデフォルトのウォレットは、テスト目的のみに使用されるものです。本番サーバーに対して実際のウォレットを作成する必要があります。デフォルトのウォレットは、DOMAIN_HOME/config/fmwconfig/components/OHS/instances/componentName/keystores/defaultディレクトリにあります。新しいウォレットをこの場所に配置することも、実際のウォレットの場所を示すようにDOMAIN_HOME/config/fmwconfig/components/OHS/instances/componentName/ssl.confのSSLWalletディレクティブを変更することもできます。

変更を有効とするには、4.3.4項「Oracle HTTP Serverインスタンスの再起動」の説明に従って、Oracle HTTP Serverを再起動します。

Fusion Middleware ControlでウォレットとSSLを構成する方法の詳細は、『Oracle Fusion Middlewareの管理』.の「Oracle HTTP Server仮想ホストに対するSSLの有効化」を参照してください。

5.3.2 スタンドアロン・モードでのSecure Sockets Layerの構成

次の各項では、スタンドアロン・モードでOracle HTTP ServerのSSLを有効化して構成する方法について説明します。これらの手順では、サーバーでSSLを使用できるようにするOracle HTTP Serverに対するmod_osslプラグインを利用します。

5.3.2.1 SSLの構成

デフォルトでは、Oracle HTTP ServerをインストールするときにSSLが有効化されます。次のタスクを実行して、SSLを変更および構成します。

5.3.2.1.1 実際のウォレットの作成

SSL用にOracle HTTP Serverを構成するには、サーバーの証明書を含むウォレットが必要です。ウォレットには、証明書リクエスト、証明書および秘密鍵など、資格証明が格納されます。

Oracle HTTP Serverとともに自動的にインストールされるデフォルトのウォレットは、テスト目的のみに使用されるものです。本番サーバーに対して実際のウォレットを作成する必要があります。デフォルトのウォレットは、$ORACLE_INSTANCE/config/fmwconfig/components/$COMPONENT_TYPE/instances/$COMPONENT_NAME/keystores/defaultにあります。新しいウォレットをこの場所に配置することも、実際のウォレットの場所を示すように$ORACLE_INSTANCE/config/fmwconfig/components/$COMPONENT_TYPE/instances/$COMPONENT_NAME/ssl.conf(インストール前の場所)のSSLWalletディレクティブを変更することもできます。


関連項目:

ウォレットを作成する手順については、Oracle Fusion Middlewareの管理のorapkiに関する項を参照してください。次の作業を実行することが重要です。

証明書リクエストを生成します。共通名には、構成しているサイトの名前または別名を指定します。このauto_login_only機能を必ず有効にしてください。


5.3.2.1.2 (オプション)構成のカスタマイズ

オプションで、mod_osslディレクティブを使用して構成を詳細にカスタマイズすることができます。


関連項目:

  • mod_osslで使用できるディレクティブのリストおよび説明は、F.3項「mod_osslモジュール」を参照してください。

  • SSLFIPSディレクティブの構成方法および使用できる暗号スイートのリストについては、F.3.6項「SSLFIPS」を参照してください。



注意:

構成時にインストールされたファイルには、すべての必要なSSL構成ディレクティブおよびSSL用のデフォルト設定が含まれています。

5.3.2.1.3 基本構成の例

SSL構成には、最低でも次のディレクティブが含まれている必要があります。

LoadModule ossl_module        "${PRODUCT_HOME}/modules/mod_ossl.so"
Listen 4443
ServerName www.testohs.com
SSLEngine on
#  SSL Protocol Support:
#  List the supported protocols.
SSLProtocol nzos_Version_1_2 nzos_Version_1_1 nzos_Version_1_0
#  SSL Cipher Suite:
#  List the ciphers that the client is permitted to negotiate.
SSLCipherSuite  SSL_RSA_WITH_RC4_128_MD5,SSL_RSA_WITH_RC4_128_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA,SSL_RSA_WITH_DES_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA
SSLWallet "${ORACLE_INSTANCE}/config/fmwconfig/components/${COMPONENT_TYPE}/instances/${COMPONENT_NAME}/keystores/default"
</VirtualHost>To enable client authentication, do the following:

5.3.2.2 サーバー側でのSSLVerifyClientの指定

HTTPS接続のためにクライアント側で適切なクライアント証明書を使用します。クライアント証明書の取得および使用方法については、クライアントのドキュメントを参照してください。クライアント証明書がサーバー・ウォレットによって信頼されていることを確認してください。


関連項目:

信頼できる証明書をウォレットにインポートする手順については、Oracle Fusion Middlewareの管理ガイドのWLSTを使用した証明書または信頼できる証明書のインポートに関する項を参照してください。

5.3.2.2.1 クライアントによる証明書を使用した強制的な認証

クライアントでSSLVerifyClientを使用してそのクライアント証明書を強制的に検証し、サーバーへのアクセスを許可することができます。このシナリオは、サーバー認証局(CA)から提供されたクライアント証明書を持つすべてのクライアントに有効です。サーバーは追加の権限のために、クライアントの提供された証明書をそのCAに対して検証できます。

# require a client certificate which has to be directly
# signed by our CA certificate
SSLVerifyClient require
SSLWallet "${ORACLE_INSTANCE}/config/fmwconfig/components/${COMPONENT_TYPE}/instances/${COMPONENT_NAME}/keystores/default"
5.3.2.2.2 クライアントによる特定のURLに対する強制的な認証

クライアントで特定のURLに対して証明書を使用して強制的に認証するには、mod_osslのディレクトリ単位の再構成機能を使用できます。この場合、SSLVerifyClientLocationブロックに表示されます。

SSLVerifyClient none
SSLWallet "${ORACLE_INSTANCE}/config/fmwconfig/components/${COMPONENT_TYPE}/instances/${COMPONENT_NAME}/keystores/default"
<Location /secure/area>
   SSLVerifyClient require
</Location>
5.3.2.2.3 特定のURLに対するクライアントの認可

これを実行するには、クライアント証明書の一部が、必要としているものに一致していることを確認します。通常これは、識別名(DN)のすべてまたは一部をチェックして、特定の既知の文字列が含まれているかどうかを確認することを意味します。これを実行する方法は2つあり、mod_auth_basicまたはSSLRequireを使用します。

mod_auth_basicを使用する方法は一般的に、証明書が完全に任意である場合、またはそれらの証明書のDNに共通のフィールド(通常、組織など)がない場合に必要になります。この場合、許可されたすべてのクライアントを含むパスワード・データベースを構築する必要があります。たとえば、次のようになります。

SSLVerifyClient      none
<Directory /access/required>
    SSLVerifyClient      require
    SSLOptions           +FakeBasicAuth
    SSLRequireSSL
    AuthName             "Oracle Auth"
    AuthType             Basic
    AuthBasicProvider    file
    AuthUserFile         httpd.passwd
    Require              valid-user
</Directory>
 

この例で使用されているパスワードは、DESで暗号化された文字列passwordです。このディレクティブの詳細は、F.3.10項「SSLOptions」を参照してください。この項では、mod_osslモジュールのSSLOptionsディレクティブについて説明しています。

httpd.passwd
 
Subject:        OU=Class 3 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US
Subject:        CN=GTE CyberTrust Global Root,OU=GTE CyberTrust Solutions\, Inc.,O=GTE Corporation,C=US
Subject:        CN=localhost,OU=FOR TESTING ONLY,O=FOR TESTING ONLY
Subject:        OU=Class 2 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US
Subject:        OU=Class 1 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US
 

クライアントがすべてDNにエンコードされる共通階層の一部である場合、SSLRequireを使用してそれらをより簡単に照合することができます。たとえば、次のようになります。

SSLVerifyClient      none
SSLWallet "${ORACLE_INSTANCE}/config/fmwconfig/components/${COMPONENT_TYPE}/instances/${COMPONENT_NAME}/keystores/default"
 
<Directory /access/required>
  SSLVerifyClient      require
  SSLOptions           +FakeBasicAuth
  SSLRequireSSL
  SSLRequire       %{SSL_CLIENT_S_DN_O}  eq "VeriSign\, Inc." \    
and %{SSL_CLIENT_S_DN_OU} in {"Class", "Public", "Primary"}
</Directory>
5.3.2.2.4 強力な暗号およびCAクライアント証明書またはBasic認証を使用したクライアントの許可

次の例では、イントラネット上のクライアントが範囲192.168.1.0/24内のIPを持ち、またインターネット・アクセスを許可するイントラネットWebサイトの一部が/access/requiredであると仮定しています。この構成は、HTTPS仮想ホストの外側に残す必要があります。これにより、HTTPSとHTTPの両方に適用されます。

SSLWallet "$ORACLE_INSTANCE/config/fmwconfig/components/$COMPONENT_TYPE/instances/$COMPONENT_NAME/keystores/default"
<Directory  /access/required>
    #   Outside the subarea only Intranet access is granted
    Require              ip 192.168.1.0/24
</Directory>
 
<Directory  /access/required>
    #   Inside the subarea any Intranet access is allowed
    #   but from the Internet only HTTPS + Strong-Cipher + Password
    #   or the alternative HTTPS + Strong-Cipher + Client-Certificate
 
    #   If HTTPS is used, make sure a strong cipher is used.
    #   Additionally allow client certs as alternative to basic auth.
    SSLVerifyClient      optional
    SSLOptions           +FakeBasicAuth +StrictRequire
    SSLRequire           %{SSL_CIPHER_USEKEYSIZE}>= 128
    #   Force clients from the Internet to use HTTPS
    RewriteEngine        on
    RewriteCond          %{REMOTE_ADDR} !^192\.168\.1\.[0-9]+$
    RewriteCond          %{HTTPS} !=on
    RewriteRule          . - [F]   
    #   Allow Network Access and/or Basic Auth
    Satisfy              any
 
    #   Network Access Control
    Require              ip 192.168.1.0/24
    #   HTTP Basic Authentication
    AuthType             basic
    AuthName             "Protected Intranet Area"
    AuthBasicProvider    file
    AuthUserFile         htpasswd
    Require              valid-user
</Directory>

5.3.2.3 Oracle HTTP ServerとOracle WebLogic Serverとの間のSSLの有効化

Oracle HTTP ServerとOracle WebLogic Serverとの間のSSLを有効化するには、Oracle WebLogic Serverプロキシ・プラグインを使用します。このプラグインを使用すると、SSLライブラリを構成して、一方向と双方向のSSL通信を構成できます。詳細は、Oracle WebLogic Serverプロキシ・プラグイン12.1.3の使用のプラグインとSSLの併用に関する項およびWeb Serverプラグインのパラメータに関する項を参照してください。

5.3.3 MIME設定の構成

Oracle HTTP Serverでは、Multipurpose Internet Mail Extension (MIME)設定を使用してファイル・タイプ、エンコーディングおよび言語の解析を行います。Oracle HTTP ServerのMIME設定は、Fusion Middleware Controlでのみ指定できます。WLSTコマンドを使用してMIME設定を指定することはできません。

「MIME構成」ページでは、次のタスクを実行できます。

5.3.3.1 MIMEタイプの構成

MIMEタイプにより、指定されたコンテンツ・タイプに特定のファイル拡張子がマップされます。MIMEタイプは、拡張子を含むファイル名に使用されます。

5.3.3.1.1 Fusion Middleware Controlを使用したMIMEタイプの構成

Fusion Middleware Controlを使用してMIMEタイプを構成するには、次の手順を実行します。

  1. 「Oracle HTTP Server」メニューから「管理」を選択します。

  2. 「管理」メニューから「MIME構成」を選択します。「MIME構成」ページが表示されます。

  3. 「MIME構成」リージョンの「行の追加」をクリックします。新規の空白行がリストに追加されます。

  4. MIMEタイプを入力します。

  5. ファイル拡張子を入力します。

  6. 設定を確認します。設定に問題がない場合、「適用」をクリックして変更を適用します。設定に問題がある場合、または変更を適用しない場合、「元に戻す」をクリックして元の設定に戻します。

  7. 4.3.4項「Oracle HTTP Serverインスタンスの再起動」の説明に従って、Oracle HTTP Serverを再起動します。

MIME構成が保存され、「MIME構成」ページに表示されます。

5.3.3.2 MIMEエンコーディングの構成

MIMEエンコーディングにより、Oracle HTTP Serverでは、ファイル拡張子に基づいてファイル・タイプを判別できます。MIMEエンコーディングは、追加および削除できます。エンコーディング・ディレクティブにより、指定のエンコーディング・タイプにファイル拡張子をマップします。

  1. 「Oracle HTTP Server」メニューから「管理」を選択します。

  2. 「管理」メニューから「MIME構成」を選択します。「MIME構成」ページが表示されます。

  3. 「MIMEエンコーディング」の横にあるプラス記号(+)をクリックして「MIMEエンコーディング」リージョンを開きます。

  4. 「MIMEエンコーディング」リージョンの「行の追加」をクリックします。新規の空白行がリストに追加されます。

  5. MIMEエンコーディング(x-gzipなど)を入力します。

  6. ファイル拡張子(.gxなど)を入力します。

  7. 設定を確認します。設定に問題がない場合、「適用」をクリックして変更を適用します。設定に問題がある場合、または変更を適用しない場合、「元に戻す」をクリックして元の設定に戻します。

  8. 4.3.4項「Oracle HTTP Serverインスタンスの再起動」の説明に従って、Oracle HTTP Serverを再起動します。

5.3.3.3 MIME言語の構成

MIME言語設定により、特定の言語にファイル拡張子がマップされます。このディレクティブは、一般的にコンテンツ・ネゴシエーションに使用されます(クライアントにより設定されたプリファレンスに対する一致度が最も高いドキュメントがOracle HTTP Serverから返されます)。

  1. 「Oracle HTTP Server」メニューから「管理」を選択します。

  2. 「管理」メニューから「MIME構成」を選択します。「MIME構成」ページが表示されます。

  3. 「MIME言語」の横にあるプラス記号(+)をクリックして「MIME言語」リージョンを開きます。

  4. 「MIME言語」リージョンの「行の追加」をクリックします。新規の空白行がリストに追加されます。

  5. MIME言語(en-USなど)を入力します。

  6. ファイル拡張子(en-usなど)を入力します。

  7. 設定を確認します。設定に問題がない場合、「適用」をクリックして変更を適用します。設定に問題がある場合、または変更を適用しない場合、「元に戻す」をクリックして元の設定に戻します。

  8. 4.3.4項「Oracle HTTP Serverインスタンスの再起動」の説明に従って、Oracle HTTP Serverを再起動します。

5.3.4 mod_perlの構成

mod_perlモジュールは、Oracle HTTP ServerにPerlインタプリタを埋め込みます。これにより、起動時のオーバーヘッドが排除され、モジュールをPerlで記述できます。デフォルトでは、モジュールは無効です。

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

5.3.4.1 Fusion Middleware Controlを使用したmod_perlの有効化

Fusion Middleware Controlを使用してmod_perlモジュールを有効化するには、次の手順を実行します。

  1. 「Oracle HTTP Server」メニューから「管理」を選択します。

  2. 「管理」メニューから「mod_perl構成」を選択します。「mod_perl構成」ページが表示されます。


    注意:

    mod_perlが有効化されていないと、「サーバー構成」ページにリダイレクトされます。mod_perlを選択して「適用」をクリックし、mod_perlを有効化します。確認ページが表示されたら、Oracle HTTP Serverを再起動します。これで、「mod_perl構成」ページに戻ります。

  3. 「スイッチ」フィールドにスイッチ情報を入力します。

  4. 「環境」フィールドに、スクリプトに渡す環境変数を入力します。

  5. 「必須」フィールドに必須スクリプト名を入力します。

  6. 「行の追加」をクリックして新規行を作成します。

  7. 「Perlの場所」表内の場所に対してmod_perlディレクティブを構成します。この場所により、リクエストのURIがこの場所に一致したときにサーバーが準拠するルールが割り当てられます。

    1. 「ロケーション」フィールドに、PerlスクリプトのベースURIを入力します。mod_cgiスクリプトに/cgi-binを使用することが慣習的に広く受け入れられているように、mod_perlの下で稼働するPerlスクリプトのベースURIとしては/perlが慣習的に使用されています。

    2. 「オプション」フィールドにオプションを入力します。PerlOptionsディレクティブは、使用するPerlインタプリタ・プールのクラスに対する制御を提供することにより、ファイングレイン構成を提供します。オプションを有効にするには、そのオプションの前にプラス記号(+)を付けます。無効化するには、前にマイナス記号(-)を付けます。

    3. ヘッダーを送信する場合、「ヘッダーの送信」チェック・ボックスを選択します。PerlSendHeaderディレクティブは、mod_perl 1.0の後方互換性のために使用します。これを有効化すると、スクリプトが起動されるたびにサーバーがHTTPヘッダーをブラウザに送信します。Non-Parsed-Headers (NPH)スクリプトの場合は、このオプションを無効にしてください。

    4. 「環境」フィールドに環境を入力します。PerlSetEnvディレクティブを使用すると、システム環境変数を指定してmod_perlハンドラに渡すことができます。

    5. 「レスポンス・ハンドラ」フィールドにレスポンス・ハンドラを入力します。PerlResponseHandlerディレクティブは、ジョブを処理するコールバックをmod_perlに指示します。

    6. 「認証ハンドラ」フィールドに認証ハンドラを入力します。PerlAuthenHandlerディレクティブは、ユーザーの識別資格証明を確認するためのハンドラを設定する場合に使用します。

  8. 設定を確認します。設定に問題がない場合、「適用」をクリックして変更を適用します。設定に問題がある場合、または変更を適用しない場合、「元に戻す」をクリックして元の設定に戻します。

  9. 4.3.4項「Oracle HTTP Serverインスタンスの再起動」の説明に従って、Oracle HTTP Serverを再起動します。

mod_perlモジュール構成が保存され、「mod_perl構成」ページに表示されます。


注意:

Fusion Middleware Controlを使用せずにmod_perl構成を手動で編集する場合は、すべてのディレクティブをmod_perl.confファイルの<IfModule mod_perl.c>ブロック内に定義する必要があります。このブロックの外で定義されたmod_perl関連ディレクティブは、無視される可能性があります。

5.3.4.2 スタンドアロン・ドメインのmod_perlの有効化

スタンドアロン・ドメインでmod_perlを有効化するには、この手順を使用します。

  1. ステージング・エリア($DOMAIN_HOME/config/fmwconfig/components/OHS/ohs1)において、mod_perl.confをdisabledディレクトリからmoduleconfディレクトリに手動で移動します。

  2. start()softRestart()またはshutdown()操作の実行時に、ステージング・エリアからランタイム・エリア($DOMAIN_HOME/config/fmwconfig/components/OHS/instances/ohs1など)にコピーして構成の変更が行われます。

  3. バウンスされると、ohs1インスタンスは変更を受信せずにmod_perlでの動作を行います。

モジュールを無効化するには、前述と同じ手順に従いますが、mod_perlはmoduleconfディレクトリからdisabledディレクトリに移動させます。

5.3.5 Oracle WebLogic Serverプロキシ・プラグイン(mod_wl_ohs)の構成

Oracle WebLogic Serverプロキシ・プラグイン(mod_wl_ohs)を構成するには、Fusion Middleware Controlを使用するか、またはmod_wl_ohs.conf構成ファイルを手動で編集します。

リクエストをOracle HTTP ServerからOracle WebLogic ServerにプロキシできるようにOracle WebLogic Serverプロキシ・プラグインを構成する際の前提条件と手順の詳細は、『Oracle WebLogic Serverプロキシ・プラグイン12.1.3の使用』のOracle HTTP Serverのプラグインの構成に関する項を参照してください。

5.3.6 不要なコンテンツへのアクセス権の削除

デフォルトでは、httpd.confファイルにより、サーバーはドキュメントやサンプル・スクリプトなどの追加のコンテンツにアクセスできます。このアクセスでは低いレベルのセキュリティ・リスクを伴う場合があります。

ユースケースに合せて使用環境でのこの追加コンテンツを調整することができます。ファイルにアクセスするには、1.6.3項「構成ファイルの変更」の手順に従ってください。

5.3.6.1 cgi-binセクションの編集

cgi-binディレクトリのコンテンツを調査します。不要なコードをhttpd.confファイルから削除したり、固有のCGIスクリプト・ディレクトリを指す次のDirectoryディレクティブを変更することができます。

...
# 
# "${ORACLE_INSTANCE}/config/fmwconfig/components/${COMPONENT_TYPE}/instances/${COMPONENT_NAME}/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "${ORACLE_INSTANCE}/config/fmwconfig/components/${COMPONENT_TYPE}/instances/${COMPONENT_NAME}/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>
... 

5.3.6.2 Fancy Indexingセクションの編集

ユースケースに応じたhttpd.confファイルのfancy indexingに関する次のセクションを編集します。

...
#
# IndexOptions: Controls the appearance of server-generated directory
# listings.
#
IndexOptions FancyIndexing HTMLTable VersionSort
 
# We include the /icons/ alias for FancyIndexed directory listings.  If
# you do not use FancyIndexing, you may comment this out.
#
Alias /icons/ "${PRODUCT_HOME}/icons/"
 
<Directory "${PRODUCT_HOME}/icons">
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
 
#
# AddIcon* directives tell the server which icon to show for different
# files or filename extensions.  These are only displayed for
# FancyIndexed directories.
#
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
 
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
 
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
 
 
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
 
#
# DefaultIcon is which icon to show for files which do not have an icon
# explicitly set.
#
DefaultIcon /icons/unknown.gif
 
#
# AddDescription allows you to place a short description after a file in
# server-generated indexes.  These are only displayed for FancyIndexed
# directories.
# Format: AddDescription "description" filename
#
#AddDescription "GZIP compressed document" .gz
#AddDescription "tar archive" .tar
#AddDescription "GZIP compressed tar archive" .tgz
... 

#
# ReadmeName is the name of the README file the server will look for by
# default, and append to directory listings.
#
# HeaderName is the name of a file which should be prepended to
# directory indexes.
ReadmeName README.html
HeaderName HEADER.html
 
#
# IndexIgnore is a set of filenames which directory indexing should ignore
# and not include in the listing.  Shell-style wildcarding is permitted.
#
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
...

5.3.6.3 製品ドキュメント・セクションの編集

不要な場合、次のドキュメント構成セクションをhttpd.confファイルから削除できます。

... 
#
# This should be changed to the ServerRoot/manual/.  The alias provides
# the manual, even if you choose to move your DocumentRoot.  You may comment
# this out if you do not care for the documentation.
#
AliasMatch ^/manual(?:/(?:de|en|es|fr|ja|ko|pt-br|ru|tr))?(/.*)?$ "${PRODUCT_HOME}/manual$1"
 
<Directory "${PRODUCT_HOME}/manual">
    AllowOverride None
    Order allow,deny
    Allow from all
 
    <Files *.html>
        SetHandler type-map
    </Files>
    # .tr is text/troff in mime.types!
    <Files *.html.tr.utf8>
        ForceType text/html
    </Files>
 
    SetEnvIf Request_URI ^/manual/(de|en|es|fr|ja|ko|pt-br|ru|tr)/ prefer-language=$1
    RedirectMatch 301 ^/manual(?:/(de|en|es|fr|ja|ko|pt-br|ru|tr)){2,}(/.*)?$ /manual/$1$2
 
    LanguagePriority en de es fr ja ko pt-br ru tr
    ForceLanguagePriority Prefer Fallback
</Directory>
...

5.3.7 apxsコマンドを使用した拡張モジュールのインストール


注意:

このコマンドはUNIXとLinux専用であり、ソース・コード形式で提供されているモジュールに対してのみ使用する必要があります。バイナリ形式で提供されているモジュールのインストール手順に従ってください。

apxsコマンドの詳細は、次のApache HTTP Serverのドキュメントを参照してください。

http://httpd.apache.org/docs/2.2/programs/apxs.html


Apache拡張ツール(apxs)を使用して、Oracle HTTP Server用のApache HTTP Server拡張モジュールをビルドおよびインストールします。apxsは、モジュールをORACLE_HOME/ohs/modulesディレクトリにインストールし、このインストールから実行されるOracle HTTP Serverインスタンスがアクセスできるようにします。


注意:

いったんなんらかのサードパーティ製モジュールの生成とロードが行われると、Oracle HTTP Serverサポート・ポリシーに記載されたサードパーティ条件に該当することになります。この手順を続ける前に、このポリシーをお読みください。詳細は、1.7項「Oracle HTTP Serverのサポート」を参照してください。

Oracle HTTP Serverで使用する場合に推奨されるapxsオプションを次に示します。

オプション 用途 コマンド例
-c モジュール・ソースのコンパイル
$ORACLE_HOME/ohs/bin/apxs -c mod_example.c
-i ORACLE_HOMEへのモジュール・バイナリのインストール
$ORACLE_HOME/ohs/bin/apxs -ci mod_example.c

モジュール・バイナリがORACLE_HOMEにインストールされると、httpd.confファイルまたはその他の構成ファイルのLoadModuleディレクティブを使用してモジュールがサーバー・プロセスにロードされます。次に例を示します。

LoadModule example_module "${ORACLE_HOME}/ohs/modules/mod_example.so"

このディレクティブは、モジュールをロードする必要があるすべてのインスタンスの構成で必須です。

-aまたは-Aオプションが指定されている場合、apxsはhttpd.confを編集してモジュールのLoadModuleディレクティブを追加します。WebLogic Serverドメインの一部であるOracle HTTP Serverインスタンスでは-aおよび-Aオプションを使用しないでください。かわりに、1.6.3項「構成ファイルの変更」の説明に従って、Fusion Middleware Controlを使用して構成を更新します。

スタンドアロン・ドメインの一部であるOracle HTTP Serverインスタンスでは、apxsの起動前にCONFIG_FILE_PATH環境変数がインスタンスのステージング・ディレクトリに設定されている場合、-aまたは-Aオプションを使用できます。次に例を示します。

CONFIG_FILE_PATH=$ORACLE_HOME/user_projects/domains/base_domain/config/fmwconfig/components/OHS/ohs1
export CONFIG_FILE_PATH
$ORACLE_HOME/ohs/bin/apxs -cia mod_example.c

デフォルトでは、apxsは、/usr/binにあるPerlインタプリタを使用します。apxsが製品のインストールを見つけることができない場合または/usr/bin/perlの使用時にその他の操作エラーが発生した場合は、次のようにapxsを起動することによってMiddlewareホーム内でPerlインタプリタを使用します。

$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/ohs/bin/apxs -c mod_example.c

多くの場合、モジュールは正常に機能するためにLoadModule以外のディレクティブも必要とします。モジュールがインストールされ、LoadModuleディレクティブを使用してロードされた後、その他の構成要件についてモジュールのドキュメントを参照してください。

5.3.8 Optionsメソッドの無効化

Optionsメソッドにより、クライアントは、Webサーバーでサポートされるメソッドを確認できます。これが有効の場合、HTTPレスポンス・ヘッダーのAllow行に出力されます。

たとえば、次のようなリクエストを送信するとします。

---- Request -------
OPTIONS / HTTP/1.0
Content-Length: 0
Accept: */*
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)
Host: host123:80

この場合、Webサーバーから次のようなレスポンスが返されます。

---- Response --------
HTTP/1.1 200 OK
Date: Wed, 23 Apr 2008 20:20:49 GMT
Server: Oracle-Application-Server-11g/11.1.1.0.0 Oracle-HTTP-Server
Allow: GET,HEAD,POST,OPTIONS
Content-Length: 0
Connection: close
Content-Type: text/html

一部のソースでは、Optionsメソッドを公開することはセキュリティ上のリスクが低いと考えられます。悪質なクライアントは、このメソッドを使用してWebサーバーでサポートされるメソッドを判断できます。ただし、Webサーバーでサポートされるメソッドの数は限られているため、このメソッドを無効にしても悪質なクライアントに対して時間稼ぎとなるだけで、攻撃をやめさせることはできません。また、Optionsメソッドは、正当なクライアントによって使用されることもあります。

Oracle Fusion Middleware環境にOptionsメソッドを必要とするクライアントが存在しない場合、httpd.confファイルに次の行を追加してこのメソッドを無効化できます。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^OPTIONS
RewriteRule .* – [F]
</IfModule> 

5.3.9 共有ファイルシステムでのOracle HTTP Serverコンポーネント構成の更新

NFS(ネットワーク・ファイルシステム)などの共有ファイルシステムでOracle HTTP Serverコンポーネントが作成される際、機能上またはパフォーマンス上の問題が発生する場合があります。特に、OHSで使用されるロック・ファイルまたはUNIXソケットが機能しない、またはそのパフォーマンスが大幅に低下する可能性があります。また、mod_wl_ohsでルーティングされるWLSリクエストが、デフォルト構成のファイルシステム・アクセスが原因で、パフォーマンスが大幅に低下する場合があります。

表5-1に、ロック・ファイルの問題と推奨されるhttpd.confファイルの変更に関する詳細を、オペレーティング・システム別に示します。

表5-1 ロック・ファイルの問題

オペレーティング・システム 説明 httpd.confの変更点

Linux

リモート(非NFS4)ファイル・システム使用時のロック・ファイル。

AcceptMutexディレクティブをfcntlのままにして、ローカル・ファイル・システムへのパスを設定します。

Solaris

ロック・ファイルは必要ありません。プロセス間pthread mutexが、推奨されるプロセス間mutexの実装です。

AcceptMutex fcntlAcceptMutex pthreadに変更します(2箇所)。

LockFileディレクティブをコメントアウトします(3箇所)。

その他のUNIXプラットフォーム


ローカル・ファイルシステムを示すようにLockFileディレクティブを変更します(3箇所)。

UNIXソケットの問題

mod_cgidは、デフォルトでは有効になっていません。有効な場合は、ScriptSockディレクティブを使用してmod_cgidのUNIXソケットをローカル・ファイルシステムに配置します。

mod_fastcgiは、デフォルトでは有効になっていません。有効な場合は、FastCgiIpcDirディレクティブを使用してmod_fastcgiのUNIXソケットをローカル・ファイルシステムに配置します。



5.4 mod_securityの構成

mod_securityは、Oracle HTTP Serverに対する侵入攻撃を検出および防止するために使用できる、オープンソース・モジュールです。たとえば、mod_securityルールを指定して、すべての受信リクエストをスクリーニングし、ルールで指定された条件に一致するリクエストを拒否することができます。mod_securityモジュール(バージョン2.7.2)とその前提条件は、mod_security2.soという共有オブジェクトとして、ORACLE_HOME/ohs/modulesディレクトリ内のOracle HTTP Serverインストールに含まれています。

このバージョンのOHSは、mod_security (バージョン2.7.2)のディレクティブ、変数、アクション、フェーズおよび関数のみをサポートしています。このモジュールをより新しいバージョンに置き換えると、これらはサポートされなくなります。

この付録では、loadModule文を含む、mod_security.confファイルの使用可能な例(例E–1)について説明します。


注意:

次の点に注意してください。
  • mod_securityは、以前のバージョンのOracle HTTP Serverで削除されましたが、バージョン11.1.1.7で再度搭載されました。このバージョンはオープン・ソースのmod_security 2.7.2で定められた推奨およびプラクティスに従っています。オープン・ソースのmod_security 2.7.2に適用可能なドキュメントのみが、モジュールのOracle HTTP Server実装にも適用できます。

  • Oracle HTTP Server 11.1.1.7以上では、mod_securityはデフォルトではロードまたは構成されませんが、インストールに11.1.1.6からのパッチを適用している場合は、パッチの実装によってモジュールがロードおよび構成されている可能性があります。

  • Oracleでは、Oracle提供のmod_securityのみがサポートされています。modsecurity.orgが提供するより新しいバージョンはサポートされません。


http://www.modsecurity.org/documentation/

この項には次の情報が含まれます:

5.4.1 mod_securityの有効化

Oracle HTTP Serverの実行時にmod_securityモジュールを使用できるようにするには、mod_security.confが次の行で開始されていることを確認します。

#Load module
LoadModule security2_module "${PRODUCT_HOME}/modules/mod_security2.so"

例5-1のmod_security.confの例を参照してください。

5.4.2 mod_securityの構成

mod_securityを構成する際には、Oracle HTTP Server構成ファイルで特定のディレクティブを指定する必要があります。IfModuleコンテナ内のhttpd.confファイルで直接ディレクティブを指定できます。別の方法として、別個のmod_security.confファイルにmod_securityディレクティブを指定し、Includeディレクティブを使用してhttpd.confにその.confファイルを含めることもできます。

デフォルトではmod_security.confは存在しないので、可能であれば例5-1のテンプレートを使用して、mod_security.confを作成する必要があります。テキスト・エディタにサンプルをコピーして貼り付け、ファイル全体を読んで、使用しているシステム用に編集します。次に、それを自身のmod_security.confとして保存し、httpd.confに含めます。記載の手順に従ってmod_security.confを実装する場合は、LoadModuleディレクティブを使用してmod_security2.soを実行環境にロードします。

例5-1 mod_security.confの例

#Load module 
LoadModule security2_module "${PRODUCT_HOME}/modules/mod_security2.so"
# -- Rule engine initialization ----------------------------------------------

# Enable ModSecurity, attaching it to every transaction. Use detection
# only to start with, because that minimises the chances of post-installation
# disruption.
#
SecRuleEngine DetectionOnly


# -- Request body handling ---------------------------------------------------

# Allow ModSecurity to access request bodies. If you don't, ModSecurity
# won't be able to see any POST parameters, which opens a large security
# hole for attackers to exploit.
#
SecRequestBodyAccess On

# Enable XML request body parser.
# Initiate XML Processor in case of xml content-type
#
SecRule REQUEST_HEADERS:Content-Type "text/xml" "id:'200000',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=XML"


# Maximum request body size we will accept for buffering. If you support
# file uploads then the value given on the first line has to be as large
# as the largest file you are willing to accept. The second value refers
# to the size of data, with files excluded. You want to keep that value as
# low as practical.
#
SecRequestBodyLimit 13107200
SecRequestBodyNoFilesLimit 131072

# Store up to 128 KB of request body data in memory. When the multipart
# parser reachers this limit, it will start using your hard disk for
# storage. That is slow, but unavoidable.
#
SecRequestBodyInMemoryLimit 131072

# What do do if the request body size is above our configured limit.
# Keep in mind that this setting will automatically be set to ProcessPartial
# when SecRuleEngine is set to DetectionOnly mode in order to minimize
# disruptions when initially deploying ModSecurity.
#
SecRequestBodyLimitAction Reject

# Verify that we've correctly processed the request body.
# As a rule of thumb, when failing to process a request body
# you should reject the request (when deployed in blocking mode)
# or log a high-severity alert (when deployed in detection-only mode).
#
SecRule REQBODY_ERROR "!@eq 0" \
"id:'200001', phase:2,t:none,log,deny,status:400,msg:'Failed to parse request
 body.',logdata:'%{reqbody_error_msg}',severity:2"

# By default be strict with what we accept in the multipart/form-data
# request body. If the rule below proves to be too strict for your
# environment consider changing it to detection-only. You are encouraged
# _not_ to remove it altogether.
#
SecRule MULTIPART_STRICT_ERROR "!@eq 0" \
"id:'200002',phase:2,t:none,log,deny,status:44, \
msg:'Multipart request body failed strict validation: \
PE %{REQBODY_PROCESSOR_ERROR}, \
BQ %{MULTIPART_BOUNDARY_QUOTED}, \
BW %{MULTIPART_BOUNDARY_WHITESPACE}, \
DB %{MULTIPART_DATA_BEFORE}, \
DA %{MULTIPART_DATA_AFTER}, \
HF %{MULTIPART_HEADER_FOLDING}, \
LF %{MULTIPART_LF_LINE}, \
SM %{MULTIPART_MISSING_SEMICOLON}, \
IQ %{MULTIPART_INVALID_QUOTING}, \
IP %{MULTIPART_INVALID_PART}, \
IH %{MULTIPART_INVALID_HEADER_FOLDING}, \
FL %{MULTIPART_FILE_LIMIT_EXCEEDED}'"

# Did we see anything that might be a boundary?
#
SecRule MULTIPART_UNMATCHED_BOUNDARY "!@eq 0" \
"id:'200003',phase:2,t:none,log,deny,status:44,msg:'Multipart parser detected a possible unmatched boundary.'"

# PCRE Tuning
# We want to avoid a potential RegEx DoS condition
#
SecPcreMatchLimit 1000
SecPcreMatchLimitRecursion 1000

# Some internal errors will set flags in TX and we will need to look for these.
# All of these are prefixed with "MSC_".  The following flags currently exist:
#
# MSC_PCRE_LIMITS_EXCEEDED: PCRE match limits were exceeded.
#
SecRule TX:/^MSC_/ "!@streq 0" \
        "id:'200004',phase:2,t:none,deny,msg:'ModSecurity internal error flagged: %{MATCHED_VAR_NAME}'"

# -- Response body handling --------------------------------------------------

# Allow ModSecurity to access response bodies. 
# You should have this directive enabled in order to identify errors
# and data leakage issues.
# 
# Do keep in mind that enabling this directive does increases both
# memory consumption and response latency.
#
SecResponseBodyAccess On

# Which response MIME types do you want to inspect? You should adjust the
# configuration below to catch documents but avoid static files
# (e.g., images and archives).
#
SecResponseBodyMimeType text/plain text/html text/xml

# Buffer response bodies of up to 512 KB in length.
SecResponseBodyLimit 524288

# What happens when we encounter a response body larger than the configured
# limit? By default, we process what we have and let the rest through.
# That's somewhat less secure, but does not break any legitimate pages.
#
SecResponseBodyLimitAction ProcessPartial

# -- Filesystem configuration ------------------------------------------------

# The location where ModSecurity stores temporary files (for example, when
# it needs to handle a file upload that is larger than the configured limit).
# 
# This default setting is chosen due to all systems have /tmp available however, 
# this is less than ideal. It is recommended that you specify a location that's private.
#
SecTmpDir /tmp/

# The location where ModSecurity will keep its persistent data.  This default setting 
# is chosen due to all systems have /tmp available however, it
# too should be updated to a place that other users can't access.
#
SecDataDir /tmp/

# -- File uploads handling configuration -------------------------------------

# The location where ModSecurity stores intercepted uploaded files. This
# location must be private to ModSecurity. You don't want other users on
# the server to access the files, do you?
#
#SecUploadDir /opt/modsecurity/var/upload/

# By default, only keep the files that were determined to be unusual
# in some way (by an external inspection script). For this to work you
# will also need at least one file inspection rule.
#
#SecUploadKeepFiles RelevantOnly

# Uploaded files are by default created with permissions that do not allow
# any other user to access them. You may need to relax that if you want to
# interface ModSecurity to an external program (e.g., an anti-virus).
#
#SecUploadFileMode 0600


# -- Debug log configuration -------------------------------------------------

# The default debug log configuration is to duplicate the error, warning
# and notice messages from the error log.
#
#SecDebugLog /opt/modsecurity/var/log/debug.log
#SecDebugLogLevel 3


# -- Audit log configuration -------------------------------------------------

# Log the transactions that are marked by a rule, as well as those that
# trigger a server error (determined by a 5xx or 4xx, excluding 404,  
# level response status codes).
#
SecAuditEngine RelevantOnly
SecAuditLogRelevantStatus "^(?:5|4(?!04))"

# Log everything we know about a transaction.
SecAuditLogParts ABIJDEFHZ

# Use a single file for logging. This is much easier to look at, but
# assumes that you will use the audit log only ocassionally.
#
SecAuditLogType Serial
SecAuditLog "${ORACLE_INSTANCE}/servers/${COMPONENT_NAME}/logs/modsec_audit.log"

# Specify the path for concurrent audit logging.
SecAuditLogStorageDir "${ORACLE_INSTANCE}/servers/${COMPONENT_NAME}/logs"
#Simple test 
SecRule ARGS "\.\./" "t:normalisePathWin,id:99999,severity:4,msg:'Drive Access'" 

# -- Miscellaneous -----------------------------------------------------------

# Use the most commonly used application/x-www-form-urlencoded parameter
# separator. There's probably only one application somewhere that uses
# something else so don't expect to change this value.
#
SecArgumentSeparator &

# Settle on version 0 (zero) cookies, as that is what most applications
# use. Using an incorrect cookie version may open your installation to
# evasion attacks (against the rules that examine named cookies).
#
SecCookieFormat 0

# Specify your Unicode Code Point.
# This mapping is used by the t:urlDecodeUni transformation function
# to properly map encoded data to your language. Properly setting
# these directives helps to reduce false positives and negatives.
#
#SecUnicodeCodePage 20127
#SecUnicodeMapFile unicode.mapping