機械翻訳について

第2章 セキュアなOracle VMインストールの実行

この項では、インストール計画の概要と、セキュアなシステムをインストールするための手順を示します。 インストールされた各コンポーネントのセキュリティ関連のデプロイメントの問題について説明します。たとえば、MySQLデータベースとOracle WebLogic Serverです。

Oracle VM Managerは自動的にセキュアな状態にインストールされます。 この項では、インストール手順での選択内容に関するセキュリティ上の意味と、SSLなどの高度なセキュリティ・オプションを有効にする方法について説明します。 インストール手順に示されているように、特定のデプロイメントでは不要なコンポーネントのインストールや実行は避けてください。

デフォルトのインストールで適用されるセキュリティ対策には、次のものがあります。

  • 標準の必須ポートのみを開くアクティブなソフトウェア・ファイアウォール。

    ノート

    インストール前にファイアウォールが無効になっている場合は、インストール後にiptablesまたはfirewalldサービスを有効にして、ファイアウォール・ルールを有効にする必要があります。

  • すべてのOracle VM Agent通信のSSL暗号化。

    ノート

    ビルド3.1.1.165より古いバージョンのOracle VMからアップグレードする場合、以前に暗号化されていないOracle VM Agent通信の一部が自動的に再構成されます。 このビルド以降では、すべてのOracle VM Agent通信にデフォルトでSSL暗号化が設定されます。

  • Oracle VM Manager GUIへのHTTPSアクセス

  • Oracle WebLogic Serverセキュリティ・レルムによって管理されるユーザー資格証明と認証:

    https://docs.oracle.com/middleware/1213/wls/SCOVR/realm_chap.htm#SCOVR186

  • 小型フットプリントJeOSのようなオペレーティング・システム: Oracle Linuxは、未使用のパッケージを使用せずに、攻撃対象を最小限に抑えます。

2.1 Oracle VMのインストール前のタスク

この項では、インストール前に適用する必要があるセキュリティ構成について説明します。

2.1.1 Oracle VM管理サーバーの準備

Oracle VM管理サーバーでは、次のいずれかのオペレーティング・システムを実行する必要があります。

  • Oracle Linux (またはRed Hat Enterprise Linux) 6 64ビット以降。

  • Oracle Linux (またはRed Hat Enterprise Linux) 7 64ビット以降。

Oracle VM Managerが要求するポート以外のすべてのポートを閉じたままにすることをお勧めします。 必要なポートは次のとおりです。

  • インバウンドWebブラウザ接続用: TCP/7002 (HTTPS, default).

  • Oracle VM Serversからのインバウンド接続用: TCP/7002 (HTTPS, default), UDP/123 (NTP).

  • Oracle VM Serversへのアウトバウンド接続用: TCP/8899 (Oracle VM Agent)、TCP/6900-xxxx (VNC、バーチャル・マシンごとに1つのセキュア・トンネル)。

  • SSHアクセスの場合: TCP/22 (デフォルトでは開いている可能性があります)。

  • SSHを使用したCLIアクセスの場合: TCP/10000.

ノート

Oracle VM Managerコマンドライン・インタフェース(CLI)は、リリース3.2以降のOracle VMの一部です。

インストール手順の一部として、スクリプトがcreateOracle.shという名前で含まれています。 このスクリプトを実行すると、標準のファイアウォール構成を含むインストール・タスクの一部を自動化して実行できます。

Oracle Linux (またはRed Hat Enterprise Linux) 6では、iptablesパッケージがインストールされている場合、iptablesルールはインストール時に追加されます。 ただし、Oracle Linux (またはRed Hat Enterprise Linux) 7以上では、firewalldパッケージがインストールされている場合、firewalldルールが追加されます。

Oracle VM Managerをインストールする前にiptablesまたはfirewalldがターゲット・ホストで無効になっている場合、createOracle.shスクリプトでiptablesまたはfirewalldサービスが自動的に再有効化されることはありません。 ファイアウォール管理ツールがインストールされていない場合、ルールは追加されません。 追加されたルールは、サービスが有効になると有効になります。

ファイアウォール管理ツールが有効な場合、ルールが定義されていなくても、各パケットはファイアウォール管理ツールによってチェックされるため、パフォーマンスに影響を与える可能性があります。

ファイアウォールを手動で構成する必要がある場合、次の手順に従います。

