導入ガイド

Red Hat Enterprise Linux 6

Red Hat Enterprise Linux 6 の導入、設定、管理

エディッション 4

Jaromír Hradílek

Red Hat エンジニアリングコンテンツサービス

Douglas Silas

Red Hat エンジニアリングコンテンツサービス

Martin Prpič

Red Hat エンジニアリングコンテンツサービス

Stephen Wadeley

Red Hat エンジニアリングコンテンツサービス

Eva Kopalová

Red Hat エンジニアリングコンテンツサービス

Ella Deon Lackey

Red Hat エンジニアリングコンテンツサービス

Tomáš Čapek

Red Hat エンジニアリングコンテンツサービス

Petr Kovář

Red Hat エンジニアリングコンテンツサービス

Miroslav Svoboda

Red Hat エンジニアリングコンテンツサービス

Petr Bokoč

Red Hat エンジニアリングコンテンツサービス

Florian Nadge

Red Hat エンジニアリングコンテンツサービス

John Ha

Red Hat エンジニアリングコンテンツサービス

David O'Brien

Red Hat エンジニアリングコンテンツサービス

Michael Hideo

Red Hat エンジニアリングコンテンツサービス

Don Domingo

Red Hat エンジニアリングコンテンツサービス

概要

本 『導入ガイド』 は Red Hat Enterprise Linux 6 の導入、設定、管理の関連情報について説明しています。本書は、システムに関する基本的な理解をお持ちのシステム管理者を対象としています。

前書き

本 『導入ガイド』 は、Red Hat Enterprise Linux 6 システムをご希望のニーズに合わせてカスタマイズする方法について説明しています。システムを設定/カスタマイズするにあたり総合的なタスク指向のガイドをお探しの場合は、本マニュアルを是非ご活用下さい。
本マニュアルでは、以下のような多くの中級レベルのトピックについて説明しています。
  • グラフィカルパッケージマネージャーの PackageKit とコマンドラインの Yum パッケージマネージャーを使用したパッケージのインストールと管理
  • ネットワークの設定 — NetworkManager を使用したイーサネット接続の確立から、サーバー帯域幅を増加させるためのチャンネルボンディングインターフェースの設定
  • DHCPBINDApache HTTP サーバーPostfixSendmail 及び他のエンタープライズクラスのサーバーとソフトウェアの設定
  • Automatic Bug Reporting Tool (自動バグ報告ツール) を使用したユーザー領域のクラッシュデータや kdump を使ったカーネル領域のクラッシュデータなど、システムに関する情報の収集
  • 簡単なカーネルモジュールの使用とカーネルのアップグレード

1. 本書の対象読者

本 『導入ガイド』 では、読者が Red Hat Enterprise Linux オペレーティングシステムについて基本的な理解を持っていると仮定しています。本システムのインストールについては、Red Hat Enterprise Linux 6 インストールガイド を参照して下さい。

2. 本書を読むにあたって

本マニュアルは、大きく次のように分かれています。
パートI「システムの基本設定」
ここでは、キーボード設定、日付と時刻の設定、ユーザーとグループの管理、権限の取得など基本的なシステム管理タスクを取り上げます。
1章キーボード設定 では、基本的なキーボード設定について説明しています。キーボードのレイアウト変更、パネルへの Keyboard Indicator (キーボード表示器) アプレットの追加、強制的に定期休憩を設定する方法については、本章を参照して下さい。
2章日付と時刻の設定 では、システムの日付と時刻の設定について説明しています。日時設定を変更する場合や、リモートの NTP (Network Time Protocol: ネットワーク時刻プロトコル) サーバーを使って時計を同期するようにシステムを設定したい場合は、本章をお読み下さい。
3章ユーザーとグループの管理 では、グラフィカルユーザーインターフェースとコマンドラインでのユーザーとグループの管理について取り上げています。システム上でのユーザーとグループの管理、パスワードエージングの有効方法については、本章をお読み下さい。
4章権限の取得 では、管理者権限を取得する方法が説明されています。su および sudo コマンドの使用法に関しては、この章をお読みください。
パートII「パッケージ管理」
ここでは、製品サブスクリプションとエンタイトルメントに焦点を置きながら、グラフィカルパッケージ管理ツールである YumPackageKit スイートを使用した Red Hat Enterprise Linux でのソフトウェアパッケージの管理方法について説明します。
5章システム登録およびサブスクリプションの管理 は、Red Hat Enterprise Linux におけるサブスクリプション管理と利用可能な Red Hat サブスクリプションマネージャツールの概要を説明しています。システムの登録/登録解除、マシンのアクティベート、製品サブスクリプションとエンタイトルメントの処理方法について知りたい場合は、本章をお読み下さい。
6章Yum では、Yum パッケージマネージャーについて説明しています。コマンドラインでパッケージを検索/インストール/更新/アンインストールする方法については、本章を参照して下さい。
7章PackageKit は、グラフィカルパッケージ管理ツールの PackageKit スイートについて記載しています。グラフィカルユーザーインターフェースを使ってパッケージを検索/インストール/更新/アンインストールする方法を知りたい場合は、本章をお読み下さい。
パートIII「ネットワーキング」
ここでは、Red Hat Enterprise Linux でのネットワーク設定方法について紹介します。
8章NetworkManager では、NetworkManager と呼ばれる、ネットワークデバイスと接続を利用可能時に常にアクティブに保つ動的ネットワーク制御及び設定システムに焦点を置いています。本章では、NetworkManager デーモンの実行方法と通知スペースの該当するアプレットを使用したやりとりの方法について説明しています。
9章ネットワークインターフェース は、/etc/sysconfig/network-scripts/ ディレクトリにある様々なインターフェース設定ファイル、インターフェース制御スクリプト、ネットワーク機能ファイルについて取り上げます。ネットワークインターフェースを設定するためのこうしたファイルの使用方法については、本章を参照して下さい。
パートIV「インフラストラクチャのサービス」
ここでは、サービスとデーモンの設定、認証設定、リモートログインの有効方法について解説します。
10章サービスとデーモン では、ランレベルの概念、そのデフォルトを設定する方法について説明しています。また、各ランレベルで実行するサービスの設定、サービスを開始/停止/再起動する方法についても取り上げています。ご使用のシステムでサービスを管理する方法を知りたい場合は、本章をお読み下さい。
11章認証の設定 は、LDAP (Lightweight Directory Access Protocol: ライトウェイトディレクトリアクセスプロトコル)、NIS (Network Information Service: ネットワーク情報サービス) 及び Winbind のユーザーアカウントデータベースから取得したユーザー情報の設定方法を説明して、SSSD (System Security Services Daemon: システムセキュリティサービスデーモン) について紹介します。ご使用のシステムで認証設定が必要な場合は、本章をお読み下さい。
12章OpenSSH では、SSH プロトコルによるリモートログインを有効にする方法について説明しています。sshd サービスの設定、さらには sshscpsftp クライアントユーティリティに関する基本的な使用方法も取り上げています。マシンにリモートアクセスが必要な場合は、本章をお読み下さい。
パートV「サーバ−」
ここでは、Web サーバーの設定方法やネットワーク上でのファイルとディレクトリの共有方法など、サーバーに関連する様々なトピックについて説明します。
13章DHCP サーバー では、DHCP (Dynamic Host Configuration Protocol: 動的ホスト構成プロトコル) サーバーとクライアントのインストールについて説明しています。ご使用のシステムに DHCP を設定する必要がある場合は、本章をお読み下さい。
14章DNS サーバー では、DNS (Domain Name System: ドメインネームシステム) について紹介し、BIND DNS サーバーをインストール/設定/実行/管理する方法について説明しています。ご使用のシステムに DNS サーバーを設定する必要がある場合は、本章をお読み下さい。
15章Web サーバー では、Apache HTTP サーバー 2.2 と呼ばれる Apache Software Foundation が開発した、堅牢でフル装備のオープンソース Web サーバーについて重点を置き解説しています。ご使用のシステムに Web サーバーを設定したい場合は、本章をお読み下さい。
16章メールサーバー では、現在使用している最新の電子メールプロトコルや PostfixSendmailFetchmailProcmail など電子メールの送受信を行うプログラムについて説明しています。ご使用のシステムにメールサーバーを設定する場合は、本章をお読み下さい。
17章ディレクトリサーバー では、LDAPv2 及び LDAPv3 プロトコルのオープンソース実装である OpenLDAP 2.4 をインストール/設定する方法について取り上げます。本章をお読みいただくと、ご使用のシステムにディレクトリサーバーを設定することができます。
18章ファイルとプリントサーバー では、SMB (Server Message Block: サーバーメッセージブロック) プロトコルのオープンソース実装である Samba と Red Hat Enterprise Linux に同梱されているプライマリ FTP サーバーである vsftpd をインストール/設定する方法を紹介しています。加えて、プリンターを設定する Printer Configuration (プリンター設定) ツールの使用方法についても説明しています。ご使用のシステムにファイル/プリントサーバーを設定したい場合は、本章をお読み下さい。
パートVI「監視と自動化」
ここでは、システム管理者がシステムパフォーマンスのモニター、システムタスクの自動化、バグの報告を行うための各種ツールについて解説します。
19章システムモニタリングツール では、システムに関する重要な情報を取得するために使用するアプリケーションとコマンドを説明しています。不可欠なシステム情報の取得方法については、本章をお読み下さい。
20章ログファイルの表示と管理 では、rsyslog デーモンの設定の他、ログファイルを検索/表示/モニターする方法について説明しています。ログファイルの使用方法については、本章を参照して下さい。
21章システムタスクの自動化 は、cronat 及び batch ユーティリティの概要を記載しています。自動化タスクを実行するためのこうしたユーティリティの使用方法については、本章をお読み下さい。
22章自動バグ報告ツール (ABRT) では、クラッシュデータを収集し、関連する問題トラッカーにレポートを送信する ABRT と呼ばれるシステムサービスとツールセットについて重点的に説明しています。ご使用のシステムで ABRT を使用する方法については、本章をお読み下さい。
23章OProfile では、オーバーヘッドが低いシステム全体のパフォーマンスをモニターするツールである OProfile を取り上げます。ご使用のシステムでの OProfile の使用方法については、本章をお読み下さい。
パートVII「カーネル、モジュール、及びドライバーの設定」
ここでは、管理者がカーネルをカスタマイズする場合に役立つ様々なツールを取り上げます。
24章手動のカーネルアップグレード は、yum の代わりに rpm コマンドを使用してカーネルパッケージを手動で更新する方法に関する重要な情報を記載しています。Yum パッケージマネージャーでカーネルパッケージを更新できない場合は、本章をお読み下さい。
25章カーネルモジュールでの作業 では、カーネルモジュール及びその依存関係を表示/クエリ/ロード/アンロードする方法の他、モジュールパラメーターの設定方法について説明しています。さらに、複数のイーサネットカードの使用やチャンネルボンディングの使用など、カーネルモジュール特有の機能についても取り上げています。カーネルモジュールを扱う場合は、本章をお読み下さい。
26章kdump クラッシュリカバリーサービス では、Red Hat Enterprise Linux で kdump サービスを設定/テスト/使用する方法について記載しています。また、それにより生じるコアダンプを crash デバッグユーティリティを使用して分析する方法の概要も示しています。ご使用のシステムで kdump を有効にしたい場合は、本章をお読み下さい。
付録A 一貫したネットワークデバイスの命名
本付録は、ネットワークインターフェース用の一貫性のあるネットワークデバイスの命名、より簡単にインターフェースを検索/識別できるようにシステム上のネットワークインターフェースの名前を変更する機能について取り上げています。本機能を有効/無効にする方法など詳細を知りたい場合は、本付録をお読み下さい。
付録B RPM
本付録は、Red Hat Enterprise Linux で採用されているオープンパッケージングシステムである RPM (RPM パッケージマネージャー) と rpm ユーティリティの使用について主に説明しています。 yum の代わりに rpm を使用する必要がある場合は、本付録をお読み下さい。
付録C X Window System
本付録では、Red Hat Enterprise Linux で採用されているグラフィカル環境の X Window System の設定について取り上げています。ご使用の X Window System の設定を調節する必要がある場合は、本付録をお読み下さい。
付録D sysconfig ディレクトリ
本付録では、/etc/sysconfig/ ディレクトリにある一部のファイル及びディレクトリについて概説しています。これらのファイルとディレクトリの機能やコンテンツの詳細が知りたい場合は、本付録をお読み下さい。
付録E proc ファイルシステム
本付録では、仮想ファイルシステムの概念、proc ファイルシステム (/proc/ ディレクトリ) 内にある最上位のファイルとディレクトリについて説明しています。このファイルシステムの詳細については、本付録を参照して下さい。

3. 謝辞

本書の一部は、最初に http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5/html/Deployment_Guide/index.html にある 『Deployment Guide (導入ガイド)』, copyright © 2007 Red Hat, Inc. に記載されました。
「Net-SNMP を使用したパフォーマンスのモニタリング」 は、Michael Solberg 氏が執筆した記事を基にしています。
本書を執筆するにあたり、以下の方々から多大なご協力をいただきました: Adam Tkáč、Andrew Fitzsimon、Andrius Benokraitis、Brian Cleary Edward Bailey、Garrett LeSage、Jeffrey Fearn、Joe Orton、Joshua Wulf、Karsten Wade、Lucy Ringland、Marcela Mašláňová、Mark Johnson、Michael Behm、Miroslav Lichvár、Radek Vokál、Rahul Kavalapara、Rahul Sundaram、Sandra Moore、Zbyšek Mráz、Jan Včelák、Peter Hutterer、James Antill 他、多数 (敬称略)。

パート I. システムの基本設定

ここでは、キーボード設定、日付と時刻の設定、ユーザーとグループの管理、権限の取得など基本的なシステム管理タスクを取り上げます。

第1章 キーボード設定

本章では、キーボードのレイアウトを変更する方法と Keyboard Indicator (キーボード表示器) アプレットをパネルに追加する方法について説明します。また、強制的に休憩を設定するオプション、それによるメリットとデメリットについても取り上げます。

1.1. キーボードレイアウトの変更

インストールプログラムにより、ご使用のシステム用にキーボードのレイアウトが設定されています。しかし、デフォルト設定が必ずしも現在のニーズに合うとは限りません。インストール後に違うキーボードのレイアウトを設定したい場合は、Keyboard Preferences (キーボードの設定) ツールを使用します。
キーボードのレイアウト設定 を開くには、パネルより System (システム)Preferences (設定)Keyboard (キーボード) の順に選択し、Layouts (レイアウト) タブをクリックします。
キーボードのレイアウト設定

図1.1 キーボードのレイアウト設定

使用できるレイアウトの一覧が表示されます。新規レイアウトを追加するには、一覧の下の 追加 ボタンをクリックします。追加したいレイアウトを選択する画面が表示されます。
レイアウトの選択

図1.2 レイアウトの選択

現時点では、キーボードのレイアウトを選択する方法は 2 つあります。関連する国から見つけるか (By country (国別) タブ)、言語から選択するか (By language (言語別) タブ) のどちらかです。いずれの場合も、最初に または 言語 のプルダウンメニューから希望する国か言語を選択します。次に、Variants (系列) メニューから系列を指定します。選択したら、レイアウトのプレビューは直ちに変更されます。選択を決定するには、追加 をクリックします。
デフォルトレイアウトの選択

図1.3 デフォルトレイアウトの選択

選択したレイアウトが一覧に表示されるはずです。それをデフォルト設定にするには、名前の横にあるラジオボタンを選択して下さい。変更は直ちに反映されます。ウィンドウの最下部にはテキストを入力できるフィールドがあるため、そこで安心して設定を試すことができます。選択したレイアウトでよければ、閉じる をクリックしてウィンドウを閉じます。
レイアウトのテスト

図1.4 レイアウトのテスト

注記

デフォルトでは、キーボードのレイアウトを変更するとアクティブなウィンドウのみで変更が反映されるようになっています。つまり、レイアウトを変更した後に別のウィンドウに切り替えると、この別のウィンドウでは前のレイアウトが適用されるため、混乱する場合があります。この機能をオフにするには、ウィンドウ毎にグループ化する チェックボックスからチェックマークを外して下さい。
ただこれには、図1.3「デフォルトレイアウトの選択」 で示されたようにラジオボタンを選択することで、デフォルトのレイアウトを選択できなくなるという欠点があります。選択したレイアウトをデフォルトにするには、一覧の冒頭へドラッグするだけで可能です。

1.2. キーボードレイアウト表示器の追加

現在使用しているキーボードのレイアウトを確認したい場合や、シングルクリックで異なるレイアウトに切り替わるようにするには、キーボード表示器 アプレットをパネルに追加します。そのためには、メインパネルの空いているスペースで右クリックし、プルダウンメニューから Add to Panel... (パネルへ追加...) オプションを選択します。
新規アプレットの追加

図1.5 新規アプレットの追加

利用可能なアプレットの一覧が表示されます。一覧をスクロールし (またはウィンドウの最上部にある検索フィールドに キーボード と入力し始める)、キーボード表示器 を選択して、追加 ボタンをクリックします。
キーボード表示器 の選択

図1.6 キーボード表示器 の選択

アプレットは直ちに表示され、現在のレイアウトと関連する短縮された国名が表示されます。実際の系列名を表示するには、アプレットのアイコン上にポインターを移動します。
キーボード表示器 アプレット

図1.7 キーボード表示器 アプレット

1.3. 一休みの設定

長時間タイプし続けることは疲れるだけでなく、手根管症候群など深刻な健康問題のリスクを高める恐れもあります。これを防ぐ方法として、強制的に入力を休憩するようにシステムを設定することができます。設定方法は、パネルから システム設定キーボード の順に選択し、一休み タブをクリックし、一休みに入ったら強制的に画面をロックする のチェックボックスにチェックマークを入れます。
一休みの設定

図1.8 一休みの設定

一休みの機能が強制実行されるまでの時間を調整するには、一休みの警告を出すまでの時間 ラベルの横にある上向き/下向きボタンをクリックします。休憩時間の長さを変更するには、一休みする時間 の設定を同じように変更します。最後に、作業を終わらせたい場合など休憩を先送りしたい場合には、一休みの延長を許可する チェックボックスにチェックマークを入れます。変更は直ちに反映されます。
休憩中

図1.9 休憩中

設定した制限時間に達すると、休憩するよう画面に通知が表示され、残りの休憩時間を表示した時計が現れます。 一休みの延長許可を有効にした場合は、Postpone Break (中断を延長する) ボタンが画面の右下隅に表示されます。

第2章 日付と時刻の設定

本章では Red Hat Enterprise Linux での手動、及び NTP (Network Time Protocol ネットワーク時刻プロトコル) を使用した、システムの日付と時刻の設定、さらには適切なタイムゾーンの設定について取り上げます。Date/Time Properties (日付/時刻のプロパティ) ツールを使用して日付と時刻を設定する方法、コマンドラインでそれを行う方法の 2 点について説明します。

2.1. 日付/時刻のプロパティのツール

日付/時刻のプロパティ ツールを使用すると、ユーザーはシステムの日付と時刻の変更、システムが使用するタイムゾーンの設定、タイムサーバーとシステムクロックが同期するようネットワーク時刻プロトコルデーモンの設定を行うことができます。このアプリケーションを使用するには、X Window System (このトピックの詳細については 付録C X Window System を参照) を実行している必要がある点に注意して下さい。
このツールを起動するには、パネルより System (システム)Administration (管理)Date & Time (日付と時刻) の順に選択するか、シェルプロンプト (xtermGNOME 端末) で system-config-date のコマンドを入力します。すでに認証されてない限りは、スーパーユーザーのパスワードを入力するよう求められます。
認証クエリ

図2.1 認証クエリ

2.1.1. 日付と時刻のプロパティ

図2.2「日付と時刻のプロパティ」 のとおり、日付/時刻のプロパティ ツールにはタブが 2 つあります。デフォルトでは、現在の日時設定があるタブが表示されます。
日付と時刻のプロパティ

図2.2 日付と時刻のプロパティ

手動でシステムを設定するには、以下の手順に従って下さい:
  1. 現在の日付を変更する。 月と年の左右にある矢印を使って、それぞれ変更します。次に、カレンダーの中で日付を選択します。
  2. 現在の時刻を変更する。 の横にある上下の矢印ボタンを使用するか、数字を直接変更します。
OK ボタンをクリックして変更を適用し、アプリケーションを終了します。

2.1.2. ネットワーク時刻プロトコルのプロパティ

自動設定にしたい場合は、Synchronize date and time over the network (ネットワーク上で日付と時刻を同期化します) というチェックボックスにチェックマークを入れて下さい。そうすると、利用可能な NTP サーバーの一覧が 図2.3「ネットワーク時刻プロトコルのプロパティ」 のように表示されます。
ネットワーク時刻プロトコルのプロパティ

図2.3 ネットワーク時刻プロトコルのプロパティ

ここで、事前定義済みのサーバーから 1 つ選択し、編集 ボタンをクリックして編集するか、追加 をクリックして新規サーバー名を追加することも可能です。Advanced Options (高度なオプション) では、サービスを開始する前にシステムクロックを同期したいか、ローカルタイムソースを使用したいかどうかを選択することもできます。

注記

ウィンドウの最下部にある OK ボタンをクリックして変更を確定するまで、システムは NTP サーバーとの同期を開始しません。
OK ボタンをクリックして、日付と時刻の設定への変更を適用して、アプリケーションを終了します。

2.1.3. タイムゾーンのプロパティ

システムのタイムゾーンを設定するには、 図2.4「タイムゾーンのプロパティ」 のように Time Zone (タイムゾーン) タブをクリックします。
タイムゾーンのプロパティ

図2.4 タイムゾーンのプロパティ

タイムゾーンを選択する一般的な方法としては、以下の 2 つがあります。
  1. インタラクティブマップを使用する。 マップの横にある “拡大”/“縮小” ボタンをクリックします。あるいは、マップ上でクリックして、選択した地域を拡大します。次に、希望するタイムゾーンに合う都市を選択します。赤い X が表示され、マップの下にある一覧内のタイムゾーンの選択肢が変更します。
  2. マップの下にある一覧を使用する。 選択しやすいように特定の大陸内で都市と国がグループ化されています。科学界のニーズに合うように、地理的ではないタイムゾーンも追加されている点に注意して下さい。
ご使用のシステムクロックが UTC を使用するよう設定するには、System clock uses UTC (システムクロックで UTC を使用) オプションを選択します。UTC は Universal Time, Coordinated (協定世界時) の略で、GMT(グリニッジ標準時) とも呼ばれます。他のタイムゾーンは UTC 時間にプラス/マイナスすることで割り出されます。
OK をクリックし変更を適用して、プログラムを終了します。

2.2. コマンドラインからの設定

ご使用のシステムに 日付/時刻のプロパティ ツールがインストールされていない場合や X Window Server が実行していない場合は、コマンドラインでシステムの日時を変更する必要があります。本項で説明する操作を行うには、スーパーユーザーとしてログインする必要がある点にご注意下さい:
~]$ su -
Password:

2.2.1. 日付と時刻の設定

スーパーユーザーは、date コマンドを使ってシステムの日時を手動で設定できます。
  1. 現在の日付を変更する ためには、シェルプロンプトで次の形式でコマンドを入力します。YYYY は 4 桁の年、MM は 2 桁の月、DD は 2 桁の日付に置き換えて下さい:
    ~]# date +%D -s YYYY-MM-DD
    例えば 2010 年 6 月 2 日と設定するには、以下のように入力します:
    ~]# date +%D -s 2010-06-02
  2. 現在の時刻を変更する ためには、次のコマンドを使用します。HH は時間、MM は分、SS は秒を表し、すべて 2 桁で入力します:
    ~]# date +%T -s HH:MM:SS
    システムクロックが UTC を使用するように設定するには、次のオプションを追加します:
    ~]# date +%T -s HH:MM:SS -u
    例えば UTC を使用してシステムクロックを 11:26 PM に設定するには、以下のように入力します:
    ~]# date +%T -s 23:26:00 -u
現在の設定を確認するには、引数なしで date と入力して下さい:

例2.1 現在日時の表示

~]$ date
Wed Jun  2 11:58:48 CEST 2010

2.2.2. ネットワーク時刻プロトコルの設定

前述した手動設定とは対照的に、ネットワーク時刻プロトコル (NTP) でリモートサーバーとシステムクロックを同期することもできます。1 回だけの同期の場合は、ntpdate コマンドを使用します。
  1. 最初に、選択した NTP サーバーがアクセス可能か確認します:
    ~]# ntpdate -q server_address
    例:
    ~]# ntpdate -q 0.rhel.pool.ntp.org
  2. 適切なサーバーが見つかったら、サーバーアドレスを 1 つ以上 ntpdate コマンドの後に付けて実行します:
    ~]# ntpdate server_address...
    例えば以下のようにします:
    ~]# ntpdate 0.rhel.pool.ntp.org 1.rhel.pool.ntp.org
    エラーメッセージが表示されない限り、システムの時刻は設定されているはずです。「日付と時刻の設定」 のように追加の引数を付けずに date と入力すると、現在の設定を確認できます。
  3. ほとんどの場合、上記のステップで十分です。常に正確な時刻を使用するシステムサービスが 1 つ以上必要な場合にのみ、ブート時の ntpdate の実行を有効にします:
    ~]# chkconfig ntpdate on
    システムサービスとその設定の詳細については、10章サービスとデーモン を参照して下さい。

    注記

    /var/log/boot.log システムログに関連するエラーメッセージが出るなど、ブート時にタイムサーバーとの同期が失敗し続ける場合は、次の行を /etc/sysconfig/network に追加してみて下さい:
    NETWORKWAIT=1
ただし、ブート時に時刻を自動的に同期するためのより便利な方法は ntpd デーモンを設定することです。
  1. vinano などのテキストエディターで NTP 設定ファイル /etc/ntp.conf を開きます。該当ファイルがない場合は、新しく作成して下さい:
    ~]# nano /etc/ntp.conf
  2. 次に、パブリック NTP サーバーの一覧を追加/編集します。Red Hat Enterprise Linux 6 を使用している場合は、次の行がファイルにすでに含まれているはずですが、ニーズに合うように自由に追加/変更して下さい:
    server 0.rhel.pool.ntp.org
    server 1.rhel.pool.ntp.org
    server 2.rhel.pool.ntp.org

    注記

    初期同期を迅速にするには、サーバーの各行の最後に iburst 指示文を追加します:
    server 0.rhel.pool.ntp.org iburst
    server 1.rhel.pool.ntp.org iburst
    server 2.rhel.pool.ntp.org iburst
  3. サーバーの一覧での作業が完了したら、同じファイルで適切なパーミッションを設定し、ローカルホストのみに無制限アクセスを付与します:
    restrict default kod nomodify notrap nopeer noquery
    restrict -6 default kod nomodify notrap nopeer noquery
    restrict 127.0.0.1
    restrict -6 ::1
  4. すべての変更を保存し、エディターを終了してから NTP デーモンを再起動します:
    ~]# service ntpd restart
  5. ntpd デーモンがブート時に開始していることを確認して下さい:
    ~]# chkconfig ntpd on

第3章 ユーザーとグループの管理

ユーザーとグループの制御は、Red Hat Enterprise Linux システムと管理の中核となる要素です。本章は、グラフィカルユーザーインターフェース及びコマンドライン上でユーザーとグループを追加/管理/削除する方法について説明し、パスワードエージングの有効化やグループディレクトリの作成などの高度なトピックを扱います。

3.1. ユーザーとグループの概要

ユーザーは、人 (実在のユーザーに関連するアカウントの意味) か、使用する特定のアプリケーション用に存在するアカウントであるのに対して、グループは共通目的のためにユーザーを統合して組織を論理的に表現したものです。グループ内のユーザーは、そのグループが所有するファイルの読み取り/書き込み/実行を行うことができます。
各ユーザーは、ユーザー ID (UID) と呼ばれる一意の数値型の識別番号に関連付けられています。同様に、各グループは グループ ID (GID) に関連付けられています。ファイルを作成するユーザーは、そのファイルの所有者でありグループ所有者でもあります。ファイルには所有者、グループ、その他に対して読み取り/書き込み/実行のパーミッションが別々に割り当てられます。ファイルの所有者は root のみ変更することができます。アクセスパーミッションは root ユーザーとファイルの所有者とも変更できます。
さらに、Red Hat Enterprise Linux はファイルとディレクトリに対する アクセス制御リスト (ACL) をサポートしています。これにより、所有者以外の特定のユーザーにパーミッションを設定することができます。この機能の詳細については、Storage Administration Guide (ストレージ管理ガイド)Access Control Lists (アクセス制御リスト) の章を参照して下さい。

3.1.1. ユーザープライベートグループ

Red Hat Enterprise Linux では、UPG (ユーザープライベートグループ) スキームを使用するため、UNIX グループを簡単に管理することができます。ユーザープライベートグループは、新規ユーザーがシステムに追加される度に作成されます。ユーザープライベートグループは作成されたユーザーと同じ名前を持ち、そのユーザーがそのユーザープライベートグループの唯一のメンバーです。
ユーザープライベートグループを使用すると、新規作成されたファイルやディレクトリに対し安全にデフォルトのパーミッションを設定することができます。また、ユーザー及び そのユーザーのグループ 双方とも、ファイルやディレクトリを修正できます。
新規作成されたファイルやディレクトリに適用するパーミッションを決定する設定は、umask と呼ばれる /etc/bashrc ファイルで設定されます。従来 UNIX システムでは、umask022 に設定されており、ファイルやディレクトリを作成したユーザーのみが修正できるようになっています。このスキームでは、作成者のグループのメンバーを含め 他のどのユーザーも修正を行うことはできません。一方、UPG スキームではどのユーザーもそれぞれ独自のプライベートグループを持っているため、この グループ保護 は必要ありません。

3.1.2. シャドウパスワード

マルチユーザー環境では、shadow-utils パッケージにより提供される シャドウパスワード を使用することが非常に重要です。これを使用することで、システムの認証ファイルのセキュリティを強化できます。このため、インストールプログラムによりシャドウパスワードはデフォルト設定で有効になっています。
以下は、UNIX ベースシステムでパスワードを格納する従来の方法と比べた場合のシャドウパスワードの利点です。
  • シャドウパスワードは、暗号化されたパスワードハッシュをあらゆるユーザーから読み取り可能な /etc/passwd ファイルから root ユーザーのみが読み取り可能な /etc/shadow に移動することで、システムセキュリティを向上します。
  • シャドウパスワードは、パスワードエージングに関する情報を保存します。
  • シャドウパスワードを使用すると、/etc/login.defs ファイルはセキュリティポリシーを強制できます。
shadow-utils パッケージにより提供される大半のユーティリティは、シャドウパスワードが有効かどうかに関わらず適切に動作します。ただし、パスワードエージングの情報は /etc/shadow ファイルにのみ格納されているため、パスワードエージングの情報を作成/修正するコマンドはいずれも機能しません。以下は、最初にシャドウパスワードを有効にしなければ機能しないユーティリティとコマンドの一覧です。
  • chage ユーティリティ
  • gpasswd ユーティリティ
  • -e または -f オプションを付けた usermod コマンド
  • -e または -f オプションを付けた useradd コマンド

3.2. ユーザー管理ツールの使用

ユーザー管理 のアプリケーションを使用すると、グラフィカルユーザーインターフェース上でローカルユーザー及びグループを表示/修正/追加/削除することができます。ユーザー管理 を起動するには、パネルから システム管理ユーザーとグループ の順にクリックします。別の方法として、シェルプロンプトで system-config-users と入力することも可能です。スーパーユーザー権限を持っていない場合は、アプリケーションは root として認証するようプロンプトします。

3.2.1. ユーザーとグループの表示

ユーザー管理 の主要ウィンドウは、2 つのタブに分かれています。ユーザー タブは、ローカルユーザーのユーザー ID、プライマリグループ、ホームディレクトリ、ログインシェル、氏名などの追加情報を含んだローカルユーザーの一覧を表示します。グループ タブは、ローカルグループのグループ ID とグループメンバーに関する情報を含むローカルグループの一覧を表示します。
ユーザーとグループの表示

図3.1 ユーザーとグループの表示

特定のユーザーやグループを検索したい場合は、フィルターの探索 フィールドに検索したい名前の最初の数文字を入力します。そして、Enter を押すか フィルターの適用 ボタンをクリックします。また、いずれかのカラムのヘッダーをクリックするとそのカラムに従って項目を並び替えることもできます。
Red Hat Enterprise Linux は、システムユーザーとグループ用に 500 より小さい数字のユーザー ID とグループ ID を保有しています。デフォルトでは、ユーザー管理 はシステムユーザーを表示しません。すべてのユーザーとグループを表示するには、編集設定 の順に選択して、個人設定 のダイアログボックスを開きます。そして、システムユーザーとグループを非表示 のチェックマークを外します。

3.2.2. 新規ユーザーの追加

新規ユーザーを追加するには、ユーザーを追加 ボタンをクリックします。図3.2「新規ユーザーの追加」 のようなウィンドウが表示されます。
新規ユーザーの追加

図3.2 新規ユーザーの追加

新規ユーザーの追加 ダイアログボックスを使用して、新規作成するユーザーに関する情報を入力できます。ユーザーを作成するには、該当フィールドにユーザー名と氏名を入力して、パスワードパスワードの確認 フィールドにユーザーのパスワードを入力します。パスワードは 6 文字以上でなくてはなりません。

注記

できるだけ長いパスワードを使用することをお勧めします。長いパスワードを使用することで、侵入者がパスワードを推測してパーミッションなくアカウントにアクセスしにくくできます。また、辞書に載っている単語をベースとするパスワードは避け、文字や数字、特殊文字を組み合わせることが推奨されます。
ログインシェル プルダウンの一覧から、ユーザー用のログインシェルを選択できます。どのシェルを選択すべきか不明な場合は、デフォルト値である /bin/bash を使用して下さい。
デフォルトでは、ユーザー管理 アプリケーションは新規ユーザー用のホームディレクトリを /home/username/ 内に作成します。ホームディレクトリを作成しないようにするには、ホームディレクトリの作成 チェックボックスのチェックを外すか、ホームディレクトリ テキストボックスの内容を編集してディレクトリを変更します。ホームディレクトリが作成されると、デフォルトの設定ファイルが /etc/skel/ ディレクトリからそこへコピーされます。
Red Hat Enterprise Linux は、ユーザープライベートグループ (UPG) スキームを使用します。新規ユーザーを作成する度に、デフォルトによりそのユーザーと同じ名前を持つ一意のグループが作成されます。このグループを作成したくない場合は、ユーザー用にプライベートグループを作成 からチェックマークを外して下さい。
ユーザー用のユーザー ID を指定するには、ユーザー ID を手動で指定 を選択します。そのオプションが選択されていない場合は、500 より大きい数字の使用可能なユーザー ID が新規ユーザーに割り当てられます。Red Hat Enterprise Linux は、システムユーザー用に 500 より小さい数字のユーザー ID を保有しているため、1 から 499 の数字のユーザー ID を手動で割り当てることは推奨されません。
OK ボタンをクリックすると、新規ユーザーが作成されます。パスワードの有効期限などさらに高度なユーザープロパティを設定するには、ユーザーの追加後にそのプロパティを編集します。

3.2.3. 新規グループの追加

新規ユーザーグループを追加するには、ツールバーから グループを追加 を選択します。図3.3「新規グループ」 に似たウィンドウが表示されますので、新規グループの名前を入力します。そのグループ用のグループ ID を指定するには、グループ ID を手動で指定 にチェックマークを入れて、GID を選択します。Red Hat Enterprise Linux はシステムグループ用に 500 より小さい数字のグループ ID を保有している点に注意して下さい。
新規グループ

図3.3 新規グループ

OK をクリックするとグループが作成され、グループ一覧に表示されます。

3.2.4. ユーザープロパティの変更

既存ユーザーのプロパティを表示するには、ユーザー タブをクリックし、ユーザーの一覧から該当するユーザーをクリックし、メニューから プロパティ をクリック (またはプルダウンメニューから ファイルプロパティ の順に選択) します。図3.4「ユーザープロパティ」 に似たウィンドウが表示されます。
ユーザープロパティ

図3.4 ユーザープロパティ

ユーザープロパティ ウィンドウは複数のタブページに分かれています。
  • ユーザーデータ — ユーザーの追加時に設定する基本情報を示しています。このタブを使用すると、ユーザーの氏名、パスワード、ホームディレクトリ、ログインシェルを変更できます。
  • アカウント情報 — 特定の日にアカウントを失効させたい場合は アカウント失効を有効にする を選択します。表示されたフィールドに日付を入力します。ユーザーアカウントをロックしてユーザーがシステムにログインできないようにするには、ローカルパスワードがロックされています にチェックマークを入れて下さい。
  • パスワード情報 — ユーザーのパスワードが最後に変更された日を表示します。一定の日数が経過した後にユーザーがパスワードを変更するよう強制的に設定するには、パスワード失効を有効にする を選択して、変更が要求されるまでの日数 フィールドに希望する値を入力します。ユーザーのパスワードが失効するまでの日数、ユーザーがパスワードを変更するよう警告されるまでの日数、アカウントが無効になるまでの日数はすべて変更できます。
  • グループ — ユーザーのプライマリグループ、さらにはユーザーをメンバーにしたい他のグループも表示/設定することができます。

3.2.5. グループプロパティの変更

既存グループのプロパティを表示するには、グループ一覧から該当するグループを選択し、メニューから プロパティ をクリックします (またはプルダウンメニューから ファイルプロパティ の順に選択します)。図3.5「グループのプロパティ」 に似たウィンドウが表示されます。
グループのプロパティ

図3.5 グループのプロパティ

グループユーザー タブはグループのメンバーであるユーザーを表示します。このタブを使って、グループに対してユーザーの追加/削除を行います。OK をクリックし、変更を保存します。

3.3. コマンドラインツールの使用

Red Hat Enterprise Linux でユーザーを管理する最も簡単な方法は、「ユーザー管理ツールの使用」 で説明のとおり ユーザー管理 アプリケーションを使用することです。しかし、コマンドラインツールを好む場合や X Window System がインストールされていない場合には、表3.1「ユーザーとグループを管理するためのコマンドラインユーティリティ」 に一覧表示されているコマンドラインユーティリティを使用することができます。

表3.1 ユーザーとグループを管理するためのコマンドラインユーティリティ

ユーティリティ 詳細
useradd, usermod, userdel ユーザーアカウントを追加/修正/削除するための標準ユーティリティです。
groupadd, groupmod, groupdel グループを追加/修正/削除するための標準ユーティリティです。
gpasswd /etc/group 設定ファイルを管理するための標準ユーティリティです。
pwck, grpck パスワード、グループ、関連シャドウファイルを検証するためのユーティリティです。
pwconv, pwunconv 通常のパスワードをシャドウパスワードに変換するため、または逆にシャドウパスワードから通常のパスワードに変換するためのユーティリティです。

3.3.1. 新規ユーザーの追加

システムにユーザーを追加するには、root としてシェルプロンプトで以下を入力します:
useradd [options] username
options表3.2「useradd のコマンドラインオプション」 で説明のとおり、コマンドラインのオプションです。
デフォルトでは、useradd コマンドはロックされたユーザーアカウントを作成します。アカウントのロックを解除するには、root として以下のコマンドを実行して、パスワードを割り当てます:
passwd username
オプションとして、パスワードエージングポリシーを設定することもできます。パスワードエージングを有効にする方法については、『Red Hat Enterprise Linux 6 Security Guide』 を参照してください。

表3.2 useradd のコマンドラインオプション

オプション 詳細
-c 'comment' comment はあらゆる文字列と置換できます。このオプションは、通常ユーザーの氏名を指定するために使用されます。
-d home_directory デフォルトの /home/username/ の代わりに使用するホームディレクトリです。
-e date YYYY-MM-DD の形式でアカウントを無効にする日付です。
-f days パスワードが失効してからアカウントが無効になるまでの日数です。0 を指定すると、パスワードが失効した直後にアカウントは無効になります。-1 を指定すると、パスワードが失効した後でもアカウントは無効になりません。
-g group_name ユーザーのデフォルトグループ用のグループ名またはグループ番号です。グループはここで指定される以前から存在していなければなりません。
-G group_list ユーザーがメンバーとなる追加 (デフォルト以外) のグループ名またはグループ番号の一覧で、カンマで区切られています。グループはここで指定される以前から存在していなければなりません。
-m ホームディレクトリが存在しない場合は作成します。
-M ホームディレクトリを作成しません。
-N ユーザー用のユーザープライベートグループを作成しません。
-p password crypt で暗号化されたパスワードです。
-r UID が 500 より小さく、ホームディレクトリがないシステムアカウントを作成します。
-s ユーザーのログインシェルです。デフォルトでは /bin/bash に設定されています。
-u uid ユーザーのユーザー ID です。一意の番号で 499 より大きい数でなければなりません。

プロセスの説明

以下のステップは、シャドウパスワードが有効なシステム上で useradd juan コマンドを実行したときに発生する内容を解説したものです:
  1. /etc/passwdjuan の新しい行が作成されます:
    juan:x:501:501::/home/juan:/bin/bash
    この行には以下の特徴があります。
    • ユーザー名 juan で始まります。
    • パスワードフィールドには x があり、システムがシャドウパスワードを使用していることを示しています。
    • 499 より大きい数字の UID が作成されます。Red Hat Enterprise Linux では、500 より小さい数字の UID はシステム使用のために保有されています。これらはユーザー用には割り当てないことをお勧めします。
    • 499 より大きい数字の GID が作成されます。Red Hat Enterprise Linux では、500 より小さい数字の GID はシステム使用のために保有されています。これらはユーザー用には割り当てないことをお勧めします。
    • オプションの GECOS 情報は空白のままです。GECOS フィールドは、氏名や電話番号などユーザーの追加情報を提供するために使用されます。
    • juan のホームディレクトリは /home/juan/ に設定されています。
    • デフォルトのシェルは /bin/bash に設定されています。
  2. juan 用の新しい行が /etc/shadow に作成されます:
    juan:!!:14798:0:99999:7:::
    この行には以下の特徴があります。
    • ユーザー名 juan で始まります。
    • 2 つの感嘆符 (!!) が /etc/shadow ファイルのパスワードフィールドに表示され、アカウントがロックされます。

      注記

      暗号化されたパスワードが -p フラグを使用して渡される場合、/etc/shadow ファイル内のユーザー用の新しい行に置かれます。
    • パスワードは有効期限なしに設定されています。
  3. juan というグループ用の新しい行が /etc/group に作成されます:
    juan:x:501:
    ユーザーと同じ名前のグループは、ユーザープライベートグループ と呼ばれます。ユーザープライベートグループの詳細については 「ユーザープライベートグループ」 を参照して下さい。
    /etc/group に作成された行には、以下の特徴があります。
    • グループ名 juan で始まります。
    • パスワードフィールドに x が表示され、システムがシャドウグループパスワードを使用していることを示しています。
    • GID は /etc/passwd 内に表示されているユーザー juan の GID と一致します。
  4. juan というグループ用の新しい行が /etc/gshadow に作成されます:
    juan:!::
    この行には以下の特徴があります。
    • グループ名 juan で始まります。
    • 1 つの感嘆符 (!) が /etc/gshadow ファイルのパスワードフィールドに表示され、グループがロックされます。
    • その他のフィールドはすべて空白です。
  5. ユーザー juan 用のディレクトリが /home/ ディレクトリ内に作成されます:
    ~]# ls -l /home
    total 4
    drwx------. 4 juan juan 4096 Mar  3 18:23 juan
    このディレクトリは、ユーザー juan とグループ juan が所有しています。ユーザー juanのみ 読み取り書き込み 及び 実行 の権限が与えられています。その他のパーミッションはすべて拒否されます。
  6. /etc/skel/ ディレクトリ (デフォルトのユーザー設定を含む) 内のファイルが、新しい /home/juan/ ディレクトリにコピーされます:
    ~]# ls -la /home/juan
    total 28
    drwx------. 4 juan juan 4096 Mar  3 18:23 .
    drwxr-xr-x. 5 root root 4096 Mar  3 18:23 ..
    -rw-r--r--. 1 juan juan   18 Jun 22  2010 .bash_logout
    -rw-r--r--. 1 juan juan  176 Jun 22  2010 .bash_profile
    -rw-r--r--. 1 juan juan  124 Jun 22  2010 .bashrc
    drwxr-xr-x. 2 juan juan 4096 Jul 14  2010 .gnome2
    drwxr-xr-x. 4 juan juan 4096 Nov 23 15:09 .mozilla
この時点で、juan と呼ばれるロックされたアカウントがシステム上に存在します。管理者は、これをアクティベートするには passwd コマンドを使用してアカウントにパスワードを割り当てる必要があります。パスワードエージングのガイドラインを設定するというオプションもあります。

3.3.2. 新規グループの追加

システムに新規グループを追加するには、root としてシェルプロンプトで以下を入力します:
groupadd [options] group_name
options は、表3.3「groupadd のコマンドラインオプション」 で説明のとおりコマンドラインオプションです。

表3.3 groupadd のコマンドラインオプション

オプション 詳細
-f, --force -g gid と共に使用され gid がすでに存在している場合、groupadd はグループ用に別の一意の gid を選択します。
-g gid グループのグループ ID です。一意の番号で 499 より大きい数でなければなりません。
-K, --key key=value /etc/login.defs のデフォルトを上書きします。
-o, --non-unique グループの複製を許可します。
-p, --password password 新規グループ用にこの暗号化されたパスワードを使用します。
-r GID が 500 より小さいシステムグループを作成します。

3.3.3. グループディレクトリの作成

システム管理者は、通常それぞれの主要なプロジェクトごとにグループを作成し、そのプロジェクトのファイルにアクセスする必要がある場合に人をグループに割り当てる傾向があります。こうした従来型のスキームの場合、誰かがファイルを作成すると、ファイルはその人が属するプライマリグループに関連付けられるため、ファイル管理は困難です。1 人が複数のプロジェクトに関わっている場合、正しいファイルを正しいグループに関連付けることは難しくなります。一方で、UPG スキームを使用すると、グループは setgid ビットセットを持つディレクトリ内に作成されたファイルに自動的に割り当てられます。setgid ビットにより、共通のディレクトリを共有するグループプロジェクトを非常に簡単に管理することができます。これは、ユーザーがディレクトリ内で作成するすべてのファイルは、ディレクトリを所有するグループが所有するためです。
例えば、あるグループが /opt/myproject/ ディレクトリ内のファイルで作業する必要があるとします。グループの中にはこのディレクトリのコンテンツの修正を信頼して任せられる人もいますが、全員ではありません。
  1. root としてシェルプロンプトで以下を入力して、/opt/myproject/ ディレクトリを作成します:
    mkdir /opt/myproject
  2. システムに myproject グループを追加します:
    groupadd myproject
  3. /opt/myproject/ ディレクトリのコンテンツと myproject グループを関連付けます:
    chown root:myproject /opt/myproject
  4. ユーザーがディレクトリ内のファイルを作成できるよう、setgid ビットを設定します:
    chmod 2775 /opt/myproject
この時点で、ユーザーが新規ファイルの書き込みをする度に管理者はファイルのパーミッションを変更する必要なく、myproject グループの全メンバーは /opt/myproject/ ディレクトリ内のファイルを作成/編集することができます。パーミッションが正しく設定されていることを確認するには、以下のコマンドを実行します:
~]# ls -l /opt
total 4
drwxrwsr-x. 3 root myproject 4096 Mar  3 18:31 myproject

3.4. その他のリソース

ユーザーとグループの管理に関する詳細情報については、以下のリソースを参照して下さい。

3.4.1. インストールされているドキュメント

ユーザーとグループを管理するための各種ユーティリティの詳細については、以下の man ページを参照して下さい:
  • chage(1) — パスワードエージングのポリシーとアカウントの有効期限を修正するコマンドです。
  • gpasswd(1) — /etc/group ファイルを管理するコマンドです。
  • groupadd(8) — グループを追加するコマンドです。
  • grpck(8) — /etc/group ファイルを検証するコマンドです。
  • groupdel(8) — グループを削除するコマンドです。
  • groupmod(8) — グループのメンバーシップを修正するコマンドです。
  • pwck(8) — /etc/passwd 及び /etc/shadow ファイルを検証するコマンドです。
  • pwconv(8) — 通常のパスワードをシャドウパスワードに変換するツールです。
  • pwunconv(8) — シャドウパスワードを通常のパスワードに変換するツールです。
  • useradd(8) — ユーザーを追加するコマンドです。
  • userdel(8) — ユーザーを削除するコマンドです。
  • usermod(8) — ユーザーを修正するコマンドです。
関連する設定ファイルの詳細については、以下をご覧下さい:
  • group(5) — システムのグループ情報を含むファイルです。
  • passwd(5) — システムのユーザー情報を含むファイルです。
  • shadow(5) — システムのパスワードとアカウントの有効期限に関する情報を含むファイルです。

第4章 権限の取得

システム管理者は (ユーザーも時には) 管理者アクセスでタスクを実行する必要があります。システムに root でアクセスすることは危険を伴う場合やシステムおよびデータの大幅な破損につながる可能性もあります。この章では、susudo といった setuid プログラムを使用して管理者権限を取得する方法を説明します。これらのプログラムを使うと、特定のユーザーが高レベルの制御およびシステムセキュリティーを維持しつつ、通常は root ユーザーしかできないタスクを実行することができます。
管理者制御や潜在的な危険、権限者アクセスの不適切な使用によるデータ破損の回避方法についての詳細は、『Red Hat Enterprise Linux 6 セキュリティガイド』 を参照してください。

4.1. su コマンド

ユーザーは、suを実行すると root パスワードを求められ、認証後に root shell プロンプトが表示されます。
su コマンドでログインした後は、そのユーザーは root ユーザーとなり、システムへの絶対管理アクセスを持つことになります[1]。さらに、root になるとユーザーは su コマンドを使って、パスワードを求められることなくシステム上の他のユーザーに変わることができます。
このプログラムは非常に強力なので、組織内の管理者はこのコマンドにアクセスできる人を制限してください。
簡単な制限方法は、wheel と呼ばれる特別な管理グループにユーザーを追加することです。これを実行するには、以下のコマンドを root で入力します。
usermod -G wheel <username>
このコマンドで <username> の部分を wheel グループに追加したいユーザーに置き換えます。
また、User Manager を使って以下のようにグループのメンバーを修正することもできます。この手順を実行するには、管理者権限が必要なことに注意してください。
  1. パネル上の システム メニューをクリックして 管理 から ユーザーとグループ をクリックして User Manager を表示させます。別の方法では、shell プロンプトで system-config-users のコマンドを入力します。
  2. ユーザー タブをクリックして、ユーザーリストの中から必要なユーザーを選択します。
  3. ツールバーの 設定 をクリックして、ユーザー設定のダイアログボックスを表示させます (または ファイル メニューで 設定 を選択します) 。
  4. グループ タブをクリックし、wheel グループのチェックボックスにチェックマークを付けて OK をクリックします。
User Manager の詳細に関しては、「ユーザー管理ツールの使用」 を参照してください。
wheel グループにユーザーを追加した後は、この追加した特定のユーザーのみに su コマンドの使用を許可することが推奨されます。それには、su: /etc/pam.d/su で PAM 設定ファイルを編集する必要があります。このファイルをテキストエディターで開き、以下の行からコメント (#) を削除します。
#auth           required        pam_wheel.so use_uid
この変更で、wheel の管理グループメンバーのみが su コマンドを使って別のユーザーに変わることができるようになります。

注記

root ユーザーはデフォルトで wheel グループの一部となっています。

4.2. sudo コマンド

sudo コマンドを使うことで、ユーザーに管理アクセスを付与する別のアプローチができます。信頼できるユーザーが sudo で管理コマンドに優先する場合、このユーザーは ユーザー自身の パスワードを要求されます。ユーザーが認証され、コマンドが許可されると、管理コマンドは root ユーザーであるかのように実行されます。
sudo コマンドの基本的なフォーマットは、以下の通りです。
sudo <command>
上記の例では、<command> の部分は、通常 root ユーザーのみが使用する mount といったコマンドに置き換えます。
sudo コマンドでは、ハイレベルの柔軟性が可能になります。例えば、/etc/sudoers 設定ファイルに記載されているユーザーのみが sudo コマンドを使うことができ、root シェルではなく、ユーザーの シェルでコマンドが実行されます。つまり、『Red Hat Enterprise Linux 6 セキュリティガイド』 にあるように、root シェルは完全に無効化できるのです。
sudo を使った正常な認証はすべて /var/log/messages ファイルに記録され、この発行者のユーザー名で発行されたコマンドは、/var/log/secure ファイルに記録されます。新たなログが必要な場合は、以下の行を /etc/pam.d/system-auth ファイルに追加して、pam_tty_audit モジュールで特定ユーザーの TTY 監査を有効にします。
session required pam_tty_audit.so disable=<pattern> enable=<pattern>
pattern で表示されるのは、コンマで区切ったユーザーのリストで、グロブをオプションで使います。例えば、以下の設定は、root ユーザーのTTY 監査を有効にし、その他のユーザーについては無効にします。
session required pam_tty_audit.so disable=* enable=root
sudo コマンドのもう一つの利点は、異なるユーザーのニーズに応じて特定のコマンドへのアクセスを管理者が許可できることです。
sudo 設定ファイルである /etc/sudoers の編集を希望する管理者は、visudo コマンドを使用することが推奨されます。
完全な管理権限を誰かに付与する場合は、visudo を入力し、ユーザー権限特定セクションに以下と同様の行を追加します。
juan ALL=(ALL) ALL
この例では、ユーザーの juan はどのホストからでも sudo を実行して、どんなコマンドも実行できます。
以下の例では、sudo を設定する際に可能な粒度を示しています。
%users localhost=/sbin/shutdown -h now
この例が示しているのは、コンソールからであれば、どのユーザーでも /sbin/shutdown -h now コマンドを発行でできるということです。
sudoers の man ページにはこのファイルのオプションの詳細なリストが記載されています。

重要

sudo コマンドの使用時には、潜在的なリスクがいくつかあることを覚えておく必要があります。このリスクは、上記のように visudo を使用して /etc/sudoers 設定ファイルを編集することで回避できます。/etc/sudoers ファイルをデフォルトの状態にしておくと、wheel グループのユーザー全員に無制限の root アクセスを与えることになります。
  • sudo はデフォルトで、sudo コマンド使用者のパスワードをタイムアウトの 5 分間、保存します。この間にコマンドを続けて使うと、ユーザーはパスワードを要求されません。このため、ユーザーがログイン状態のままワークステーションを離れたりロックしない状態にしておくと、攻撃者に悪用されかねません。この動作は、以下の行を /etc/sudoers に追加することで変更できます。
    Defaults    timestamp_timeout=<value>
    <value> には、指定するタイムアウトの分数を入れます。<value> を 0 にすると sudo は毎回パスワードを要求します。
  • sudo 使用者のアカウントが侵害されると、攻撃者は sudo を使って管理権限のある新たな shell を開くことができます。
    sudo /bin/bash
    この方法や同様の方法で root として新たな shell を開くと、/etc/sudoers ファイルで指定されたタイムアウト時間を無視し、新たに開かれたセッションが閉じられるまで攻撃者に sudo パスワード入力を要求することがなく、理論上は攻撃者に時間無制限の管理アクセスを与えることになります。

4.3. その他のリソース

ユーザーに管理権限を与えるプログラムは潜在的なセキュリティーリスクである一方、セキュリティーそのものは本ガイドの対象外となります。このため、セキュリティーや権限のアクセスに関する情報に関しては、以下に挙げるリソースを参照してください。

インストールされているドキュメント

  • su(1) - su の man ページにはこのコマンドで利用可能なオプションに関する情報があります。
  • sudo(8) - sudo の man ページには、このコマンドに関する詳細な説明と、sudo の動作のカスタマイズで利用可能なオプションのリストがあります。
  • pam(8) - man ページでは、 Linux 向け Pluggable Authentication Modules の使用方法が説明されています。

オンラインのドキュメント



[1] このアクセスは、SELinux の制限が有効な場合は、この制限対象となります。

パート II. パッケージ管理

Red Hat Enterprise Linux のシステム上にあるすべてのソフトウェアは RPM パッケージとして分割されています。これらはインスト-ル、アップグレード、及び削除をすることができます。このセクションでは、プロダクトのサブスクリプションとエンタイトルメントに焦点を置き、Yum とグラフィカルパッケージ管理ツールの PackageKit スイートを使用した Red Hat Enterprise Linux に於けるパッケージ管理法を説明しています。

第5章 システム登録およびサブスクリプションの管理

資産管理を効果的に行うには、ソフトウェアインベントリ (ソフトウェアがインストールされている製品タイプとシステム数の両方) を処理するメカニズムが必要です。サブスクリプションサービスには、このメカニズムが実装されており、組織全体のサブスクリプションのグローバルな割り当てと、単一のシステムに割り当てられた固有のサブスクリプションとの両方に対する透過性を提供します。
Red Hat サブスクリプションマネージャーは yum と連動し、サブスクリプション管理とコンテンツ配信を結び付けます。サブスクリプションマネージャーが扱うのはサブスクリプションシステム関連のみです。yum または他のパッケージ管理ツールは実際のコンテンツ配信を扱います。yum の使用方法については、6章Yum で説明します。

5.1. Red Hat サブスクリプションマネージャーツールの使用

Red Hat サブスクリプションマネージャー と呼ばれるローカルシステム上の GUI および CLI ツールが登録とサブスクリプションの両方を管理します。

注記

システムに加える変更の性質上、Red Hat サブスクリプションマネージャーのツールは常に root で実行する必要があります。しかし、Red Hat サブスクリプションマネージャーは、サブスクリプションサービスのユーザーアカウントとしてサブスクリプションサービスに接続します。

5.1.1. Red Hat サブスクリプションマネージャー GUI の起動

Red Hat サブスクリプションマネージャーは、トップパネルの システム => 管理 メニューに、管理ツールの一つとして表示されます。
Red Hat サブスクリプションマネージャーメニューオプション

図5.1 Red Hat サブスクリプションマネージャーメニューオプション

また、単一のコマンドを使用して、コマンドラインから Red Hat サブスクリプションマネージャー GUI を開くこともできます:
[root@server1 ~]# subscription-manager-gui

5.1.2. サブスクリプションマネージャーのコマンドラインツールの実行

Red Hat サブスクリプションマネージャー UI を使って実行できる操作はすべて、subscription-manager ツールを使用しても実行できます。このツールは以下のフォーマットになります。
[root@server1 ~]# subscription-manager command [options]
各コマンドには、それぞれ独自の オプション セットを使用します。詳しくは、subscription-manager のヘルプと man ページを参照して下さい。

表5.1 一般的な subscription-manager コマンド

コマンド 詳細
register 新規システムをサブスクリプションサービスに対し登録または特定します。
unregister マシンの登録解除を行います。サブスクリプションは解除され、サブスクリプションサービスからマシンが削除されます。
subscribe マシンに特定のサブスクリプションをアタッチします。
redeem ハードウェアおよび BIOS 情報に基づいて、ベンダーから購入した事前指定済みのサブスクリプションにマシンを自動的にアタッチします。
unsubscribe マシンから特定のサブスクリプションまたはすべてのサブスクリプションを削除します。
list マシンとの互換性があるすべてのサブスクリプションを一覧表示します。マシンに実際にアタッチされているサブスクリプションまたはマシンが利用可能な未使用のサブスクリプションのどちらかになります。

5.2. システムの登録および登録解除

システムは、初回起動のプロセス中またはキックスタート設定の一部として (いずれも 『インストールガイド』 を参照)、サブスクリプションサービスに登録することができます。システムは、設定完了後に登録することも可能です。また、登録済みのエンタイトルメントサービス内での管理対象外となる場合には、サブスクリプションサービスインベントリから削除 (登録解除) することもできます。

5.2.1. GUI からの登録

  1. サブスクリプションマネージャーを起動します。
    [root@server ~]# subscription-manager-gui
  2. システムが未登録の場合は、インストール済みの製品 タブの右上隅に 登録 ボタンが表示されます。
  3. 登録に使用するサブスクリプションサーバーを特定するには、サービスのホスト名を入力します。 デフォルトのサービスはカスタマーポータルによるサブスクリプション管理です。 ホスト名は subscription.rhn.redhat.com になります。 Subscription Asset Manager など、 別のサブスクリプションサービスを使用する場合は、ローカルサーバーのホスト名を入力します。
    証明書ベースのサブスクリプションを認識して使用する各種のサブスクリプションサービスがあります。初回起動時にこれらのサービスにシステムを登録できます。
    • カスタマーポータルによるサブスクリプション管理、Red Hat でホストしているサービス (デフォルト) です。
    • Subscription Asset Manager、オンプレミスのサブスクリプションサーバーで、 コンテンツ配信はプロキシでカスタマーポータルのサービスに戻します。
    • CloudForms System Engine、オンプレミスのサービスでサブスクリプションサービスとコンテンツ配信の両方を処理します。
  4. ログインするサブスクリプションサービス のユーザー認証情報を入力します。
    使用するユーザー認証情報はサブスクリプションサービスによって異なります。カスタマーポータルに登録する場合は、管理者または企業アカウントの Red Hat Network 認証情報を使用します。
    ただし、 Subscription Asset Manager や CloudForms System engine の場合には、使用するユーザーアカウントはオンプレミスのサービス内で作成され、カスタマポータルのユーザーアカウントとは異なります。
  5. オプションで、登録の後に手動でサブスクリプションを割当て チェックボックスを選択することもできます。
    デフォルトでは、登録プロセスでシステムに最適なサブスクリプションが自動的にアタッチされます。「サブスクリプションのアタッチと削除」 にあるように、この機能をオフにしてサブスクリプションを手動で選択できるようにすることも可能です。
  6. 登録が始まると、サブスクリプションマネージャーはシステムを登録する組織および環境 (組織内のサブドメイン) をスキャンします。
    カスタマーポータルのサブスクリプション管理を使用する IT 環境には組織が 1 つしかないため、 これ以上の設定は必要ありません。Subscription Asset Manager などのローカルのサブスクリプションサービスを使用する IT インフラストラクチャーの場合、 複数の組織が設定されていることがあります。 また、 それらの組織内にさらに複数の環境が設定されている場合もあります。
    複数の組織が検出された場合は、サブスクリプションマネージャーは参加する組織を 1 つ選択するように促します。
  7. デフォルト設定では、サブスクリプションは自動的に選択され、システムにアタッチされます。システムにアタッチするサブスクリプションを確認して、確定します。
    1. プロンプトが表示された場合、検出されたサブスクリプションに使用するサービスレベルを選択します。
    2. サブスクリプションマネージャーは、選択されたサブスクリプションを表示します。ウィザードの サブスクライブ ボタンをクリックして、このサブスクリプションを確定します。

5.2.2. コマンドラインからの登録

マシンを登録する最も簡単な方法は、register コマンドで、認証に必要なユーザーアカウント情報をカスタマイズポータルのサブスクリプション管理にわたすことです。システムが正しく認証されると、新しく割り当てられたシステムインベントリ ID とそれを登録したユーザーのアカウント名がエコーバックされます。
register のオプション一覧は、表5.2「register オプション」 に記載されています。

例5.1 カスタマーポータルへのシステム登録

[root@server1 ~]# subscription-manager register --username admin-example --password secret

The system has been registered with id: 7d133d55-876f-4f47-83eb-0ee931cb0a97

例5.2 登録中の自動サブスクライブ

register コマンドには --autosubscribe というオプションがあります。これを使用すると、ワンステップでシステムをサブスクリプションサービスに登録し、そのシステムのアーキテクチャーに最適なサブスクリプションを即時にアタッチすることができます。
[root@server1 ~]# subscription-manager register --username admin-example --password secret --autosubscribe
これは、サブスクリプションマネージャー UI のデフォルト設定で登録する場合と同じ動作です。

例5.3 Subscription Asset Manager を使用したシステム登録

Subscription Asset Manager または CloudForms System Engine では、1 つのアカウントに 組織 と呼ばれる複数の独立した下位区分があります。システムの参加先となる組織 (基本的には、主要アカウント内の独立したグループまたはユニット) を指定する必要があります。これには、ユーザー名とパスワードの他に --org オプションを使用します。ここで指定するユーザーには、その組織にシステムを追加するためのアクセスパーミッションも必要となります。
カスタマーポータルのサブスクリプション管理以外のサブスクリプションサービスに登録するには、追加のオプションをいくつか使用して、システム登録先の環境および組織区分を特定する必要があります。
  • サブスクリプションサービス内のユーザーアカウント のユーザー名およびパスワード
  • --serverurl でサブスクリプションサービスのホスト名を指定
  • --baseurl でコンテンツ配信サービスのホスト名を指定 (CloudForms System Engine のみ)
  • --org でシステム登録する組織名を指定
  • --environment でシステムを追加する組織内の環境 (グループ) 名を指定。デフォルトの環境はすべての組織に設定されているため、これはオプションです。
    システムを環境に追加できるのは、登録中のみです。
[root@server1 ~]# subscription-manager register --username=admin-example --password=secret --org="IT Department" --environment="dev" --serverurl=sam-server.example.com

The system has been registered with id: 7d133d55-876f-4f47-83eb-0ee931cb0a97

注記

システムが複数組織環境内にある場合、組織が指定されていない状態で register コマンドを実行すると Remote Server エラーが返されます。

表5.2 register オプション

オプション 詳細 必須
--username=name コンテンツサーバーのユーザーアカウント名を指定します。 必須
--password=password ユーザーアカウントのパスワードを指定します。 必須
--serverurl=hostname 使用するサブスクリプションサービスのホスト名を指定します。デフォルトは、カスタマーポータルのサブスクリプション管理、subscription.rhn.redhat.com です。このオプションを使用しない場合、システムはカスタマーポータルのサブスクリプション管理に登録されます。 Subscription Asset Manager または CloudForms System Engine で必須
--baseurl=URL 更新を受信するためのコンテンツ配信サーバーのホスト名を指定します。カスタマーポータルのサブスクリプション管理と Subscription Asset Manager のいずれも Red Hat がホストするコンテンツ配信サービスを使用します。URL は https://cdn.redhat.com です。CloudForms System Engine は独自のコンテンツをホストしているため、System Engine に登録するシステムはこの URL を使用する必要があります。 CloudForms System Engine で必須
--org=name システムの参加先となる組織を指定します。 ホスト型環境以外では必須
--environment=name 1 つの組織内の 1 つの環境にシステムを登録します。 オプション
--name=machine_name 登録するシステム名を設定します。デフォルトではホスト名と同じです。 オプション
--autosubscribe 互換性がある最適なサブスクリプションを自動的にアタッチします。ワンステップでシステムを設定できるため、自動設定の操作に適しています。 オプション
--activationkey=key 登録プロセスの一環として、既存のサブスクリプションをアタッチします。サブスクリプションは、ベンダーまたはシステム管理者が Subscription Asset Manager を使用して事前に割り当てています。 オプション
--servicelevel=None|Standard|Premium マシン上でサブスクリプションに使用するサービスレベルを設定します。これは --autosubscribe オプションのみで使用されます。 オプション
--release=NUMBER システムのサブスクリプションで使用するオペレーティングシステムのマイナーリリースを設定します。製品と更新は、この特定のマイナーリリースバージョンに限定されます。--autosubscribe オプションのみで使用されます。 オプション
--force システムが既に登録済みの場合でも登録します。通常、マシンが登録済みの場合には、登録の操作は失敗します。 オプション

5.2.3. 登録解除

マシンの登録解除に必要な操作は、unregister コマンドの実行のみです。これにより、サブスクリプションサービスから対象となるシステムのエントリーが削除され、サブスクリプションもすべて削除されます。また、そのシステムの ID とサブスクリプション証明書もローカルで削除されます。
コマンドラインでのシステム登録解除には、unregister コマンドのみが必要となります。

例5.4 システムの登録解除

[root@server1 ~]# subscription-manager unregister
サブスクリプションマネージャー GUI からの登録解除方法
  1. サブスクリプションマネージャー UI を開きます。
    [root@server ~]# subscription-manager-gui
  2. システム メニューを開いて、登録解除 を選択します。
  3. システムの登録解除を確認します。

5.3. サブスクリプションのアタッチと削除

システムに サブスクリプション を割り当てることで、そのシステムはサブスクリプション内の Red Hat 製品をインストール、更新することができるようになります。サブスクリプションとは、1 回に購入された全製品の全バリエーションの一覧であり、製品とサブスクリプションが利用できる回数を定義します。この数量は、概して利用可能なユーザーライセンス数です。これらのライセンスの 1 つがシステムに割り当てられると、そのサブスクリプションはそのシステムに アタッチ されます。

5.3.1. GUI を使用したサブスクリプションのアタッチと削除

5.3.1.1. サブスクリプションのアタッチ

  1. サブスクリプションマネージャーを起動します。
    [root@server ~]# subscription-manager-gui
  2. すべての利用可能なサブスクリプション タブを開きます。
  3. オプションとして、日付の範囲を設定してから フィルター ボタンをクリックし、利用可能なサブスクリプションを検索します。
    サブスクリプションは、アクティブな日付や名前でフィルタリングできます。また、チェックボックスを使用すると、より詳細なフィルタリングが可能です。
    • match my system (自分のシステムにマッチ) を選択すると、システムアーキテクチャーに適合するサブスクリプションのみが表示されます。
    • match my installed products (自分のインストール済み製品にマッチ) を選択すると、システム上に現在インストール済みの製品と機能するサブスクリプションが表示されます。
    • 既存のサブスクリプションとの重複をしない を選択すると、製品が重複しているサブスクリプションが除外されます。サブスクリプションがすでに特定の製品のシステムにアタッチされている場合や、複数のサブスクリプションが同じ製品を提供している場合は、サブスクリプションサービスがそれらのサブスクリプションをフィルタリングして、最適なサブスクリプションのみが表示されます。
    • 次のテキストを含む は、サブスクリプションやプール内で製品名などの文字列を検索します。
    日付とフィルターの設定後、更新 ボタンをクリックして適用します。
  4. 利用可能なサブスクリプションを 1 つ選択します。
  5. Subscribe (サブスクライブ) ボタンをクリックします。

5.3.1.2. サブスクリプションの削除

  1. サブスクリプションマネージャーを起動します。
    [root@server ~]# subscription-manager-gui
  2. 自分のサブスクリプション タブを開きます。
    システムに現在アタッチされているすべてのアクティブなサブスクリプションが一覧表示されます (そのサブスクリプションで利用できる製品は、インストール済みの場合と未インストールの場合があります)。
  3. 削除するサブスクリプションを選択します。
  4. ウィンドウ右下にある サブスクリプション解除 ボタンをクリックします。

5.3.2. コマンドラインを使用したサブスクリプションのアタッチと削除

5.3.2.1. サブスクリプションのアタッチ

サブスクリプションをシステムにアタッチするには、--pool オプションを使用して、個別の製品またはサブスクリプションを指定する必要があります。
[root@server1 ~]# subscription-manager subscribe --pool=XYZ01234567
subscribe コマンドのオプション一覧は、表5.3「subscribe オプション」 に記載されています。
購入した製品のサブスクリプションプール ID を指定する必要があります。このプール ID は製品サブスクリプション情報に表示され、list コマンドを実行すると確認できます。
[root@server1 ~]# subscription-manager list --available

+-------------------------------------------+
    Available Subscriptions
+-------------------------------------------+
ProductName:            RHEL for Physical Servers
ProductId:              MKT-rhel-server
PoolId:                 ff8080812bc382e3012bc3845ca000cb
Quantity:               10
Expires:                2011-09-20
別の方法では、--auto オプション (register コマンドの --autosubscribe オプションに類似) を使用して、サブスクリプションサービスが特定した最適なサブスクリプションをシステムにアタッチすることもできます。
[root@server1 ~]# subscription-manager subscribe --auto

表5.3 subscribe オプション

オプション 詳細 必須
--pool=pool-id システムにアタッチするサブスクリプション ID を指定します。 --auto の使用時以外は必須
--auto システムを 1 つ以上の最適なサブスクリプションに自動的にアタッチします。 オプション
--quantity=number 複数カウントのサブスクリプションをシステムにアタッチします。これは、カウント制限を定義するサブスクリプションを対象に使用されます (例: 2 ソケットサーバー用のサブスクリプションを 2 つ使用して、1 台の 4 ソケットマシンに適用)。 オプション
--servicelevel=None|Standard|Premium マシン上でサブスクリプションに使用するサービスレベルを設定します。これが使われるのは、--auto オプションと一緒の時のみです。 オプション

5.3.2.2. コマンドラインを使用したサブスクリプションの削除

一つのシステムを複数のサブスクリプションおよび製品にアタッチすることができます。同様に、一つまたはすべてのサブスクリプションをシステムから削除することもできます。
unsubscribe コマンドを --all オプションで実行すると、現在システムにアタッチされているすべての製品サブスクリプションおよびサブスクリプションプールが削除されます。
[root@server1 ~]# subscription-manager unsubscribe --all
一つの製品サブスクリプションを削除することもできます。各製品には、識別のための X.509 証明書がインストールされています。削除する製品サブスクリプションは、unsubscribe コマンドの X.509 証明書の ID 番号を参照して特定します。
  1. 製品サブスクリプションを削除する場合は、製品証明書のシリアル番号を取得してください。シリアル番号は subscription#.pem ファイル (例: 392729555585697907.pem) から、または以下のように list コマンドを使って取得できます。
    [root@server1 ~]# subscription-manager list --consumed
    
    +-------------------------------------------+
        Consumed Product Subscriptions
    +-------------------------------------------+
    
    
    ProductName:         High availability (cluster suite)
    ContractNumber:      0
    SerialNumber:        11287514358600162
    Active:              True
    Begins:              2010-09-18
    Expires:             2011-11-18
  2. subscription-manager ツールを --serial オプションで実行し、証明書を特定します。
    [root@server1 ~]# subscription-manager unsubscribe --serial=11287514358600162

5.4. ベンダーサブスクリプションの有効化

システムで利用可能な既存のサブスクリプションを使用して、そのシステムを設定することができます。サードパーティベンダーから購入した一部のシステムには、Red Hat 製品のサブスクリプションがそのマシン購入に含まれています。
Red Hat サブスクリプションマネージャーは、システムハードウェアと BIOS に関する情報をシステム情報にプルし、ハードウェアベンダーを認識します。ベンダーと BIOS 情報が特定の設定に一致する場合は、サブスクリプションを 有効 にできます。これにより、サブスクリプションをシステムに自動的にアタッチすることができます。

5.4.1. GUI を使用したサブスクリプションの有効化

注記

有効にするサブスクリプションがマシンにない場合、 Redeem (有効化) メニュー項目は表示されません。
  1. サブスクリプションマネージャーを起動します。
    [root@server ~]# subscription-manager-gui
  2. 必要に応じて 「GUI からの登録」 にあるとおり、システムを登録します。
  3. ウィンドウの左上隅にある システム メニューを開き、Redeem (有効化) 項目をクリックします。
  4. 有効化が完了した時点に送信する通知の宛先となる電子メールアドレスを、ダイアログウィンドウ内に入力します。有効化のプロセスは、ベンダーに連絡して事前定義されたサブスクリプションの情報を受信するのに数分かかる場合があるため、通知メッセージはサブスクリプションマネージャーのダイアログウィンドウではなく、電子メールで送られます。
  5. Redeem (有効化) ボタンをクリックします。
確認の電子メールが届くまで、最大 10 分程度かかる場合があります。

5.4.2. コマンドラインを使用したサブスクリプションの有効化

注記

サブスクリプションサービスがシステムとそのサブスクリプションを適切に特定するには、マシンを 最初に 登録する必要があります。
マシンのサブスクリプションを有効化をするには、redeem コマンドで、プロセスが完了した時点で送信される有効化の通知メールの宛先となる電子メールアドレスを指定して実行します。
# subscription-manager redeem --email=jsmith@example.com

5.5. Subscription Asset Manager のアクティベーションキーを使用したサブスクリプションのアタッチ方法

ローカルの Subscription Asset Manager は、システムが使用するサブスクリプションを事前設定できます。この事前定義されたサブスクリプションのセットは、アクティベーションキーで識別されます。このアクティベーションキーは、ローカルシステムでサブスクリプションをアタッチする際に使用します。
Subscription Asset Manager のアクティベーションキーは、新規システム登録プロセスの一環で使用できます。
# subscription-manager register --username=jsmith --password=secret --org="IT Dept" --activationkey=abcd1234
組織が複数ある場合はシステムの組織を指定する必要があり、この情報はアクティベーションキーでは定義されていません。

5.6. システムの詳細設定

サブスクリプションの自動アタッチと自動修復 (更新) は、システムにアタッチするサブスクリプションを選択します。これは、現在インストール済みの製品、ハードウェア、アーキテクチャーなどの各種基準に基づいて行われます。サブスクリプションマネージャーが使用する詳細設定で以下の 2 つをさらに設定することが可能です。
  • サブスクリプションのサービスレベル
  • 使用するオペレーティングシステムのマイナーバージョン (X.Y)
これは自動修復で特に有用です。自動修復は、すべてのインストール済み製品と現在のサブスクリプションがアクティブとなっているように毎日実行されます。

5.6.1. UI での詳細設定

サービスレベルおよびオペレーティングシステムのリリースバージョンの詳細設定はどちらも、サブスクリプションマネージャーの システムの設定 のダイアログボックスで行います。
  1. サブスクリプションマネージャーを開きます。
  2. システム メニューを開きます。
  3. システムの設定 メニュー項目を選択します。
  4. ドロップダウンメニューから希望するサービスレベル同意書の設定を選択します。アクティブなサブスクリプションすべてに基づいて、Red Hat アカウントで利用可能なサービスレベルのみが表示されます。
  5. リリースバージョン ドロップダウンメニューでオペレーティングシステムのリリース設定を選択します。表示されるバージョンは、アカウントにアクティブなサブスクリプションがある Red Hat Enterprise Linux バージョンのみです。
  6. 設定が保存され、今後のサブスクリプションの操作に適用されます。閉じる をクリックしてダイアログを閉じます。

5.6.2. コマンドラインを使用したサービスレベルの設定

一般的なサービスレベルは、service-level --set コマンドを使用して設定できます。

例5.5 サービスレベル詳細の設定

まず、service-level コマンドを --list オプションで実行して、システムで利用可能なサービスレベルを表示します。
[root@server ~]# subscription-manager service-level --list
+-------------------------------------------+
          Available Service Levels
+-------------------------------------------+
Standard
None
Premium
Self-Support
次に、システムで希望するレベルを設定します。
[root@server ~]# subscription-manager service-level --set=self-support
Service level set to: self-support
ローカルシステムの現在の設定は、--show オプションで表示できます。
[root#server ~]# subscription-manager service-level --show
Current service level: self-support
サービスレベルの設定は、サブスクリプション動作の実行中に定義できます (システム登録や登録後のサブスクリプションのアタッチなど)。これにより、システム設定の上書きが可能です。registersubscribe のコマンドでは、--servicelevel オプションで動作の詳細を設定できます。

例5.6 プレミアムサービスレベルでのサブスクリプションの自動アタッチ

[root#server ~]# subscription-manager subscribe --auto --servicelevel Premium
Service level set to: Premium
Installed Product Current Status:
ProductName:            RHEL 6 for Workstations
Status:                 Subscribed

注記

--servicelevel オプションには、--autosubscribe オプション (登録用) または --auto オプション (サブスクライブ用) が必要です。特定のプールのアタッチ時やサブスクリプションのインポート時には使用できません。

5.6.3. コマンドラインで希望するオペレーティングシステムのリリースバージョンを設定する

IT 環境の多くは、一定のセキュリティーレベルか他の基準に合致していると認定されている必要があります。その場合、主要なアップグレードの計画と管理は注意して行う必要があります — 管理者は単に yum update を実行して、あるバージョンから次のバージョンへと移動することはできません。
リリースバージョンの詳細を設定すると、システムのアクセスは、自動的に最新バージョンのリポジトリを使用するのではなく、オペレーティングシステムのバージョンに関連したコンテンツリポジトリに制限されます。
例えば、希望するオペレーティングシステムバージョンが 6.3 の場合、他のリポジトリが利用可能でも、システムのすべてのインストール済み製品およびアタッチされたサブスクリプションには 6.3 のコンテンツリポジトリが選ばれます。

例5.7 登録中にオペレーティングシステムのリリースを設定する

リリースバージョンの設定は、システムの登録時に register コマンドを --release オプションで実行することで設定できます。これによりこのリリース設定は、システム登録時に選択され自動的にアタッチされたサブスクリプションに適用されます。
--autosubscribe オプションは、自動的にアタッチするサブスクリプションの選択に使用される基準の 1 つであるため、詳細設定時に必要となります。
[root#server ~]# subscription-manager register --autosubscribe --release=6.4 --username=admin@example.com...

注記

リリース設定はサービスレベルの設定と違い、登録時にのみ使用するか、詳細設定として設定できます。subscribe コマンドでは指定できません。

例5.8 オペレーティングシステムのリリース詳細設定

release コマンドは、アタッチされたサブスクリプションだけでなく、組織で利用可能な購入済みサブスクリプションに基づいて、利用可能なオペレーティングシステムのリリースを表示します。
[root#server ~]# subscription-manager release --list
+-------------------------------------------+
          Available Releases
+-------------------------------------------+
6.2
6.3
そして、--set で詳細設定を利用可能なリリースバージョンの 1 つに設定します。
[root#server ~]# subscription-manager release --set=6.3
Release version set to: 6.3

5.7. サブスクリプションの有効期限と通知の管理

サブスクリプションは、有効期間 と呼ばれる一定期間中にアクティブとなります。サブスクリプションを購入すると、そのコントラクトの開始日と終了日が設定されます。
システムには、複数のサブスクリプションをアタッチすることが可能です。製品にはそれ自体のサブスクリプションが必要です。さらに、一部の製品では完全なサブスクリプションとするために、複数のサブスクリプションが必要になる場合があります。例えば、16 ソケットのマシンでは、ソケット数に対応するため 4 つの 4 ソケットのオペレーティングシステムのサブスクリプションが必要になります。
自分のインストール済みソフトウェア タブには、システム全体のサブスクリプションステータスが表示されます。また、有効な製品サブスクリプションが無効になる (有効期限が切れる) 最初の日付も表示されます。
有効期限

図5.2 有効期限

Red Hat サブスクリプションマネージャーは、システムにインストールされた製品の有効な証明書に対するあらゆる変更を示すログと UI メッセージを提供します。サブスクリプションマネージャー GUI では、システムサブスクリプションのステータスは色分けされています。全製品が完全にサブスクライブされている場合は 緑色、 一部の製品がサブスクライブされていない可能性はあるが更新がまだ有効な場合は 黄色、更新が無効な場合は 赤色 で表示されます。
色分けされたステータス表示

図5.3 色分けされたステータス表示

マシンのステータスは、コマンドラインツールでも表示されます。緑、黄、赤の色分けは、テキストのステータスメッセージではそれぞれ、subscribedpartially subscribedexpired/not subscribed と表示されます。
[root@server ~]# subscription-manager list
+-------------------------------------------+
    Installed Product Status
+-------------------------------------------+

ProductName:            Red Hat Enterprise Linux Server
Status: Not Subscribed
Expires:                                         
SerialNumber:                                    
ContractNumber:                                  
AccountNumber:
サブスクリプションの変更に関する警告がある時には、上部のメニューバーに燃料メーター状の小さなアイコンが表示されます。
サブスクリプション通知のアイコン

図5.4 サブスクリプション通知のアイコン

インストール済み製品のサブスクリプションの有効期限が近づくと、サブスクリプションマネージャーデーモンは警告を発します。このメッセージは、システムに有効な証明書のない製品がある場合に表示されるメッセージに似ています。この警告は、製品に対応するサブスクリプションがアタッチされていないか、サブスクリプションの有効期限が切れた後も製品がインストールされていることを意味します。サブスクリプション通知のウィンドウにある 自分のサブスクリプションを管理 のボタンをクリックすると、Red Hat サブスクリプションマネージャー GUI が開き、サブスクリプションの確認と更新ができます。
サブスクリプション警告のメッセージ

図5.5 サブスクリプション警告のメッセージ

サブスクリプションマネージャー UI を開くと (通知エリアから開いたか、通常の方法で開いたかに関わらず)、製品に有効な証明書が欠けているかどうかを示すアイコンが左上隅に表示されます。無効になった製品に適合するサブスクリプションをアタッチする最も簡単な方法は、自動サブスクライブ ボタンをクリックすることです。
自動サブスクライブボタン

図5.6 自動サブスクライブボタン

システムのサブスクライブ のダイアログは、有効な証明書がない特定の製品にあてはまる利用可能なサブスクリプションの対象一覧を表示します (サブスクリプションが利用可能と仮定)。
システムのサブスクライブ

図5.7 システムのサブスクライブ

第6章 Yum

Yum は Red Hat パッケージマネージャーです。Yum は、パッケージ情報に関するクエリ、リポジトリからのパッケージのフェッチ、パッケージのインストールとアンインストール、さらには利用可能な最新バージョンへのシステム全体の更新を行うことができます。Yum は、更新/インストール/削除を実行しているパッケージで依存関係の自動解決を行います。そのため、利用可能なすべての依存パッケージを自動的に決定/フェッチ/インストールすることができます。
Yum は、新しい追加のリポジトリまたは パッケージソース を使って設定することができ、機能を向上して拡張する多くのプラグインも提供します。また、Yum は RPM が実行できる多くの同じタスクを行うことができます。さらに、多くのコマンドラインオプションも似ています。Yum を使うことで、1 つのマシンまたはマシンのグループ上でのパッケージ管理を簡単かつシンプルに行うことができます。

重要

Yum は、GPG (Gnu Privacy Guard: 別名 GnuPG) 署名付きのパッケージの GPG 署名照合をすべてのパッケージリポジトリ (パッケージソース) または個々のリポジトリに有効にすることで、セキュアなパッケージ管理を実現します。署名照合が有効な場合、Yum はリポジトリに対して GPG 署名がない不正確なキーを持つパッケージのインストールを拒否します。これにより、ご使用のシステムにダウンロードしてインストールする RPM パッケージが Red Hat などの信頼されたソースからのものであり、移行中に変更されていないことが信用できます。Yum を使用して署名照合を有効にする方法については、「Yum と Yum リポジトリの設定」 を参照して下さい。また、GPG 署名付きの RPM パッケージ全般の使用及び検証方法に関しては 「パッケージの署名確認」 を参照して下さい。
Yum を使用すると、他のマシンへダウンロード/インストールするための RPM パッケージのリポジトリを簡単に設定することができます。
Yum を使用するとシステム管理タスクを最速で実行できることが多いため、習得する価値は十分にあります。また、Yum は PackageKit グラフィカルパッケージ管理ツールが実現できる以上の機能を提供します。PackageKit の使用に関する詳細は、7章PackageKit を参照して下さい。

注記

yum を使用して、システムにパッケージをインストール/更新/削除するにはスーパーユーザー権限が必要です。本章のすべての例では、su または sudo コマンドを使用することでスーパーユーザー権限をすでに持っていると仮定しています。

6.1. パッケージの確認と更新

6.1.1. 更新の確認

使用しているシステムに利用可能な更新があるインストール済みのパッケージを確認するには、以下のコマンドを実行します:
yum check-update
例:
~]# yum check-update
Loaded plugins: product-id, refresh-packagekit, subscription-manager
Updating Red Hat repositories.
INFO:rhsm-app.repolib:repos updated: 0
PackageKit.x86_64                  0.5.8-2.el6                rhel
PackageKit-glib.x86_64             0.5.8-2.el6                rhel
PackageKit-yum.x86_64              0.5.8-2.el6                rhel
PackageKit-yum-plugin.x86_64       0.5.8-2.el6                rhel
glibc.x86_64                       2.11.90-20.el6             rhel
glibc-common.x86_64                2.10.90-22                 rhel
kernel.x86_64                      2.6.31-14.el6              rhel
kernel-firmware.noarch             2.6.31-14.el6              rhel
rpm.x86_64                         4.7.1-5.el6                rhel
rpm-libs.x86_64                    4.7.1-5.el6                rhel
rpm-python.x86_64                  4.7.1-5.el6                rhel
udev.x86_64                        147-2.15.el6               rhel
yum.noarch                         3.2.24-4.el6               rhel
上記の出力に表示されているパッケージには、利用可能な更新があります。一覧の最初のパッケージは、PackageKit と呼ばれるグラフィカルパッケージマネージャーです。その行の意味は以下のとおりです。
  • PackageKit — パッケージの名前
  • x86_64 — パッケージがビルドされた CPU アーキテクチャー
  • 0.5.8 — インストールされる更新済みパッケージのバージョン
  • rhel — 更新済みのパッケージがあるリポジトリ
また、上記の出力は、カーネル (kernel パッケージ)、Yum および RPM (yum および rpm のパッケージ)、さらにはそれらの依存関係 (kernel-firmwarerpm-libsrpm-python のパッケージ) をすべて yum を使って更新できることも示しています。

6.1.2. パッケージの更新

1 回に更新するパッケージ数を 1 つ、複数、またはすべてのパッケージから選択することができます。更新するパッケージの依存関係 (またはパッケージ) に利用可能な更新がある場合は、それらも更新されます。

単一パッケージの更新

単一パッケージを更新するには、root で以下のコマンドを実行して下さい:
yum update package_name
例として、udev パッケージを更新するには以下のとおり入力します:
~]# yum update udev
Loaded plugins: product-id, refresh-packagekit, subscription-manager
Updating Red Hat repositories.
INFO:rhsm-app.repolib:repos updated: 0
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package udev.x86_64 0:147-2.15.el6 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

===========================================================================
 Package       Arch            Version                 Repository     Size
===========================================================================
Updating:
 udev          x86_64          147-2.15.el6            rhel          337 k

Transaction Summary
===========================================================================
Install       0 Package(s)
Upgrade       1 Package(s)

Total download size: 337 k
Is this ok [y/N]:
この出力には興味を引く項目が数点あります。
  1. Loaded plugins: product-id, refresh-packagekit, subscription-manageryum は、どの Yum プラグインがインストールされ有効であるかを常に通知します。Yum プラグインに関する全般情報は 「Yum のプラグイン」 を参照してください。また、個別のプラグインに関する説明は 「プラグインの詳細」 を参照してください。
  2. udev.x86_64 — 新しい udev パッケージをダウンロードしてインストールできます。
  3. yum は、更新情報を表示して、更新を実行したいかどうかを確認します。yum はデフォルトではインタラクティブに実行します。yum コマンドがどのトランザクションを実行するかが事前に分かっている場合は、-y オプションを使用して、yum が行うすべての質問に yes と自動回答するように設定できます (この場合はノンインタラクティブに実行されます)。ただし、yum がシステムに実行しようとしている変更を常に調べることをお勧めします。そうすることで、起こり得る問題を簡単に解決することができます。
    トランザクションが正しく行われなかった場合は、yum history コマンドを使用して 「トランザクション履歴の活用」 にあるように Yum のトランザクション履歴を閲覧することができます。

重要

rpm -i kernel のコマンドを使用すると、RPM が新しいカーネルをインストールするのと同じように、yum は常に新しいカーネルを インストール します。そのため、yum を使用する場合は、カーネルパッケージの インストールアップグレード の区別について気にする必要はありません。つまり、yum updateyum install のコマンドどちらを使用するかに関わらず正しく実行します。
一方で、RPM を使用する場合は、rpm -u kernel (現在のカーネルと 置換) の代わりに、rpm -i kernel コマンド (新しいカーネルのインストール) を使用することが重要です。RPM を使ったカーネルのインストール/アップグレードについての詳細は、「インストールとアップグレード」 を参照してください。

すべてのパッケージとそれらの依存関係の更新

すべてのパッケージとそれらの依存関係を更新するには、yum update と (引数なしで) 入力するだけです:
yum update
どのパッケージに利用可能なセキュリティの更新があるのかを見つけ出し、そうしたパッケージを迅速かつ簡単に更新することは重要です。このため、Yum はプラグインを提供します。security プラグインは、yum コマンドを非常に便利なセキュリティ中心のコマンド、サブコマンド、オプションのセットにより拡張します。具体的な情報は 「プラグインの詳細」 を参照して下さい。

6.1.3. 設定ファイルの変更の保存

Red Hat Enterprise Linux システムを使用していると、パッケージによりインストールされた設定ファイルに変更を加える必要がでてきます。システムに変更を加えるために Yum が使用する RPM には、整合性を確保する仕組みが備わっています。パッケージのアップグレード全般に渡る設定ファイルへの変更を管理する方法の詳細については、「インストールとアップグレード」 を参照して下さい。

6.2. パッケージとパッケージグループ

6.2.1. パッケージの検索

以下のコマンドを使用することで、すべての RPM のパッケージ名、詳細、サマリを検索することができます:
yum search term
このコマンドにより、各用語に一致する項目を示した一覧が表示されます。例えば meldkompare に一致するすべてのパッケージを一覧表示するには、以下を入力します:
~]# yum search meld kompare
Loaded plugins: product-id, refresh-packagekit, subscription-manager
Updating Red Hat repositories.
INFO:rhsm-app.repolib:repos updated: 0
============================ Matched: kompare =============================
kdesdk.x86_64 : The KDE Software Development Kit (SDK)
Warning: No matches found for: meld
yum search のコマンドは、パッケージの名前は不明だがその関連用語を知っている場合の検索に役立ちます。

6.2.2. パッケージの一覧表示

yum list と関連コマンドは、パッケージ、パッケージグループ、リポジトリに関する情報を提供します。
Yum の全 list コマンドにより、1 つ以上の glob 表現 を引数として追加することで結果をフィルターすることができます。glob 表現は、1 つ以上のワイルドカード文字 * (任意の文字に複数回一致) と ? (任意の 1 文字に一致) を含む通常の文字列です。

注記

yum のコマンドに引数として glob 表現を渡す場合には、glob 表現をエスケープするように注意して下さい。そうしないと、bash シェルはこの表現を パス名の展開 と解釈してしまい、glob と適合する現在のディレクトリ内の全ファイルを yum に渡す可能性があります。確実に glob 表現を yum に正しく渡すためには、以下のいずれかの方法を実行します:
  • ワイルドカード文字の前にバックスラッシュ記号を入力して、ワイルドカード文字をエスケープする
  • glob 表現全体を二重引用符または単一引用符でくくる
yum list glob_expression
すべての glob 表現に一致する、インストール済みで利用可能なパッケージに関する情報を一覧表示します。

例6.1 glob 表現を使ったすべての ABRT アドオンとプラグインの一覧表示

各種の ABRT アドオンとプラグインを持つパッケージは abrt-addon-abrt-plugin-で始まります。こうしたパッケージを一覧表示するには、シェルプロンプトで以下を入力します:
~]# yum list abrt-addon\* abrt-plugin\*
Loaded plugins: product-id, refresh-packagekit, subscription-manager
Updating Red Hat repositories.
INFO:rhsm-app.repolib:repos updated: 0
Installed Packages
abrt-addon-ccpp.x86_64                        1.0.7-5.el6             @rhel
abrt-addon-kerneloops.x86_64                  1.0.7-5.el6             @rhel
abrt-addon-python.x86_64                      1.0.7-5.el6             @rhel
abrt-plugin-bugzilla.x86_64                   1.0.7-5.el6             @rhel
abrt-plugin-logger.x86_64                     1.0.7-5.el6             @rhel
abrt-plugin-sosreport.x86_64                  1.0.7-5.el6             @rhel
abrt-plugin-ticketuploader.x86_64             1.0.7-5.el6             @rhel
yum list all
すべてのインストール済み かつ 利用可能なパッケージを一覧表示します。
yum list installed
システムにインストール済みのすべてのパッケージを一覧表示します。出力の右端のカラムには、パッケージが取得されたリポジトリが一覧表示されています。

例6.2 二重引用符で囲まれた glob 表現を使ったインストール済みパッケージの一覧表示

krb の後に 1 文字とハイフンが続く名前のすべてのインストール済みパッケージを一覧表示するには、以下を入力して下さい:
~]# yum list installed "krb?-*"
Loaded plugins: product-id, refresh-packagekit, subscription-manager
Updating Red Hat repositories.
INFO:rhsm-app.repolib:repos updated: 0
Installed Packages
krb5-libs.x86_64                         1.8.1-3.el6                  @rhel
krb5-workstation.x86_64                  1.8.1-3.el6                  @rhel
yum list available
すべての有効なリポジトリにある利用可能な全パッケージを一覧表示します。

例6.3 エスケープされたワイルドカード文字を含む単一の glob 表現を使った利用可能なパッケージの一覧表示

gstreamer とその後に plugin を含む名前の利用可能なすべてのパッケージを一覧表示するには、以下のコマンドを実行します:
~]# yum list available gstreamer\*plugin\*
Loaded plugins: product-id, refresh-packagekit, subscription-manager
Updating Red Hat repositories.
INFO:rhsm-app.repolib:repos updated: 0
Available Packages
gstreamer-plugins-bad-free.i686               0.10.17-4.el6            rhel
gstreamer-plugins-base.i686                   0.10.26-1.el6            rhel
gstreamer-plugins-base-devel.i686             0.10.26-1.el6            rhel
gstreamer-plugins-base-devel.x86_64           0.10.26-1.el6            rhel
gstreamer-plugins-good.i686                   0.10.18-1.el6            rhel
yum grouplist
すべてのパッケージグループを一覧表示します。
yum repolist
リポジトリ ID、名前、それぞれの 有効な リポジトリに提供するパッケージ数を一覧表示します。

6.2.3. パッケージ情報の表示

1 つ以上のパッケージ (glob 表現はここでも有効) に関する情報を表示するには、以下のコマンドを実行します:
yum info package_name
例えば abrt パッケージに関する情報を表示するには、以下を入力します:
~]# yum info abrt
Loaded plugins: product-id, refresh-packagekit, subscription-manager
Updating Red Hat repositories.
INFO:rhsm-app.repolib:repos updated: 0
Installed Packages
Name       : abrt
Arch       : x86_64
Version    : 1.0.7
Release    : 5.el6
Size       : 578 k
Repo       : installed
From repo  : rhel
Summary    : Automatic bug detection and reporting tool
URL        : https://fedorahosted.org/abrt/
License    : GPLv2+
Description: abrt is a tool to help users to detect defects in applications
           : and to create a bug report with all informations needed by
           : maintainer to fix it. It uses plugin system to extend its
           : functionality.
yum info package_name コマンドは rpm -q --info package_name コマンドに似ていますが、yum info package_name は RPM パッケージがある Yum リポジトリの ID を追加情報として提供します (出力の From repo: の行を参照)。
以下のコマンドを使用することで、パッケージに関する代替情報や有用な情報について Yum データベースにクエリすることもできます:
yumdb info package_name
このコマンドは、パッケージに関する追加情報を提供します。例えば、パッケージのチェックサム (及びチェックサムを算出するための SHA-256 などのアルゴリズム)、パッケージをインストールするために呼び出されたコマンドラインのコマンド (存在する場合)、パッケージがシステムにインストールされる理由 (user はユーザーによりインストール済み、dep は依存関係として取り入れたという意味) などです。例として、yum パッケージに関する追加情報を表示するには、以下を入力します:
~]# yumdb info yum
Loaded plugins: product-id, refresh-packagekit, subscription-manager
yum-3.2.27-4.el6.noarch
     checksum_data = 23d337ed51a9757bbfbdceb82c4eaca9808ff1009b51e9626d540f44fe95f771
     checksum_type = sha256
     from_repo = rhel
     from_repo_revision = 1298613159
     from_repo_timestamp = 1298614288
     installed_by = 4294967295
     reason = user
     releasever = 6.1
yumdb コマンドの詳細については、yumdb(8) の man ページを参照して下さい。

6.2.4. パッケージのインストール

Yum を使用したインストールでは、単一及び複数のパッケージ、さらには希望するパッケージグループもインストールすることができます。

個々のパッケージのインストール

単一パッケージとそのインストールされていないすべての依存関係をインストールするには、以下の形式でコマンドを入力します:
yum install package_name
引数としてパッケージの名前を追加することで、複数のパッケージを同時にインストールすることも可能です:
yum install package_name package_name
AMD64 や Intel64 マシンのような multilib システムにパッケージをインストールする場合は、パッケージ名に . arch を追加することでパッケージのアーキテクチャーを指定できます (ただし、それが有効なリポジトリで利用可能な場合のみ)。例えば i586sqlite2 パッケージをインストールするには、以下を入力します:
~]# yum install sqlite2.i586
glob 表現を使うと、複数の類似した名前のパッケージを迅速にインストールできます:
~]# yum install audacious-plugins-\*
パッケージ名と glob 表現だけでなく、yum install にはファイル名も加えることができます。インストールしたいバイナリ名は知っているが、パッケージ名が分からない場合は、yum install にパス名を付けて実行します:
~]# yum install /usr/sbin/named
yum はパッケージ一覧で検索を行い、/usr/sbin/named を提供するパッケージを探します。存在すれば、yum はインストールしたいかどうかを確認します。

注記

named バイナリを含むパッケージをインストールしたいが、ファイルがインストールされているのが bin ディレクトリか sbin ディレクトリか分からない場合は、glob 表現を付けて yum provides コマンドを実行します:
~]# yum provides "*bin/named"
Loaded plugins: product-id, refresh-packagekit, subscription-manager
Updating Red Hat repositories.
INFO:rhsm-app.repolib:repos updated: 0
32:bind-9.7.0-4.P1.el6.x86_64 : The Berkeley Internet Name Domain (BIND)
                              : DNS (Domain Name System) server
Repo        : rhel
Matched from:
Filename    : /usr/sbin/named
yum provides "*/file_name"file_name を含むパッケージを見つけるための一般的で便利な方法です。

パッケージグループのインストール

パッケージグループはパッケージと似ています。それだけでは役に立ちませんが、パッケージグループを 1 つインストールすると、共通の目的に合う依存関係のパッケージのグループをプルします。パッケージグループには名前と groupid があります。yum grouplist -v コマンドでは、すべてのパッケージグループ名と、各名前の横に丸括弧で groupid を一覧表示します。groupid は、常に丸括弧内の一番最後の単語になります。以下の例では kde-desktop がそれにあたります:
~]# yum -v grouplist kde\*
Loading "product-id" plugin
Loading "refresh-packagekit" plugin
Loading "subscription-manager" plugin
Updating Red Hat repositories.
INFO:rhsm-app.repolib:repos updated: 0
Config time: 0.123
Yum Version: 3.2.29
Setting up Group Process
Looking for repo options for [rhel]
rpmdb time: 0.001
group time: 1.291
Available Groups:
   KDE Desktop (kde-desktop)
Done
パッケージグループをインストールするには、groupinstall にグループ名全体 (groupid を含まず) を渡します:
yum groupinstall group_name
groupid を使ってインストールすることもできます:
yum groupinstall groupid
@-記号を付加することで、groupid (または引用名) を install コマンドに渡すことも可能です (これで groupinstall を実行したいというメッセージを yum に伝えます):
yum install @group
以下の例では、KDE Desktop グループのインストールを同等の別の方法で示しています:
~]# yum groupinstall "KDE Desktop"
~]# yum groupinstall kde-desktop
~]# yum install @kde-desktop

6.2.5. パッケージの削除

パッケージのインストールと同様に、Yum を使用すると個々のパッケージとパッケージグループの両方をアンインストールすることができます (RPM と Yum 用語では remove に該当)。

個々のパッケージの削除

特定のパッケージとそれに依存するすべてのパッケージをアンインストールするには、root で以下のコマンドを実行して下さい:
yum remove package_name
複数のパッケージをインストールする場合と同様に、コマンドに複数のパッケージ名を追加することで一度に複数のパッケージを削除することができます。例えば、totemrhythmboxsound-juicer を削除するには、シェルプロンプトで以下のように入力します:
~]# yum remove totem rhythmbox sound-juicer
install と同じように、remove は以下の引数を取ることができます。
  • パッケージ名
  • glob 表現
  • ファイル一覧
  • パッケージが提供する機能

警告

Yum では、パッケージに依存しているパッケージを削除することなくそのパッケージを削除することはできません。こうした動作は RPM のみ実行でき、推奨されません。システムが機能しなくなる、またはアプリケーションに誤作動/クラッシュが生じる恐れがあるためです。詳細については、RPM の章の 「アンインストール」 を参照して下さい。

パッケージグループの削除

install 構文と同じ形の構文を使用してパッケージグループを削除することができます:
yum groupremove group
yum remove @group
以下は、KDE Desktop グループの削除を同等の別の方法で示しています:
~]# yum groupremove "KDE Desktop"
~]# yum groupremove kde-desktop
~]# yum remove @kde-desktop

重要

yum にパッケージグループを削除するよう伝えると、yum はそれらのパッケージが他のパッケージグループのメンバーまたは他のインストール済みのパッケージの依存関係であったとしても、そのパッケージグループ内にある全パッケージを削除します。ただし、yum に他のパッケージやグループから必要ないパッケージのみを削除するよう伝えたい場合は、/etc/yum.conf 設定ファイルの [main] セクションに groupremove_leaf_only=1 指示文を追加します。この指示文の詳細については 「[main] オプションの設定」 を参照して下さい。

6.2.6. トランザクション履歴の活用

yum history のコマンドを使用すると、ユーザーは Yum のトランザクションのタイムライン、トランザクションの発生日時、影響を受けたパッケージ数、トランザクション成功の有無、RPM データベースがトランザクション中に変更されたかどうかに関する情報を確認することができます。さらには、このコマンドを使うと、特定のトランザクションを元に戻す/やり直すことが可能です。

トランザクションの一覧表示

最近発生した 20 件のトランザクションの一覧を表示するには、 root として引数なしで yum history を実行するか、シェルプロンプトで以下を入力して下さい:
yum history list
すべてのトランザクションを表示するには、all のキーワードを追加します:
yum history list all
特定の範囲内のトランザクションのみを表示したい場合は、以下の形式でコマンドを使用します:
yum history list start_id..end_id
特定のパッケージに関するトランザクションのみを一覧表示することも可能です。そのためには、パッケージ名か glob 表現を付けてコマンドを実行します:
yum history list glob_expression
例えば、最初の 5 件のトランザクションを示した一覧は以下のようになります。
~]# yum history list 1..5
Loaded plugins: product-id, refresh-packagekit, subscription-manager
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
     5 | Jaromir ... <jhradilek>  | 2011-07-29 15:33 | Install        |    1
     4 | Jaromir ... <jhradilek>  | 2011-07-21 15:10 | Install        |    1
     3 | Jaromir ... <jhradilek>  | 2011-07-16 15:27 | I, U           |   73
     2 | System <unset>           | 2011-07-16 15:19 | Update         |    1
     1 | System <unset>           | 2011-07-16 14:38 | Install        | 1106
history list
yum history list コマンドのすべての形式は、以下のカラムで構成される各行を含む表形式出力を生成します。
  • ID — 特定のトランザクションを識別する整数値です。
  • Login user — ユーザー名です。このログインセッションはトランザクションを開始するために使用されました。この情報は、通常 Full Name <username> の形式で表示されます。ユーザーにより発行されなかったトランザクションに関しては (システムの自動更新など)、代わりに System <unset> が使用されます。
  • Date and time — トランザクションが発生した日時です。
  • Action(s)表6.1「Action 欄の指定可能な値」 の説明のとおり、トランザクション中に実行された動作の一覧です。
  • Altered表6.2「Altered 欄の指定可能な値」 の説明のとおり、トランザクションにより影響を受けたパッケージ数、場合によっては追加情報も含まれます。

表6.1 Action 欄の指定可能な値

Action 省略形 詳細
Downgrade D 1 つ以上のパッケージが旧バージョンにダウングレードされました。
Erase E 1 つ以上のパッケージが削除されました。
Install I 1 つ以上の新しいパッケージがインストールされました。
Obsoleting O 1 つ以上のパッケージが廃止として記録されました。
Reinstall R 1 つ以上のパッケージが再インストールされました。
Update U 1 つ以上のパッケージが新しいバージョンに更新されました。

表6.2 Altered 欄の指定可能な値

記号 詳細
< トランザクションが終了する前に、rpmdb データベースが Yum 以外で変更されました。
> トランザクションが終了した後に、rpmdb データベースが Yum 以外で変更されました。
* トランザクションは失敗して終了しました。
# トランザクションは正常に終了しましたが、yum はゼロ以外の終了コードを返しました。
E トランザクションは正常に終了しましたが、エラーまたは警告が表示されました。
P トランザクションは正常に終了しましたが、rpmdb データベースに問題がすでに存在していました。
s トランザクションは正常に終了しましたが、--skip-broken コマンドラインオプションが使用され、特定のパッケージが省略されました。
Yum を使用すると、過去に発生したすべてのトランザクションのサマリを表示することもできます。そのためには、root として以下の形式でコマンドを実行して下さい:
yum history summary
特定の範囲内でのトランザクションのみを表示するには、以下を入力します:
yum history summary start_id..end_id
yum history list コマンドと同様に、パッケージの名前または glob 表現を指定することで、特定のパッケージに関するトランザクションのサマリを表示することも可能です:
yum history summary glob_expression
例えば、上記に表示されたトランザクションの履歴のサマリは以下のようになります:
~]# yum history summary 1..5
Loaded plugins: product-id, refresh-packagekit, subscription-manager
Login user                 | Time                | Action(s)        | Altered 
-------------------------------------------------------------------------------
Jaromir ... <jhradilek>    | Last day            | Install          |        1
Jaromir ... <jhradilek>    | Last week           | Install          |        1
Jaromir ... <jhradilek>    | Last 2 weeks        | I, U             |       73
System <unset>             | Last 2 weeks        | I, U             |     1107
history summary
yum history summary コマンドの全形式は、yum history list の出力に似た、簡略化した表形式出力を生成します。
上記のとおり、yum history list 及び yum history summary とも、トランザクション向けに設定されています。特定のパッケージに関連するトランザクションのみを表示することができますが、パッケージバージョンのような重要な詳細は表示されません。パッケージに関連するトランザクションを一覧表示するには、root で以下のコマンドを実行して下さい:
yum history package-list glob_expression
例えば、subscription-manager 及び関連パッケージの履歴を調べるには、シェルプロンプトで以下を入力します:
~]# yum history package-list subscription-manager\*
Loaded plugins: product-id, refresh-packagekit, subscription-manager
ID     | Action(s)      | Package
-------------------------------------------------------------------------------
     3 | Updated        | subscription-manager-0.95.11-1.el6.x86_64
     3 | Update         |                      0.95.17-1.el6_1.x86_64
     3 | Updated        | subscription-manager-firstboot-0.95.11-1.el6.x86_64
     3 | Update         |                                0.95.17-1.el6_1.x86_64
     3 | Updated        | subscription-manager-gnome-0.95.11-1.el6.x86_64
     3 | Update         |                            0.95.17-1.el6_1.x86_64
     1 | Install        | subscription-manager-0.95.11-1.el6.x86_64
     1 | Install        | subscription-manager-firstboot-0.95.11-1.el6.x86_64
     1 | Install        | subscription-manager-gnome-0.95.11-1.el6.x86_64
history package-list
上記の例では、初期のシステムインストール時に subscription-managersubscription-manager-firstbootsubscription-manager-gnome の 3 パッケージがインストールされました。3 つ目のトランザクションでは、これらの全パッケージはバージョン 0.95.11 から 0.95.17 に更新されました。

トランザクションの検証

1 つのトランザクションのサマリを表示するには、root として以下の形式で yum history summary コマンドを使用します:
yum history summary id
特定のトランザクションを詳しく調べたい場合は、root で以下のコマンドを実行して下さい:
yum history info id
id の引数はオプションです。これを省略する場合は、yum は自動的に最後のトランザクションを使用します。複数のトランザクションを指定する場合は、範囲を指定することもできます:
yum history info start_id..end_id
以下は、2 つのトランザクションに関する出力のサンプルです。それぞれ新しいパッケージを 1 つインストールしています:
~]# yum history info 4..5
Loaded plugins: product-id, refresh-packagekit, subscription-manager
Transaction ID : 4..5
Begin time     : Thu Jul 21 15:10:46 2011
Begin rpmdb    : 1107:0c67c32219c199f92ed8da7572b4c6df64eacd3a
End time       :            15:33:15 2011 (22 minutes)
End rpmdb      : 1109:1171025bd9b6b5f8db30d063598f590f1c1f3242
User           : Jaromir Hradilek <jhradilek>
Return-Code    : Success
Command Line   : install screen
Command Line   : install yum-plugin-fs-snapshot
Transaction performed with:
    Installed     rpm-4.8.0-16.el6.x86_64
    Installed     yum-3.2.29-17.el6.noarch
    Installed     yum-metadata-parser-1.1.2-16.el6.x86_64
Packages Altered:
    Install screen-4.0.3-16.el6.x86_64
    Install yum-plugin-fs-snapshot-1.1.30-6.el6.noarch
history info
また、トランザクション時に使用された設定オプション、特定のパッケージをインストールしたリポジトリ及びその理由などの追加情報も閲覧できます。特定のトランザクションに関して入手可能な追加情報を知りたい場合は、root としてシェルプロンプトで以下を入力して下さい:
yum history addon-info id
yum history info と同様に、id が指定されていない場合は、yum は自動的に最新のトランザクションを使用します。別の方法として、最新のトランザクションを参照するには、last キーワードを使用することもできます:
yum history addon-info last
例えば、前述の例にある最初のトランザクションでは、yum history addon-info コマンドにより以下の出力が生成されます:
~]# yum history addon-info 4
Loaded plugins: product-id, refresh-packagekit, subscription-manager
Transaction ID: 4
Available additional history information:
  config-main
  config-repos
  saved_tx

history addon-info
この例では、3 種類の情報があります。
  • config-main — トランザクション時に使用された Yum のグローバルオプションです。グローバルオプションを変更する方法の詳細については、「[main] オプションの設定」 を参照して下さい。
  • config-repos — 個々の Yum リポジトリ用のオプションです。個々のリポジトリ用のオプションを変更する方法については、「[repository] オプションの設定」 を参照して下さい。
  • saved_tx — 別のマシンでトランザクションを繰り返すために yum load-transaction コマンドにより利用できるデータです (下記参照)。
選択した種類の追加情報を表示するには、root で以下のコマンドを実行して下さい:
yum history addon-info id information

トランザクションを元に戻す/繰り返す方法

トランザクション履歴の確認以外に、yum history コマンドは選択したトランザクションを元に戻す/繰り返す方法を提供します。トランザクションを元に戻すには、root としてシェルプロンプトで以下を入力して下さい:
yum history undo id
特定のトランザクションを繰り返すには、root で以下のコマンドを実行します:
yum history redo id
どちらのコマンドでも last キーワードを使用して、最新のトランザクションを元に戻す/繰り返すことができます。
yum history undo および yum history redo コマンドともトランザクション中に実行された手順を元に戻す/繰り返すだけである点に注意してください。トランザクションにより新しいパッケージがインストールされた場合、yum history undo コマンドはそれをアンインストールします。トランザクションによりパッケージがアンインストールされた場合、このコマンドは再度インストールします。また、このコマンドはすべての更新済みパッケージを以前のバージョンにダウングレードする試行も行います (古いパッケージが引き続き利用可能な場合)。システムを更新前の状態に復旧する必要がある場合は、「プラグインの詳細」 の説明のとおり fs-snapshot プラグインの使用を検討してください。
複数の同一システムを管理する場合、Yum を使用すると、1 つのシステム上でトランザクションを実行して、そのトランザクションの詳細をファイルに格納し、テスト期間の終了後に残りのシステム上で同じトランザクションを繰り返すことが可能です。トランザクションの詳細をファイルに格納するには、root としてシェルプロンプトで以下を入力します:
yum -q history addon-info id saved_tx > file_name
このファイルを目的のシステムにコピーしたら、root で以下のコマンドを使用してトランザクションを繰り返すことができます:
yum load-transaction file_name
ただし、ファイルに格納されている rpmdb バージョンは目的のシステムのバージョンと同一でなければならない点に注意してください。rpmdb のバージョンを調べるには、yum version nogroups コマンドを使用します。

新しいトランザクション履歴の開始

Yum は単一の SQLite データベースファイルにトランザクション履歴を格納します。新しいトランザクションの履歴を開始するには、root で以下のコマンドを実行して下さい:
yum history new
これにより /var/lib/yum/history/ ディレクトリ内に新しい空のデータベースファイルが作成されます。古いトランザクション履歴は保存されますが、新しいデータベースファイルがディレクトリにある限りアクセスすることはできません。

6.3. Yum と Yum リポジトリの設定

yum および関連ユーティリティの設定ファイルは /etc/yum.conf にあります。このファイルには、必須の [main] セクションが 1 つあり、全体に影響を与える Yum オプションを設定できます。また、1 つ以上の [repository] セクションを含むこともでき、リポジトリ固有のオプションを設定できます。ただし、/etc/yum.repos.d/ ディレクトリ内にある、新規または既存の .repo ファイルで個々のリポジトリを定義することが推奨されます。/etc/yum.conf ファイルの [main] セクションで定義する値は、個々の [repository] セクションで設定された値を上書きする場合があります。
本項では以下の方法を紹介します。
  • /etc/yum.conf 設定ファイルの [main] セクションを編集して Yum のグローバルオプションを設定する方法
  • /etc/yum.conf[repository] セクションと /etc/yum.repos.d/ ディレクトリ内の .repo ファイルを編集することで、個々のリポジトリのオプションを設定する方法
  • 動的バージョンとアーキテクチャーの値が適切に処理されるように /etc/yum.conf の Yum 変数と /etc/yum.repos.d/ ディレクトリ内のファイルを使用する方法
  • コマンドラインで Yum リポジトリを追加/有効/無効にする方法
  • カスタムの Yum リポジトリを設定する方法

6.3.1. [main] オプションの設定

/etc/yum.conf 設定ファイルには、1 つの [main] セクションが含まれます。このセクションにあるキー値ペアの中には yum の動作に影響を与えるものもあれば、Yum のリポジトリの処理方法に影響を与えるものもあります。/etc/yum.conf 内にある [main] のセクション見出しの下に、多くのオプションを追加することができます。
以下は、/etc/yum.conf 設定ファイルのサンプルです:
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=3

[コメントは省略されています ]

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
以下は、[main] セクションで最もよく使用されるオプションです。
assumeyes=value
value は以下のいずれかです。
0yum は実行する重要な動作の確認をプロンプトします。これはデフォルトです。
1yum が実行する重要な動作の確認をプロンプトしません。assumeyes=1 に設定すると、yum はコマンドラインのオプション -y が行うとの同じように実行します。
cachedir=directory
directory は、Yum がキャッシュとデータベースファイルを格納するディレクトリへの絶対パスです。デフォルトでは、Yum のキャッシュディレクトリは /var/cache/yum/$basearch/$releasever です。
$basearch 及び $releasever Yum 変数の詳細については、「Yum 変数の使用」 を参照して下さい。
debuglevel=value
value1 から 10 までの整数です。debuglevel 値を高い値に設定すると、yum はより詳しいデバッグ出力を表示します。debuglevel=0 は、デバッグ出力を無効にします。デフォルトは debuglevel=2 です。
exactarch=value
value は以下のいずれかです。
0 — パッケージの更新時には正しいアーキテクチャーを考慮に入れて実行しません。
1 — パッケージの更新時には正しいアーキテクチャーを考慮に入れて実行します。この設定では、yum はシステムにすでにインストール済みの i386 パッケージを更新するために i686 パッケージをインストールしません。これがデフォルトです。
exclude=package_name [more_package_names]
このオプションを使用すると、インストール/更新中にキーワードを使ってパッケージを除外することができます。除外する複数のパッケージを一覧表示したい場合は、パッケージを空白で区切ります。ワイルドカード (*? など) を使ったシェルグロブが使用できます。
gpgcheck=value
value は以下のいずれかです。
0 — インストールされるローカルパッケージなど、全リポジトリ内のパッケージ上での GPG 署名確認を無効にします。
1 — インストールされるローカルパッケージなど、全リポジトリ内の全パッケージ上での GPG 署名確認を有効にします。gpgcheck=1 がデフォルトであるため、すべてのパッケージ署名は確認されます。
このオプションが /etc/yum.conf ファイルの [main] セクションで設定されている場合は、全リポジトリに対して GPG 照合規則を設定します。ただし、代わりに個々のリポジトリに gpgcheck=value を設定することもできます。つまり、あるリポジトリで GPG 照合を有効にしながら別のリポジトリでは無効にすることができます。個々のリポジトリに対して対応する .repo ファイルで gpgcheck=value を設定すると、/etc/yum.conf にデフォルト値がある場合はそれを無効にします。
GPG 署名照合の詳細については、「パッケージの署名確認」 を参照して下さい。
groupremove_leaf_only=value
value は以下のいずれかです。
0yum はパッケージグループの削除時に、各パッケージの依存関係を確認 しません。この設定により、yum はパッケージが他のパッケージまたはグループにより必要とされているかどうかに関わらず、パッケージグループ内の全パッケージを削除します。デフォルトは groupremove_leaf_only=0 です。
1yum はパッケージグループの削除時に、各パッケージの依存関係を確認して、他のパッケージやグループにより必要とされていないパッケージのみを削除します。
パッケージの削除についての詳細は インテリジェントなパッケージグループの削除方法 を参照して下さい。
installonlypkgs=space separated list of packages
yumインストール は可能だが 更新 はしない、空白で区切られたパッケージの一覧を表示することができます。デフォルトでインストールのみに設定されているパッケージの一覧については、yum.conf(5) の man ページを参照して下さい。
installonlypkgs 指示文を /etc/yum.conf ファイルに追加する場合は、yum.conf(5) のinstallonlypkgs セクション下に表示されているものも含め、インストールのみである すべての パッケージを一覧表示するようにして下さい。特に、カーネルパッケージは常に installonlypkgs (デフォルトのとおり) に一覧表示するようにして下さい。また、デフォルトのカーネルがブートに失敗した場合でもバックアップカーネルを常に利用できるように、installonly_limit は常に 2 より大きい値に設定することをお勧めします。
installonly_limit=value
value は、installonlypkgs 指示文に表示されている単一のパッケージに同時にインストール可能なバージョンの最大数を表す整数です。
installonlypkgs 指示文のデフォルトには複数の様々なカーネルパッケージが含まれているため、installonly_limit の値を変更すると、単一のカーネルパッケージのインストール済みバージョンの最大数にも影響が及ぶ点に注意して下さい。/etc/yum.conf に表示されているデフォルト値は、installonly_limit=3 です。また、この値を低く、特に 2 より下に設定することは推奨されません。
keepcache=value
value は以下のいずれかです。
0 — インストールの成功後、ヘッダーとパッケージのキャッシュを保持しません。これがデフォルトです。
1 — インストールの成功後、キャッシュを保持します。
logfile=file_name
file_name は、yum がログ出力を書き込むファイルへの絶対パスです。デフォルトでは、yum/var/log/yum.log にログを記録します。
multilib_policy=value
value は以下のいずれかです。
best — このシステムに最適なアーキテクチャーをインストールします。例えば AMD64 システムに multilib_policy=best を設定すると、yum は全パッケージの 64-bit バージョンをインストールします。
all — 常に全パッケージ用の可能なあらゆるアーキテクチャーをインストールします。例えば、AMD64 システムで multilib_policyall に設定すると、yum はパッケージの i586 及び AMD64 が利用可能であれば両バージョンをインストールします。
obsoletes=value
value は以下のいずれかです。
0 — 更新の実行時に yum の obsoletes 処理ロジックを無効にします。
1 — 更新の実行時に yum の obsoletes 処理ロジックを有効にします。あるパッケージがスペックファイル内で別のパッケージを 廃止する ように宣言している場合、元のパッケージがインストールされた時に他のパッケージは元のパッケージによって置き換えられます。例えば、パッケージ名が変更された場合などに obsoletes は宣言されます。obsoletes=1 がデフォルトです。
plugins=value
value は以下のいずれかです。
0 — Yum のプラグインを全体的に無効にします。

重要

一部のプラグインは、重要な Yum サービスを提供するためすべてのプラグインを無効にすることは推奨されません。特に、rhnpluginRHN Classic へのサポートを、product-id 及び subscription-manager のプラグインは証明書ベースの Content Delivery Network (CDN) へのサポートをそれぞれ提供します。プラグインを全体的に無効にする便利なオプションもありますが、通常は Yum の使用に潜在的な問題があると判断された場合にのみ使用することが推奨されます。
1 — すべての Yum プラグインを全体的に有効にします。plugins=1 に設定した場合、ある Yum プラグインの設定ファイル内で enabled=0 を設定することでそのプラグインを無効にすることも可能です。
Yum の各種プラグインの詳細については、「Yum のプラグイン」 を参照して下さい。プラグインの制御に関する詳細は、「Yum プラグインを有効/設定/無効にする方法」 を参照して下さい。
reposdir=directory
directory.repo ファイルがあるディレクトリへの絶対パスです。すべての .repo ファイルには、リポジトリ情報 (/etc/yum.conf[repository] セクションと類似) が含まれています。yum.repo ファイル及び /etc/yum.conf ファイルの [repository] セクションからすべてのリポジトリ情報を収集し、トランザクションに使用するリポジトリのマスターの一覧を作成します。reposdir が設定されていない場合は、yum はデフォルトのディレクトリである /etc/yum.repos.d/ を使用します。
retries=value
value は、整数 0 かそれより大きい数です。この値は、エラーを返す前に yum がファイルの取得を試行する回数を設定します。これを 0 に設定すると、yum はその試行を何度も続けます。デフォルト値は 10 です。
利用可能な [main] オプションの全一覧は、yum.conf(5) の man ページ の [main] OPTIONS セクションを参照して下さい。

6.3.2. [repository] オプションの設定

[repository] セクションでは、repositorymy_personal_repo (空白は使用できません) などの一意のリポジトリ ID であるため、個々の Yum リポジトリを定義することができます。
[repository] セクションでは、以下の例のような最低限の形式が必要です:
[repository]
name=repository_name
baseurl=repository_url
すべての [repository] セクションには、以下の指示文を含む必要があります。
name=repository_name
repository_name は、リポジトリを説明する人間が読み取れる文字列です。
baseurl=repository_url
repository_url は、リポジトリの repodata ディレクトリがあるディレクトリへの URL です。
  • リポジトリが HTTP にある場合は、http://path/to/repo を使用して下さい。
  • リポジトリが FTP にある場合は、ftp://path/to/repo を使用して下さい。
  • リポジトリがマシンのローカルにある場合は、file:///path/to/local/repo を使用して下さい。
  • あるオンラインリポジトリにベーシック HTTP 認証が必要な場合は、username:password@link として URL にユーザー名とパスワードを先頭に追加して、指定することができます。例えば、http://www.example.com/repo/ にあるリポジトリがユーザー名 user とパスワード password が必要な場合、baseurl のリンクは、http://user:password@www.example.com/repo/ として指定できます。
通常この URL は以下のような HTTP リンクです:
baseurl=http://path/to/repo/releases/$releasever/server/$basearch/os/
Yum は常に URL の $releasever$arch$basearch 変数を拡張する点に注意して下さい。Yum 変数の詳細については、「Yum 変数の使用」 を参照して下さい。
以下のように便利な [repository] 指示文もあります。
enabled=value
value は以下のいずれかです。
0 — 更新及びインストールの実行時には、パッケージソースとしてこのリポジトリを含めないで下さい。これはリポジトリを迅速に有効/無効にする簡単な方法です。また、更新/インストール用に有効にしたくないリポジトリから単一のパッケージを希望する時に役立ちます。
1 — パッケージソースとしてこのリポジトリを含みます。
リポジトリのオン/オフは、--enablerepo=repo_name もしくは --disablerepo=repo_name オプションを yum に渡すか、PackageKit ユーティリティの ソフトウェアの追加/削除 ウィンドウから実行できます。
他にも多くの [repository] オプションがあります。全一覧については、yum.conf(5) の man ページの [repository] OPTIONS セクションを参照して下さい。

例6.4 /etc/yum.repos.d/redhat.repo ファイルのサンプル

以下は、/etc/yum.repos.d/redhat.repo ファイルのサンプルです:
#
# Red Hat Repositories
# Managed by (rhsm) subscription-manager
#

[red-hat-enterprise-linux-scalable-file-system-for-rhel-6-entitlement-rpms]
name = Red Hat Enterprise Linux Scalable File System (for RHEL 6 Entitlement) (RPMs)
baseurl = https://cdn.redhat.com/content/dist/rhel/entitlement-6/releases/$releasever/$basearch/scalablefilesystem/os
enabled = 1
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
sslcacert = /etc/rhsm/ca/redhat-uep.pem
sslclientkey = /etc/pki/entitlement/key.pem
sslclientcert = /etc/pki/entitlement/11300387955690106.pem

[red-hat-enterprise-linux-scalable-file-system-for-rhel-6-entitlement-source-rpms]
name = Red Hat Enterprise Linux Scalable File System (for RHEL 6 Entitlement) (Source RPMs)
baseurl = https://cdn.redhat.com/content/dist/rhel/entitlement-6/releases/$releasever/$basearch/scalablefilesystem/source/SRPMS
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
sslcacert = /etc/rhsm/ca/redhat-uep.pem
sslclientkey = /etc/pki/entitlement/key.pem
sslclientcert = /etc/pki/entitlement/11300387955690106.pem

[red-hat-enterprise-linux-scalable-file-system-for-rhel-6-entitlement-debug-rpms]
name = Red Hat Enterprise Linux Scalable File System (for RHEL 6 Entitlement) (Debug RPMs)
baseurl = https://cdn.redhat.com/content/dist/rhel/entitlement-6/releases/$releasever/$basearch/scalablefilesystem/debug
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
sslcacert = /etc/rhsm/ca/redhat-uep.pem
sslclientkey = /etc/pki/entitlement/key.pem
sslclientcert = /etc/pki/entitlement/11300387955690106.pem

6.3.3. Yum 変数の使用

yum コマンド及びすべての Yum 設定ファイル内にある以下の組み込み変数を使用/参照することができます (つまり /etc/yum.conf 及び /etc/yum.repos.d/ ディレクトリ内のすべての .repo ファイル):
$releasever
この変数を使用すると、Red Hat Enterprise Linux のリリースバージョンを参照することができます。Yum は /etc/yum.conf 設定ファイルにある distroverpkg=value の行より $releasever の値を取得します。/etc/yum.conf にそのような行がない場合は、yumredhat-release パッケージよりバージョン番号を取得することで、正しい値を導きます。
$arch
この変数を使用して、Python の os.uname() 機能を呼び出す時に返り値としてシステムの CPU アーキテクチャーを参照できます。$arch の有効な値は、i586i686x86_64 です。
$basearch
$basearch を使用すると、システムのベースアーキテクチャーを参照できます。例えば、i686 及び i586 両マシンは i386 のベースアーキテクチャーを持っており、AMD64 及び Intel64 マシンは x86_64 のベースアーキテクチャーを持っています。
$YUM0-9
これら 10 個の変数は、同じ名前を持つシェル環境変数の値とそれぞれ置換されます。これら変数のいずれかが (例えば /etc/yum.conf で) 参照され、同じ名前を持つシェル環境変数が存在しない場合は、設定ファイルの変数は置換されません。
カスタム変数の定義、既存の変数値の上書きを行うには、/etc/yum/vars/ ディレクトリ内に変数と同じ名前を持つファイルを作成して ($ 記号はなし) 、1 行目に希望する値を追加します。
例えば多くの場合、リポジトリの詳細にはオペレーティングシステムの名前が含まれます。$osname と呼ばれる新しい変数を定義するには、1 行目に Red Hat Enterprise Linux の名前を持つ新しいファイルを作成して、/etc/yum/vars/osname として保存します:
~]# echo "Red Hat Enterprise Linux" > /etc/yum/vars/osname
.repo ファイルでは、Red Hat Enterprise Linux 6 の代わりに以下を使用することができます:
name=$osname $releasever

6.3.4. 現在の設定の表示

Yum グローバルオプションの現在の値 (つまり /etc/yum.conf ファイルの [main] セクションで指定されたオプション) を表示するには、コマンドラインのオプションなしで yum-config-manager を実行します:
yum-config-manager
別の設定セクションの内容を一覧表示するには、以下の形式でコマンドを実行します:
yum-config-manager section
glob 表現を使用して、適合する全セクションの設定を表示させることもできます:
yum-config-manager glob_expression
例えば、すべての設定オプションとそれらに対応する値を一覧表示するには、シェルプロンプトで以下を入力して下さい:
~]$ yum-config-manager main \*
Loaded plugins: product-id, refresh-packagekit, subscription-manager
================================== main ===================================
[main]
alwaysprompt = True
assumeyes = False
bandwith = 0
bugtracker_url = https://bugzilla.redhat.com/enter_bug.cgi?product=Red%20Hat%20Enterprise%20Linux%206&component=yum
cache = 0
[出力は省略されています]

6.3.5. Yum リポジトリを有効/設定/無効にする方法

「[repository] オプションの設定」 では、Yum リポジトリを定義するために使用できる様々なオプションについて説明しました。本項では、yum-config-manager コマンドを使用してリポジトリを追加/有効/無効にする方法を説明します。

重要

システムが証明書ベースの Red Hat Network に登録された場合、/etc/yum.repos.d/redhat.repo ファイル内のリポジトリを管理するには Red Hat サブスクリプションマネージャ ツールを使用します。Red Hat Network へのシステムの登録方法、サブスクリプションを管理するための Red Hat サブスクリプションマネージャ ツールの使用方法については、5章システム登録およびサブスクリプションの管理 を参照して下さい。

Yum リポジトリの追加

新しいリポジトリを定義するには、[repository] セクションを /etc/yum.conf ファイルか、/etc/yum.repos.d/ ディレクトリ内の .repo ファイルに追加します。yum は、このディレクトリ内にある .repo ファイル拡張子が付いたすべてのファイルを読み取ることができます。/etc/yum.conf 内ではなくここにリポジトリを定義することを推奨します。

警告

Red Hat Network 以外の未検証または信頼できないソフトウェアソースからソフトウェアパッケージを取得してインストールする場合には、セキュリティ上のリスクが伴います。セキュリティ、安定性、互換性、保全性に関する問題が発生する恐れがあります。
通常 Yum リポジトリにはそれぞれの .repo ファイルがあります。あるリポジトリをシステムに追加して、有効にするには、root で以下のコマンドを実行します:
yum-config-manager --add-repo repository_url
repository_url.repo ファイルへのリンクです。例えば、http://www.example.com/example.repo にあるリポジトリを追加するには、シェルプロンプトで以下を入力します:
~]# yum-config-manager --add-repo http://www.example.com/example.repo
Loaded plugins: product-id, refresh-packagekit, subscription-manager
adding repo from: http://www.example.com/example.repo
grabbing file http://www.example.com/example.repo to /etc/yum.repos.d/example.repo
example.repo                                             |  413 B     00:00
repo saved to /etc/yum.repos.d/example.repo

Yum リポジトリの有効化

特定のリポジトリを有効にするには、シェルプロンプトで root として以下を入力します:
yum-config-manager --enable repository
repository は一意のリポジトリ ID です (利用可能なリポジトリ ID を一覧表示するには yum repolist all を使用)。別の方法として、glob 表現を使用すると、一致するすべてのリポジトリを有効にすることができます:
yum-config-manager --enable glob_expression
例えば、[example][example-debuginfo][example-source] セクション内で定義されたリポジトリを有効にするには、以下を入力します。
~]# yum-config-manager --enable example\*
Loaded plugins: product-id, refresh-packagekit, subscription-manager
============================== repo: example ==============================
[example]
bandwidth = 0
base_persistdir = /var/lib/yum/repos/x86_64/6Server
baseurl = http://www.example.com/repo/6Server/x86_64/
cache = 0
cachedir = /var/cache/yum/x86_64/6Server/example
[出力は省略されています]
成功すれば、yum-config-manager --enable コマンドは現在のリポジトリ設定を表示します。

Yum リポジトリの無効化

Yum リポジトリを無効にするには、root で以下のコマンドを実行して下さい:
yum-config-manager --disable repository
repository は一意のリポジトリ ID です (利用可能なリポジトリ ID を一覧表示するには yum repolist all を使用)。yum-config-manager --enable と同様に、glob 表現を使用して、一致するすべてのリポジトリを同時に無効にすることができます:
yum-config-manager --disable glob_expression
成功すれば、yum-config-manager --disable コマンドは現在の設定を表示します。

6.3.6. Yum リポジトリの作成

次のステップに従って Yum リポジトリを設定します。
  1. シェルプロンプトで root として以下を入力し、createrepo パッケージをインストールします。
    yum install createrepo
  2. リポジトリーに配置するパッケージすべてを、/mnt/local_repo/ などの一つのディレクトリーにコピーします。
  3. このディレクトリーに移動して、以下のコマンドを実行します。
    createrepo --database /mnt/local_repo
    これにより、Yum リポジトリに必要なメタデータ、さらには sqlite データベースが作成されるため yum の動作が迅速化します。

    重要

    Red Hat Enterprise Linux 5 と比較すると、Red Hat Enterprise Linux 6 の RPM パッケージは XZ 無損失データ圧縮形式で圧縮されていて、SHA-256 のような新しいハッシュアルゴリズムを使用して署名されることが可能です。このため、Red Hat Enterprise Linux 5 で createrepo コマンドを使用して、Red Hat Enterprise Linux 6 のパッケージメタデータを作成することは推奨されません。それでもこのシステム上で createrepo の使用を希望する場合は、EPEL (Extra Packages for Enterprise Linux) から python-hashlib パッケージをインストールして、レポデータも SHA-256 ハッシュアルゴリズムを使用できるようにします。

6.4. Yum のプラグイン

Yum は、動作を拡張し強化するプラグインを提供します。一部のプラグインは、デフォルトでインストールされています。yum コマンドを呼び出すといつでも、Yum はどのプラグインがロードされ、アクティブかを伝えます。例えば、以下のとおりです:
~]# yum info yum
Loaded plugins: product-id, refresh-packagekit, subscription-manager
[出力は省略されています]
Loaded plugins に続くプラグインの名前は --disableplugins=plugin_name オプションに渡す名前である点に注意して下さい。

6.4.1. Yum プラグインを有効/設定/無効にする方法

Yum プラグインを有効にするには、plugins= で始まる行が /etc/yum.conf[main] セクションにあり、値が 1 であるようにします。
plugins=1
すべてのプラグインを無効にするには、この行を plugins=0 に変更します。

重要

一部のプラグインは、重要な Yum サービスを提供するためすべてのプラグインを無効にすることは推奨されません。特に、rhnpluginRHN Classic へのサポートを、product-id 及び subscription-manager のプラグインは証明書ベースの Content Delivery Network (CDN) へのサポートをそれぞれ提供します。プラグインを全体的に無効にする便利なオプションもありますが、通常は Yum の使用に潜在的な問題があると判断された場合にのみ使用することが推奨されます。
すべてのインストールされたプラグインは、/etc/yum/pluginconf.d/ ディレクトリにそれぞれの設定ファイルを持っています。これらのファイルでプラグイン固有のオプションを設定できます。例えば、以下のように refresh-packagekit プラグインの refresh-packagekit.conf 設定ファイルがあるとします:
[main]
enabled=1
プラグインの設定ファイルには常に [main] セクション (Yum の /etc/yum.conf ファイルに類似) があります。そこには、 yum コマンドの実行時にプラグインが有効かどうかを制御する enabled= オプションがあります (ない場合は設定可能)。
/etc/yum.confenabled=0 に設定することですべてのプラグインを無効にする場合は、すべてのプラグインは個々の設定ファイルで有効かどうかに関わらず無効になります。
単一の yum コマンドですべての Yum プラグインを無効にしたいだけなら、--noplugins オプションを使用します。
単一の yum コマンドで 1 つ以上の Yum プラグインを無効にしたい場合は、コマンドに --disableplugin=plugin_name オプションを追加します。例えば、システムの更新中に presto プラグインを無効にするには、以下を入力します:
~]# yum update --disableplugin=presto
--disableplugin= オプションに渡すプラグインの名前は、yum コマンドの出力内にある Loaded plugins の行の後に表示されている名前と同じです。複数のプラグインを無効にするには、名前をカンマで区切ります。さらに glob 表現を使用すると、複数のプラグイン名の適合や名前の短縮を行うことができます:
~]# yum update --disableplugin=presto,refresh-pack*

6.4.2. 追加の Yum プラグインのインストール

通常 Yum プラグインは yum-plugin-plugin_name パッケージの命名規則に準拠しますが、常にとは限りません。例として presto プラグインを提供するパッケージの名前は、yum-presto です。Yum プラグインのインストールは、他のパッケージをインストールする場合と同じように実行できます。例えば、security プラグインをインストールするには、シェルプロンプトで以下を入力します:
~]# yum install yum-plugin-security

6.4.3. プラグインの詳細

以下の一覧は、便利な Yum プラグインの詳細です。
fs-snapshot (yum-plugin-fs-snapshot)
fs-snapshot プラグインは、システムの更新やパッケージ削除などのトランザクションを続行する前に、Yum を拡張してファイルシステムのスナップショットを作成します。これにより、トランザクションにより加えられた変更が望ましくない場合は、ユーザーはスナップショットに格納された変更まで遡ることができます。
プラグインが機能するには、root のファイルシステム (/) は LVM (論理ボリュームマネージャー) か Btrfs ボリュームにある必要があります。LVM ボリュームで fs-snapshot プラグインを使用するには、以下の手順を実行します。
  1. root のファイルシステムがあるボリュームグループに十分な空きエクステントがあることを確認します。必要なサイズは、スナップショットの使用中に予想される元の論理ボリュームへ加わる変更の大きさの関数です。適当なデフォルトは、元の論理ボリュームサイズの 50–80 % です。
    特定のボリュームグループに関する詳しい情報を表示するには、以下の形式で root として vgdisplay コマンドを実行して下さい:
    vgdisplay volume_group
    空きエクステントの数は Free PE / Size の行に記載されています。
  2. root のファイルシステムがあるボリュームグループに十分な空きエクステントがない場合は、新しい物理ボリュームを追加します。
    1. 以下の形式で rootpvcreate コマンドを実行して、論理ボリュームマネージャーで使用するために物理ボリュームを初期化します:
      pvcreate device
    2. 以下の形式で rootvgextend コマンドを使用して、ボリュームグループに物理ボリュームを追加します:
      vgextend volume_group physical_volume
  3. /etc/yum/pluginconf.d/fs-snapshot.conf にある設定ファイルを編集して、[lvm] セクションに次の変更を加えます。
    1. enabled オプションの値を 1 に変更します:
      enabled = 1
    2. lvcreate_size_args の行の始めにあるハッシュ記号 (#) を削除して、スナップショットに割り振る論理エクステントの数を調整します。例えば、元の論理ボリュームサイズの 80 % を割り振るには、以下のようにします。
      lvcreate_size_args = -l 80%ORIGIN
    利用可能な設定オプションの全一覧については、表6.3「サポートされている fs-snapshot.conf 指示文」 を参照して下さい。
  4. 変更を確認してトランザクションを続行する前に、希望する yum コマンドを実行して、fs-snapshot がロード済みプラグイン (Loaded plugins の行) の一覧に含まれていることを確認して下さい。fs-snapshot プラグインは、それぞれ影響を受ける論理ボリュームに対して以下の形式で行を表示します:
    fs-snapshot: snapshotting file_system (/dev/volume_group/logical_volume): logical_volume_yum_timestamp
  5. システムが適切に機能していることを確認します。
    • 変更を維持したい場合は、rootlvremove コマンドを実行してスナップショットを削除します:
      lvremove /dev/volume_group/logical_volume_yum_timestamp
    • 変更を元に戻してファイルシステムをスナップショットに保存した状態に復旧させたい場合は、以下の手順を実行します。
      1. 以下の形式で root としてコマンドを実行して、スナップショットを元の論理ボリュームにマージします:
        lvconvert --merge /dev/volume_group/logical_volume_yum_timestamp
        lvconvert コマンドは、変更を反映させるために再起動が必要であると通知します。
      2. 指示どおりにシステムを再起動します。root としてシェルプロンプトで以下を入力します:
        reboot
Btrfs ファイルシステムで fs-snapshot プラグインを使用するには、以下の手順を実行します。
  1. 変更を確認してトランザクションを続行する前に、希望する yum コマンドを実行して、fs-snapshot がロード済みプラグイン (Loaded plugins の行) の一覧に含まれていることを確認して下さい。fs-snapshot プラグインは、それぞれ影響を受けるファイルシステムに対して以下の形式で行を表示します:
    fs-snapshot: snapshotting file_system: file_system/yum_timestamp
  2. システムが適切に機能していることを確認します。
    • 変更を保存する場合は、オプションとして必要ないスナップショットを削除することができます。Btrfs スナップショットを削除するには、root で以下の形式でコマンドを実行します:
      btrfs subvolume delete file_system/yum_timestamp
    • 変更を元に戻してファイルシステムをスナップショットに保存した状態に復旧させたい場合は、以下の手順を実行します:
      1. root として以下のコマンドを使用して、特定のスナップショットの識別子を見つけ出します:
        btrfs subvolume list file_system
      2. デフォルト設定でこのスナップショットをマウントするよう root としてシステムを設定します:
        btrfs subvolume set-default id file_system
      3. システムを再起動します。root としてシェルプロンプトで以下を入力します:
        reboot
Red Hat Enterprise Linux 6 では、Btrfs がテクノロジープレビューとして含まれているため、このファイルシステムで試すことができます。Btrfs は 64-bit x86 アーキテクチャーでのみ利用可能です。重要なデータが含まれるパーティションや重要なシステム動作に不可欠なパーティションには Btrfs を使用しないで下さい。
論理ボリュームの管理、Btrfs、ファイルシステムのスナップショットの詳細については、Red Hat Enterprise Linux 6 Storage Administration Guide (ストレージ管理ガイド) を参照して下さい。プラグインとその設定の追加情報については、yum-fs-snapshot(1) 及び yum-fs-snapshot.conf(5) の man ページを参照して下さい。

表6.3 サポートされている fs-snapshot.conf 指示文

セクション 指示文 詳細
[main] enabled=value プラグインを有効/無効にできます。value1 (有効)/0 (無効) にする必要があります。インストール時には、プラグインはデフォルトで有効です。
exclude=list 特定のファイルシステムを除外できます。値は、スナップショットの実行を 望まない 空白で区切られたマウントポイントの list でなければなりません (例えば /srv /mnt/backup)。このオプションはデフォルトでは設定ファイルに含まれていません。
[lvm] enabled=value LVM ボリュームでのプラグインの使用を有効/無効にできます。value1 (有効)/0 (無効) にする必要があります。このオプションはデフォルトでは無効です。
lvcreate_size_args=value 論理ボリュームスナップショットのサイズを指定できます。value は、lvcreate ユーティリティとそれに続く有効な引数に対する -l または -L コマンドラインのオプションである必要があります (例えば -l 80%ORIGIN)。
kabi (kabi-yum-plugins)
kabi プラグインは、ドライバー更新パッケージが公式の Red Hat kernel Application Binary Interface (kABI) と適合するかどうかを確認します。このプラグインが有効な状態で、ユーザーがホワイトリストにないカーネルシンボルを使用するパッケージのインストールを試行する場合、警告メッセージがシステムログに書き込まれます。さらには、プラグインを enforcing モードで実行するよう設定すると、そうしたパッケージが決してインストールされないようにできます。
kabi プラグインを設定するには、/etc/yum/pluginconf.d/kabi.conf にある設定ファイルを編集して下さい。[main] セクションで使用できる指示文の一覧については、表6.4「サポートされている kabi.conf 指示文」 を参照して下さい。

表6.4 サポートされている kabi.conf 指示文

指示文 詳細
enabled=value プラグインを有効/無効にできます。value1 (有効)/0 (無効) にする必要があります。インストール時には、プラグインはデフォルトで有効です。
whitelists=directory サポートされているカーネルシンボルを持つファイルがある directory を指定できます。デフォルトでは、kabi プラグインは kabi-whitelists パッケージ (/lib/modules/kabi/ ディレクトリ) により提供されるファイルを使用します。
enforce=value enforcing モードを有効/無効にできます。value1 (有効)/0 (無効) にする必要があります。デフォルトでは、このオプションはコメントアウトされ kabi プラグインは警告メッセージのみを表示します。
presto (yum-presto)
presto プラグインは Yum を強化して、presto メタデータが有効なリポジトリから更新中に 差分 RPM パッケージをダウンロードします。差分 RPM に含まれるのは、RPM パッケージを要求するクライアントでインストールされたパッケージのバージョンとリポジトリにある更新済みバージョンの差分のみです。
差分 RPM のダウンロードは、更新済みのパッケージ全体をダウンロードするよりもはるかに迅速で、更新を大幅にスピードアップできます。差分 RPM がダウンロードされたら、現在インストール済みのパッケージに差分を適用して、完全に更新されたパッケージを作成するために RPM をリビルドする必要があります。このプロセスはインストールされたマシンでの CPU の時間を消費します。よって、差分 RPM を使用することは、ネットワーク接続次第であるダウンロードの時間と、CPU バウンドなリビルドの時間とのトレードオフになります。遅いネットワーク接続を使用する高速なマシンとシステムには、presto プラグインを使用することが推奨されます。一方で、非常に高速な接続を使用する遅いマシンには、通常の RPM パッケージをダウンロードする、つまり presto を無効にすることでより利点があります。
product-id (subscription-manager)
product-id プラグインは、Content Delivery Network (コンテンツ配信ネットワーク) からインストールされた製品の製品識別証明書を管理します。product-id プラグインはデフォルトでインストールされています。
protect-packages (yum-plugin-protect-packages)
protect-packages プラグインは、yum パッケージとそれが依存するすべてのパッケージが故意にまたは誤って削除されないようにします。これで、システムを実行するために必要な多くの最重要パッケージが削除されないようにします。加えて、1 行につき 1 つずつパッケージを /etc/sysconfig/protected-packages ファイルに一覧表示できます[2] (そのファイルがなければ作成して下さい)。また、protect-packages はそうしたパッケージも削除されないようにします。
パッケージの保護を一時的に無効にするには、該当する yum コマンドに --override-protection オプションを付けて使用します。
refresh-packagekit (PackageKit-yum-plugin)
refresh-packagekit プラグインは、yum を実行する時はいつでも PackageKit のメタデータを更新します。refresh-packagekit プラグインはデフォルトでインストールされています。
rhnplugin (yum-rhn-plugin)
rhnplugin を使用すると RHN Classic へ接続できます。これにより、RHN Classic に登録しているシステムはこのシステムからパッケージの更新/インストールを行うことができます。Red Hat Enterprise Linux 6 への移行のため、RHN Classic が備わっているのは 旧 Red Hat Enterprise Linux システム (Red Hat Enterprise Linux 4.x、Red Hat Enterprise Linux 5.x 及び Satellite 5.x) のみである点に注意して下さい。rhnplugin はデフォルトでインストールされています。
プラグインの詳細については、rhnplugin(8) の man ページを参照してください。
security (yum-plugin-security)
セキュリティ更新に関する情報を見つけ出して、簡単かつ頻繁に適用することは、どのシステム管理者にとっても重要です。このため、Yum は security プラグインを提供します。このプラグインは、非常に有用なセキュリティ関連のコマンド、サブコマンド及びオプションのセットにより yum を拡張します。
以下のように、セキュリティ関連の更新を確認できます:
~]# yum check-update --security
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
Updating Red Hat repositories.
INFO:rhsm-app.repolib:repos updated: 0
Limiting package lists to security relevant ones
Needed 3 of 7 packages, for security
elinks.x86_64                   0.12-0.13.el6               rhel
kernel.x86_64                   2.6.30.8-64.el6             rhel
kernel-headers.x86_64           2.6.30.8-64.el6             rhel
yum update --security または yum update-minimal --security を使用すると、セキュリティアドバイザリーの影響を受けるパッケージを更新することができます。どちらのコマンドとも、セキュリティアドバイザリーが発行されたシステム上の全パッケージを更新します。yum update-minimal --security は、それらをセキュリティアドバイザリーの一部としてリリースされた最新パッケージに更新します。一方で、yum update --security はセキュリティアドバイザリーの影響を受ける全パッケージを 利用可能なパッケージの最新版に 更新します。
言い換えると以下のようになります。
  • kernel-2.6.30.8-16 パッケージがシステムにインストールされており、
  • kernel-2.6.30.8-32 パッケージがセキュリティ更新としてリリースされ、
  • その後、kernel-2.6.30.8-64 がバグ修正の更新としてリリースされた場合は、
yum update-minimal --security によって kernel-2.6.30.8-32 に更新され、yum update --security により kernel-2.6.30.8-64 に更新されます。慎重なシステム管理者であれば、update-minimal を使用して、パッケージを更新することで生じるリスクをできるだけ減らすとよいでしょう。
security プラグインが yum に追加する拡張機能の詳しい使用方法と説明については、yum-security(8) の man ページを参照して下さい。
subscription-manager (subscription-manager)
subscription-manager プラグインを使用すると、Red Hat Network へ接続できます。これで Red Hat Network に登録されたシステムは、証明書ベースのコンテンツ配信ネットワークからパッケージの更新/インストールを行うことができます。subscription-manager プラグインは、デフォルトでインストールされています。
製品のサブスクリプションとエンタイトルメントの管理方法については、5章システム登録およびサブスクリプションの管理 を参照して下さい。
yum-downloadonly (yum-plugin-downloadonly)
yum-downloadonly プラグインは、Red Hat Network または設定した Yum リポジトリからパッケージをインストールせずにダウンロードするのために使用する --downloadonly コマンドラインオプションを提供します。
パッケージをインストールするには、「追加の Yum プラグインのインストール」 の手順に従います。インストール後は、プラグインが有効になっていることを /etc/yum/pluginconf.d/downloadonly.conf ファイルの内容で確認してください。
~]$ cat /etc/yum/pluginconf.d/downloadonly.conf
[main]
enabled=1
以下の例では、yum install --downloadonly コマンドを実行して httpd パッケージの最新バージョンをインストールせずにダウンロードします。
~]# yum install httpd --downloadonly
Loaded plugins: downloadonly, product-id, refresh-packagekit, rhnplugin,
              : subscription-manager
Updating Red Hat repositories.
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.2.15-9.el6_1.2 will be updated
---> Package httpd.x86_64 0:2.2.15-15.el6_2.1 will be an update
--> Processing Dependency: httpd-tools = 2.2.15-15.el6_2.1 for package: httpd-2.2.15-15.el6_2.1.x86_64
--> Running transaction check
---> Package httpd-tools.x86_64 0:2.2.15-9.el6_1.2 will be updated
---> Package httpd-tools.x86_64 0:2.2.15-15.el6_2.1 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package        Arch      Version                 Repository               Size
================================================================================
Updating:
 httpd          x86_64    2.2.15-15.el6_2.1       rhel-x86_64-server-6    812 k
Updating for dependencies:
 httpd-tools    x86_64    2.2.15-15.el6_2.1       rhel-x86_64-server-6     70 k

Transaction Summary
================================================================================
Upgrade       2 Package(s)

Total download size: 882 k
Is this ok [y/N]: y
Downloading Packages:
(1/2): httpd-2.2.15-15.el6_2.1.x86_64.rpm                | 812 kB     00:00     
(2/2): httpd-tools-2.2.15-15.el6_2.1.x86_64.rpm          |  70 kB     00:00     
--------------------------------------------------------------------------------
Total                                           301 kB/s | 882 kB     00:02     


exiting because --downloadonly specified
デフォルトでは、--downloadonly オプションを使用してダウンロードされたパッケージは、Red Hat Enterprise Linux のバリアントやアーキテクチャーに応じて /var/cache/yum ディレクトリのサブディレクトリに保存されます。
パッケージを保存する別のディレクトリを指定したい場合は、--downloadonly とともに --downloaddir オプションを渡します。
~]# yum install --donwloadonly --downloaddir=/path/to/direcotry httpd

注記

yum-downloadonly プラグインに代わるものとして、パッケージをインストールせずにダウンロードするために yum-utils パッケージにより提供される yumdownloader ユーティリティを使用することができます。

6.5. その他のリソース

http://yum.baseurl.org/wiki/Guides
Yum wiki の Yum Guides セクションには多くのドキュメントが記載されています。


[2] /etc/sysconfig/protected-packages.d/ ディレクトリに .list の拡張子が付いたファイルを置くことも可能です (そのディレクトリがなければ作成して下さい)。また、これらのファイルに 1 行に 1 つずつパッケージを一覧表示することもできます。protect-packages はこれらも保護します。

第7章 PackageKit

Red Hat は、システムと互換性があるパッケージを表示、管理、更新、インストール、アンインストールする PackageKit を提供しています。PackageKit は数種類のグラフィカルインターフェースで構成されおり、これは GNOME パネルメニューまたは利用可能な更新を PackageKit が警告する際に表示される通知スペースから開くことができます。PackageKit のアーキテクチャと利用可能なフロントエンドの詳細は 「PackageKit アーキテクチャ」 を参照してください。

7.1. ソフトウェア更新を使ったパッケージ更新

PackageKit は、システムにインストールできる更新があるといつでも通知スペースに星形のアイコンを表示します。
通知スペースにある PackageKit のアイコン

図7.1 通知スペースにある PackageKit のアイコン

通知アイコンをクリックすると、Software Update (ソフトウェア更新) ウィンドウが開きます。別の方法として、GNOME パネルから システム管理ソフトウェア更新 の順にクリックするか、シェルプロンプトで gpk-update-viewer コマンドを実行しても同様に ソフトウェア更新 を開くことができます。ソフトウェア更新 ウィンドウでは、更新されるパッケージの名前 (.rpm の接尾辞なし、ただし CPU アーキテクチャは含む) 、パッケージの簡単なサマリ、及び通常は更新に伴う変更の簡単な説明と併せて、すべての利用可能な更新が表示されています。インストールしたくない更新がある場合は、該当する更新のチェックボックスからチェックマークを外してください。
ソフトウェア更新を使用した更新のインストール

図7.2 ソフトウェア更新を使用した更新のインストール

ソフトウェア更新 ウィンドウに提示された更新は、システムに現在インスト-ルされているパッケージの内、更新が利用できるものだけを示しています。これらのパッケージの依存関係、及びシステム上のパッケージが既存のものか、あるいは新規のものかは Install Updates (更新のインスト-ル) をクリックするまで表示されません。
ユーザーが PackageKit に対してシステムへの変更を要求すると、 PackageKit は PolicyKit ツールキットが提供するきめの細かいユーザー認証機能を活用します。PackageKit にパッケージの更新、インスト-ル、あるいは削除を指示すると、システムに変更を加える前にスーパーユーザーのパスワード入力を要求されます。
PackageKit に kernel パッケージの更新を指示すると、インストール後にシステムを再起動して新しくインストールされたカーネルでのブートを希望するか確認します。

更新の確認頻度の設定

PackageKit の通知スペースのアイコンを右クリックして、詳細設定 をクリックすると、ソフトウェア更新の詳細設定 ウィンドウが開きます。そこでは、PackageKit のパッケージ更新の確認頻度や自動的にインストールするのすべての更新か、またはセキュリティの更新だけかも定義することができます。モバイルブロードバンド使用時に更新を確認する のボックスのチェックマークを外すと、ダウンロードしたデータ量で課金されるワイヤレス接続を使用している時に無関係な帯域幅の使用を回避できるので便利です。
PackageKit の更新の確認頻度の設定

図7.3 PackageKit の更新の確認頻度の設定

7.2. ソフトウェアの追加/削除の使用

新規パッケージを検索してインストールするには、GNOME パネルで システム管理ソフトウェアの追加/削除 の順にクリックするか、シェルプロンプトで gpk-application コマンドを実行します。
PackageKit のソフトウェアの追加/削除ウィンドウ

図7.4 PackageKit のソフトウェアの追加/削除ウィンドウ

7.2.1. ソフトウェアソースを最新の情報への更新 (yum リポジトリ)

PackageKit は、Yum リポジトリをソフトウェアソースとして参照します。ここには、有効なソフトウェアソースからのパッケージすべてが含まれています。設定済み でフィルターされていない (以下を参照) Yum リポジトリの一覧をすべて表示するには、ソフトウェアの追加/削除 を開いて、システムソフトウェアソース をクリックします。ソフトウェアソース ダイアログは、/etc/yum.conf 設定ファイル内の [repository] セクションすべての name=<My Repository Name> フィールドと、 /etc/yum.repos.d/ ディレクトリ内のすべての repository.repo ファイルに記述されているリポジトリー名を表示します。
有効 のコラムにチェックマークが入ったエントリは、更新およびインストールのリクエスト (依存関係の解決を含む) を満たすパッケージの特定に対応するリポジトリが使用されることを示しています。このチェックボックスの選択/非選択で、一覧の Yum リポジトリの有効化/無効化ができます。これを実行すると、PolicyKit がスーパーユーザーの認証を要求することに注意してください。
有効 のコラムは、[repository] セクションの enabled=<1 or 0> フィールドに該当します。チェックマークを選択すると、正しい [repository] セクションに enabled=<1 or 0> 行がない場合は PackageKit がこれを挿入し、ある場合は値を変更します。つまり、ソフトウェアソース ウィンドウでリポジトリを有効/無効にすると、ウィンドウを閉じた後やシステムを再起動した後でもその変更は保たれます。
PackageKit では yum リポジトリを追加または削除することはできない点に注意してください。

注記

ソフトウェアソース ウィンドウの最下部のボックスにチェックマークを入れると、PackageKit はソース RPM、テスト、debuginfo のリポジトリも表示します。このボックスはデフォルトではチェックマークは入っていません。
利用可能な Yum リポジトリに変更を加えた後、システムパッケージ一覧をリフレッシュ をクリックして、パッケージ一覧が最新であることを確認します。

7.2.2. フィルターを使ったパッケージ検索

ソフトウェアソースの更新後は、フィルタを使用するとPackageKit がより速く 検索 クエリの結果を取得できるようなり、役立つ場合が多くあります。これは多くのパッケージ検索を行っている際に特に役立ちます。フィルター のドロップダウンメニューにある 4 つのフィルターは、1 つの基準の一致/不一致で結果を絞り込みます。PackageKit の起動時にはデフォルトでどのフィルターも適用されていませんが (フィルタなし)、どれか 1 つでフィルタを使用すると、そのフィルタは変更するか PackageKit を閉じるまで適用されたままになります。
通常はシステム上にインスト-ルされていない 利用可能なパッケージを検索するので、フィルタインスト-ル済 とクリックして、利用可能のみ ラジオボタンを選択します。
すでにインストール済みのパッケージをフィルターにかけて除外する

図7.5 すでにインストール済みのパッケージをフィルターにかけて除外する

また、C ヘッダーファイルなどの開発ファイル必要でなければ、フィルタ開発 をクリックして、エンドユーザーファイルのみ のラジオボタンを選択します。これにより、関係のない <package_name>-devel パッケージすべてを除外できます。
検索結果の一覧から開発パッケージをフィルターにかけて除外する

図7.6 検索結果の一覧から開発パッケージをフィルターにかけて除外する

サブメニューにある残りの 2 つのフィルターは、以下のとおりです。
グラフィカル
GUI インターフェースを提供するアプリケーション (グラフィカルのみ) か、提供しないアプリケーションかのどちらかに検索を絞り込みます。このフィルターは、特定の機能を実行する GUI アプリケーションを閲覧したい場合に役立ちます。
未使用
フリーソフトウェアと考慮されているパッケージの検索をします。認定ライセンスの詳細については、Fedora Licensing List を参照して下さい。
これらのフィルターは、チェックボックスを選択することで有効にできます。
サブパッケージを隠す
サブパッケージを隠す チェックボックスにチェックを入れると、必要となる他のパッケージに依存している典型的な関心の無いパッケージをフィルターで除外します。例えば、Hide subpackages(サブパッケージを隠す) にチェックを入れて、<package> を検索すると、以下のような関連したパッケージが Find (検索) 結果からフィルターで除外されます (存在する場合) :
  • <package>-devel
  • <package>-libs
  • <package>-libs-devel
  • <package>-debuginfo
最新パッケージのみ
最新パッケージのみ にチェックマークを入れると、結果一覧から同一パッケージの以前のバージョンすべてが除外され、これが通常望まれる結果です。多くの場合、このフィルターは 利用可能のみ フィルターと併用され、新しい (インストール済みでない) パッケージの利用可能な最新バージョンの検索に使われます。
ネイティブパッケージのみ
multilib システム上で ネイティブパッケージのみ のボックスにチェックマークを入れると、PackageKit互換モード で実行するアーキテクチャ用にコンパイルされたパッケージの結果一覧を除外します。例えば、 AMD64 CPU 搭載の 64 ビットシステムでこのフィルターを有効にすると、AMD64 マシン上で実行できるものでも、32 ビットの x86 CPU アーキテクチャ用にビルドされたパッケージはすべて、結果一覧には表示されません。アーキテクチャー不問であるパッケージ (crontabs-1.10-32.1.el6.noarch.rpm などの noarch パッケージ) は、ネイティブパッケージのみ にチェックマークを入れてもフィルターで除外されることはありません。このフィルターは、x86 マシンのような multilib でないシステムには影響はありません。

7.2.3. パッケージ (及び依存関係) のインストールと削除

利用可能のみエンドユーザーファイルのみ の 2 つのフィルターを選択した状態で、コマンドラインの screen ウィンドウマネジャーを検索して、パッケージをハイライト表示にします。これでパッケージに関する便利な情報にアクセスできる状態になりました。例えば、プロジェクトホームページへのクリック可能なリンク、そのパッケージがある Yum パッケージグループ (ある場合)、パッケージのライセンス、該当する場合はアプリケーションを開く GNOME メニューの場所へのポインター、パッケージをダウンロードしてインストールする際に関係してくるパッケージサイズ、などです。
PackageKit のソフトウェアの追加/削除ウィンドウでのパッケージの表示とインストール

図7.7 PackageKit のソフトウェアの追加/削除ウィンドウでのパッケージの表示とインストール

パッケージやグループの隣にあるボックスにチェックマークが入っていれば、その項目はシステムにすでにインストール済みであることを示します。チェックが入っていないボックスにチェックマークを入れると、インストールするために 指定する ことになり、適用 ボタンをクリックした時にのみ実行されます。このように、実際のインストール処理が実行される前に複数のパッケージまたはパッケージグループを検索して、選択することができます。さらに、インストール済みパッケージのチェックマークを外すとそれらを削除することもでき、削除は 適用 を押した時に保留中のインストールとともに実施されます。依存関係の解決は、インストールまたは削除するパッケージを追加する場合があり、適用 を押すと実施されます。PackageKit は、インストールまたは削除されるそれらの追加パッケージをウィンドウに一覧表示し、続行の確認を求めます。
screen を選択し、適用 ボタンをクリックします。すると、スーパーユーザーのパスワードを求められ、これを入力すると PackageKit が screen をインスト-ルします。インスト-ル完了後に、PackageKit は新規にインスト-ルされたアプリケーションの一覧を提示してそれらをすぐに実行する選択を提供することがあります。また、ソフトウェアの追加/削除 ウィンドウでパッケージを検索して選択すると、GNOME メニューでそのアプリケーションショートカットがある 場所 が表示され、パッケージ実行の際に役立ちます。
インスト-ルが終了すると、シェルプロンプトで screen を入力すると、1つのターミナルで複数のログインができるようにするスクリーンマネージャである screen を実行できます。
screen は便利なユーティリティですが、必要ないと判断してアンインストールするとします。これをインストールする際に使った 利用可能のみ フィルターを、フィルタインストール済インストール済のみ に変更し、screen を再度検索して、チェックマークを外します。プログラムはそれ自体の依存関係はインストールしていません。依存関係があったとしても、システムにまだインストールされている他のパッケージの依存関係でない限り、それらも自動的に削除されます。

警告

PackageKit はパッケージのインストールおよび削除の際に自動的に依存関係を解決しますが、該当パッケージに依存する他のパッケージを削除しないとこのパッケージの削除はできません。こうしたタイプの操作は RPM でのみ実行可能で、推奨されるものではありません。システムが機能しなくなるか、アプリケーションが誤作動/クラッシュする恐れがあります。
PackageKit のソフトウェアの追加/削除ウィンドウでのパッケージの削除

図7.8 PackageKit のソフトウェアの追加/削除ウィンドウでのパッケージの削除

7.2.4. パッケージグループのインストールと削除

PackageKit は、Yum パッケージグループのインストールもでき、これを パッケージのコレクション と呼びます。ソフトウェア更新 ウィンドウ内のカテゴリの左上にある パッケージのコレクション をクリックすると、スクロールして、インストールしたいパッケージグループを見つけることができます。ここでは、チェコ語のサポート (Czech Support (チェコ語のサポート) のグループ) をインストールしたいとします。ボックスにチェックマークを入れて、適用 をクリックすると、パッケージグループの依存関係を満たすためにインストールが必要な 追加 パッケージの数がわかります。
チェコ語のサポートのパッケージグループのインストール

図7.9 チェコ語のサポートのパッケージグループのインストール

同様に、インストール済みのパッケージグループをアンインストールするには、パッケージのコレクション を選択して、適切なボックスのチェックマークを外して適用します。

7.2.5. トランザクションログの表示

PackageKit は、実行するトランザクションのログを維持します。ログを表示するには、ソフトウェアの追加/削除 ウィンドウから システムソフトウェアログ をクリックするか、シェルプロンプトで gpk-log コマンドを実行します。
ソフトウェアログビューア は以下の情報を表示します。
  • 日付 — トランザクションが実行された日付。
  • アクション — トランザクション中に実行されたアクション。例としては、Updated packages (パッケージの更新) Installed packages (パッケージのインストール)
  • 詳細Updated (更新) Installed (インストール) Removed (削除) などのトランザクションの種類の後に、対象となるパッケージ一覧を表示。
  • ユーザー名 — アクションを実行したユーザーの名前。
  • アプリケーション — アクションの実行に使用されたフロントエンドアプリケーション。例えば、Update System (システム更新)
最上部のテキスト入力欄にパッケージ名を入力すると、トランザクションの一覧がフィルターされ、パッケージに影響があったトランザクションログを表示します。
ソフトウェアログビューアを使ったパッケージ管理のトランザクションログの表示

図7.10 ソフトウェアログビューアを使ったパッケージ管理のトランザクションログの表示

7.3. PackageKit アーキテクチャ

Red Hat は、システムと互換性があるパッケージおよびパッケージグループの表示、更新、インストール、アンインストールを行うための PackageKit アプリケーションスイートを提供します。PackageKit のアーキテクチャ は、バックエンドの packagekitd デーモンと通信する数種のグラフィカルフロンドエンドで構成されています。バックエンドの packagekitd デーモンは、Yum を利用してパッケージのインストールや削除など実際のトランザクションを実行するパッケージマネージャ固有のバックエンドと通信します。
表7.1「PackageKit の GUI ウィンドウ、メニューの場所、シェルプロンプトのコマンド」 では、GUI ウィンドウ名、GNOME デスクトップまたは ソフトウェアの追加/削除 ウィンドウから GUI ウィンドウを起動する方法、 GUI ウィンドウを開くコマンドラインのアプリケーション名を示しています。

表7.1 PackageKit の GUI ウィンドウ、メニューの場所、シェルプロンプトのコマンド

ウィンドウのタイトル 機能 開き方 シェルコマンド
ソフトウェアの追加/削除 パッケージ情報のインストール、削除、表示
GNOME パネルより、システム管理ソフトウェアの追加/削除 を選択
gpk-application
ソフトウェア更新 パッケージの更新を実行
GNOME パネルより、システム管理ソフトウェア更新 を選択
gpk-update-viewer
ソフトウェアソース Yum リポジトリーの有効/無効化
ソフトウェアの追加/削除 より、システムソフトウェアソース を選択
gpk-repo
ソフトウェアログビューア トランザクションログの表示
ソフトウェアの追加/削除 より、システムソフトウェアログ を選択
gpk-log
ソフトウェア更新の詳細設定 PackageKit の詳細設定 gpk-prefs
(通知スペースでの警告) 更新が利用可能時に通知
GNOME パネルより、システム詳細設定Startup Applications (自動起動するアプリ), Startup Programs (自動起動するプログラム) タブを選択
gpk-update-icon
packagekitd デーモンは、ユーザーセッションの外で実行し、様々なグラフィカルなフロントエンドと通信します。packagekitd デーモンは、[3] DBus システムメッセージバスを経由して、別のバックエンドと通信します。これは、Yum の Python API を利用してクエリを実行し、システムに変更を加えます。Red Hat と Fedora 以外の Linux システムでは、packagekitd はそのシステムのネイティブのパッケージマネージャーの利用が可能な他のバックエンドと通信することができます。このモジュラーアーキテクチャは、グラフィカルインターフェースが多くの異なるパッケージマネージャーと共に動作して本質的に同じ種類のパッケージ管理タスクを実行するために必要な抽象化を提供します。PackageKit のフロンドエンドの使用方法を学ぶと、Yum 以外のネイティブのパッケージマネージャを利用している時でも、多くの様々な Linux ディストリビューションにわたって、なじみのある同じグラフィカルインターフェースを使用することができます。
さらに、PackageKit の関与事項の分離により、GUI ウィンドウの 1 つに クラッシュが生じても (またはユーザーの X Window セッションでも) 、ユーザーセッションの外で実行する packagekitd デーモンが監視しているパッケージ管理タスクに影響を与えない、という信頼性を提供します。
本章で説明されているフロントエンドのグラフィカルアプリケーションはすべて、PackageKit とその依存関係ではなく、gnome-packagekit パッケージが提供します。
最後に、PackageKit には pkcon と呼ばれるコンソールベースのフロンドエンドも付いてきます。

7.4. その他のリソース

PackageKit のホームページ — http://www.packagekit.org/index.html
PackageKit の情報とメーリングリストです。
PackageKit のよくある質問 (FAQ) — http://www.packagekit.org/pk-faq.html
PackageKit ソフトウェアスイートに関するよくある質問の一覧です。
PackageKit 機能マトリクス — http://www.packagekit.org/pk-matrix.html
PackageKit が提供する機能とパッケージマネージャのバックエンド一覧との相互参照表。


[3] システムデーモンは通常、ユーザーや他のプログラムにサービスを提供する、長いプロセスです。多くの場合、システムデーモンは特別な初期化スクリプト ( initscripts と短縮される場合が多い) によりブート時に起動します。デーモンは service コマンドに応答し、chkconfig on または chkconfig off コマンドを使用することで永久にオン/オフにすることができます。それらは、通常 packagekitd デーモンのように名前に d を付けることによって認識できます。システムのサービスに関する情報は 10章サービスとデーモン を参照してください。

パート III. ネットワーキング

ここでは、Red Hat Enterprise Linux でのネットワーク設定方法について紹介します。

第8章 NetworkManager

NetworkManager (ネットワークマネージャ) は、ネットワークデバイスと接続が利用可能な時にそれらをアクティブに維持するよう試行する動的ネットワーク制御及び設定システムです。NetworkManager は、コアデーモン、ネットワークステータス情報を提供する GNOME 通知スペースアプレット、及び接続とインターフェースの作成、編集、削除が可能なグラフィカル設定ツールで構成されています。NetworkManager を使用すると、イーサネット、ワイヤレス、モバイルブロードバンド (携帯 3G など)、DSLPPPoE (Point-to-Point over Ethernet イーサネット経由のポイントツーポイントプロトコル) のようなタイプの接続を設定できます。さらに、 NetworkManager により、ネットワークエイリアス、静的ルート、DNS 情報、VPN 接続の他、多くの接続固有のパラメータの設定が可能になります。そして、NetworkManager は D-Bus により効果的な API を提供するため、アプリケーションはネットワークの設定と状態をクエリ、制御することができます。
これまでの Red Hat Enterprise Linux のバージョンには、Network Administration Tool (ネットワーク管理ツール) が同梱されていました。これは、一般的にはコマンドラインの呼び出しにちなみ system-config-network として知られています。Red Hat Enterprise Linux 6 では、以前の Network Administration ToolNetworkManager に代わり、ユーザー固有のモバイルブロードバンド設定など強化した機能を備えています。また、Red Hat Enterprise Linux 6 ではインターフェース設定ファイルを編集してネットワークを設定することも可能です。詳細は 9章ネットワークインターフェース を参照してください。
NetworkManager は、デフォルトで Red Hat Enterprise Linux にインストールされている場合があります。確実にインストールするには、root ユーザーで、以下のコマンドを実行します:
~]# yum install NetworkManager

8.1. NetworkManager デーモン

NetworkManager デーモンは root 権限で実行し、通常ブート時に起動するように設定されています。root で次のコマンドを入力すると、NetworkManager デーモンが実行しているか確認できます:
~]# service NetworkManager status
    NetworkManager (pid  1527) is running...
service コマンドは、NetworkManager サービスが実行していない場合には NetworkManager is stopped (NetworkManager は停止しています) と報告します。現在のセッションで起動するには、以下のコマンドを入力します:
~]# service NetworkManager start
chkconfig コマンドを実行して、システムがブートするたびに NetworkManager が確実に起動するようにします:
~]# chkconfig NetworkManager on
サービスの起動、停止、管理とランレベルの詳細については 10章サービスとデーモン を参照してください。

8.2. NetworkManager との対話

ユーザーは、NetworkManager システムサービスと直接対話は行いません。その代わりに、NetworkManager の通知スペースアプレットを使って、ネットワーク設定タスクを実行することができます。このアプレットは複数の状態を表示し、現在使用している接続タイプを視覚的にお知らせします。アプレットのアイコン上にポインターを移動すると、現在の接続状態についてのツールチップ情報が表示されます。
NetworkManager アプレットの状態

図8.1 NetworkManager アプレットの状態

GNOME パネルに NetworkManager アプレットが表示されない場合、NetworkManager パッケージがお使いのシステム上にインストールされているとすれば、root ではなく、通常のユーザーで以下のコマンドを実行するとアプレットを起動することができます:
~]$ nm-applet &
このコマンドを実行すると、通知スペースにアプレットが表示されます。このアプレットがログイン時に毎回確実に実行されるようにするには、システム設定Startup Applications (自動起動するアプリ) の順にクリックし、自動起動するアプリの設定 ウィンドウを開きます。次に、Startup Programs (自動起動するプログラム) タブを選択して、NetworkManager (ネットワークマネージャ) の横のボックスにチェックマークを入れます。

8.2.1. ネットワークへの接続

アプレットのアイコンを左クリックすると、以下が表示されます:
  • 現在接続しているカテゴリ別になったネットワークの一覧 (Wired (有線)Wireless (無線))
  • NetworkManager が検出した Available Networks (利用可能なネットワーク) の全一覧
  • 設定済みの VPN (Virtual Private Network 仮想プライベートネットワーク) への接続オプション
  • 非表示または新しい無線ネットワークへの接続オプション
ネットワークに接続していれば、その接続名は 有線無線 ネットワーク種類の下で太字表示されます。無線アクセスポイントのように多くのネットワークが利用可能な場合、展開可能なその他のネットワーク メニューエントリーが表示されます。
NetworkManager アプレットの左クリックメニューで、利用可能及び接続しているネットワークがすべて表示されます。

図8.2 NetworkManager アプレットの左クリックメニューで、利用可能及び接続しているネットワークがすべて表示されます。

8.2.2. 新規接続の設定と既存接続の編集

次に、NetworkManager アプレットを右クリックして、コンテキストメニューを開きます。これは、NetworkManager と対話して接続を設定する主要エントリーポイントです。
NetworkManager アプレットのコンテキストメニュー

図8.3 NetworkManager アプレットのコンテキストメニュー

ネットワークを有効にする のボックスにチェックマークが付いていることを確認してください。システムがワイヤレスカードを検出すると、無線を有効にする のメニューのオプションも表示されます。無線を有効にする のチェックボックスにもチェックマークを付けます。通知を有効にする のボックスにチェックマークを付けると、NetworkManager は、ネットワークの接続状態の変更を通知します。接続情報 エントリをクリックすると、接続のタイプやインターフェース、IP アドレスとルーティングの詳細などを一覧表示した、詳しい情報を示す 接続情報 ウィンドウが表示されます。
そして最後に、接続を編集する をクリックして、ネットワーク接続 ウィンドウを開きます。ここでは、大半のネットワーク設定タスクを実行することができます。このウィンドウは、通常のユーザーとして以下を実行して開くことができる点にも注目してください。
~]$ nm-connection-editor &
ネットワーク接続ウィンドウを使用したネットワークの設定

図8.4 ネットワーク接続ウィンドウを使用したネットワークの設定

左側の矢印をクリックすると、必要に応じてエントリーの表示/非表示ができます。新規接続を作成するには、追加 ボタンをクリックして選択リストを表示し、接続タイプを選択して 適用 ボタンをクリックします。また、既存の接続を編集するには、リストからインターフェース名を選択し、編集 ボタンをクリックします。
そして、以下のいずれかの設定をします:

8.2.3. ネットワークへの自動接続

追加や設定を行うすべての接続に関して、ネットワークが利用可能な時に NetworkManager が自動的に接続を試行するかどうか選択することができます。

手順8.1 ネットワークが検出されると、自動接続するよう NetworkManager を設定する

  1. 通知スペースにある NetworkManager アプレットのアイコンを右クリックして、接続を編集する をクリックすると、ネットワーク接続 ウィンドウが表示されます。
  2. 必要に応じて矢印をクリックして、接続リストを表示します。
  3. 設定したい接続を選択して、編集 をクリックします。
  4. Connect automatically (自動接続する) にチェックマークを入れると、NetworkManager は、そのネットワークが利用可能だと検出すると常に自動接続します。NetworkManager が自動接続しないようにするには、このチェックボックスからチェックマークを外してください。チェックマークが付いていない場合は、NetworkManager アプレットの左クリックメニューで手動で接続を選択して、接続する必要があります。

8.2.4. ユーザー接続とシステム接続

NetworkManager の接続は、常に ユーザー接続システム接続 のどちらかです。管理者が設定したシステム固有のポリシーによっては、ユーザーがシステム接続の作成や変更を行うのに root 権限が必要となる場合があります。NetworkManager のデフォルトのポリシーにより、ユーザーはユーザー接続の作成と変更を行うことができますがシステム接続の追加、変更、削除を行うには root 権限が必要です。
ユーザー接続は、それらを作成するユーザーに固有なためそのように呼ばれます。システム接続では、設定が /etc/sysconfig/network-scripts/ ディレクトリ (主に ifcfg-<network_type> インターフェース設定ファイル内) に保管されるのに対して、ユーザー接続の設定は GConf 設定データベースと GNOME キーリングに保管され、ユーザー接続の設定を作成したユーザーのログインセッション中のみに利用可能です。このため、デスクトップセッションをログアウトすると、ユーザー固有の接続は利用できなくなります。

注記

NetworkManager では、GConf 及び GNOME のキーリングアプリケーションを使用して、ユーザー接続設定を保管します。これらの設定はデスクトップセッションに固有であるため、個々の VPN 接続はユーザー接続として設定することが強く推奨されます。その場合、システム上の root 以外のユーザーはこの接続の表示やアクセスは全くできなくなります。
これに対し、システム接続は、ブート時に利用可能となるためデスクトップセッションに最初にログインしなくても、システム上の他のユーザーは使用することができます。
NetworkManager は、ユーザー接続とシステム接続間の切り替えを迅速かつ便利に行うことができます。ユーザー接続をシステム接続に変換すると、NetworkManager/etc/sysconfig/network-scripts/ ディレクトリの関連したインターフェース設定ファイルを作成し、ユーザーセッションから GConf 設定を削除します。逆に、システム接続をユーザー固有の接続に変換すると、 NetworkManager はシステム全体の設定ファイルを削除して、対応する GConf/GNOME キーリング設定を作成します。
Available to all users (すべてのユーザーに利用可能) のチェックボックスで、接続をユーザー固有、またはシステム全体で有効にするかを制御します。

図8.5 Available to all users (すべてのユーザーに利用可能) のチェックボックスで、接続をユーザー固有、またはシステム全体で有効にするかを制御します。

手順8.2 システム全体の接続からユーザー固有の接続への変更、またはその逆

注記

システムのポリシーによっては、接続をユーザー固有またはシステム全体に変更するために、システムで root 権限が必要となる場合があります。
  1. 通知スペースにある NetworkManager アプレットのアイコンを右クリックして、接続を編集する をクリックすると、ネットワーク接続 ウィンドウが表示されます。
  2. 必要に応じて、左側の矢印をクリックし、利用可能なネットワーク接続のタイプを表示/非表示させます。
  3. 設定したい接続を選択して、編集 をクリックします。
  4. すべてのユーザーに利用可能 のチェックボックスにチェックマークを付けることで、NetworkManager は接続をシステム全体の接続にします。システムのポリシーによっては、PolicyKit アプリケーションが root パスワードの入力を求める場合があります。その場合には、root パスワードを入力して、変更を完了します。
    逆に、すべてのユーザーに利用可能 のチェックボックスからチェックマークを外すと、接続はユーザー固有となります。

8.3. 接続の確立

8.3.1. 有線 (イーサネット) 接続の確立

有線ネットワーク接続を確立するには、NetworkManager アプレットを右クリックして、コンテクストメニューを開きます。ネットワークを有効にする ボックスにチェックが入っていることを確認して、接続を編集する をクリックします。これで ネットワーク接続 ウィンドウが表示されます。このウィンドウは、通常ユーザーとして以下のコマンドを実行して開くこともできます。
~]$ nm-connection-editor &
必要に応じて矢印をクリックして、接続リストを表示/非表示させます。
新規作成の System eth0 接続を表示しているネットワーク接続ウィンドウ

図8.6 新規作成の System eth0 接続を表示しているネットワーク接続ウィンドウ

システムのスタートアップスクリプトは、デフォルトで全システム上で System eth0 と呼ばれる単独の有線接続を作成・設定します。System eth0 は編集できますが、個人のカスタム設定で新規に有線接続を作成することが推奨されます。新規の有線接続を作成するには、追加 ボタンをクリックし、表示されるリストから 有線 を選択して 作成 ボタンをクリックします。
「接続のタイプを選択」から新規接続のタイプを選択

図8.7 「接続のタイプを選択」から新規接続のタイプを選択

注記

追加 ボタンをクリックして新規接続を追加すると、接続タイプのリストが表示されます。選択後に作成 ボタンをクリックすると、NetworkManager はその接続の新規設定ファイルを作成し、既存接続の編集に使用されるダイアログと同じものが開きます。これらのダイアログには違いはありません。結局は常に接続を編集することになります。唯一の違いは、その接続が以前から存在してものか、あるいは 追加 をクリックして NetworkManager が作成したばかりのものか、という点だけです。
新規作成された有線接続 System eth0 の編集

図8.8 新規作成された有線接続 System eth0 の編集

接続名、自動接続の動作、及び可用性セッティングの設定

編集 ダイアログ内の3つのセッティングはすべての接続タイプに共通です:
  • 接続名 — ネットワーク接続の名前を入力します。この名前は、ネットワーク接続 ウィンドウの 有線 セクションでこの接続の表示に使用されます。
  • 自動接続する — このボックスにチェックを入れると、この接続が利用可能な時にNetworkManager が自動接続します。詳細については 「ネットワークへの自動接続」 を参照してください。
  • すべてのユーザーに利用可能 — このシステム上のすべてのユーザーに利用可能な接続を作成するには、このボックスにチェックを入れます。この設定を変更するには root 権限が必要な場合があります。詳細については「ユーザー接続とシステム接続」 を参照してください。

有線タブの設定

設定可能な残りの 3 つのセッティングは 有線 タブ内にあります。1 つ目は MAC (Media Access Control) アドレスを指定するテキスト入力フィールドで、2 つ目はクローンした MAC アドレス を指定し、3 つ目は MTU (Maximum Transmission Unit) の値を指定します。通常、MAC アドレス のフィールドは空白に、MTU自動 にしておきます。有線接続を 2 つ目または特定の NIC に関連付けたり、高度なネットワーキングを実行していない限り、これらのデフォルト値で十分です。特別な設定については以下の説明を参照して下さい。
MAC アドレス
ネットワークインターフェイスカード (NIC) などのネットワークハードウェアは、システムに対してハードウェアを識別する特有の MAC アドレス (Media Access Control; 別名 ハードウェアアドレス) を持っています。ip addr コマンドを実行すると、各インターフェイスに関連した MAC アドレスが表示されます。例えば、以下の ip addr の出力では、eth0 インターフェイス用の MAC アドレス ( 52:54:00:26:9e:f1) は link/ether キーワードの直後に表示されています。
~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether 52:54:00:26:9e:f1 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.251/24 brd 192.168.122.255 scope global eth0
    inet6 fe80::5054:ff:fe26:9ef1/64 scope link
       valid_lft forever preferred_lft forever
1つのシステムに単独の、または複数の NIC をインスと-ルできます。ですから、MAC アドレス フィールドでは特定の接続 (または接続群) に対して特定の NIC を関連付けることができます。前述のように ip addr コマンドを使用することで、MAC アドレスが判定できるため、その値をコピーして MAC アドレステキスト入力フィールドに貼り付けることができます。
クローンした MAC アドレスフィールドは、ネットワークサービスが特定の MAC アドレスに限定され、その MAC アドレスをエミュレートする必要があるという状況で多く使用されます。
MTU
MTU (Maximum Transmission Unit) の値は、接続が転送に使用する最大パケット数のバイトサイズを示します。この値は、IPv4 の使用ではデフォルトで 1500 となり、IPv6 の使用では可変数 1280 かそれ以上がデフォルトとなります。一般的に指定や変更をする必要はありません。

新規 (または修正した) 接続を保存して他の設定をする

有線接続の編集が終了して、適用 ボタンをクリックするとNetworkManager は即座にカスタマイズした設定を保存します。設定が正しければ、NetworkManager 通知スペースアプレットから新規またはカスタマイズした接続を選択して、その接続が確立されます。新規または変更した接続の使用に関する詳細については 「ネットワークへの接続」 を参照してください。
既存の接続をさらに設定をするには、ネットワーク接続 ウィンドウ内でその接続を選択し、編集 をクリックして 編集 ダイアログに戻ります。
そして、以下のいずれかの設定をします:

8.3.2. 無線接続の確立

このセクションでは、NetworkManager でアクセスポイントへの無線接続 (別名 Wi-Fi または 802.1a/b/g/n) の設定方法を説明します。
(3G などの) モバイルブロードバンドの設定方法については、「モバイルブロードバンド接続の確立」 を参照してください。

利用可能なアクセスポイントに迅速に接続

利用可能なアクセスポイントに接続する最も簡単な方法は、NetworkManager アプレットを左クリックして 利用可能 ネットワークの一覧内でアクセスポイントの サービスセット識別子 (SSID) を見つけてそれをクリックすることです。アクセスポイントが保護されている場合は、認証を求めるダイアログが出てきます。
無線アクセスポイントへの認証

図8.9 無線アクセスポイントへの認証

NetworkManager は、アクセスポイントで使われているセキュリティタイプを自動検出しようとします。複数の可能性がある場合、NetworkManager はセキュリティタイプを予想し、それを 無線セキュリティ ドロップダウンメニューに表示します。複数の選択肢があるかどうかは、無線セキュリティ ドロップダウンメニューをクリックしてアクセスポイントが使用しているセキュリティタイプを選択するとわかります。不明な場合は、それぞれのタイプに接続してみます。最後に パスワード フィールドにキー、またはパスフレーズを記入します。40-bit WEP や 128-bit WPA キーなどの特定のパスワードのタイプは、指定の長さに達していないと無効になります。選択したセキュリティタイプで要求される長さのキーを記入するまでは、接続 ボタンは灰色のままです。無線セキュリティに関する情報については 「無線セキュリティの設定」 を参照して下さい。

注記

WPA および WPA2 (個人およびエンタープライズ) の場合、自動、WPA、WPA2 を選択するオプションが加えられます。このオプションは、WPA と WPA2 の両方が利用可能なアクセスポイントでの使用を念頭に置いています。両方のプロトコル間でのローミングを防止したい場合は、どちらかのプロトコルを選択します。同一アクセスポイントでの WPA と WPA2 間のローミングは、サービスの損失につながる恐れがあります。
NetworkManager が正しくアクセスポイントに接続できた場合には、そのアプレットアイコンが無線接続信号の強度を示すグラフィカルインディケーターに変化します。
無線接続信号の強度 75% を示しているアプレットアイコン

図8.10 無線接続信号の強度 75% を示しているアプレットアイコン

また、自動作成されたアクセスポイント接続の設定を、まるで自分で追加したように編集することもできます。ネットワーク接続 ウィンドウの 無線 タブは以前に接続を試みたすべての接続先を一覧表示します。NetworkManager はそれらの 1 つ 1 つをAuto <SSID> 形式で名付けます。ここでの SSID とはアクセスポイントの サービスセット識別子 のことです。
以前に接続したことのあるアクセスポイントの例

図8.11 以前に接続したことのあるアクセスポイントの例

非表示無線ネットワークに接続

すべてのアクセスポイントには、識別するために SSID (SSID) があります。しかし、あるアクセスポイントはその SSID をブロードキャストしないように設定されている場合もあり、そのケースでは 非表示 となり、NetworkManager 内の利用可能 ネットワーク一覧には表示されません。ただし、SSID と認証方法、秘密情報が分かっていれば、非表示の無線アクセスポイントにも接続することは可能です。
非表示無線ネットワークに接続するには、NetworkManager のアプレットアイコンを左クリックして 非表示無線ネットワークに接続 を選択することで、ダイアログが出現するようにします。以前に非表示ネットワークに接続したことがある場合は、接続 ドロップダウンメニューを使用してそれを選択し、接続 ボタンをクリックします。以前に使用したことがない場合は、接続 ドロップダウンを 新規 のままにしておきます。非表示ネットワークの SSID を記入してからその 無線セキュリティ メソッドを選択し、正しい認証用秘密情報を記入してからConnect ボタンをクリックします。
無線セキュリティの設定に関する詳細情報については、「無線セキュリティの設定」 を参照して下さい。

接続の編集、または全く新しい接続を作成

過去に試行した、あるいは接続に成功したことのある既存の接続を編集するには、ネットワーク接続無線 タブを開いて、その名前 (Auto の次に来る単語はアクセスポイントの SSID を参照) で接続を選択します。そして 編集 をクリックします。
新しい接続を作成するには、ネットワーク接続 ウィンドウを開いてから、追加 ボタンをクリックし、無線 を選択して 作成 ボタンをクリックします。
  1. 通知スペースにある NetworkManager アプレットのアイコンを右クリックして、接続を編集する をクリックすると、ネットワーク接続 ウィンドウが表示されます。
  2. 追加 ボタンをクリックします。
  3. リストから 無線 エントリを選択します。
  4. 作成ボタンをクリックします。
新規作成した無線接続 1 の編集

図8.12 新規作成した無線接続 1 の編集

接続名、自動接続の動作、及び可用性セッティングの設定

編集 ダイアログ内の3つのセッティングはすべての接続タイプに共通です:
  • 接続名 — ネットワーク接続の名前を入力します。この名前は、ネットワーク接続 ウィンドウの 無線 セクションでこの接続の表示に使用されます。デフォルトでは、無線接続は無線アクセスポイントの SSID と同じ名前になっています。無線接続の名前を変更しても接続機能に影響は与えませんが、SSID 名の維持が推奨されます。
  • 自動接続する — このボックスにチェックを入れると、この接続が利用可能な時にNetworkManager が自動接続します。詳細については 「ネットワークへの自動接続」 を参照してください。
  • すべてのユーザーに利用可能 — このシステム上のすべてのユーザーに利用可能な接続を作成するには、このボックスにチェックを入れます。この設定を変更するには root 権限が必要な場合があります。詳細については「ユーザー接続とシステム接続」 を参照してください。

無線タブの設定

SSID
すべてのアクセスポイントは、それら自身の識別のために SSID (Service Set identifier) を持っています。しかし、あるアクセスポイントはその SSID を広報しないように設定されているかも知れません。その場合、それは非表示 となり、NetworkManager 内の使用可能 ネットワーク一覧に出現しないことになります。但し、その SSID と認証秘密情報が判明していれば、SSID 非表示の無線アクセスポイントにも接続することは可能です。\n
非表示無線ネットワークへの接続については 「非表示無線ネットワークに接続」 を参照して下さい。
モード
インフラストラクチャ — 専用の無線アクセスポイントや、ルーターやスイッチなどのネットワークデバイスに構築されているアクセスポイントに接続している場合は、モードインフラストラクチャ に設定します。
アドホック — 2 つ以上のモバイルデバイス間での直接通信用のピアツーピアネットワークを作成している場合は、モードアドホック に設定します。802.11 標準では Independent Basic Service Set (IBSS) と呼ばれる アドホック モードを使用する場合は、すべての参加無線デバイスで同一 SSID が設定され、それらすべてが同一チャンネル上で通信していることを確認する必要があります。
BSSID
BSSID (基本的サービスセット識別子) は、インフラストラクチャ モードで接続している際の特定の無線アクセスポイントの MAC アドレスです。このフィールドはデフォルトで空白になっており、BSSID を指定せずに、SSID で無線アクセスポイントに接続できます。BSSID が指定されると、システムは強制的に特定のアクセスポイントのみに関連付けられます。
アドホックネットワークが生成される際に、mac80211 サブシステムがランダムに BSSID を生成します。これは NetworkManager では表示されません。
MAC アドレス
イーサネットのネットワークインターフェイスカード (NIC) と同様に、無線アダプタはそれ自身をシステムに対して識別する特有の MAC アドレス (Media Access Control; 別名 ハードウェアアドレス) を持っています。ip addr コマンドを実行すると、各インターフェイスに関連付けられた MAC アドレスが表示されます。例えば、以下の ip addr 出力では、wlan0 インターフェイスの MAC アドレス(00:1c:bf:02:f8:70) は、キーワードlink/ether の直後に続いています。
~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether 52:54:00:26:9e:f1 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.251/24 brd 192.168.122.255 scope global eth0
    inet6 fe80::5054:ff:fe26:9ef1/64 scope link
       valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:1c:bf:02:f8:70 brd ff:ff:ff:ff:ff:ff
    inet 10.200.130.67/24 brd 10.200.130.255 scope global wlan0
    inet6 fe80::21c:bfff:fe02:f870/64 scope link
       valid_lft forever preferred_lft forever
単独のシステムでも1つ、またはそれ以上の無線ネットワークアダプターを接続することができます。そのため、MAC アドレス フィールドでは特定の無線アダプターが特定の接続と関連付けできるようになっています。前述のように ip addr コマンドを使用すれば MAC アドレスを判定できるため、その値をコピーして MAC アドレス テキスト入力フィールドに貼り付けることができます。
MTU
MTU (Maximum Transmission Unit) (最大転送ユニット)の値は、接続が転送に使用する最大限パケットサイズをバイト単位で示すものです。ゼロ以外の数値でセットしてある場合は、その指定サイズか、それ以下のパケットのみが転送されます。それ以上のパケットサイズは複数のイーサネットフレームに分断されます。このセッティングは 自動 のままにしておくことが推奨されます。

新規 (または修正した) 接続を保存して他の設定をする

無線接続の編集が終了すると、適用 ボタンをクリックします。するとNetworkManager はすぐにカスタマイズした設定を保存します。設定が正しく実行されている場合は、NetworkManager 通知スペースアプレットからそれを選択すると、変更した接続先へ正しく接続するようになります。
既存の接続をさらに設定をするには、ネットワーク接続 ウィンドウ内でその接続を選択し、編集 をクリックして 編集 ダイアログに戻ります。
そして、以下のいずれかの設定をします:

8.3.3. モバイルブロードバンド接続の確立

NetworkManager のモバイルブロードバンド接続機能を使用すると、以下の2G3G のサービスに接続することができます:
  • 2G — GPRS (General Packet Radio Service) または EDGE (Enhanced Data Rates for GSM Evolution)
  • 3G — UMTS (Universal Mobile Telecommunications System) または HSPA (High Speed Packet Access)
接続を作成するためには、システムが検索し、認識しているモバイルブロードバンドのデバイス (モデム) を、コンピュータが備えている必要があります。そのようなデバイスはコンピュータに内蔵されている場合 (多くのノートブックやネットブック) と、外付けまたは内蔵のハードウェアとして提供されている場合があります。例えば、PC カードや USB モデム、ドングル、モデムとして機能する携帯電話などです。

手順8.3 新規のモバイルブロードバンド接続の追加

モバイルブロードバンド接続の設定は、ネットワーク接続 ウィンドウを開いてから、追加 をクリックし、モバイルブロードバンド を選択します。
  1. 通知スペースにある NetworkManager アプレットのアイコンを右クリックして、接続を編集する をクリックすると、ネットワーク接続 ウィンドウが表示されます。
  2. 追加 ボタンをクリックして選択一覧を開きます。モバイルブロードバンド を選択し、作成 をクリックします。モバイルブロードバンド接続のセットアップアシスタントが表示されます。
  3. このモバイルブロードバンドデバイス用の接続を作成 の下で、その接続で使用する 2G または 3G 機能のデバイスを選択します。ドロップダウンメニューが使用できない場合は、システムがモバイルブロードバンドの機能を持つデバイスを検出できなかったことを示します。この状況では、キャンセル をクリックして、モバイルブロードバンド機能のデバイスが接続してあること、そしてそれがコンピュータに認識されていることを確認してください。それからこの手順を再試行します。進む ボタンをクリックします。
  4. 使用するサービスプロバイダーの国をリストから選んで 進む ボタンをクリックします。
  5. プロバイダーをリストから選ぶか手動で入力し、進む ボタンをクリックします。
  6. ドロップダウンメニューから請求書プランを選んで、Access Point Name (APN) が正しいか確認します。進む ボタンをクリックします。
  7. 設定を確認して、適用 ボタンをクリックします。
  8. モバイルブロードバンド特定の設定での編集は、以下の モバイルブロードバンドタブの設定 を参照してください。

手順8.4 既存のモバイルブロードバンド接続の編集

既存のモバイルブロードバンド接続を編集するには以下の手順に従います。
  1. 通知スペースにある NetworkManager アプレットのアイコンを右クリックして、接続を編集する をクリックすると、ネットワーク接続 ウィンドウが表示されます。
  2. 設定したい接続を選択して、 編集 ボタンをクリックします。
  3. モバイルブロードバンド タブを選択します。
  4. 接続名、自動接続の動作、及び可用性のセッティングを設定します。
    編集 ダイアログ内の3つのセッティングはすべての接続タイプに共通です:
    • 接続名 — ネットワーク接続の名前を入力します。この名前は、ネットワーク接続 ウィンドウの モバイルブロードバンド セクションでこの接続の表示に使用されます。
    • 自動接続する — このボックスにチェックを入れると、この接続が利用可能な時にNetworkManager が自動接続します。詳細については 「ネットワークへの自動接続」 を参照してください。
    • すべてのユーザーに利用可能 — このシステム上のすべてのユーザーに利用可能な接続を作成するには、このボックスにチェックを入れます。この設定を変更するには root 権限が必要な場合があります。詳細については「ユーザー接続とシステム接続」 を参照してください。
  5. モバイルブロードバンド特定の設定での編集は、以下の モバイルブロードバンドタブの設定 を参照してください。

新規 (または修正した) 接続を保存して他の設定をする

モバイルブロードバンド接続の編集が終了して、適用 ボタンをクリックするとNetworkManager は即座にカスタマイズした設定を保存します。設定が正しければ、NetworkManager 通知スペースアプレットから新規またはカスタマイズした接続を選択して、その接続が確立されます。新規または変更した接続の使用に関する詳細については 「ネットワークへの接続」 を参照してください。
既存の接続をさらに設定をするには、ネットワーク接続 ウィンドウ内でその接続を選択し、編集 をクリックして 編集 ダイアログに戻ります。
そして、以下のいずれかの設定をします:

モバイルブロードバンドタブの設定

アシスタント (その案内には 手順8.3「新規のモバイルブロードバンド接続の追加」 を参照) を使用して既に新規のモバイルブロードバンド接続を追加しているのであれば、モバイルブロードバンド タブを編集して、ホームネットワークが使用不可能な場合はローミングを無効にしたり、この接続を使用する時にネットワーク ID を割り当てたり、または特定の技術 (3G や 2Gなど) を優先するように NetworkManager に指示することができます。
番号
GSM ベースのモバイルブロードバンドネットワークでの PPP 接続を確立するためにダイアルする番号です。このフィールドは、ブロードバンドデバイスの初期インストールの際に自動設定されている場合があります。通常、このフィールドは空白で残し、代わりに APN を記入します。
ユーザー名
ネットワークでの認証に使用するユーザー名を記入します。一部のプロバイダーは、ユーザー名を提供しないことや、ネットワーク接続の時点でユーザー名を受け付けたりすることがあります。
パスワード
ネットワークで認証に使用するパスワードを記入します。一部のプロバイダーはパスワードを提供しなかったり、またはすべてのパスワードを受け付けたりします。
APN
GSM ベースのネットワークとの接続を確立するために使用する Access Point Name (APN) を記入します。これは以下の項目を決定するので、正しい APN を記入することが重要になります。
  • ネットワーク使用量についてユーザーが請求される方法、及び/あるいは
  • ユーザーがインターネット、イントラネット、サブネットワークにアクセスがあるかどうか。
ネットワーク ID
ネットワーク ID を記入すると、NetworkManager は強制的にデバイスが特定のネットワークのみに登録されるようにします。これにより、ローミングを直接に制御できない時に接続がローミングしないようにします。
タイプ
AnyAny のデフォルト値では、モデムが最速のネットワークを選択します。
3G (UMTS/HSPA) — 接続が 3G ネットワーク技術のみを使用するように強制します。
2G (GPRS/EDGE) — 接続が 2G ネットワーク技術のみを使用するように強制します。
Prefer 3G (UMTS/HSPA) — 最初に HSPA または UMTS などの 3G 技術を使用した接続を試み、失敗した後にのみ GPRS または EDGE にフォールバックします。
Prefer 2G (GPRS/EDGE) — 最初に GPRS または EDGE などの 2G 技術を使用した接続を試み、失敗した後にのみ HSPA または UMTS にフォールバックします。
ホームネットワークが使用できない場合にローミングを許可
ホームネットワークからローミングへの移行ではなく、NetworkManager が接続を終了するようにするには、このボックスからチェックを外します。これにより、ローミング料金を回避できます。ボックスにチェックが入っていると、NetworkManager はホームネットワークからローミングに、またはその逆に切り替えることで接続を維持しようとします。
PIN
デバイスの SIM (Subscriber Identity Module (購読者識別モジュール)) が PIN (Personal Identification Number (個人識別番号)) でロックされている場合は、その PIN を入力して NetworkManager がデバイスのロックを解除できるようにします。どんな目的でもデバイスの使用に PIN を必要とする場合は、NetworkManager は SIM をロック解除する必要があります。

8.3.4. VPN 接続の確立

仮想プライベートネットワーク (VPN) を確立すると、使用中の LAN (ローカルエリアネットワーク) ともう 1 つの LAN との間で安全に通信ができるようになります。VPN 接続を正しく確立した後には、VPN ルーターまたはゲートウェイはユーザーが転送したパケットに対して以下のアクションを実行します。
  1. ルーティングと認証の目的で 認証ヘッダー を追加
  2. パケットデータを暗号化。及び
  3. 復号化と処理の方法から構成されている ESP (Encapsulating Security Payload) を使用してデータを包装
受信側の VPN ルーターはヘッダー情報を開いて、データを解読し、それを想定された目的地 (ネットワーク上のワークステーション、または他のノード) に回送します。ネットワーク対ネットワーク接続を使用すると、ローカルネットワークの受信側ノードは既に解読されてプロセスの準備ができた状態のパケットを受信します。ネットワーク対ネットワークの VPN 接続での暗号化と復号化のプロセスはこのようにクライアントに透過的になっています。
VPN は、認証と暗号化で数種のレイヤーを採用するため、統合されたイントラネットとして機能する複数のリモートノードを接続するのに安全で効果的な手段となります。

手順8.5 新規 VPN 接続の追加

  1. 新規 VPN 接続の設定は、ネットワーク接続 ウィンドウを開いてから、追加 をクリックし、新規接続リストの VPN セクションから VPN のタイプを選択します。
  2. 通知スペースにある NetworkManager アプレットのアイコンを右クリックして、接続を編集する をクリックすると、ネットワーク接続 ウィンドウが表示されます。
  3. 追加 ボタンをクリックします。
  4. VPN 接続のタイプを選択 一覧が表示されます。
  5. 注記

    設定する VPN タイプに適切な NetworkManager VPN プラグインをインストールする必要があります。(Red Hat Enterprise Linux 6 に新規パッケージをインストールする方法については、「パッケージのインストール」 を参照してください)。適切なプラグインがインストールされていないと、接続のタイプを選択 一覧のVPN セクションは表示 されません
  6. 接続先のゲートウェイの VPN プロトコルを 接続のタイプを選択 一覧から選びます。リストで利用可能な VPN プロトコルは、インストール済みの NetworkManager VPN プラグインに対応します。例えば、NetworkManager VPN plug-in for openswan がインストールされていれば、IPsec ベースの VPN が 接続のタイプを選択 一覧から選べます。
    正しいプロトコルを選択した後、作成 ボタンをクリックします。
  7. そうすると、VPN 接続 1 の編集 ウィンドウが出てきます。このウィンドウは ステップ 6 で選択した VPN 接続のタイプ用にカスタマイズしたセッティングを表示します。

手順8.6 既存の VPN 接続の編集

既存の VPN 接続を設定するには、ネットワーク接続 ウィンドウを開いてから、リストにある接続名を選択します。そして 編集 ボタンをクリックします。
  1. 通知スペースにある NetworkManager アプレットのアイコンを右クリックして、接続を編集する をクリックすると、ネットワーク接続 ウィンドウが表示されます。
  2. 設定したい接続を選択して、 編集 ボタンをクリックします。
新規作成した VPN 接続 1 の編集

図8.13 新規作成した VPN 接続 1 の編集

接続名、自動接続の動作、及び可用性セッティングの設定

編集 ダイアログ内の3つのセッティングはすべての接続タイプに共通です:
  • 接続名 — ネットワーク接続の名前を入力します。この名前は、ネットワーク接続 ウィンドウの VPN セクションでこの接続の表示に使用されます。
  • 自動接続する — このボックスにチェックを入れると、この接続が利用可能な時にNetworkManager が自動接続します。詳細については 「ネットワークへの自動接続」 を参照してください。
  • すべてのユーザーに利用可能 — このシステム上のすべてのユーザーに利用可能な接続を作成するには、このボックスにチェックを入れます。この設定を変更するには root 権限が必要な場合があります。詳細については「ユーザー接続とシステム接続」 を参照してください。

VPN タブの設定

ゲートウェイ
リモート VPN ゲートウェイの名前または IP アドレスです。
グループ名
リモートゲートウェイで設定された VPN グループ名です。
ユーザーパスワード
必要な場合は、VPN 認証で使用するパスワードを入力します。
グループパスワード
必要な場合は、VPN 認証で使用するパスワードを入力します。
ユーザー名
必要な場合は、VPN 認証で使用するユーザー名を入力します。
Phase1 Algorithms
必要な場合は、暗号化チャンネルの認証および設定で使用するアルゴリズムを入力します。
Phase2 Algorithms
必要な場合は、IPsec ネゴシエーションで使用するアルゴリズムを入力します。
ドメイン
必要な場合は、ドメイン名を入力します。
NAT トラバーサル
Cisco UDP (デフォルト) — UDP を介した IPsec
NAT-T — NAT トラバーサル処理に ESP カプセル化と IKE 拡張を使用
無効 — 特別な NAT 措置は不要
Disable Dead Peer Detection — リモートゲートウェイやエンドポイントへのプローブの送信を無効にします。

新規 (または修正した) 接続を保存して他の設定をする

新規の VPN 接続の編集が終了した時点で 適用 ボタンをクリックすると、NetworkManager はすぐにカスタマイズした設定を保存します。設定が正しいならば、NetworkManager の通知スペースアプレットからそれを選択することで新しい、またはカスタマイズした接続先に接続することができます。新規の、または変更した接続の使用法については 「ネットワークへの接続」 を参照して下さい。
既存の接続をさらに設定をするには、ネットワーク接続 ウィンドウ内でその接続を選択し、編集 をクリックして 編集 ダイアログに戻ります。
そして、以下のいずれかの設定をします:

8.3.5. DSL 接続の確立

このセクションでは、個人ユーザーや SOHO インストールでよくある DSL モデムルーターの外部の組み合わせではなく、ホスト内に DSL カードが組み込まれているインストールについて説明します。

手順8.7 新規 DSL 接続の追加

新しい DSL 接続を設定するには、ネットワーク接続 ウィンドウを開いてから、追加 ボタンをクリックし、新規接続一覧の ハードウェア セクションから DSL を選択します。
  1. 通知スペースにある NetworkManager アプレットのアイコンを右クリックして、接続を編集する をクリックすると、ネットワーク接続 ウィンドウが表示されます。
  2. 追加 ボタンをクリックします。
  3. VPN 接続のタイプを選択 一覧が表示されます。
  4. DSL を選択し、作成 ボタンをクリックします。
  5. DSL 接続 1 の編集 ウィンドウが表示されます。

手順8.8 既存の DSL 接続の編集

既存の DSL 接続を設定するには、ネットワーク接続 ウィンドウを開いてから、リストにある接続名を選択します。そして 編集 ボタンをクリックします。
  1. 通知スペースにある NetworkManager アプレットのアイコンを右クリックして、接続を編集する をクリックすると、ネットワーク接続 ウィンドウが表示されます。
  2. 設定したい接続を選択して、 編集 ボタンをクリックします。

接続名、自動接続の動作、及び可用性セッティングの設定

編集 ダイアログ内の3つのセッティングはすべての接続タイプに共通です:
  • 接続名 — ネットワーク接続の名前を入力します。この名前は、ネットワーク接続 ウィンドウの DSL セクションでこの接続の表示に使用されます。
  • 自動接続する — このボックスにチェックを入れると、この接続が利用可能な時にNetworkManager が自動接続します。詳細については 「ネットワークへの自動接続」 を参照してください。
  • すべてのユーザーに利用可能 — このシステム上のすべてのユーザーに利用可能な接続を作成するには、このボックスにチェックを入れます。この設定を変更するには root 権限が必要な場合があります。詳細については「ユーザー接続とシステム接続」 を参照してください。

DSL タブの設定

ユーザー名
サービスプロバイダー認証で使用するユーザー名を入力します。
サービス
特別な指示がない限り、空白のままにします。
パスワード
サービスプロバイダーから提供されたパスワードを入力します。

新規 (または修正した) 接続を保存して他の設定をする

DSL 接続の編集が終了して、適用 ボタンをクリックするとNetworkManager は即座にカスタマイズした設定を保存します。設定が正しければ、NetworkManager 通知スペースアプレットから新規またはカスタマイズした接続を選択して、その接続が確立されます。新規または変更した接続の使用に関する詳細については 「ネットワークへの接続」 を参照してください。
既存の接続をさらに設定をするには、ネットワーク接続 ウィンドウ内でその接続を選択し、編集 をクリックして 編集 ダイアログに戻ります。
そして、以下のいずれかの設定をします:

8.3.6. Bond 接続の確立

NetworkManager を使って、2 つ以上の有線もしくは Infiniband 接続から Bond を作成することができます。接続が最初に結びついている必要はありません。Bond を設定するプロセスの一部として設定が可能です。この設定プロセスを完了するには、利用可能なインターフェースの MAC アドレスが必要です。

手順8.9 新規 Bond 接続の追加

Bond 接続を設定するには、ネットワーク接続 ウィンドウを開いてから、追加 ボタンをクリックし、一覧から Bond を選択します。
  1. 通知スペースにある NetworkManager アプレットのアイコンを右クリックして、接続を編集する をクリックすると、ネットワーク接続 ウィンドウが表示されます。
  2. 追加 ボタンをクリックして選択一覧を開きます。Bond を選択し、作成 をクリックします。Bond 接続 1 の編集 ウィンドウが表示されます。
  3. Bond タブで 追加 をクリックし、Bond 接続で使用するインターフェースのタイプを選択します。作成 ボタンをクリックします。スレーブタイプを選択するダイアログが表示されるは、最初のスレーブを作成する時のみです。その後は、すべてのスレーブに同じタイプが自動的に使われます。
  4. bond1 slave1 の編集 ウィンドウが表示されます。最初に結びつけるインターフェースの MAC アドレスを入力します。適用 ボタンをクリックします。
  5. 認証 ウィンドウが表示されます。root パスワードを入力して続けます。認証 ボタンをクリックします。
  6. 結合接続ウィンドウ に結合されたスレーブの名前が表示されます。追加 ボタンをクリックしてさらにスレーブ接続を追加します。
  7. 設定を確認して、適用 ボタンをクリックします。
  8. Bondj 特定の設定での編集は、以下の 「Bond タブの設定」 を参照してください。
新規作成した Bond 接続 1 の編集

図8.14 新規作成した Bond 接続 1 の編集

手順8.10 既存の Bond 接続の編集

既存の Bond 接続を編集するには以下の手順に従います。
  1. 通知スペースにある NetworkManager アプレットのアイコンを右クリックして、接続を編集する をクリックすると、ネットワーク接続 ウィンドウが表示されます。
  2. 設定したい接続を選択して、 編集 ボタンをクリックします。
  3. Bond タブを選択します。
  4. 接続名、自動接続の動作、及び可用性のセッティングを設定します。
    編集 ダイアログ内の3つのセッティングはすべての接続タイプに共通です:
    • 接続名 — ネットワーク接続の名前を入力します。この名前は、ネットワーク接続 ウィンドウの Bond セクションでこの接続の表示に使用されます。
    • 自動接続する — このボックスにチェックを入れると、この接続が利用可能な時にNetworkManager が自動接続します。詳細については 「ネットワークへの自動接続」 を参照してください。
    • すべてのユーザーに利用可能 — このシステム上のすべてのユーザーに利用可能な接続を作成するには、このボックスにチェックを入れます。この設定を変更するには root 権限が必要な場合があります。詳細については「ユーザー接続とシステム接続」 を参照してください。
  5. Bondj 特定の設定での編集は、以下の 「Bond タブの設定」 を参照してください。

新規 (または修正した) 接続を保存して他の設定をする

Bond 接続の編集が終了して、適用 ボタンをクリックするとNetworkManager は即座にカスタマイズした設定を保存します。設定が正しければ、NetworkManager 通知スペースアプレットから新規またはカスタマイズした接続を選択して、その接続が確立されます。新規または変更した接続の使用に関する詳細については 「ネットワークへの接続」 を参照してください。
既存の接続をさらに設定をするには、ネットワーク接続 ウィンドウ内でその接続を選択し、編集 をクリックして 編集 ダイアログに戻ります。
そして、以下のいずれかの設定をします:

Bond タブの設定

新規の Bond 接続を既に追加している場合 (手順に関しては、手順8.9「新規 Bond 接続の追加」 を参照) 、Bond タブを編集して、負荷分散モードとスレーブ接続の障害検出に使用するリンク監視のタイプを設定できます。
モード
Bond を構成するスレーブ接続でのトラフィック分散に使われるモード。デフォルトは、ラウンドロビン 。802.3ad などの他の負荷分散モードは、ドロップダウンリストから選択することができます。
リンク監視
ネットワークトラフィックを伝送するスレーブの能力を監視する方法。
以下の負荷分散モードが、モード のドロップダウンリストから選択できます。
ラウンドロビン
耐障害性とロードバランシングのためラウンドロビンポリシーを設定します。利用可能になったインターフェースから順に、それぞれのボンディングされたスレーブインターフェースで送受信が行われます。
アクティブバックアップ
耐障害性のためアクティブなバックアップポリシーを設定します。利用可能になった最初のボンディングされたスレーブインターフェースにより送受信が行われます。別のボンディングされたスレーブインターフェースは、アクティブなボンディングされたスレーブインターフェースが失敗した場合にのみ使用されます。これは、InfiniBand デバイスのボンドで利用可能な唯一のモードです。
XOR
耐障害性とロードバランシングのため XOR (排他的論理和) ポリシーを設定します。この方法を使用すると、インターフェースによって受信要求の MAC アドレスとスレーブ NIC の 1 つの MAC アドレスが一致します。このリンクが確立すると、利用可能になった最初のインターフェースから順に送信が行われます。
ブロードキャスト
耐障害性のためブロードキャストポリシーを設定します。すべての送信は、すべてのスレーブインターフェースで行われます。
802.3ad
IEEE 802.3ad 動的リンクアグリゲーションのポリシーを設定します。同一の速度とデュプレックス設定を共有するアグリゲーショングループを作成します。アクティブなアグリゲーターのすべてのスレーブで送受信を行います。802.3ad に対応するスイッチが必要です。
適応型送信ロードバランシング
耐障害性とロードバランシングのため適応型送信ロードバランシング (TLB) ポリシーを設定します。発信トラフィックは、各スレーブインターフェースの現在の負荷に従って分散されます。受信トラフィックは、現在のスレーブにより受信されます。受信しているスレーブが失敗すると、別のスレーブが失敗したスレーブの MAC アドレスを引き継ぎます。
アクティブロードバランシング
耐障害性とロードバランシングのためアクティブロードバランシング (ALB) ポリシーを設定します。IPv4 トラフィック用の送受信ロードバランシングが含まれます。ARP ネゴシエーションにより、受信ロードバランシングが可能です。
以下のリンク監視のタイプは、リンク監視 ドロップダウンリストから選択できます。自分のボンディングされたインターフェースでどのチャンネルボンディングのモジュールパラメーターが一番うまく動作するかテストすることが推奨されます。
MII (Media Independent Interface)
インターフェースのキャリア波の状態を監視します。実行方法は、ドライバーへのクエリ、MII レジスタへの直接クエリ、Ethtool を使ったデバイスへのクエリがあります。利用可能なっ 3 つのオプションは以下のとおりです。
周波数の監視
ドライバーもしくはMII レジスタへのクエリの間隔時間 (ミリ秒単位)
リンクアップの遅延
アップとレポートされたリンクの使用を試みるまでの待ち時間 (ミリ秒単位) 。リンクが アップ とレポートされてからすぐに不当な ARP リクエストが失われた場合に、この遅延は使用できます。これが発生するのは、例えばスイッチ初期化などの間です。
リンクダウンの遅延
これまでアクティブだったリンクが ダウン とレポートされた際に、別のリンクに変更するまでの待ち時間 (ミリ秒単位) 。アタッチされたスイッチがバックアップモードに変更するまで比較的長い時間がかかる場合に、この遅延は使用できます。
ARP
アドレス解決プロトコル (Address Resolution Protocol, ARP) は、リンク層接続の動作具合を決定するために 1 つ以上のピアにプローブする際に使用されます。これは、送信開始時間および最終受信時間を提供しているデバイスドライバーに依存しています。以下の 2 つのオプションがあります。
周波数の監視
ARP リクエストを送信する間隔時間 (ミリ秒単位) 。
ARP ターゲット
ARP リクエストを送信する IP アドレスをコンマで区切ったもの。

8.3.7. VLAN 接続の確立

NetworkManager を使って、既存インターフェースを使用する VLAN を作成することができます。本書執筆の時点では、イーサネットデバイス上でのみ VLAN の作成が可能です。

手順8.11 新規 VLAN 接続の追加

VLAN 接続を設定するには、ネットワーク接続 ウィンドウを開いてから、追加 ボタンをクリックし、一覧から VLAN を選択します。
  1. 通知スペースにある NetworkManager アプレットのアイコンを右クリックして、接続を編集する をクリックすると、ネットワーク接続 ウィンドウが表示されます。
  2. 追加 ボタンをクリックして選択一覧を開きます。VLAN を選択し、作成 をクリックします。VLAN 接続 1 の編集 ウィンドウが表示されます。
  3. VLAN タブで、VLAN 接続に使用する親インターフェースをドロップダウンリストから選びます。
  4. VLAN ID を入力します。
  5. VLAN インターフェース名を入力します。これは、作成される VLAN インターフェースの名前です。例えば、"eth0.1" や "vlan2" などです。(通常、この名前は親インターフェース名に "." と VLAN ID を加えたものか、"vlan" と VLAN ID を加えたものになります。)
  6. 設定を確認して、適用 ボタンをクリックします。
  7. VLAN 特定の設定での編集は、以下の VLAN タブの設定 を参照してください。

手順8.12 既存の VLAN 接続の編集

既存の VLAN 接続を編集するには以下の手順に従います。
  1. 通知スペースにある NetworkManager アプレットのアイコンを右クリックして、接続を編集する をクリックすると、ネットワーク接続 ウィンドウが表示されます。
  2. 設定したい接続を選択して、 編集 ボタンをクリックします。
  3. VLAN タブを選びます。
  4. 接続名、自動接続の動作、及び可用性のセッティングを設定します。
    編集 ダイアログ内の3つのセッティングはすべての接続タイプに共通です:
    • 接続名 — ネットワーク接続の名前を入力します。この名前は、ネットワーク接続 ウィンドウの VLAN セクションでこの接続の表示に使用されます。
    • 自動接続する — このボックスにチェックを入れると、この接続が利用可能な時にNetworkManager が自動接続します。詳細については 「ネットワークへの自動接続」 を参照してください。
    • すべてのユーザーに利用可能 — このシステム上のすべてのユーザーに利用可能な接続を作成するには、このボックスにチェックを入れます。この設定を変更するには root 権限が必要な場合があります。詳細については「ユーザー接続とシステム接続」 を参照してください。
  5. VLAN 特定の設定での編集は、以下の VLAN タブの設定 を参照してください。

新規 (または修正した) 接続を保存して他の設定をする

VLAN 接続の編集が終了して、適用 ボタンをクリックするとNetworkManager は即座にカスタマイズした設定を保存します。設定が正しければ、NetworkManager 通知スペースアプレットから新規またはカスタマイズした接続を選択して、その接続が確立されます。新規または変更した接続の使用に関する詳細については 「ネットワークへの接続」 を参照してください。
既存の接続をさらに設定をするには、ネットワーク接続 ウィンドウ内でその接続を選択し、編集 をクリックして 編集 ダイアログに戻ります。
そして、以下のいずれかの設定をします:

VLAN タブの設定

新規の VLAN 接続を既に追加している場合 (手順に関しては、手順8.11「新規 VLAN 接続の追加」 を参照) 、VLAN タブを編集して、親インターフェースと VLAN ID を設定できます。
親インターフェース
ドロップダウンリストから以前に設定したインターフェースを選択できます。
VLAN ID
VLAN ネットワークのトラフィックのタグ付けに使用する ID 番号。
VLAN インターフェース名
作成される VLAN インターフェースの名前。例えば、"eth0.1" や "vlan2" など。
クローンした MAC アドレス
VLAN インターフェースの特定に使用する別の MAC アドレスをオプションで設定します。このアドレスを使って、この VLAN 上で送信されたパケットのソース MAC アドレスを変更することができます。
MTU
VLAN 接続で送信されるパケットに使用する最大転送単位 (MTU) のサイズをオプションで設定します。

8.3.8. IP-over-InfiniBand (IPoIB) 接続の確立

NetworkManager を使って InfiniBand 接続を作成することができます。

手順8.13 新規 InfiniBand 接続の追加

InfiniBand 接続を設定するには、ネットワーク接続 ウィンドウを開いてから、追加 ボタンをクリックし、一覧から InfiniBand を選択します。
  1. 通知スペースにある NetworkManager アプレットのアイコンを右クリックして、接続を編集する をクリックすると、ネットワーク接続 ウィンドウが表示されます。
  2. 追加 ボタンをクリックして選択一覧を開きます。InfiniBand を選択し、作成 をクリックします。InfiniBand 接続 1 の編集 ウィンドウが表示されます。
  3. InfiniBand タブで、InfiniBand 接続に使用するトランスポートモードをドロップダウンリストから選びます。
  4. InfiniBand MAC アドレスを入力します。
  5. 設定を確認して、適用 ボタンをクリックします。
  6. InfiniBand 特定の設定での編集は、以下の InfiniBand タブの設定 を参照してください。
新規作成した InfiniBand 接続 1 の編集

図8.15 新規作成した InfiniBand 接続 1 の編集

手順8.14 既存の InfiniBand 接続の編集

既存の InfiniBand 接続を編集するには以下の手順に従います。
  1. 通知スペースにある NetworkManager アプレットのアイコンを右クリックして、接続を編集する をクリックすると、ネットワーク接続 ウィンドウが表示されます。
  2. 設定したい接続を選択して、 編集 ボタンをクリックします。
  3. InfiniBand タブを選択します。
  4. 接続名、自動接続の動作、及び可用性のセッティングを設定します。
    編集 ダイアログ内の3つのセッティングはすべての接続タイプに共通です:
    • 接続名 — ネットワーク接続の名前を入力します。この名前は、ネットワーク接続 ウィンドウの InfiniBand セクションでこの接続の表示に使用されます。
    • 自動接続する — このボックスにチェックを入れると、この接続が利用可能な時にNetworkManager が自動接続します。詳細については 「ネットワークへの自動接続」 を参照してください。
    • すべてのユーザーに利用可能 — このシステム上のすべてのユーザーに利用可能な接続を作成するには、このボックスにチェックを入れます。この設定を変更するには root 権限が必要な場合があります。詳細については「ユーザー接続とシステム接続」 を参照してください。
  5. InfiniBand 特定の設定での編集は、以下の InfiniBand タブの設定 を参照してください。

新規 (または修正した) 接続を保存して他の設定をする

InfiniBand 接続の編集が終了して、適用 ボタンをクリックするとNetworkManager は即座にカスタマイズした設定を保存します。設定が正しければ、NetworkManager 通知スペースアプレットから新規またはカスタマイズした接続を選択して、その接続が確立されます。新規または変更した接続の使用に関する詳細については 「ネットワークへの接続」 を参照してください。
既存の接続をさらに設定をするには、ネットワーク接続 ウィンドウ内でその接続を選択し、編集 をクリックして 編集 ダイアログに戻ります。
そして、以下のいずれかの設定をします:

InfiniBand タブの設定

新規の InfiniBand 接続を既に追加している場合 (手順に関しては、手順8.13「新規 InfiniBand 接続の追加」 を参照) 、InfiniBand タブを編集して、親インターフェースと InfiniBand ID を設定できます。
トランスポートモード
ドロップダウンリストから、データグラムまたは接続モードを選択できます。他の IPoIB ネットワークで使用しているモードと同じものを選びます。
Device MAC アドレス
InfiniBand ネットワークのトラフィックで使用される InfiniBand 対応デバイスの MAC アドレスです。InfiniBand ハードウェアがインストールされていれば、このハードウェアのアドレスフィールドは事前に記入されます。
MTU
InfiniBand 接続で送信されるパケットに使用する最大転送単位 (MTU) のサイズをオプションで設定します。

8.3.9. 接続セッティングの設定

8.3.9.1. 802.1x セキュリティの設定

802.1x セキュリティとは、PNAC (port-based Network Access Control) 用の IEEE 基準の名前です。簡単に言えば、802.1x セキュリティは、物理ネットワークから 論理ネットワーク を定義する手段です。論理ネットワークに参加を希望するすべてのクライアントは、正しい 802.1x 認証方法を使用してサーバー (例えば、ルーター) で認証を受けなければなりません。
802.1x セキュリティは最も多く無線ネットワーク (WLANs) の保護に関連付けられていますが、ネットワーク (LAN) へのアクセスを持つ侵入者を阻止するためにも使用できます。過去に於いて、DHCP サーバーは認証の無いユーザーに IP アドレスをリースするように設定されていましたが、各種理由でこれは非現実的で安全ではないため、今ではもう推奨できません。その代わりにポートベースの認証を介して論理的に安全なネットワークを確実にするために 802.1x セキュリティが使用されます。
802.1x は、WLAN と LAN のアクセス制御用のフレームワークを提供して、EAP (Extensible Authentication Protocol) タイプの1つを運搬する包装として機能します。EAP のタイプとは、ネットワーク上で WLAN セキュリティの達成方法を定義するプロトコルです。
有線、あるいは無線接続タイプ用に 802.1x セキュリティを設定するには、ネットワーク接続 ウィンドウを開いて (「新規接続の設定と既存接続の編集」参照) 該当する手順に従います:

手順8.15 有線接続には...

  1. 追加 ボタンをクリックして 802.1x セキュリティを設定する新規のネットワーク接続を選択してから 作成 をクリックするか、既存の接続を選択して 編集 をクリックします。
  2. 802.1x セキュリティ タブを選択して、そこにある この接続に 802.1x セキュリティを使用する チェックボックスにチェックを入れることで設定を有効にします。

手順8.16 無線接続には...

  1. 追加 ボタンをクリックして 802.1x セキュリティを設定する新規のネットワーク接続を選択してから 作成 をクリックするか、既存の接続を選択して 編集 をクリックします。
  2. 無線セキュリティ タブを選択します。
  3. セキュリティ ドロップダウンをクリックして以下のセキュリティメソッドの1つを選択します:LEAP動的 WEP (802.1x)、あるいは WPA & WPA2 Enterprise
  4. どの EAP タイプが セキュリティ ドロップダウン内の選択肢に対応しているかについての説明は、「TLS (Transport Layer Security) セッティングの設定」 を参照してください。
8.3.9.1.1. TLS (Transport Layer Security) セッティングの設定
TLS (トランスポートレイヤーセキュリティ) では、クライアントとサーバーは TLS プロトコルを使用して相互に認証し合います。サーバーはデジタル証明書を維持していることを示して、クライアントはそのクライアント側の証明書を使用して自身の識別を証明することで、キー情報が交換されます。認証が完了すると、TLS トンネルの使用は終了します。その代わりにクライアントとサーバーは交換したキーで、AES, TKIP または WEP を使用してデータを暗号化します。
認証を希望する全クライアントに証明書が配布される必要があるということは、EAP-TLS 認証のメソッドが非常に強力であることを意味しますが、セットアップはより複雑になります。TLS セキュリティを使用すると、証明書を管理するための PKI (パブリックキーインフラストラクチャ) の諸経費が必要になります。TLS セキュリティを使用する利点は、パスワードが危険にさらされても (W)LAN へのアクセスが許可されないことです。侵入者は、認証するクライアントのプライベートキーにもアクセスを必要とします。
Network Manger は、対応する TLS のバージョンを決定しません。Network Manager は、ユーザーが入力するパラメーターを集め、手順を処理するデーモンである wpa_supplicant に渡します。このデーモンは、OpenSSL を使って TLS トンネルを確立します。OpenSSL は、SSL/TLS プロトコルバージョンを処理します。このバージョンには、両方の末端でサポートされる最高のバージョンが使用されます。
識別
ユーザー名やログイン名などの、EAP 認証メソッドの識別ストリングです。
ユーザーの証明書
クリックしてブラウズし、ユーザーの証明書を選択します。
CA 証明書
クリックしてブラウズし、認証局 (CA) の証明書を選択します。
プライベートキー
クリックしてブラウズし、ユーザーのプライベートキーファイルを選択します。
プライベートキーのパスワード
ユーザーのプライベートキーに対応するユーザーのパスワードを入力します。
8.3.9.1.2. トンネル化した TLS セッティングの設定
匿名識別
この値は、非暗号化 ID として使用されます。
CA 証明書
クリックしてブラウズし、認証局 (CA) の証明書を選択します。
内部認証
PAP — パスワード認証プロトコル
MSCHAP — チャレンジ ハンドシェイク認証プロトコル
MSCHAPv2 — Microsoft チャレンジハンドシェイク認証プロトコルバージョン 2
CHAP — チャレンジ ハンドシェイク認証プロトコル
ユーザー名
認証プロセスで使用するユーザー名を入力します。
パスワード
認証プロセスで使用するパスワードを入力します。
8.3.9.1.3. 保護された EAP (PEAP) セッティングの設定
匿名識別
この値は、非暗号化 ID として使用されます。
CA 証明書
クリックしてブラウズし、認証局 (CA) の証明書を選択します。
PEAP バージョン
使用する、保護された EAP のバージョン。Automatic、0、1 のいずれか。
内部認証
MSCHAPv2 — Microsoft チャレンジハンドシェイク認証プロトコルバージョン 2
MD5 — メッセージダイジェスト 5、暗号化ハッシュ関数。
GTC — Generic Token Card
ユーザー名
認証プロセスで使用するユーザー名を入力します。
パスワード
認証プロセスで使用するパスワードを入力します。

8.3.9.2. 無線セキュリティの設定

セキュリティ
なし — Wi-Fi 接続を暗号化しません。
WEP 40/128-bit キー — IEEE 802.11 標準からの Wired Equivalent Privacy (WEP) 。単一の事前共有キー (PSK) を使用。
WEP 128-bit パスフレーズ — パスフレーズの MD5 ハッシュを使用して WEP キーを引き出します。
LEAP — Cisco Systems の Lightweight Extensible Authentication Protocol 。
動的 WEP (802.1x) — WEP キーは動的に変更されます。
WPA & WPA2 パーソナル — IEEE 802.11i 標準からの Wi-Fi Protected Access (WPA) 。WEP に代わるもの。802.11i-2004 標準からの Wi-Fi Protected Access II (WPA2) 。パーソナルモードは、事前共有キー (WPA-PSK) を使用。
WPA & WPA2 エンタープライズ — RADUIS 認証サーバーで使用する WPA で、IEEE 802.1x ネットワークアクセスコントロールを提供。
パスワード
認証プロセスで使用するパスワードを入力します。

注記

WPA および WPA2 (個人およびエンタープライズ) の場合、自動、WPA、WPA2 を選択するオプションが加えられます。このオプションは、WPA と WPA2 の両方が利用可能なアクセスポイントでの使用を念頭に置いています。両方のプロトコル間でのローミングを防止したい場合は、どちらかのプロトコルを選択します。同一アクセスポイントでの WPA と WPA2 間のローミングは、サービスの損失につながる恐れがあります。
無線セキュリティタブの編集および WPA プロトコルの選択

図8.16 無線セキュリティタブの編集および WPA プロトコルの選択

8.3.9.3. PPP (Point-to-Point) セッティングの設定

メソッドの設定
MPPE (point-to-point encryption) を使用
Microsoft Point-To-Point Encryption プロトコル (RFC 3078)
BSD データ圧縮を許可
PPP BSD Compression プロトコル (RFC 1977)
Deflate データ圧縮を許可
PPP Deflate プロトコル (RFC 1979)
TCP ヘッダー圧縮を使用
低速シリアルリンク用に TCP/IP ヘッダーを圧縮 (RFC 1144)
PPP エコーパケットを送信
ループバックテスト用の LCP エコー要求およびエコー応答コード (RFC 1661)

8.3.9.4. IPv4 セッティングの設定

IPv4 セッティングタブの編集

図8.17 IPv4 セッティングタブの編集

IPv4 のセッティング タブではインターネットへの接続メソッドを設定して、必要に応じて IP アドレス、ルートおよび DNS 情報を入力することができます。IPv4 のセッティング タブは、以下の接続タイプの1つを作成して修正する時に利用可能になります。有線、無線、モバイルブロードバンド、VPN、 DSL。
DHCP を使用して DHCP サーバーから動的に IP アドレスを取得する場合は、方式 を単に 自動 (DHCP) にセットするだけです。
方式のセッティング

接続タイプ別で利用可能な IPv4 方式

方式 ドロップダウンメニューをクリックすると、設定している接続のタイプによっては、以下の IPv4 接続方式の1つを選択することができます。関連のある接続タイプ群に応じてすべての方針がここに一覧表示されています。
方式
自動 (DHCP) — 接続しているネットワークが IP アドレスの割り当てにDHCP サーバーを使用する場合は、このオプションを選択します。DHCP クライアント ID フィールドに記入する必要はありません。
自動 (DHCP) アドレスのみ — 接続しているネットワークが IP アドレスの割り当てにDHCP サーバーを使用しているが、DNS サーバーを手動で割り当てたい場合は、このオプションを選択します。
ローカルのみリンク(Link-Local Only) — 接続しているネットワークに DHCP サーバーがなく、IP アドレスを手動で割り当てたくない場合に、このオプションを選択します。RFC 3927 にしたがってランダムなアドレスが選択されます。
他のコンピュータへ共有 — 設定しているインターフェースがインターネットもしくは WAN 接続の共有用である場合は、このオプションを選択します。
有線、無線、及び DSL 接続の方式
手動 — 接続しているネットワークに DHCP サーバーがなく、IP アドレスを手動で割り当てたい場合に、このオプションを選択します。
モバイルブロードバンド接続の方式
自動 (PPP) — 接続しているネットワークが IP アドレスの割り当てにDHCP サーバーを使用する場合は、このオプションを選択します。
自動 (PPP) アドレスのみ — 接続しているネットワークが IP アドレスの割り当てにDHCP サーバーを使用しているが、DNS サーバーを手動で割り当てたい場合は、このオプションを選択します。
VPN 接続の方式
自動 (VPN) — 接続しているネットワークが IP アドレスの割り当てにDHCP サーバーを使用する場合は、このオプションを選択します。
自動 (VPN) アドレスのみ — 接続しているネットワークが IP アドレスの割り当てにDHCP サーバーを使用しているが、DNS サーバーを手動で割り当てたい場合は、このオプションを選択します。
DSL 接続の方式
自動 (PPPoE) — 接続しているネットワークが IP アドレスの割り当てにDHCP サーバーを使用する場合は、このオプションを選択します。
自動 (PPPoE) アドレスのみ — 接続しているネットワークが IP アドレスの割り当てにDHCP サーバーを使用しているが、DNS サーバーを手動で割り当てたい場合は、このオプションを選択します。
ネットワーク接続の静的ルート設定に関する詳細は、「ルートの設定」 を参照してください。

8.3.9.5. IPv6 セッティングの設定

方式
無視する — IPv6 セッティングを無効にしたい場合は、このオプションを選びます。
自動 — 接続しているネットワークが IP アドレスの割り当てにDHCP サーバーを使用する場合は、このオプションを選択します。
自動、アドレスのみ — 接続しているネットワークが IP アドレスの割り当てにDHCP サーバーを使用しているが、DNS サーバーを手動で割り当てたい場合は、このオプションを選択します。
手動 — 接続しているネットワークに DHCP サーバーがなく、IP アドレスを手動で割り当てたい場合に、このオプションを選択します。
ローカルのみリンク(Link-Local Only) — 接続しているネットワークに DHCP サーバーがなく、IP アドレスを手動で割り当てたくない場合に、このオプションを選択します。RFC 4862 にしたがってランダムなアドレスが選択されます。
他のコンピュータへ共有 — 設定しているインターフェースがインターネットもしくは WAN 接続の共有用である場合は、このオプションを選択します。
アドレス
DNS サーバー — コンマで区切られた DNS サーバーのリストを入力します。
ドメインを検索 — コンマで区切られたドメインコントローラーのリストを入力します。
ネットワーク接続の静的ルート設定に関する詳細は、「ルートの設定」 を参照してください。

8.3.9.6. ルートの設定

ホストのルーティング表は、ネットワークに直接接続されているルートで自動的に設定されます。このルートは、アップ の状態の時にネットワークインターフェースが監視することで学習されます。このセクションでは、VPN や 専用線などの媒介ネットワークや接続を移動してアクセスできるネットワークやホストへの静的ルートの入力方法について説明します。
静的ネットワークルートの設定

図8.18 静的ネットワークルートの設定

アドレス
アドレス — ネットワーク、サブネット、ホストの IP アドレスです。
ネットマスク — ネットマスクまたは入力した IP アドレスのプレフィックスの長さ
ゲートウェイ — ネットワーク、サブネット、ホストにつながるゲートウェイの IP アドレスです。
メトリック — ネットワークコスト、つまりこのルートに与える優先値。高い値よりも低い値の方が望ましい。
自動取得したルートを無視
接続に手動入力したルートのみを使用する場合は、このボックスにチェックを入れます。
ネットワーク上のリソースにのみこの接続を使用
この接続がデフォルトルートにならないようにするには、このチェックボックスを選択します。よくある例は、ヘッドオフィスへの接続が VPN や専用線で、インターネットのトラフィックにこの接続を使用してほしくない場合です。このオプションを選択すると、この接続で自動的に学習されたルートを使用することが明確なトラフィックか、手動で入力されたトラフィックのみがこの接続を経由します。

8.4. NetworkManager のアーキテクチャ

第9章 ネットワークインターフェース

Red Hat Enterprise Linux では、ネットワーク通信はすべてシステムに接続された、設定済みのソフトウェア インターフェース物理ネットワークデバイス の間で発生します。
ネットワークインターフェース用の設定ファイルは、/etc/sysconfig/network-scripts/ ディレクトリにあります。これらのネットワークインターフェースをアクティベート、非アクティベートするスクリプトも同じディレクトリにあります。システムによっては、インターフェースファイルの数とタイプは異なる場合がありますが、このディレクトリに存在するファイルには3つのカテゴリーがあります。
  1. インターフェース設定ファイル
  2. インターフェース制御スクリプト
  3. ネットワーク関数ファイル
これらの各カテゴリーのファイルが一体となって機能し、様々なネットワークデバイスを有効にします。
本章では、これらのファイルの関係と使用方法について詳しく説明していきます。

9.1. ネットワーク設定ファイル

インターフェース設定ファイルについて詳しく見ていく前に、まずネットワーク設定に使用する主要な設定ファイルについて項目別に説明しましょう。ネットワークスタックを設定するにあたってこうしたファイルの役割を理解しておくと、Red Hat Enterprise Linux システムをカスタマイズする時に役立ちます。
主要なネットワーク設定ファイルは以下の通りです。
/etc/hosts
このファイルの主要目的は、他の方法では解決できないホスト名を解決することです。DNS サーバーのない、小規模ネットワーク上のホスト名を解決することも可能です。コンピュータが接続されているネットワークのタイプにかかわらず、このファイルには、localhost.localdomain として、ループバックデバイスの IP アドレス (127.0.0.1) を指定する行が含まれているはずです。詳しくは、hosts(5) の man ページを参照してください。
/etc/resolv.conf
このファイルは、DNS サーバーの IP アドレスと検索ドメインを指定します。他の動作を行うように設定されていない限り、ネットワーク初期化スクリプトはそうしたデータをこのファイルに入れます。このファイルの詳細情報は、resolv.conf(5) の man ページを参照してください。
/etc/sysconfig/network
このファイルは、すべてのネットワークインターフェースのルーティングとホストの情報を指定します。グローバルな影響があり、インターフェース固有でない指示文の格納に使われます。このファイルとそれが使用できる指示文の詳細は、「/etc/sysconfig/network」 を参照してください。
/etc/sysconfig/network-scripts/ifcfg-interface-name
各ネットワークインターフェースには、対応するインターフェース設定スクリプトがあります。これらの各ファイルは、特定のネットワークインターフェースに固有の情報を提供します。このタイプのファイルとそれが使用できる指示文の詳細については、「インターフェース設定ファイル」 を参照してください。

重要

ネットワークインターフェースの名前はハードウェアのタイプによって異なるかも知れません。詳細については、付録A 一貫したネットワークデバイスの命名 を参照して下さい。

警告

/etc/sysconfig/networking/ ディレクトリは、非推奨の Network Administration Tool (system-config-network) が使用し、そのコンテンツは手動で編集 すべきではありません。設定を削除してしまうリスクがあるため、ネットワーク設定には 1 つの方法だけを使用することを強く推奨します。グラフィカル設定ツールを使用したネットワークインターフェイスの設定に関する情報は、8章NetworkManager を参照して下さい。

9.2. インターフェース設定ファイル

インターフェース設定ファイルは、個々のネットワークデバイスのソフトウェアインターフェースを制御します。システムは、ブート時にこれらのファイルを使用して、どのインターフェースをアクティブにして、どのように設定するかを決定します。これらのファイルは、通常 ifcfg-name と命名されます。name は設定ファイルが制御するデバイスの名前を指します。

9.2.1. イーサネットインターフェース

etc/sysconfig/network-scripts/ifcfg-eth0 は、最も一般的なインターフェースファイルの 1 つです。これは、システムの一番目のイーサネットの ネットワークインターフェースカード または NIC を制御します。複数の NIC を持つシステムには、複数の ifcfg-ethX ファイルが存在します (X は特定のインターフェースに対応した一意の番号です)。デバイスにはそれぞれ独自の設定ファイルがあるため、管理者は、各インターフェースがどう機能するか個別に制御できます。
固定 IP アドレスを使用するシステム用の ifcfg-eth0 ファイルのサンプルは以下のとおりです:
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
NETMASK=255.255.255.0
IPADDR=10.0.1.27
USERCTL=no
インターフェース設定ファイルで必要な値は、他の値に基づいて変化します。例えば、DHCP を使用するインターフェース用の ifcfg-eth0 ファイルは、IP 情報が DHCP サーバーにより提供されるため異なって見えます:
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
NetworkManager は、様々なネットワークインターフェースの設定ファイルに変更を加える簡単な方法です (このツールの使用に関する詳しい説明は 8章NetworkManager を参照してください)。
ただし、任意のネットワークインターフェースの設定ファイルを手動で編集することも可能です。
以下は、イーサネットインターフェースの設定ファイルにある設定可能なパラメータの一覧です:
BONDING_OPTS=パラメータ
ボンディングデバイス用の設定パラメータを設定し、/etc/sysconfig/network-scripts/ifcfg-bondN で使用されます (「チャンネルボンディングインターフェース」 を参照)。これらのパラメータは、/sys/class/net/bonding device/bonding でボンディングデバイスに使用されているパラメータ、及び bonding モジュール指示文 に記載のボンディングドライバー用のモジュールパラメータと全く同じです。
この設定方法を用いると、複数のボンディングデバイスを異なる設定にできます。すべてのボンディングオプションは、ifcfg-nameBONDING_OPTS 指示文の後ろに置くことが強く推奨されます。/etc/modprobe.d/bonding.conf または廃棄になった /etc/modprobe.conf ファイルでは、ボンディングデバイスのオプションは指定 しないでください
BOOTPROTO=プロトコル
プロトコル が以下のいずれかの場合です:
  • none — ブート時プロトコルを使用しません。
  • bootp — BOOTP プロトコルを使用する必要があります。
  • dhcp — DHCP プロトコルを使用する必要があります。
BROADCAST=アドレス
アドレス はブロードキャストアドレスです。この指示文は、ifcalc で自動的に値が算出されるため破棄されています。
DEVICE=名前
名前 は物理デバイス名です (動的に割り振られる PPP デバイスを除きます。その場合は 論理名 です)。
DHCP_HOSTNAME=名前
名前 は DHCP サーバーに送信される短いホスト名です。クライアントが IP アドレスを受信する前にホスト名を指定するように DHCP サーバーが 要求する場合に限り、このオプションを使用します。
DNS{1,2}=アドレス
PEERDNS 指示文が yes にセットされている場合、アドレス/etc/resolv.conf に配置されるネームサーバーのアドレスです 。
ETHTOOL_OPTS=オプション
オプションethtool がサポートする任意のデバイス固有オプションです。例えば 100Mb、フルデュプレックスを強制したい場合は以下のようにします :
ETHTOOL_OPTS="autoneg off speed 100 duplex full"
カスタムの initscript の代わりに、ETHTOOL_OPTS を使用して、インターフェースのスピードとデュプレックス設定を行います。ネットワーク initscript 外で実行されるカスタム initscript により、ブート後のネットワークサービスの再起動中に予期できない結果をもたらします。

重要

スピードまたはデュプレックスの設定を変更する場合は、ほとんどの場合 autoneg off オプションを使用してオートネゴシエーションを無効にする必要があります。オプションエントリは順序に依存するため、このオプションは最初に記載する必要があります。
Ethtool オプションの詳細については、「Ethtool」 を参照して下さい。
HOTPLUG=回答
回答 が以下のいずれかの場合です:
  • yes — ホットプラグになっている時にこのデバイスをアクティブにします (これがデフォルトのオプション)。
  • no — ホットプラグの時でもこのデバイスをアクティブに しません
HOTPLUG=no オプションを使用すると、ボンディングカーネルモジュールがロードされる際にチャンネルボンディングインターフェイスがアクティブになるのを阻止できます。
チャンネルボンディングインターフェースの詳細は、「チャンネルボンディングインターフェース」 を参照してください。
HWADDR=MAC-アドレス
MAC-アドレス は、AA:BB:CC:DD:EE:FF 形式のイーサネットデバイスのハードウェアアドレスです。複数の NIC が格納されたマシンでこの指示文を使用して、各 NIC モジュールの設定されているロード順序に関わらず、正しいデバイス名がインターフェースに割り当てられるようにする必要があります。この指示文は、MACADDR と併用されるべき ではありません

注記

  • 永続的なデバイス名は /etc/udev/rules.d/70-persistent-net.rules が処理します。
  • HWADDR は、System z ネットワークデバイスと使用しないでください。
  • Red Hat Enterprise Linux 6 Installation Guide のセクション 25.3.3 「サブチャンネルのマッピングとネットワークデバイス名」を参照してください。
IPADDR=アドレス
アドレス は IP アドレスです。
LINKDELAY=時間
時間 は、デバイス設定の前にリンクが交渉するための待機時間の秒数です。
MACADDR=MAC-アドレス
MAC-アドレスAA:BB:CC:DD:EE:FF 形式のイーサネットデバイスのハードウェアアドレスです。
この指示文を使用して、MAC アドレスをインターフェースに割り当て、物理 NIC に割り当てられた MAC アドレスを上書きします。この指示文は HWADDR 指示文と併用 しない ことが推奨されます。
MASTER=ボンドインターフェイス
ボンドインターフェイス はイーサネットインターフェースがリンクされたチャンネルボンディングインターフェースです。
この指示文は、SLAVE 指示文と併用されます。
チャンネルボンディングインターフェースに関する詳細は 「チャンネルボンディングインターフェース」 を参照してください。
NETMASK=マスク
マスク はネットマスクの値です。
NETWORK=アドレス
アドレス はネットワークアドレスです。値は ipcalc で自動的に算出されるため、この指示文は廃棄されています。
NM_CONTROLLED=回答
回答 が以下のいずれかの場合です:
  • yes — NetworkManager によるこのデバイスの設定が許可されます。これはデフォルトの動作で、省略できます。
  • no — NetworkManager によるこのデバイスの設定は許可されません。

注記

NM_CONTROLLED 指示文は、Red Hat Enterpise Linux 6.3 以降で /etc/sysconfig/networkNM_BOND_VLAN_ENABLED 指示文に依存しています。この指示が存在し、yesytrue の場合のみ、NetworkManager はボンディングおよび VLAN インターフェースを検出し、管理します。
ONBOOT=回答
回答 が以下のいずれかの場合です:
  • yes — このデバイスはブート時にアクティブにされる必要があります。
  • no — このデバイスはブート時にアクティブにされる必要はありません。
PEERDNS=回答
回答 が以下のいずれかの場合です:
  • yes — DNS 指示文が設定されている場合は /etc/resolv.conf を変更します。DHCP を使用する場合は、yes がデフォルトです。
  • no/etc/resolv.conf を変更しません。
SLAVE=回答
回答 が以下のいずれかの場合です:
  • yes — このデバイスは、MASTER 指示文で指定されているチャンネルボンディングインターフェースにより制御されます。
  • no — このデバイスは、MASTER 指示文で指定されているチャンネルボンディングインターフェースにより制御 されません
この指示文は、MASTER 指示文と併用されます。
チャンネルボンディングインターフェースの詳細は、「チャンネルボンディングインターフェース」 を参照してください。
SRCADDR=アドレス
アドレス は、送信パケットのために指定されたソース IP アドレスです。
USERCTL=回答
回答 が以下のいずれかの場合です:
  • yesroot でないユーザーもこのデバイスを制御できます。
  • noroot でないユーザーはこのデバイスを制御できません。

9.2.2. System z 上の Linux 特定の ifcfg オプション

SUBCHANNELS=<read_device_bus_id>, <write_device_bus_id>, <data_device_bus_id>
<read_device_bus_id><write_device_bus_id>, <data_device_bus_id> は、ネットワークデバイスを示す 3 つのデバイスバス ID です。
PORTNAME=myname;
myname は、オープンシステムアダプター (OSA) の portname または LAN チャンネルステーション (LCS) の portnumber になります。
CTCPROT=回答
回答 が以下のいずれかの場合です:
  • 0 — 互換モード、仮想マシンの TCP/IP (IBM S/390 や IBM System z オペレーティングシステムではない、Linux 以外のピアで使用)。これはデフォルトモードです。
  • 1 — 拡張モード、Linux-to-Linux ピアーズで使用。
  • 3 — S/390 および IBM System z オペレーティングシステムの互換モード。
この指示文は、NETTYPE 指示文と合わせて使われます。NETTYPE='ctc' の CTC プロトコルを指定します。デフォルト値は 0 です。
OPTION='回答'
'回答' は、有効な sysfs 属性とその値の引用符で囲まれた文字列です。Red Hat Enterprise Linux インストーラーは現在、これを使用して QETH デバイスのレイヤーモード (layer2) と相対ポート番号 (portno) を設定します。以下に例を挙げます。
OPTIONS='layer2=1 portno=0'

9.2.3. System z 上の Linux の必須 ifcfg オプション

NETTYPE=回答
回答 が以下のいずれかの場合です:
  • ctc —チャンネルツーチャンネル通信。ポイントツーポイントの場合は、TCP/IP または TTY 。
  • lcs — LAN チャンネルステーション (LCS) 。
  • qeth — QETH (QDIO イーサネット) 。これはデフォルトのネットワークインターフェースです。実機または仮想の OSA カードおよび HiperSockets デバイスのサポートで推奨されるインストール方法です。

9.2.4. Ethtool

Ethtool は、Network Interface Cards (NICs) 設定の際のユーティリティです。このユーティリティを使うと、多くのネットワークデバイス、特にイーサネットデバイスのスピードやポート、オートネゴシエーション、PCI の場所、チェックサムオフロードといった設定のクエリや変更が可能になります。
以下に、使用頻度の高い Ethtool コマンドとあまり知られていない有用なコマンドを挙げておきます。コマンドの全一覧は、ethtool -h で表示されます。詳細なリストと説明は、man ページ ethtool(8) を参照してください。以下の最初の 2 例は情報クエリで、コマンドの異なるフォーマットの使い方を示しています。
まず、コマンド構文を見ていきます。
ethtool [option...] devname
option はなしかさらなるオプションで、devname は、eth0em1 などの使用中の Network Interface Card (NIC) です。
ethtool
オプションがデバイス名のみの ethtool コマンドは、ネットワークデバイスに NIC やドライバー統計をクエリする際に使用されます。以下の形式になります。
ethtool -S, --statistics devname
where devname は使用中の NIC です。例えば、eth0em1 などです。
値の中には root でコマンドを実行しないと取得できないものもあります。以下は、root でコマンドを実行した際の出力例です。
~]# ethtool em1
Settings for em1:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Supported pause frame use: No
	Supports auto-negotiation: Yes
	Advertised link modes:  10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Advertised pause frame use: No
	Advertised auto-negotiation: Yes
	Speed: 1000Mb/s
	Duplex: Full
	Port: Twisted Pair
	PHYAD: 2
	Transceiver: internal
	Auto-negotiation: on
	MDI-X: on
	Supports Wake-on: pumbg
	Wake-on: g
	Current message level: 0x00000007 (7)
			       drv probe link
	Link detected: yes
長短どちらかの形式の引数を使用して以下のコマンドを発行し、特定のネットワークデバイスに関連するドライバー情報をクエリします。
ethtool -i, --driver devname
devname は、eth0em1 などの使用中の Network Interface Card (NIC) です。
以下は出力例です。
~]$ ethtool -i em1
driver: e1000e
version: 2.0.0-k
firmware-version: 0.13-3
bus-info: 0000:00:19.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
ここではデバイスのクエリや識別、リセットに使用するコマンドリストを説明します。形式は通常の - 短いものと -- 長いものになります。
--statistics
--statistics または -S は、特定のネットワークデバイスに NIC やドライバー統計をクエリする際に使用されます。以下の形式になります。
ethtool -S, --statistics devname
devname は NIC です。
--identify
--identify または -p オプションは、オペレーターが目視でアダプターを簡単に特定できるようにする目的のアダプター固有のアクションを開始します。通常これで行われるのは、特定のネットワークポート上で 1 つ以上の LED の点滅です。以下の形式になります。
-p, --identify devname integer
integer アクションを実行する時間の長さです (秒単位) 。
devname は NIC です。
--test
--test または -t オプションは、ネットワークインターフェースカード上でテストを実行する際に使用します。以下の形式になります。
-t, --test word devname
word は以下のいずれかになります。
  • offline — 総合的なテストを実行します。サービスが一時中断されます。
  • online — 短縮されたテストを実行します。サービスは中断されません。
  • external_lb — ループバックケーブルが装着されていると、ループバックテストを含む総合的なテストを実行します。
devname は NIC です。
指定されたネットワークデバイスの一部またはすべての設定を変更するには、-s または --change オプションが必要になります。以下のすべてのオプションは、-s または --change オプションが指定された場合のみ、適用されます。明確にするために、ここでは省略します。
これらの設定を永続的なものとするために、ETHTOOL_OPTS 指示文を使うことができます。ネットワークインターフェースがアクティベートされる際にインターフェース設定ファイルで好みのオプションの設定に使用できます。この指示文の使用方法については、「イーサネットインターフェース」 を参照してください。
--speed
--speed は、スピードを毎秒メガビット単位 (Mb/s) で設定するオプションです。スピード値を省略すると、対応するデバイスのスピードが表示されます。以下の形式になります。
--speed number devname
number 毎秒メガビット (Mb/s) 単位でのスピードです。
devname は NIC です。
--duplex
--duplex オペレーションの送信および受信モードを設定するオプションです。以下の形式になります。
 --duplex word devname
word は以下のいずれかになります。
  • half — 半二重モードを設定します。通常、ハブに接続している際に使用します。
  • full — 全二重モードを設定します。通常、スイッチまたは別のホストに接続している際に使用します。
devname は NIC です。
--port
--port は、デバイスポートを選択する際に使用するオプションです。以下の形式になります。
--port value devname
value は、以下のいずれかです。
  • tp — ツイストペアケーブルを媒介として使用するイーサネットインターフェースです。
  • aui — Attachment Unit Interface (AUI) 。通常はハブで使用します。
  • bnc — BNC コネクターおよび同軸ケーブルを使用するイーサネットインターフェースです。
  • mii — Media Independent Interface (MII) を使用するイーサネットインターフェースです。
  • fibre — 光ファイバーを媒介として使用するイーサネットインターフェースです。
devname は NIC です。
--autoneg
--autoneg は、ネットワークスピードとオペレーションモード (全二重もしくは半二重モード) のオートネゴシエーションを制御するオプションです。オートネゴシエーションが有効な場合、-r, --negotiate オプションを使ってネットワークスピードとオペレーションモードの再ネゴシエーションを開始できます。--a, --show-pause オプションを使うとオートネゴシエーションのステータスを表示できます。
以下の形式になります。
--autoneg value devname
value は、以下のいずれかです。
  • yes — ネットワークスピードとオペレーションモードのネゴシエーションを許可します。
  • no — ネットワークスピードとオペレーションモードのネゴシエーションを許可しません。
devname は NIC です。
--advertise
--advertise は、オートネゴシエーションに通知されるスピードとオペレーションモード (二重モード) を設定するオプションです。引数は、表9.1「Ethtool 通知オプション: スピードおよびオペレーションモード」 からの 1 つ以上の十六進法の値になります。
以下の形式になります。
--advertise HEX-VALUE devname
HEX-VALUE は、以下の表からの 1 つ以上の十六進法の値で、devname は NIC です。

表9.1 Ethtool 通知オプション: スピードおよびオペレーションモード

十六進法の値 スピード 二重モード IEEE 基準?
0x001 10
はい
0x002 10
はい
0x004 100
はい
0x008 100
はい
0x010 1000 いいえ
0x020 1000
はい
0x8000 2500 はい
0x1000 10000 はい
0x20000 20000MLD2 いいえ
0x20000 20000MLD2 いいえ
0x40000 20000KR2 いいえ
--phyad
--phyad は、物理アドレスを変更するオプションです。MAC もしくはハードウェアアドレスと呼ばれることが多くありますが、ここでは物理アドレスと呼びます。
以下の形式になります。
--phyad HEX-VALUE devname
HEX-VALUE は十六進法形式での物理アドレスで、devname は、NIC です。
--xcvr
--xcvr は、トランシーバーのタイプを選択するオプションです。現在は、内部 および 外部 のみが指定できます。今後は他のタイプが追加される可能性があります。
以下の形式になります。
--xcvr word devname
word は以下のいずれかになります。
  • internal — 内部トランシーバーを使用。
  • external — 外部トランシーバーを使用。
devname は NIC です。
--wol
--wol は、Wake-on-LAN オプションを設定するオプションです。すべてのデバイスが対応しているわけではありません。このオプションの引数は、どのオプションを有効にするかを指定する文字列です。
以下の形式になります。
--wol value devname
value は、以下の 1 つまたは 複数のものです。
  • p — PHY アクティビティーでウェイク
  • u — ユニキャストメッセージでウェイク
  • m — マルチキャストメッセージでウェイク
  • b — ブロードキャストメッセージでウェイク
  • g — Wake-on-Lan; "magic packet" の受信でウェイク。
  • s — Wake-on-Lan のパスワードを使用してセキュリティ機能を有効にします。
  • d — Wake-on-Lan を無効にし、すべての設定をクリアにします。
devname は NIC です。
--sopass
--sopass は、SecureOn パスワードを設定するオプションです。このオプションの引数は、イーサネット MAC 十六進法形式 (xx:yy:zz:aa:bb:cc) の 6 バイトである必要があります。
以下の形式になります。
--sopass xx:yy:zz:aa:bb:cc devname
xx:yy:zz:aa:bb:cc は MAC アドレスと同一形式のパスワードで、devname は NIC です。
--msglvl
--msglvl は、ドライバーのメッセージタイプフラグを名前もしくは番号で設定するオプションです。これらのタイプフラグの正確な意味は、ドライバーによって異なります。
以下の形式になります。
--msglvl value devname
value は以下のいずれかです。
  • HEX-VALUE — メッセージタイプを示す十六進法の値です。
  • message-type — プレーンテキストのメッセージタイプ名です。
devname は NIC です。
定義済みのメッセージタイプ名および番号は、以下の表に示すとおりです。

表9.2 ドライバーメッセージタイプ

メッセージタイプ 十六進法の値 詳細
drv 0x0001
一般的なドライバーステータス
probe 0x0002
ハードウェアのプローブ
link 0x0004
リンクのステータス
timer 0x0008
定期的なステータスチェック
ifdown 0x0010 非アクティベートにしているインターフェース
ifup 0x0020
アクティベートにしているインターフェース
rx_err 0x0040 エラーを受信
tx_err 0x0080 エラー送信
intr 0x0200 割り込み処理
tx_done 0x0400 送信完了
rx_status 0x0800 受信完了
pktdata 0x1000 パケットコンテンツ
hw 0x2000 ハードウェアのステータス
wol 0x4000 Wake-on-LAN ステータス

9.2.5. チャンネルボンディングインターフェース

Red Hat Enterprise Linux では、bonding カーネルモジュールと、チャンネルボンディングインターフェース と呼ばれる特殊なネットワークインターフェースを使用して、管理者が複数のネットワークインターフェースを単一のチャンネルにまとめてバインドすることが可能です。チャンネルボンディングにより、2 つ以上のネットワークインターフェースが 1 つとして機能できるようになると同時に、帯域幅が増加し、冗長性を実現します。
チャンネルボンディングインターフェースを作成するには、/etc/sysconfig/network-scripts/ ディレクトリに ifcfg-bondN という名前のファイルを作成し、N をそのインターフェースの番号 0 などに置き換えます。
ファイルのコンテンツは、イーサネットインターフェースなどボンディングされるインターフェースがどのようなタイプでも同一のものになります。唯一異なる点は、DEVICE 指示文が bondN で、 N はインターフェースの番号に置き換えられます。
チャンネルボンディング設定ファイルのサンプルは以下のとおりです:

例9.1 ifcfg-bond0 インターフェース設定ファイルのサンプル

DEVICE=bond0
IPADDR=192.168.1.1
NETMASK=255.255.255.0
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
BONDING_OPTS="bonding parameters separated by spaces"
チャンネルボンディングインターフェースを作成した後に、バインドされるネットワークインターフェースを設定するには、その設定ファイルに MASTER 指示文と SLAVE 指示文を追加する必要があります。チャンネルボンディングされたインターフェースの各設定ファイルは、ほぼ同一となる場合があります。
例えば、2 つのイーサネットインターフェースがチャンネルボンディングされる場合、eth0eth1 は以下の例のようになる場合があります。
DEVICE=ethN
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
この例では、N をインターフェースの数値に置き換えます。
チャンネルボンディングインターフェースを有効にするには、カーネルモジュールがロードされている必要があります。チャンネルボンディングインターフェースがアクティブになった時にモジュールが確実にロードされるようにするには、/etc/modprobe.d/ ディレクトリに bonding.conf という名前の新規ファイルを root で作成します。ファイル名は、末尾に .conf の拡張子が付いていれば、どのような名前にすることもできます。新規ファイルに以下の行を挿入します:
alias bondN bonding
N0 などのインターフェースの番号に置き換えます。設定済みの各チャンネルボンディングインターフェースには、新規 /etc/modprobe.d/bonding.conf ファイルに対応するエントリがなければなりません。

重要

ボンディングカーネルモジュールのパラメータは、ifcfg-bondN インターフェースファイル内の BONDING_OPTS="bonding parameters" 指示文でスペースで区切られた一覧として指定する必要があります。/etc/modprobe.d/bonding.conf、 または廃棄になっている /etc/modprobe.conf ファイルのボンディングデバイスでは、オプションを指定しないでください。ボンディングモジュール設定の詳しい説明とアドバイス、及びボンディングパラメータの一覧を表示するには、「チャンネルボンディングの使用」 を参照してください。

9.2.6. ネットワークブリッジ

ネットワークブリッジは、ネットワーク間のトラフィックを MAC アドレスに基づいて転送するリンク層デバイスで、このためレイヤー 2 デバイスとも呼ばれます。転送の決定は、MAC アドレスの表に基づいて行われ、この表はどのホストがどのネットワーク接続しているかをネットワークブリッジが学習することで構築されます。Linux ホスト内では、ソフトウェアブリッジを使ってハードウェアをエミュレートすることができます。例えば、仮想化アプリケーション内で NIC を 1 つ以上の仮想 NIC と共有するなどです。ここではこのケースを例として説明します。
ネットワークブリッジを作成するには、/etc/sysconfig/network-scripts/ ディレクトリに ifcfg-brN という名前のファイルを作成し、N をそのインターフェースの番号 0 などに置き換えます。
ファイルのコンテンツは、イーサネットインターフェースなどブリッジされるインターフェースがどのようなタイプでも類似したものになります。相違点は、以下のとおりです。
  • DEVICE 指示文は brN 形式でその引数としてインターフェース名を与えられ、この N はインターフェースの番号に置き換えられます。
  • TYPE 指示文には、引数 Bridge または Ethernet が与えられます。この指示文は、デバイスタイプと、引数が大文字/小文字を区別するかを決定します。
  • ブリッジインターフェース設定ファイルには IP アドレスがあり、物理インターフェースには MAC アドレスしかありません。
  • 追加の指示文 DELAY=0 が加わり、ブリッジがトラフィックを監視し、ホストの位置を学習し、フィルタリング機能の基になる MAC アドレス表を構築する間に、ブリッジが待機することを回避します。ルーティングループが可能でない場合は、デフォルトの 30 秒遅延は不要です。
  • NM_CONTROLLED=no をイーサネットインターフェースに追加して、NetworkManager によるファイル変更を回避することが推奨されます。NetworkManager の今後のバージョンがブリッジ設定に対応することに備えて、これをブリッジ設定ファイルに追加することもできます。
以下は、静的 IP アドレスを使用したブリッジインターフェース設定ファイルの例です。

例9.2 ifcfg-br0 インターフェース設定ファイルの例

DEVICE=br0
TYPE=Bridge
IPADDR=192.168.1.1
NETMASK=255.255.255.0
ONBOOT=yes
BOOTPROTO=static
NM_CONTROLLED=no
DELAY=0
ブリッジを完成するには、別のインターフェースを作成するか既存のインターフェースを修正して、これをブリッジインターフェースに向けます。以下の例は、イーサネットインターフェース設定ファイルをブリッジインターフェースに向けたものです。/etc/sysconfig/network-scripts/ifcfg-ethX の物理インターフェースを設定します。ここでは X は、特定のインターフェースに対応する一意の番号です。

例9.3 ifcfg-ethX インターフェース設定ファイルの例

DEVICE=ethX
TYPE=Ethernet
HWADDR=AA:BB:CC:DD:EE:FF
BOOTPROTO=none
ONBOOT=yes
NM_CONTROLLED=no
BRIDGE=br0

注記

DEVICE 指示文では、インターフェース名はデバイスタイプを決定するわけではないので、ほぼいかなる名前でも使用できます。一般的に使われる名前の例は、tapdummybond などです。TYPE=Ethernet 絶対に必要なわけではありません。TYPE 指示文が設定されていない場合、(名前が明確に異なるインターフェース設定ファイルと合致していなければ) そのデバイスはイーサネットデバイスとして扱われます。
指示文とネットワークインターフェース設定ファイルで使われているオプションの確認は、「インターフェース設定ファイル」 を参照してください。

警告

リモートホスト上でブリッジ設定をしていて、そのホストへの接続に設定中の物理 NIC を使用している場合、この先に進む前に接続が切断された場合の影響を検討してください。サービスを再起動する際には接続が失われ、エラーが発生すると接続を再確立することができない場合があります。コンソールもしくは帯域外のアクセスが推奨されます。
以下のようにネゴシエーションサービスを再起動して変更を反映させます
 service network restart 
2 つ以上のボンディングされたイーサネットインターフェースから作られたネットワークブリッジの例を示します。これは、仮想化環境でよくあるアプリケーションです。ボンディングされたインターフェースのの設定ファイルに詳しくない場合は、「チャンネルボンディングインターフェース」 を参照してください。
2 つ以上のイーサネットインターフェース設定ファイルを作成もしくは編集し、以下のようにボンディングします。
DEVICE=ethX
TYPE=Ethernet
USERCTL=no
SLAVE=yes
MASTER=bond0
BOOTPROTO=none
HWADDR=AA:BB:CC:DD:EE:FF
NM_CONTROLLED=no

注記

ethX をインターフェース名に使うのは一般的な方法ですが、ほとんどどんな名前でも使用できます。よくある例は、tapdummybond などです。
インターフェース設定ファイル /etc/sysconfig/network-scripts/ifcfg-bond0 を以下のように作成もしくは編集します。
DEVICE=bond0
ONBOOT=yes
BONDING_OPTS='mode=1 miimon=100'
BRIDGE=brbond0
NM_CONTROLLED=no
ボンディングモジュールの設定に関する指示およびアドバイスと、ボンディングパラメーターの一覧については、「チャンネルボンディングの使用」 を参照してください。
インターフェース設定ファイル /etc/sysconfig/network-scripts/ifcfg-brbond0 を以下のように作成もしくは編集します。
DEVICE=brbond0
ONBOOT=yes
TYPE=Bridge
IPADDR=192.168.1.1
NETMASK=255.255.255.0
NM_CONTROLLED=no
2 つのボンディングされたインターフェースインターフェースで構成されるネットワークブリッジ

図9.1 2 つのボンディングされたインターフェースインターフェースで構成されるネットワークブリッジ

これで MASTER=bond0 指示文のある 2 つ以上のインターフェース設定ファイルができました。これらのファイルは、DEVICE=bond0 指示文を含む /etc/sysconfig/network-scripts/ifcfg-bond0 という名前の設定ファイルに向けられています。この ifcfg-bond0 は、/etc/sysconfig/network-scripts/ifcfg-brbond0 設定ファイルに向けられています。これには IP アドバイスが含まれ、ホスト内の仮想ネットワークへのインターフェースとして動作します。
以下のようにネゴシエーションサービスを再起動して変更を反映させます
 service network restart 

9.2.7. 802.1q VLAN タグのセットアップ

  1. 以下のコマンドを入力して、モジュールがロードされていることを確認します。
     lsmod | grep 8021q
  2. モジュールがロードされていない場合は、以下のコマンドでロードします。
    modprobe 8021q
  3. /etc/sysconfig/network-scripts/ifcfg-ethX の物理インターフェースを以下のように設定します。X は特定のインターフェースに対応する一意の番号です。
    DEVICE=ethX
    TYPE=Ethernet
    BOOTPROTO=none
    ONBOOT=yes
  4. /etc/sysconfig/network-scripts で VLAN インターフェース設定を行います。設定ファイル名は、物理インターフェースにピリオド . と VLAN ID 番号を加えたものにします。例えば、VLAN ID が 192 で物理インターフェースが eth0 ならば、設定ファイル名は ifcfg-eth0.192 となります。
    DEVICE=ethX.192
    BOOTPROTO=static
    ONBOOT=yes
    IPADDR=192.168.1.1
    NETMASK=255.255.255.0
    USERCTL=no
    NETWORK=192.168.1.0
    VLAN=yes
    例えば、VLAN ID 193 で同一インターフェースの eth0 上に 2 つ目の VLAN を設定する必要がある場合は、VLAN 設定詳細で eth0.193 の名前の新規ファイルを追加します。
  5. 以下のようにネゴシエーションサービスを再起動して変更を反映させます
     service network restart 

9.2.8. エイリアスファイルとクローンファイル

使用頻度が低い 2 種類のインターフェース設定ファイルは、エイリアス ファイルと クローン ファイルです。iproute パッケージの ip コマンドが今では同一への複数アドレス割り当てに対応するので、この方法で複数アドレスを同一インターフェースにバインディングする必要はもうありません。

注記

本書執筆の時点では、 NetworkManager は、ifcfg ファイルの IP アドレスを検出しません。例えば、ifcfg-eth0 および ifcfg-eth0:1 ファイルがある場合に、NetworkManager が 2 つの接続を作成すると、混乱を引き起こすことになります。
新規インストールでは、ユーザーは NetworkManager の IPv4 または IPv6 タブ上で 手動 を選択し、同一インターフェースに複数の IP アドレスを割り当てることをお勧めします。このツールの使用に関する詳細は 8章NetworkManager を参照してください。
複数のアドレスを単一のインターフェースにバインドするために使用するエイリアスインターフェース設定ファイルは、ifcfg-if-name:alias-value 命名スキームを使用します。
例えば、ifcfg-eth0:0 ファイルは DEVICE=eth0:0 及び 10.0.0.2 の静的 IP アドレスを指定するように設定でき、DHCP を介して ifcfg-eth0 の IP 情報を受信するように既に設定されたイーサネットインターフェースのエイリアスとして機能します。こうした設定の下で、eth0 は動的 IP アドレスにバインドされますが、同一の物理ネットワークカードで、固定された 10.0.0.2 IP アドレスを介して要求を受信することができます。

警告

エイリアスインターフェースは DHCP に対応していません。
クローンインターフェース設定ファイルは、命名慣習に従って ifcfg-if-name-clone-name を使用します。エイリアスファイルは既存のインターフェースに複数のアドレスを使用できるようにするのに対し、クローンファイルはインターフェースの追加オプションを指定するのに使用されます。例えば、eth0 という名前の標準 DHCP イーサネットインターフェースでは、以下のようになります。
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
USERCTL 指示文のデフォルト値は no であるため、これが指定されていなければ、ユーザーはこのインターフェースをアクティベート、非アクティベートすることはできません。ユーザーがインターフェースを制御できるようにするには、ifcfg-eth0ifcfg-eth0-user にコピーしてクローンを作成し、ifcfg-eth0-user に以下の行を追加します:
USERCTL=yes
この方法では、ifcfg-eth0ifcfg-eth0-user の設定オプションが統合されるため、ユーザーは /sbin/ifup eth0-user コマンドを使用して、eth0 インターフェースをアクティベートすることができます。これは基本的な例ですが、この方法は様々なオプションやインターフェースで使用できます。
グラフィカルツールを使ってエイリアスやクローンインターフェース設定ファイルを作成することは、できなくなりました。しかし、本セクションの最初で説明したように、同一インターフェースに複数の IP アドレスを直接割り当てることが化膿になったので、この方法はもう必要ありません。新規インストールでは、ユーザーは NetworkManager の IPv4 または IPv6 タブ上で 手動 を選択し、同一インターフェースに複数の IP アドレスを割り当てることをお勧めします。このツールの使用に関する詳細は 8章NetworkManager を参照してください。

9.2.9. ダイヤルアップインターフェース

ダイヤルアップ接続でインターネットに接続する場合は、そのインターフェース用の設定ファイルが必要となります。
PPP インターフェースファイルは、以下の形式で命名されます。
ifcfg-pppX
X は特定のインターフェースに対応する一意の番号です。
wvdial または Kppp を使用してダイヤルアップアカウントを作成すると、PPP インターフェース設定ファイルが自動的に作成されます。このファイルは手動で作成、編集することもできます。
典型的な /etc/sysconfig/network-scripts/ifcfg-ppp0 ファイルは以下のとおりです:
DEVICE=ppp0
NAME=test
WVDIALSECT=test
MODEMPORT=/dev/modem
LINESPEED=115200
PAPNAME=test
USERCTL=true
ONBOOT=no
PERSIST=no
DEFROUTE=yes
PEERDNS=yes
DEMAND=no
IDLETIMEOUT=600
Serial Line Internet Protocol (SLIP) は、別のダイヤルアップインターフェースですが、頻繁には使用されません。SLIP ファイルには、ifcfg-sl0 のようなインターフェース設定ファイル名が付いています。
これらのファイルで使用される可能性のある他のオプションとして、以下があります:
DEFROUTE=回答
回答 が以下のいずれかの場合です:
  • yes — このインターフェースをデフォルトルートとして設定します。
  • no — このインターフェースをデフォルトルートとして設定しません。
DEMAND=回答
回答 が以下のいずれかの場合です:
  • yes — このインターフェースは、誰かが使用を試みた時に pppd が接続を開始するのを許可します。
  • no — このインターフェースでは、接続を手動で確立する必要があります。
IDLETIMEOUT=
は、インターフェースが自動的に接続を切断するまでのアイドル状態の秒数です。
INITSTRING=文字列
文字列 は、モデムデバイスに渡される初期化文字列です。このオプションは主として、SLIP インターフェースと併用されます。
LINESPEED=
は、デバイスのボーレートです。取り得る標準値として、5760038400192009600 があります。
MODEMPORT=デバイス
デバイス は、このインターフェースの接続を確立するために使用されるシリアルデバイス名です。
MTU=
は、このインターフェースの 最大転送単位 (MTU) の設定です。MTU は、1 フレームが伝送できるデータの最大バイト数を指しており、ヘッダー情報は考慮されません。一部のダイヤルアップ状況下では、この値を 576 に設定すると、破棄されるパケットが少なくなり、接続のスループットが若干向上します。
NAME=名前
名前 は、ダイヤルアップ接続設定のコレクションに付けられるタイトルを指します。
PAPNAME=名前
名前 は、リモートシステムへの接続を許可するために発生する パスワード認証プロトコル (PAP) 交換中に付けられたユーザー名です。
PERSIST=回答
回答 が以下のいずれかの場合です:
  • yes — このインターフェースは、モデムの切断後に非アクティブになるとしても常にアクティブな状態に維持する必要があります。
  • no — このインターフェースは、常にアクティブな状態を維持する必要はありません。
REMIP=アドレス
アドレス は、リモートシステムの IP アドレスです。これは通常指定しません。
WVDIALSECT=名前
名前 は、このインターフェースを /etc/wvdial.conf のダイヤラー設定に関連付けします。このファイルには、ダイヤルする電話番号とインターフェースに関するその他の重要な情報が含まれます。

9.2.10. その他のインターフェース

以下が、その他の一般的なインターフェース設定ファイルです:
ifcfg-lo
ローカルの ループバックインターフェース は、テストに使われる場合が多々ある他、同じシステムに回帰接続する IP アドレスを必要とする様々なアプリケーションで使用されます。ループバックデバイスに送信されるデータはいずれもホストのネットワークレイヤーに直ちに返されます。

警告

ループバックインターフェーススクリプト /etc/sysconfig/network-scripts/ifcfg-lo は、決して手動では編集しないで下さい。手動で編集すると、システムが正常に動作しなくなる恐れがあります。
ifcfg-irlan0
赤外線インターフェース により、赤外線リンクでラップトップやプリンターなどのデバイス間の情報が流れるようにします。これは、一般的にピアツーピア接続で発生する点を除いては、イーサネットデバイスと同様に機能します。
ifcfg-plip0
パラレル回線インターフェースプロトコル (PLIP) 接続は、パラレルポートを利用する点を除いては、イーサネットデバイスとほぼ同様に機能します。
System z 上の Linux のインターフェース設定ファイルには以下が含まれます。
ifcfg-hsiN
HiperSockets は、IBM System z メインフレーム上の z/VM ゲスト仮想マシンおよび論理パーティション (LPAR) 内およびこれらにまたがる高速 TCP/IP 通信のインターフェースです。

9.3. インターフェース制御スクリプト

インターフェース制御スクリプトは、システムインターフェースをアクティベート及び、非アクティベートします。制御スクリプトを呼び出す主要なインターフェース制御スクリプトは、/sbin/ifdown/sbin/ifup の 2 つあり、/etc/sysconfig/network-scripts/ ディレクトリにあります。
ifupifdown のインターフェーススクリプトは、/sbin/ ディレクトリのスクリプトへのシンボリックリンクです。いずれかのスクリプトが呼び出されると、インターフェースの値を以下のように指定する必要があります:
ifup eth0

警告

ifupifdown のインターフェーススクリプトが、ユーザーがネットワークインターフェースをアクティベート、非アクティベートするために使用すべき唯一のスクリプトです。
以下のスクリプトは、参照目的のみのために記載しています。
ネットワークインターフェースを立ち上げるプロセスで様々なネットワーク初期化タスクを実行するために使用する 2 つのファイルは、/etc/rc.d/init.d/functions/etc/sysconfig/network-scripts/network-functions です。詳細は 「ネットワーク関数ファイル」 を参照してください。
インターフェースが指定され、要求を実行するユーザーがインターフェースの制御を許可されたことが確認されると、適切なスクリプトによってインターフェースはアクティベート、非アクティベートされます。以下は /etc/sysconfig/network-scripts/ ディレクトリにある一般的なインターフェース制御スクリプトです:
ifup-aliases
1 つのインターフェースに複数の IP アドレスが関連付けされる場合に、インターフェース設定ファイルから IP エイリアスを設定します。
ifup-ippp 及び ifdown-ippp
ISDN インターフェースをアクティベート、非アクティベートします。
ifup-ipv6 及び ifdown-ipv6
IPv6 インターフェースをアクティベート、非アクティベートします。
ifup-plip
PLIP インターフェースをアクティベートします。
ifup-plusb
ネットワーク接続のため USB インターフェースをアクティベートします。
ifup-post 及び ifdown-post
インターフェースがアクティベート、非アクティベートされた後に実行されるコマンドが含まれます。
ifup-ppp 及び ifdown-ppp
PPP インターフェースをアクティベート、非アクティベートします。
ifup-routes
インターフェースがアクティベートされると、デバイスに対する静的ルートを追加します。
ifdown-sit 及び ifup-sit
IPv4 接続内の IPv6 トンネルをアクティベート、非アクティベートすることに関連する関数呼び出しが含まれます。
ifup-wireless
ワイヤレスインターフェースをアクティベートします。

警告

/etc/sysconfig/network-scripts/ ディレクトリのスクリプトを削除または変更すると、インターフェース接続の動作が不規則になる、または障害が発生する場合があります。そのため、ネットワークインターフェースに関連するスクリプトの修正は、上級ユーザーのみが行うことをお勧めします。
すべてのネットワークスクリプトを同時に操作する最も簡単な方法は、以下のコマンドで例示しているように、ネットワークサービス (/etc/rc.d/init.d/network) で /sbin/service コマンドを使用することです。
/sbin/service network action
ここでは、actionstartstop、または restart のいずれかになります。
以下のコマンドを使用すると、設定済みのデバイスと現在アクティブなネットワークインターフェースの一覧を表示できます:
/sbin/service network status

9.4. 静的ルートおよびデフォルトゲートウェイ

静的ルートは、デフォルトゲートウェイを通過すべきでない、通過してはいけないトラフィックのためのものです。ルーティングは通常、ルーティングデバイスが処理するので、Red Hat Enterprise Linux サーバーやクライアントでは静的ルートの設定は多くの場合、必要ありません。例外は、暗号化 VPN トンネルの通過が必要なトラフィックや、より低コストのルートを通過すべきトラフィックなどです。デフォルトゲートウェイは、ローカルネットワークが宛先となっていないすべてのトラフィックのためのもので、これらのトラフィックのルーティングテーブルには優先ルートが指定されていません。デフォルトゲートウェイはこれまで、専用ネットワークルーターでした。

静的ルート

ip route コマンドを使って IP ルーティングテーブルを表示します。静的ルートが必要な場合は、ip route add コマンドでルーティングテーブルに追加でき、削除したい時は ip route del コマンドを使います。単一の IP アドレスなどのホストアドレスに静的ルートを追加するには、root で以下のコマンドを発行します。
ip route add X.X.X.X
X.X.X.X は、ドッド区切り表記のホストの IP アドレスになります。多くの IP アドレスを意味するネットワークに静的ルートを追加するには、root で以下のコマンドを発行します。
ip route add X.X.X.X/Y
X.X.X.X は、ドッド区切り表記のネットワークの IP アドレスになり、Y はネットワークのプレフィックスになります。ネットワークプレフィックスは、サブネットマスクで有効なビットの数です。ネットワークアドレスとスラッシュ、プレフィックスというこの長さのフォーマットは、CIDR 表記と呼ばれます。
静的ルート設定はインターフェースごとに、/etc/sysconfig/network-scripts/route-interface ファイルに格納されています。例えば、eth0 インターフェースの静的ルートは、/etc/sysconfig/network-scripts/route-eth0 ファイルに格納されています。route-interface ファイルには IP コマンド引数、およびネットワーク/ネットマスク指示文の 2 つの形式があり、これらは下記で説明されています。

デフォルトゲートウェイ

デフォルトゲートウェイは、GATEWAY 指示文で指定されており、グローバルかインターフェース特定の設定ファイルのどちらかで指定できます。ネットワークインターフェースが 1 つ以上ある場合は特に、デフォルトゲートウェイをグローバルで指定すると有利な点があります。継続的に適用された場合、障害発見を容易にすることができます。GATEWAYDEV 指示文もあり、これはグローバルのオプションです。複数のデバイスが GATEWAY を指定し、1 つのインターフェースが GATEWAYDEV 指示文を使用する場合、その指示文が優先することになります。このオプションは、インターフェースがダウンすると予想外の結果をもたらすことがあり、障害発見を複雑にしかねないので、推奨されません。
グローバルのデフォルトゲートウェイ設定は、/etc/sysconfig/network ファイルに格納されています。このファイルは、すべてのネットワークインターフェースのゲートウェイとホストの情報を指定します。このファイルとそれが使用できる指示文の詳細は、「/etc/sysconfig/network」 を参照してください。

IP コマンド引数形式

インターフェースごとの設定ファイルで必要な場合は、1 行目にデフォルトゲートウェイを定義します。これは、デフォルトゲートウェイが DHCP を介して設定されておらず、上記のようにグローバルに設定されていない場合のみに必要です。
default via X.X.X.X dev interface
X.X.X.X は、デフォルトゲートウェイの IP アドレスです。interface は、デフォルトゲートウェイに接続されているインターフェース、または到達可能なインターフェースです。 dev オプションは選択可能で、省略することもできます。
静的ルートを定義します。各行は個別のルートとして解析されます。
X.X.X.X/Y via X.X.X.X dev interface
X.X.X.X/Y は、静的ルートのネットワークアドレスとネットマスクです。X.X.X.Xinterface はそれぞれ、デフォルトゲートウェイの IP アドレスとインターフェースです。X.X.X.X アドレスは、デフォルトゲートウェイの IP アドレスである必要はありません。大半の場合、X.X.X.X は異なるサブネットの IP アドレスとなり、interface はそのサブネットに接続されたインターフェース、または到達可能なインターフェースです。必要な数の静的ルートを追加します。
以下は、IP コマンド引数形式を用いた route-eth0 ファイルのサンプルです。デフォルトゲートウェイは、192.168.0.1 でインターフェースは eth0 です。2 つの静的ルートは、10.10.10.0/24 と 172.16.1.0/24 の両ネットワークに対するものです
default via 192.168.0.1 dev eth0
10.10.10.0/24 via 192.168.0.1 dev eth0
172.16.1.0/24 via 192.168.0.1 dev eth0
静的ルートは、他のサブネットワークに対してのみ設定することをお勧めします。10.10.10.0/24 と 172.16.1.0/24 のネットワークに向かうパケットは、いずれにしてもデフォルトゲートウェイを使用するため、上記の例は必要ではありません。下記の例では、192.168.0.0/24 サブネットのマシン上での異なるサブネットへの静的ルートを設定しています。この例のマシンには、192.168.0.0/24 サブネットの eth0 インターフェースと 10.10.10.0/24 サブネットの eth1 インターフェース (10.10.10.1) があります。
10.10.10.0/24 via 10.10.10.1 dev eth1
終了インターフェースの特定は、オプションです。特定のインターフェースからトラフィックを強制的に締め出したい場合は、これが便利です。例えば VPN の場合、tun0 インターフェースが宛先ネットワークへの異なるサブネットにあったとしても、リモートネットワークへのトラフィックを強制的にこのインターフェース通過とすることができます。

重要

デフォルトゲートウェイが DHCP から既に割り当てられている場合は、IP コマンド引数形式によっては、起動中、または ifup コマンドを使用してインターフェースを非アクティブの状態からアクティブにする時に、次の 2 つのエラーのどちらかが発生する可能性があります:「RTNETLINK answers: File existss (RTNETLINK の応答: ファイルが存在)」 または 「Error: either "to" is a duplicate, or "X.X.X.X" is a garbage (エラー: "to"が重複、または "X.X.X.X" が不要)」。X.X.X.X はゲートウェイか、または異なる IP アドレスです。こうしたエラーは、デフォルトゲートウェイを使用した別のネットワークへのルートが別にある場合にも発生することがあります。こうしたエラーは無視しても安全です。

ネットワーク/ネットマスク指示文の形式

route-interface ファイルに、ネットワーク/ネットマスク指示文の形式を使用することも可能です。以下は、ネットワーク/ネットマスク形式のテンプレートで、説明はその次をご覧ください:
 ADDRESS0=X.X.X.X NETMASK0=X.X.X.X GATEWAY0=X.X.X.X 
  • ADDRESS0=X.X.X.X は、静的ルートのネットワークアドレスです。
  • NETMASK0=X.X.X.X は、ADDRESS0=X.X.X.X で定義されているネットワークアドレス用のネットマスクです。
  • GATEWAY0=X.X.X.X はデフォルトゲートウェイ、または ADDRESS0=X.X.X.X に到達するために使用可能な IP アドレスです。
以下は、ネットワーク/ネットマスク指示文の形式を使用した route-eth0 ファイルのサンプルです。デフォルトゲートウェイは 192.168.0.1、インターフェースは eth0 です。2 つの静的ルートは、10.10.10.0/24 及び 172.16.1.0/24 のネットワークに対するものです。しかし、前述したとおり 10.10.10.0/24 及び 172.16.1.0/24 のネットワークはいずれにしてもデフォルトゲートウェイを使用するため、この例は必要ではありません:
ADDRESS0=10.10.10.0
NETMASK0=255.255.255.0
GATEWAY0=192.168.0.1
ADDRESS1=172.16.1.0
NETMASK1=255.255.255.0
GATEWAY1=192.168.0.1
後続する静的ルートは、順番に番号付けされる必要があり、いずれの値もスキップしてはいけません。例えば、ADDRESS0ADDRESS1ADDRESS2 というようになります。
以下は、192.168.0.0/24 サブネットのマシン上で異なるサブネットへの静的ルートを設定する例です。この例のマシンには、192.168.0.0/24 サブセットの eth0 インターフェースと、10.10.10.0/24 サブネットの eth1 インターフェース (10.10.10.1) があります。
ADDRESS0=10.10.10.0
NETMASK0=255.255.255.0
GATEWAY0=10.10.10.1
DHCP を使用すると、これらの設定を自動的に割り当てることに注意してください。

9.5. ネットワーク関数ファイル

Red Hat Enterprise Linux は、インターフェースをアクティベート、非アクティベートするために使用される重要な一般的関数を格納した複数のファイルを活用します。これらの関数を各インターフェース制御ファイルに強制的に格納する代わりに、必要に応じて呼び出される数種のファイルにグループ化しています。
/etc/sysconfig/network-scripts/network-functions ファイルには、最も一般的に使用される IPv4 関数が格納されており、数多くのインターフェース制御スクリプトに役立ちます。関数の例として、インターフェースのステータス変更に関する情報を要求した実行プログラムへのコンタクト、ホストネームの設定、ゲートウェイデバイスの検索、特定のデバイスが非アクティブかどうかの検証、デフォルトルートの追加があります。
IPv6 インターフェースに必要な関数は IPv4 インターフェースとは異なるため、/etc/sysconfig/network-scripts/network-functions-ipv6 ファイルはこの情報の保持専用に存在します。このファイルの関数は、静的 IPv6 ルートの設定と削除、トンネルの作成と削除、インターフェースへの IPv6 アドレスの追加と削除、インターフェース上の IPv6 アドレスの有無をテストします。

9.6. その他のリソース

以下は、ネットワークインターフェースについてさらに詳しく説明している資料です。

9.6.1. インストールされているドキュメント

/usr/share/doc/initscripts-version/sysconfig.txt
本章では触れていない IPv6 オプションなど、ネットワーク設定ファイル用の利用可能なオプションについて説明しています。

9.6.2. 役立つ Web サイト

http://linux-ip.net/gl/ip-cref/
このファイルには、ルーティングテーブルの操作などに使用できる ip コマンドに関する豊富な情報が含まれています。この情報は、オプションのコンテンツチャンネルから iproute-doc サブパッケージをインストールすると、ip-cref.ps ファイルでも閲覧できます。

パート IV. インフラストラクチャのサービス

ここでは、サービスとデーモンの設定、認証設定、リモートログインの有効方法について解説します。

第10章 サービスとデーモン

システムのセキュリティ維持管理は極めて重要なタスクです。そのアプローチの一つとして、システムサービスへのアクセスを慎重に管理することがあげられます。システムが特定のサービスにオープンアクセスを提供する必要がある場合があります (例えば Web サーバーを実行している場合は httpd など)。但し、サービスを提供する必要がない場合は、バグが悪用される可能性を最小限に抑えるためオフにしておくべきです。
本章では、ランレベルの概念、及びデフォルトのランレベルを設定する方法について説明します。又、ランレベルで実行するサービスの設定についても取り上げ、コマンドラインで service コマンドを使用したサービスの起動、停止、再起動の方法についても説明します。

重要

新たなサービス用にアクセスを許可する場合は、ファイアウォールと SELinux の両方を設定する必要があることを常に念頭に置いて下さい。新規サービスの設定時に、最もよくあるミスの 1 つは、そのサービスへのアクセスを許可するのに必要なファイアウォール設定と SELinux ポリシーの実装を怠ってしまうことです。詳細は、Red Hat Enterprise Linux 6 『セキュリティガイド』 を参照して下さい。

10.1. デフォルトのランレベルの設定

ランレベル とは、状態または モード のことで、そのランレベルが選択された場合に実行されるサービスによって定義されます。番号が付いた 7 つのランレベルがあります (0 から始まります)。

表10.1 Red Hat Enterprise Linux でのランレベル

ランレベル 詳細
0 システムの停止に使用します。このランレベルは保持され、変更できません。
1 シングルユーザーモードでの実行に使用します。このランレベルは保持され、変更できません。
2 デフォルトでは使用されません。自由に定義できます。
3 コマンドラインユーザーインターフェースを使用するフルマルチユーザーモードでの実行に使用します。
4 デフォルトでは使用されません。自由に定義できます。
5 グラフィカルユーザーインターフェースを使用するフルマルチユーザーモードでの実行に使用します。
6 システムの再起動に使用します。このランレベルは保持され、変更できません。
どのランレベルで稼働しているかを確認するには、以下のコマンドを入力します:
~]$ runlevel
N 5
runlevel コマンドにより、以前と現在のランレベルが表示されます。上記の例では、数字の 5 が表示されており、システムはグラフィカルユーザーインターフェースを使用するフルマルチユーザーモードで実行されていることになります。
デフォルトのランレベルを変更するには、/etc/inittab ファイルを修正します。このファイルの終端の近くに、次のような行があります。
id:5:initdefault:
このファイルを root で編集し、この行の数字を、希望するランレベルに変更します。システムを再起動すると変更内容が反映されます。

10.2. サービスの設定

ブート時に起動するサービスを設定できるように、Red Hat Enterprise Linux には次のユーティリティが同梱されています: サービスの設定 グラフィカルアプリケーション、ntsysv テキストユーザーインターフェース、chkconfig コマンドラインツール

重要

POWER アーキテクチャーで最適なパフォーマンスを実現するためには、irqbalance サービスを有効にすることを推奨します。大半の場合、このサービスは Red Hat Enterprise Linux 6 のインストール時にインストールされ、実行されるよう設定されています。irqbalance が実行されているかどうか確認するには、シェルプロンプトで root として以下のコマンドを入力します:
~]# service irqbalance status
irqbalance (pid  1234) is running...
グラフィカルユーザーインターフェースを使用したサービスの有効化及び実行の方法については 「サービス設定ユーティリティの使用」 を参照して下さい。コマンドラインでのタスクの実行方法については 「chkconfig ユーティリティの使用」「サービスの実行」 をそれぞれ参照して下さい。

10.2.1. サービス設定ユーティリティの使用

サービスの設定 ユーティリティは、メニューから、特定のランレベルで起動するサービスを設定したり、サービスを起動、停止、再起動するために Red Hat が開発したグラフィカルアプリケーションです。このユーティリティを起動するには、パネルから システム管理サービス の順に選択するか、シェルプロンプトで system-config-services コマンドを入力します。
サービスの設定ユーティリティ

図10.1 サービスの設定ユーティリティ

このユーティリティは、利用可能なすべてのサービス (/etc/rc.d/init.d/ ディレクトリからのサービスおよび xinetd により制御されているサービス) の一覧とともにその詳細と現在の状態を表示します。使用されるアイコンとそれぞれの意味に関する説明の全一覧は、表10.2「サービスの状態」 を参照して下さい。
初めて変更を加える時は、既に認証されていない限り、スーパーユーザーのパスワードを入力するよう求められることに注意してください。

表10.2 サービスの状態

アイコン 詳細
このサービスは有効です
このサービスは無効です
このサービスは、選択されたランレベルで有効です
このサービスは実行中です
このサービスは停止しています
このサービスには、何らかの障害があります
このサービスの状態は不明です

10.2.1.1. サービスの有効化と無効化

サービスを有効にするには、そのサービスを一覧から選択して、ツールバーの Enable (有効) ボタンをクリックするか、メインメニューから Service (サービス)Enable (有効) の順に選択します。
サービスを無効にするには、そのサービスを一覧から選択して、ツールバーの Disable (無効) ボタンをクリックするか、メインメニューから Service (サービス)Service (無効) の順に選択します。

10.2.1.2. サービスの開始、再起動と停止

サービスを開始するには、そのサービスを一覧から選択して、ツールバーの Start (開始) ボタンをクリックするか、メインメニューから Service (サービス)Start (開始) の順に選択します。xinetd によって制御されているサービスは要求に応じて xinetd により起動されるため、このオプションは使用できない点に注意して下さい。
実行中のサービスを再起動するには、そのサービスを一覧から選択して、ツールバーの Restart (再開始) ボタンをクリックするか、メインメニューから Service (サービス)Restart (再開始) の順に選択します。xinetd によって制御されているサービスは自動的に xinetd により開始/停止されるため、このオプションは使用できない点に注意して下さい。
サービスを停止するには、そのサービスを一覧から選択して、ツールバーの Stop (停止) ボタンをクリックするか、メインメニューから Service (サービス)Stop (停止) の順に選択します。xinetd によって制御されているサービスはジョブが終了した時点で xinetd により停止されるため、このオプションは使用できない点に注意して下さい。

10.2.1.3. ランレベルの選択

サービスを特定のランレベルのみに有効にするには、そのサービスを一覧から選択して、ツールバーの Customize (カスタマイズ) ボタンをクリックするか、メインメニューから Service (サービス)Customize (カスタマイズ) の順に選択します。次に、サービスを実行するランレベルの横にあるチェックボックスにチェックマークを入れます。xinetd によって制御されているサービスには、このオプションは使用できない点に注意して下さい。

10.2.2. ntsysv ユーティリティの使用

ntsysv ユーティリティは、選択したランレベルで起動するサービスを設定するために使用する、シンプルなテキストユーザーインターフェースを使用するコマンドラインアプリケーションです。このユーティリティを開始するには、root でシェルプロンプトに ntsysv と入力します。
ntsysv ユーティリティ

図10.2 ntsysv ユーティリティ

このユーティリティにより、利用可能なサービス (/etc/rc.d/init.d/ ディレクトリからのサービス) の一覧と現在の状態、さらには F1 キーを押すと説明を表示することができます。使用される記号一覧とその意味の説明については 表10.3「サービスの状態」 を参照して下さい。

表10.3 サービスの状態

記号 詳細
[*] このサービスは有効です
[ ] このサービスは無効です

10.2.2.1. サービスの有効化と無効化

サービスを有効にするには、上向き下向き の矢印キーを使用して一覧を移動し、対象のサービスを スペースキー で選択します。括弧内にアスタリスク (*) が表示されます。
サービスを無効にするには、上向き下向き の矢印キーを使用して一覧を移動し、スペースキー で状態を切り替えます。括弧内のアスタリスク (*) が表示されなくなります。
手順が完了したら、Tab キーを使って Ok ボタンまで進み、Enter キーを押して変更を確定します。ntsysv は、実際にはサービスの開始や停止をしない点に注意して下さい。サービスを即時に起動、停止する必要がある場合は、「サービスの開始」 で説明したように service コマンドを使用します。

10.2.2.2. ランレベルの選択

デフォルトでは、ntsysv ユーティリティは現在のランレベルにのみ影響を及ぼします。他のランレベルでサービスを有効、無効にするには、root でコマンドに --level のオプションと、その後に設定する各ランレベルを示す 0 から 6 までの数字を追加して実行します。
ntsysv --level runlevels
例えばランレベル 3 と 5 を設定するには、以下のように入力します。
~]# ntsysv --level 35

10.2.3. chkconfig ユーティリティの使用

chkconfig ユーティリティは、選択したサービスをどのランレベルで起動するかを指定できるコマンドラインツールです。このユーティリティを使用すると、すべての利用可能なサービスと現在の設定を表示することもできます。一覧表示以外で、このコマンドを使用するには、スーパーユーザー権限が必要となる点に注意して下さい。

10.2.3.1. サービスの一覧表示

システムサービス (/etc/rc.d/init.d/ ディレクトリからのサービスおよび xinetd により制御されているサービス) の一覧を表示するには、chkconfig --list と入力するか、追加の引数なしで chkconfig を使用します。これにより、以下の例のような出力が表示されます。
~]# chkconfig --list
NetworkManager  0:off   1:off   2:on    3:on    4:on    5:on    6:off
abrtd           0:off   1:off   2:off   3:on    4:off   5:on    6:off
acpid           0:off   1:off   2:on    3:on    4:on    5:on    6:off
anamon          0:off   1:off   2:off   3:off   4:off   5:off   6:off
atd             0:off   1:off   2:off   3:on    4:on    5:on    6:off
auditd          0:off   1:off   2:on    3:on    4:on    5:on    6:off
avahi-daemon    0:off   1:off   2:off   3:on    4:on    5:on    6:off
... several lines omitted ...
wpa_supplicant  0:off   1:off   2:off   3:off   4:off   5:off   6:off

xinetd based services:
        chargen-dgram:  off
        chargen-stream: off
        cvs:            off
        daytime-dgram:  off
        daytime-stream: off
        discard-dgram:  off
... several lines omitted ...
        time-stream:    off
各行にはサービス名と 7 つの番号が付いたランレベルそれぞれの状態 (オン/オフ) が表示されています。例えば、上記の一覧では NetworkManager は、ランレベル 2、3、4、5 で有効であり、abrtd はランレベル 3 と 5 で実行されます。xinetd ベースのサービスは最後に表示され、状態は on/off のいずれかです。
選択したサービスのみの現在の設定を表示するには、chkconfig --list の後にサービス名を指定したコマンドを使用します:
chkconfig --list service_name
例えば、sshd サービスの現在の設定を表示するには、以下のように入力します。
~]# chkconfig --list sshd
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
このコマンドを使って xinetd によって管理されているサービスの状態を表示することもできます。この場合、出力には単にサービスが有効か無効かが表示されます。
~]# chkconfig --list rsync
rsync           off

10.2.3.2. サービスの有効化

ランレベル 2、3、4、5 でサービスを有効にするには root でシェルプロンプトに以下を入力します。
chkconfig service_name on
例えば、これら 4 つのランレベルで httpd サービスを有効にするには、以下を入力します。
~]# chkconfig httpd on
特定のランレベルのみでサービスを有効にしたい場合は、サービスを実行する各ランレベルを示す 0 から 6 までの数字を --level のオプションの後に付けて追加します。
chkconfig service_name on --level runlevels
例えば abrtd をランレベル 3 と 5 で有効にするには、以下のように入力します。
~]# chkconfig abrtd on --level 35
次回にこれらのランレベルのいずれかに入った時に、該当するサービスが起動します。サービスを即時に起動する必要がある場合は、「サービスの開始」 で説明したように service コマンドを使用します。
xinetd により管理されているサービスはサポートされていないため、これと --level オプションを合わせて使用 しない でください。例えば、rsync サービスを有効にするには、以下のように入力します。
~]# chkconfig rsync on
xinetd デーモンが実行中の場合、手動でデーモンを再起動しなくても、サービスは即座に有効になります。

10.2.3.3. サービスの無効化

ランレベル 2、3、4、5 でサービスを無効にするには root でシェルプロンプトに以下を入力します。
chkconfig service_name off
例えば、これら 4 つのランレベルで httpd サービスを無効にするには、以下を入力します。
~]# chkconfig httpd off
特定のランレベルのみでサービスを無効にしたい場合は、サービスを実行 しない 各ランレベルを示す 0 から 6 までの数字を --level のオプションの後に付けて追加します。
chkconfig service_name off --level runlevels
例えば abrtd をランレベル 2 と 4 で無効にするには、以下のように入力します。
~]# chkconfig abrtd off --level 24
次回にこれらのランレベルのいずれかに入った時に、該当するサービスが停止します。サービスを即時に停止する必要がある場合は、「サービスの停止」 で説明したように service コマンドを使用します。
xinetd により管理されているサービスはサポートされていないため、これと --level オプションを合わせて使用 しない でください。例えば、rsync サービスを無効にするには、以下のように入力します。
~]# chkconfig rsync off
xinetd デーモンが実行中の場合、手動でデーモンを再起動しなくても、サービスは即座に無効になります。

10.3. サービスの実行

service ユーティリティにより、/etc/init.d/ ディレクトリからのサービスを起動、停止、再起動することができます。

10.3.1. サービスステータスの確認

現在のサービスの状態を確認するには、シェルプロンプトで次のコマンドを入力します。
service service_name status
例えば、httpd サービスの状態を確認するには、以下のように入力します。
~]# service httpd status
httpd (pid  7474) is running...
利用可能な全サービスの状態を一度に表示するには、service コマンドを --status-all オプションで実行します。
~]# service --status-all
abrt (pid  1492) is running...
acpid (pid  1305) is running...
atd (pid  1540) is running...
auditd (pid  1103) is running...
automount (pid 1315) is running...
Avahi daemon is running
cpuspeed is stopped
... several lines omitted ...
wpa_supplicant (pid  1227) is running...
「サービス設定ユーティリティの使用」 で説明のとおり、サービスの設定 ユーティリティを使用することもできます。

10.3.2. サービスの開始

サービスを開始するには、root でシェルプロンプトに以下を入力します。
service service_name start
例えば、httpd サービスを開始するには、以下のように入力します。
~]# service httpd start
Starting httpd:                                            [  OK  ]

10.3.3. サービスの停止

実行中のサービスをていしするには、root でシェルプロンプトに以下を入力します。
service service_name stop
例えば、httpd サービスを停止するには、以下のように入力します。
~]# service httpd stop
Stopping httpd:                                            [  OK  ]

10.3.4. サービスの再開

サービスを再開するには、root でシェルプロンプトに以下を入力します。
service service_name restart
例えば、httpd サービスを再開するには、以下のように入力します。
~]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]

10.4. その他のリソース

10.4.1. インストールされているドキュメント

  • chkconfig(8) — chkconfig ユーティリティの man ページです。
  • ntsysv(8) — ntsysv ユーティリティの man ページです。
  • service(8) — service ユーティリティの man ページです。
  • system-config-services(8) — system-config-services ユーティリティの man ページです。

10.4.2. 関連資料

Red Hat Enterprise Linux 6 セキュリティガイド
Red Hat Enterprise Linux 6 のセキュリティ保護についてのガイドです。ファイアウォールの設定や SELinux の設定に関する有益な情報が記載されています。

第11章 認証の設定

認証 とは、ユーザーがシステムによって識別されて確認される手段です。認証プロセスはユーザー名とパスワードなど、なんらかの識別子と認証情報を必要とします。この認証情報はそれからシステムのデータストアに保存してある情報と比較されます。Red Hat Enterprise Linuxでは認証設定ツール (Authentication Configuration Tool) が、LDAP など、ユーザー認証情報に使用するデータストアの設定を手伝います。
利便性とシングルサインオンのために、Red Hat Enterprise Linux は中心となるデーモンを使用して多くの異なるデータストアのユーザー認証情報を保存することができます。System Security Services Daemon (システムセキュリティサービスデーモン) (SSSD) は、LDAP や Kerberos、外部のアプリケーショと対話して、ユーザー認証情報を確認できます。認証設定ツールは SSSD、NIS、Winbind、LDAP を設定し、認証プロセスとキャッシングを組み合わせることができます。

11.1. システム認証の設定

ユーザーが Red Hat Enterprise Linux システムにログインする時には、ユーザーはなんらかの 認証情報 を提示してユーザーの ID を確立します。システムはその認証情報を設定された認証サービスに照らし合わせてチェックします。認証情報が一致してユーザーのアカウントがアクティブだと、ユーザーは認証されます。 (ユーザーが認証されると、その情報はアクセス制御サービスに渡され、そのユーザーに何が許可されているかを確認します。これが、ユーザーがアクセスする 権限のある リソースです。)
ユーザーを確認するための情報はローカルシステム上に存在するか、ローカルシステムがリモートシステム上のユーザーデータベースを参照することもできます。
システムはユーザー認証をチェックする為に有効なアカウントデータベースの設定済み一覧を保有していなければなりません。Red Hat Enterprise Linuxでは、認証設定ツールが、どのようなユーザーデータベースストアでも設定するために GUI とコマンドラインの両方のオプションを保有しています。
ローカルシステムはユーザー情報に様々な異なるデータストアを使用することができます。それには Lightweight Directory Access Protocol (LDAP)、Network Information Service (NIS)、および Winbind が含まれます。さらに LDAP と NIS の両データストアは Kerberos を使ってユーザーを認証できます。

重要

インスト-ル中にまたはセキュリティレベル設定ツールの使用で中レベルまたは高レベルのセキュリティがセットされると、ファイヤーウォールは NIS 認証を妨げます。ファイヤーウォールの詳細については 『Security Guide (セキュリティガイド)』 の「ファイヤーウォール」セクションをご覧下さい。

11.1.1. 認証設定ツール UI の起動

  1. root でシステムにログインします。
  2. システム を開きます
  3. 管理 メニューを開きます
  4. 認証 項目を選択します
別の方法としては、system-config-authentication コマンドを実行します

重要

認証設定ツール UI を閉じると、すぐに変更が反映されます。
Authentication ダイアログボックスには2つの設定タブがあります:
  • 識別と認証、これは ID ストア (ユーザー ID と対応する認証情報が保存されているデータレポジトリ) として使用されるリソースを設定します。
  • 高度なオプション、これによりスマートカードや指紋などのパスワードや認証情報以外の認証方法が可能になります。

11.1.2. 認証目的での ID ストアの選択

識別と認証 のタブは、ユーザーに対する認証法をセットします。デフォルトではローカルシステムの認証を使用しますが、これはユーザーとそのパスワードがローカルシステムのアカウントに対してチェックされると言う意味です。Red Hat Enterprise Linux のマシンはユーザーと認証情報を含んだ LDAP、NIS、そして Winbind などの外部リソースを使用することも出来ます。
ローカル認証

図11.1 ローカル認証

11.1.2.1. LDAP 認証の設定

ユーザーデータベースの LDAP サーバー設定には、openldap-clients パッケージか sssd パッケージを使用します。両パッケージともデフォルトでインストールされています。
  1. 「認証設定ツール UI の起動 」 に説明してあるように、認証設定ツールを開きます。
  2. User Account Database (ユーザーアカウントデータベース) ドロップダウンメニューから LDAP を選択します。
  3. LDAP サーバーに接続するために必要となる情報をセットします。
    • LDAP Search Base DN (LDAP 検索データ DN) は root 接尾辞、またはユーザーディレクトリ用のdistinguished name (識別名) (DN) を与えてくれます。識別/認証に使用されるすべてのユーザーエントリは、この親エントリの下に存在します。例えば、ou=people,dc=example,dc=com
      このフィールドはオプションです。特定されない場合は、LDAP サーバーの設定エントリーにある namingContexts および defaultNamingContext 属性を使って System Security Services Daemon (SSSD) が検索ベースの検出を図ります。
    • LDAP Server は、LDAP サーバーの URL を提供します。これには通常、ldap://ldap.example.com:389 のように、LDAP サーバーのホスト名とポート番号の両方が必要になります。
      安全なプロトコルを ldaps:// に入力することで、CA 証明書をダウンロードする ボタンが有効になります。
    • TLS を使用して接続を暗号化する は、LDAP サーバーに対して接続を暗号化するために「Start TLS (TLS の開始)」を使用するかどうかをセットします。これにより、標準ポート上での安全な接続を可能にします。
      TLS を選択すると CA 証明書をダウンロードする ボタンを有効にするため、発行元の証明書権限から LDAP サーバー用の CA 証明書発行を取り込むようになります。CA 証明書は PEM (privacy enhanced mail プライバシー強化メール) 形式でなければなりません。

      重要

      サーバー URL が安全なプロトコル (ldaps) を使用する場合は、「TLS を使用して接続を暗号化する 」を選択しないでください。 このオプションは Start TLS を使用し、これは標準ポートへの安全な接続を開始します。つまり、安全なポートが指定されている場合、Start TLS ではなく、SSL のようなプロトコルを使用する必要があります。
  4. 認証のメソッドを選択します。LDAP は、単純なパスワード認証、あるいは Kerberos 認証を受け付けます。
    「LDAP または NIS 認証で Kerberos の使用」 に説明してあるようにして Kerberos の使用
    LDAP password オプションは、PAM アプリケーションを使用してLDAP 認証をします。このオプションは、LDAP サーバーに接続するために、安全な (ldaps://) URL か、または TLS オプションを必要とします。

11.1.2.2. NIS 認証の設定

  1. ypbind パッケージをインストールします。これは NIS サービスに必要なものですが、デフォルトではインストールされていません。
    [root@server ~]# yum install ypbind
    ypbind サービスがインストールされると、portmap サービスと ypbind サービスが開始され、起動時に開始できるようになります。
  2. 「認証設定ツール UI の起動 」 に説明してあるように、認証設定ツールを開きます。
  3. User Account Database (ユーザーアカウントデータベース) のドロップダウンメニュー内の NIS を選択します。
  4. NIS サーバーに接続するための情報として NIS ドメイン名とサーバーのホスト名を設定します。NIS サーバーが指定されていない場合は authconfig デーモンが、NIS サーバーを求めてスキャンします。
  5. 認証のメソッドを選択します。NIS は単純なパスワード認証、あるいは Kerberos 認証を受け付けます。
    「LDAP または NIS 認証で Kerberos の使用」 に説明してあるようにして Kerberos の使用
NIS の詳細については、『セキュリティガイド』 の 「Securing NIS (NIS の保護)」 のセクションを参照してください。

11.1.2.3. Winbind 認証の設定

  1. samba-winbind パッケージをインストールします。これは、Samba サービスの Windows 統合機能に必要なものですが、デフォルトではインストールされていません。
    [root@server ~]# yum install samba-winbind
  2. 「認証設定ツール UI の起動 」 に説明してあるように、認証設定ツールを開きます。
  3. User Account Database ドロップダウンメニュー内で Winbind を選択します。
  4. Microsoft Active Directory ドメインコントローラーへ接続するために必要な情報を設定します。
    • Winbind Domain (Winbind ドメイン) は接続先の Windows ドメインを提供します。
      これは、DOMAIN のような Windows 2000 形式にします。
    • セキュリティモデル は Samba クライアントを使用するセキュリティモデルを設定します。authconfig は 4 つのタイプのセキュリティモデルをサポートします。
      • ads は、Samba が Active Directory Server (ADS) レルムのドメインメンバーとして機能するよう設定します。このモードで操作を行うには、krb5-server パッケージがインストールされ、Kerberos が適切に設定されている必要があります。
      • domain は、Windows Server が行うのと同様の方法で、Windows のプライマリまたはバックアップドメインコントローラを通して認証を行うことで、Samba にユーザー名/パスワードの検証をさせます。
      • server は、別のサーバー (例えば Windows Server) を通して認証をすることでローカル Samba サーバーにユーザー名/パスワードの検証をさせます。サーバー認証に失敗した場合には、システムは代わりに user モードで認証を試みます。
      • user はクライアントが有効なユーザー名とパスワードでログインすることを要求します。このモードは暗号化したパスワードをサポートしています。
        ユーザー名の形式は、EXAMPLE\jsmith のように ドメイン\ユーザー とする必要があります。

        注記

        あるユーザーが Windows ドメイン内に存在することを検証する際は、常に Windows 2000 スタイルの形式を使い、バックスラッシュ文字 (\) をエスケープします。例えば、
        [root@server ~]# getent passwd domain\\user DOMAIN\user:*:16777216:16777216:Name Surname:/home/DOMAIN/user:/bin/bash
        これがデフォルトのオプションです。
    • Winbind ADS Realm Samba サーバーが参加する Active Directory レルムを提供します。これは ads セキュリティモデルと一緒でのみ使用されます。
    • Winbind ドメインコントローラ は使用するドメインコントローラを提供します。ドメインコントローラの詳細情報については 「ドメインコントローラー」 を参照して下さい。
    • テンプレートシェル Windows のユーザーアカウント設定用に使用するログインシェルを設定します。
    • オフラインログインを許可 は、ローカルキャッシュ内に認証情報が保存されるようにします。システムがオフラインの時にユーザーがシステムリソースの認証を試みるとキャッシュが参照されます。
winbindd サービスに関する詳細は 「Samba のデーモンと関連サービス」 を参照してください。

11.1.2.4. LDAP または NIS 認証で Kerberos の使用

LDAP と NIS の認証ストアは両方とも Kerberos の認証メソッドをサポートします。Kerberos の利用にはいくつかの利便性があります:
  • 標準ポート上での接続を許可しながら、通信にセキュリティレイヤーを使用します。
  • オフラインログインを可能にする SSSD を使用した認証情報キャッシングを自動的に使用します。
Kerberos 認証の使用には、krb5-libskrb5-workstation の両パッケージが必要になります。
認証の方法 のドロップダウンメニューから Kerberos パスワード を選ぶと、自動的に Kerberos レルムへの接続に必要なフィールドが開きます。
Kerberos フィールド

図11.2 Kerberos フィールド

  • レルム Kerberos サーバー用のレルムに名前を与えます。レルムとは、1つまたはそれ以上の KDC と多数のクライアントで構成される、Kerberos を使用するネットワークのことです。
  • KDCs は、Kerberos チケットを発行するサーバーのコンマ区切りの一覧を提供します。
  • Admin Servers (管理サーバー) は、レルム内で kadmind プロセスを実行している管理サーバーの一覧を提供します。
  • オプションとして、DNS を使用してサーバーのホスト名を解決してレルム内で追加の KDC を見つけることができます。
Kerberos の詳細については、Red Hat Enterprise Linux 6 の 『Managing Single Sign-On and Smart Cards (シングルサインオンとスマートカード)』 ガイドにある「Using Kerberos (Kerberos の使用)」のセクションを参照して下さい。

11.1.3. 代替認証機能の設定

認証設定ツールも、ID ストアとは別に認証動作に関連したセッティングを設定します。これには、まったく異なる認証メソッド (指紋スキャンとスマートカード) やローカル認証ルールが含まれます。これらの認証オプションは、高度なオプション タブで設定します。
高度なオプション

図11.3 高度なオプション

11.1.3.1. 指紋認証の使用

適切なハードウェアが利用可能である場合は、他の認証情報に加えて 指紋読み取りサポートを有効にする オプションでローカルユーザーの認証に指紋スキャンが使用可能になります。

11.1.3.2. ローカル認証パラメータのセッティング

ローカルシステム上で認証動作を定義する Local Authentication Options (ローカル認証オプション) エリアには2つのオプションがあります:
  • Enable local access control (ローカルアクセス制御を有効にする) は、/etc/security/access.conf ファイルに対してローカルユーザー認証ルールをチェックするようの指示します。
  • Password Hashing Algorithm (パスワードハッシュアルゴリズム) は、ローカル保存のパスワードを暗号化するために使用するハッシュアルゴリズムをセットします。

11.1.3.3. スマートカード認証の有効化

適切なスマートカード読み取りが利用できる時には、システムは認証のために他のユーザー認証情報の代わりにスマートカード (または トークン) を受け付けることができます。
Enable smart card support (スマートカードサポートを有効にする) オプションが選択されると、スマートカード認証の動作を定義付けできます:
  • Card Removal Action (カード削除のアクション) はシステムに対してアクティブセッション中にカード読み取りからカードが取り出された時に対応の方法を伝えます。システムは、取り出しを無視して通常どおりにユーザーにリソースへのアクセスを与えるか、またはスマートカードが再供給されるまでシステムは直ちにロックするかのどちらかです。
  • Require smart card login (スマートカードログインを要求) は、スマートカードがログインで必要かどうか、または単にログインで許可されるかどうかをセットします。このオプションが選択されていると、認証に於ける他のメソッドはすべてすぐにブロックされます。

    警告

    スマートカードを使用してシステムに正しく認証をさせるまではこのオプションは選択しないで下さい。
スマートカードの使用には、pam_pkcs11 パスワードが必要になります。

11.1.3.4. ユーザーホームディレクトリの作成

利用者の最初のログイン時にホームディレクトリを作成する オプションを選択するとユーザーが初めてログインする時に自動的にホームディレクトリが作成されます。
このオプションは、LDAP などアカウントを集中的に管理している場合に便利です。しかし、ユーザーのホームディレクトリー管理に自動マウントのようなシステムを使用している場合は、このオプションを選択しないでください。

11.1.4. コマンドライン上で 認証の設定

authconfig コマンドラインツールは、スクリプトに渡されたセッティングに応じてシステム認証に必要な設定ファイルとサービスのすべてを更新します。UI を通じてセットできるすべての識別子と認証設定のオプションの認可に加えて、authconfig ツールはバックアップファイルとキックスタートファイルの作成にも使用できます。
authconfig オプションの総合一覧についてはヘルプの出力と man ページを参照してください。

11.1.4.1. authconfig の使用へのヒント

authconfig を実行する時点で覚えておくことがいくつかあります:
  • すべてのコマンドで --update--test のオプションを使用します。これらのオプションのいずれかがコマンドを正しく実行するために必要になります。--update を使用すると設定の変更を書き込みます。--test は標準出力への変更を表示しますが、設定への変更を適用しません。
  • それぞれの「enable」 オプションには対応する「disable」 オプションがあります。

11.1.4.2. LDAP ユーザーストアの設定

LDAP 識別子ストアを使用するには、--enableldap を使用します。LDAP を認証ソースとして使用するには、--enableldapauth を使用して、それから LDAP サーバー名、ユーザー接尾辞用のベース DN、及び (オプションとして) TLS を使用するかどうか、などの必須となる接続情報を使用します。認証設定 UI 経由では利用できないユーザーエントリ用の RFC 2307bis スキーマに対して、authconfig コマンドはそれを有効/無効にするオプションも持っています。
確実に完全な形の LDAP URL を使用して下さい。プロトコル (ldap または ldaps) とポート番号を含みます。--enableldaptls オプションと一緒にセキュア LDAP URL (ldaps) を使用しないで下さい。
authconfig --enableldap --enableldapauth --ldapserver=ldap://ldap.example.com:389,ldap://ldap2.example.com:389 --ldapbasedn="ou=people,dc=example,dc=com" --enableldaptls --ldaploadcacert=https://ca.server.example.com/caCert.crt --update
LDAP のパスワード認証用に--ldapauth を使う代わりに、LDAP ユーザーストアで Kerberos を使用することができます。これらのオプションは、「Kerberos 認証の設定」 で説明してあります。

11.1.4.3. NIS ユーザーストアの設定

NIS 識別子ストアを使用するには、--enablenis を使います。Kerberos 認証 (「Kerberos 認証の設定」) を使用するように Kerberos パラメータが明示的にセットされていない限りは、これが自動的に NIS 認証を使用します。唯一のパラメータは NIS サーバーと NIS ドメインを識別することになります。これらが使用されない場合は、authconfig サービスが NIS サーバーを求めてネットワークをスキャンします。
authconfig --enablenis --nisdomain=EXAMPLE --nisserver=nis.example.com --update

11.1.4.4. Winbind ユーザーストアの設定

Windows のドメインは数種の異なるセキュリティモデルを持っており、ドメインで使用されるセキュリティモデルがローカルシステムの認証設定を決定します。
ユーザーとサーバーのセキュリティモデルには、Winbind 設定はドメイン (またはワークグループ) の名前とドメインコントローラホスト名のみを必要とします。
authconfig --enablewinbind --enablewinbindauth --smbsecurity=user|server  --enablewinbindoffline --smbservers=ad.example.com --smbworkgroup=EXAMPLE --update

注記

ユーザー名の形式は、EXAMPLE\jsmith のように ドメイン\ユーザー とする必要があります。
あるユーザーが Windows ドメイン内に存在することを検証する際は、常に Windows 2000 スタイルの形式を使い、バックスラッシュ文字 (\) をエスケープします。例えば、
[root@server ~]# getent passwd domain\\user DOMAIN\user:*:16777216:16777216:Name Surname:/home/DOMAIN/user:/bin/bash
ads と domain ドメインのセキュリティモデルには、Winbind 設定はテンプレートシェルとレルム (ads のみ) 用に追加の設定を可能にします。例えば:
authconfig --enablewinbind --enablewinbindauth --smbsecurity ads  --enablewinbindoffline --smbservers=ad.example.com --smbworkgroup=EXAMPLE --smbrealm EXAMPLE.COM --winbindtemplateshell=/bin/sh --update
名前形式、ドメイン名をユーザー名と一緒に要求するかどうか、及び UID の範囲など、Windows ベースの認証の設定と Windows ユーザーアカウントの情報のために他のオプションが数多く存在します。これらのオプションは authconfig ヘルプ内に一覧表示してあります。

11.1.4.5. Kerberos 認証の設定

LDAP と NIS は両方ともそれらのネイティブな認証メカニズムの場所で Kerberos 認証の使用を許可します。Kerberos 認証の使用には最低でも、レルム、KDC、及び管理用サーバーの指定を必要とします。クライアント名を解決して追加の管理用サーバーを見つける目的で DNS を使用するオプションもあります。
authconfig NIS or LDAP options --enablekrb5 --krb5realm EXAMPLE --krb5kdc kdc.example.com:88,server.example.com:88 --krb5adminserver server.example.com:749 --enablekrb5kdcdns --enablekrb5realmdns --update

11.1.4.6. ローカル認証セッティングの設定

認証設定ツールは、ホームディレクトリの作成やパスワードアルゴリズムのセッティングや認証などのセキュリティに関連したいくつかのユーザーセッティングも制御できます。これらのセッティングは、識別子/ユーザーストアのセッティングとは独立して実行されます。
例えば、ユーザーホームディレクトリを作成するには:
authconfig --enablemkhomedir --update
ユーザーパスワードを暗号化するために使用されているハッシュアルゴリズムをセット、または変更するには:
authconfig --passalgo=sha512 --update

11.1.4.7. 指紋認証の設定

指紋読み取りのサポートを有効にするオプションが1つあります。このオプションは単独でも使用できますが、LDAP ユーザーストアのような他の authconfig セッティングと一緒でも使用できます。
[root@server ~]# authconfig --enablefingerprint --update

11.1.4.8. スマートカード認証の設定

システムでスマートカードを使用する際に必要なのは --enablesmartcard オプションのセットのみです。
[root@server ~]# authconfig --enablesmartcard --update
スマートカードには、デフォルトのスマートカードモジュールの変更、スマートカードが取り出された時のシステムの動作のセッティング、ログイン用にスマートカードの要求など、他の設定オプションがあります。
例えば以下のコマンドは、スマートカードが取り出された場合、システムに対してユーザーをすぐに締め出すように指示します (セッティングが 1 の場合は、スマートカードが取り出されても、これを無視します)。
[root@server ~]# authconfig --enablesmartcard --smartcardaction=0 --update
スマートカード認証が正常に設定され、テストが終わると、単純なパスワードベースの認証ではなく、スマートカード認証をユーザーに要求するようにシステムを設定することができます。
[root@server ~]# authconfig --enablerequiresmartcard --update

警告

スマートカードの使用でシステムへの認証が正しく終了するまで--enablerequiresmartcard オプションは使用しないで下さい。使用するとユーザーはシステムにログインできない可能性があります。

11.1.4.9. キックスタートと設定ファイルの管理

--update オプションは、設定に変更を受けたすべての設定ファイルを更新します。少しだけ異なる動作をする数種の代替オプションが存在します:
  • --kickstart は、更新した設定をキックスタートファイルに書き込みます。
  • --test は、変更後の設定全域を標準出力に表示しますが、設定ファイルはどれも編集しません。
更には、authconfig はバックアップと以前の設定の復元に使用できます。すべてのアーカイブは /var/lib/authconfig/ ディレクトリ内の特有のサブディレクトリに保存されます。例えば、--savebackup オプションはバックアップディレクトリを2011-07-01 などとして提供します:
[root@server ~]# authconfig --savebackup=2011-07-01
これが、/var/lib/authconfig/backup-2011-07-01 ディレクトリ以下の認証設定ファイルのすべてをバックアップします。
保存したバックアップはどれも --restorebackup オプションで手動保存した設定の名前を入力して、設定の復元に使用できます。
[root@server ~]# authconfig --restorebackup=2011-07-01
また、authconfig は、変更を (--update オプションで) 適用する前に、自動的に設定のバックアップを作成します。設定は、--restorelastbackup オプションを使用することで、正確なバックアップをしていせずに、最新の自動バックアップから復元できます。

11.1.5. カスタムホームディレクトリの使用

LDAP ユーザーのディレクトリが /home 以外の場所にあり、かつユーザーの初回ログイン時にシステムがホームディレクトリを作成するように設定されている場合は、これらのディレクトリは間違ったパーミッションで作成されてしまいます。
  1. /home ディレクトリからの正しい SELinux コンテキストとパーミッションを、ローカルシステムで作成されたホームディレクトリに適用します。例えば:
    [root@server ~]# semanage fcontext -a -e /home /home/locale
  2. oddjob-mkhomedir パッケージをシステムにインストールします。
    このパッケージは、pam_oddjob_mkhomedir.so ライブラリを提供します。認証設定ツールは、このライブラリを使用してホームディレクトリを作成します。デフォルトの pam_mkhomedir.so ライブラリとは異なり、pam_oddjob_mkhomedir.so ライブラリは SELinux ラベルを作成できます。
    認証設定ツールは、pam_oddjob_mkhomedir.so ライブラリが利用可能な場合には、自動的に使用します。利用可能でない場合には、デフォルトの pam_mkhomedir.so ライブラリを使用します。
  3. oddjobd サービスが稼働していることを確認して下さい。
  4. 「代替認証機能の設定」 に示してあるように、認証設定ツールを再実行して、ホームディレクトリを有効にします。
ホームディレクトリの設定変更前にホームディレクトリが作成されている場合、正しいパーミッションとSELinux コンテキストが存在することになります。例えば:
[root@server ~]# semanage fcontext -a -e /home /home/locale
# restorecon -R -v /home/locale

11.2. SSSDでの認証情報の使用とキャッシング

System Security Services Daemon (SSSD) は、異なる ID および認証プロバイダーへのアクセスを提供します。

11.2.1. SSSD について

ほとんどのシステム認証はローカルで設定されているので、サービスはユーザーと認証情報の決定にローカルのユーザーストアをチェックする必要があります。SSSD は、ローカルサービスによる SSSD 内のローカルキャッシュのチェックを可能にしますが、このキャッシュは、LDAP ディレクトリーや ID 管理ドメイン、アクティブディレクトリー、さらには Kerberos レルムなど、様々な リモートの ID プロバイダーから取得されたものである可能性があります。
SSSD はこれらのユーザーや認証情報もキャッシュするので、ローカルシステム または ID プロバイダーがオフラインになっても、サービスはユーザーの認証情報を利用して確認できます。
SSSD は、ローカルのクライアントと設定済みのデータストアとの橋渡し役です。この関係は、管理者に多くの利益をもたらします。
  • 識別/認証サーバー上の負荷の低減化。 すべての個別クライアントサービスが認証サービスに直接連絡するのではなく、すべてのローカルクライアントは SSSD に連絡して、SSSD が識別サーバーに接続するか、またはそのキャッシュをチェックします。
  • オフライン認証の許可。 オプションとして、SSSD はリモートサービスから取り込むユーザー識別子と認証情報のキャッシュを維持することができます。これにより、ユーザーは識別サーバーがオフラインであったり、ローカルマシンがオフラインであってもリソースを正しく認証することができます。
  • 単独のユーザーアカウントの使用。 リモートユーザーは多くの場合、2つ (またはそれ以上) のユーザーアカウントを持っています。1つが自身のローカルマシン用で、もう1つが組織のシステム用などです。仮想プライベートネットワーク (VPN) に接続するためにそれぞれにアカウントが必要になります。しかし、SSSD がキャッシングとオフライン認証をサポートするため、リモートユーザーは、ローカルマシンに認証させることだけで、SSSD がそのネットワーク認証情報を維持するのでネットワークリソースに接続できます。
その他のリソース

本章では、SSSD のサービスおよびドメインの基本的な設定を説明していますが、包括的なリソースではありません。SSSD の各機能エリアにはそれぞれ利用可能な他の設定オプションがあります。特定の機能エリアの man ページをチェックして、完全なオプション一覧を取得してください。

一般的な man ページの一覧は 表11.1「SSSD Man ページのサンプル」 にあります。SSSD man ページの全一覧は、sssd(8) man ページの "See Also" を参照してください。

表11.1 SSSD Man ページのサンプル

機能エリア Man ページ
全般設定 sssd.conf(8)
sudo サービス sssd-sudo
LDAP ドメイン sssd-ldap
アクティブディレクトリードメイン
sssd-ad
sssd-ldap
ID 管理 (IdM または IPA) ドメイン
sssd-ipa
sssd-ldap
ドメインの Kerberos 認証 sssd-krb5
オープン SSH キー
sss_ssh_authorizedkeys
sss_ssh_knownhostsproxy
キャッシュメンテナンス
sss_cache (cleanup)
sss_useradd, sss_usermod, sss_userdel, sss_seed (ユーザーキャッシュエントリー管理)

11.2.2. sssd.conf ファイルの設定

SSSD のサービスとドメインは .conf ファイル内で設定されています。デフォルトでは /etc/sssd/sssd.conf ですが、SSSD はインストール後に設定されないため、このファイルは手動で作成、設定する必要があります。

11.2.2.1. sssd.conf ファイルの作成

SSSD 設定ファイルには、3 つのパートがあります。
  • [sssd]、これは全般的な SSSD プロセスとオペレーションの設定のためです。基本的に、設定済みサービスとドメイン、それぞれの設定パラメーターを一覧表示します。
  • [service_name]、これは 「SSSD およびシステムサービス」 にあるように、対応しているシステムサービスの設定オプション用です。
  • [domain_type/DOMAIN_NAME]、これは設定済み ID プロバイダーの設定オプション用です。

    重要

    サービスはオプションですが、SSSD サービスの開始前に少なくとも 1 つの ID プロバイダードメインを設定する必要があります。

例11.1 単純な sssd.conf ファイル

[sssd]
domains = LOCAL
services = nss
config_file_version = 2

[nss]
filter_groups = root
filter_users = root

[domain/LOCAL]
id_provider = local
auth_provider = local
access_provider = permit
[sssd] セクションには、以下の重要な 3 つのパラメーターがあります。
  • domains は、sssd.conf で設定された全ドメインを一覧表示します。これは、SSSD が ID プロバイダーとして使用するものです。domains キーにドメインがない場合、設定セクションがあったとしても、SSSD は使用しません。
  • services は、sssd.conf で設定され、SSSD を使用する全システムサービスを一覧表示します。SSSD が開始されると、対応する SSSD サービスが設定済みの各システムサービス用に開始されます。services キーにサービスがない場合、設定セクションがあったとしても、SSSD は使用しません。
  • config_file_version は、ファイル形式の期待値を設定する設定ファイルのバージョンを設定します。ここではバージョン 2 で、最近の SSSD 全バージョン用になっています。

注記

sssd.conf ファイルでサービスやドメインが設定されても、それらが [sssd] セクションの services もしくは domains パラメーターで表示されていなければ、SSSD はそのサービスやドメインと対話しません。
他の設定パラメーターは、sssd.conf man ページに一覧表示されています。
サービスおよびドメインパラメーターは、本章の各設定セクションとそれらの man ページで説明されています。

11.2.2.2. カスタム設定ファイルの使用

デフォルトでは、sssd プロセスは設定ファイルが /etc/sssd/sssd.conf であることを前提としています。
代わりのファイルは、-c オプションの sssd コマンドを使って SSSD に渡すことができます。
[root@server ~]# sssd -c /etc/sssd/customfile.conf --daemon

11.2.3. SSSD の起動と停止

重要

初めて SSSD を開始する前に、ドメインを少なくとも1つ設定します。「SSSD および ID プロバイダー (ドメイン)」 をご覧下さい。
service コマンドまたは /etc/init.d/sssd スクリプトのいずれかで SSSD を開始できます。例えば:
[root@server ~]# service sssd start
デフォルトでは、SSSD は自動開始に設定されていません。この動作は、2 つの方法で変更できます。
  • authconfig コマンドによる SSSD の有効化
    [root@server ~]# authconfig --enablesssd --enablesssdauth --update
  • chkconfig コマンドを使用して、SSSD プロセスをスタートリストに追加する
    [root@server ~]# chkconfig sssd on

11.2.4. SSSD およびシステムサービス

SSSD とその関連サービスは sssd.conf ファイル内で設定されています。[sssd] セクションはアクティブなサービスも一覧表示し、それらは sssdservices 指示文の中で開始する時に、開始するものです。
SSSD は、いくつかのシステムサービスに認証情報キャッシュを提供できます。
  • sssd_nss モジュールからのネームサービス要求に応答する Name Service Switch (NSS) プロバイダーサービス。これは、SSSD 設定の [nss] セクション内で設定されます。
    「サービスの設定: NSS」 で説明されています。
  • sssd_pam モジュールを介して PAM 会話を管理する PAM プロバイダーサービス。これは設定の [pam] セクション内で設定されます。
    これは、「サービスの設定: PAM」 で説明されています。
  • SSSD が known_hosts ファイルや他のキー関連の設定を管理する方法を定義する SSH プロバイダーサービス。OpenSSH による SSSD の使用については、「サービスの設定: OpenSSH およびキャッシュされたキー」 で説明されています。
  • 設定済みマウントの場所を取得するために LDAP サーバーに接続する autofs プロバイダーサービス。これは、設定ファイル内の [domain/NAME] セクションで、LDAP ID プロバイダーの一部として設定されます。
    これは、「サービスの設定: autofs」 で説明されています。
  • 設定済み sudo ポリシーを取得するために LDAP サーバーに接続するプロバイダーサービス。これは、設定ファイル内の [domain/NAME] セクションで、LDAP ID プロバイダーの一部として設定されます。
    これは、「サービスの設定: sudo」 で説明されています。
  • SSSD が Kerberos と動作してアクティブディレクトリーのユーザーおよびグループを管理する方法を定義する PAC レスポンダーサービス。これは 「ドメインの作成: Active Directory」 で説明されているように、特にドメインのアクティブディレクトリー ID プロバイダー管理の一部です。

11.2.5. サービスの設定: NSS

SSSD は、NSS モジュールの1つである sssd_nss を提供します。これがSSSD を使用してユーザー情報を取り込むようにシステムに指示します。NSS 設定は SSSD モジュールへの参照を含んでいる必要があり、そして SSSD 設定は SSSD が NSS に対応する方法をセットします。

11.2.5.1. NSS サービスマップおよび SSSD について

Name Service Switch (NSS) は、多くの設定および名前解決サービスをルックアップするサービスの中央設定を提供します。NSSは、設定ソースのシステム ID およびサービスのマッピング方法の一つを提供します。
SSSDは、数種類の NSS マップのプロバイダーサービスとして、NSS と機能します。
  • パスワード (passwd)
  • ユーザーグループ (shadow)
  • グループ (groups)
  • ネットグループ (netgroups)
  • サービス (services)

11.2.5.2. SSSD を使用する NSS サービスの設定

NSS は、サービスマップの一部またはすべてにおいて複数の ID および設定プロバイダーを使用できます。デフォルトでは、サービス用のシステムファイルを使用します。SSSD を含めるには、希望するサービスの種類に nss_sss モジュールを含める必要があります。
  1. 認証設定ツールを使って SSSD を有効にします。これで nsswitch.conf ファイルは自動的に SSSD をプロバイダーとして使用するように設定されます。
    [root@server ~]# authconfig --enablesssd --update
    これでパスワード、シャドウ、ネットグループサービスマップが SSSD モジュールを使用するように自動的に設定されます。
    passwd:     files sss
    shadow:     files sss
    group:      files sss
    
    netgroup:   files sss
  2. SSSD で authconfig が有効化されていると、サービスマップはデフォルトでは有効化されません。このマップを含めるには、nsswitch.conf ファイルを開いて services マップに sss モジュールを追加します。
    [root@server ~]# vim /etc/nsswitch.conf
    
    ...
    services: file sss
    ...

11.2.5.3. NSS と機能する SSSD の設定

NSS リクエストに応えるために SSSD が使用するオプションおよび設定は、SSSD 設定ファイルの [nss] サービスセクションで設定されます。
  1. sssd.conf ファイルを開きます。
    [root@server ~]# vim /etc/sssd/sssd.conf
  2. NSS が、SSSD と一緒に機能するサービスの1つとして一覧表示されていることを確認します。
    [sssd]
    config_file_version = 2
    reconnection_retries = 3
    sbus_timeout = 30
    services = nss, pam
  3. [nss] セクションで NSS パラメータのいずれかを変更します。これらは 表11.2「SSSD [nss] 設定のパラメータ」 に一覧表示されています。
    [nss]
    filter_groups = root
    filter_users = root
    reconnection_retries = 3
    entry_cache_timeout = 300
    entry_cache_nowait_percentage = 75
  4. SSSD を再開始します。
    [root@server ~]# service sssd restart

表11.2 SSSD [nss] 設定のパラメータ

パラメーター 値の形式 詳細
enum_cache_timeout 整数 sssd_nss がすべてのユーザーに関する情報 (列挙) の要求をキャッシュすべき時間の長さを秒で指定します。
entry_cache_nowait_percentage 整数 キャッシュをリフレッシュするまでの sssd_nss がキャッシュ化したエントリを返す時間の長さを指定します。これをゼロ (0) にセットすると、エントリキャッシュのリフレッシュを無効にします。
次回の更新までの時間が次回の待機間隔の一定のパーセンテージである時、要求される場合は、これが背景で自動的にエントリを更新するようにエントリキャッシュを設定します。例えば、待機間隔が 300秒であり、キャッシュのパーセンテージが 75であるならば、エントリキャッシュは、この待機間隔の 75%となる 225秒で要求が来る時にリフレッシュを開始します。
このオプションの有効な値は、0-99 で、entry_cache_timeout 値を土台にしたパーセンテージをセットします。デフォルト値は、50 %です。
entry_negative_timeout 整数 sssd_nssネガティブ キャッシュヒットをキャッシュすべき時間の長さを秒で指定します。ネガティブキャッシュヒットとは、存在しないエントリも含む無効なデータベースエントリ用のクエリです。
filter_users, filter_groups 文字列 特定のユーザーを NSS データベースからのフェッチ対象から除外するように SSSD に伝えます。これは、特に root のようなシステムアカウントに有用です。
filter_users_in_groups ブール値 グループルックアップを実行している時に、filter_users 一覧に表示されているユーザーがグループメンバーシップに表れるかどうかをセットします。FALSE にセットすると、グループルックアップは、そのグループのメンバーであるすべてのユーザーを返します。指定されていない場合は、値はデフォルトの true となり、グループメンバー一覧をにフィルターをかけます。
debug_level 0 - 9 の整数 デバッグログレベルを設定します。

11.2.6. サービスの設定: PAM

警告

PAM 設定ファイルに誤りがあると、ユーザーはシステムから完全にロックアウトされてしまいます。変更を行う前に、設定ファイルは必ずバックアップし、変更を元に戻すことができるようにセッションはオープンのままにします。
SSSD は PAM モジュールの1つである sssd_pam を提供します。これはSSSD を使用してユーザー情報を取り込むようにシステムに指示します。PAM 設定は SSSD モジュールへの参照を含んでいる必要があり、そして SSSD 設定は SSSD が PAM に対応する方法をセットします。
PAM サービスを設定するには:
  1. authconfig を使用してシステム認証のために SSSD を有効にします。
    # authconfig --update --enablesssd --enablesssdauth
    これが自動的に PAM 設定を更新して、すべての SSSD モジュールを参照します:
    #%PAM-1.0
    # This file is auto-generated.
    # User changes will be destroyed the next time authconfig is run.
    auth        required      pam_env.so
    auth        sufficient    pam_unix.so nullok try_first_pass
    auth        requisite     pam_succeed_if.so uid >= 500 quiet
    auth sufficient pam_sss.so use_first_pass
    auth        required      pam_deny.so
    
    account     required      pam_unix.so 
    account     sufficient    pam_localuser.so
    account     sufficient    pam_succeed_if.so uid < 500 quiet
    account [default=bad success=ok user_unknown=ignore] pam_sss.so
    account     required      pam_permit.so
    
    password    requisite     pam_cracklib.so try_first_pass retry=3
    password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
    password sufficient pam_sss.so use_authtok
    password    required      pam_deny.so
    
    session     optional      pam_keyinit.so revoke
    session     required      pam_limits.so
    session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
    session sufficient pam_sss.so
    session     required      pam_unix.so
    
    これらのモジュールは必要に応じて include ステートメントにセットできます。
  2. sssd.conf ファイルを開きます。
    # vim /etc/sssd/sssd.conf
  3. PAM が、SSSD と一緒に機能するサービスの1つとして一覧表示されていることを確認します。
    [sssd]
    config_file_version = 2
    reconnection_retries = 3
    sbus_timeout = 30
    services = nss, pam
  4. [pam] セクションで、PAM パラメータのいずれかを変更します。それらは、表11.3「SSSD [pam] 設定パラメータ」 内に一覧表示されています。
    [pam]
    reconnection_retries = 3
    offline_credentials_expiration = 2
    offline_failed_login_attempts = 3
    offline_failed_login_delay = 5
  5. SSSD を再開始します。
    [root@server ~]# service sssd restart

表11.3 SSSD [pam] 設定パラメータ

パラメーター 値の形式 詳細
offline_credentials_expiration 整数 認証プロバイダーがオフラインの場合に、キャッシュ化したログインが許可される時間の長さを日数でセットします。この値は最後の正しいログインから計測されます。指定がない場合は、デフォルト値は ゼロ(0) (制限なし) となります。
offline_failed_login_attempts 整数 認証プロバイダーがオフラインの場合に、許可されるログイン試行の失敗回数をセットします。指定されていない場合には、デフォルト値はゼロ (0) (制限なし) となります。
offline_failed_login_delay 整数 ユーザーがログイン試行の失敗限度に到達した場合に、ログイン試行を阻止する長さをセットします。ゼロ (0) にセットされている場合は、ユーザーが試行の失敗限度に到達するとプロバイダーがオフラインの間は認証ができません。正しいオンラインの認証のみがオフライン認証を再有効化できます。指定されていない場合は、デフォルトは 5 (5) になります。

11.2.7. サービスの設定: autofs

11.2.7.1. 自動マウント、LDAP、SSSD について

自動マウントマップは一般的にフラットファイルで、マップとマウントディレクトリー、ファイルサーバーの関係を定義します。(自動マウントは、Storage Administration Guide で説明されています。)
例えば、nfs.example.com というファイルサーバーがあったとして、これがディレクトリー pub をホストし、自動マウントが /shares/ ディレクトリーにディレクトリーをマウントするように設定されているとします。すると、マウントする場所は /shares/pub になります。すべてのマウントは auto.master ファイルに一覧表示されており、これはマウントを設定する様々なマウントディレクトリーとファイルを特定します。さらに auto.shares ファイルは、/shares/ ディレクトリーにつながる各ファイルサーバーとマウントディレクトリーを特定します。この関係を図にすると以下のようになります。
        auto.master
   _________|__________
   |                 |
   |                 |
/shares/        auto.shares
                     |
		     |
		     |
            nfs.example.com:pub
すると、すべてのマウントポイントは、auto.master ファイルと auto.whatever ファイルという少なくとも 2 つのファイルで定義されることになり、これらのファイルは各ローカルの自動マウントプロセスで利用可能である必要があります。
大規模な環境で管理者がこれを管理する方法の一つは、中央 LDAP ディレクトリーに自動マウント設定を保存し、各ローカルシステムをその LDAP ディレクトリーに向けるように設定することです。これにより、アップデートは単一の場所でのみ必要となり、新しいマップはローカルシステムが自動的に認識することになります。
自動マウント - LDAP 設定では、自動マウントファイルは LDAP エントリーとして保存され、その後に必須の自動マウントファイルに変換されます。それで各要素は、LDAP 属性に変換されます。
LDAP エントリーは以下のようになります。
# container entry
dn: cn=automount,dc=example,dc=com
objectClass: nsContainer
objectClass: top
cn: automount

# master map entry
dn: automountMapName=auto.master,cn=automount,dc=example,dc=com
objectClass: automountMap
objectClass: top
automountMapName: auto.master

# shares map entry
dn: automountMapName=auto.shares,cn=automount,dc=example,dc=com
objectClass: automountMap
objectClass: top
automountMapName: auto.shares

# shares mount point
dn: automountKey=/shares,automountMapName=auto.master,cn=automount,dc=example,dc=com
objectClass: automount
objectClass: top
automountKey: /shares
automountInformation: auto.shares

# pub mount point
dn: automountKey=pub,automountMapName=auto.shares,cn=automount,dc=example,dc=com
objectClass: automount
objectClass: top
automountKey: pub
automountInformation: filer.example.com:/pub
description: pub
スキーマ要素は、以下の図ようにマッチします (RFC 2307 スキーマ) 。
	              auto.master
                      objectclass: automountMap
                      filename attribute: automountMapName
   _______________________|_________________________
   |                                               |
   |                                               |
/shares/                                       auto.shares
objectclass: automount                         objectclass: automountMap
mount point name attribute: automountKey       filename attribute: automountMapName
map name attribute: automountInformation           |
		                                   |
                                                   |
                                          nfs.example.com:pub
                                          objectclass: automount
                                          mount point name attribute: automountKey
                                          fileserver attribute: automountInformation
autofs は、これらのスキーマ要素を使用して自動マウント設定を取得します。/etc/sysconfig/autofs ファイルは、自動マウントエントリーに使用される LDAP サーバー、ディレクトリーの位置、スキーマ要素を特定します。
LDAP_URI=ldap://ldap.example.com
SEARCH_BASE="cn=automount,dc=example,dc=com"
MAP_OBJECT_CLASS="automountMap"
ENTRY_OBJECT_CLASS="automount"
MAP_ATTRIBUTE="automountMapName"
ENTRY_ATTRIBUTE="automountKey"
VALUE_ATTRIBUTE="automountInformation"
自動マウント設定を LDAP ディレクトリーではなく、SSSD に向けることができます。すると SSSD は自動マウントが必要とする全情報を保存し、ユーザーがディレクトリーをマウントしようとすると、この情報は SSSD にキャッシュされます。これにより、フェイルオーバーやサービスディレクトリー、タイムアウトなどでの設定が有利になるほか、LDAP サーバーへの接続回数が減ることでパフォーマンスが改善されます。最も重要なのは、SSSD を使用することでマウント情報がすべてキャッシュされるので、LDAP サーバーがオフラインになっても クライアントはディレクトリーを正常にマウントできます。

11.2.7.2. SSSD での autofs サービスの設定

  1. autofs パッケージと libsss_autofs パッケージがインストールされていることを確認してください。
  2. sssd.conf ファイルを開きます。
    [root@server ~]# vim /etc/sssd/sssd.conf
  3. autofs サービスを SSSD が管理する一覧に追加します。
    [sssd]
    services = nss,pam,autofs
    ....
  4. 新たな [autofs] サービス設定セクションを作成します。このセクションは空白のままでかまいません。唯一設定可能なオプションは、ネガティブキャッシュヒットのタイムアウトです。
    ただし、このセクションは、SSSD が autofs サービスを認識し、デフォルト設定を提供するために必要となります。
    [autofs]
    
    
    
  5. 自動マウント情報は、SSSD 設定の設定済み LDAP ドメインから読み取られるので、LDAP ドメインが利用可能である必要があります。追加設定がない場合、自動マウント情報には RFC 2307 スキーマと LDAP 検索ベース (ldap_search_base) がデフォルト設定となります。これはカスタマイズが可能です。
    • ディレクトリーのタイプ、autofs_provider; id_provider の値がデフォルトです。値が なし の場合は、ドメインの autofs を明確に無効とします。
    • 検索ベース、ldap_autofs_search_base
    • マップエントリーの認識に使用するオブジェクトクラス、ldap_autofs_map_object_class
    • マップ名の認識に使用する属性、ldap_autofs_map_name
    • マウントポイントエントリーの認識に使用するオブジェクトクラス、ldap_autofs_entry_object_class
    • マウントポイント名の認識に使用する属性、ldap_autofs_entry_key
    • マウントポイントの新たな設定情報に使用する属性、ldap_autofs_entry_value
    例:
    [domain/LDAP]
    ...
    autofs_provider=ldap
    ldap_autofs_search_base="cn=automount,dc=example,dc=com"
    ldap_autofs_map_object_class="automountMap"
    ldap_autofs_entry_object_class="automount"
    ldap_autofs_map_name="automountMapName"
    ldap_autofs_entry_key="automountKey"
    ldap_autofs_entry_value="automountInformation"
  6. sssd.conf ファイルを保存し、閉じます。
  7. nsswitch.conf ファイルを編集し、場所を ldap から sss に変更することで autofs を設定して、SSSDの自動マウントマップ情報を探します。
    [root@server ~]# vim /etc/nsswitch.conf
    
    automount: files sss
  8. SSSD を再開始します。
    [root@server ~]# service sssd restart

11.2.8. サービスの設定: sudo

11.2.8.1. sudo、LDAP、SSSD について

sudo ルールは sudoers ファイルで定義されており、これは一貫性の維持のために各マシンに個別に配布される必要があります。
大規模な環境で管理者がこれを管理する方法の一つは、中央 LDAP ディレクトリーに sudo 設定を保存し、各ローカルシステムをその LDAP ディレクトリーに向けるように設定することです。これにより、アップデートは単一の場所でのみ必要となり、新しいルールはローカルシステムが自動的に認識することになります。
sudo-LDAP 設定では、各 sudo ルールは、LDAP 属性で定義されている sudo ルールとともに LDAP エントリーとして保存されます。
sudoers ルールは以下のようになります。
Defaults    env_keep+=SSH_AUTH_SOCK
...
%wheel        ALL=(ALL)       ALL
LDAP エントリーは以下のようになります。
# sudo defaults
dn: cn=defaults,ou=SUDOers,dc=example,dc=com
objectClass: top
objectClass: sudoRole
cn: defaults
description: Default sudoOptions go here
sudoOption: env_keep+=SSH_AUTH_SOCK

# sudo rule
dn: cn=%wheel,ou=SUDOers,dc=example,dc=com
objectClass: top
objectClass: sudoRole
cn: %wheel
sudoUser: %wheel
sudoHost: ALL
sudoCommand: ALL

注記

SSSD は、sudoHost 属性の値により、ローカルシステムに適用される sudo ルールのみをキャッシュします。つまり、sudoHost の値は ALL に設定され、ホスト名かシステムネットグループ、システムホスト名か完全修飾ドメイン名または IP アドレスに合致する正規表現を使用します。
sudo サービスは、LDAP サーバーに向けて、それらの LDAP エントリーからルール設定を引き出すように設定が可能です。sudo 設定を LDAP ディレクトリーではなく、SSSDに向けることができます。すると SSSD は sudo が必要とする全情報を保存し、ユーザーが sudo 関連の操作を行おうとすると、最新の sudo 設定が LDAP ディレクトリーから SSSD 経由で引き出されます。しかし、SSSD は sudo ルールをすべてキャッシュするので、LDAP サーバーがオフラインになっても、offline ユーザーは中央化された LDAP 設定を使用してタスクを実行することができます。

11.2.8.2. SSSD を使った sudo の設定

SSSD sudo 設定オプションはすべて、sssd-ldap(5) man ページに一覧表示されています。
sudo サービスは、以下の手順で設定します。
  1. sssd.conf ファイルを開きます。
    [root@server ~]# vim /etc/sssd/sssd.conf
  2. sudo サービスを SSSD が管理する一覧に追加します。
    [sssd]
    services = nss,pam,sudo
    ....
  3. 新たな [sudo] サービス設定セクションを作成します。このセクションは空白のままでかまいません。唯一設定可能なオプションは、sudo not before/after period の評価です。
    ただし、このセクションは、SSSD が sudo サービスを認識し、デフォルト設定を提供するために必要となります。
    [sudo]
    
    
    
  4. sudo 情報は、SSSD 設定の設定済み LDAP ドメインから読み取られるので、LDAP ドメインが利用可能である必要があります。LDAP プロバイダーには、以下のパラメーターが必要です。
    • ディレクトリーのタイプ、sudo_provider; これは常に ldap です。
    • 検索ベース、ldap_sudo_search_base
    • LDAP サーバーの URI、ldap_uri
    例:
    [domain/LDAP]
    id_provider = ldap
    
    sudo_provider = ldap
    ldap_uri = ldap://example.com
    ldap_sudo_search_base = ou=sudoers,dc=example,dc=com
    ID 管理 (IdM または IPA) プロバイダーは、サーバー接続時に Kerberos 認証を行うために追加のパラメーターが必要になります。
    [domain/IDM]
    id_provider = ipa
    ipa_domain = example.com
    ipa_server = ipa.example.com
    ldap_tls_cacert = /etc/ipa/ca.crt
    
    sudo_provider = ldap
    ldap_uri = ldap://ipa.example.com
    ldap_sudo_search_base = ou=sudoers,dc=example,dc=com
    ldap_sasl_mech = GSSAPI
    ldap_sasl_authid = host/hostname.example.com
    ldap_sasl_realm = EXAMPLE.COM
    krb5_server = ipa.example.com

    注記

    ID 管理プロバイダーの sudo_provider タイプは ldap のままです。
  5. sudo ルールキャッシュをリフレッシュする間隔を設定します。
    特定のシステムユーザー向け キャッシュは、そのユーザーがタスクを実行すると毎回必ずチェックされ、アップデートされます。しかし、SSSD はローカルシステムに関連するルールをすべてキャッシュします。この完全なキャッシュは、以下の 2 つの方法でアップデートされます。
    • 増分、つまり最後の完全アップデートからルールになされた変更のみ (ldap_sudo_smart_refresh_interval、秒数); デフォルト値は 15 分間。
    • 完全、つまりキャッシュ全体をダンプし、LDAP サーバー上の最新ルールすべてをプルします (ldap_sudo_full_refresh_interval、秒数); デフォルト値は 6 時間。
    これら 2 つの間隔は、以下のように別個に設定されます。
    [domain/LDAP]
    ...
    ldap_sudo_full_refresh_interval=86400
    ldap_sudo_smart_refresh_interval=3600

    注記

    SSSD は、ローカルシステムに適用される sudo ルールのみをキャッシュします。つまり、sudoHost の値は ALL に設定され、ホスト名かシステムネットグループ、システムホスト名か完全修飾ドメイン名または IP アドレスに合致する正規表現を使用します。
  6. オプションでは、任意の値を設定して、sudo ルールに使われるスキーマを変更します。
    スキーマ要素は、ldap_sudorule_* 属性で設定されています。デフォルトでは、すべてのスキーマ要素が sudoers.ldap で定義されたスキーマを使用します。これらのデフォルトは、ほとんどすべての導入で使用されます。
  7. sssd.conf ファイルを保存し、閉じます。
  8. nsswitch.conf ファイルを編集し、sss の場所を加えることで sudo が SSSD のルール設定を探すように設定します。
    [root@server ~]# vim /etc/nsswitch.conf
    
    sudoers: files sss
  9. SSSD を再開始します。
    [root@server ~]# service sssd restart

11.2.9. サービスの設定: OpenSSH およびキャッシュされたキー

OpenSSH は、2 つのシステム間に安全で暗号化された接続を作成します。一方のマシンが他方のマシンを認証してアクセスを許可します。認証は、マシン自体のサーバー接続に対するものである場合と、該当マシン上のユーザーに対する場合があります。OpenSSH の詳細は、12章OpenSSH で説明されています。
この認証は、認証を行なっているユーザーもしくはマシンを特定する 公開キーと秘密キーのペア を通して実行されます。マシンにアクセスしようとしているリモートのマシンもしくはユーザーは、キーのペアを提示します。するとローカルマシンは、そのリモートのエンティティを信頼するかどうかを決定します。信頼できる場合は、そのリモートマシン用の公開キーは known_hosts ファイルに、リモートユーザー用の公開キーは authorized_keys ファイルに保存されます。このリモートマシンもしくはユーザーが再度認証を試みる際は常に、ローカルシステムは単にこの known_hostsauthorized_keys ファイルを最初にチェックして、このリモートのエンティティが認証され、信頼できるものかを確かめた後にアクセスを許可します。
最初の問題は、これらの ID 認証を信頼性を持って行うことです。
known_hosts ファイルは、マシン名、IP アドレス、公開キーの 3 つで構成されています。
server.example.com,255.255.255.255 ssh-rsa AbcdEfg1234ZYX098776/AbcdEfg1234ZYX098776/AbcdEfg1234ZYX098776=
known_hosts ファイルは、様々な理由ですぐに古いものとなってしまいます。IP アドレス経由の DHCP サイクルを使用しているシステムでは、新たなキーが定期的に再発行されたり、仮想マシンやサービスがオンラインで持ち込まれたり削除されたりする場合があります。このようなことがあると、ホスト名、IP アドレス、キーの構成が変わってしまいます。
管理者は、現行の known_hosts ファイルをクリーンに維持して、セキュリティーを保つ必要があります。 (さもなくば、システムユーザーは、単に提示されたマシンやキーをどれでもうけいれるという習慣に陥ってしまい、キーベースのセキュリティーの利点がなくなってしまいます。)
さらには、マシンとユーザーにはスケーラブルな方法でキーを配布するという問題があります。マシンは暗号化セッション確立の一部としてキーを送信できますが、ユーザーは事前にキーを提供する必要があります。単にキーを伝達し、一貫してアップデートするのは、困難な管理タスクです。
最後に、SSH キーおよびマシン情報はローカルでのみ維持されます。known_hostsファイルが一様にアップデートされていないと、ネットワーク上のマシンやユーザーが一部のシステムには認識、信頼され、別のシステムには認識、信頼されないということが起こり得ます。
SSSD のゴールは、認証情報キャッシュとして機能することです。これには、マシンおよびユーザーの SSH 公開キーの認証情報キャッシュとして機能することが含まれます。OpenSSH は、キャッシュされたキーの確認に SSSD を参照するように設定されています。SSSD は、 Red Hat Linux の Identity Management (IPA) ドメインを ID として使用し、Identity Management は実際に公開キーおよびホスト情報を保存します。

注記

SSSD を OpenSSH のキーキャッシュとして使用できるのは、Identity Management ドメインに登録もしくは参加している Linux マシンのみです。他の Unix マシンや Windows マシンは、known_hosts ファイルで通常の認証メカニズムを使用する必要があります。

11.2.9.1. ホストキーに SSSD を使用するための OpenSSH 設定

OpenSSH は、ユーザー特定の設定ファイル (~/.ssh/config) か、システムワイドの設定ファイル (/etc/ssh/ssh_config) で設定されます。ユーザーファイルはシステム設定に優先し、最初に獲得されたパラメーター値が使用されます。このファイルの形式および習慣については、12章OpenSSH で説明されています。
SSSD にはホストキーを管理するためのツール、sss_ssh_knownhostsproxy、があり、以下の 3 つの操作を実行します。
  1. 登録済み Linux システムから公開ホストキーを取得します。
  2. カスタムホストファイル .ssh/sss_known_hosts にホストキーを保存します。
  3. ソケット (デフォルト) もしくは安全な接続でホストマシンとの接続を確立します。
このツールは以下の形式になります。
sss_ssh_knownhostsproxy [-d sssd_domain] [-p ssh_port] HOST [PROXY_COMMAND]

表11.4 sss_ssh_knownhostsproxy オプション

短い引数 長い引数 詳細
HOSTNAME チェックおよび接続するホストのホスト名を与えます。OpenSSH 設定ファイルでは、%h のトークンである場合があります。
PROXY_COMMAND SSH クライアント接続に使用するプロキシコマンドを渡します。これは、ssh -o ProxyCommand= の実行に類似したものです。このオプションは、コマンドラインもしくは別のスクリプトで sss_ssh_knownhostsproxy を実行する際に使われますが、OpenSSH 設定ファイルでは不要です。
-d sssd_domain --domain sssd_domain 指定ドメインのエンティティ内の公開キーのみを検索します。これがない場合は、SSSD はすべての設定済みドメインでキーを検索します。
-p port --port port SSH クライアントへの接続にこのポートを使用します。デフォルトでは、port 22 です。
この SSSD ツールを使用するには、ssh_config もしくは ~/.ssh/config ファイルに 2 つのパラメーターを追加または編集します。
  • SSH クライアントに接続するようにコマンドに指定します (ProxyCommand)。これは、sss_ssh_knownhostsproxy に希望する引数とホスト名を加えたものです。
  • デフォルトの known_hosts ファイルではなく、SSSD ホストファイルの場所を指定します。 (UserKnownHostsFile)。SSSD ホストファイルは、.ssh/sss_known_hosts です。
例えば、以下では IPA1 SSSD ドメイン内の公開キーを探して、提供されるポートとホストで接続します。
ProxyCommand /usr/bin/sss_ssh_knownhostsproxy -p %p -d IPA1 %h
UserKnownHostsFile2 .ssh/sss_known_hosts

11.2.9.2. ユーザーキーに SSSD を使用するための OpenSSH 設定

OpenSSH では、ユーザーキーはローカルシステムの authorized_keys ファイルに保存されています。ホストに関してはOpenSSH が参照するために、SSSD がユーザー公開キーの別個のキャッシュを維持し、自動的にアップデートします。これは、.ssh/sss_authorized_keys ファイルに保存されます。
OpenSSH は、ユーザー特定の設定ファイル (~/.ssh/config) か、システムワイドの設定ファイル (/etc/ssh/ssh_config) で設定されます。ユーザーファイルはシステム設定に優先し、最初に獲得されたパラメーター値が使用されます。このファイルの形式および習慣については、12章OpenSSH で説明されています。
SSSD にはユーザーキーを管理するためのツール、sss_ssh_authorizedkeys、があり、以下の 2 つの操作を実行します。
  1. Identity Management (IPA) ドメインのユーザーエンティティからユーザーの公開キーを取得します。
  2. 標準的な認証キー形式でユーザーキーをカスタムファイル .ssh/sss_authorized_keys に保存します。
このツールは以下の形式になります。
sss_ssh_authorizedkeys [-d sssd_domain] USER

表11.5 sss_ssh_authorizedkeys オプション

短い引数 長い引数 詳細
USER 公開キーを取得するユーザー名またはアカウント名を与えます。OpenSSH 設定ファイルでは、%u のトークンで示すこともできます。
-d sssd_domain --domain sssd_domain 指定ドメインのエンティティ内の公開キーのみを検索します。これがない場合は、SSSD はすべての設定済みドメインでキーを検索します。
ユーザーキーに SSSD を使用するための OpenSSH の設定方法は、SSH 導入により 2 つのオプションがあります。
  • 最も一般的なのは、SSH が認証キーコマンドをサポートする場合です。このケースで必要なのは、ユーザーキーの取得で実行するコマンドの指定のみです。以下に例を挙げます。
    AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys
  • SSH も公開キーエージェントのサポートが可能です。この場合、ユーザー名などの必要な引数のトークンを含むエージェントキーを取得するために使用するコマンドを与えます。
    PubKeyAgent /usr/bin/sss_ssh_authorizedkeys %u

11.2.10. SSSD および ID プロバイダー (ドメイン)

SSSD は異なる ID プロバイダーと関連する設定エントリーである ドメイン を認識します。ドメインは ID プロバイダーと認証メソッドの組み合わせです。SSSD は LDAP ID プロバイダー (OpenLDAP, Red Hat Directory Server, 及び Microsoft Active Directory を含む) と共に機能して、ネイティブな LDAP 認証、または Kerberos 認証を使用できます。
ドメインの設定は、 ID プロバイダー認証プロバイダー、特定の設定を定義してそれらのプロバイダー内の情報にアクセスします。ID および認証プロバイダーにはいくつかのタイプがあります。
  • LDAP、一般的な LDAP サーバー用
  • Active Directory (LDAP プロバイダータイプの拡張)
  • Identity Management (LDAP プロバイダータイプの拡張)
  • Local、ローカルの SSSD データベース用
  • Proxy
  • Kerberos (認証プロバイダーのみ)
ID および認証プロバイダーは、ドメインエントリー内で異なる組み合わせで設定が可能です。可能な組み合わせは 表11.6「識別ストアと認証タイプの組み合わせ」 に一覧表示してあります。

表11.6 識別ストアと認証タイプの組み合わせ

識別プロバイダー 認証プロバイダー
Identity Management (LDAP) Identity Management (LDAP)
Active Directory (LDAP) Active Directory (LDAP)
Active Directory (LDAP) Kerberos
LDAP LDAP
LDAP Kerberos
proxy LDAP
proxy Kerberos
proxy proxy
ドメインエントリ自身と共に、SSSD がクエリをするドメインの一覧にドメイン名が追加されなければなりません。例えば:
[sssd]
domains = LOCAL,Name
...

[domain/Name]
id_provider = type
auth_provider = type
provider_specific = value
global = value
global 属性は、キャッシュやタイムアウトセッティングなどのいかなるタイプのドメインにも利用可能です。各識別と認証のプロバイダーはそれ自身の必須及びオプションの設定パラメータのセットを所有しています。

表11.7 一般的な [domain] 設定パラメータ

パラメーター 値の形式 詳細
id_provider 文字列 このドメイン用に使用するデータバックエンドを指定します。サポートされている識別バックエンドには以下があります:
  • ldap
  • ipa (Red Hat Enterprise Linux 内のIdentity Management)
  • ad (Microsoft Active Directory)
  • nss_nis など、レガシー NSS プロバイダー用の proxy。proxy を使用すると ID プロバイダーは、正しく開始するためにロードするレガシーNSS ライブラリも必要になります。proxy_lib_name オプションでセットされます。
  • local, SSSD 内部ローカルプロバイダー 
auth_provider 文字列 ドメイン用に使用される認証プロバイダーをセットします。このオプションのデフォルト値は id_provider の値となります。サポートされている認証プロバイダーは ldap、ipa、ad、krb5 (Kerberos)、proxy、および noneです。
min_id,max_id 整数 オプションです。ドメイン用に UID と GID の範囲を指定します。ドメインがこの範囲外のエントリーを含んでいる場合、それらは無視されます。min_id のデフォルト値は 1 であり、max_id のデフォルト値は 0 でこれは無制限となります。

重要

デフォルトの min_id 値はすべての識別プロバイダーに対して同じです。LDAP ディレクトリが1からスタートする UID 番号を使用している場合は、ローカルの /etc/passwd ファイル内のユーザーと競合原因となる可能性があります。この競合を回避するには、min_id1000 かまたはできるだけ高い値にセットします。
enumerate ブール値 オプションです。ドメインのユーザーとグループを一覧表示するかどうかを指定します。Enumeration (列挙) とはリモートソース上のユーザーとグループの全セットがローカルマシン上にキャッシュされていると言う意味です。Enumeration が無効になっている時は、ユーザーとグループは要求がある時にのみキャッシュされます。

警告

Enumeration が有効になっている時は、クライアントを再初期化するとリモートソースからユーザーとグループの使用可能な全セットが完全にリフレッシュされます。同じように、SSSD が新しいサーバーに接続されている時は、リモートソースからユーザーとグループの使用可能な全セットが取り込まれてローカルマシンにキャッシュされます。リモートソースに接続されている多数のクライアントを持つドメイン内では、このリフレッシュのプロセスは、クライアントからの頻繁なクエリによりネットワークパフォーマンスを害することになります。ユーザーとグループの使用可能なセットが充分に大きい場合は、クライアントパフォーマンスを悪化することもあります。
このパラメータのデフォルト値は false であり、これは enumeration を無効にします。
cache_credentials ブール値 オプションです。ユーザーの認証情報をローカルの SSSD ドメインデータベースキャッシュに保管するかどうかを指定します。このパラメータのデフォルト値は false です。LOCAL ドメイン以外のドメイン用にこの値を true にセットすると、オフライン認証が有効になります。
entry_cache_timeout 整数 オプションです。SSSD がポジティブなキャッシュヒットをキャッシュすべき時間の長さを秒で指定します。ポジティブキャッシュヒットとは、成功したクエリのことです。
use_fully_qualified_names ブール値 オプションです。このドメインへの要求が完全修飾型ドメイン名を必要とするかどうかを指定します。true にセットしてあると、このドメインへのすべての要求は完全修飾型ドメイン名を使用しなければなりません。また、要求からの出力は完全修飾名を表示すると言う意味です。要求を完全修飾のユーザー名のみに限定すると SSSD は、競合するユーザー名を持つユーザーのドメイン間で区別ができるようになります。
use_fully_qualified_namesfalse にセットされている場合、要求で引き続き完全修飾名を使用できますが、出力では簡易バージョンが表示されます。
SSSD は、レルム名ではなくドメイン名を基にした名前だけを構文解析できます。しかし、ドメインとレルムの両方で同一名が使用できます。

11.2.11. ドメインの作成: LDAP

LDAP ドメインとは、単に SSSD が LDAP ディレクトリを識別プロバイダーとして使用すると言う意味です(そして、オプションとして認証プロバイダーとしても)。SSSD は数種の主要なディレクトリサービスをサポートします:
  • Red Hat ディレクトリサーバー
  • OpenLDAP
  • Identity Management (IdM または IPA)
  • Microsoft Active Directory 2008 R2

注記

一般的な LDAP ID プロバイダーで利用可能なパラメーターはすべて、このサブセットである Identity Management および Active Directory ID プロバイダーでも利用可能です。

11.2.11.1. LDAP ドメイン設定用のパラメータ

LDAP ディレクトリーは、ID プロバイダーとしても認証プロバイダーとしても機能することができます。この設定には LDAP サーバー内のユーザーディレクトリーを特定し、これに接続するための十分な情報が必要ですが、これらの接続パラメーターの定義方法は柔軟なものです。
LDAP サーバーへの接続に使用するためのユーザーアカウントの指定や、パスワード操作に他の LDAP サーバーの使用などよりきめ細かい制御を提供するために他のオプションも利用可能です。最も一般的なオプションは 表11.8「LDAP ドメイン設定のパラメータ」 に一覧表示してあります。

注記

他にも多くのオプションが LDAP ドメイン設定用の man ページ内に一覧表示されています。sssd-ldap(5)

表11.8 LDAP ドメイン設定のパラメータ

パラメーター 詳細
ldap_uri SSSD の接続先である LDAP サーバーの URI をカンマ区切りの一覧で提供します。この一覧は設定により順序を指定できるため、一覧内の最初のサーバーが最初に試行されるようにできます。サーバーを追加して一覧表示しておくとフェイルオーバー保護を提供できます。これがない場合は、DNS SRV レコードから検出可能です。
ldap_search_base LDAP ユーザー操作の実行のために使用するベース DN を提供します。
ldap_tls_reqcert TLS セッションで SSL サーバー証明書のチェックの仕方を指定します。4つのオプションがあります:
  • never は証明書への要求を無効にします。
  • allow は証明書を要求しますが、証明書が無くても、または不正な証明書が与えられても通常に進行します。
  • try は証明書を要求して証明書が与えられなくても通常に進行します。不正な証明書が与えられた場合は、セッションは終了します。
  • demandhard は同じオプションです。有効な証明書を要求して、それがないとセッションは終了します。
デフォルトは hard です。
ldap_tls_cacert SSSD が認識するすべての CA 用の CA 証明書を含んでいるファイルに完全なパスとファイル名を渡します。SSSD はこれらの CA によって発行された証明書はどれも受理します。
これが明示的に与えられていない場合は、OpenLDAP システムのデフォルトを使用します。
ldap_referrals SSSD が LDAP 参照を使用するかどうかをセットします。このことは1つの LDAP データベースから別の LDAP データベースにクエリを転送することを意味します。SSSD はデータベースレベルの参照とサブツリーの参照をサポートします。同一の LDAP サーバー内の参照には、SSSD はクエリされているエントリの DN を調節します。異なる LDAP サーバーに行く参照には、SSSD は DN 上で完全なマッチを行います。この値を true に設定すると、参照を有効にします。これが、デフォルトです。
参照は、追跡を試みる時間のために、全体的なパフォーマンスにマイナスの影響を与える場合があります。参照のチェックを無効にすると、パフォーマンスは大幅に改善します。
ldap_schema ユーザーエントリーの検索の際に使用するスキーマのバージョンを設定します。可能なのは、rfc2307rfc2307bisadipa です。デフォルトは、rfc2307 です。
RFC 2307 では、グループオブジェクトは複数値の属性である memberuid を使用しますが、これはそのグループに所属するユーザーの名前を一覧表示します。RFC 2307bis では、グループオブジェクトは member 属性を使用しますが、これはユーザーまたはグループエントリの完全識別名 (DN) を含んでいます。RFC 2307bis は、member 属性を使用している入れ子グループ (nested groups) を可能にします。これらの異なるスキーマがグループメンバーシップについて異なる定義を使用するため、SSSD において間違えた LDAP スキーマの使用は、適切な権限がある場合でもネットワークリソースの表示と管理の両方に影響を及ぼします。
例えば、RFC 2307bis の使用では、すべてのグループは入れ子グループ、あるいはプライマリ/セカンダリグループの使用時に返されます。
$ id
uid=500(myserver) gid=500(myserver) groups=500(myserver),510(myothergroup)
SSSD が RFC 2307 スキーマを使用している場合は、プライマリグループのみが返されます。
この設定は SSSD がグループメンバーを決定する方法にのみ影響します。実際のユーザーデータは変更しません。
ldap_search_timeout LDAP 検索がキャンセルになるまでに実行してキャッシュ化した結果が返される時間の長さを秒でセットします。enumerate 値が「false 」の時はデフォルトでは 5 であり、enumerate が「true」の時はデフォルトは 30 になります。
LDAP 検索がタイムアウトになると、SSSD は自動的にオフラインモードに切り替わります。
ldap_network_timeout 接続試行が失敗した後に SSSD が LDAP サーバーへ投票を試みる時間の長さを秒でセットします。デフォルトは6秒です。
ldap_opt_timeout サーバーから反応が受信されない場合に同期 LDAP 操作が中止されるまでの時間の長さを秒でセットします。このオプションは、SASL バインドの場合に KDC との通信時のタイムアウトも制御します。デフォルトは5秒です。

11.2.11.2. LDAP ドメインの例

LDAP 設定は、ユーザー特定の環境と SSSD の動作に応じてかなり柔軟になります。以下は LDAP ドメインの一般的な例の一部ですが、SSSD 設定はこれらの例に限られるものではありません。

注記

ドメインエントリの作成と並行して、SSSD 用のドメインの一覧へ新規ドメインを追加してsssd.conf ファイル内でクエリをします。例えば:
domains = LOCAL,LDAP1,AD,PROXYNIS

例11.2 基本的 LDAP ドメインの設定

LDAP ドメインは3つの項目を要求します:
  • LDAP サーバー
  • 検索ベース
  • 安全な接続を確立する手段
最後の項目は LDAP 環境に左右されます。SSSD は機密情報を取り扱うため安全な接続を必要とします。この接続は専属の TLS/SSL 接続であるか、あるいは Start TLS を使用することができます。
専属の TLS/SSL 接続の使用は単に LDAPS 接続を使用してサーバーに接続します。そのため、ldap_uri オプションの一部として設定されています:
# An LDAP domain
[domain/LDAP]
enumerate = false
cache_credentials = true

id_provider = ldap
auth_provider = ldap

ldap_uri = ldaps://ldap.example.com:636
ldap_search_base = dc=example,dc=com
Start TLS の使用には、安全でないポート上で動的に安全な接続を確立するために証明書情報を入力する手段が必要になります。これは、ldap_id_use_start_tls オプションで Start TLS を使用することと、ldap_tls_cacert で SSL サーバー証明書を発行した CA 証明書を識別することで達成できます。
# An LDAP domain
[domain/LDAP]
enumerate = false
cache_credentials = true

id_provider = ldap
auth_provider = ldap

ldap_uri = ldap://ldap.example.com
ldap_search_base = dc=example,dc=com
ldap_id_use_start_tls = true
ldap_tls_reqcert = demand
ldap_tls_cacert = /etc/pki/tls/certs/ca-bundle.crt

11.2.12. ドメインの作成: Identity Management (IdM)

Identity Management (IdM または IPA) ID プロバイダーは、一般的な LDAP プロバイダーの拡張機能です。LDAP プロバイダーで利用可能な設定オプションはすべて、IdM プロバイダーでも利用可能で、SSSD を IdM ドメインのクライアントとして機能させ、 IdM の機能を拡張することのできるいくつかのパラメーターも利用可能です。
Identity Management は、ID や認証、アクセス制御ルール、パスワードなど、ドメインの *_provider パラメーターすべてのプロバイダーとして機能することができます。さらに Identity Management のドメイン内には、SELinux ポリシーや自動マウント情報、ホストベースのアクセス制御を管理する設定オプションがあります。IdM ドメイン内のこれら全機能は SSSD 関連付けが可能で、これらのセキュリティー関連のポリシーがシステムユーザー用に適用され、キャッシュされることを可能にしています。

例11.3 基本的な IdM プロバイダー

IdM プロバイダーは LDAP プロバイダーのように、ID や認証、アクセス制御などの異なるサービスに対応するよう設定することが可能です。
IdM サーバーには、非常に便利な (ただし必須ではない) 2 つの追加設定があります。
  • デフォルトの RFC 2307 スキーマではなく、特定の IdM スキーマの利用。
  • クライアントが最初に IdM ドメインに接続する際に、このクライアントの IP アドレスで Identity Management ドメインの DNS サーバーをアップデートするように SSSD を設定。
[sssd]
domains = local,example.com
...

[domain/example.com]
id_provider = ipa
ipa_server = ipaserver.example.com
ipa_hostname = ipa1.example.com
auth_provider = ipa
access_provider = ipa
chpass_provider = ipa

# set which schema to use
ldap_schema = ipa

# automatically update IdM DNS records
ipa_dyndns_update = true
Identity Management は、Linux ドメインにわたってユーザーのセキュリティーポリシーと ID を定義、維持します。これには、アクセス制御ポリシー、SELinux ポリシー、その他のルールが含まれます。IdM ドメインのこれらの要素のいくつかは、SSSD を IdM クライアントとして使用して SSSD と直接対話します。これらの機能は、sssd.conf の IdM ドメインエントリーで管理できます。
ほとんどの設定パラメーターは、スキーマ要素の設定 (IdM は固定スキーマを使用するのでほとんどの導入では関係なし) に関連し、変更の必要はありません。実際のところ、IdM の機能でクライアント側の設定を必要とするものは一つもありません。しかし、動作を微調整すると役立つ場合もあります。

例11.4 SELinux での IdM プロバイダー

IdM は、システムユーザーの SELinux ユーザーポリシーを定義できるので、SSSD 向けの SELinux プロバイダーとして機能することができます。これは、selinux_provider パラメーターで設定されます。プロバイダーは id_provider 値をデフォルトとしているので、明示的に SELinux ルールを サポートする と設定する必要はありません。しかし、SSSD 内 のIdM プロバイダーに対する SELinux サポートを明示的に 無効にする と便利な場合があります。
selinux_provider = ipa

例11.5 ホストベースのアクセス制御での IdM プロバイダー

IdM は、ユーザーが接続に使用しているホストやユーザーが接続しようとしているホストがどれかに基づいてサービスやシステム全体へのアクセスを制限することで、ホストベースのアクセス制御を定義できます。このルールは、アクセスプロバイダーの動作の一部として、SSSD による評価と強制が可能です。
ホストベースのアクセス制御に効果を持たせるには、少なくとも Identity Management サーバーがアクセスプロバイダーである必要があります。
SSSD がホストベースのアクセス制御ルールを評価する方法を設定するには、2 つのオプションがあります。
  • SSSD は、ユーザーが IdM リソースへの接続に使用しているマシン (ソースホスト) を評価できます。これはデフォルトでは無効なので、ルールの対象ホスト部分のみが評価されます。
  • SSSD は、指定された間隔でキャッシュにあるホストベースのアクセス制御ルールを更新できます。
例:
access_provider = ipa	
ipa_hbac_refresh = 120

# check for source machine rules; disabled by default
ipa_hbac_support_srchost = true

例11.6 Cross-Realm Kerberos Trusts での Identity Management

Identity Management (IdM または IPA) は、Active Directory DNS ドメインと Kerberos レルムの信頼できる関係で設定が可能です。これにより、Active Directory ユーザーは、Linux システム上のサービスとホストにアクセスできるようになります。
SSSD には、レルム間の信頼で使われる設定が 2 つあります。
  • Kerberos チケットに必要なデータを追加するサービス
  • サブドメインをサポートする設定
Kerberos チケットデータ
Microsoft は、privileged access certificates または MS-PAC と呼ばれる特別な認証構造を使用しています。PAC は、Windows ドメインの他の Windows クライアントやサーバーへのエンティティを特定する方法として、Kerberos チケットに埋め込まれています。
SSSDには、Kerberos チケットに新たなデータを生成する特別な PAC サービスがあります。Active Directory ドメインを使用している際には、Windows ユーザー用に PAC データを含める必要がある場合があります。その場合には、SSSD で pac サービスを有効にします。
[sssd]
services = nss, pam, pac
...
Windows サブドメイン
通常は、SSSD のドメインエントリーは単一 ID プロバイダーに直接対応します。しかし、IdM のレルム間の信頼があると、IdM ドメインは別のドメインを信頼でき、ドメインはお互いに透明性を持つことに成ります。SSSD はこの信頼できる関係に従うことが可能になり、IdM ドメインが設定されればいかなる Windows ドメインも SSSDのドメインセクションで設定することなく、SSSD が検索し、サポートすることになります。
これは、subdomains_provider パラメーターを IdM ドメインセクションに加えることで設定されます。これは実際には、オプションのパラメーターです。サブドメインが発見されれば、SSSD はデフォルトで ipa プロバイダータイプを使用します。しかしこのパラメーターは、値を none に設定することで、サブドメインフェッチを無効にする際にも使用できます。
[domain/IDM]
...	
subdomains_provider = ipa
get_domains_timeout = 300

11.2.13. ドメインの作成: Active Directory

Active Directory ID プロバイダーは、一般的な LDAP プロバイダーの拡張機能です。LDAP プロバイダーで利用可能な設定オプションはすべて、Active Directory プロバイダーでも利用可能で、ユーザーアカウントや Active Directory とシステムユーザー間の ID マッピングに関連するいくつかのパラメーターも利用可能です。

11.2.13.1. SSSD と Active Directory

標準的な LDAP サーバーと Active Directory サーバーには根本的な違いがいくつかあります。そのため、Active Directory プロバイダーの設定の際には、特別な設定を必要とする設定領域がいくつかあります。
  • Winows セキュリティー ID を使用している ID は、対応する Linux システムユーザー ID にマッピングする必要があります。
  • 検索は、範囲取得拡張の説明をする必要があります。
  • LDAP 紹介にパフォーマンスの問題がある可能性がある。
11.2.13.1.1. Active Directory セキュリティー ID と Linux ユーザー ID のマッピング
Windows と Linux がシステムユーザーに対応する方法と、Active Directory および標準 LDAPv3 ディレクトリーサービスで使用されるユーザースキーマには、内包的な構造の違いがあります。SSSD でシステムユーザーの管理に Active Directory ID プロバイダーを使用する際は、Active Directory スタイルのユーザーを新たな SSSD ユーザーに調和させる必要があります。これには以下の 2 つの方法があります。
  • Services for Unix を使用して Windows ユーザーおよびグループエントリー上に POSIX 属性を挿入し、これらの属性を PAM/NSS にプルする。
  • SSSD 上の ID マッピングを使用して、Active Directory 説明 ID (SID) と Linux 上の生成済み UID との間のマップを作成する。
ID マッピングは、新たなパッケージや Active Directory 上での設定を必要としないため、ほとんどの環境で最も簡単なオプションです。
11.2.13.1.1.1. ID マッピングのメカニズム
Linux/Unix システムはローカルのユーザー ID 番号都グループ ID 番号を使ってシステム上のユーザーを識別します。これらの UID:GID 番号は、501:501 といった単純な整数です。これらの番号は、大規模な Linux/Unix ドメインの一部のシステムでも、常にローカルで作成、管理されるので、単純なものになります。
Microsoft Windows と Active Directory は異なるユーザー ID 構造を使ってユーザーやグループ、マシンを識別します。各 ID は、セキュリティーバージョンや発行権限のタイプ、マシン、ID 自体を識別する異なるセグメントで構築されています。例えば、以下のようになります。
S-1-5-21-3623811015-3361044348-30300820-1013
3 つ目から 6 つ目のブロックは、マシン識別子です。
S-1-5-21-3623811015-3361044348-30300820-1013
最後のブロックは、特別エンティティを識別する 相対識別子 (RID) です。
S-1-5-21-3623811015-3361044348-30300820-1013
可能な ID 番号の範囲は、常に SSSD に割り当てられます。 (これはローカルの範囲なので、すべてのマシンで同じものになります。)
|_____________________________|
|                             |
minimum ID                    max ID
この範囲は (デフォルトで) 1 万セクションに分けられ、各セクションには 20 万 ID が割り当てられます。
| slice 1 | slice 2 |   ...   |
|_________|_________|_________|
|         |         |         |
minimum ID                    max ID
新たな Active Directory ドメインが検出されると、SID がハッシュ化されます。すると SSSD はこのハッシュのモジュールと利用可能なセクションの数で、Active Directory ドメインにどの ID セクションを割り当てるかを決めます。これは、ID セクション割り当て方法としては信頼性と一貫性のあるもので、ほとんどのクライアントマシン上で同一の Active Directory ドメインに同一の ID 範囲が割り当てられます。
| Active  | Active  |         |
|Directory|Directory|         |
|domain 1 |domain 2 |   ...   |
|         |         |         |
| slice 1 | slice 2 |   ...   |
|_________|_________|_________|
|         |         |         |
minimum ID                    max ID

注記

ID セクションの割り当て方法には一貫性がありますが、ID マッピングは Active Directory ドメインがクライアントマシン上で発生する順序に基づいています。このため、すべての Linux クライアントマシン上で ID 範囲の割り当てに一貫性が保たれない場合もあります。一貫性が必要な場合は、ID マッピングを無効にし、明示的な POSIX 属性の使用を検討してください。
11.2.13.1.1.2. ID マッピングパラメーター
ID マッピングは 2 つのパラメーターで有効化されます。1 つ目でマッピングを有効にし、2 つ目で適切な Active Directory ユーザースキーマをロードします。
ldap_id_mapping = True
ldap_schema = ad

注記

ID マッピングが有効になると、uidNumber および gidNumber 属性は無視されます。これにより、手動で割り当てられた値はいかなるものでも止められます。何らかの 値が手動で割り当てられる必要がある場合は、すべての 値が手動で割り当てられ、ID マッピングを無効にする必要があります。
11.2.13.1.1.3. マッピングユーザー
Active Directory ユーザーが初めてローカルシステムサービスにログイン使用とする際には、そのユーザーのエントリーが SSSD キャッシュに作成されます。リモートユーザーはシステムユーザーのように設定されます。
  • ユーザーの SID およびそのドメインの ID 範囲に基づいてシステム UID が作成されます。
  • ユーザーに GID が作成されます。これは UID と同一のものです。
  • ユーザーにプライベートグループが作成されます。
  • sssd.conf ファイルのホームディレクトリー形式に基づいて、ホームディレクトリーが作成されます。
  • システムデフォルトまたは sssd.conf ファイル内の設定に基づいて、シェルが作成されます。
  • ユーザーが Active Director 内のいずれかのグループに所属する場合、SID を使って SSSD が Linux 上のこれらのグループにユーザーを追加します。
11.2.13.1.1.4. Active Directory Users and Range Retrieval Searches
Microsoft Active Directory には、MaxValRange の属性があり、複数の値の属性に戻す値の制限数を設定するものです。これは、範囲取得 検索の拡張機能です。基本的にこれは複数のミニ検索を実行し、すべての一致が返されるまでそれぞれの検索は特定の範囲内での結果のサブセットを返します。
例えば、member 属性を検索する際に、各エントリーに複数の値があり、その属性に複数のエントリーがあり場合があります。2000 件 (またはそれ以上) の一致結果があった場合、MaxValRange は一度に表示される数を制限します。これが、値の範囲です。そして、特定の属性には新たなフラグのセットが付けられて、その結果がセット内のどの範囲にあるかを示します。
attribute:range=low-high:value
例えば、検索結果を 100 件から 500 件にするには、
member;range=99-499: cn=John Smith...
これは Microsoft ドキュメンテーションの http://msdn.microsoft.com/en-us/library/cc223242.aspx で説明されています。
SSSD は、Active Directory プロバイダーを使った範囲取得を新たな設定なしにユーザーおよびグループ管理の一部としてサポートします。
しかし、ldap_user_search_base のような検索設定に利用可能な LDAP プロバイダー属性の中には、範囲取得との効率がよくないものもあります