Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第3章 システムの Up-to-Date の維持

本章では、セキュリティー更新がインストールされ、新たに更新されたパッケージによって導入された変更を適用し、セキュリティーアドバイザリーを追跡するために Red Hat カスタマーポータルを使用して、システムを最新の状態に維持するプロセスを説明します。

3.1. インストール済みのソフトウェアのメンテナンス

セキュリティー脆弱性が発見されると、潜在的なセキュリティーリスクを制限するために影響を受けるソフトウェアを更新する必要があります。ソフトウェアが、現在サポートされる Red Hat Enterprise Linux ディストリビューション内のパッケージの一部である場合、Red Hat は、脆弱性をできるだけ早く修正する更新されたパッケージをリリースするようコミットしています。
多くの場合、特定のセキュリティー攻撃に関する重要な点は、問題を修正するパッチ(またはソースコード)が含まれることがよくあります。その後、このパッチは Red Hat Enterprise Linux パッケージに適用され、エラータの更新としてテストされ、リリースされます。ただし、発表にパッチが含まれていない場合には、Red Hat 開発者が最初にソフトウェアのメンテナーと連携して、問題を修正します。問題が修正されたら、パッケージはエラータの更新としてテストされ、リリースされます。
システムで使用されるソフトウェアのエラータ更新がリリースされると、システムが脆弱になる可能性のある時間を最小限に抑えるために、影響を受けるパッケージを更新することが強く推奨されます。

3.1.1. セキュリティー更新の計画および設定

すべてのソフトウェアにはバグが含まれています。多くの場合、これらのバグにより、システムを悪意のあるユーザーに公開できる脆弱性が生じる可能性があります。更新されていないパッケージは、コンピューターの侵入の一般的な原因です。検出された脆弱性を素早く解くするために、セキュリティーパッチを適宜インストールする計画を実装し、悪用できません。
セキュリティー更新が利用可能な場合にテストし、インストール用にスケジュールします。追加のコントロールは、更新リリースとそのシステム上のインストールされるまでに、システムを保護する必要があります。これらのコントロールは脆弱性によって変わりますが、追加のファイアウォールルールや外部ファイアウォールの使用やソフトウェア設定の変更が含まれる可能性があります。
サポートされるパッケージのバグは、エラータメカニズムを使用して修正されます。エラータは、1 つ以上の RPM パッケージで構成されており、特定のエラータが処理する問題を簡単に説明しています。すべてのエラータは、Red Hat Subscription Management サービスを使用して有効なサブスクリプションがお客様に配布されます。セキュリティー問題に対応するエラータは、Red Hat セキュリティーアドバイザリー と呼ばれます。
セキュリティーエラータの使用方法は、「カスタマーポータルでセキュリティーアドバイザリーの表示」 を参照してください。RHN Classic からの移行方法など、Red Hat Subscription Management サービスの詳細は、Red Hat Subscription Management の関連ドキュメントを参照してください。

3.1.1.1. Yum のセキュリティー機能の使用

Yum パッケージマネージャーには、セキュリティー関連の機能の一部が含まれており、セキュリティーエラータの検索、一覧表示、表示、インストールに使用できます。これらの機能により、Yum を使用して何もインストールしませんが、セキュリティー更新をインストールすることもできます。
システムで利用可能なセキュリティー関連の更新を確認するには、root で次のコマンドを実行します。
~]# yum check-update --security
Loaded plugins: langpacks, product-id, subscription-manager
rhel-7-workstation-rpms/x86_64                  | 3.4 kB  00:00:00
No packages needed for security; 0 packages available
上記のコマンドは非対話モードで実行されるため、利用できる更新があるかどうかを自動チェックスクリプトで使用できます。利用可能なセキュリティー更新がない場合、コマンドは 100 の終了値を返し、存在しない場合は 0 を返します。エラーの発生時には、1 を返します。
同様に、以下のコマンドを使用してセキュリティー関連の更新のみをインストールします。
~]# yum update --security
updateinfo サブコマンドを使用して、利用可能な更新に関するリポジトリーが提供する情報を表示または動作します。updateinfo サブコマンド自体は、セキュリティー関連の用途に関連する多くのコマンド(一部のコマンド)を受け入れます。このコマンドの概要は、表3.1「yum updateinfo で使用可能なセキュリティー関連のコマンド」 を参照してください。

表3.1 yum updateinfo で使用可能なセキュリティー関連のコマンド

Command 説明  
advisory [advisories] 1 つ以上のアドバイザリーに関する情報を表示します。アドバイザリーを、アドバイザリーの数または数値に置き換えます。 
cves CVE (Common Vulnerabilities and Exposures)に関連する情報のサブセットを表示します。 
セキュリティーまたは セキュリティー関連のすべての情報を表示します。 
severity [severity_level] or sev [severity_level] 指定の severity_level のセキュリティー関連パッケージに関する情報を表示します。 

3.1.2. パッケージの更新およびインストール

システムでソフトウェアを更新する場合は、信頼できるソースから更新をダウンロードしておくことが重要です。攻撃者は、問題を修正する必要があるものと同じバージョン番号でパッケージを再構築することはできますが、インターネット上で別のセキュリティー攻撃とリリースを行う可能性があります。この場合は、元の RPM に対してファイルを検証など、セキュリティー対策を使用しても、悪用は検出されません。そのため、Red Hat からなどの信頼できるソースから RPM のみをダウンロードし、パッケージ署名を確認してその整合性を検証することは非常に重要です。
Yum パッケージマネージャーの使用方法に関する詳細は、『Red Hat Enterprise Linux 7 システム管理者のガイド』の Yum の章を参照してください

3.1.2.1. 署名済みパッケージの確認