iptablesの場合は、次のようにiptablesで必要なポートを開きます:
  1. rootユーザーとして、Oracle VM管理サーバーへログオンします。

  2. コマンド・プロンプトで、次のように、オープンする各ポートに適切なコマンドを入力します。

    # iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 7002 -j ACCEPT
    # iptables -A INPUT -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT 
    # iptables -A INPUT -m state --state NEW -m udp -p udp --dport 10000 -j ACCEPT 
  3. iptables構成を保存します。

    # service iptables save

    これは、コマンドによってiptablesの実行中にポートがオープンするため、iptablesを再起動する必要はありません。 保存することで、今後の再起動時にオープンするようになります。

firewalldの場合は、次のようにfirewalldで必要なポートを開きます:
  1. rootユーザーとして、Oracle VM管理サーバーへログオンします。

  2. コマンド・プロンプトで、開くポートごとに適切なコマンド(再起動後も持続)を入力します。次に例を示します:

    # firewall-cmd --permanent --zone=public --add-port=7200/tcp
    # firewall-cmd --permanent --zone=public --add-port=123/udp 
    # firewall-cmd --permanent --zone=public --add-port=10000/tcp 
    # firewall-cmd --reload

2.1.2 Oracle VMファイアウォール・ルール

次の図と表は、Oracle VMのファイアウォールのルールと要件を示しています。

この図はOracle VM Managerのファイアウォールのルールを示しています。 これは、Oracle VM Managerホストと1とマークされたOracle VM Serverホスト間の接続を示しています。 これは、Oracle VM Serverホストと2とマークされたOracle VM Managerホストとの間の接続を示しています。 これは、クライアントPCと3とマークされたホストOracle VM Managerとの間の接続を示しています。 これは、クライアントPCと4とマークされたホストOracle VM Serverとの間の接続を示しています。 これは、5とマークされたすべてのOracle VM Serverホスト間の接続を示しています。 6とマークされたOracle VM Managerホストへの接続を持ついくつかの管理ツールが表示されます。
表2.1ファイアウォール・ルール
No. コンポーネントの関係 ポートと説明 オプション

1

Oracle VM ManagerからOracle VM Serverへ

  • TCP/8899 - Oracle VM AgentへのHTTPS接続。

  • TCP/6900-xxxx - 各Oracle VM Server上で動作する仮想マシン用のVNCコンソールに接続するためのセキュアなVNC接続。

  • TCP/10000-xxxx - 各Oracle VM Server上で実行されている仮想マシン用のシリアル・コンソールに接続するためのシリアル接続を保護します。

いいえ

2

Oracle VM ServerからOracle VM Managerへ

  • TCP/7002 - Oracle VM AgentからOracle VM Core WSAPIへのHTTPS接続。

  • UDP/123 - Oracle VM Managerホスト上で実行されているNTPサーバーへのNTPリクエスト。

いいえ

3

クライアントPCからOracle VM Managerへ

  • TCP/7002 - WebブラウザからOracle VM Manager Webユーザー・インタフェース(WSAPI)へのHTTPS接続。

  • TCP/10000 - SSHクライアントからOracle VM Manager CLIへのSSH接続。

  • TCP/22 - 管理作業のためのOracle VM ManagerホストへのSSH接続。

いいえ、サービスへのアクセスは要件に限定する必要があります

4

クライアントPCからOracle VM Serverへ

  • TCP/22 - 管理作業のための各Oracle VM Server上のDom0へのSSH接続。

はい

5

Oracle VM ServerからOracle VM Serverへ

  • TCP/7777 - クラスタ化されたサーバー・プール用のOCFS2ハートビート通信。

  • TCP/8002 - 非暗号化ポートを使用してライブ仮想マシンの移行を実行します。

  • TCP/8003 - ライブ仮想マシンの移行を実行するために安全に暗号化されたポート。

いいえ

6

いくつかの管理ツールからOracle VM Managerへ

  • TCP/7002 - HTTPSを介したWebサービスAPIへのアクセスは、直前のOracle VM製品スイート以外のいくつかの管理ツールで必要になる場合があります。

  • TCP/54322 - このリリースでは、非推奨された従来のAPIポートを使用して、WebサービスAPIに切り替えられていない可能性のあるアプリケーションを処理できます。 このポートは、絶対に必要とするアプリケーションを認識していない限り、無効にする必要があります。 この場合、アプリケーション・ベンダーに、次のリリース前に正しいAPIを使用するようにアプリケーションを更新する必要があることを通知する必要があります。

    ファイアウォール・ルールを確認することで、このポートへのアクセスが利用できないことを確認できます。

