NetBackup ™ セキュリティおよび暗号化ガイド
- NetBackup での安全な通信 (最初にお読みください)
- NetBackup での安全な通信について
- インストール時に NetBackup CA が署名した証明書 (またはホスト ID ベースの証明書) を配備する方法
- マスターサーバーのクラスタノードでの安全な通信の方法
- クラスタ化されたアプリケーションのノードにインストールされた NetBackup クライアントについて
- アップグレード時に NetBackup 証明書をホストに配備する方法
- 証明書配備中に認証トークンが必要である場合
- ホスト名 (または IP アドレス) をホスト ID にマップする理由
- ホスト属性またはホストの通信状態をリセットする方法
- カタログリカバリの変更点
- 自動イメージレプリケーションでの変更点
- 無効化された証明書を使用するホストの動作
- NetBackup 証明書のバックアップについて
- マスターサーバーの外部証明書の設定
- 外部証明書を使用するマスターサーバーのクラスタノードでの安全な通信の方法
- 外部証明書の失効リストの仕組み
- ホストがマスターサーバーに直接接続できないときの通信の動作
- NetBackup 8.1 のホストが NetBackup 8.0 以前のホストと通信する方法
- クラウド構成でのレガシーメディアサーバーとの通信方法
- 通信エラーのシナリオ
- NetBackup ドメイン内の他のホストに対する安全な通信のサポート
- NetBackup 8.1 以降のマスターサーバーとの通信
- BMR の安全な通信のサポート
- SQL Server を保護する VMware のバックアップと複数の NIC を使用する SQL Server でのバックアップの構成
- NetBackup セキュリティの強化
- NetBackup セキュリティおよび暗号化について
- NetBackup セキュリティの実装レベル
- 世界レベルのセキュリティ
- 企業レベルのセキュリティ
- データセンターレベルのセキュリティの概要
- NetBackup アクセス制御 (NBAC)
- 世界レベル、企業レベルおよびデータセンターレベルの統合
- NetBackup セキュリティの実装形式
- オペレーティングシステムのセキュリティ
- NetBackup セキュリティの脆弱性
- NetBackup の標準セキュリティ
- クライアント側の暗号化セキュリティ
- マスター、メディアサーバーおよび GUI のセキュリティ上の NBAC
- すべてに NBAC を使用したセキュリティ
- セキュリティの配置モデル
- NetBackup 操作の監査
- 第 I 部 個人情報とアクセスの管理
- 個人情報とアクセスの管理について
- AD ドメインと LDAP ドメイン
- アクセスキー
- API キー
- auth.conf ファイル
- 役割に基づくアクセス制御
- RBAC の機能
- RBAC 設定
- OS (オペレーティングシステム) 管理者の Web UI アクセス権の無効化
- OS (オペレーティングシステム) 管理者のコマンドライン (CLI) アクセス権の無効化
- RBAC の構成
- AD または LDAP ドメインの追加
- デフォルトの RBAC の役割
- 管理者
- デフォルトのクラウド管理者
- デフォルトの NetBackup コマンドライン (CLI) 管理者
- デフォルトの Kubernetes 管理者
- デフォルトの NetBackup Kubernetes Operator サービス
- デフォルトの Oracle 管理者
- デフォルトの Microsoft SQL Server 管理者
- デフォルトの Resiliency 管理者
- デフォルトの RHV 管理者
- デフォルトの SaaS 管理者
- デフォルトの AHV 管理者
- デフォルトのセキュリティ管理者
- デフォルトのストレージ管理者
- デフォルトのユニバーサル共有管理者
- デフォルトの VMware 管理者
- カスタムの RBAC 役割の追加
- カスタム役割の編集または削除
- RBAC でのユーザーの表示
- 役割へのユーザーの追加 (非 SAML)
- 役割へのスマートカードユーザーの追加 (非 SAML、AD/LDAP なし)
- 役割へのユーザーの追加 (SAML)
- 役割からのユーザーの削除
- スマートカードまたはデジタル証明書
- シングルサインオン (SSO)
- 拡張監査
- NetBackup アクセス制御セキュリティ (NBAC)
- NetBackup アクセス制御 (NBAC) の使用について
- NetBackup のアクセス管理
- NBAC (NetBackup アクセス制御) 構成について
- NetBackup アクセス制御 (NBAC) の構成
- NBAC の構成の概要
- スタンドアロンのマスターサーバーでの NetBackup アクセス制御 (NBAC) の構成
- クラスタでの高可用性の NetBackup マスターサーバーのインストール
- クラスタ化されたマスターサーバーでの NetBackup アクセス制御 (NBAC) の構成
- メディアサーバーでの NetBackup アクセス制御 (NBAC) の構成
- クライアントでのアクセス制御のインストールおよび構成
- NetBackup ホットカタログバックアップへの認証データベースおよび認可データベースの追加について
- NBAC の構成コマンドの概略
- NetBackup 管理インフラストラクチャと setuptrust コマンドの統合
- setuptrust コマンドの使用
- マスターおよびメディアサーバーの[アクセス制御 (Access Control)]ホストプロパティの構成
- クライアントの[アクセス制御 (Access Control)]ホストプロパティダイアログボックス
- 自動イメージレプリケーションでの NetBackup アクセス制御 (NBAC) の使用
- アクセス管理のトラブルシューティング
- アクセス管理ユーティリティの使用
- NetBackup へアクセス可能なユーザーの決定について
- NetBackup ユーザーグループの特定のユーザー権限の表示
- 権限の付与
- 認可オブジェクト
- メディアの認可オブジェクトの権限
- ポリシーの認可オブジェクトの権限
- ドライブの認可オブジェクトの権限
- レポートの認可オブジェクトの権限
- NBU_Catalog の認可オブジェクトの権限
- ロボットの認可オブジェクトの権限
- ストレージユニットの認可オブジェクトの権限
- ディスクプールの認可オブジェクトの権限
- バックアップおよびリストアの認可オブジェクトの権限
- ジョブの認可オブジェクトの権限
- サービスの認可オブジェクトの権限
- ホストプロパティの認可オブジェクトの権限
- ライセンスの認可オブジェクトの権限
- ボリュームグループの認可オブジェクトの権限
- ボリュームプールの認可オブジェクトの権限
- デバイスホストの認可オブジェクトの権限
- セキュリティの認可オブジェクトの権限
- ファットサーバーの認可オブジェクトの権限
- ファットクライアントの認可オブジェクトの権限
- 権限Vault の認可オブジェクト
- サーバーグループの認可オブジェクトの権限
- キー管理システム (kms) グループの認可オブジェクトの権限
- NetBackup アクセス制御 (NBAC) のアップグレード
- 第 II 部 移動中のデータの暗号化
- NetBackup CA および NetBackup 証明書
- NetBackup のセキュリティ証明書の概要
- NetBackup での安全な通信について
- セキュリティ管理ユーティリティについて
- ホスト管理について
- [ホスト (Hosts)]タブ
- ホスト ID からホスト名へのマッピングの追加
- [ホストマッピングを追加または削除 (Add or Remove Host Mappings)]ダイアログボックス
- ホスト ID からホスト名へのマッピングの削除
- [承認待ちのマッピング (Mappings for Approval)]タブ
- 自動検出されたマッピングの表示
- [マッピングの詳細 (Mapping Details)]ダイアログボックス
- ホスト ID からホスト名へのマッピングの承認
- ホスト ID からホスト名へのマッピングの拒否
- 共有マッピングとクラスタマッピングの追加
- [共有マッピングとクラスタマッピングの追加 (Add Shared or Cluster Mappings)]ダイアログボックス
- NetBackup ホスト属性のリセット
- 証明書の自動再発行の許可または禁止
- ホストのコメントの追加または削除
- グローバルセキュリティ設定について
- ホスト名ベースの証明書について
- ホスト ID ベースの証明書について
- nbcertcmd コマンドオプションの Web ログインの要件
- 証明書管理ユーティリティを使ったホスト ID ベースの証明書の発行と配備
- NetBackup 証明書の配備のセキュリティレベルについて
- ホスト ID ベースの証明書の自動配備
- ホスト ID ベースの証明書の配備
- ホスト ID ベースの証明書の非同期的配備
- 証明書の有効期間に対するクロックスキューの意味
- マスターサーバー (CA) との信頼の設定
- 証明書の配備の強制実行または上書き
- マスター以外のホストで NetBackup を再インストールするときのホスト ID ベースの証明書の保持
- マスターサーバーと接続されていないクライアントでの証明書の配備
- ホスト ID ベースの証明書の有効期限と更新について
- メディアサーバーおよびクライアントからの重要な証明書とキーの削除
- 仮想マシンのクローンを作成する前にホストからホスト ID ベースの証明書情報を消去する
- ホスト ID ベースの証明書の再発行について
- ホスト ID ベースの証明書のトークン管理について
- ホスト ID ベースの証明書失効リストについて
- ホスト ID ベースの証明書の無効化について
- ホスト ID ベースの証明書の削除
- クラスタ化されたセットアップでのホスト ID ベースの証明書配備
- クラスタ化された NetBackup ホストでのホスト ID ベースの証明書の配備について
- クラスタノードでのホスト ID ベースの証明書の配備
- クラスタ化された NetBackup セットアップでホスト ID ベースの証明書を無効化する
- 再発行トークンを使用して、クラスタ化された NetBackup セットアップでホスト ID ベースの証明書を配備する
- クラスタ化された NetBackup セットアップの再発行トークンの作成
- クラスタ化された NetBackup セットアップでホスト ID ベースの証明書を更新する
- クラスタ化された NetBackup セットアップで証明書の詳細を表示する
- クラスタ化された NetBackup セットアップからの CA 証明書の削除
- ディザスタリカバリインストール後にクラスタマスターサーバーで証明書を生成する
- 非武装地帯にある NetBackup クライアントとマスターサーバーの間の HTTP トンネルを介した通信について
- NetBackup ホストの手動での追加
- NetBackup CA の移行
- 移動中のデータの暗号化 (DTE) の構成
- 外部 CA と外部証明書
- NetBackup での外部 CA のサポートについて
- NetBackup ホスト通信で外部証明書を使用するワークフロー
- 外部 CA が署名した証明書の構成オプション
- NetBackup サーバーとクライアントの ECA_CERT_PATH
- NetBackup サーバーとクライアントの ECA_TRUST_STORE_PATH
- NetBackup サーバーとクライアントの ECA_PRIVATE_KEY_PATH
- NetBackup サーバーとクライアントの ECA_KEY_PASSPHRASEFILE
- NetBackup サーバーとクライアントの ECA_CRL_CHECK
- NetBackup サーバーとクライアントの ECA_CRL_PATH
- NetBackup サーバーとクライアントの ECA_CRL_PATH_SYNC_HOURS
- NetBackup サーバーとクライアントの ECA_CRL_REFRESH_HOURS
- NetBackup サーバーとクライアントの ECA_DISABLE_AUTO_ENROLLMENT
- NetBackup サーバーとクライアントの ECA_DR_BKUP_WIN_CERT_STORE
- NetBackup マスターサーバーの MANAGE_WIN_CERT_STORE_PRIVATE_KEY オプション
- NetBackup サービスがローカルサービスアカウントのコンテキストで実行されている場合の Windows 証明書ストアの制限事項
- 外部 CA の証明書失効リストについて
- 証明書の登録について
- マスターサーバーの登録状態の表示について
- NetBackup Web サーバーで外部証明書を使用するための構成
- 外部 CA が署名した証明書を使用するマスターサーバーの構成
- インストール後に外部 CA が署名した証明書を使用するための NetBackup ホスト (メディアサーバー、クライアント、クラスタノード) の構成
- リモートホストの外部証明書の登録
- NetBackup ドメインがサポートする認証局の表示
- NetBackup Web UI での外部 CA が署名した証明書の表示
- ファイルベースの外部証明書の更新
- 証明書の登録を削除
- NetBackup ドメインでの NetBackup CA の無効化
- NetBackup ドメインでの NetBackup CA の有効化
- NetBackup ドメインでの外部 CA の無効化
- 登録済み外部証明書のサブジェクト名の変更
- クラスタマスターサーバー用の外部証明書の構成について
- キーと証明書の再生成
- NetBackup CA および NetBackup 証明書
- 第 III 部 格納データの暗号化
- 格納データの暗号化セキュリティ
- 格納データの暗号化に関する用語
- 格納データの暗号化に関する注意事項
- 格納データの暗号化の宛先形式
- 暗号化セキュリティについて考慮する際の質問
- 暗号化オプションの比較
- NetBackup クライアントの暗号化について
- クライアントでの標準暗号化の構成
- クライアントでのレガシー暗号化の構成
- NetBackup Key Management Service
- FIPS 対応 KMS について
- KMS のインストール
- KMS の構成
- キーデータベースの作成
- キーグループとキーレコードについて
- キーレコードの状態の概要
- KMS データベースファイルのバックアップについて
- すべてのデータファイルのリストアによる KMS のリカバリについて
- KMS データファイルのみのリストアによる KMS のリカバリ
- データ暗号化キーの再生成による KMS のリカバリ
- KMS データファイルのバックアップに関する問題
- KMS データベースファイルのバックアップソリューション
- キーレコードの作成
- 主要グループからのキーのリスト
- KMS と連携するための NetBackup の構成
- KMS Web アプリケーションを使用した NetBackup KMS の設定
- 暗号化への KMS の使用について
- KMS データベースの要素
- コマンドラインインターフェース (CLI) コマンド
- KMS のトラブルシューティング
- 外部のキーマネージメントサービス
- 格納データの暗号化セキュリティ
- NetBackup での FIPS 準拠
- NetBackup Web サービスアカウント
- 特権のないユーザー (サービスユーザー) アカウントでの NetBackup サービスの実行
- NetBackup でのデータの変更不可と削除不可
- バックアップの異常の検出
- マルウェアの検出
- マルウェアの検出について
- マルウェア検出の構成手順
- スキャンホストの前提条件
- スキャンホストプールの前提条件
- サポートされているマルウェアツールとその構成
- 新しいスキャンホストプールの構成
- スキャンホストプールへの新しいホストの追加
- 既存のスキャンホストの追加
- クレデンシャルの管理
- スキャンホストの削除
- スキャンホストの無効化
- ポリシークライアントバックアップイメージのマルウェアスキャン
- マルウェアスキャンの実行
- VMware 資産のマルウェアのスキャン
- マルウェアスキャンの状態の表示
- マルウェアスキャンイメージの処理
- マルウェアに感染したイメージ (ポリシーによって保護されているクライアント) からのリカバリ
- マルウェアに感染した VMware 資産のリカバリ
- NetBackup サーバーのマルウェアスキャンのタイムアウトの構成
- NetBackup サーバー向けのマルウェアスキャンの自動クリーンアップの構成
NetBackup Authentication and Authorization の構成とトラブルシューティングのヒント
次の表に、NetBackup Authentication and Authorization の構成とトラブルシューティングのヒントを示します。この表示には、いくつかの既知の問題についての情報とそれを解決するためのヒントも含んでいます。
表: NetBackup Authentication and Authorization の構成とトラブルシューティングのヒント
|
トピック |
構成のヒント |
|---|---|
|
マスターサーバー設定の検証 |
bpnbat -whoami を実行し、コンピュータのクレデンシャルを指定すると、ホストが登録されているドメイン、および証明書に示されているコンピュータの名前が表示されます。 bpnbat -whoami -cf
"install_path\netbackup\var\vxss\credentials\
master.company.com
"Name: master.company.com
Domain: NBU_Machines@master.company.com
Issued by: /CN=broker/OU=root@master.company.com/O=vx
Expiry Date: Oct 31 20:17:51 2007 GMT
Authentication method: Veritas Private Security
Operation completed successfully.
表示されたドメインが NBU_Machines@master.company.com でない場合、対象の名前 (master) に対して bpnbat -addmachine を実行することを検討してください。NBU_Machines ドメインとして機能するコンピュータ (master) でこのコマンドを実行します。 次に、クレデンシャルを配置するマシン上で、bpnbat -loginmachine コマンドを実行します。 |
|
ルートクレデンシャルの設定 |
認証サーバーまたは認可サーバーのいずれかの設定で問題が発生し、アプリケーションでユーザーのクレデンシャルが root であるとエラー表示された場合は、root に対して $HOME 環境変数が正しく設定されていることを確認します。 次のコマンドを実行して、現在の値を検出します。 echo $HOME この値は root のホームディレクトリと一致する必要があります。このディレクトリは、通常、/etc/passwdファイルに存在します。 root に切り替える場合は、次のコマンドを実行します。 su - この場合、su とだけ入力するのではなく、root 環境変数を正しく調整する必要があります。 |
|
期限切れのクレデンシャルメッセージ |
クレデンシャルが期限切れであるか、不正である場合、bpnbaz または bpnbat コマンドの実行時に、次のメッセージが表示されます。 Supplied credential is expired or incorrect. Please reauthenticate and try again. bpnbat -Login を実行して、期限切れのクレデンシャルを更新します。 |
|
有効なデバッグログ |
次のログは、NetBackup アクセス制御のデバッグを行う場合に役立ちます。 マスター上: admin、bpcd、bprd、bpdbm、bpjobd、bpsched クライアント上: admin、bpcd アクセス制御: nbatd、nbazd. マスターサーバーが NetBackup アクセス制御 (NBAC) を REQUIRED モードで使い、EMM データベースがリモートの場合、ログ情報が bpdbm ログに表示されます。 正しいログ記録の説明については、『NetBackup トラブルシューティングガイド』を参照してください。 |
|
クレデンシャルの格納場所 |
NetBackup Authentication and Authorization のクレデンシャルは次のディレクトリに格納されます。 UNIX の場合: ユーザーのクレデンシャル: $HOME/.vxss コンピュータのクレデンシャル: /usr/openv/var/vxss/credentials/ Windows の場合: <user_home_dir>\Application Data\VERITAS\VSS |
|
システム時間がアクセス制御に与える影響 |
クレデンシャルには、作成時間と終了時間が含まれます。コンピュータ間でシステム時間が大きく異なっていると、クレデンシャルが未来に作成されたものと見なされたり、実際よりも早く期限切れと見なされます。システム間の通信で問題が発生した場合は、システム時間の同期化を検討してください。 |
|
NetBackup Authentication and Authorization のポート |
NetBackup Authentication and Authorization デーモンサービスは旧バージョンのメディアサーバーとクライアントにポート 13783 番と 13722 番を使います。これらのサービスでは PBX 接続が使用されます。 次のコマンドで、プロセスが待機していることを確認できます。 UNIX の場合 netstat -an | grep 13783 Windows の場合 netstat -a -n | find "13783" UNIX の場合 netstat -an | grep 13722 Windows の場合 netstat -a -n | find "13722" |
|
共有サービスの NetBackup の認証および認可デーモンの停止 |
NetBackup Authentication and Authorization Service を停止する場合は、認可を最初に停止し、その後認証を停止します。 UNIX の場合、次のコマンドを使用します。 認可を停止する場合、次の例に示すように、TERM シグナルを送信します。 # ps -fed |grep nbazd
root 17018 1 4 08:47:35 ? 0:01 ./nbazd
root 17019 16011 0 08:47:39 pts/2 0:00 grep nbazd
# kill 17018
認証を停止する場合、次の例に示すように、TERM シグナルを送信します。 # ps -fed |grep nbatd
root 16018 1 4 08:47:35 ? 0:01 ./nbatd
root 16019 16011 0 08:47:39 pts/2 0:00 grep nbatd
# kill 16018
Windows の場合 これらのサービスは NetBackup アクティビティモニターに表示されないため、Windows の[サービス]ユーティリティを使用します。 |
|
NetBackup にアクセスできない場合 |
アクセス制御が正しく構成されていないと、NetBackup 管理コンソールにアクセスできない場合があります。 アクセスできない場合は、vi を使って bp.conf エントリを参照するか(UNIX)、または regedit を使って次の場所の Windows レジストリを参照します(Windows)。 HKEY_LOCAL_MACHINE\SOFTWARE\Veritas\NetBackup\ CurrentVersion\config AUTHORIZATION_SERVICE、AUTHENTICATION_DOMAIN および USE_VXSS エントリが正しく設定されているかどうかを確認します。 管理者は、NetBackup アクセス制御の使用を好まない場合や認可ライブラリをインストールしていないことがあります。USE_VXSS エントリがProhibitedに設定されているか完全に削除されていることを確認します。 |
|
メディアサーバーのストレージユニットのバックアップが NBAC 環境で実行されない |
NetBackup ドメインのシステム (マスターサーバー、メディアサーバー、またはクライアント) のホスト名と |
|
nbac_cron ユーティリティの使用 |
nbac_cron.exe ユーティリティを使用して、cron または at ジョブを実行する際の識別情報を作成します。 nbac_cron ユーティリティについての詳細 nbac_cron ユーティリティについてを参照してください。 nbac_cron.exe は、次の場所に存在します。 UNIX の場合、/opt/openv/netbackup/bin/goodies/nbac_cron Windows の場合、install_path\netbackup\bin\goodies\nbac_cron.exe nbac_cron ユーティリティの使用についての詳細 nbac_cron ユーティリティの使用を参照してください。 |
|
Windows でのリカバリ後の NBAC の有効化 |
Windows でリカバリ後に手動で NBAC を有効にするには次の手順を使います。
メモ: クラスタで bpclusterutil -enableSvc nbatd および bpclusterutil -enable nbazd コマンドを実行します。 |
|
クラスタインストールで setupmaster が失敗する |
構成ファイルが共有ディスクにあるクラスタインストールの場合には setupmaster が失敗することがある既知の問題があります。 |
|
共有セキュリティサービス (vxatd または vxazd) がマスターサーバーとともにクラスタ化されている場合のクラスタの既知の問題 |
共有セキュリティサービス(vxatd または vxazd)がマスターサーバーとともにクラスタ化されている場合にクラスタに既知の問題があります。bpnbaz -SetupMaster コマンドを実行し、セキュリティ (NBAC) を設定するときに、該当する場合は共有セキュリティサービスのサービスグループを永続的にフリーズするか、サービスをオフラインにします (ただし、共有ディスクはオンラインであることを確認します)。その後、setupmaster コマンドを実行します。 |
|
AUTHENTICATION_DOMAIN ファイルのすべての |
AUTHENTICATION_DOMAINファイルのすべての |
|
Windows 2003 のデュアルスタックコンピュータの既知の問題 |
Windows 2003 のデュアルスタックコンピュータの既知の問題があります。http://support.microsoft.com/ からの Microsoft 社のパッチ kb/928646 が必要です。 |
|
アクセス制御エラーと短いホスト名および長いホスト名に関する既知の問題 |
アクセス制御に関するエラーを含む既知の問題があります。短いホスト名と長いホスト名を解決することができ、同じ IP アドレスに解決されるかを調べてください。 |
|
ブローカーのプロファイルで ClusterName が AT の仮想名に設定されている場合の NBAC に関するクラスタアップグレードの既知の問題 |
ブローカーのプロファイルで ClusterName が AT の仮想名に設定されている場合の NBAC に関するクラスタアップグレードの既知の問題があります。これは組み込みのブローカーにそのまま移行されます。組み込みのブローカーはプロファイルで UseClusterNameAsBrokerName が 1 に設定されています。ブローカーのドメインマップに要求が送られると、共有 AT の仮想名をブローカー名として使用します。bpnbaz -GetDomainInfosFromAuthBroker は何も戻しません。アップグレードでは、 |
|
エラーが発生する可能性のある bpcd の複数インスタンスの既知の問題 |
bpnbaz -SetupMedia コマンドで、bprd が AT_LOGINMACHINE_RQST プロトコルを使用して宛先フィールドの bpcd と通信する既知の問題があります。bpcd の新しいインスタンスが起動されます。コマンドは、完了後に char アレイを通常のポインタとして解放することを試行し、bpcd によってクライアント側にコアダンプを発生させる場合があります。この bpcd インスタンスは一時的に作成されて正常に終了するため、機能は損なわれないはずです。親 bpcd には影響しません。 |
|
共有ドライブの構成ファイルと共有 AT を使用するクラスタに関する既知の問題 |
共有ドライブの構成ファイルと共有 AT を使用するクラスタに関する既知の問題があります。共有サービスの解除は、この共有ドライブがアクセス可能であるノードでのみ有効になります。解除は残りのノードでは失敗します。つまり、管理を行う bpnbaz -SetupMaster を実行している間は、リモートブローカーの個々の操作が失敗します。手動でパッシブノードを構成する必要があります。各パッシブノードで bpnbaz -SetupMedia を実行します。 |
|
NBAZDB をサポートするデータベースユーティリティに関する既知の問題 |
あるデータベースユーティリティが NBAZDB をサポートし、他のデータベースユーティリティはサポートしない既知の問題があります。 データベースユーティリティ nbdb_backup、nbdb_move、nbdb_ping、nbdb_restore、nbdb_admin は NBAZDB をサポートします。 ユーティリティ nbdb_unload と dbadm は NBAZDB をサポートしません。 |