すべての Red Hat Enterprise Linux パッケージは Red Hat GPG キーで署名されます。GPG は、分散ファイルの信頼性を確保する際に使用する無料のソフトウェアパッケージである GNU Privacy Guard または GnuPG を表します。パッケージ署名の検証に失敗した場合は、パッケージが変更される可能性があるため、信頼できない可能性があります。
Yum パッケージマネージャーは、インストールまたはアップグレードを行う全パッケージの自動検証を許可します。この機能はデフォルトで有効になっています。システムでこのオプションを設定するには、/etc/yum.conf 設定ファイルで gpgcheck 設定ディレクティブが 1 に設定されていることを確認します。
以下のコマンドを使用して、ファイルシステムのパッケージファイルを手動で確認します。
rpmkeys --checksig package_file.rpm
Red Hat のパッケージ署名プラクティスに関する詳細は、Red Hat カスタマーポータルの「Product Signing(GPG)Keys 」のアーティクルを参照してください。

3.1.2.2. 署名パッケージのインストール

ファイルシステムから検証済みのパッケージをインストールする(パッケージの検証方法は 「署名済みパッケージの確認」 を参照)、以下のように root ユーザーで yum install コマンドを使用します。
yum install package_file.rpm
シェル glob を使用して、一度に複数のパッケージをインストールします。たとえば、以下のコマンドは、現在のディレクトリーに all.rpm パッケージをインストールします。
yum install *.rpm
重要
セキュリティーエラータをインストールする前に、エラータレポートに含まれる特別な手順を確認し、適切に実行してください。エラータ更新による変更の適用に関する一般的な手順は、「Installed Updates による変更の適用」 を参照してください。

3.1.3. Installed Updates による変更の適用

セキュリティーエラータと更新をダウンロードおよびインストールしたら、古いソフトウェアの使用を停止して、新しいソフトウェアの使用を開始することが重要になります。実施方法は、更新されたソフトウェアの種類によって異なります。以下のリスト項目は、ソフトウェアの一般的なカテゴリーをまとめ、パッケージのアップグレード後に更新されたバージョンを使用する手順を説明します。
注記
通常、システムを再起動する方法は、ソフトウェアパッケージの最新版が使用されることを確認する方法になります。ただし、このオプションは常に必要ではなく、システム管理者であれば常に利用できる訳ではありません。
アプリケーション
ユーザー空間アプリケーションは、ユーザーが開始できるプログラムです。通常、このようなアプリケーションは、ユーザー、スクリプト、または自動タスクユーティリティーを起動する場合にのみ使用されます。
このようなユーザー空間アプリケーションが更新されたら、システム上のアプリケーションのインスタンスをすべて停止し、更新されたバージョンを使用するようにプログラムを再度起動します。
カーネル
カーネルは、Red Hat Enterprise Linux 7 オペレーティングシステムのコアソフトウェアコンポーネントです。メモリー、プロセッサー、周辺へのアクセスを管理し、すべてのタスクをスケジュールします。
その中央ロールが原因で、コンピューターをリブートせずにカーネルを再起動することはできません。したがって、システムを再起動するまで、カーネルの更新バージョンは使用できません。
KVM
qemu-kvm および libvirt パッケージが更新されると、すべてのゲスト仮想マシンを停止し、関連する仮想化モジュールを再読み込み(またはホストシステムを再起動する)し、仮想マシンを再起動する必要があります。
lsmod コマンドを使用して、読み込まれたモジュール(kvm、kvm -intel、または kvm-amd )を特定します次に、modprobe -r コマンドを使用して modprobe -a コマンドを削除して、影響を受けるモジュールを再読み込みします。fox の例:
~]# lsmod | grep kvm
kvm_intel             143031  0
kvm                   460181  1 kvm_intel
~]# modprobe -r kvm-intel
~]# modprobe -r kvm
~]# modprobe -a kvm kvm-intel
共有ライブラリ
共有ライブラリーは、多数のアプリケーションやサービスが使用する glibc などのコードの単位です。共有ライブラリーを使用するアプリケーションは通常、アプリケーションが初期化される際に共有コードを読み込むため、更新されたライブラリーを使用するアプリケーションを停止して再起動する必要があります。
特定のライブラリーに対して実行中のアプリケーションリンクを確認するには、lsof コマンドを使用します。
lsof library
たとえば、libwrap.so.0 ライブラリーに対して実行中のアプリケーションリンクを確認するには、以下を入力します。
~]# lsof /lib64/libwrap.so.0
COMMAND     PID USER  FD   TYPE DEVICE SIZE/OFF     NODE NAME
pulseaudi 12363 test mem    REG  253,0    42520 34121785 /usr/lib64/libwrap.so.0.7.6
gnome-set 12365 test mem    REG  253,0    42520 34121785 /usr/lib64/libwrap.so.0.7.6
gnome-she 12454 test mem    REG  253,0    42520 34121785 /usr/lib64/libwrap.so.0.7.6
このコマンドは、ホストアクセス制御に TCP ラッパーを使用する実行中のプログラムの一覧を返します。そのため、tcp_wrappers パッケージの更新時にリストされているプログラムは停止し、再起動する必要があります。
Systemd サービス
systemd サービスは通常、システムの起動プロセス中に起動する永続サーバープログラムです。systemd サービスの例には sshd または vsftpd が含まれます。
通常、これらのプログラムはマシンが実行している限りメモリーで持続するため、更新された各 systemd サービスは停止し、パッケージのアップグレード後に再起動する必要があります。これは、systemctl コマンドを使用して、root ユーザーとして実行できます。
systemctl restart service_name
service_name を、再起動するサービスの名前に置き換えます(例: sshd )。
他のソフトウェア
以下のリンクのリソースによって示される手順に従って、以下のアプリケーションを正しく更新します。

このページには機械翻訳が使用されている場合があります (詳細はこちら)。