はい


2.1.3 管理ネットワークの準備

Oracle VM環境のすべての物理サーバーは、管理ネットワークに接続されています。 Oracle VM ManagerおよびOracle VM Serverは、各サーバー上で実行しているOracle VM Agentを介して、管理ネットワーク上で通信します。

厳密には、すべての物理サーバーは外部からアクセスできる必要がないため、管理ネットワークでは、プライベート・サブネットを使用することをお薦めします。 このプライベート・サブネットは、企業ネットワークまたはその一部内からアクセス可能です。 管理ネットワークがプライベート・サブネットでない場合またはさらにセキュリティを強化する必要がある場合は、Oracle VM ServerのIPアドレスのみにアクセスを制限できます。 目的は、物理Oracle VM環境へアクセスする必要のないユーザーおよびマシンに公開されないように管理ネットワークを保護することです。

企業ネットワークのファイアウォール構成に加えて、VLANを使用することで、さらに管理ネットワークを未認可アクセスから保護できます。 企業ネットワーク外から管理ネットワークへアクセスする必要がある場合、VPNトンネルを介して有効化することを検討します。

ノート

企業ネットワーク内のすべてのファイアウォール構成では、Oracle VM管理サーバー上のiptablesまたはfirewalldについて前述したものと同じポート要件を考慮する必要があります。

ノート

サーバー・ハードウェアおよびネットワーク・リソースによっては、ネットワーク・ロール(管理、記憶域、移行、仮想マシン、ハートビート)によってネットワーク・トラフィックを分離する場合があります。 ネットワーク・モデルおよびそのセキュリティの意味の詳細は、第3.1項「Oracle VMのネットワーク・モデル」を参照してください。

2.1.4Oracle VM Managerのインストール

この項では、Oracle VM Managerを安全にインストールして構成する方法について説明します。

Oracle VM Managerを実行するために必要なすべてのアプリケーションおよびコンポーネントは、インストーラISOイメージにパッケージ化されています。 インストールするには、イメージをDVD-ROMに書き込んでホスト・サーバーに挿入するか、イメージをホスト・サーバーのファイル・システムにマウントします。 Oracle VM Managerインストールに関するコンポーネントは、次のとおりです。

Oracle VM Manager

Oracle VM Manager WebアプリケーションがOracle WebLogic Serverドメインおよびコンテナとして提供されます。

Oracle WebLogic Server

Oracle VM Managerは、Application Development Framework (ADF)Release 12cを含むOracle WebLogic Server 12cの上で実行されます。 詳細は、Oracle WebLogic Serverのマニュアルを参照してください:

http://docs.oracle.com/middleware/1213/index.html

Oracle VM Managerには、Oracle VM WebサービスAPI、Oracle VM Manager Web Interface、およびOracle VM Managerオンライン・ヘルプを実行する単一のOracle WebLogic Serverで構成される単純なドメイン・トポロジがあります。

MySQLデータベース

Oracle VMは、バックエンド・リポジトリとしてOracle MySQL Enterpriseデータベースを使用します。

ノート

Oracle VM Managerには、Oracle VM Managerの管理リポジトリとしてのみ使用できる、これらのデータベースの使用制限付きライセンスが含まれています。

Oracle VMリリース3.4のインストール処理では、バンドルされたローカルのMySQLデータベースのみを使用できます。

初めてOracle VM Managerをインストールする前に、提供されているcreateOracle.shスクリプトを実行して、インストール・ディレクトリ、ファイル・システム権限、ユーザーとグループ、およびデフォルトのファイアウォール・ルールを、製品をインストールするホスト上で適切に設定する必要があります。

インストール時に、インストール中にOracle VM Managerデータベース、Oracle WebLogic Server、およびOracle VM Managerに使用するユーザーとパスワードを設定します。 正確なユーザー名およびセキュア・パスワードを選択します。 パスワード・ルールは次のとおりです。

  • 長さは8〜16文字でなければなりませんが、8文字のパスワードは依然としてかなり弱いとみなされ、最低12文字を目指す必要があります。

  • 少なくとも1つの大文字が含まれています。

  • 少なくとも1つの小文字が含まれています。

  • 少なくとも1つの数値が含まれます。

詳細は、「Oracle VMインストレーションおよびアップグレード・ガイド」「Oracle VM Managerのインストール」を参照してください。

データベースに関するセキュリティ情報については、次のOracle Technology Network (OTN)リソースを参照してください。

注意

テストおよびデモ目的で、管理対象の環境のOracle VM ServerにゲストとしてOracle VM Managerをインストールすることが可能ですが、推奨ではありません。 この設定を作成する前に、次のことを考慮します。

  • 設定手順は、比較的複雑です。

  • Oracle VM Managerを実行している仮想マシンは、突然停止する場合があります。

  • サーバー・プールがオフラインになると、環境のリカバリが難しく、失敗する場合があります。

  • データ消失または破損のリスクに加え、NTPサービスの動作によっては、競合状態が発生する場合があります。Oracle VM Managerは通常、環境全体のNTPソースですが、仮想マシンとしては、NTPサービスのクライアントでもあります。

2.1.5 Oracle VM Serverのインストール

この項では、Oracle VM Serverを安全にインストールして構成する方法について説明します。

Oracle VM Serverは、Oracle Linuxの軽量かつ最適化されたバージョンを実行します。 Xenハイパーバイザ・テクノロジの更新版に基づいており、これにはOracle VM Agentが含まれます。 Oracle VM Serverのインストールはセキュアで、使用されていないパッケージまたはアプリケーションおよびOracle VM環境の操作に必要なポート以外のすべてのポートをリスニングするサービスはありません。

インストール・プロセス中に、Oracle VM Agentおよびサーバーのrootユーザー・アカウントにパスワードを指定する必要があります。 セキュアなパスワードを選択し、Oracle VM Serverへのアクセスが必要な管理者間でのみ、そのパスワードを共有します。 第2.1.4項「Oracle VM Managerのインストール」に示すパスワード・ルールを使用します。 第2.1.3項「管理ネットワークの準備」の説明に従って、アクセス制限付きのプライベート・ネットワーク・セグメントにサーバーを配置します。

2.1.7 Oracle VMのインストール後の構成

この項の目的は、インストール後に行う必要のあるセキュリティ構成の変更について説明することです。 ただし、Oracle VMコンポーネントのインストーラは、デフォルトでセキュリティ・リスクを最小限に抑えるように設計されているため、インストール時に潜在的な問題が自動的に解決されます。 一般的なセキュリティの考慮事項は、次のとおりです。

  • 指定したタイプのデプロイメントで不要のコンポーネントを削除または無効にすることをお薦めします。 ただし、Oracle VMはOracle Linuxの軽量で最適化されたバージョンに基づいており、不要なパッケージおよびコンポーネントは、インストール・メディアに含まれていません。

  • ソフトウェアをインストールおよび構成できるように、インストールにはスーパーユーザーおよびrootパスワードの作成および割当てが必要です。 インストールおよび構成タスクの完了後すぐに、各Oracle VM管理者に個別のユーザー・アカウントを作成することをお薦めします。 可能な場合は、rootへのアクセスを無効化することを検討します。

  • FTPまたは標準HTTPなどの弱いプロトコルまたはプレーンテキスト・プロトコルは、デフォルトで無効にする必要があります。 デモおよびテスト目的で、これらを使用することは許容できますが、安全性が低いということを常に意識する必要があります。 Oracle VMコンポーネント間での通信は、デフォルトで適切に保護されています。 Oracle VM ManagerOracle VM ServersはOracle VM Agentsで通信し、すべてのエージェント通信はSSLで暗号化されています。 Oracle VM Managerへのアクセスは、デフォルトでHTTPSを使用するよう構成されています。 デフォルトでは、通信を暗号化するために使用されるSSL証明書は、インストール中にOracle VM Managerインスタンス用に生成された内部CA証明書によって署名されます。 ユーザーWebブラウザを含むほとんどのクライアント・アプリケーションにはこのCA証明書がインストールされていないため、多くのクライアント・アプリケーションがHTTPS経由でOracle VM Managerサービスにアクセスする際に提示されるSSL証明書を検証することはできません。 SSL証明書が検証できない場合、一部のクライアント・アプリケーションは完全に失敗する可能性がありますが、他のアプリケーションは警告を出してユーザーが自己責任で処理することができます。 中間者攻撃の可能性を最小限に抑えるためには、検証が実際に行われることが重要です。 したがって、次のいずれかの措置をとることが適切です:

    • Oracle VM ManagerインスタンスのCA証明書を、Oracle VM Managerにアクセスするすべてのクライアント・アプリケーションの信頼できるCA証明書ストアにインストールします。

    • Oracle VM ManagerでHTTPS通信に使用するSSL証明書を変更して、すべてのクライアント・アプリケーションにすでにCA証明書がインストールされている、信頼できるサードパーティCAによって署名された証明書を使用するようにします。

    これらの操作の詳細は、「Oracle VM管理者ガイド」を参照してください。

  • 機密情報を含むファイルには、デフォルトで制限的なファイル権限がある必要があります。 これらのファイルには、監査ログ、パスワード・ファイルおよび構成が含まれています。 Oracle VMは、クリアテキスト・パスワードなどの機密データがログまたは一時ファイルに開示されないように構成されています。 ファイル権限は、デフォルトで厳しい状態で維持されており、許可されていないアクセスを防止し、必要に応じて暗号化が適用されています。

    物理サーバーへのアクセスは、デフォルトで厳密に制限されており、これによって、情報が危険にさらされるリスクがとても低いことが暗示されます。 したがって、ログ・ファイル、パスワード・ファイルおよび構成データなどの機密データは、通常Oracle VM環境でよく保護されています。 Oracle VM Managerを正常にインストールまたはアップグレードした後、インストーラの指示に従って、/tmpからログ・ファイルを必ず削除します。

2.1.7.1  Oracle VM Agent SSL証明書の変更

Oracle VM AgentおよびOracle VM Manager間での通信は、RSAアルゴリズムおよび2048ビット秘密キーを使用してSSL暗号化されています。 関連するファイルは、/etc/ovs-agent/certにあります。

  • certificate.pem

  • key.pem

  • request.pem

重要

Oracle VM Agentで使用されるSSL証明書を変更すると、現在サーバーの所有権を持つOracle VM Managerインスタンスの認証に失敗します。 これを解決するには、変更後にサーバーの所有権を解放する必要があります(これには、サーバーが属している可能性のあるサーバー・プールからサーバーを削除する必要があります)、サーバーを再検出し、新しいサーバーでした。

デフォルトの自己署名証明書を自分の信頼できる証明書で置き換えるには、証明書ファイルとキー・ファイルを置き換えます。

新しい証明書およびキー・ファイルを生成するには、Oracle VM Serverにログインして、コマンドovs-agent-keygenを実行します。 コマンドは、次のように使用されます。

# ovs-agent-keygen -h
Usage: ovs-agent-keygen [OPTION]
Generate SSL certificate and key files for Oracle VM Agent XMLRPC Server.
Options:
-f, --force      override existing files
-v, --version    show version number and exit
-h, --help       show this help message and exit

生成されたファイルは、前述のディレクトリにあります。 -fオプションを使用する場合、既存のファイルは上書きされます。

Oracle VMリリース3.3以降、Oracle VM Agentパスワードは、最初の検出プロセスでの認証にのみ使用されます。 その後、証明書を使用してOracle VM ManagerとOracle VM Agent間のすべてのその後の認証が行われます。 このアプローチによりセキュリティが強化され、エージェントが実行しているOracle VM Serverの所有権を持つOracle VM ManagerインスタンスへのOracle VM Agentへのアクセスを制限できます。 それにもかかわらず、所有権が解放されると、どのサーバーのOracle VM Agentパスワードも変更することをお勧めします。 Oracle VM Manager Web InterfaceおよびOracle VM Managerコマンドライン・インタフェース内のサーバーの所有権を解放すると、これを実行するメカニズムが用意されています。

2.1.7.2 Dom0でのLDAP認証の有効化

Oracle VM ServerインスタンスでLDAP認証を有効にして、Dom0のアクセス試行を制御およびログに記録することができます。 LDAP認証を有効にすると、同じ理由で重要なアセット(Dom0)のセキュリティを強化することができ、集中管理されたユーザー・コントロールを他のコンテキストで役立ちます。

ノート

LDAP認証を構成するには、ビジネス・ニーズに応じた構成が必要です。 LDAP認証を有効にするさまざまなメソッドの詳細な例を提供することは、このドキュメントの範囲を超えています。 ただし、以下のステップでは、初期構成のステップを説明します。

Dom0でLDAP認証を有効にするには、次のいずれかを実行します:

  • Oracle Linux 6管理ガイドの手順に従って、openldap-clientssssd、およびsssd-clientパッケージを構成してインストールします。 Oracle Linux認証構成GUIを実行する代わりに、LDAP認証を有効にするには、authconfigコマンドを使用する必要があります。

    詳細は、LDAP認証の有効化 atを参照してください: http://docs.oracle.com/cd/E37670_01/E41138/html/ol_enblcli_ldap.html

  • Oracle VM ServerでLDAP認証を次のように構成します:

    1. 必要なパッケージが使用可能であることを確認し、必要に応じてインストールします。

      # rpm -qa | egrep -i 'nss-pam-ldap|pam_ldap'
      pam_ldap-185-11.el6.x86_64
      nss-pam-ldapd-0.7.5-20.el6_6.3.x86_64
    2. LDAPサーバーのSSLまたはTLS証明書を次のディレクトリにコピーします:

      /etc/openldap/cacerts/openldap.pem

    3. 証明書のアクセス許可を設定します。

      # chmod 644 /etc/openldap/cacerts/openldap.pem
    4. CA証明書を再ハッシュします。

      # cacertdir_rehash /etc/openldap/cacerts
    5. LDAP認証を有効にします。 authconfigコマンドを使用するか、システム認証を構成するためのインタフェースを開始してください。

      • # authconfig --enableldap --enableldapauth --ldapserver=ldap://hostname:389 \
         --ldapbasedn="dc=example,dc=com" --update

      • # authconfig-tui

LDAP認証の構成例を次に示します:

  • /etc/openldap/ldap.conf

    TLS_CACERTDIR /etc/openldap/cacerts
    BASE dc=example,dc=com
    URI ldap://hostname:389
  • /etc/pam_ldap.conf

    ssl start_tls
    tls_cacertdir /etc/openldap/cacerts
    base dc=example,dc=com
    uri ldap://hostname:389
    pam_password md5
  • /etc/nslcd.conf

    ssl start_tls
    tls_cacertdir /etc/openldap/cacerts
    base dc=example,dc=com
    uri ldap://hostname:389
    uid nslcd
    gid ldap

2.1.7.3  Oracle VM ServerでのOpenSSLに対するFIPSの有効化

OpenSSLがFIPS (Federal Information Processing Standard)出版物140-2に準拠していることを確認するために、OpenSSLのFIPSモードを有効にすることを検討してください。これは、暗号モジュールのセキュリティ要件を確立する標準です。 このアクションは、Oracle VMデプロイメントのインフラストラクチャの一部を構成する各システムで任意に実行できます。 OpenSSLのFIPSモードを有効にする方法の詳細は、「Oracle Linux 6セキュリティ・ガイド」の次の場所で入手できます:

http://docs.oracle.com/cd/E37670_01/

この項では、Oracle VM ServerでOpenSSLのFIPSを有効にするために必要なステップの概要を説明します。 Oracle VM ServerとOracle Linux 6には若干の違いがあるため、OpenSSL用にFIPSモードを構成して構成するステップのいくつかは、Oracle Linux 6の指示と異なる場合があります。

ノート

Oracle VM ServerはULNに登録されている必要があります。 openssl-fipsパッケージは、ol6_x86_64_addonsチャネルで使用できます。

Oracle VM ServerをFIPS (Federal Information Processing Standard)140-2に準拠させるには、次のステップを実行します:

  1. まず、FIPSが有効になっていないことを確認します:

    # cat /proc/sys/crypto/fips_enabled
    0
  2. ULNにログインして、システムのol6_x86_64_addonsチャネルを有効にします。

  3. dracut-fipsパッケージをインストールします:

    # yum install dracut-fips

    ブート時にシステムがカーネル・コンポーネントの整合性をチェックするように、このパッケージをインストールする必要があります。

  4. 既存のopensslパッケージを削除し、openssl-fips-1.0.1*パッケージをインストールします。 yumシェルを使用すると、次のようなトランザクションを実行できます:

    # yum -y shell <<EOF
    remove openssl
    install openssl-fips-1.0.1*
    run
    EOF

    別のyum削除コマンドとyum installコマンドを使用することはできません。yum自体は、使用可能なOpenSSLライブラリに依存します。

    あるいは、openssl-fips-1.0.1*パッケージをダウンロードして、代わりにrpmコマンドを使用してください:

    # rpm -e --nodeps openssl
    # rpm -ivh openssl-fips-1.0.1*.rpm
  5. ブート・パーティションのデバイスUUIDを特定します。 これを行うにはさまざまな方法がありますが、次のシェル・コマンドは、ブート・パーティションに使用されているデバイスのUUIDを返す必要があります:

    # blkid `mount |grep \/boot|awk '{print $1}'`

    /bootが独自のパーティションにないようにディスクをパーティション化した場合、上記のコマンドは出力を返しません。

  6. /etc/default/grubを編集:

    1. /bootまたは/boot/efi/とは別のパーティションにあり、このパーティションがあるデバイスのUUIDを取得している場合は、次の行を追加して、grubが更新されるときにFIPSが自動的に有効になり、起動する適切なデバイスを特定する:

      GRUB_CMDLINE_LINUX_DEFAULT="splash=verbose verbose crashkernel=224M-:112M showopts fips=1 \
                boot=UUID=boot_UUID root=UUID=root_UUID"

      ここで、boot_UUIDroot_UUIDは前のステップで取得したUUIDです。

      注意

      /bootまたは/boot/efi/とは別のパーティションに存在し、有効なboot=項目を指定しないと、カーネル.hmacファイルが見つからないためシステムがクラッシュします。

    2. /bootまたは/boot/efi/とは別のパーティションにない場合は、ブート・パーティションを指定する必要はありません:

      GRUB_CMDLINE_LINUX_DEFAULT="splash=verbose verbose crashkernel=224M-:112M showopts fips=1"
  7. /etc/default/grubに加えた変更を使用するためにGRUB構成を再構築してください:

    1. BIOSベースのシステムでは、rootとして次のコマンドを発行します:

      # grub2-mkconfig -o /boot/grub2/grub.cfg
    2. UEFIベースのシステムでは、rootとして次のコマンドを発行します:

      # grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
  8. /etc/sysconfig/prelinkを編集し、PRELINKING=noを設定します。

    システムがモジュールの完全性を正しく検証できるようにするには、事前リンクを無効にする必要があります。

  9. バイナリとライブラリからすべての既存のprelinkを削除する:

    # prelink -u -a
    注意

    すべてのプレ・リンクを無効にして削除しないと、ユーザーはログインできず、/usr/sbin/sshdは起動しません。

  10. initramfsファイル・システムを再作成します:

    # dracut -f

    完了するまでに時間がかかることがあります。 これを実行するには、-vまたは--verboseスイッチを使用してプロセスを監視します。

  11. 既存のSSHホスト・キーを削除します:

    # rm /etc/ssh/ssh_host*

    OpenSSHは、システムが次に再起動されたときに、FIPSで検証されたOpenSSLライブラリ・モジュールを使用して新しいFIPS承認キーを生成します。 (FIPSモードでは、ssh-keygen/etc/sshでは新しいRSAホスト・キーを作成できますが、DSAキーでは作成できません。MD5ハッシュではなくSHA1ハッシュとしてキーの指紋を表示します)。

  12. システムをシャットダウンし、FIPSモードで再起動します。

    ノート

    システムがリブートしている間に、ランダムにキーを押すかマウスを動かすことで入力イベントを生成します。 システムに十分なエントロピがキー生成に使用できるようにするには、少なくとも256のイベントを作成する必要があります。

  13. システムが再起動したら、FIPSが有効になっていることを確認します:

    # cat /proc/sys/crypto/fips_enabled
    1
  14. FIPSが正しく機能していることをテストするには、次のOpenSSLコマンドを実行し、エラーが返されていることを確認します:

    # openssl md5 /etc/hosts
    Error setting digest md5
    140297679636296:error:060A80A3:digital envelope routines:FIPS_DIGESTINIT:disabled for fips:fips_md.c:180:

    MD5がFIPS承認のハッシュ・スタンダードではないため、MD5ハッシュを取得しようとするとエラーが返されます。