導入ガイド
デプロイメント、設定、および管理
概要
パート I. システムの基本設定
第1章 キーボードの設定
1.1. キーボードレイアウトの変更
図1.1 キーボードのレイアウト設定

[D]
図1.2 レイアウトの選択

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

[D]
図1.4 レイアウトのテスト

[D]

[D]

[D]
1.2. キーボードレイアウト表示器の追加
図1.5 新規アプレットの追加

[D]
図1.6 キーボードインダク レーターの選択

[D]
図1.7 Keyboard Indicator アプレット

[D]
1.3. 一休みの設定
図1.8 一休みの設定

[D]
図1.9 休憩中

[D]
第2章 日付と時刻の設定
2.1. 日付/時刻のプロパティのツール
図2.1 認証クエリ

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

[D]
- 現在の日付を変更する。月と年の左右にある矢印を使って、それぞれ変更します。次に、カレンダーの中で日付を選択します。
- 現在の時刻を変更する。時、分、秒の横にある上下の矢印ボタンを使用するか、数字を直接変更します。
2.1.2. ネットワーク時刻プロトコルのプロパティ
図2.3 ネットワーク時刻プロトコルのプロパティ

[D]
2.1.3. タイムゾーンのプロパティ
図2.4 タイムゾーンのプロパティ

[D]
- インタラクティブマップを使用する。 マップの横にある “拡大”/“縮小” ボタンをクリックします。あるいは、マップ上でクリックして、選択した地域を拡大します。次に、希望するタイムゾーンに合う都市を選択します。赤い X が表示され、マップの下にある一覧内のタイムゾーンの選択肢が変更します。
- マップの下にある一覧を使用する。 選択しやすいように特定の大陸内で都市と国がグループ化されています。科学界のニーズに合うように、地理的ではないタイムゾーンも追加されている点に注意して下さい。
2.2. コマンドラインからの設定
~]$ su -
Password:
2.2.1. 日付と時刻の設定
- 現在の日付を変更する。ためには、シェルプロンプトで次の形式でコマンドを入力します。YYYY は 4 桁の年、MM は 2 桁の月、DD は 2 桁の日付に置き換えて下さい:
~]# date +%D -s YYYY-MM-DD
例えば 2010 年 6 月 2 日と設定するには、以下のように入力します:~]# date +%D -s 2010-06-02
- 現在の時刻を変更する。ためには、次のコマンドを使用します。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
例2.1 システムの現在日時の表示
~]$ date
Wed Jun 2 11:58:48 CEST 2010
2.2.2. ネットワーク時刻プロトコルの設定
- 最初に、選択した NTP サーバーがアクセス可能か確認します:
~]# ntpdate -q server_address
以下に例を示します。~]# ntpdate -q 0.rhel.pool.ntp.org
- satisfactory サーバーを見つけたら、ntpdate コマンドの後に 1 つ以上のサーバーアドレスを指定して実行します。
~]# ntpdate server_address...
たとえば、以下のようになります。~]# ntpdate 0.rhel.pool.ntp.org 1.rhel.pool.ntp.org
エラーメッセージが表示されない限り、システムの時刻は設定されているはずです。現在確認するには、「日付と時刻の設定」 に記載されているように、追加の引数を指定せずに date を入力します。 - ほとんどの場合、上記のステップで十分です。常に適切な時間を使用するためにシステムサービスが 1 つ以上必要な場合に限り、システムの起動時に ntpdate を実行できます。
~]# chkconfig ntpdate on
システムサービスとその設定の詳細については、12章サービスおよびデーモン を参照して下さい。注記システムの起動時にタイムサーバーとの同期に失敗し続ける場合(/var/log/boot.log
システムログに関連するエラーメッセージ)は、以下の行を/etc/sysconfig/network
に追加します。NETWORKWAIT=1
- vi や nano などのテキストエディターで NTP 設定ファイル
/etc/ntp.conf
を開くか、存在しない場合は新規のファイルを作成します。~]# nano /etc/ntp.conf
- 次に、パブリック NTP サーバーの一覧を追加/編集します。Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 を使用している場合、このファイルには以下の行がすでに含まれているはずですが、必要に応じてそれらを自由に変更または拡張してください。
server 0.rhel.pool.ntp.org iburst server 1.rhel.pool.ntp.org iburst server 2.rhel.pool.ntp.org iburst server 3.rhel.pool.ntp.org iburst
各行の最後にある iburst ディレクティブは、初期同期を迅速化します。Red Hat Enterprise Linux 6.5 では、デフォルトで追加されます。以前のマイナーリリースからアップグレードし、/etc/ntp.conf
ファイルを変更した場合には、Red Hat Enterprise Linux 6.5 へのアップグレードで新しいファイル/etc/ntp.conf.rpmnew
が作成され、既存の/etc/ntp.conf
ファイルは変更されません。 - サーバーの一覧での作業が完了したら、同じファイルで適切なパーミッションを設定し、ローカルホストのみに無制限アクセスを付与します:
restrict default kod nomodify notrap nopeer noquery restrict -6 default kod nomodify notrap nopeer noquery restrict 127.0.0.1 restrict -6 ::1
- すべての変更を保存してエディターを終了し、NTP デーモンを再起動します。
~]# service ntpd restart
ntpd
が起動時に起動されていることを確認します。~]# chkconfig ntpd on
第3章 ユーザーとグループの管理
3.1. ユーザーとグループの概要
cat /usr/share/doc/setup-2.8.14/uidgid
予約済みの ID は将来的に増大するため、予約されていない ID を 5,000 から削除することが推奨されます。新規ユーザーに割り当てる ID を 5,000 から始まるようにするには、/etc/login.defs
ファイルの UID_MIN
ディレクティブおよび GID_MIN
ディレクティブを変更します。
[file contents truncated] UID_MIN 5000 [file contents truncated] GID_MIN 5000 [file contents truncated]
root
でのみ変更でき、アクセスパーミッションは root
ユーザーとファイル所有者の両方が変更できます。
umask
と呼ばれ、すべてのユーザーの場合は /etc/bashrc
ファイル、または各ユーザーの ~/.bashrc
で個別に設定できます。~/.bashrc
の設定は、/etc/bashrc
の設定を上書きします。また、umask
コマンドは、シェルセッションの期間のデフォルトパーミッションを上書きします。
/etc/shadow
ファイルに保存されます。このファイルは root
ユーザーのみが読み取り可能です。このファイルには、特定のアカウントのパスワードの変更およびポリシーに関する情報も保存されます。新規作成されたアカウントのデフォルト値は、/etc/login.defs
ファイルおよび /etc/default/useradd
ファイルに保存されます。『Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 セキュリティーガイド』 では、ユーザーとグループのセキュリティー関連情報が説明されています。
3.2. ユーザーマネージャーアプリケーションを使用したユーザーの管理
User Manager アプリケーションを起動するには、以下を実行します。
- パネルから→ → の順にクリックします。
- または、シェルプロンプトで system-config-users を入力します。
root
で認証するよう求められます。
3.2.1. ユーザーの表示
図3.1 ユーザーの表示

[D]
3.2.2. 新規ユーザーの追加
- 適切なフィールドにユーザー名とフル名を入力します。
- Password フィールドおよび Confirm Password フィールドにユーザーのパスワードを入力します。パスワードは 6 文字以上でなくてはなりません。注記安全上の理由から、辞書用語に基づかない長いパスワードを選択し、文字、数字、および特殊文字の組み合わせを使用します。
- Login Shell ドロップダウンリストからユーザーのログインシェルを選択するか、デフォルト値の を受け入れます。
- / home/ ユーザー
名/
に新しいユーザーのホームディレクトリー を作成したくない場合は、ホームディレクトリーの作成 チェックボックスの選択を解除します。Home Directory テキストボックスに内容を編集して、このホームディレクトリーを変更することもできます。ホームディレクトリーが作成されると、デフォルトの設定ファイルが/etc/skel/
ディレクトリーからコピーされることに注意してください。 - 作成するユーザーと同じ名前の一意のグループが必要ない場合には、ユーザーのプライベート グループの作成 チェックボックスの選択を解除します。ユーザープライベートグループ(UPG)は、そのユーザーのみが属するユーザーアカウントに割り当てられたグループで、個別ユーザーのファイルパーミッションの管理に使用されます。
- Specify user ID manually を選択して、ユーザーのユーザー ID を指定します。このオプションが選択されていない場合は、次に 500 を超える利用可能なユーザー ID が新規ユーザーに割り当てられます。

[D]
3.2.3. ユーザープロパティーの変更
- ユーザー名をクリックして、ユーザーリストからユーザーを選択します。
- ツールバーからをクリックするか、ドロップダウンメニューから → を選択します。
図3.2 ユーザープロパティ
[D] - 設定に更新できるタブは 4 つあります。完了したら、ボタンをクリックして変更を保存します。
3.3. ユーザーマネージャーアプリケーションを使用したグループの管理
3.3.1. グループの表示
図3.3 グループの表示

[D]
3.3.2. 新規グループの追加
- User Manager ツールバーからを選択します。
図3.4 新規グループ
[D] - 新規グループの名前を入力します。
- 指定したグループ ID を手作業 でチェックして、新しいグループのグループ ID(GID)を指定 します。
- GID を選択します。Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux は、システムグループ用に 500 未満のグループ ID を確保することに注意してください。
3.3.3. グループプロパティーの変更
- 名前をクリックして、グループリストからグループを選択します。
- ツールバーからをクリックするか、ドロップダウンメニューから → を選択します。
図3.5 グループプロパティー
[D] - Group Users タブにはグループメンバーの一覧が表示されます。このタブを使用してグループに対してユーザーを追加または削除します。 をクリックして変更を保存します。
3.4. コマンドラインツールを使用したユーザーの管理
/etc/passwd
と、セキュアなユーザーアカウント情報を格納する /etc/shadow
が含まれます。
3.4.1. ユーザーの作成
/home/username/
)を作成し、デフォルトのシェルを /bin/bash に設定します。
- ユーザー 名を任意の名前で置き換える
root
として、シェルプロンプトで以下のコマンドを実行します。useradd username
- パスワードのロック解除を行い、アカウントのロックを解除します。プログラムが要求されたら、パスワードを 2 回入力します。
passwd
例3.1 デフォルト設定を使用したユーザーの作成
~]# useradd robert ~]# passwd robert Changing password for user robert New password: Re-type new password: passwd: all authentication tokens updated successfully.
robert
という名前のアカウントが作成されます。cat /etc/passwd を実行して /etc/passwd
ファイルの内容を表示する場合は、表示された行から新規ユーザーの詳細を確認できます。
robert:x:502:502::/home/robert:/bin/bash
robert
には 502 という UID が割り当てられました。これは、0 から 499 までのデフォルトの UID 値がシステムアカウント用に予約されるルールを反映しています。GID、User Private Group
のグループ ID は UID に等しくなります。ホームディレクトリーは /home/robert
に、ログインシェルを /bin/bash
に設定します。X の文字 は
、シャドウパスワードが使用され、ハッシュ化されたパスワードが /etc/shadow
に保存されることを示唆します。
useradd [option(s)] username
-c
オプションを使用して、作成時にユーザーのフルネームなどを指定できます。-c
の後に文字列を付けて、ユーザーにコメントを追加します。
useradd -c "string" username
例3.2 ユーザー作成時のユーザーのフルネームの指定
~]# useradd -c "Robert Smith" robert ~]# cat /etc/passwd robert:x:502:502:Robert Smith:/home/robert:/bin/bash
robert
でユーザーアカウントが作成されている。ログイン名およびフルネーム Robert Smith で作成されていること。
/home/ ユーザー名/
ディレクトリーを作成したくない場合は、その代わりに別のユーザー名を設定します。以下のコマンドを実行します。
useradd -d home_directory
例3.3 デフォルト以外のホームディレクトリーでのユーザーの追加
~]# useradd -d /home/dir_1 robert
robert
のホームディレクトリーはデフォルトの /home/robert
ではなく、/home/dir_1/ です
。
-M
オプションを指定して実行できます。ただし、このようなユーザーが起動したばかりのシステムにログインし、ホームディレクトリーが存在しない場合は、ログインディレクトリーは root ディレクトリーになります。このようなユーザーが su コマンドを使用してシステムにログインすると、ログインディレクトリーは以前のユーザーの現在のディレクトリーになります。
useradd -M username
/home
ディレクトリーにコピーする必要がある場合は、-m
オプションと -k
オプションの後にパスを指定して実行します。
例3.4 ホームディレクトリーへのコンテンツのコピー時のユーザーの作成
/dir_1
という名前のディレクトリーの内容を /home/jane
にコピーします。これは、新しいユーザー jane
のデフォルトのホームディレクトリーです。
~]# useradd -m -k /dir_1 jane
-e
オプションは、YYYY-MM-DD 形式で指定された expire_date とともに使用されます。
useradd -e YYYY-MM-DD username
例3.5 アカウントの有効期限の設定
~]# useradd -e 2015-11-05 emily
/bin/bash
ですが、-s
オプションで bash、ksh、csh、tsh とは異なるシェルに変更できます。
useradd -s login_shell username
例3.6 デフォルト以外のシェルでユーザーの追加
~]# useradd -s /bin/ksh robert
/bin/ksh
シェルを持つ robert
ユーザーを作成します。
-r
オプションは、一部の root 権限ではなく、管理者が使用するアカウントとなるシステムアカウントを作成します。このようなアカウントは、/etc/login.defs
で定義された UID_MIN の値よりも低い値を持ちます(通常は通常のユーザーの場合 500 以上)。
useradd -r username
3.4.2. 新規ユーザーのグループへの割り当て
プライベート
グループ(UPG、ユーザーのみが属するユーザーアカウントに割り当てられたグループ)を作成します。たとえば、アカウントの robert
が作成されると、robert
という名前の UPG が同時に作成されます。そのメンバーは、ユーザー robert
だけです。
を作成し
たくない場合は、useradd コマンドに以下のオプションを付けて実行します。
useradd -N username
-g
オプションおよび -G
オプションでユーザーのグループメンバーシップを指定できます。-g
オプションはプライマリーグループメンバーシップを指定しますが、-G
はユーザーも含まれる補助グループを参照します。指定するグループ名がシステムにすでに存在している必要があります。
例3.7 グループへのユーザーの追加
~]# useradd -g "friends" -G "family,schoolmates" emily
emily
コマンドは、ユーザーを作成しますが、's primary group は、-g
オプションで指定したように friends
に設定されます。
Emily は、
補助グループ ファミリー
と 授業におけるグループメンバーでもあります
。
-G
オプションを指定して usermod コマンドを使用し、コンマで区切られたグループの一覧(スペースなし)を使用します。
usermod -G group_1,group_2,group_3
3.4.3. ユーザーの認証の更新
/etc/shadow
ファイルを参照)。
/etc/passwd
ファイルを管理する標準ユーティリティーを使用します。passwd コマンドの構文は、以下のようになります。
passwd option(s) username
!
)のプレフィックスを付けて無効な文字列にレンダリングすることで、暗号化されたパスワードを無効な文字列にレンダリングすることで実行されます。後でアカウントのロックを解除する理由を見つけた場合は、passwd にロックのためのリバース操作があります。これらの 2 つの操作を実行できるのは root
のみです。
passwd -l username passwd -u username
例3.8 ユーザーパスワードのロック解除
~]# passwd -l robert Locking password for user robert. passwd: Success ~]# passwd -u robert passwd: Warning: unlocked password would be empty passwd: Unsafe operation (use -f to force)
-l
オプションが robert
のアカウントパスワードを正常にロックします。ただし、 passwd -u コマンドを実行すると、パスワードレスアカウントの作成を拒否するため、パスワードのロックを解除しません。
-e
オプションを指定して passwd を実行します。ユーザーは、次回のログイン時にパスワードの変更を強制します。
passwd -e username
-n
オプション)および最大( -x
オプション)の有効期間を設定できます。パスワードの有効期限についてユーザーに通知するには、-w
オプションを使用します。これらのオプションはすべて日数とともに指定する必要があり、root
でのみ実行できます。
例3.9 ユーザーパスワードのデータの調整
~]# passwd -n 10 -x 60 -w 3 jane
-S
オプションを使用して、特定のアカウントのパスワードステータスを把握するための短い情報を出力します。
~]# passwd -S jane jane LK 2014-07-22 10 60 3 -1 (Password locked.)
0
の場合は、パスワードの期限が切れるとすぐにアカウントが無効になり、値が -
1 の場合はこの機能が無効になります。つまり、ユーザーはパスワードの期限が切れたときにパスワードを変更する必要があります。-f
オプションは、アカウントが無効になるまで、パスワードの期限が切れてから日数を指定するために使用されます(ただし、システム管理者がブロック解除することもできます)。
useradd -f
number-of-days username
3.4.4. ユーザー設定の変更
usermod option(s) username
-l
オプションを新しいユーザー名(または login)で使用します。
例3.10 ユーザーのログインの変更
~]# usermod -l "emily-smith" emily
-l
オプションは、ユーザー名をログインから新しいログインに変更します( emily
-smith
)。それ以外は何も変更しません。特に、新しいユーザー名を反映するために手動で変更した場合を除き、ホームディレクトリー名(/home/emily
)は変わりません。
例3.11 ユーザーの UID およびホームディレクトリーの変更
~]# usermod -a -u 699 -d /home/dir_2 robert
-a -u
オプションおよび -d
オプションを指定すると、ユーザー robert
の設定が変更されます。これで、ID は 501 ではなく 699 で、ホームディレクトリーは /home/robert
ではなくなりましたが、/home/dir_2
はなくなりました。
例3.12 ユーザーの変更
~]# usermod -m -d /home/jane -L jane
-m
オプションおよび -d
オプションは、jane
のホームディレクトリーのコンテンツを /home/dir_3
ディレクトリーに移動します。-L
オプションは、パスワードをロックして jane
のアカウントへのアクセスをロックします。
3.4.5. ユーザーの削除
root
でコマンドラインで userdel
コマンドを使用します。
userdel username
-r
オプションを組み合わせると、ユーザーのホームディレクトリー内にあるファイルがホームディレクトリー自体と、ユーザーのメールスプールと共に削除されます。他のファイルシステムにあるファイルは、手動で検索して削除する必要があります。
userdel -r username
-r
オプションは比較的安全であるため、-f
と比較すると、ユーザーがログインしている場合でもユーザーアカウントを強制的に削除することが推奨されます。
3.4.6. 機密ユーザー情報の表示
lslogins [OPTIONS]
lslogins
(1)の man ページ、または lslogins --help コマンドの出力を参照してください。
例3.13 システムにあるすべてのアカウントに関する基本情報の表示
~]# lslogins
UID USER PWD-LOCK PWD-DENY LAST-LOGIN GECOS
0 root 0 0 root
1 bin 0 1 bin
2 daemon 0 1 daemon
3 adm 0 1 adm
4 lp 0 1 lp
5 sync 0 1 sync
6 shutdown 0 1 Jul21/16:20 shutdown
7 halt 0 1 halt
8 mail 0 1 mail
10 uucp 0 1 uucp
11 operator 0 1 operator
12 games 0 1 games
13 gopher 0 1 gopher
14 ftp 0 1 FTP User
29 rpcuser 0 1 RPC Service User
32 rpc 0 1 Rpcbind Daemon
38 ntp 0 1
42 gdm 0 1
48 apache 0 1 Apache
68 haldaemon 0 1 HAL daemon
69 vcsa 0 1 virtual console memory owner
72 tcpdump 0 1
74 sshd 0 1 Privilege-separated SSH
81 dbus 0 1 System message bus
89 postfix 0 1
99 nobody 0 1 Nobody
113 usbmuxd 0 1 usbmuxd user
170 avahi-autoipd 0 1 Avahi IPv4LL Stack
173 abrt 0 1
497 pulse 0 1 PulseAudio System Daemon
498 saslauth 0 1 Saslauthd user
499 rtkit 0 1 RealtimeKit
500 jsmith 0 0 10:56:12 John Smith
501 jdoe 0 0 12:13:53 John Doe
502 esmith 0 0 12:59:05 Emily Smith
503 jeyre 0 0 12:22:14 Jane Eyre
65534 nfsnobody 0 1 Anonymous NFS User
John Doe
のアカウントと、システム上のアクティビティーに関する詳細情報を表示します。
例3.14 1 つのアカウントに関する詳細情報の表示
~]# lslogins jdoe
Username: jdoe
UID: 501
Gecos field: John Doe
Home directory: /home/jdoe
Shell: /bin/bash
No login: no
Password is locked: no
Password no required: no
Login by password disabled: no
Primary group: jdoe
GID: 501
Supplementary groups: users
Supplementary group IDs: 100
Last login: 12:13:53
Last terminal: pts/3
Last hostname: 192.168.100.1
Hushed: no
Password expiration warn interval: 7
Password changed: Aug01/02:00
Maximal change time: 99999
Password expiration: Sep01/02:00
Selinux context: unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
--logins=LOGIN
オプションを使用すると、UID またはユーザー名の一覧として指定されたアカウントのグループに関する情報を表示できます。--output=COLUMNS
オプションの指定。COLUMNS は利用可能な出力パラメーターのリストであるため、lslogins コマンドの出力をカスタマイズできます。たとえば、以下のコマンドは、ユーザー root、jsmith、jdoe、および esmith のログインアクティビティーを表示します。
例3.15 ユーザーのグループに関する特定情報の表示
~]# lslogins --logins=0,500,jdoe,esmith \ > --output=UID,USER,LAST-LOGIN,LAST-TTY,FAILED-LOGIN,FAILED-TTY UID USER LAST-LOGIN LAST-TTY FAILED-LOGIN FAILED-TTY 0 root 500 jsmith 10:56:12 pts/2 501 jdoe 12:13:53 pts/3 502 esmith 15:46:16 pts/3 15:46:09 ssh:notty
--system-accs
オプションを使用します。ユーザーアカウントに対応するには、--user-accs
を使用します。たとえば、以下のコマンドは、すべてのユーザーアカウントの補助グループとパスワードの有効期限に関する情報を表示します。
例3.16 すべてのユーザーアカウントの補助グループとパスワードの有効期限に関する情報の表示
~]# lslogins --user-accs --supp-groups --acc-expiration
UID USER GID GROUP SUPP-GIDS SUPP-GROUPS PWD-WARN PWD-MIN PWD-MAX PWD-CHANGE
PWD-EXPIR
0 root 0 root 7 99999 Jul21/02:00
500 jsmith 500 jsmith 1000,100 staff,users 7 99999 Jul21/02:00
501 jdoe 501 jdoe 100 users 7 99999 Aug01/02:00
Sep01/02:00
502 esmith 502 esmith 100 users 7 99999 Aug01/02:00
503 jeyre 503 jeyre 1000,100 staff,users 7 99999 Jul28/02:00
Sep01/02:00
65534 nfsnobody 65534 nfsnobody Jul21/02:00
例3.17 見出しのない単一の情報の表示
~]# lslogins --logins=jsmith --output=LAST-LOGIN --time-format=iso | tail -1
2014-08-06T10:56:12+0200
3.5. コマンドラインツールを使用したグループの管理
/etc/group
と、セキュアなグループのアカウント情報を格納する /etc/gshadow
が含まれます。
3.5.1. グループの作成
root
で groupadd コマンドを実行します。
groupadd group_name
例3.18 デフォルト設定を使用したグループの作成
~]# groupadd friends
friends
という新しいグループを作成します。グループの詳細は、/etc/group
ファイルの新たに作成された行を参照してください。
classmates:x:30005:
friends
は一意の GID(グループ ID)が 30005 にアタッチされ、どのユーザーも接続されません。必要に応じて、gpasswd groupname を実行してグループのパスワードを設定できます。
groupadd option(s) groupname
-g
オプションを指定して groupadd コマンドを実行します。この値は固有で( -o
オプションを使用しない限り)一意でなければならず、値は負の値ではない必要があることに注意してください。
groupadd -g GID
例3.19 GID が指定されたグループの作成
schoolmates
という名前のグループを作成し、そのグループに 60002 の GID を設定します。
~]# groupadd -g 60002 schoolmates
-g
および GID がすでに存在する場合、groupadd は、既存の GID を持つ別のグループの作成を拒否します。回避策として、groupadd で -f
オプションを使用してグループが作成されますが、別の GID を使用します。
groupadd -f GID
-r
オプションを groupadd コマンドにアタッチして、システムグループを作成することもできます。システムグループは、実際には 999 の範囲内で 1 から 499 に割り当てられることを意味します。
groupadd -r group_name
3.5.2. グループへのユーザーのアタッチ
gpasswd -a username which_group_to_edit
gpasswd -d username which_group_to_edit
--members
オプションの後にユーザー名をコンマで区切って指定します。
gpasswd --members username_1,username_2 which_group_to_edit
3.5.3. グループ認証の更新
/etc/group
ファイルおよび /etc/gshadow
ファイルを管理します。このコマンドは、グループ管理者が実行した場合に限り機能することに注意してください。
root
ユーザーは、gpasswd -A users groupname を使用してグループ管理者を追加できます。ここで、ユーザー は、グループ管理者にしたい既存ユーザーのコンマ区切りの一覧です(コンマの間にスペースは一切ありません)。
gpasswd groupname
例3.20 グループパスワードの変更
~]# gpasswd crowd Changing password for group crowd New password: Re-enter new password:
crowd
のパスワードが変更されました。
-r
オプションを使用して、named グループからパスワードを削除することもできます。
gpasswd -r schoolmates
3.5.4. グループ設定の変更
groupmod option(s) groupname
groupmod -g GID_NEW which_group_to_edit
groupmod -n new_groupname groupname
例3.21 グループ名の変更
schoolmates
の名前を crowd
に変更します。
~]# groupmod -n crowd schoolmates
3.5.5. グループの削除
groupdel groupname
3.6. その他のリソース
3.6.1. インストールされているドキュメント
- 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) — システムのパスワードとアカウントの有効期限に関する情報を含むファイルです。ワードおよびアカウントの有効期限情報を含むファイル。
- login.defs(5): シャドウパスワードスイート設定を含むファイルです。
- useradd(8):
/etc/default/useradd
の場合は、man ページの「Changing the default values」セクションを参照してください。
第4章 権限の取得
root
としてアクセスすることは危険を伴う可能性があり、システムおよびデータの著しい破損につながる場合もあります。本章では、su および sudo プログラムを使用して管理者権限を取得する方法を説明します。これらのプログラムを使うと、特定のユーザーが高レベルの制御およびシステムセキュリティーを維持しつつ、通常は root ユーザーしかできないタスクを実行することができます。
4.1. su コマンド
~]# usermod -a -G wheel username
wheel
グループに追加するユーザー名に置き換えます。
- パネル上の system-config-users コマンドを入力します。メニューをクリックして から をクリックして User Manager を表示させます。または、シェルプロンプトで
- ユーザー タブをクリックして、ユーザーリストの中から必要なユーザーを選択します。
- ツールバーのをクリックして、ユーザー設定のダイアログボックスを表示させます (または メニューで を選択します) 。
- グループ タブをクリックし、wheel グループのチェックボックスにチェックマークを付けて をクリックします。
wheel
グループにユーザーを追加したら、この特定のユーザーにのみ su コマンドの使用を許可することが推奨されます。これを行うには、su:/etc/pam.d/su
の PAM 設定ファイルを編集する必要があります。このファイルをテキストエディターで開き、以下の行からコメント (#) を削除します。
#auth required pam_wheel.so use_uid
wheel
の管理グループのメンバーのみが、su コマンドを使用して別のユーザーに切り換えることができるようになります。
root
ユーザーは、デフォルトで wheel
グループに含まれます。
4.2. sudo コマンド
sudo <command>
/etc/sudoers
設定ファイルに一覧表示されているユーザーのみが sudo コマンドを使用することができ、root シェルではなく、その ユーザーの シェルでコマンドが実行されます。これは、Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;Linux 『Red Hat Enterprise Linux 6nbsp;6 セキュリティーガイド』 に示されるように、root シェルを完全に無効にできることを意味します。
/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>
session required pam_tty_audit.so disable=* enable=root
/etc/sudoers
を編集する場合は、visudo コマンドを使用する必要があります。
juan ALL=(ALL) ALL
juan
は、任意のホストから sudo を使用し、任意のコマンドを実行できます。
%users localhost=/sbin/shutdown -h now
sudoers
の man ページには、このファイルのオプションの詳細なリストが記載されています。
/etc/sudoers
設定ファイルを編集することで回避できます。/etc/sudoers
ファイルをデフォルトの状態にしておくと、wheel
グループのすべてのユーザーが無制限の root アクセスを許可します。
- デフォルトでは、sudo は sudoer のパスワードを 5 分間保存します。この間はコマンドを続けて使用しても、ユーザーはパスワードを要求されません。このため、ユーザーがログイン状態のままワークステーションを離れたりロックしない状態にしておくと、攻撃者に悪用されかねません。この動作は、以下の行を
/etc/sudoers
ファイルに追加することで変更できます。Defaults timestamp_timeout=<value>
<value> には、指定するタイムアウトの分数を入れます。< value> を 0 に設定すると、sudo は毎回パスワードを要求します。 - sudoer のアカウントが侵害されると、攻撃者は sudo を使用して管理権限のある新たなシェルを開くことができます。
sudo /bin/bash
この方法や同様の方法で root として新しいシェルを開くと、/etc/sudoers
ファイルで指定されたタイムアウト時間を無視し、新たに開かれたセッションが閉じられるまで攻撃者に sudo のパスワード入力を要求することがありません。
4.3. その他のリソース
インストールされているドキュメント
- su(1)- su の man ページには、このコマンドで利用可能なオプションの情報があります。
- sudo (8): sudo の man ページには、このコマンドの動作をカスタマイズするためのオプションの一覧と、このコマンドの詳細な説明が含まれています。
- pam(8) - man ページでは、 Linux 向け Pluggable Authentication Modules の使用方法が説明されています。
オンラインドキュメント
- Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 『Security Guide』 : セキュリティーガイドでは、セキュリティーリスクの詳細と権限を取得するプログラムに関連する技術を軽減しています。
- Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 Managing Single Sign-On and Smart Cards: 本書では、プラグ可能な認証モジュール(PAM)、その設定と使用について詳細に説明しています。
第5章 コンソールアクセス
- そうでないと実行できない特定のプログラムを実行できます。
- そうでない場合にはアクセスできない特定のファイルにアクセスできます。これらのファイルには通常、ディスクへのアクセスに使用される特殊なデバイスファイル、CD-ROM などが含まれます。
5.1. root 以外のユーザーのコンソールプログラムアクセスの無効化
/etc/security/console.apps/
ディレクトリー内のプログラムへのコンソールアクセスを拒否することができます。これらのプログラムを一覧表示するには、以下のコマンドを実行します。
~]$ ls /etc/security/console.apps
abrt-cli-root
config-util
eject
halt
poweroff
reboot
rhn_register
setup
subscription-manager
subscription-manager-gui
system-config-network
system-config-network-cmd
xserver
/etc/security/console.apps/
内の各プログラムの PAM 設定ファイルは、/etc/pam.d/
ディレクトリーにあり、プログラムと同じ名前が付けられます。このファイルを使用して、ユーザーが root でない場合、プログラムへのアクセスを拒否するように PAM を設定できます。これを行うには、最初にコメント解除された行 auth requisite pam_deny.so
の直後に auth sufficient pam_rootok.so
行を挿入します。
例5.1 再起動プログラムへのアクセスの無効化
/etc/security/console.apps/reboot
への root 以外のコンソールアクセスを無効にするには、auth requisite pam_deny.so
行 を /etc/pam.d/reboot
PAM 設定ファイルに挿入します。
#%PAM-1.0 auth sufficient pam_rootok.so auth requisite pam_deny.so auth required pam_console.so #auth include system-auth account required pam_permit.so
/etc/security/console.apps/
の複数のプログラムは、/etc/pam.d/config-util
設定ファイルから PAM 設定を部分的に派生します。これにより、/etc/pam.d/config-util
を編集して、これらすべてのプログラムの設定を一度に変更できます。これらのプログラムをすべて検索するには、config-util
ファイルを参照する PAM 設定ファイルを検索します。
~]# grep -l "config-util" /etc/pam.d/*
/etc/pam.d/abrt-cli-root
/etc/pam.d/rhn_register
/etc/pam.d/subscription-manager
/etc/pam.d/subscription-manager-gui
/etc/pam.d/system-config-network
/etc/pam.d/system-config-network-cmd
5.2. Ctrl+Alt+Del を使用した再起動の無効化
/etc/init/control-alt-delete.conf
ファイルに指定されます。デフォルトでは、-r
オプションを指定した shutdown ユーティリティーが、システムのシャットダウンおよび再起動に使用されます。
~]# echo "exec true" >> /etc/init/control-alt-delete.override
パート II. サブスクリプションおよびサポート
第6章 システム登録およびサブスクリプション管理
6.1. システム登録およびサブスクリプションの割り当て
root
で実行することに注意してください。
- 以下のコマンドを実行してシステムを登録します。ユーザー名とパスワードを入力するように求められます。ユーザー名とパスワードは、Red Hat カスタマーポータルのログイン認証情報と同じであることに注意してください。
subscription-manager register
- 必要なサブスクリプションのプール ID を確認します。これを行うには、シェルプロンプトで以下のコマンドを入力し、システムで利用できるサブスクリプションの一覧を表示します。
subscription-manager list --available
このコマンドは、利用可能な各サブスクリプションの名前、固有 ID、有効期限、およびそのサブスクリプションに関連するその他の詳細情報を表示します。すべてのアーキテクチャーのサブスクリプションを一覧表示するには、--all
オプションを追加します。プール ID は、Pool ID
で始まる行に一覧表示されます。 - 以下のコマンドを実行して、該当するサブスクリプションをシステムに割り当てます。
subscription-manager attach --pool=pool_id
pool_id を、直前のステップで確認したプール ID に置き換えます。システムに割り当てているサブスクリプションの一覧を随時確認するには、以下を実行します。subscription-manager list --consumed
6.2. ソフトウェアリポジトリーの管理
/etc/yum.repos.d/
ディレクトリーにリポジトリーファイルが作成されます。これを確認するには、yum を使用して有効なリポジトリーの一覧を表示します。
yum repolist
subscription-manager repos --list
rhel-variant-rhscl-version-rpms rhel-variant-rhscl-version-debug-rpms rhel-variant-rhscl-version-source-rpms
サーバー
または ワークステーション
)で、version は Red Hat Enterprise Linux システムのバージョン(6
または 7
)を示します。以下に例を示します。
rhel-server-rhscl-6-eus-rpms rhel-server-rhscl-6-eus-source-rpms rhel-server-rhscl-6-eus-debug-rpms
subscription-manager repos --enable repository
subscription-manager repos --disable repository
6.3. サブスクリプションの削除
- すでに割り当てられているサブスクリプションの情報を一覧表示し、削除する必要があるサブスクリプションのシリアル番号を確認します。
subscription-manager list --consumed
シリアル番号は、serial
に記載されている番号です。たとえば、以下の例では744993814251016831
になります。SKU: ES0113909 Contract: 01234567 Account: 1234567 Serial: 744993814251016831 Pool ID: 8a85f9894bba16dc014bccdd905a5e23 Active: False Quantity Used: 1 Service Level: SELF-SUPPORT Service Type: L1-L3 Status Details: Subscription Type: Standard Starts: 02/27/2015 Ends: 02/27/2016 System Type: Virtual
- 以下のコマンドを実行して、選択したサブスクリプションを削除します。
subscription-manager remove --serial=serial_number
serial_number を、直前の手順で確認したシリアル番号に置き換えます。
subscription-manager remove --all
6.4. その他のリソース
インストールされているドキュメント
subscription-manager
(8): Red Hat Subscription Management の man ページでは、サポートされるオプションおよびコマンドの完全なリストが提供されます。
関連書籍
- Red Hat Subscription Management の一連のガイド: これらのガイドには、Red Hat Subscription Management の使用方法の詳細情報が記載されています。
- インストールガイド: 初回起動プロセス中に登録する方法の詳細については、「初回起動時」の章を参照してください。https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/ch-firstboot.html
オンラインリソース
- Red Hat Access Labs: Red Hat Access Labs には 「Registration Assistant」 が含まれています。
その他の参考資料
- 8章Yum では、yum パッケージマネージャーを使用したソフトウェアのインストールおよび更新に関する情報を提供します。
- 9章PackageKit PackageKit パッケージマネージャーを使用してソフトウェアをインストールおよび更新する方法を提供します。
第7章 Red Hat Support Tool を使用したサポートへのアクセス
SSH
または任意のターミナルで実行できます。また、コマンドラインから Red Hat ナレッジベースを検索したり、コマンドラインでソリューションを直接コピーしたり、サポートケースを作成または更新したり、分析のために Red Hat にファイルを送信したりできます。
7.1. Red Hat Support Tool のインストール
root
で以下のコマンドを入力します。
~]# yum install redhat-support-tool
7.2. コマンドラインを使用した Red Hat Support Tool の登録
~]# redhat-support-tool config user username
username は、Red Hat カスタマーポータルアカウントのユーザー名に置き換えます。~]# redhat-support-tool config password Please enter the password for username:
7.3. インタラクティブシェルモードでの Red Hat Support Tool の使用
~]$ redhat-support-tool
Welcome to the Red Hat Support Tool.
Command (? for help):
ツールは、非特権ユーザーまたは root
として実行できます。
?
文字を入力するとコマンドの一覧を表示できます。プログラムまたはメニューの選択は、q
または e
の文字を入力して終了できます。ナレッジベースまたはサポートケースを初めて検索する場合は、Red Hat カスタマーポータルのユーザー名とパスワードを入力するよう求められます。また、インタラクティブモードで Red Hat カスタマーポータルアカウントのユーザー名とパスワードを設定し、オプションで設定ファイルに保存することもできます。
7.4. Red Hat Support Tool の設定
~]# redhat-support-tool Welcome to the Red Hat Support Tool. Command (? for help): config --help Usage: config [options] config.option <new option value> Use the 'config' command to set or get configuration file values. Options: -h, --help show this help message and exit -g, --global Save configuration option in /etc/redhat-support-tool.conf. -u, --unset Unset configuration option. The configuration file options which can be set are: user : The Red Hat Customer Portal user. password : The Red Hat Customer Portal password. debug : CRITICAL, ERROR, WARNING, INFO, or DEBUG url : The support services URL. Default=https://api.access.redhat.com proxy_url : A proxy server URL. proxy_user: A proxy server user. proxy_password: A password for the proxy server user. ssl_ca : Path to certificate authorities to trust during communication. kern_debug_dir: Path to the directory where kernel debug symbols should be downloaded and cached. Default=/var/lib/redhat-support-tool/debugkernels Examples: - config user - config user my-rhn-username - config --unset user
手順7.1 インタラクティブモードでの Red Hat Support Tool の登録
- 以下のコマンドを入力してツールを起動します。
~]# redhat-support-tool
- Red Hat カスタマーポータルのユーザー名を入力します。
Command (? for help): config user username
ユーザー名をグローバル設定ファイルに保存するには、-g
オプションを追加します。 - Red Hat カスタマーポータルのパスワードを入力します。
Command (? for help): config password Please enter the password for username:
7.4.1. 設定ファイルへの設定の保存
~/.redhat-support-tool/redhat-support-tool.conf
設定ファイルを使用して現在のユーザーのホームディレクトリーに値とオプションをローカルで保存します。必要に応じて、パスワードをこのファイルに保存することが推奨されます。ツールが起動すると、グローバル設定ファイル /etc/redhat-support-tool.conf
とローカル設定ファイルから値が読み取られます。ローカルに保存された値とオプションは、グローバルに保存された設定よりも優先されます。
base64
でエンコードされ簡単にデコードできるため、グローバルな /etc/redhat-support-tool.conf
設定ファイルにパスワードを保存することは推奨され ませ ん。また、ファイルは誰でも読み取り可能です。
-g, --global
オプションを追加します。
Command (? for help): config setting -g value
-g, --global
オプションを使用して設定をグローバルで保存できるようにするには、Red Hat Support Tool を root
で実行する必要があります。これは、通常のユーザーには /etc/redhat-support-tool.conf
への書き込みに必要なパーミッションがないためです。
-u, --unset
オプションを追加します。
Command (? for help): config setting -u value
これにより、ツールからパラメーターが削除および設定解除され、(利用可能な場合は) グローバル設定ファイルにある同等の設定が使用されます。
-u, --unset
オプションでグローバル設定ファイルに保存される値は削除できませんが、-g, --global
オプションと -u, --unset オプションを同時に使用して、ツールの現在の実行中のインスタンスから、設定を解除することができます。root
として実行している場合は、-g, --global
と -u, --unset
オプションを同時に使用してグローバル設定ファイルから値とオプションを削除できます。
7.5. インタラクティブモードでのサポートケースの作成および更新
手順7.2 インタラクティブモードでの新しいサポートケースの作成
- 以下のコマンドを入力してツールを起動します。
~]# redhat-support-tool
- opencase コマンドを入力します。
Command (? for help): opencase
- 画面に表示されたプロンプトに従って製品とバージョンを選択します。
- ケースの要約を入力します。
- ケースの説明を入力し、完了したら空の行で Ctrl+D を押します。
- ケースの重大度を選択します。
- オプションで、サポートケースを作成する前に、この問題のソリューションが存在するかどうかを確認することを選択します。
- サポートケースを作成することを確定します。
Support case 0123456789 has successfully been opened
- オプションで、SOS レポートを添付することを選択します。
- オプションで、ファイルを添付することを選択します。
手順7.3 インタラクティブモードでの既存のサポートケースの表示および更新
- 以下のコマンドを入力してツールを起動します。
~]# redhat-support-tool
- getcase コマンドを入力します。
Command (? for help): getcase case-number
case-number は、表示および更新するケースの番号です。 - 画面に表示されたプロンプトに従ってケースを表示し、コメントを変更または追加して、添付ファイルを取得または追加します。
手順7.4 インタラクティブモードでの既存のサポートケースの変更
- 以下のコマンドを入力してツールを起動します。
~]# redhat-support-tool
- modifycase コマンドを入力します。
Command (? for help): modifycase case-number
case-number は、表示および更新するケースの番号です。 - 変更の選択リストが表示されます。
Type the number of the attribute to modify or 'e' to return to the previous menu. 1 Modify Type 2 Modify Severity 3 Modify Status 4 Modify Alternative-ID 5 Modify Product 6 Modify Version End of options.
画面に表示されたプロンプトに従って 1 つまたは複数のオプションを変更します。 - たとえば、ステータスを変更する場合は、
3
と入力します。Selection: 3 1 Waiting on Customer 2 Waiting on Red Hat 3 Closed Please select a status (or 'q' to exit):
7.6. コマンドラインでのサポートケースの表示
~]# redhat-support-tool getcase case-number
case-number は、ダウンロードするケースの番号です。
7.7. その他のリソース
パート III. ソフトウェアのインストールおよび管理
第8章 Yum
8.1. パッケージの確認と更新
8.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
- パッケージの名前x86_64
- パッケージがビルドされた CPU アーキテクチャー0.5.8
- インストールする更新パッケージのバージョンrhel
- 更新パッケージが置かれているリポジトリー
8.1.2. パッケージの更新
単一パッケージの更新
root
で以下のコマンドを実行します。
yum update
package_name
~]# 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]:
Loaded plugins: product-id, refresh-packagekit, subscription-manager
- yum は常に、どの Yum プラグインがインストールされ、有効になっているかを通知します。Yum プラグインに関する一般的な情報は、「yum のプラグイン」 を参照してください。特定のプラグインの説明は、「プラグインの説明」 を参照してください。udev.x86_64
- 新しい udev パッケージをダウンロードしてインストールできます。- yum は更新情報を表示し、更新を実行するかどうかを尋ねられます。yum はデフォルトで対話的に実行されます。yum コマンドが実行する予定のトランザクションがすでに分かっている場合は、
-y
オプションを使用して、yum が質問する質問(この場合は非対話的に実行)に対して、自動的に yes と回答できます。ただし、発生する可能性のある問題を簡単にトラブルシューティングできるように、yum がシステムに加える変更を必ず確認する必要があります。トランザクションが到着する場合は、「トランザクション履歴の活用」 で説明されているように yum history コマンドを使用して Yum のトランザクション履歴を表示できます。
すべてのパッケージとそれらの依存関係の更新
yum update
セキュリティー関連パッケージの更新
パッケージの自動更新
cron
デーモンの Yum インターフェースを提供し、パッケージリポジトリーからメタデータをダウンロードします。yum-cron サービスを有効にすると、ユーザーは毎日自動的に Yum の更新を cron ジョブとしてスケジュールできます。
~]# yum install yum-cron
~]# chkconfig yum-cron on
~]# service yum-cron start
~]# service yum-cron status
/etc/sysconfig/yum-cron
ファイルを編集します。
yum-cron
の詳細は、/etc/sysconfig/yum-cron
内のコメントと yum-cron(8)man ページを参照してください。
8.1.3. 設定ファイルの変更の保存
8.1.4. ISO と Yum を使用してシステムをオフラインでアップグレード
- ISO イメージをマウントするターゲットディレクトリーを作成します。このディレクトリーは、マウント時に自動的に作成されません。
root
で以下のコマンドを実行します。mkdir mount_dir
mount_dir をマウントディレクトリーへのパスに置き換えます。通常、ユーザーは/media
ディレクトリーのサブディレクトリーとして作成します。 - 以前に作成したターゲットディレクトリーに Red Hat Enterprise Linux 6 インストール ISO イメージをマウントします。
root
で以下のコマンドを実行します。mount
-o
loop
iso_name mount_diriso_name は ISO イメージへのパスに、mount_dir はターゲットディレクトリーへのパスに置き換えます。ブロックデバイスとしてファイルをマウントするには、-o
loop
オプションが必要です。 media.repo
ファイルをマウントディレクトリーから/etc/yum.repos.d/
ディレクトリーにコピーします。正常に機能するために、このディレクトリーの設定ファイルの拡張子は .repo である必要があります。cp
mount_dir/media.repo
/etc/yum.repos.d/new.repo
これにより、yum リポジトリーの設定ファイルが作成されます。new.repo をファイル名に置き換えます(例: rhel6.repo )。- Red Hat Enterprise Linux インストール ISO を参照するように新しい設定ファイルを編集します。
/etc/yum.repos.d/new.repoファイルに以下の行を追加します。
baseurl=file:///mount_dir
mount_dir は、マウントポイントへのパスに置き換えます。 - 前の手順で作成された
/etc/yum.repos.d/new.repo
を含む、yum リポジトリーをすべて更新します。root
で以下のコマンドを実行します。yum
update
これにより、システムはマウントされた ISO イメージで提供されたバージョンにアップグレードされます。 - アップグレードに成功したら、ISO イメージをアンマウントできます。
root
で以下のコマンドを実行します。umount mount_dir
mount_dir はマウントディレクトリーへのパスです。また、最初の手順で作成されたマウントディレクトリーを削除することもできます。root
で以下のコマンドを実行します。rmdir mount_dir
- 以前に作成された設定ファイルを別のインストールまたは更新に使用しない場合は、その設定ファイルを削除できます。
root
で以下のコマンドを実行します。rm
/etc/yum.repos.d/new.repo
例8.1 Red Hat Enterprise Linux 6.3 から 6.4 へのアップグレード
RHEL6.4-Server-20130130.0-x86_64-DVD1.iso
)。マウント用に作成されたターゲットディレクトリーは /media/rhel6/
です。root
で ISO イメージがあるディレクトリーに移動し、以下のコマンドを入力します。
~]# mount-o
loop
RHEL6.4-Server-20130130.0-x86_64-DVD1.iso
/media/rhel6/
media.repo
ファイルをコピーして、イメージ用の yum リポジトリーをセットアップします。
~]# cp/media/rhel6/media.repo
/etc/yum.repos.d/rhel6.repo
/etc/yum.repos.d/rhel6.repo
に以下の行を追加します。
baseurl=file:///media/rhel6/
RHEL6.4-Server-20130130.0-x86_64-DVD1.iso
により提供されたバージョンにシステムがアップグレードされます。root
で以下を実行します。
~]# yum update
~]# umount /media/rhel6/
~]# rmdir /media/rhel6/
~]# rm /etc/yum.repos.d/rhel6.repo
8.2. パッケージおよびパッケージグループ
8.2.1. パッケージの検索
yum search
term…
例8.2 特定の文字列に一致するパッケージの検索
~]$ yum search vim gvim emacs Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager ============================= N/S matched: vim ============================== vim-X11.x86_64 : The VIM version of the vi editor for the X Window System vim-common.x86_64 : The common files needed by any version of the VIM editor [output truncated] ============================ N/S matched: emacs ============================= emacs.x86_64 : GNU Emacs text editor emacs-auctex.noarch : Enhanced TeX modes for Emacs [output truncated] Name and summary matches mostly, use "search all" for everything. Warning: No matches found for: gvim
8.2.2. パッケージの一覧表示
- ワイルドカード文字の前にバックスラッシュ記号を入力して、ワイルドカード文字をエスケープする
- glob 表現全体を二重引用符または単一引用符でくくる
- yum list glob_expression
- すべての glob 表現に一致するインストール済み および 利用可能なパッケージに関する情報を一覧表示します。
例8.3 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
- システムにインストールされているパッケージの一覧を表示します。出力の右端の列には、パッケージを取得したリポジトリーが表示されます。
例8.4 二重引用符表現を使用したインストール済みパッケージの一覧表示
「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
- 有効なすべてのリポジトリーで利用可能なパッケージの一覧を表示します。
例8.5 エスケープされたワイルドカード文字を含む 1 つの glob 式を使用した利用可能なパッケージの一覧表示
「gstreamer」 と 「プラグイン」 を含む名前で利用可能なパッケージを一覧表示するには、以下のコマンドを実行します。~]# 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、名前、提供するパッケージ数を一覧表示します。
8.2.3. パッケージ情報の表示
yum info
package_name
~]# 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.
From repo:
行を参照)。
yumdb info
package_name
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
パッケージに含まれるファイルの一覧表示
repoquery --list
package_name
8.2.4. パッケージのインストール
個別パッケージのインストール
yum install
package_name
yum install
package_name package_name
i686
の sqlite パッケージをインストールするには、以下を入力します。
~]# yum install sqlite.i686
~]# yum install perl-Crypt-\*
~]# yum install /usr/sbin/named
/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
パッケージグループのインストール
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
yum groupinstall
group_name
yum groupinstall
groupid
yum install
@group
Desktop
グループをインストールする方法と同じです。
~]# yum groupinstall "KDE Desktop" ~]# yum groupinstall kde-desktop ~]# yum install @kde-desktop
8.2.5. パッケージの削除
個々のパッケージの削除
root
で以下のコマンドを実行します。
yum remove
package_name
~]# yum remove totem rhythmbox sound-juicer
- パッケージ名
- glob 表現
- ファイル一覧
- パッケージが提供する機能
パッケージグループの削除
yum groupremove
group
yum remove
@group
Desktop
グループを削除する方法と同等の方法になります。
~]# yum groupremove "KDE Desktop" ~]# yum groupremove kde-desktop ~]# yum remove @kde-desktop
remove_leaf_only=1 ディレクティブを /etc/ yum.conf
設定ファイルの [main]
セクションに追加すると、他のパッケージやグループで必要のないパッケージのみ
を削除するように yum に指示することができます。このディレクティブの詳細は、「[main] オプションの設定」 を参照してください。
8.3. トランザクション履歴の活用
8.3.1. トランザクションの一覧表示
root
で引数なしで yum history を実行するか、シェルプロンプトで以下を入力します。
yumhistory
list
all
のキーワードを追加します。
yumhistory
list
all
yumhistory
list
start_id..end_id
yumhistory
list
glob_expression
~]# 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
ID
- 特定のトランザクションを識別する整数値です。Login user
- トランザクションが開始したログインセッションのユーザー名。この情報は、通常Full Name <username>
形式で表示されます。ユーザーが実行しなかったトランザクション(システムの自動更新など)については、代わりにSystem <unset>
が使用されます。Date and time
- トランザクションが発生した日時。Action(s)
- 表8.1「Action フィールドの値」 の説明通りに、トランザクション中に実行されたアクションのリスト。Altered
- トランザクションによって影響を受けるパッケージの数。場合によっては 表8.2「Altered フィールドの値」 で説明されているように、追加情報が続きます。
Action | 省略形 | 詳細 |
---|---|---|
Downgrade | D | 1 つ以上のパッケージが旧バージョンにダウングレードされました。 |
Erase | E | 1 つ以上のパッケージが削除されました。 |
Install | I | 1 つ以上の新しいパッケージがインストールされました。 |
Obsoleting | O | 1 つ以上のパッケージが廃止として記録されました。 |
Reinstall | -R | 1 つ以上のパッケージが再インストールされました。 |
Update | U | 1 つ以上のパッケージが新しいバージョンに更新されました。 |
記号 | 詳細 |
---|---|
< | トランザクションが終了する前に、rpmdb データベースが Yum 以外で変更されました。 |
> | トランザクションが終了した後に、rpmdb データベースが Yum 以外で変更されました。 |
* | トランザクションは失敗して終了しました。 |
# | トランザクションは正常に終了しましたが、yum はゼロ以外の終了コードを返しました。 |
E | トランザクションは正常に終了しましたが、エラーまたは警告が表示されました。 |
%P | トランザクションは正常に終了しましたが、rpmdb データベースに問題がすでに存在します。 |
s | トランザクションは正常に終了しましたが、--skip-broken コマンドラインオプションが指定され、特定のパッケージが省略されました。 |
root
で以下の形式のコマンドを実行します。
yumhistory
summary
yumhistory
summary
start_id..end_id
yumhistory
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
root
で以下のコマンドを実行します。
yumhistory
package-list
glob_expression
~]# 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
8.3.2. トランザクションの検証
root
で以下の形式で yum history summary コマンドを使用します。
yumhistory
summary
id
root
で以下のコマンドを実行します。
yumhistory
info
id
yumhistory
info
start_id..end_id
~]# 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-security
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-security-1.1.30-17.el6.noarch
history info
root
で次のコマンドを実行します。
yumhistory
addon-info
id
last
キーワードを使用することもできます。
yumhistory
addon-info
last
~]# 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
config-main
- トランザクション中に使用された yum のグローバルオプション。グローバルオプションの変更方法は 「[main] オプションの設定」 を参照してください。config-repos
- 個々の Yum リポジトリー用のオプション。個々のリポジトリー用のオプションを変更する方法は 「[repository] オプションの設定」 を参照してください。saved_tx
- 別のマシンでトランザクションを繰り返すために yum load-transaction コマンドで使用できるデータ(以下を参照)。
root
で以下のコマンドを実行します。
yumhistory
addon-info
id information
8.3.3. トランザクションを元に戻す/繰り返す
root
で次のコマンドを実行します。
yumhistory
undo
id
root
で次のコマンドを実行します。
yumhistory
redo
id
last
キーワードを使用して、最新のトランザクションを元に戻す、または繰り返すことができます。
root
で次のコマンドを実行します。
yum-q
history
addon-info
idsaved_tx
>file_name
root
で以下のコマンドを使用してトランザクションを繰り返すことができます。
yum load-transaction
file_name
rpmdb
バージョンは、ターゲットシステムのバージョンと同じである必要があります。yum version nogroups コマンドを使用すると、rpmdb
バージョンを確認できます。
8.3.4. トランザクションの完了
root
で以下のコマンドを使用して、後で再開できます。
yum-complete-transaction
/var/lib/yum/transaction-all
ファイルおよび /var/lib/yum/transaction-done
ファイルに一覧表示されます。未完了のトランザクションが多い場合、yum-complete-transaction は最新のトランザクションを最初に完了しようとします。
--cleanup-only
オプションを使用します。
yum-complete-transaction --cleanup-only
8.3.5. 新しいトランザクション履歴の開始
root
で以下のコマンドを実行します。
yumhistory
new
/var/lib/yum/history/
ディレクトリーに新しい空のデータベースファイルが作成されます。古いトランザクション履歴は保存されますが、新しいデータベースファイルがディレクトリーにある限りアクセスすることはできません。
8.4. Yum と Yum リポジトリーの設定
/etc/yum.conf
にあります。このファイルには、必須の [main]
セクションが 1 つあり、ここで全体に影響を与える Yum オプションを設定できます。また、[repository]
セクションを 1 つ以上追加して、リポジトリー固有のオプションを設定することもできます。ただし、/etc/yum.repos.d/
ディレクトリーにある、新規または既存の .repo
ファイルに個々のリポジトリーを定義することが推奨されます。/etc/yum.conf
ファイルの個別の [repository]
セクションで定義した値は、[main]
セクションに設定した値をオーバーライドします。
/etc/yum.conf
設定ファイルの[main]
セクションを編集して、yum のグローバルオプションを設定します。/etc/yum.conf
ファイルおよび.repo
ファイルの[repository]
セクションを編集して、個々のリポジトリーにオプションを設定します。
- 動的バージョンとアーキテクチャーの値が正しく処理されるように、
/etc/yum.conf
内の Yum 変数と/etc/yum.repos.d/
ディレクトリーのファイルを使用します。 - コマンドラインで Yum リポジトリーを追加、有効化、および無効化します。
- 独自のカスタム Yum リポジトリーを設定します。
8.4.1. [main] オプションの設定
/etc/yum.conf
設定ファイルには [main]
セクションが 1 つだけ含まれます。本セクションにあるキー値ペアの中には、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
[comments abridged]
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
[main]
セクションで最も一般的に使用されるオプションです。
assumeyes
=value- ここで、value は以下のいずれかになります。
0
: yum は、実行する重要な動作の確認を求めるプロンプトを出します。これはデフォルトです。1
: yum は、重要な動作の確認を行いません。assumeyes=1 を
設定すると、yum はコマンドラインオプション-y
が行うのと同じ方法で動作します。 cachedir
=directory- directory は、Yum がキャッシュとデータベースファイルを保存するディレクトリーへの絶対パスです。デフォルトでは、Yum のキャッシュディレクトリーは
/var/cache/yum/$basearch/$releasever
です。 debuglevel
=value- value は、
1
から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=値
を設定することもできます。つまり、あるリポジトリーで GPG チェックを有効にしつつ、別のリポジトリーで無効にすることができます。対応する.repo
ファイルの個々のリポジトリーにgpgcheck=値
を設定すると、/etc/yum.conf
に存在する場合にはデフォルトが上書きされます。GPG 署名の確認に関する詳細は、「パッケージの署名の確認」 を参照してください。 groupremove_leaf_only
=value- ここで、value は以下のいずれかになります。
0
: パッケージグループを削除するときに、yum は各パッケージの依存関係を確認し ない でください。この設定では、yum は、他のパッケージまたはグループで必要なパッケージが必要であるかどうかに関わらず、パッケージグループ内の全パッケージを削除します。groupremove_leaf_only=0
がデフォルトです。1
: yum はパッケージグループを削除するときに各パッケージの依存関係を確認し、他のパッケージやグループを必要としないパッケージのみを削除します。パッケージの削除に関する詳細は、インテリジェントなパッケージグループの削除 を参照してください。 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 ビットバージョンをインストールします。all
: 常に全パッケージ用の可能なあらゆるアーキテクチャーをインストールします。たとえば、AMD64 システムでmultilib_policy
をall
に設定すると、yum は i686 および AMD64 のパッケージが利用可能であれば、両方をインストールします。 obsoletes
=value- ここで、value は以下のいずれかになります。
0
: 更新の実行時に yum の廃止処理ロジックを無効にします。1
: 更新の実行時に yum の廃止処理ロジックを有効にします。あるパッケージが仕様ファイルで別のパッケージを 廃止 することを宣言すると、廃止されたパッケージのインストール時に、廃止後のパッケージが former パッケージに置き換えられます。たとえば、パッケージ名が変更された場合などに廃止が宣言されます。デフォルトはobsoletes=1
です。 plugins
=value- ここで、value は以下のいずれかになります。
0
: すべての Yum プラグインをグローバルに無効にします。プラグインをすべて無効にすることは推奨されません。一部のプラグインは重要な Yum サービスを提供するため、すべてのプラグインを無効にすることは推奨されません。特に、rhnplugin はRHN Classic
に対応しており、product-id プラグインおよび subscription-manager プラグインは、証明書ベースのコンテンツ配信ネットワーク
(CDN)のサポートを提供します。グローバルにプラグインを無効にすることは便利なオプションとして提供されますが、通常は Yum の潜在的な問題を診断する場合にのみ推奨されます。1
: すべての Yum プラグインをグローバルに有効にします。plugins=1 で
は、そのプラグインの設定ファイルにenabled=0
を設定して、特定の Yum プラグインを無効にすることができます。Yum のさまざまなプラグインの詳細は、「yum のプラグイン」 を参照してください。プラグインの制御に関する詳細は 「yum プラグインを有効、設定、および無効にする方法」 を参照してください。 reposdir
=directory- directory は、
.repo
ファイルがあるディレクトリーへの絶対パスです。すべての.repo
ファイルにはリポジトリー情報が含まれています(/etc/yum.conf
の[repository]
セクションと同様)。yum は、/etc/yum.conf
ファイルの.repo
ファイルおよび[repository]
セクションからすべてのリポジトリー情報を収集し、トランザクションに使用するリポジトリーのマスター一覧を作成します。reposdir
が設定されていない場合、yum はデフォルトのディレクトリー/etc/yum.repos.d/
を使用します。 retries
=value- value は、整数
0
以上です。この値は、エラーを返す前に yum がファイルの取得を試行する回数を設定します。これを0
に設定すると、yum はその試行を何度も続けます。デフォルト値は10
です。
[main]
オプションの完全なリストは、yum.conf(5)man ページの [main] OPTIONS
セクションを参照してください。
8.4.2. [repository] オプションの設定
[ repository ]
セクションは、個別の Yum リポジトリーの定義を可能にする my_personal_repo
(スペースは使用不可)などの一意のリポジトリー ID です。競合を回避するために、カスタムリポジトリーには、Red Hat リポジトリーで使用されている名前を使用しないでください。
[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/ にあるリポジトリーでユーザー名とパスワードのパスワードが必要な場合、baseurl
リンクはhttp://
として指定できます。「」 「」user
:password
@www.example.com/repo/
通常この URL は以下のような HTTP リンクになります。baseurl=http://path/to/repo/releases/$releasever/server/$basearch/os/
[repository]
ディレクティブを以下に示します。
enabled
=value- ここで、value は以下のいずれかになります。
0
: 更新およびインストールの実行時には、パッケージソースとしてこのリポジトリーを含めません。これはリポジトリーを迅速に有効または無効にする簡単な方法です。更新またはインストールには無効にしているリポジトリーから、単一パッケージが欲しい場合に便利です。1
: パッケージソースとしてこのリポジトリーを含めます。リポジトリーのオンとオフは、--enablerepo=repo_nameオプションまたは
オプションを yum に渡すか、PackageKit ユーティリティーのソフトウェアの 追加/削除 ウィンドウから実行できます。--disablerepo=repo_name
[repository]
オプションが存在します。完全な一覧は、yum.conf(5)man ページの [repository] OPTIONS
セクションを参照してください。
例8.6 /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
8.4.3. yum 変数の使用
/etc/ yum.conf
および /etc/yum.repos.d/
ディレクトリー内のすべての .repo
ファイル)で、以下の組み込み変数を使用および参照できます。
$releasever
- この変数を使用して、Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux のリリースバージョンを参照できます。yum は、
/etc/yum.conf
設定ファイルのdistroverpkg=値
行から$releasever
の値を取得します。/etc/yum.conf
にそのような行がない場合、yum は redhat-release-server パッケージからバージョン番号を取得することで正しい値を推測します。$releasever
の値は、通常、メジャーリリース番号と Red Hat Enterprise Linuxnbsp;Hat Enterprise Red Hat Enterprise Linuxnbsp;Linux のバリアント(例:6Client
、6Server
)で構成されます。 $arch
- この変数を使用して、Python の
os.uname()
関数を呼び出す際に返り値としてシステムの CPU アーキテクチャーを参照できます。$arch
の有効な値には、i686
およびx86_64
が含まれます。 $basearch
$basearch
を使用して、システムのベースアーキテクチャーを参照できます。たとえば、i686 マシンにはi386
のベースアーキテクチャーがあり、AMD64 および Intel 64 のマシンにはx86_
64 のベースアーキテクチャーがあります。$YUM0-9
- これら 10 個の変数は、それぞれ同じ名前を持つシェル環境変数の値に置換されます。これらの変数の 1 つが(たとえば
/etc/yum.conf
で)参照され、同じ名前のシェル環境変数が存在しない場合、設定ファイルの変数は置換されません。
/etc/yum/vars/
ディレクトリーに変数と同じ名前を持つファイルを作成して( 「$
」 記号なし)、必要な値を 1 行目に追加します。
$osname
と呼ばれる新しい変数を定義するには、「Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux」 の新規ファイルを 1 行目に作成し、/etc/yum/vars/osname
として保存します。
~]# echo "Red Hat Enterprise Linux" > /etc/yum/vars/osname
.repo
ファイルで以下を使用できるようになりました。
name=$osname $releasever
8.4.4. 現在の設定の表示
/etc/yum.conf
ファイルの [main]
セクションで指定されているオプション)を表示するには、コマンドラインオプションなしで yum-config-manager を実行します。
yum-config-manager
yum-config-manager section
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 [output truncated]
8.4.5. yum リポジトリーの追加、有効化、および無効化
Red Hat Network
に登録されると、Red Hat サブスクリプションマネージャーツールを使用して、/etc/yum.repos.d/redhat.repo
ファイル内のリポジトリーを管理します。Red Hat Network
にシステムを登録する方法や、Red Hat Subscription Manager ツールを使用してサブスクリプションを管理する方法は、6章システム登録およびサブスクリプション管理 を参照してください。
yum リポジトリーの追加
[repository]
セクションを /etc/yum.conf
ファイル、または /etc/yum.repos.d/
ディレクトリーの .repo
ファイルに追加します。このディレクトリーにある .repo
ファイル拡張子が付いたすべてのファイルは、yum が読み取ります。リポジトリーは、/etc/yum.conf
ではなく、ここに定義することが推奨されます。
.repo
ファイルを提供します。このようなリポジトリーをシステムに追加して有効にするには、root
で以下のコマンドを実行します。
yum-config-manager --add-repo
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
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 [output truncated]
yum リポジトリーの無効化
root
で以下のコマンドを実行します。
yum-config-manager --disable
repository
yum-config-manager --disable
glob_expression
8.4.6. yum リポジトリーの作成
- createrepo パッケージをインストールします。これを行うには、
root
で次のコマンドを実行します。yum install createrepo
- リポジトリー内に存在させるパッケージをすべて 1 つのディレクトリー(
/mnt/local_repo/
など)にコピーします。 - このディレクトリーに移動し、以下のコマンドを実行します。
createrepo --database /mnt/local_repo
これにより、yum リポジトリーに必要なメタデータと、yum 操作を迅速化する sqlite データベースが作成されます。Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux 5 での createrepo コマンドの使用Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux 5 と比較すると、Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 の RPM パッケージは、XZ の損失なしのデータ圧縮形式で圧縮され、SHA-256 などの新しいハッシュアルゴリズムで署名できます。したがって、Red Hat Enterprise Linuxnbsp;Hat Enterprise Red Hat Enterprise Linux 6nbsp;Linux 5 で createrepo コマンドを使用して Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;Linux Red Hat Enterprise Linux 6nbsp;Linux Red Hat Enterprise Linux 6nbsp;6 のパッケージメタデータを作成することは推奨されません。
8.4.7. yum キャッシュの使用
/var/cache/yum/$basearch/$releasever/
ディレクトリーに一時ファイルを保存します。$basearch
および $releasever
は、システムのベースアーキテクチャーと Red Hat Enterprise Linux のリリースバージョンを参照する Yum 変数です。設定した各リポジトリーには 1 つのサブディレクトリーがあります。たとえば、/var/cache/yum/$basearch/$releasever/development/packages/
ディレクトリーには、開発リポジトリーからダウンロードしたパッケージを保持します。yum version コマンドの出力で、$basearch 変数および $releasever 変数の値を確認できます。
/etc/yum.conf
設定ファイルの [main]
セクションの cachedir
オプションを変更します。yum の設定に関する詳細は、「Yum と Yum リポジトリーの設定」 を参照してください。
キャッシュの有効化
/etc/yum.conf
の [main]
セクションに以下のテキストを追加します。
keepcache = 1
yum makecache
/etc/yum.conf
で metadata-expire
設定を使用します。
キャッシュ専用モードでの yum の使用
-C
または --cacheonly
を追加します。このオプションを使用すると、yum はネットワークリポジトリーを確認せずに続行し、キャッシュされたファイルのみを使用します。このモードでは、yum は以前の操作によってダウンロードおよびキャッシュされているパッケージのみをインストールできます。
yum-C
list
gstreamer*
yum キャッシュの消去
/var/cache/yum/
ディレクトリーに累積したエントリーを削除すると便利です。キャッシュからパッケージを削除すると、システムにインストールされているソフトウェアのコピーには影響を及ぼしません。現在有効なリポジトリーのエントリーをキャッシュから削除するには、root
で以下を入力します。
yumclean
all
clean
モードで起動する方法は複数あります。利用可能な設定オプションの一覧は、表8.3「利用可能な yum clean
オプション」 を参照してください。
オプション | 説明 |
---|---|
expire-cache | 各リポジトリーのメタデータおよびミラーリストのダウンロードの時間レコードを取り除きます。これにより、yum は次回の使用時に各リポジトリーのキャッシュを再無効にします。 |
packages | キャッシュされたパッケージをシステムから削除 |
ヘッダー | 以前のバージョンの yum が依存関係解決に使用したヘッダーファイルをすべて削除します。 |
metadata | パッケージのリモートの可用性を決定するために yum が使用するファイルをすべて削除します。これらのメタデータは、次回 yum の実行時にダウンロードされます。 |
dbcache | メタデータへの迅速なアクセスに使用する sqlite キャッシュを削除します。このオプションを使用すると、yum が、次回実行時に sqlite メタデータをダウンロードするように強制します。これは、.xml データのみが含まれるリポジトリーには適用されません。この場合、sqlite データは削除されますが、後続のダウンロードはありません。 |
rpmdb | ローカルの rpmdb からキャッシュされたデータを削除します。 |
plugins | キャッシュされたデータを取り除くために有効なプラグインは強制的に実行されます。 |
all | 上記をすべて削除します。 |
expire-cache
オプションは、上記の一覧から最も推奨されます。多くの場合、クリーン
な
状態にするには不十分です。
8.4.8. Optional および Supplementary リポジトリーの追加
8.5. yum のプラグイン
~]# yum info yum Loaded plugins: product-id, refresh-packagekit, subscription-manager [output truncated]
--disableplugins=plugin_nameオプションに指定できる名前
です。
8.5.1. yum プラグインを有効、設定、および無効にする方法
/etc/yum.conf
の [main]
セクションに plugins= で始まる行を追加し、その値が 1
であることを確認します。
plugins=1
RHN Classic
に対応しており、product-id プラグインおよび subscription-manager プラグインは、証明書ベースの コンテンツ配信ネットワーク
(CDN)のサポートを提供します。グローバルにプラグインを無効にすることは便利なオプションとして提供されますが、通常は Yum の潜在的な問題を診断する場合にのみ推奨されます。
/etc/yum/pluginconf.d/
ディレクトリーに独自の設定ファイルがあります。このファイルに、プラグイン固有のオプションを設定できます。たとえば、以下のように refresh-packagekit プラグインの refresh-packagekit.conf
設定ファイルがあるとします。
[main] enabled=1
[main]
セクション(Yum の /etc/yum.conf
ファイルと同様)が常に含まれます(または存在しない場合は配置可能)、yum コマンドの実行時にプラグインを有効にするかどうかを制御する enabled=
オプションを使用できます。
/etc/yum.conf
に enabled=0 を設定してすべてのプラグインを無効にすると、個々の設定ファイルで有効かどうかに関わらず、すべてのプラグインが無効になります。
--noplugins
オプションを使用します。
--disableplugin=plugin_name
オプションをコマンドに追加します。たとえば、システムの更新中に presto プラグインを無効にするには、以下を入力します。
~]# yum update --disableplugin=presto
--disableplugin=
オプションに指定したプラグイン名は、yum コマンドの出力の Loaded プラグ イン 行の後に一覧表示される名前と同じです。名前をコンマで区切ることにより、複数のプラグインを無効にすることができます。さらに、glob 表現を使用して、複数のプラグイン名に一致したり、長いプラグイン名を短くすることができます。
~]# yum update --disableplugin=presto,refresh-pack*
8.5.2. 追加の Yum プラグインのインストール
yum-plugin-plugin_name
package-naming 規則に従いますが、常に presto プラグインを提供するパッケージの名前は yum-presto
です。Yum プラグインは、他のパッケージをインストールするのと同じ方法でインストールできます。たとえば、セキュリティー プラグインをインストールするには、シェルプロンプトで以下を入力します。
~]# yum install yum-plugin-security
8.5.3. プラグインの説明
- search-disabled-repos (subscription-manager)
- search-disabled-repos プラグインを使用すると、依存関係の解決に役立つ無効なリポジトリーを一時的または永続的に有効にすることができます。このプラグインが有効な場合は、依存関係の解決に失敗して Yum がパッケージのインストールに失敗したときに、無効なリポジトリーを一時的に有効し、再試行することが提示されます。インストールが成功した場合、Yum は使用されているリポジトリーを永久的に有効にすることも提示します。プラグインは subscription-manager で管理されるリポジトリーとのみ機能し、カスタムリポジトリーとは機能しないことに注意してください。重要yum が
--assumeyes
または-y
オプションで実行されるか、/etc/yum.conf
でassumeyes
ディレクティブが有効になっている場合、プラグインは、確認を求めるプロンプトなしに、一時的に、かつ永続的に無効なリポジトリーを有効にします。この結果、有効にしたくないリポジトリーが有効になるといった問題が発生することがあります。search-disabled-repos プラグインを設定するには、/etc/yum/pluginconf.d/search-disabled-repos.conf
にある設定ファイルを編集します。[main]
セクションで使用できるディレクティブのリストについては、以下の表を参照してください。表8.4 サポートされている search-disabled-repos.conf ディレクティブ ディレクティブ 詳細 enabled
=valueプラグインを有効または無効にできます。値 は 1
(有効)または0
(無効)のいずれかにする必要があります。プラグインはデフォルトで有効です。notify_only
=valueプラグインの動作を通知のみに制限できます。値 は 1
(Yum の動作の変更なしで通知のみ)または0
(Yum の動作の変更)のいずれかにする必要があります。デフォルトでは、プラグインはユーザーへの通知のみを行います。ignored_repos
=repositoriesプラグインで有効でないリポジトリーを指定できます。 - kabi (kabi-yum-plugins)
- kabi プラグインは、ドライバー更新パッケージが公式の Red Hatnbsp;Hat kernel Application Binary Interface (kABI)に準拠するかどうかを確認します。このプラグインが有効な状態で、ユーザーがホワイトリストにないカーネルシンボルを使用するパッケージのインストールを試行する場合は、警告メッセージがシステムログに書き込まれます。さらには、プラグインを enforcing モードで実行するように設定すると、そうしたパッケージがインストールされないようにできます。kabi プラグインを設定するには、
/etc/yum/pluginconf.d/kabi.conf
にある設定ファイルを編集します。[main]
セクションに使用できるディレクティブの一覧は、表8.5「サポートされるkabi.conf
ディレクティブ」 を参照してください。表8.5 サポートされる kabi.conf ディレクティブ ディレクティブ 詳細 enabled
=valueプラグインを有効または無効にできます。値 は 1
(有効)または0
(無効)のいずれかにする必要があります。インストール時には、プラグインはデフォルトで有効です。whitelists
=directoryサポートされるカーネルシンボルを持つファイルがある ディレクトリー を指定できます。デフォルトでは、kabi プラグインは kernel-abi-whitelists パッケージ( /lib/modules/kabi/
ディレクトリー)が提供するファイルを使用します。enforce
=valueenforcing モードを有効または無効にできます。値 は 1
(有効)または0
(無効)のいずれかにする必要があります。デフォルトでは、このオプションはコメントアウトされ、kabi プラグインは警告メッセージのみを表示します。 - presto (yum-presto)
- presto プラグインは、更新中に delta RPM パッケージをダウンロードする Yum へのサポートを、事前メタデータが有効になっているリポジトリーから追加します。デルタ RPM には、RPM パッケージを要求するクライアントにインストールされているパッケージのバージョンと、リポジトリーの更新バージョンの違いのみが含まれます。デルタ RPM のダウンロードは、更新されたパッケージ全体をダウンロードするよりもはるかに高速であり、更新を大幅に高速化できます。デルタ RPM をダウンロードしたら、現在インストールされているパッケージに違いを適用して完全に更新されたパッケージを作成するために再構築する必要があります。このプロセスは、インストールマシンで CPU 時間を使用します。したがって、デルタ RPM の使用は、ネットワーク接続に依存する time-to-download と、CPU をバインドしている time-to-rebuild 間の危険性があります。presto プラグインの使用は、ネットワーク接続が遅い高速マシンやシステムに推奨されますが、非常に高速の接続では、通常の RPM パッケージをダウンロードすることで、非常に高速のマシン( presto )を無効にすることで多くの利点があります。
- product-id (subscription-manager)
- product-id プラグインは、コンテンツ配信ネットワークからインストールされた製品の製品アイデンティティー証明書を管理します。product-id プラグインはデフォルトでインストールされています。
- refresh-packagekit (PackageKit-yum-plugin)
- refresh-packagekit プラグインは、yum が実行されるたびに PackageKit のメタデータを更新します。refresh-packagekit プラグインはデフォルトでインストールされます。
- rhnplugin (yum-rhn-plugin)
- rhnplugin は、
RHN Classic
への接続に対応します。これにより、RHN Classic
に登録されたシステムは、このシステムからパッケージを更新し、インストールできます。RHN Classic
は、以前の Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux システム(Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux 4.x、Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;)に対してのみ提供されます。 Linux 5.x および Satellite 5.x は、それらを Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux 6 に移行するためのものです。rhnplugin はデフォルトでインストールされます。プラグインの詳細は、man ページの rhnplugin(8)を参照してください。 - セキュリティー (yum-plugin-security)
- セキュリティー更新に関する情報を検出し、これらを適用することは、すべてのシステム管理者にとって重要です。このため、Yum は セキュリティー プラグインを提供します。これは、高度なセキュリティー関連コマンド、サブコマンド、およびオプションのセットで 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 がバグ修正の更新としてリリースされました。
...then yum update-minimal --security により kernel-2.6.30.8-32 に更新され、yum update --security により kernel-2.6.30.8-64 が更新されます。システム管理者は、可能な限りパッケージを更新することで、update-minimal を使用してリスクを低減します。yum に追加されたセキュリティープラグインの拡張に関する詳細は、yum- security (8)man ページを参照してください。 - subscription-manager (subscription-manager)
- subscription-manager プラグインは、
Red Hat Network
への接続をサポートします。これにより、Red Hat Network
に登録したシステムが、証明書ベースのコンテンツ配信ネットワークからパッケージを更新およびインストールできます。subscription-manager プラグインはデフォルトでインストールされています。製品のサブスクリプションとエンタイトルメントを管理する方法は、6章システム登録およびサブスクリプション管理 を参照してください。 - yum-downloadonly (yum-plugin-downloadonly)
- yum-downloadonly プラグインは、
--downloadonly
コマンドラインオプションを提供します。このオプションを使用すると、パッケージをインストールせずに Red Hat Network または設定済みの Yum リポジトリーからパッケージをダウンロードできます。パッケージをインストールするには、「追加の 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
デフォルトでは、Red Hat Enterprise Linux のバリアントおよびアーキテクチャーに応じて、--downloadonly
オプションを使用してダウンロードしたパッケージは、/var/cache/yum
ディレクトリーのサブディレクトリーのいずれかに保存されます。パッケージを保存する代替ディレクトリーを指定する場合は、--downloaddir
オプションを--downloadonly
とともに渡します。~]# yum install --downloadonly --downloaddir=/path/to/directory httpd
注記yum-downloadonly プラグインの代わりに、パッケージをインストールせずにパッケージをダウンロードする代わりに、yum-utils パッケージが提供する yumdownloader ユーティリティーを使用できます。
8.6. その他のリソース
インストールされているドキュメント
yum
(8): yum コマンドラインユーティリティーの man ページには、サポートされるオプションおよびコマンドの完全なリストを提供します。yumdb
(8): yumdb コマンドラインユーティリティーの man ページでは、このツールを使用してクエリーを行い、必要な場合は yum データベースを変更する方法が説明されています。yum.conf
yum-utils
オンラインリソース
- yum Guides: プロジェクトのホームページの 『Yum Guides』 ページには、追加のドキュメントへのリンクがあります。
- Red Hat Access Labs: Red Hat Access Labs に 「Yum Repository Configuration Helper」 が含まれています。
その他の参考資料
第9章 PackageKit
9.1. ソフトウェア更新によるパッケージの更新
図9.1 通知エリアの PackageKit's アイコン

[D]
.rpm
接尾辞を引いたもの(CPU アーキテクチャーを含む)、パッケージの短い説明)とともに表示されます。通常、更新が提供する変更の短い説明です。インストールしたくない更新は、更新に対応するチェックボックスの選択を解除して、ここで選択解除できます。
図9.2 ソフトウェア更新による更新のインストール

[D]
更新間隔の設定
図9.3 PackageKit の更新チェック間隔の設定

[D]
9.2. ソフトウェアの追加/削除
図9.4 PackageKit's Add/Remove Software ウィンドウ

[D]
9.2.1. ソフトウェアソースの更新(Yum リポジトリー)
/etc/yum.conf
設定ファイルのすべての [repository] セクション、および /etc/yum.repos.d/
ディレクトリーにあるすべての リポジトリー.repo
ファイルで作成されるリポジトリー名が表示されます。name=<My Repository Name>
enabled=<1 or 0>
フィールドに対応します。チェックボックスをクリックすると、PackageKit は enabled= <1 または 0
> 行を正しい [repository] セクションに挿入します。存在しない場合は値を変更します。つまり、Software Sources ウィンドウでリポジトリーを有効または無効にすると、ウィンドウを閉じるか、またはシステムを再起動した後に変更が維持されます。
9.2.2. フィルターを使用したパッケージの検索
図9.5 インストール済みのパッケージのフィルタリング

[D]
lt;package_name> -devel
パッケージをすべて除外します。
図9.6 Find results 一覧から開発パッケージのフィルタリング

[D]
- GUI インターフェースを提供するアプリケーション()か、そうでないアプリケーションに検索を絞り込みます。このフィルターは、特定の機能を実行する GUI アプリケーションを確認する場合に便利です。
- 空きソフトウェアとして考慮されるパッケージを検索します。承認されたライセンスの詳細は、「 Fedora Licensing List 」を参照してください。
パッケージを確認し、<package>
; を検索すると、以下の関連パッケージが 結果から除外されます(存在する場合)。& lt;package> -devel
& lt;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 以外のシステムでは影響を受けません。
9.2.3. パッケージ(および依存関係)のインストールおよび削除
図9.7 PackageKit's Add/Remove Software ウィンドウを使用したパッケージの表示およびインストール

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

[D]
9.2.4. パッケージグループのインストールおよび削除
図9.9 Czech サポートパッケージグループのインストール

[D]
9.2.5. トランザクションログの表示
- date : トランザクションが実行された日付。
- アクション - トランザクション中に実行されたアクション( 更新パッケージや インストール されたパッケージ など)。
- 詳細: 更新され た、Installed、また は Removed などのトランザクションタイプと、影響を受けるパッケージの一覧が続きます。
- username: アクションを実行するユーザーの名前。
- アプリケーション: Update System などのアクションの実行に使用したフロントエンドアプリケーション。
図9.10 Software Log Viewer を使用したパッケージ管理トランザクションのログの表示

[D]
9.3. PackageKit Architecture
ウィンドウタイトル | 関数 | 開く方法 | shell コマンド |
---|---|---|---|
ソフトウェアの追加/削除 | パッケージ情報をインストール、削除、または表示します。 |
GNOME パネルの使用:
→ →
| gpk-application |
ソフトウェアの更新 | パッケージの更新の実行 |
GNOME パネルの使用:
→ →
| gpk-update-viewer |
ソフトウェアソース | Yum リポジトリーの有効化および無効化 |
ソフトウェアの 追加/削除: →
| gpk-repo |
Software Log Viewer | トランザクションログの表示 |
ソフトウェアの 追加/削除: 削除
| gpk-log |
ソフトウェア更新の設定 | PackageKit 設定の設定 | gpk-prefs | |
(通知エリアアラート) | 更新が利用可能になるとのアラート |
GNOME パネルから - Startup Programs タブ
→ → 、 | gpk-update-icon |
9.4. その他のリソース
インストールされているドキュメント
gpk-application(1)
: gpk-application コマンドに関する情報が含まれる man ページです。gpk-backend-status(1)
: gpk-backend-status コマンドに関する情報が含まれる man ページです。gpk-install-local-file(1)
: gpk-install-local-file コマンドに関する情報が含まれる man ページです。gpk-install-mime-type(1):
gpk-install-mime-type コマンドについての情報が含まれる man ページです。gpk-install-package-name(1)
: qpk-install-package-name コマンドに関する情報が含まれる man ページです。gpk-install-package-name(1)
: gpk-install-package-name コマンドに関する情報が含まれる man ページです。gpk-prefs(1):
gpk-prefs コマンドについての情報が含まれる man ページです。gpk-repo(1)
: gpk-repo コマンドに関する情報が含まれる man ページです。gpk-update-icon(1):
gpk-update-icon コマンドについての情報が含まれる man ページです。gpk-update-viewer(1):
gpk-update-viewer コマンドについての情報が含まれる man ページです。pkcon(1)
およびpkmon(1)
: PackageKit コンソールクライアントに関する情報が含まれる man ページ。pkgenpack(1)
: PackageKit Pack Generator に関する情報が含まれる man ページです。
オンラインドキュメント
- PackageKit ホームページ - PackageKit ホームページで、PackageKit ソフトウェアスイートに関する詳細情報が記載されます。
- PackageKit FAQ - PackageKit ソフトウェアスイートに関する Frequently Asked Questions に関する情報一覧。
その他の参考資料
- 8章Yum Yum(Red Hat パッケージマネージャー)について説明しています。
パート IV. ネットワーク
第10章 NetworkManager
DSL
および PPPoE
(イーサネット経由のPoint-to-Point over Ethernet)などの接続の種類を設定できます。また、NetworkManager は、ネットワークエイリアス、静的ルート、DNS 情報、VPN 接続、および多くの接続固有のパラメーターの設定を可能にします。最後に、NetworkManager は、D-Bus を介して豊富な API を提供します。これにより、アプリケーションはネットワーク設定と状態をクエリーし、制御できます。
root
で以下のコマンドを実行します。
~]# yum install NetworkManager
10.1. NetworkManager デーモン
root
権限で実行され、通常起動時に起動するように設定されています。NetworkManager デーモンが実行しているかどうかを確認するには、root
で次のコマンドを実行します。
~]# service NetworkManager status
NetworkManager (pid 1527) is running...
NetworkManager is stopped
を報告します。現行セッションで開始するには、以下を実行します。
~]# service NetworkManager start
~]# chkconfig NetworkManager on
10.2. NetworkManager との対話
図10.1 NetworkManager アプレットの状態

[D]
root
ではなく)実行してアプレットを起動できます。
~]$ nm-applet &
10.2.1. ネットワークへの接続
- 現在接続している分類されたネットワークの一覧(Wire red や Wirelessなど)
- NetworkManager が検出した 利用可能なネットワーク の一覧
- 設定済みの仮想プライベートネットワーク(VPN)への接続オプション、および
- 非表示ネットワークまたは新しいワイヤレスネットワークに接続するためのオプション。
図10.2 NetworkManager アプレットの左側のメニューで、利用可能かつ接続されたネットワークをすべて表示します。
10.2.2. 既存接続の設定および編集
~]$ nm-connection-editor &
図10.4 ネットワーク接続ウィンドウを使用したネットワークの設定

[D]
- 有線イーサネット接続は、「Wired(イーサネット)接続の確立」 に進みます。
- ワイヤレス接続、または 「ワイヤレス接続の確立」 に進みます。
- モバイルブロードバンド接続。「モバイルブロードバンド接続の確立」 に進みます。
- VPN 接続で、「VPN 接続の確立」 に進みます。
10.2.3. ネットワークの自動接続
手順10.1 検出時にネットワークに自動的に接続する NetworkManager の設定
- Notification Area の NetworkManager アプレットアイコンを右クリックし、Edit Connections をクリックします。ネットワーク接続 ウィンドウが表示されます。
- 必要に応じて矢印ヘッドをクリックして、接続の一覧を表示します。
- 設定する特定のコネクションを選択し、をクリックします。
- Connect を自動的 にチェックすると、NetworkManager が接続が利用可能であることを NetworkManager が検出されるたびに、NetworkManager が接続に自動接続できるようにします。NetworkManager が自動的に接続しない場合は、チェックボックスの選択を解除します。ボックスのチェックを外す場合は、NetworkManager アプレットの左側のメニューでその接続を手動で選択して、接続できるようにする必要があります。
10.2.4. ユーザーおよびシステム接続
root
権限が必要になる場合があります。NetworkManager のデフォルトポリシーを使用すると、ユーザーはユーザー接続を作成および変更できますが、システム接続を追加、変更、または削除するには root
権限が必要になります。
/etc/sysconfig/network-scripts/
ディレクトリー(主に ifcfg- <network_type
> インターフェース設定ファイル)に保存され、ユーザー接続設定は GConf 設定データベースと GNOME キーリングに保存され、作成したユーザーのログインセッションにのみ利用できます。したがって、デスクトップセッションからログアウトすると、ユーザー固有の接続が利用できなくなります。
root
以外のユーザーは、これらの接続を表示したり、アクセスしたりできません。
/etc/sysconfig/network-scripts/
ディレクトリーに関連するインターフェース設定ファイルを作成し、ユーザーのセッションから GConf 設定を削除します。逆に、システムをユーザー固有の接続に変換すると、NetworkManager はシステム全体の設定ファイルを削除し、対応する GConf/GNOME キーリング設定を作成します。
図10.5 すべてのユーザーが使用できる チェックボックスは、接続がユーザー固有か、またはシステム全体であるかを制御します。

[D]
手順10.2 System-Wide または Vice-Versa の代わりに接続をユーザー固有のものに変更
root
権限が必要になる場合があります。
- Notification Area の NetworkManager アプレットアイコンを右クリックし、Edit Connections をクリックします。ネットワーク接続 ウィンドウが表示されます。
- 必要に応じて、矢印ヘッド(左側上)を選択して非表示にし、利用可能なネットワーク接続の種類を表示します。
- 設定する特定のコネクションを選択し、をクリックします。
- Available to all users チェックボックスをチェックして、NetworkManager にシステム全体の接続させるように要求します。システムポリシーによっては、PolicyKit アプリケーションによって
root
パスワードの入力が求められます。その場合は、root
パスワードを入力して変更の最終処理を行います。逆に、Available to all users チェックボックスの選択を解除して、接続ユーザー固有のものにします。
10.3. 接続の確立
10.3.1. Wired(イーサネット)接続の確立
~]$ nm-connection-editor &
図10.6 新規作成したシステム eth0 接続を示す Network Connections ウィンドウ

[D]
図10.7 「Choose a Connection Type」リストから新しい接続タイプの選択

[D]
図10.8 新規作成した Wired 接続システム eth0 の編集

[D]
接続名、自動接続の動作、可用性の設定
- 接続名: ネットワーク接続の名前を入力します。この名前は、Network Connections ウィンドウの Wired セクションでこの接続を一覧表示するために使用されます。
- Connect automatically - NetworkManager が利用可能なときにこの接続に自動接続する場合は、このボックスにチェックを付けます。詳細は、「ネットワークの自動接続」 を参照してください。
- すべてのユーザーが使用 - このボックスにチェックを入れて、システム上のすべてのユーザーが利用可能な接続を作成します。この設定を変更するには、
root
権限が必要になる場合があります。詳しくは、「ユーザーおよびシステム接続」 を参照してください。
Wired タブの設定
automatic
に設定できます。有線接続を 2 つまたは特定の NIC に関連付けるか、または高度なネットワークを実行していない限り、これらのデフォルト設定で十分です。このような場合は、以下の説明を参照してください。
- MAC Address
- ネットワークインターフェースカード(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 つのシステムに 1 つ以上の NIC をインストールできます。したがって、MAC アドレス フィールドを使用すると、特定の NIC を特定の接続(または接続)に関連付けることができます。説明したように、ip addr コマンドを使用して MAC アドレスを判別し、その値を MAC アドレス の text-entry フィールドにコピーして貼り付けます。このような状況で使用するクローンされた MAC アドレスフィールドは、ネットワークサービスが特定の MAC アドレスに制限されているため、その MAC アドレスをエミュレートする必要があります。 - MTU
- MTU(Maximum Transmission Unit)の値は、接続が送信に使用する最大パケットのサイズ(バイト単位)を表します。IPv6 に IPv4 または変数名
1500
以上を使用する場合、この値はデフォルトで1280
に設定されるため、通常は指定したり変更したりする必要はありません。
新規 (または修正した) 接続を保存して他の設定を行う
- ポートベースのネットワークアクセス制御(PNAC)をクリックし、802.1X Security タブをクリックして 「802.1X セキュリティーの設定」 に進みます。
- 接続の IPv4 設定、IPv4 設定 タブをクリックして、「IPv4 設定の構成」 に進んでください。
- 接続の IPv6 設定、IPv6 設定 タブをクリックして、「IPv6 セッティングの設定」 に進みます。
10.3.2. ワイヤレス接続の確立
利用可能なアクセスポイントへの迅速な接続
図10.9 ワイヤレスアクセスポイントへの認証

[D]
図10.10 ワイヤレス接続シグナルの強度が 75% を示すアプレットアイコン

[D]
Auto <SSID>
です。SSID はアクセスポイント のサービスセット識別子 です。
図10.11 以前に接続されていたアクセスポイントの例

[D]
非表示のネットワークへの接続
接続の編集または新規作成
Auto
に続くキーワードはアクセスポイントの SSID を参照)、Edit をクリックします。
- Notification Area の NetworkManager アプレットアイコンを右クリックし、Edit Connections をクリックします。ネットワーク接続 ウィンドウが表示されます。
- 一覧から Wireless エントリーを選択します。
図10.12 新規作成されたワイヤレス接続 1 の編集

[D]
接続名、自動接続の動作、可用性の設定
- 接続名: ネットワーク接続の名前を入力します。この名前は、Network Connections ウィンドウの Wireless セクションでこの接続を一覧表示するために使用されます。デフォルトでは、ワイヤレス接続の名前はワイヤレスアクセスポイントの SSID と同じです。接続機能に影響を与えることなくワイヤレス接続の名前を変更できますが、SSID 名を保持することが推奨されます。
- Connect automatically - NetworkManager が利用可能なときにこの接続に自動接続する場合は、このボックスにチェックを付けます。詳細は、「ネットワークの自動接続」 を参照してください。
- すべてのユーザーが使用 - このボックスにチェックを入れて、システム上のすべてのユーザーが利用可能な接続を作成します。この設定を変更するには、
root
権限が必要になる場合があります。詳しくは、「ユーザーおよびシステム接続」 を参照してください。
ワイヤレスタブの設定
- SSID
- すべてのアクセスポイントには、サービスセット識別子 で特定できます。ただし、アクセスポイントはその SSID をブロードキャストしないように設定されていることがあります。この場合は非表示となり、NetworkManager の利用可能なネットワーク一覧には表示されなくなります。SSID(および認証シークレット)を知っている限り、SSID を隠しているワイヤレスアクセスポイントに接続できます。非表示のワイヤレスネットワークへの接続方法は、「非表示のネットワークへの接続」 を参照してください。
- モード
- infrastructure: 専用のワイヤレスアクセスポイントに接続する場合、またはルーターやスイッチなどのネットワークデバイスに構築されたインフラストラクチャーの場合は、Mode を に設定します。アドホック: 2 つ以上のモバイルデバイス間で直接通信するようにピアツーピアネットワークを作成する場合は、Mode を に設定します。802.11 標準で Independent Basic Service Set (IBSS)と呼ばれる モードを使用する場合は、参加するすべてのワイヤレスデバイスに同じ SSID を設定し、それらすべてが同じチャンネルで通信されるようにする必要があります。
- BSSID
- Basic Service Set Identifier(BSSID)は、インフラストラクチャー モードで接続する特定のワイヤレスアクセスポイントの MAC アドレスです。このフィールドはデフォルトで空白になっており、BSSID を指定せずに SSID でワイヤレスアクセスポイントに接続できます。BSSID を指定している場合は、システムによる特定のアクセスポイントのみへの関連付けが強制的に実行されます。アドホックネットワークが作成されると、BSSID は、アドホックネットワークの作成時に
mac80211
サブシステムによって無作為に生成されます。これは 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 アドレス の text-entry フィールドにコピーして貼り付けます。 - MTU
- MTU(Maximum Transmission Unit)の値は、接続が送信に使用する最大パケットのサイズ(バイト単位)を表します。 ゼロ以外の数値を設定すると、指定されたサイズのパケットまたは小さいパケットのみが送信されます。より大きなパケットは複数のイーサネットフレームに分割されます。この設定は、のままにすることが推奨されます。
新規 (または修正した) 接続を保存して他の設定を行う
- ワイヤレス接続のセキュリティー認証。ワイヤレスセキュリティー タブを クリックし て、「ワイヤレスセキュリティーの設定」 に進みます。
- 接続の IPv4 設定、IPv4 設定 タブをクリックして、「IPv4 設定の構成」 に進んでください。
- 接続の IPv6 設定、IPv6 設定 タブをクリックして、「IPv6 セッティングの設定」 に進みます。
10.3.3. モバイルブロードバンド接続の確立
- 2g - GPRS (一般パケット通信サービス)または EDGE (GSM Evolution 用のデータレートの強化)
- 3g - UMTS (Universal Mobile Telecommunications System)または HSPA (High Speed Packet Access)
手順10.3 新しいモバイルブロードバンド接続の追加
- Notification Area の NetworkManager アプレットアイコンを右クリックし、Edit Connections をクリックします。ネットワーク接続 ウィンドウが表示されます。
- Mobile Broadband を選択し、Create クリックします。Set up a Mobile Broadband Connection Assistant が表示されます。ボタンをクリックして選択リストを開きます。
- このモバイルブロードバンドデバイス用の接続を作成 の下で、その接続で使用する 2G または 3G に対応したデバイスを選択します。ドロップダウンメニューが非アクティブの場合、これはシステムがモバイルブロードバンドが可能なデバイスを検出できなかったことを示します。この状況では、キャンセル をクリックして、モバイルブロードバンドの機能を持ったデバイスが接続されており、それがコンピューターに認識されていることを確認してください。Forward ボタンをクリックします。
- 一覧からサービスプロバイダーが置かれている国を選択し、forward ボタンをクリックします。
- 一覧からプロバイダーを選択するか、手動で入力します。Forward ボタンをクリックします。
- ドロップダウンメニューから支払い計画を選択し、Access Point Name (APN)が正しいことを確認します。Forward ボタンをクリックします。
- 設定を確認して、適用 ボタンをクリックします。
- の手順に従って、モバイルブロードバンド固有の設定を編集します。これには、の下の Mobile Broadband タブ の説明を参照し、モバイルブロードバンド固有の設定を編集します。
手順10.4 既存のモバイルブロードバンド接続を編集する
- Notification Area の NetworkManager アプレットアイコンを右クリックし、Edit Connections をクリックします。ネットワーク接続 ウィンドウが表示されます。
- 編集する接続を選択して、編集 ボタンをクリックします。
- Mobile Broadband タブを選択します。
- 接続名、自動接続の動作、および可用性のセッティングを設定します。編集ダイアログの 3 つの設定は、すべての接続タイプに共通します。
- 接続名: ネットワーク接続の名前を入力します。この名前は、Network Connections ウィンドウの Mobile Broadband セクションでこの接続を一覧表示するために使用されます。
- Connect automatically - NetworkManager が利用可能なときにこの接続に自動接続する場合は、このボックスにチェックを付けます。詳細は、「ネットワークの自動接続」 を参照してください。
- すべてのユーザーが使用 - このボックスにチェックを入れて、システム上のすべてのユーザーが利用可能な接続を作成します。この設定を変更するには、
root
権限が必要になる場合があります。詳しくは、「ユーザーおよびシステム接続」 を参照してください。
- の手順に従って、モバイルブロードバンド固有の設定を編集します。これには、の下の Mobile Broadband タブ の説明を参照し、モバイルブロードバンド固有の設定を編集します。
新規 (または修正した) 接続を保存して他の設定を行う
- 接続のポイントツーポイント設定をクリックして、PPP Settings タブをクリックし、「PPP (ポイントツーポイント) セッティングの設定」 に進みます。
- 接続の IPv4 設定、IPv4 設定 タブをクリックして、「IPv4 設定の構成」 に進んでください。
- 接続の IPv6 設定、IPv6 設定 タブをクリックして、「IPv6 セッティングの設定」 に進みます。
モバイルブロードバンドタブの設定
- 数値
- GSM ベースのモバイルブロードバンドネットワークでの PPP 接続を確立するためにダイアルする番号です。このフィールドは、ブロードバンドデバイスの初期インストールの際に自動設定されている場合があります。通常、このフィールドは空白で残し、代わりに APN を記入します。
- Username
- ネットワークでの認証に使用するユーザー名を記入します。一部のプロバイダーは、ユーザー名を提供しないことや、ネットワーク接続の時点でユーザー名を受け付けたりすることがあります。
- Password
- ネットワークで認証に使用するパスワードを記入します。一部のプロバイダーはパスワードを提供しなかったり、またはすべてのパスワードを受け付けたりします。
- APN
- GSM ベースのネットワークとの接続を確立するために使用する Access Point Name (APN) を記入します。これは以下の項目を決定するので、正しい APN を記入することが重要になります。
- ネットワーク使用率についてユーザーが請求する方法、またはその両方
- ユーザーがインターネット、イントラネット、サブネットワークにアクセスできるかどうか。
- ネットワーク ID
- ネットワーク ID を記入すると、NetworkManager は強制的にデバイスが特定のネットワークのみに登録されるようにします。これにより、ローミングを直接に制御できない時に接続がローミングしないようにします。
- Type
- Any: デフォルト値の Any では、モデムが最速のネットワークを選択します。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 をロック解除する必要があります。
10.3.4. VPN 接続の確立
- ルーティングおよび認証目的で 認証ヘッダー を追加します。
- パケットデータを暗号化します。
- データを暗号化および処理手順を構成する Encapsulating Security Payload(ESP)で囲みます。
手順10.5 新しい VPN 接続の追加
- Network Connections ウィンドウを開き、 ボタンをクリックして、新しい接続リストの VPN セクションから VPN の種類を選択すると、新しい VPN 接続を設定できます。
- Notification Area の NetworkManager アプレットアイコンを右クリックし、Edit Connections をクリックします。ネットワーク接続 ウィンドウが表示されます。
- 接続の種類の選択 が表示されます。
- VPN プラグインが必要です。設定する VPN タイプに適した NetworkManager VPN プラグインがインストールされている必要があります(Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 に新しいパッケージをインストールする方法は 「パッケージのインストール」 を参照してください)。適切なプラグインがインストールされてい ない 場合は、Choose a Connection Type リストの VPN セクションは表示されません。
- Choose a Connection Type リストから、接続しているゲートウェイの VPN プロトコルを選択します。一覧の選択に使用できる VPN プロトコルは、インストールされている NetworkManager VPN プラグインに対応します。たとえば、NetworkManager-openswan の場合、libreswan 用の NetworkManager VPN プラグインがインストールされていると、IPsec ベースの VPN は Choose a Connection Type 一覧から選択可能です。注記Red Hat Enterprise Linux 6.8 では、openswan は libreswan で廃止されました。NetworkManager-openswan openswan と libreswan の両方をサポートするように変更されました。正しいものを選択したら、ボタンを押します。
- Editing VPN Connection 1 ウインドウが表示されます。このウィンドウでは、ステップ 6 で選択した VPN 接続のタイプにカスタマイズされた設定が表示されます。
手順10.6 既存の VPN 接続を編集する
- Notification Area の NetworkManager アプレットアイコンを右クリックし、Edit Connections をクリックします。ネットワーク接続 ウィンドウが表示されます。
- 編集する接続を選択して、編集 ボタンをクリックします。
図10.13 新規作成された IPsec VPN 接続 1 の編集

[D]
接続名、自動接続の動作、可用性の設定
- 接続名: ネットワーク接続の名前を入力します。この名前は、Network Connections ウィンドウの VPN セクションでこの接続を一覧表示するために使用されます。
- Connect automatically - NetworkManager が利用可能なときにこの接続に自動接続する場合は、このボックスにチェックを付けます。詳細は、「ネットワークの自動接続」 を参照してください。
- すべてのユーザーが使用 - このボックスにチェックを入れて、システム上のすべてのユーザーが利用可能な接続を作成します。この設定を変更するには、
root
権限が必要になる場合があります。詳しくは、「ユーザーおよびシステム接続」 を参照してください。
VPN タブの設定
- ゲートウェイ
- リモート VPN ゲートウェイの名前または IP アドレス。
- グループ名
- リモートゲートウェイで設定された VPN グループ名です。
- ユーザーパスワード
- 必要に応じて、VPN での認証に使用するパスワードを入力します。
- グループパスワード
- 必要に応じて、VPN での認証に使用するパスワードを入力します。
- ユーザー名
- 必要に応じて、VPN での認証に使用するユーザー名を入力します。
- フェーズ1 アルゴリズム
- 必要な場合は、暗号化チャンネルの認証および設定で使用するアルゴリズムを入力します。
- フェーズ2 アルゴリズム
- 必要な場合は、IPsec ネゴシエーションに使用するアルゴリズムを入力します。
- ドメイン
- 必要な場合は、ドメイン名を入力します。
- NAT トラバーサル
- Disable Dead Peer Detection - プローブのリモートゲートウェイまたはエンドポイントへの送信を無効にします。
新規 (または修正した) 接続を保存して他の設定を行う
- 接続の IPv4 設定、IPv4 設定 タブをクリックして、「IPv4 設定の構成」 に進みます。
10.3.5. DSL 接続の確立
手順10.7 新しい DSL 接続の追加
- Notification Area の NetworkManager アプレットアイコンを右クリックし、Edit Connections をクリックします。ネットワーク接続 ウィンドウが表示されます。
- 接続の種類の選択 が表示されます。
- DSL を選択し、 ボタンを押します。
- DSL 接続 1 の編集 ウィンドウが表示されます。
手順10.8 既存の DSL 接続を編集する
- Notification Area の NetworkManager アプレットアイコンを右クリックし、Edit Connections をクリックします。ネットワーク接続 ウィンドウが表示されます。
- 編集する接続を選択して、編集 ボタンをクリックします。
接続名、自動接続の動作、可用性の設定
- 接続名: ネットワーク接続の名前を入力します。この名前は、Network Connections ウィンドウの DSL セクションでこの接続を一覧表示するために使用されます。
- Connect automatically - NetworkManager が利用可能なときにこの接続に自動接続する場合は、このボックスにチェックを付けます。詳細は、「ネットワークの自動接続」 を参照してください。
- すべてのユーザーが使用 - このボックスにチェックを入れて、システム上のすべてのユーザーが利用可能な接続を作成します。この設定を変更するには、
root
権限が必要になる場合があります。詳しくは、「ユーザーおよびシステム接続」 を参照してください。
DSL タブの設定
- Username
- サービスプロバイダー認証で使用するユーザー名を入力します。
- サービス
- 指示がない限り、空白のままにします。
- パスワード
- サービスプロバイダーから提供されたパスワードを入力します。
新規 (または修正した) 接続を保存して他の設定を行う
- MAC アドレスと MTU の設定で Wired タブをクリックして、「Wired タブの設定」 に進みます。
- 接続のポイントツーポイント設定をクリックして、PPP Settings タブをクリックし、「PPP (ポイントツーポイント) セッティングの設定」 に進みます。
- 接続の IPv4 設定、IPv4 設定 タブをクリックして、「IPv4 設定の構成」 に進みます。
10.3.6. ボンド接続の確立
_BOND_VLAN_ENABLED
ディレクティブで有効にしてから、NetworkManager を再起動する必要があります。NM_CONTROLLED
および NM_BOND_VLAN_ENABLED
ディレクティブの説明は、「イーサネットインターフェース」 を参照してください。コマンドラインから NetworkManager などのサービスを再起動する方法は、「サービスの再開」 を参照してください。また、グラフィカルツールの場合は、「Service 設定ユーティリティーの使用」 を参照してください。
手順10.9 新しいボンド接続の追加
- Notification Area の NetworkManager アプレットアイコンを右クリックし、Edit Connections をクリックします。ネットワーク接続 ウィンドウが表示されます。
- Bond を選択し、 をクリックします。ボンド接続 1 の編集 ウィンドウが表示されます。ボタンをクリックして選択リストを開きます。
- Bond タブで をクリックし、このボンド接続で使用するインターフェースのタイプを選択します。 ボタンをクリックします。スレーブタイプを選択するダイアログが表示されるのは、最初のスレーブを作成する時のみです。その後は、すべてのスレーブに同じタイプが自動的に使われます。
- bond0 スレーブ 1 の編集 ウィンドウが表示されます。ボンディングする最初のインターフェースの MAC アドレスを入力します。最初のスレーブの MAC アドレスがボンドインターフェース用の MAC アドレスとして使用されます。必要な場合は、ボンドの MAC アドレスとして使用するクローンした MAC アドレスを入力します。 ボタンをクリックします。
- Authenticate ウインドウが表示されます。続行するには
root
パスワードを入力します。 ボタンをクリックします。 - ボンディングスレーブの名前が Bonded Connections ウィンドウ に表示されます。 ボタンをクリックしてさらにスレーブ接続を追加します。
- 設定を確認して、適用 ボタンをクリックします。
- 以下の 「Bond タブの設定」 に移動して、ボンディング固有の設定を編集します。
図10.14 新規作成したボンディング接続 1 の編集

[D]
手順10.10 既存のボンド接続を編集する
- Notification Area の NetworkManager アプレットアイコンを右クリックし、Edit Connections をクリックします。ネットワーク接続 ウィンドウが表示されます。
- 編集する接続を選択して、編集 ボタンをクリックします。
- Bond タブを選択します。
- 接続名、自動接続の動作、および可用性のセッティングを設定します。編集ダイアログの 3 つの設定は、すべての接続タイプに共通します。
- 接続名: ネットワーク接続の名前を入力します。この名前は、Network Connections ウィンドウの Bond セクションでこの接続を一覧表示するために使用されます。
- Connect automatically - このチェックボックスを選択すると、NetworkManager が利用可能なときにこの接続に自動接続します。詳細は、「ネットワークの自動接続」 を参照してください。
- Available to all users - このボックスを選択すると、システムですべてのユーザーが利用できる接続が作成されます。この設定を変更するには、
root
権限が必要になる場合があります。詳しくは、「ユーザーおよびシステム接続」 を参照してください。
- 以下の 「Bond タブの設定」 に移動して、ボンディング固有の設定を編集します。
新規 (または修正した) 接続を保存して他の設定を行う
- 接続の IPv4 設定、IPv4 設定 タブをクリックして、「IPv4 設定の構成」 に進んでください。
- 接続の IPv6 設定、IPv6 設定 タブをクリックして、「IPv6 セッティングの設定」 に進みます。
Bond タブの設定
- モード
- ボンドを構成するスレーブ接続でのトラフィック共有に使われるモード。デフォルトは、ラウンドロビン です。
802.3ad
などの他の負荷分散モードは、ドロップダウンリストから選択することができます。 - リンク監視
- ネットワークトラフィックを伝送するスレーブの能力を監視する方法。
- ラウンドロビン
- 耐障害性とロードバランシングにラウンドロビンポリシーを設定します。利用可能な最初のインターフェースからそれぞれのボンディングされたスレーブインターフェースで送受信が順次行われます。このモードは、仮想マシンのブリッジの背後では追加のスイッチ設定がないと機能しない可能性があります。
- アクティブバックアップ
- 耐障害性のためアクティブなバックアップポリシーを設定します。ボンディングインターフェースの中で最初に利用可能になったものから送受信が行われます。別のボンディングされたスレーブインターフェースは、アクティブなボンディングされたスレーブインターフェースが失敗した場合にのみ使用されます。これは、InfiniBand デバイスのボンドで利用可能な唯一のモードです。
- XOR
- XOR (排他的理論和) を設定します。送受信は選択されたハッシュポリシーに基づいて行われます。デフォルトでは、ハッシュはソースの XOR とスレーブインターフェース数による剰余で宛先 MAC アドレスを掛けて導き出します。このモードでは、宛先が特定のピアになっているトラフィックは常に同一インターフェースで送信されます。宛先は MAC アドレスで決められるので、この方法は同一リンクまたはローカルネットワーク上にあるピアが宛先のトラフィックに最適なものです。トラフィックが単一ルーターを通過する必要がある場合は、このトラフィックバランスのモードは最適ではなくなります。
- ブロードキャスト
- 耐障害性にブロードキャストポリシーを設定します。すべての送信は、すべてのスレーブインターフェースで行われます。このモードは、仮想マシンのブリッジの背後では追加のスイッチ設定がないと機能しない可能性があります。
- 802.3ad
- IEEE
802.3ad
動的リンクアグリゲーションのポリシーを設定します。同一の速度とデュプレックス設定を共有するアグリゲーショングループを作成します。アクティブなアグリゲーターのすべてのスレーブで送受信を行います。802.3ad
に対応するネットワークスイッチが必要です。 - 適応送信のロードバランシング
- 耐障害性とロードバランシングのための適応型送信ロードバランシング (TLB) ポリシーを設定します。発信トラフィックは、各スレーブインターフェースの現在の負荷に従って分散されます。受信トラフィックは、現在のスレーブにより受信されます。受信しているスレーブが失敗すると、別のスレーブが失敗したスレーブの MAC アドレスを引き継ぎます。このモードは、カーネルボンディングモジュールが認識しているローカルアドレスにのみ、適したものになります。このため、仮想マシンのブリッジの背後では使用できません。
- 適応ロードバランス
- 耐障害性とロードバランシングに適応型ロードバランシング (ALB) ポリシーを設定します。
IPv4
トラフィック用の送受信ロードバランシングが含まれます。ARP
ネゴシエーションにより、受信ロードバランシングが可能です。このモードは、カーネルボンディングモジュールが認識しているローカルアドレスにのみ、適したものになります。このため、仮想マシンのブリッジの背後では使用できません。
- MII (Media Independent Interface)
- インターフェースのキャリア波の状態を監視します。実行方法は、ドライバーへのクエリー、MII レジスターへの直接クエリー、ethtool を使ったデバイスへのクエリーがあります。利用可能な 3 つのオプションは以下のとおりです。
- 監視周期
- ドライバーもしくはMII レジスターへのクエリーの間隔時間 (ミリ秒単位)
- 接続遅延
- up とレポートされたリンクの使用を試みるまでの待機時間 (ミリ秒単位)。リンクが 「up」 とレポートされてからすぐに余計な
ARP
リクエストが失われた場合に、この遅延は使用できます。これが発生するのは、たとえばスイッチ初期化などの間です。 - 接断遅延
- これまでアクティブだったリンクが「down」とレポートされた際に、別のリンクに変更するまでの待ち時間 (ミリ秒単位)。アタッチされたスイッチがバックアップモードに変更するまで比較的長い時間がかかる場合に、この遅延は使用できます。
- ARP
- アドレス解決プロトコル (
ARP
) は、1 つ以上のピアにプローブしてリンク層接続の動作具合を判断するために使用されます。これは、送信開始時間および最終受信時間を提供しているデバイスドライバーに依存しています。以下の 2 つのオプションがあります。- 監視周期
ARP
リクエストを送信する間隔時間 (ミリ秒単位)。- ARP ターゲット
ARP
リクエスト送信先のIP
アドレスのコンマ区切り。
10.3.7. VLAN 接続の確立
手順10.11 新しい VLAN 接続の追加
- Notification Area の NetworkManager アプレットアイコンを右クリックし、Edit Connections をクリックします。ネットワーク接続 ウィンドウが表示されます。
- VLAN を選択し、 をクリックします。VLAN Connection 1の 編集 ウィンドウが表示されます。ボタンをクリックして選択リストを開きます。
- VLAN タブで、VLAN 接続に使用する親インターフェースをドロップダウンリストから選びます。
- VLAN ID を入力します。
- VLAN インターフェース名を入力します。これは、作成される VLAN インターフェースの名前です。たとえば、「eth0.1」または「vlan2"」などです。通常、これは親インターフェース名に「.」および VLAN ID を加えたか、または VLAN ID を加えた「vlan」のいずれかです。
- 設定を確認して、適用 ボタンをクリックします。
- の VLAN タブの説明を参照して、VLAN 固有の設定を 編集します。
手順10.12 既存の VLAN 接続を編集する
- Notification Area の NetworkManager アプレットアイコンを右クリックし、Edit Connections をクリックします。ネットワーク接続 ウィンドウが表示されます。
- 編集する接続を選択して、編集 ボタンをクリックします。
- VLAN タブを選択します。
- 接続名、自動接続の動作、および可用性のセッティングを設定します。編集ダイアログの 3 つの設定は、すべての接続タイプに共通します。
- 接続名: ネットワーク接続の名前を入力します。この名前は、ネットワーク 接続 ウィンドウの VLAN セクションでこの接続を一覧表示するために使用されます。
- Connect automatically - NetworkManager が利用可能なときにこの接続に自動接続する場合は、このボックスにチェックを付けます。詳細は、「ネットワークの自動接続」 を参照してください。
- すべてのユーザーが使用 - このボックスにチェックを入れて、システム上のすべてのユーザーが利用可能な接続を作成します。この設定を変更するには、
root
権限が必要になる場合があります。詳しくは、「ユーザーおよびシステム接続」 を参照してください。
- の VLAN タブの説明を参照して、VLAN 固有の設定を 編集します。
新規 (または修正した) 接続を保存して他の設定を行う
- 接続の IPv4 設定、IPv4 設定 タブをクリックして、「IPv4 設定の構成」 に進みます。
VLAN タブの設定
- 親インターフェース
- ドロップダウンリストから以前に設定したインターフェースを選択できます。
- VLAN ID
- VLAN ネットワークのトラフィックのタグ付けに使用する ID 番号。
- VLAN インターフェース名
- 作成される VLAN インターフェースの名前。たとえば、「eth0.1」または「vlan2"」などです。
- クローンした MAC アドレス
- VLAN インターフェースの特定に使用する別の MAC アドレスをオプションで設定します。このアドレスを使って、この VLAN 上で送信されたパケットのソース MAC アドレスを変更することができます。
- MTU
- VLAN 接続で送信されるパケットに使用する最大転送単位 (MTU) のサイズをオプションで設定します。
10.3.8. IPoIB(IP-over-InfiniBand)接続の確立
手順10.13 新しい InfiniBand 接続の追加
- Notification Area の NetworkManager アプレットアイコンを右クリックし、Edit Connections をクリックします。ネットワーク接続 ウィンドウが表示されます。
- InfiniBand を選択し、 をクリックします。Editing InfiniBand Connection 1 ウインドウが表示されます。ボタンをクリックして選択リストを開きます。
- InfiniBand タブで、InfiniBand 接続に使用するトランスポートモードをドロップダウンリストから選びます。
- InfiniBand MAC アドレスを入力します。
- 設定を確認して、適用 ボタンをクリックします。
- の手順に従って、InfiniBand タブの設定を参照して、InfiniBand 固有の設定を 編集します。
図10.15 新規作成した InfiniBand 接続 1 の編集

[D]
手順10.14 既存の InfiniBand 接続を編集する
- Notification Area の NetworkManager アプレットアイコンを右クリックし、Edit Connections をクリックします。ネットワーク接続 ウィンドウが表示されます。
- 編集する接続を選択して、編集 ボタンをクリックします。
- InfiniBand タブを選択します。
- 接続名、自動接続の動作、および可用性のセッティングを設定します。編集ダイアログの 3 つの設定は、すべての接続タイプに共通します。
- 接続名: ネットワーク接続の名前を入力します。この名前は、Network Connections ウィンドウの InfiniBand セクションでこの接続を一覧表示するために使用されます。
- Connect automatically - NetworkManager が利用可能なときにこの接続に自動接続する場合は、このボックスにチェックを付けます。詳細は、「ネットワークの自動接続」 を参照してください。
- すべてのユーザーが使用 - このボックスにチェックを入れて、システム上のすべてのユーザーが利用可能な接続を作成します。この設定を変更するには、
root
権限が必要になる場合があります。詳しくは、「ユーザーおよびシステム接続」 を参照してください。
- の手順に従って、InfiniBand タブの設定を参照して、InfiniBand 固有の設定を 編集します。
新規 (または修正した) 接続を保存して他の設定を行う
- 接続の IPv4 設定、IPv4 設定 タブをクリックして、「IPv4 設定の構成」 に進んでください。
- 接続の IPv6 設定、IPv6 設定 タブをクリックして、「IPv6 セッティングの設定」 に進みます。
InfiniBand タブの設定
- トランスポートモード
- ドロップダウンリストから、Datagram または Connected モードを選択できます。他の IPoIB ネットワークで使用しているモードと同じものを選びます。
- Device MAC アドレス
- InfiniBand ネットワークのトラフィックで使用される InfiniBand 対応デバイスの MAC アドレスです。InfiniBand ハードウェアがインストールされていれば、このハードウェアのアドレスフィールドは事前に記入されます。
- MTU
- InfiniBand 接続で送信されるパケットに使用する最大転送単位 (MTU) のサイズをオプションで設定します。
10.3.9. 接続設定の構成
10.3.9.1. 802.1X セキュリティーの設定
手順10.15 有線接続の場合...
- 次に 802.1X Security タブを選択し、この接続に 802.1X セキュリティーを使用 して設定を有効にします。
手順10.16 ワイヤレス接続の場合...
- ワイヤレスセキュリティー タブを 選択します。
- 次に Security ドロップダウンメニューをクリックし、 、 のセキュリティーメソッドのいずれかを選択します。
- セキュリティードロップダウンでの選択に対応する EAP タイプの説明は、「TLS(Transport Layer Security)の設定」 を参照 し てください。
10.3.9.1.1. TLS(Transport Layer Security)の設定
- アイデンティティー
- ユーザー名やログイン名などの EAP 認証方法の ID 文字列。
- ユーザー証明書
- クリックしてユーザーの証明書を参照し、選択します。
- CA 証明書
- クリックしてブラウズし、認証局 (CA) の証明書を選択します。
- 秘密鍵
- クリックして、ユーザーの秘密鍵ファイルを参照し、選択します。鍵はパスワードで保護される必要があることに注意してください。
- 秘密鍵のパスワード
- ユーザーの秘密鍵に対応するユーザーパスワードを入力します。
10.3.9.1.2. Tunneled TLS の設定
- Anonymous identity
- この値は、非暗号化 ID として使用されます。
- CA 証明書
- クリックしてブラウズし、認証局 (CA) の証明書を選択します。
- Inner authentication
- Username
- 認証プロセスで使用するユーザー名を入力します。
- Password
- 認証プロセスで使用するパスワードを入力します。
10.3.9.1.3. Protected EAP (PEAP) の設定
- Anonymous Identity
- この値は、非暗号化 ID として使用されます。
- CA 証明書
- クリックしてブラウズし、認証局 (CA) の証明書を選択します。
- PEAP version
- 使用する、保護された EAP のバージョン。Automatic、0、1 のいずれか。
- Inner authentication
- Username
- 認証プロセスで使用するユーザー名を入力します。
- Password
- 認証プロセスで使用するパスワードを入力します。
10.3.9.2. ワイヤレスセキュリティーの設定
- セキュリティー
- パスワード
- 認証プロセスで使用するパスワードを入力します。
図10.16 ワイヤレスセキュリティータブの編集および WPA プロトコルの選択

[D]
10.3.9.3. PPP (ポイントツーポイント) セッティングの設定
- メソッドの設定
- MPPE (ポイントツーポイント暗号化) を使用
- Microsoft Point-To-Point Encryption Protocol(RFC 3078)
- BSD データ圧縮を許可する
- PP BSD 圧縮プロトコル(RFC 1977)
- Deflate データ圧縮を許可する
- PP デフレートプロトコル(RFC 1979)
- TCP ヘッダー圧縮を使用
- 低速度シリアル番号(RFC 1144)の TCP/IP ヘッダーの圧縮。
- PPP echo のパケットを送信
- ループバックテスト用の LCP Echo-Request および Echo-Reply Code(RFC 1661)
10.3.9.4. IPv4 設定の構成
図10.17 IPv4 設定タブの編集

[D]
メソッドの設定
接続の種類別で利用可能な IPv4 方式
- 方法
- DHCP クライアント ID フィールドの記入は必要ありません。- 接続しているネットワークが DHCP サーバーを使用して IP アドレスを割り当てる場合は、このオプションを選択します。
- 有線、ワイヤレス、DSL 接続の方式
- モバイルブロードバンド接続の方式
- VPN 接続の方式
- DSL 接続の方式
PPPoE 固有の設定手順
- その接続の nm-connection-editor に MAC アドレスを入力します。必要に応じて、システムの起動時 にユーザーのログインを必要とせずに、自動的に Connect と Available をすべて のユーザーが接続して接続を確立します。
- 以下のように、
/etc/NetworkManager/system-connections/
でその接続に適切なファイルの [802-3-ethernet] セクションに hardware-address を設定します。[802-3-ethernet] mac-address=00:11:22:33:44:55
/etc/NetworkManager/system-connections/
にファイルが存在 「するのは、すべてのユーザーが使用でき」 ることを意味します。システムの起動後にユーザーログインを必要とせずに接続を起動する [connection] セクションにautoconnect=true
が表示されていることを確認します。
10.3.9.5. IPv6 セッティングの設定
- 方法
- アドレス
10.3.9.6. ルートの作成
図10.18 静的ルートの設定

[D]
- アドレス
- アドレス: ネットワーク、サブネット、またはホストの IP アドレスnetmask入力した IP アドレスのネットマスクまたはプレフィックス長。ゲートウェイ - ネットワーク、サブネット、またはホストにつながるゲートウェイの IP アドレス。
- 自動的に取得したルートを無視します。
- このチェックボックスを選択すると、この接続に手動で入力したルートのみを使用します。
- Use this connection only for resources on its network (この接続はネットワーク上のリソースのためだけに使用)
- このチェックボックスを選択すると、この接続はデフォルトルートになりません。典型的な例としては、接続がヘッドオフィスの VPN またはリース線で、インターネットバインドされたトラフィックが接続を通過させないようにする場合などです。このオプションを選択すると、この接続で自動的に学習したルートを使用することが明確なトラフィックか、手動で入力したトラフィックのみがこの接続を経由します。
第11章 Network Interfaces
/etc/sysconfig/network-scripts/
ディレクトリーにあります。これらのネットワークインターフェースをアクティベートおよび非アクティブにするために使用するスクリプトもここにあります。インターフェースファイルの数と種類はシステムによって異なりますが、このディレクトリーに存在するファイルにはカテゴリーが 3 つあります。
- インターフェース設定ファイル
- インターフェース制御スクリプト
- ネットワーク関数ファイル
11.1. ネットワーク設定ファイル
-
/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
- ネットワークインターフェースごとに、対応するインターフェース設定スクリプトがあります。これらの各ファイルは、特定のネットワークインターフェースに固有の情報を提供します。このタイプのファイルおよび受け入れ可能なディレクティブの詳細については、「インターフェース設定ファイル」 を参照してください。
/etc/sysconfig/networking/
ディレクトリーは、現在非推奨になった Network Administration Tool (system-config-network)によって使用されます。そのコンテンツは手動で編集し ない でください。設定を削除するリスクがあるため、ネットワーク設定に 1 つだけ使用することが強く推奨されます。グラフィカル設定ツールを使用したネットワークインターフェースの設定に関する詳細は、10章NetworkManager を参照してください。
11.1.1. ホスト名の設定
/etc/sysconfig/network
ファイルの HOSTNAME ディレクティブを変更します。以下に例を示します。
HOSTNAME=penguin.example.com
/etc/sysconfig/network
の設定、または /etc/hosts
ファイルにより DNS リゾルバーで提供できることに注意してください。/etc/nsswitch.conf
における hosts: files dns
のデフォルト設定により、リゾルバーの前に設定ファイルが確認されます。/etc/host.conf
ファイルの multi on
のデフォルト設定は、最初にではなく、/etc/hosts
ファイル内のすべての有効な値が返されることを意味します。
/etc/sysconfig/network
の HOSTNAME ディレクティブの代わりに、/etc/hosts
ファイルでホストテーブルを使用する必要がある場合があります。
/etc/hosts
ファイルを使用してホスト名を変更するには、次の形式で行を追加します。
192.168.1.2 penguin.example.com penguin
11.2. インターフェース設定ファイル
ifcfg-name
です。name は、設定ファイルが制御するデバイスの名前を指します。
11.2.1. イーサネットインターフェース
/etc/sysconfig/network-scripts/ifcfg-eth0
で、システム内の最初のイーサネット ネットワークインターフェースカード または 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
ifcfg-eth0
ファイルは、 DHCP
サーバーが IP
情報を提供するためとは異なります。
DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes
-
BONDING_OPTS
=parameters - ボンディングデバイスの設定パラメーターを設定し、
/etc/sysconfig/network-scripts/ifcfg-bondN
で使用されます( 「チャンネルボンディングインターフェース」を参照)。このパラメーターは、ボンディングモジュールのディレクティブで説明されているように、/sys/class/net/
のボンディングデバイスに使用されるパラメーターと、ボンディングドライバーのモジュールパラメーターと 同じです。bonding_device
/bondingこの設定方法を使うと、複数のボンディングデバイスに異なる設定をすることが可能になります。Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 では、ifcfg-name
ファイルのBONDING_OPTS
ディレクティブの後に、すべてのインターフェース固有のボンディングオプションを配置します。詳細は、ボンディングモジュールパラメーターを指定する場所 を参照してください。 -
BOOTPROTO
=protocol - protocol は以下のいずれかになります。
none
: ブートタイムプロトコルは使用できません。BOOTP
-BOOTP
プロトコルを使用する必要があります。DHCP
-DHCP
プロトコルを使用する必要があります。
BROADCAST
=address- ここでの address はブロードキャストアドレスになります。この値は ipcalc で自動的に計算されるため、このディレクティブは非推奨になりました。
-
DEVICE
=name - name は、物理デバイスの名前です( 論理名である動的に割り当てられている
PPP
デバイスを除く)。 DHCP_HOSTNAME
=name- name は、
DHCP
サーバーに送信される短いホスト名です。このオプションは、DHCP
サーバーがIP
アドレスを受け取る前にクライアントがホスト名を指定する必要がある場合にのみ使用します。 DHCPV6C
=answer- ここでの answer は以下のいずれかになります。
はい
:DHCP
を使用して、このインターフェースのIPv6
アドレスを取得します。- No:
DHCP
を使用してこのインターフェースのIPv6
アドレスを取得しないでください。これはデフォルト値になります。
デフォルトでは、IPv6
リンクローカルアドレスは引き続き割り当てられます。リンクローカルアドレスは、『RFC 4862』 に従ってインターフェースの MAC アドレスに基づいています。 DHCPV6C_OPTIONS
=answer- ここでの answer は以下のいずれかになります。
-p -
IPv6
プレフィックス委譲を有効にします。-s:
DHCP
を使用して、このインターフェースのアドレスではなくステートレス設定のみを取得します。-n -
-T
オプションまたは-P
オプションを使用してから、通常の操作を復元します。-
t:DHCP
を使用して、このインターフェースの一時的なIPv6
アドレスを取得します。-d
- 使用する DHCP Unique Identifier (DUID)のタイプを選択する際にデフォルトを上書きします。デフォルトでは、DHCP
クライアント(dhclient)は、ステートレスモード(アドレスを要求しない-S
-D
オプションは、LL
またはLLT
のいずれかの値で、このデフォルトを上書きします。
DNS{1,2}
=address- ここでの address は、
PEERDNS
ディレクティブがno
に設定されていない限り、/etc/resolv.conf
に配置されるネームサーバーアドレスです。 -
ETHTOOL_OPTS
=options - ここでの options は、ethtool で対応しているデバイス固有のオプションになります。たとえば、100Mb を強制する場合は、duplex 全体を実行します。
ETHTOOL_OPTS="autoneg off speed 100 duplex full"
カスタムの initscript の代わりにETHTOOL_OPTS
を使用してインターフェース速度およびデュプレックスを設定します。ネットワーク init スクリプト外でカスタムの init スクリプトを実行すると、ブート後のネットワークサービスの再起動時に予期しない結果が得られます。速度またはデュプレックスの設定を変更する前に 「autoneg off」 を設定します。speed または duplex 設定を変更するには、autoneg off
オプションを指定して自動ネゴシエーションを無効にする必要があります。オプションエントリーは順序に依存するため、このオプションを最初に指定する必要があります。ethtool その他のオプションは、「ethtool」 を参照してください。 HOTPLUG
=answer- ここでの answer は以下のいずれかになります。
はい
: このデバイスはホットプラグされるとアクティベートする必要があります(これはデフォルトのオプションです)。- No: ホットプラグ
さ
れると、このデバイスはアクティベートされ ません。
ボンディングカーネルモジュールが読み込まれると、チャネルボンディングインターフェースがアクティブにならないように、LivePLUG=no
オプションを使用できます。チャンネルボンディングインターフェースについての詳しい情報は、「チャンネルボンディングインターフェース」 を参照してください。 -
HWADDR
=MAC-address - MAC-address は、AA:BB:CC:DD:EE:FF 形式のイーサネットデバイスのハードウェアアドレスです。このディレクティブは、各 NIC のモジュールに設定された負荷順序に関係なく、インターフェースに適切なデバイス名が割り当てられるように、複数の NIC が含まれるマシンで使用する必要があります。このディレクティブは、
MACADDR
と併用し ない でください。注記- 永続的なデバイス名は、
/etc/udev/rules.d/70-persistent-net.rules
により処理されるようになりました。 HWADDR
は、System z ネットワークデバイスと併用しないでください。- Red Hat Enterprise Linux 6nbsp;Linux Red Hat Enterprise Linux 6nbsp;Linux 『Red Hat Enterprise Linux 6nbsp;6 Installation Guide』 のセクション 25.3.3、「Mapping subchannels and network device names」を参照してください。
-
IPADDR
n=address - ここで、address は
IPv4
アドレスで、n は 0 から始まる連続する正の整数になることが予想されます(例: IPADDR0)。これは、インターフェースで複数の IP アドレスを持つ設定に使用されます。これは、設定されたアドレスが 1 つしかない場合は省略できます。 -
IPV6ADDR
=address - ここでの address は、インターフェースの最初の静的(プライマリー)
IPv6
アドレスになります。形式は Address/Prefix-length です。プレフィックスの長さが指定されていない場合、/64
が想定されます。この設定は、有効にするIPV6INIT
に依存することに注意してください。 -
IPV6ADDR_SECONDARIES
=address - ここでの address は、スペースで区切られた、追加の
IPv6
アドレスになります。形式は Address/Prefix-length です。プレフィックスの長さが指定されていない場合、/64
が想定されます。この設定は、有効にするIPV6INIT
に依存することに注意してください。 -
IPV6INIT
=answer - ここでの answer は以下のいずれかになります。
はい
:IPv6
アドレス設定用にこのインターフェースを初期化します。No
:IPv6
アドレス設定用にこのインターフェースを初期化しません。これはデフォルト値になります。IPv6
を無効にする方法は、「/etc/sysconfig/network」 を参照してください。
-
IPV6_AUTOCONF
=answer - ここでの answer は以下のいずれかになります。
はい
: このインターフェースのIPv6
自動conf 設定を有効にします。no
: このインターフェースのIPv6
自動conf 設定を無効にします。
有効にすると、radvd
デーモンを実行するルーターから Neighbor Discovery (ND)を使用してIPv6
アドレスを要求します。IPV6_AUTOCONF
のデフォルト値は、以下のようにIPV6FORWARDING
に依存することに注意してください。IPV6FORWARDING
=yes
である場合、IPV6_AUTOCONF
はデフォルトでno
に設定されます。IPV6FORWARDING
=no
である場合、IPV6_AUTOCONF
はデフォルトでyes
に設定され、IPV6_ROUTER
には影響がありません。
-
IPV6_MTU
=value - value は、このインターフェースの任意の専用 MTU です。
-
IPV6_PRIVACY
=rfc3041 - rfc3041 では、『IPv6 の Stateless Address Autoconfiguration の RFC 3041 Privacy Extensions をサポートするようにこのインターフェースを設定』 します。この設定は、有効になっている
IPV6INIT
オプションに依存することに注意してください。デフォルトは 『RFC 3041』 サポートを無効にします。ステートレス自動設定は、変更したEUI-64
メソッドを使用して、利用可能な場合に MAC アドレスに基づいてアドレスを取得します。アドレスは接頭辞に追加されますが、アドレスは通常 MAC アドレスから派生するので、接頭辞が変更されてもグローバルで一意となります。リンクローカルアドレスの場合、『RFC 2462 IPv6 Stateless Address Autoconfiguration』 に従ってプレフィックスが fe
801-1 になります。 -
LINKDELAY
=time - ここでの time は、デバイスを設定する前にリンクネゴシエーションを待つ秒数です。デフォルトは 5 秒です。たとえば、STTP が原因とするリンクネゴシエーション
の
遅延は、この値を増やすことで解決できます。 -
MACADDR
=MAC-address - MAC-address は、AA:BB:CC:DD:EE:FF 形式のイーサネットデバイスのハードウェアアドレスです。このディレクティブは、MAC アドレスをインターフェースに割り当てるのに使用されます。物理 NIC に割り当てられたアドレスを上書きします。このディレクティブは
HWADDR
ディレクティブと併用し ない でください。 -
MASTER
=bond-interface - bond-interface は、イーサネットインターフェースがリンクされるチャネルボンディングインターフェースです。このディレクティブは、
SLAVE
ディレクティブと併用されます。チャンネルボンディングインターフェースについての詳しい情報は、「チャンネルボンディングインターフェース」 を参照してください。 -
NETMASK
n=mask - mask はネットマスクの値で、n は 0 から始まる連続する正の整数になります(例: NETMASK0)。これは、インターフェースで複数の IP アドレスを持つ設定に使用されます。これは、設定されたアドレスが 1 つしかない場合は省略できます。
-
NETWORK
=address - ここでの address はネットワークアドレスになります。この値は ipcalc で自動的に計算されるため、このディレクティブは非推奨になりました。
-
NM_CONTROLLED
=answer - ここでの answer は以下のいずれかになります。
はい
- NetworkManager はこのデバイスの設定を許可しています。これはデフォルトの動作であり、省略可能です。no
- NetworkManager はこのデバイスの設定を許可していません。
注記NM_CONTROLLED
ディレクティブは、Red Hat Enterprise Linux 6.3 の時点で、/etc/sysconfig/network
のNM_BOND_VLAN_ENABLED
ディレクティブに依存します。そのディレクティブが存在し、yes
、y
、またはtrue
のいずれかである場合にのみ、NetworkManager はボンディングおよび VLAN インターフェースを検出し、管理します。 ONBOOT
=answer- ここでの answer は以下のいずれかになります。
はい
- このデバイスは、システムの起動時にアクティブにする必要があります。- No - このデバイスは、システムの起動時にアクティブにしないでください。
PEERDNS
=answer- ここでの answer は以下のいずれかになります。
はい
-DNS
ディレクティブが設定されている場合、またはPPP
で Microsoft の 『RFC 1877』IPCP
拡張を使用している場合は/etc/resolv.conf
を変更します。いずれの場合も、デフォルトは
yes
です。No
:/etc/resolv.conf
は変更しないでください。
SLAVE
=answer- ここでの answer は以下のいずれかになります。
はい
: このデバイスは、MASTER
ディレクティブで指定されたチャンネルボンディングインターフェースによって制御されます。no
: このデバイスは、MASTER
ディレクティブで指定されたチャンネルのボンディングインターフェースで制御され ません。
このディレクティブは、MASTER
ディレクティブと併用されます。チャンネルボンディングインターフェースについての詳しい情報は、「チャンネルボンディングインターフェース」 を参照してください。 -
SRCADDR
=address - ここでの address は、送信パケットの指定されたソース
IP
アドレスになります。 -
USERCTL
=answer - ここでの answer は以下のいずれかになります。
はい
-root
以外のユーザーはこのデバイスを制御できます。- No -
root
以外のユーザーはこのデバイスを制御することはできません。
11.2.2. System z 上の Linux の特定の ifcfg オプション
- SUBCHANN336= <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 は Open Systems Adapter(OSA)ポート名または LAN Channel Station(LCS)ポート番号になります。
CTCPROT
=answer- ここでの answer は以下のいずれかになります。
0
- 互換性モード、仮想マシンの TCP/IP(IBM S/390 および IBM System z オペレーティングシステム以外の Linux 以外のピアと使用)これはデフォルトのモードです。1
- Linux ピアに使用される拡張モード。3
- S/390 および IBM System z オペレーティングシステムの互換性モード。
このディレクティブは、NETTYPE ディレクティブと併用されます。NETTYPE='ctc' の CTC プロトコルを指定します。デフォルトは 0 です。 OPTION
='answer'- 「answer」 は、有効な sysfs 属性とその値の引用符で囲まれた文字列です。現在、Red Hat Enterprise Linux インストーラーはこれを使用して、QETH デバイスのレイヤーモード(layer2)と、相対ポート番号(portno)を設定します。以下に例を示します。
OPTIONS='layer2=1 portno=0'
11.2.3. System z の Linux に必要な ifcfg オプション
NETTYPE
=answer- ここでの answer は以下のいずれかになります。
C
TC - チャンネル間の通信ポイントツーポイントの TCP/IP または TTY の場合。lcs
: LAN Channel Station(LCS)qeth
: QETH(QDIO イーサネット)これは、デフォルトのネットワークインターフェースです。物理または仮想の OSA カードおよび HiperSockets デバイスをサポートするのに推奨される方法です。
11.2.4. チャンネルボンディングインターフェース
ボンディングカーネルモジュールとチャンネルボンディング
インターフェースと呼ばれる特別なネットワークインターフェースを使用して、複数のネットワークインターフェースを 1 つの チャンネル にバインドできます。このチャンネルボンディングにより、複数のネットワークインターフェースが 1 つとして機能できるようになり、また同時に帯域幅が増加し、冗長性を提供します。
bonding.txt
ファイルで提供されるドキュメントを参照してください( 「その他のリソース」を参照)。
11.2.4.1. ボンディングカーネルモジュールがインストールされているかの確認
root
で以下のコマンドを実行してこのモジュールを読み込みます。
~]# modprobe --first-time bonding
モジュールが実行されておらず、読み込まれたことを示す視覚的な出力はありません。このアクティベーションは、システム再起動後は維持されません。永続的なモジュールの読み込みの説明は、「永続的なモジュールの読み込み」 を参照してください。BONDING_OPTS ディレクティブを使用した適切な設定ファイルがあれば、ボンディングモジュールは必要に応じて読み込まれるので、別個に読み込む必要はないことに留意してください。
~]$ modinfo bonding
コマンドオプションの詳細は、modprobe(8)
man ページを参照してください。モジュールの読み込みおよびアンロードの詳細は、31章カーネルモジュールの使用 を参照してください。
11.2.4.2. チャンネルボンディングインターフェースの作成
/etc/sysconfig/network-scripts/
ディレクトリーに ifcfg-bondN
という名前のファイルを作成し、N をそのインターフェースの番号 0
などに置き換えます。
DEVICE
ディレクティブは ボンディングNで、N
はインターフェースの数に置き換えてください。NM_CONTROLLED
ディレクティブを追加して、NetworkManager がこのデバイスを設定しないようにします。
例11.1 ifcfg-bond0 インターフェース設定ファイルの例
DEVICE=bond0 IPADDR=192.168.1.1 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=none USERCTL=no NM_CONTROLLED=no BONDING_OPTS="bonding parameters separated by spaces"
yes
に設定し、TYPE=Bond および BONDING_MASTER=yes を追加します。
MASTER
ディレクティブおよび SLAVE
ディレクティブを追加して、バインドするネットワークインターフェースを設定する必要があります。チャンネルボンディング各インターフェースの設定ファイルはほぼ同じです。
例11.2 ifcfg-ethX ボンディングインターフェース設定ファイルの例
eth0
と eth1
の両方は以下のようになります。
DEVICE=ethX BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes USERCTL=no NM_CONTROLLED=no
root
で以下のコマンドを実行します。
~]# service network restart
/proc/
ファイルを表示するには、cat /proc/net/bonding/bondNの形式でコマンドを実行します。
~]$ cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)
Bonding Mode: load balancing (round-robin)
MII Status: down
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0
NM_CONTROLLED
および NM_BOND_VLAN_ENABLED
ディレクティブの説明は、「イーサネットインターフェース」 を参照してください。
ifcfg-bondN
インターフェースファイルの ボンディングパラメーター
のスペース区切りリストとして指定する必要があります。/etc/modprobe.d/ bonding .conf
のボンディング に固有のオプションは、または非推奨の /etc/modprobe.conf
ファイルで指定し ない でください。
max_bonds
パラメーターはインターフェース固有ではないため、必要に応じて、以下のように /etc/modprobe.d/bonding.conf
で指定する必要があります。
options bonding max_bonds=1ただし、BONDING_OPTS ディレクティブで
ifcfg-bondN
ファイルを使用する場合は、max_bonds
パラメーターを設定し ない でください。このディレクティブにより、必要に応じてネットワークスクリプトがボンディングインターフェースを作成します。
/etc/modprobe.d/bonding.conf
への変更は、モジュールが次回読み込まれるまで反映されないことに注意してください。実行中のモジュールは、最初にアンロードする必要があります。モジュールの読み込みおよびアンロードの詳細は、31章カーネルモジュールの使用 を参照してください。
11.2.4.2.1. 複数のボンド作成
- BONDING_OPTS ディレクティブがある複数の
ifcfg-bondN
ファイルを作成します。このディレクティブを使うと、ネットワークスクリプトが必要に応じてボンディングインターフェースを作成するようになります。 - ボンディングされるインターフェース設定ファイルを作成、または既存のものを編集し、SLAVE ディレクティブをこれに含めます。
- ボンディングされるスレーブインターフェースを MASTER ディレクティブでチャンネルボンディングインターフェースに割り当てます。
例11.3 複数の ifcfg-bondN インターフェース設定ファイルの例
DEVICE=bondN IPADDR=192.168.1.1 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=none USERCTL=no NM_CONTROLLED=no BONDING_OPTS="bonding parameters separated by spaces"
ifcfg-bond0
と ifcfg-bond1
の 2 つの設定ファイルを作成します。
11.2.5. ボンディングを介した VLAN の設定
IP
アドレスとは異なる設定と同じであるように表示されます。
bonding.txt
ファイルで提供されるドキュメントを参照してください( 「その他のリソース」を参照)。
~]$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 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> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link/ether 52:54:00:19:28:fe brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link/ether 52:54:00:f6:63:9a brd ff:ff:ff:ff:ff:ff
手順11.1 サーバーでのインターフェースの設定
eth0
を使用してスレーブインターフェースを設定します。~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 NAME=bond0-slave0 DEVICE=eth0 TYPE=Ethernet BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes NM_CONTROLLED=no
NAME ディレクティブの使用は任意です。これは、nm-connection-editor、nm-applet などの GUI インターフェースにより表示されます。eth1
を使用してスレーブインターフェースを設定します。~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1 NAME=bond0-slave1 DEVICE=eth1 TYPE=Ethernet BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes NM_CONTROLLED=no
NAME ディレクティブの使用は任意です。これは、nm-connection-editor、nm-applet などの GUI インターフェースにより表示されます。- チャンネルボンディングインターフェース
ifcfg-bond0
を設定します。~]# vi /etc/sysconfig/network-scripts/ifcfg-bond0 NAME=bond0 DEVICE=bond0 BONDING_MASTER=yes TYPE=Bond IPADDR=192.168.100.100 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=none BONDING_OPTS="mode=active-backup miimon=100" NM_CONTROLLED=no
NAME ディレクティブの使用は任意です。これは、nm-connection-editor、nm-applet などの GUI インターフェースにより表示されます。この例では、リンク監視の詳細は、「ボンディングモジュールのディレクティブ」 セクションを参照してください。 - サーバー上のインターフェースのステータスを確認します。
~]$ ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 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 UP qlen 1000 link/ether 52:54:00:19:28:fe brd ff:ff:ff:ff:ff:ff inet6 fe80::5054:ff:fe19:28fe/64 scope link valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 52:54:00:f6:63:9a brd ff:ff:ff:ff:ff:ff inet6 fe80::5054:ff:fef6:639a/64 scope link valid_lft forever preferred_lft forever
手順11.2 インターフェースとの競合の解決
IPv6
のリンクローカルアドレス( fe80
の起動)とは別に IP
アドレスを割り当てないでください。予期しない IP
アドレスがある場合は、ONBOOT が yes
に設定されている別の設定ファイルが存在する可能性があります。
- この場合は、以下のコマンドを実行して、競合の原因となる可能性のあるすべての
ifcfg
ファイルを一覧表示します。~]$ grep -r "ONBOOT=yes" /etc/sysconfig/network-scripts/ | cut -f1 -d":" | xargs grep -E "IPADDR|SLAVE" /etc/sysconfig/network-scripts/ifcfg-lo:IPADDR=127.0.0.1
上記は、新規インストールで想定される結果を示します。ONBOOT ディレクティブと IPADDR または SLAVE ディレクティブの両方を含むファイルが表示されます。たとえば、ifcfg-eth1
ファイルが正しく設定されていない場合、表示は以下のようになります。~]# grep -r "ONBOOT=yes" /etc/sysconfig/network-scripts/ | cut -f1 -d":" | xargs grep -E "IPADDR|SLAVE" /etc/sysconfig/network-scripts/ifcfg-lo:IPADDR=127.0.0.1 /etc/sysconfig/network-scripts/ifcfg-eth1:SLAVE=yes /etc/sysconfig/network-scripts/ifcfg-eth1:IPADDR=192.168.55.55
- 見つかったその他の設定ファイルはバックアップのために別のディレクトリーに移動するか、HWADDR ディレクティブを使用して別のインターフェースに割り当てる必要があります。競合を解決すると、インターフェースが 「ダウン」 して再度 「起動」 するか、
root
としてネットワークサービスを再起動します。~]# service network restart Shutting down interface bond0: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface bond0: Determining if ip address 192.168.100.100 is already in use for device bond0... [ OK ]
NetworkManager を使用している場合は、この時点で再起動して不要なIP
アドレスを忘れることがあります。root
で、以下を実行します。~]# service NetworkManager restart
手順11.3 サーバーのボンディングの確認
root
としてサーバー上でボンディングを起動します。~]# ifup /etc/sysconfig/network-scripts/ifcfg-bond0 Determining if ip address 192.168.100.100 is already in use for device bond0...
- サーバー上のインターフェースのステータスを確認します。
~]$ ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 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,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
master bond0 state UP
qlen 1000 link/ether 52:54:00:19:28:fe brd ff:ff:ff:ff:ff:ff 3: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fastmaster bond0 state UP
qlen 1000 link/ether 52:54:00:f6:63:9a brd ff:ff:ff:ff:ff:ff 4: bond0: <BROADCAST,MULTICAST,MASTER,UP
,LOWER_UP> mtu 1500 qdisc noqueue state UP link/ether 52:54:00:19:28:fe brd ff:ff:ff:ff:ff:ff inet 192.168.100.100/24 brd 192.168.100.255 scope global bond0 inet6 fe80::5054:ff:fe19:28fe/64 scope link valid_lft forever preferred_lft forevereth0
とeth1
はmaster bond0 state UP
で、bond0
のステータスはMASTER,UP
であることに注意してください。 - ボンディング設定の詳細を表示します。
~]$ cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009) Bonding Mode: transmit load balancing Primary Slave: None Currently Active Slave: eth0 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth0 MII Status: up Speed: 100 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 52:54:00:19:28:fe Slave queue ID: 0 Slave Interface: eth1 MII Status: up Speed: 100 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 52:54:00:f6:63:9a Slave queue ID: 0
- サーバーのルートを確認します。
~]$ ip route 192.168.100.0/24 dev bond0 proto kernel scope link src 192.168.100.100 169.254.0.0/16 dev bond0 scope link metric 1004
手順11.4 サーバー上での VLAN の設定
yes
に設定することは、ボンディングが起動する前に VLAN インターフェースが起動しないようにすることが重要です。これは、VLAN 仮想デバイスは親の MAC アドレスを取得し、NIC がスレーブになると、ボンディングはその MAC アドレスをその NIC の MAC アドレスに変更します。
fail_over_mac=follow
オプションが指定されたボンディングで VLAN スレーブを設定することはできません。この場合、トラフィックは間違ったソースの MAC アドレスで送信されます。
- VLAN インターフェースファイル
bond0.192
を作成します。~]# vi /etc/sysconfig/network-scripts/ifcfg-bond0.192 DEVICE=bond0.192 NAME=bond0.192 BOOTPROTO=none ONPARENT=yes IPADDR=192.168.10.1 NETMASK=255.255.255.0 VLAN=yes NM_CONTROLLED=no
root
として VLAN インターフェースを起動します。~]# ifup /etc/sysconfig/network-scripts/ifcfg-bond0.192 Determining if ip address 192.168.10.1 is already in use for device bond0.192...
- ネットワークスイッチでの VLAN タグ付けの有効化スイッチのドキュメントを参照して、必要な設定を確認してください。
- サーバー上のインターフェースのステータスを確認します。
~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 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,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000 link/ether 52:54:00:19:28:fe brd ff:ff:ff:ff:ff:ff 3: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000 link/ether 52:54:00:f6:63:9a brd ff:ff:ff:ff:ff:ff 4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP link/ether 52:54:00:19:28:fe brd ff:ff:ff:ff:ff:ff inet 192.168.100.100/24 brd 192.168.100.255 scope global bond0 inet6 fe80::5054:ff:fe19:28fe/64 scope link valid_lft forever preferred_lft forever 5:
インターフェースの一覧にbond0.192@bond0
: <BROADCAST,MULTICAST,MASTER,UP
,LOWER_UP> mtu 1500 qdisc noqueue state UP link/ether 52:54:00:19:28:fe brd ff:ff:ff:ff:ff:ff inet 192.168.10.1/24 brd 192.168.10.255 scope global bond0.192 inet6 fe80::5054:ff:fe19:28fe/64 scope link valid_lft forever preferred_lft foreverbond0.192@bond0
があり、ステータスがMASTER,UP
になっていることに注意してください。 - サーバーのルートを確認します。
~]$ ip route 192.168.100.0/24 dev bond0 proto kernel scope link src 192.168.100.100 192.168.10.0/24 dev
これで VLAN インターフェースbond0.192
proto kernel scope link src 192.168.10.1 169.254.0.0/16 dev bond0 scope link metric 1004 169.254.0.0/16 dev bond0.192 scope link metric 1005bond0.192
を参照する192.168.10.0/24
ネットワークのルートがある点に注意してください。
2 番目のサーバーの設定
IP
アドレスを使用して、2 番目のサーバーの設定手順を繰り返します。
~]$ ping -c4 192.168.100.100
PING 192.168.100.100 (192.168.100.100) 56(84) bytes of data.
64 bytes from 192.168.100.100: icmp_seq=1 ttl=64 time=1.35 ms
64 bytes from 192.168.100.100: icmp_seq=2 ttl=64 time=0.214 ms
64 bytes from 192.168.100.100: icmp_seq=3 ttl=64 time=0.383 ms
64 bytes from 192.168.100.100: icmp_seq=4 ttl=64 time=0.396 ms
--- 192.168.100.100 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 0.214/0.586/1.353/0.448 ms
VLAN のテスト
~]# ping -c2 192.168.10.1
PING 192.168.10.1 (192.168.10.1) 56(84) bytes of data.
64 bytes from 192.168.10.1: icmp_seq=1 ttl=64 time=0.781 ms
64 bytes from 192.168.10.1: icmp_seq=2 ttl=64 time=0.977 ms
--- 192.168.10.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss
, time 1001ms
rtt min/avg/max/mdev = 0.781/0.879/0.977/0.098 ms
パケットロスは、すべてが正しく設定され、VLAN および基盤のインターフェースが 「up」 になっていることが示唆されません。
オプションのステップ
- 必要に応じて、ネットワークケーブルを 1 度に 1 つずつ削除および置き換えて、追加のテストを実行し、フェイルオーバーが想定どおりに機能することを確認します。ethtool ユーティリティーを使用して、どのインターフェースがどのケーブルに接続されているかを確認します。例:
ethtool
integer は、ネットワークインターフェースで LED をフラッシュする回数に置き換えます。--identify
ifname integer - ボンディングモジュールは
STP
に対応していないため、ネットワークスイッチからの BPDU パケット送信を無効にすることを検討してください。 - 設定した接続以外のシステムがネットワークにリンクされていない場合は、スイッチポートを直接送受信できるようにすることを検討してください。たとえば、Cisco スイッチでは、
portfast
コマンドを使用して行います。
11.2.6. ネットワークブリッジ
/etc/sysconfig/network-scripts/
ディレクトリーに ifcfg-brN
という名前のファイルを作成し、N をそのインターフェースの番号 0
などに置き換えます。
DEVICE
ディレクティブは、brN
形式の引数としてインターフェース名を指定しています。N はインターフェースの数に置き換えます。TYPE
ディレクティブには、引数Bridge
が指定されています。このディレクティブは、デバイスタイプと、引数が大文字/小文字を区別するかを決定します。- ブリッジインターフェースの設定ファイルに
IP
アドレスが追加され、物理インターフェースには MAC アドレスのみが含まれるようになりました。 - 追加のディレクティブ
DELAY=0
が加えられ、ブリッジがトラフィックを監視し、ホストの位置を学習し、フィルタリング機能の基になる MAC アドレステーブルを構築する間に、ブリッジが待機することを回避します。ルーティングループが可能でない場合は、デフォルトの 15 秒遅延は不要です。 - NetworkManager がファイルを変更しないように、
NM_CONTROLLED=no
をイーサネットインターフェースに追加する必要があります。また、NetworkManager の今後のバージョンがブリッジ設定に対応している場合は、ブリッジ設定ファイルに追加することもできます。
IP
アドレスを使用したブリッジインターフェース設定ファイルの例です。
例11.4 ifcfg-br0 インターフェース設定ファイルの例
DEVICE=br0 TYPE=Bridge IPADDR=192.168.1.1 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=none NM_CONTROLLED=no DELAY=0
/etc/sysconfig/network-scripts/ifcfg-ethXで物理インターフェースを設定します。X
は、以下のように、特定のインターフェースに対応する一意の番号に置き換えます。
例11.5 ifcfg-ethX インターフェース設定ファイルのサンプル
DEVICE=ethX TYPE=Ethernet HWADDR=AA:BB:CC:DD:EE:FF BOOTPROTO=none ONBOOT=yes NM_CONTROLLED=no BRIDGE=br0
DEVICE
ディレクティブでは、デバイスの種類を判断しないため、ほとんどすべてのインターフェース名を使用できます。一般的に使用される他の名前に は
、tapset、ダミー
、ボンディング
などが含まれます。TYPE=Ethernet
は必須ではありません。TYPE
ディレクティブが設定されていない場合、デバイスはイーサネットデバイスとして処理されます(その名前が別のインターフェース設定ファイルに明示的にマッチしていない限り)。
service network restart
11.2.6.1. ボンドを使ったネットワークブリッジ
DEVICE=ethX TYPE=Ethernet USERCTL=no SLAVE=yes MASTER=bond0 BOOTPROTO=none HWADDR=AA:BB:CC:DD:EE:FF NM_CONTROLLED=no
ethX
をインターフェース名として使用することは一般的ですが、ほとんどすべての名前を使用することもできます。tap
、dummy
、bond
などの名前は一般的に使用されます。
/etc/sysconfig/network-scripts/ifcfg-bond0
を以下のように作成もしくは編集します。
DEVICE=bond0 ONBOOT=yes BONDING_OPTS='mode=1 miimon=100' BRIDGE=br0 NM_CONTROLLED=noボンディングモジュールの設定に関する指示およびアドバイスとボンディングパラメーターの一覧については、「チャンネルボンディングの使用」を参照してください。
/etc/sysconfig/network-scripts/ifcfg-br0
を作成または編集します。
DEVICE=br0 ONBOOT=yes TYPE=Bridge IPADDR=192.168.1.1 NETMASK=255.255.255.0 NM_CONTROLLED=no
図11.1 2 つのボンディングされたイーサネットインターフェースで構成されるネットワークブリッジ。

[D]
MASTER=bond0
ディレクティブを持つ 2 つ以上のインターフェース設定ファイルができました。これは、DEVICE=bond0
ディレクティブを含む /etc/sysconfig/network-scripts/ifcfg-bond0
という名前の設定ファイルを参照します。次にこの ifcfg-bond0
は、IP
アドレスを含む /etc/sysconfig/network-scripts/ifcfg-br0
設定ファイルをポイントし、ホスト内の仮想ネットワークのインターフェースとして機能します。
root
で以下の形式のコマンドを実行します。 ifup device
~]# service network restart
11.2.6.2. ボンディング VLAN を使用したネットワークブリッジ
- 「 「ボンディングを介した VLAN の設定」 」で説明するように、ボンディングおよび VLAN が設定されていることを確認します。
- ブリッジの設定ファイル
ifcfg-br0
を作成します。~]# vi /etc/sysconfig/network-scripts/ifcfg-br0 DEVICE=br0 ONBOOT=yes TYPE=Bridge IPADDR=192.168.10.1 NETMASK=255.255.255.0 NM_CONTROLLED=no
- 先の例で VLAN の設定ファイル
ifcfg-bond0.192
を調整して、新たに作成されたbr0
をマスターとして使用します。~]# vi /etc/sysconfig/network-scripts/ifcfg-bond0.192 DEVICE=bond0.192 BOOTPROTO=none ONPARENT=yes #IPADDR=192.168.10.1 #NETMASK=255.255.255.0 VLAN=yes NM_CONTROLLED=no BRIDGE=br0
- 新しいインターフェースまたは最近設定されたインターフェースを起動するには、
root
で以下の形式のコマンドを実行します。ifup device
または、以下のように Networking サービスを再起動して、変更を有効にします。~]# service network restart
11.2.7. 802.1Q VLAN タグの設定
- 必要に応じて、
root
で以下のコマンドを実行し、VLAN 8021q モジュールを起動します。~]# modprobe --first-time 8021q
モジュールが実行されておらず、読み込まれたことを示す視覚的な出力はありません。正しい設定ファイルを指定すると、VLAN 8021q モジュールが必要に応じてロードされるため、個別に読み込む必要はありません。 /etc/sysconfig/network-scripts/ifcfg-ethXで物理インターフェースを設定します。X
は、以下のように、特定のインターフェースに対応する一意の番号に置き換えます。DEVICE=ethX TYPE=Ethernet BOOTPROTO=none ONBOOT=yes
/etc/sysconfig/network-scripts
で VLAN インターフェース設定を行います。設定ファイルには、物理インターフェースと.
文字、VLAN ID 番号を指定する必要があります。たとえば、VLAN ID が 192 で、物理インターフェースがeth0
の場合、設定ファイルのファイル名はifcfg-eth0.192
になります。DEVICE=ethX.192 BOOTPROTO=none ONBOOT=yes IPADDR=192.168.1.1 NETMASK=255.255.255.0 USERCTL=no NETWORK=192.168.1.0 VLAN=yes
同じインターフェース eth0 に 2 番目の VLAN(例: VLAN ID 193)を設定する必要がある場合には、VLAN 設定の詳細でeth0
.193- 変更を反映するために、ネットワークサービスを再起動します。これには、
root
で以下のコマンドを発行します。~]# service network restart
11.2.8. エイリアスとクローンファイル
~]# ip address add 192.168.2.223/24 dev eth1 ~]# ip address add 192.168.4.223/24 dev eth1 ~]# ip addr 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 52:54:00:fb:77:9e brd ff:ff:ff:ff:ff:ff inet 192.168.2.223/24 scope global eth1 inet 192.168.4.223/24 scope global eth1
man ip(8)
ページに記載されています。Red Hat Enterprise Linux 6 のパッケージ名は iproute です。
ifcfg
エイリアスファイルを読み込み、エイリアス名をアドレスラベルとして使用し、そのアドレスをマスターインターフェースに割り当てます。たとえば、ifcfg-eth0 ファイルおよび ifcfg-eth0
:1
ファイルが存在する場合、NetworkManager はエイリアスファイルの DEVICE 行を読み取り、これをアドレスラベルとして保存します。エイリアスではなくセカンダリーアドレスの使用が推奨されます。
IPv4
または IPv6
タブで Manual メソッドを選択し、同じインターフェースに複数の IP
アドレスを割り当てる必要があります。このツールの使用方法は、10章NetworkManager を参照してください。
ifcfg-if-name:alias-value
命名スキームを使用します。
ifcfg-eth0:0 ファイルは、DEVICE=eth
0:0 と 10
.0.0.2 の静的 IP
アドレスを指定するように設定できます。これは、ifcfg-eth0
で DHCP
経由でその IP
情報を受け取るように設定されているイーサネットインターフェースのエイリアスとして機能します。この設定では、eth0
は動的 IP
アドレスにバインドされますが、同じ物理ネットワークカードは、固定の 10.0.0 .2
IP
アドレスを使用して要求を受け取ることができます。
DHCP
をサポートしません。
ifcfg-if-name-clone-name
の命名規則を使用する必要があります。エイリアスファイルは既存のインターフェースの複数のアドレスを許可しますが、クローンファイルを使用してインターフェースの追加オプションを指定します。たとえば、eth0
と呼ばれる標準の DHCP
イーサネットインターフェースは、以下のようになります。
DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp
USERCTL
ディレクティブのデフォルト値は指定されない場合は指定されないため、ユーザーはこのインターフェースを稼働させたり、ダウンしたりできません。
ユーザーがインターフェースを制御できるようにするには、ifcfg-eth0 を ifcfg-eth0
-user
にコピーし、ifcfg-eth0-user
に次の行を追加します。
USERCTL=yes
ifcfg- eth0
-user の設定オプションが組み合わされているため、/sbin/ifup eth0-user コマンドを使用して eth0
インターフェースを起動することができます。これは非常に基本的な例ですが、この方法はさまざまなオプションやインターフェースで使用できます。
IP
アドレスを同じインターフェースに直接割り当てることができるため、この方法を使用する必要がなくなりました。新規インストールでは、NetworkManager の IPv4
または IPv6
タブで Manual メソッドを選択し、同じインターフェースに複数の IP
アドレスを割り当てる必要があります。このツールの使用方法は、10章NetworkManager を参照してください。
11.2.9. 診断インターフェース
PPP
インターフェースファイルの名前は、以下の形式を使用して指定されます。
ifcfg-pppX
- X は、特定のインターフェースに対応する一意の番号になります。
PPP
インターフェース設定ファイルは、W vdial 時に自動的に 作成されます。または Kppp を使用して、ダイアアップアカウントを作成します。このファイルを手動で作成して編集することもできます。
/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
SLIP
ファイルには、ifcfg-sl0
などのインターフェース設定ファイルの名前があります。
-
DEFROUTE
=answer - ここでの answer は以下のいずれかになります。
はい
: このインターフェースをデフォルトルートとして設定します。no
: このインターフェースをデフォルトルートとして設定しません。
DEMAND
=answer- ここでの answer は以下のいずれかになります。
- はい
:
このインターフェースを使用すると、誰かが使用しようとしたときに、pppd が接続を開始できるようになります。 No
: このインターフェースに対して接続を手動で確立する必要があります。
IDLETIMEOUT
=value- value は、インターフェースが一意を切断するまでのアイドルアクティビティーの秒数です。
INITSTRING
=string- ここでの string は、モデムデバイスに渡される初期化文字列です。このオプションは主に
SLIP
インターフェースで使用されます。 LINESPEED
=value- value は、デバイスのボーレートです。使用できる標準値には、
57600
、38400
、19200
、および9600
が含まれます。 MODEMPORT
=device- device は、インターフェースの接続を確立するために使用されるシリアルデバイスの名前です。
MTU
=value- value は、インターフェースの 最大転送単位 (MTU)設定です。MTU は、フレームが受け入れ可能なデータの最大数(ヘッダー情報をカウントしません)を指します。重複状況によっては、これを
576
の値に設定すると、パケットがドロップされ、接続のスループットが大幅に向上します。 NAME
=name- name は、ダイアルアップ接続設定のコレクションに指定されたタイトルへの参照です。
PAPNAME
=name- name は、リモートシステムへの接続を許可する パスワード認証プロトコル (PAP)交換時に指定したユーザー名です。
PERSIST
=answer- ここでの answer は以下のいずれかになります。
はい
: このインターフェースは、モードがハングアップした後に非アクティブであっても、いつでもアクティブにする必要があります。- No: このインターフェースは、常にアクティブな状態を維持しないでください。
REMIP
=address- ここでの address は、リモートシステムの
IP
アドレスになります。通常、これは未指定のままです。 -
WVDIALSECT
=name - ここでの name は、このインターフェースを
/etc/wvdial.conf
のダイア設定に関連付けます。このファイルには、ダイアル対象の電話番号と、インターフェースに関するその他の重要な情報が含まれています。
11.2.10. その他のインターフェース
ifcfg-lo
- ローカル ループバックインターフェース は、多くの場合、テストで使用され、同じシステムを参照する
IP
アドレスを必要とする各種アプリケーションで使用されます。ループバックデバイスに送信されるデータは、ホストのネットワーク層に即座に返されます。ifcfg-lo スクリプトを手動で編集しないでください。ループバックインターフェーススクリプト/etc/sysconfig/network-scripts/ifcfg-lo
は手動で編集しないでください。これを実行すると、システムが正常に動作しなくなる可能性があります。 ifcfg-irlan0
- infrared インターフェース を使用すると、ラップトップやプリンターなどのデバイス間の情報に対してインフラストラクチャーリンクを流れることができます。これは、イーサネットデバイスと同様に機能しますが、ピアツーピア接続で一般的に発生する点が異なります。
ifcfg-plip0
- Parallel Line Interface Protocol (PLIP)接続は、並列ポートを使用するのを除き、イーサネットデバイスとほぼ同じように機能します。
ifcfg-hsiN
- HiperSockets インターフェースは、IBM System z オフィス上の z/VM ゲスト仮想マシンおよび論理パーティション(LPAR)内の高速の TCP/IP 通信のインターフェースです。
11.3. インターフェース制御スクリプト
/etc/sysconfig/network-scripts/
ディレクトリーにある制御スクリプトを呼び出す主なインターフェース制御スクリプトは、/sbin/ifdown と /sbin/ifup の 2 つです。
ifup
インターフェーススクリプトおよび ifdown
インターフェーススクリプトは、/sbin/
ディレクトリー内のスクリプトへのシンボリックリンクです。これらのスクリプトのいずれかが呼び出されると、以下のようにインターフェースの値を指定する必要があります。
ifup eth0
ifup
インターフェーススクリプトおよび ifdown
インターフェーススクリプトは、ユーザーがネットワークインターフェースを起動し、停止するために使用する唯一のスクリプトです。
/etc/rc.d/init.d/functions
および /etc/sysconfig/network-scripts/network-functions
です。詳細は、「ネットワーク機能ファイル」 を参照してください。
/etc/sysconfig/network-scripts/
ディレクトリーにある一般的なインターフェース制御スクリプトです。
ifup-aliases
- 複数の
IP
アドレスがインターフェースに関連付けられている場合に、インターフェース設定ファイルからIP
エイリアスを設定します。 ifup-ippp
およびifdown-ippp
- ISDN インターフェースを上下に移動します。
ifup-ipv6
およびifdown-ipv6
IPv6
インターフェースを up および down にします。ifup-plip
PLIP
インターフェースを起動します。ifup-plusb
- ネットワーク接続用に USB インターフェースを起動します。
ifup-post
およびifdown-post
- インターフェースの起動または停止後に実行するコマンドが含まれます。
ifup-ppp
およびifdown-ppp
- PP インターフェースを
上
下にします。 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
/sbin/service network status
11.4. 静的ルートおよびデフォルトのゲートウェイ
コマンドラインを使用した静的ルートの設定
ip route [ add | del | change | append | replace ] destination-address
オプションおよび形式の詳細は、ip-route(8)
man ページを参照してください。
IP
ルーティングテーブルを表示します。以下に例を示します。
~]$ ip route default via 192.168.122.1 dev eth0 proto static metric 1024 192.168.122.0/24 dev ens9 proto kernel scope link src 192.168.122.107 192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.126
IP
アドレス)に静的ルートを追加するには、root
でコマンドを実行します。
~]# ip route add 192.0.2.1 via 10.0.0.1 [dev
ifname]
192. 0.2.1 はドット付き 10 進数表記のホストの IP
アドレスで、10.0.0.1 は次のホップアドレス、ifname は終了インターフェースであり、次のホップになります。
IP
アドレスの範囲を表す IP
アドレスに静的なルートを追加するには、root
で以下のコマンドを発行します。
~]# ip route add 192.0.2.0/24 via 10.0.0.1 [dev
ifname]
ここでの 192.0.2.0 はドット形式 10 進法での宛先ネットワークの IP
アドレスに、/24 はネットワークプレフィックスになります。ネットワークプレフィックスは、サブネットマスク内の有効なビット数です。ネットワークアドレスにスラッシュ、ネットワークプレフィックス長を続けるこの形式は、classless inter-domain routing (CIDR) 表記と呼ばれることもあります。
/etc/sysconfig/network-scripts/route-インターフェース
ファイルに保存できます。たとえば、次は静的ルートです。 eth0 インターフェースは /etc/sysconfig/network-scripts/route-eth0
ファイルに保存されます。route-interface
ファイルには、ip コマンド引数と network/netmask ディレクティブの 2 つの形式があります。これについては、以下で説明します。
ip-route(8)
man ページを参照してください。
デフォルトゲートウェイの設定
/etc/sysconfig/network
を解析し、「up」 状態のインターフェースについてネットワークインターフェイス ifcfg
ファイルを解析します。ifcfg
ファイルは数字の小さい順に解析され、最後に読み取られる GATEWAY ディレクティブがルーティングテーブルのデフォルトルートを作成するために使用されます。
DHCP
による割り当てに任せるのが最善です。NetworkManager においてゲートウェイに達する出口インターフェースの選択に影響を及ぼす必要がある特別なケースでは、デフォルトゲートウェイに進まないインターフェースに ifcfg
ファイルの DEFROUTE=no コマンドを利用します。
/etc/sysconfig/network
ファイルに保存されます。このファイルは、すべてのネットワークインターフェースのゲートウェイおよびホスト情報を指定します。このファイルおよび許可されるディレクティブの詳細は、「/etc/sysconfig/network」 を参照してください。
11.5. ifcfg ファイルでの静的ルートの設定
/etc/sysconfig/network-scripts/
ディレクトリーに保存されているインターフェース別の設定ファイルに追加する必要があります。ファイル名は、route-ifname
の形式にする必要があります。設定ファイルで使用するコマンドには、2 つのタイプがあります。「IP コマンド引数形式を使用した静的ルート」 で説明されているように、「ネットワーク/マスクのディレクティブ形式」 で説明されているように、ip コマンドおよび Network/Netmask 形式が使用されます。
11.5.1. IP コマンド引数形式を使用した静的ルート
/etc/sysconfig/network-scripts/route-eth0
)で必要な場合は、最初の行でデフォルトゲートウェイへのルートを定義します。これは、ゲートウェイが DHCP
経由で設定されておらず、/etc/sysconfig/network
ファイルでグローバルに設定されていない場合にのみ必要です。
default via 192.168.1.1 dev
interface
IP
アドレスになります。interface は、デフォルトゲートウェイに接続されている、または到達可能なインターフェースになります。dev
オプションは省略できます。これはオプションです。この設定は、/etc/sysconfig/network
ファイルの設定よりも優先されます。
10.10.10.0/24 via 192.168.1.1 [dev
interface]
IP
アドレスです。ネクストホップアドレス の方が好ましいですが、出口インターフェースのアドレスでも機能します。「ネクストホップ」とは、ゲートウェイやルーターなどリンクのリモート側を意味します。dev
オプションを使用して、終了 インターフェース を指定できますが、必須ではありません。必要に応じて静的ルートを追加します。
route-interface
ファイルの例です。デフォルトゲートウェイは 192.168.0.1
です。 eth0 リース行または WAN 接続が 192.168.0.10
で利用できます。2 つの静的ルートは、10.10.10.0/24
ネットワークおよび 172.16.1.10/32
ホストに到達するためのものです。
default via 192.168.0.1 dev eth0 10.10.10.0/24 via 192.168.0.10 dev eth0 172.16.1.10/32 via 192.168.0.10 dev eth0
192.168.0.0/24
ネットワークに向かうパケットはそのネットワークに接続されているインターフェースに移動します。10.10.10.0/24
ネットワークおよび 172.16.1.10/32
ホストに向かうパケットは、192.168.0.10
に移動します。既知でないリモートネットワークに向かうパケットはデフォルトゲートウェイを使用するので、デフォルトルートが適切でない場合は、静的ルートはリモートネットワークもしくはホスト用のみに設定すべきです。ここでのリモートとは、システムに直接繋がれていないネットワークやホストを指します。
DHCP
からすでに割り当てられている場合、IP
コマンドの引数の形式により、起動時に 2 つのエラーか、ifup コマンドを使用して down 状態からインターフェースを起動する際に、「RTNETLINK answers」という 2 つのエラーが発生することがあります。 ファイルが存在するか、「Error:」のいずれかが重複するか、「X.X.X.X.X」はガベージコレクションです。X.X.X.X はゲートウェイか、異なる IP
アドレスになります。デフォルトゲートウェイを使用して別のネットワークへの別のルートがある場合も、これらのエラーが発生する可能性があります。これらのエラーはいずれも無視しても問題ありません。
11.5.2. ネットワーク/マスクのディレクティブ形式
route-interface
ファイルに使用することも可能です。以下は、ネットワーク/ネットマスク形式のテンプレートで、後に説明が続きます。
ADDRESS0=10.10.10.0 NETMASK0=255.255.255.0 GATEWAY0=192.168.1.1
ADDRESS0=10.10.10.0
は、到達するリモートネットワークまたはホストのネットワークアドレスです。NETMASK0=255.255.255.0
は、ADDRESS0=10.10.10.0
で定義されているネットワークアドレスのネットマスクです。GATEWAY0=192.168.1.1
は、ADDRESS0=10.10.10.0
への到達に使用可能なデフォルトゲートウェイまたはIP
アドレスです。
route-interface
ファイルの例です。デフォルトゲートウェイは 192.168.0.1
ですが、専用回線または WAN 接続が 192.168.0.10
で利用可能です。2 つの静的ルートは、10.10.10.0/24
および 172.16.1.0/24
のネットワークに到達するためのものです。
ADDRESS0=10.10.10.0 NETMASK0=255.255.255.0 GATEWAY0=192.168.0.10 ADDRESS1=172.16.1.10 NETMASK1=255.255.255.0 GATEWAY1=192.168.0.10
ADDRESS0
、ADDRESS1
、ADDRESS2
など。
11.6. IPv6 トークンインターフェース識別子の設定
DHCP
サーバーに依存しないように手動で設定されます。IPv6
プロトコルでは、ステートレスアドレス自動設定 (SLAAC)が導入され、クライアントが DHCPv6
サーバーに依存せずにアドレスを割り当てることができます。SLAAC はインターフェースハードウェアに基づいて IPv6
アドレスを派生するため、ハードウェアが変更され、関連する SLAAC がアドレスの変更に関連する SLAAC の生成時にサーバーに使用することはできません。IPv6
環境では、ネットワーク接頭辞が変更された場合や、システムが新しい場所に移動した場合は、接頭辞の変更により、手動で構成された静的アドレスを編集する必要があります。
IPv6
アドレスの 64 ビットインターフェース識別子の部分が ルーター広告 (RA)から取得できるようになります。つまり、ネットワークインターフェースのハードウェアが変更されると、アドレスの低い 64 ビットが変更されず、システムが別のネットワークに移動した場合に、ルーター広告からネットワーク接頭辞が自動的に取得されるため、手動での編集は必要ありません。
IPv6
識別子を使用するようにインターフェースを設定するには、root
で以下の形式のコマンドを実行します。
~]# ip token set ::1a:2b:3c:4d/64 dev eth4
::1a:2b:3c:4d/64
は使用するトークンに置き換えます。この設定は永続的ではありません。これを永続化するには、コマンドを init スクリプトに追加します。「インターフェース制御スクリプト」を参照してください。
53
の DNS
サーバーでは、::53/
64 のトークンを使用できます。
IPv6
トークンすべてを表示するには、以下のコマンドを実行します。
~]$ ip token
token :: dev eth0
token :: dev eth1
token :: dev eth2
token :: dev eth3
token ::1a:2b:3c:4d dev eth4
IPv6
トークンを表示するには、以下のコマンドを実行します。
~]$ ip token get dev eth4
token ::1a:2b:3c:4d dev eth4
IP
アドレスではなく、既存のトークン化された識別子のみを置き換えます。
11.7. ネットワーク機能ファイル
/etc/sysconfig/network-scripts/network-functions
ファイルには、最も一般的に使用される IPv4
機能が含まれています。これは、多くのインターフェース制御スクリプトで役に立ちます。これらの機能には、インターフェースのステータスの変更に関する情報、ホスト名の設定、ゲートウェイデバイスの検出、特定のデバイスがダウンしているかどうかの確認、デフォルトルートの追加などを要求した実行中のプログラムへの問い合わせが含まれます。
IPv6
インターフェースに必要な機能は IPv4
インターフェースとは異なるため、/etc/sysconfig/network-scripts/network-functions-ipv6
ファイルは、特にこの情報を保持するために存在します。このファイルの機能は、静的 IPv6
ルートの設定および削除、トンネルの作成/削除、インターフェースへの IPv6
アドレスの追加と削除、インターフェース上の IPv6
アドレスの存在のテストを行います。
11.8. ethtool
ethtool(8)
を参照してください。より包括的な一覧と説明は、を参照してください。最初の 2 つの例は情報クエリー で、さまざまな形式のコマンドの使用を表示します。
ethtool [option...] devname
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
~]$ 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
-short
形式および --long
形式になります。
-
--statistics
--statistics
または-S
は、NIC およびドライバーの統計について指定されたネットワークデバイスをクエリーします。以下の形式を取ります。-S
,--statistics
devnameここで、devname はご自分の NIC に置き換えます。-
--identify
--identify
または-p
オプションは、Operator が sight によってアダプターを簡単に特定できるように、アダプター固有のアクションを開始します。通常、これには、指定されたネットワークポートで 1 つ以上の LED をブリンクする必要があります。以下の形式を取ります。-p, --identify
devname integerここでの integer は、アクションを実行する時間(秒単位)です。また、devname はご自分の NIC です。-
--show-time-stamping
--show-time-stamping
または-T
オプションは、指定されたネットワークデバイスにタイムスタンプのパラメーターについてクエリーします。以下の形式を取ります。-T, --show-time-stamping
devnameここで、devname はご自分の NIC に置き換えます。-
--show-offload
--show-features
または--show-offload
または-k
オプションは、指定されたネットワークデバイスに、プロトコルオフロードおよびその他の機能についてクエリーします。以下の形式を取ります。-k, --show-features, --show-offload
devnameここで、devname はご自分の NIC に置き換えます。-
--test
--test
または-t
オプションは、ネットワークインターフェースカードでテストを実行するために使用されます。以下の形式を取ります。-t, --test
devname wordここでの 単語 は以下のいずれかになります。オフライン
: 包括的なテストを実行します。サービスが中断されます。オンライン
: テストの縮小されたセットを実行します。サービスが中断されないでください。external_lb
: ループバックケーブルに適合しながら、ループバックテストを含むテストの完全セットを実行します。
また、devname はご自分の NIC です。
-s
または --change
オプションが必要です。以下のオプションはすべて、-s
または --change
オプションが指定されている場合にのみ適用されます。分かりやすくするために、ここでは省略します。
ETHTOOL_OPTS
ディレクティブを使用します。インターフェース設定ファイルで使用して、ネットワークインターフェースの起動時に必要なオプションを設定できます。このディレクティブの使用方法は、「イーサネットインターフェース」 を参照してください。
-
--offload
--features
、または--offload
オプション、または-K
オプションは、オフロードパラメーターと、指定したネットワークデバイスのその他の機能を変更します。以下の形式を取ります。-K, --features, --offload
devname feature booleanfeature は組み込み機能またはカーネルが提供する機能です。boolean はON
またはOFF
のいずれかです。また、devname はご自分の NIC です。man ページのethtool(8)に
は、ほとんどの機能が記載されています。機能セットは NIC ドライバーに依存するため、man ページに記載されていない機能についてはドライバーのドキュメントを参照してください。-
--speed
--speed
オプションは、1 秒あたりのメガバイト(Mb/s)の速度を設定するために使用されます。速度値を省略すると、対応しているデバイス速度が表示されます。以下の形式を取ります。--speed
number devnameここでの number は、1 秒あたりのメガバイト(Mb/s)の速度です。また、devname はご自分の NIC です。-
--duplex
--duplex
オプションは、操作の送受信モードを設定するのに使用します。以下の形式を取ります。--duplex
word devnameここでの 単語 は以下のいずれかになります。half
: half-duplex モードを設定します。通常、ハブに接続するときに使用されます。full
: 完全 duplex モードを設定します。通常、スイッチまたは別のホストに接続する場合に使用します。
また、devname はご自分の NIC です。-
--port
--port
オプションは、デバイスポートの選択に使用されます。以下の形式を取ります。--port
value devnamevalue は以下のいずれかになります。TP
- Twisted-Pair ケーブルをメディアとして使用するイーサネットインターフェース。- A
ui
- Attachment Unit Interface(AUI)。通常はハブで使用されます。 Bnc
: BNC コネクターおよび共存ケーブルを使用するイーサネットインターフェース。MII:
Media Independent Interface(MII)を使用するイーサネットインターフェース。Fibre
: メディアに Optical Fibre を使用するイーサネットインターフェース。
また、devname はご自分の NIC です。-
--autoneg
--autoneg
オプションは、ネットワーク速度とモード(full-duplex または half-duplex モード)の自動ネゴシエーションを制御するために使用されます。オートネゴシエーションが有効な場合は、-r, --negotiate
オプションを使用して、ネットワーク速度と操作のモードの再ネゴシエーションを開始できます。--a, --show-pause
オプションを使用して自動ネゴシエーションの状態を表示できます。以下の形式を取ります。--autoneg
value devnamevalue は以下のいずれかになります。はい
: ネットワーク速度と操作モードの自動ネゴシエーションを許可します。- No: ネットワーク速度および操作モードの自動ネゴシエーションを許可しません。
また、devname はご自分の NIC です。-
--advertise
--advertise
オプションは、自動ネゴシエーション用に公開される操作の速度およびモード(duplex モード)を設定するために使用されます。引数は、表11.1「ethtool アドバタイズオプション: 動作の速度とモード」 の 1 つ以上の 16 進数値です。以下の形式を取ります。--advertise
option devnameここでの option は、以下の表の 16 進数の値の 1 つまたは複数で、devname はご自分の NIC になります。表11.1 ethtool アドバタイズオプション: 動作の速度とモード 16 進値 速度 duplex モード IEEE standard? 0x001 10 半分◯ 0x002 10 Full◯ 0x004 100 半分◯ 0x008 100 Full◯ 0x010 1000 半分 ❌ 0x020 1000 Full◯ 0x8000 2500 Full ◯ 0x1000 10000 Full ◯ 0x20000 20000MLD2 Full ❌ 0x20000 20000MLD2 Full ❌ 0x40000 20000KR2 Full ❌ -
--phyad
--phyad
オプションを使用して、物理アドレスを変更します。多くの場合は MAC またはハードウェアアドレスと呼ばれますが、このコンテキストは物理アドレスと呼ばれます。以下の形式を取ります。--phyad
physical_address devnamephysical_address は 16 進数形式の物理アドレスで、devname はご自分の NIC に置き換えます。-
--xcvr
--xcvr
オプションは、transceiver タイプを選択するために使用されます。現在、「内部」 および 「外部」 のみを指定できます。他のタイプが追加される可能性があります。以下の形式を取ります。--xcvr
word devnameここでの 単語 は以下のいずれかになります。internal
: 内部トランザクションを使用します。external
: 外部トランザクションを使用します。
また、devname はご自分の NIC です。-
--wol
--wol
オプションは、「Wake-on-LAN」 オプションを設定します。すべてのデバイスがこれをサポートしているわけではありません。このオプションの引数は、有効にするオプションを指定する文字の文字列です。以下の形式を取ります。--wol
value devnamevalue は、以下のいずれかになります。P
- PHY アクティビティーでウェイクします。U
- ユニキャストメッセージの Wake。m
- マルチキャストメッセージの Wake。b
- ブロードキャストメッセージの場合g
- Wake-on-Lan; 「マジックパケット」の受信時にウェイクします。s
- Wake-on-Lan のパスワードを使用してセキュリティー機能を有効にします。- D - Wake-on-Lan を無効にし、すべての設定を消去します。
また、devname はご自分の NIC です。-
--sopass
--sopass
オプションを使用して 「SecureOn」 パスワードを設定します。このオプションの引数は、イーサネット MAC 16 フォーマットの 6 バイトでなければなりません(xx:yy:zz:aa:bb:cc)。以下の形式を取ります。--sopass
xx:yy:zz:aa:bb:cc devnameここで、xx:y:zz:aa:bb:cc は MAC アドレスと同じ形式のパスワードで、devname はご自分の NIC です。-
--msglvl
--msglvl
オプションは、名前または数字でドライバーの message-type フラグを設定するのに使用します。これらのタイプフラグの正確な意味はドライバーによって異なります。以下の形式を取ります。--msglvl
message_type devnameここで、message_type は以下のいずれかになります。- メッセージタイプ名(プレーンテキスト)。
- メッセージタイプを示す 16 進数。
また、devname はご自分の NIC です。定義されたメッセージタイプ名と数字を以下の表に示します。表11.2 ドライバーメッセージタイプ メッセージタイプ 16 進値 説明 drv 0x0001 一般的なドライバーのステータスprobe 0x0002 ハードウェアプローブリンク 0x0004 リンク状態timer 0x0008 Periodic status checkifdown 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 ステータス
11.9. netconsole
の設定
netconsole
カーネルモジュールにより、ネットワーク経由でカーネルメッセージを別のコンピューターに記録できます。これにより、ディスクロギングに失敗した場合やシリアルコンソールを使用できない場合に、カーネルのデバッグを行うことができます。
リストマシンの設定
netconsole
ロギングメッセージの受信を有効にするには、rsyslog パッケージをインストールします。
]# yum install rsyslog
rsyslogd
が 514/UDP ポートをリッスンし、ネットワークからメッセージを受信するように設定するには、/etc/rsyslog.conf
の MODULES
セクションの以下の行のコメントを解除します。
$ModLoad imudp $UDPServerRun 514
rsyslogd
サービスを再起動して、変更を有効にします。
]# service rsyslog restart
rsyslogd
が 514/udp ポートでリッスンしていることを確認するには、次のコマンドを使用します。
]# netstat -l | grep syslog
udp 0 0 *:syslog *:*
udp 0 0 *:syslog *:*
0 *:syslog
値は、/etc/services
ファイルで定義されているデフォルトの netconsole
ポートでリッスンしていることを意味します。
]$ cat /etc/services | grep syslog
syslog 514/udp
syslog-conn 601/tcp # Reliable Syslog Service
syslog-conn 601/udp # Reliable Syslog Service
syslog-tls 6514/tcp # Syslog over TLS
送信元マシンの設定
netconsole
は、initscripts パッケージに含まれる /etc/sysconfig/netconsole
ファイルを使用して設定されます。このパッケージはデフォルトでインストールされ、netconsole
サービスも提供します。
syslogd
サーバーの IP アドレスに一致するように、/etc/sysconfig/netconsole
ファイルの SYSLOGADDR
変数の値を設定します。
SYSLOGADDR=192.168.0.1
netconsole
サービスを再起動して、変更を適用します。次に、chkconfig コマンドを使用して、次回の再起動後に netconsole
サービスが自動的に起動するようにします。
]# service netconsole restart Initializing netconsole [ OK ] ]# chkconfig netconsole on
rsyslogd
サーバーは、/var/log/messages
のクライアントからの netconsole
メッセージ、または rsyslog.conf
で指定されたファイルに書き込みます。
rsyslogd
と netconsole
が別のポートを使用するように設定するには、/etc/rsyslog.conf
の以下の行を必要なポート番号に変更します。
$UDPServerRun <PORT>
/etc/sysconfig/netconsole
ファイルの以下の行をアンコメントして編集します。
SYSLOGPORT=514
netconsole
設定の詳細およびトラブルシューティングのヒントについては、Netconsole カーネルのドキュメント を参照してください。
11.10. その他のリソース
インストールされているドキュメント
/usr/share/doc/initscripts-version/sysconfig.txt
: 本章で説明されていないIPv6
オプションを含む、ネットワーク設定ファイルの利用可能なオプションに関するガイドです。
オンラインリソース
- http://linux-ip.net/gl/ip-cref/ - 本書には、ip コマンドに関する情報が記載されています。これはルーティングテーブルを操作するのに使用できます。
- Red Hat Access Labs: Red Hat Access Labs には、「Network Bonding Helper」 が同梱されています。
その他の参考資料
パート V. インフラストラクチャーサービス
第12章 サービスおよびデーモン
12.1. デフォルトのランレベルの設定
ランレベル | 説明 |
---|---|
0 | システムの停止に使用されます。このランレベルは予約されており、変更することはできません。 |
1 | シングルユーザーモードで実行するために使用されます。このランレベルは予約されており、変更することはできません。 |
2 | デフォルトでは使用されません。自由に定義できます。 |
3 | コマンドラインユーザーインターフェースを使用して、完全なマルチユーザーモードで実行するために使用されます。 |
4 | デフォルトでは使用されません。自由に定義できます。 |
5 | グラフィカルユーザーインターフェースを使用して、完全なマルチユーザーモードで実行するために使用されます。 |
6 | システムを再起動するために使用されます。このランレベルは予約されており、変更することはできません。 |
~]$ runlevel
N 5
/etc/inittab
ファイルを変更して変更できます。このファイルには、以下のようなファイルの末尾付近の行が含まれています。
id:5:initdefault:
root
として編集し、この行の番号を必要な値に変更します。この変更は、次回システムを再起動すると有効になります。
12.2. サービスの設定
irqbalance
サービスを有効にすることが推奨されます。多くの場合、このサービスは Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 のインストール時に実行されるようにインストールおよび設定されます。irqbalance
が root
として実行されていることを確認するには、シェルプロンプトで以下を入力します。
~]# service irqbalance status
irqbalance (pid 1234) is running...
12.2.1. Service 設定ユーティリティーの使用
system-config-services
ユーティリティーは、system-config-services パッケージで提供されます。これは、お使いの Red Hat Enterprise Linux バージョンにはデフォルトでインストールされない可能性があります。これを確認するには、まず以下のコマンドを実行します。
~]$ rpm -q system-config-services
~]# yum install system-config-services
図12.1 Service Configuration ユーティリティー

[D]
/etc/rc.d/init.d/
ディレクトリーのサービス)と、xinetdが制御するサービスの一覧とその説明と現在のステータスを表示します。使用されるアイコンの完全リストと、その意味の説明は、表12.2「考えられるサービス状態」 を参照してください。
アイコン | 説明 |
---|---|
![]() [D] | サービスが有効になっている。 |
![]() [D] | サービスが無効になっています。 |
![]() [D] | このサービスは、選択したランレベルでのみ有効になります。 |
![]() [D] | サービスが実行している。 |
![]() [D] | サービスが停止している。 |
![]() [D] | サービスに問題があります。 |
![]() [D] | サービスのステータスは不明です。 |
12.2.1.1. サービスの有効化および無効化
12.2.1.2. サービスの起動、再起動、停止
12.2.1.3. ランレベルの選択
12.2.2. ntsysv ユーティリティーの使用
root
でシェルプロンプトで ntsysv と入力します。
図12.2 ntsysv ユーティリティー

[D]
/etc/rc.d/init.d/
ディレクトリーのサービス)と現在のステータスと、F1 を押して取得可能な説明を表示します。使用されているシンボルの一覧と、その意味の説明は、表12.3「考えられるサービス状態」 を参照してください。
記号 | 説明 |
---|---|
[*] | サービスが有効になっている。 |
[ ] | サービスが無効になっています。 |
12.2.2.1. サービスの有効化および無効化
12.2.2.2. ランレベルの選択
root
で、設定する各ランレベルを表す追加の --level
オプションの後に、0 から 6 の数字を付けてコマンドを実行します。
ntsysv --level
runlevels
~]# ntsysv --level 35
12.2.3. chkconfig ユーティリティーの使用
12.2.3.1. サービスの一覧表示
/etc/rc.d/init.d/
ディレクトリーからのサービス、xinetdが制御するサービス)を表示するには、type 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
chkconfig --list
service_name
sshd
サービスの現在の設定を表示するには、以下を入力します。
~]# chkconfig --list sshd
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
~]# chkconfig --list rsync
rsync off
12.2.3.2. サービスの有効化
root
で次のコマンドを実行します。
chkconfig service_name on
httpd
サービスを有効にするには、以下を入力します。
~]# chkconfig httpd on
--level
オプションに続いて、サービスを実行する各ランレベルを表す 0 から 6 の数字を追加します。
chkconfig service_nameon
--level
runlevels
~]# chkconfig abrtd on --level 35
xinetd
が管理するサービスで操作する場合は --level
オプションは使用し ない でください。これはサポートされていないためです。たとえば、rsync
サービスを有効にするには、以下を入力します。
~]# chkconfig rsync on
12.2.3.3. サービスの無効化
root
で次のコマンドを実行します。
chkconfig service_name off
httpd
サービスを無効にするには、以下を入力します。
~]# chkconfig httpd off
--level
オプションの後に 0 から 6 の数字を付けて、サービスを実行したく ない 各ランレベルを追加します。
chkconfig service_nameoff
--level
runlevels
~]# chkconfig abrtd off --level 24
xinetd
が管理するサービスで操作する場合は --level
オプションは使用し ない でください。これはサポートされていないためです。たとえば、rsync
サービスを無効にするには、以下を入力します。
~]# chkconfig rsync off
12.3. サービスの実行
/etc/init.d/
ディレクトリーからサービスを起動、停止、または再起動できます。
12.3.1. サービスステータスの決定
service service_name status
httpd
サービスのステータスを確認するには、以下を入力します。
~]# service httpd status
httpd (pid 7474) is running...
--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...
12.3.2. サービスの起動
root
で次のコマンドを実行します。
service service_name start
httpd
サービスを起動するには、以下を入力します。
~]# service httpd start
Starting httpd: [ OK ]
12.3.3. サービスの停止
root
で次のコマンドを実行します。
service service_name stop
httpd
サービスを停止するには、以下を入力します。
~]# service httpd stop
Stopping httpd: [ OK ]
12.3.4. サービスの再開
root
で次のコマンドを実行します。
service service_name restart
httpd
サービスを再起動するには、以下を入力します。
~]# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
12.4. その他のリソース
12.4.1. インストールされているドキュメント
- chkconfig(8): chkconfig ユーティリティーの man ページです。
- ntsysv(8)- ntsysv ユーティリティーの man ページです。
- service(8): service ユーティリティーの man ページです。
- system-config-services(8)- system-config-services ユーティリティーの man ページです。
12.4.2. 関連書籍
- 『Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 Security Guide』
- Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 のセキュリティーを保護するためのガイドこれには、ファイアウォールの設定方法や、SELinux の設定に関する役立つ情報が含まれています。
第13章 認証の設定
13.1. システム認証の設定
13.1.1. Authentication Configuration Tool UI の起動
- root でシステムにログインします。
- ID および認証。アイデンティティーストアとして使用するリソース (ユーザー ID と対応する認証情報が保存されるデータリポジトリー) を設定します。
- 高度なオプション。スマートカードやフィンガープリントなどのパスワードや証明書以外の認証方法を許可します。
13.1.2. 認証用のアイデンティティーストアの選択
図13.1 ローカル認証

13.1.2.1. LDAP 認証の設定
- 「Authentication Configuration Tool UI の起動」 のとおりに、認証設定ツールを開きます。
- User Account Database ドロップダウンメニューで を選択します。
- LDAP サーバーへの接続に必要な情報を設定します。
- LDAP 検索ベース DN は、ユーザーディレクトリーのルートサフィックスまたは 識別名 (DN) を提供します。ID/認証に使用されるユーザーエントリーはすべて、この親エントリーの下に存在します。例: ou=people,dc=example,dc=comこのフィールドは任意です。これが指定されていない場合、System Security Services Daemon(SSSD)は、LDAP サーバーの設定エントリーの
namingContexts
およびdefaultNamingContext
属性を使用して検索ベースの検出を試みます。 - LDAP サーバー は LDAP サーバーの URL を提供します。これには通常、ldap://ldap.example.com:389 などの LDAP サーバーのホスト名およびポート番号の両方が必要です。URL ldaps:// にセキュアなプロトコルを入力すると、 ボタンが有効になります。
- TLS を使用して接続を暗号化する かどうかは、Start TLS を使用して LDAP サーバーへの接続を暗号化するかどうかを設定します。これにより、標準ポートを介したセキュアな接続が可能になります。TLS を選択すると、ボタンが有効になります。これは、発行した認証局から LDAP サーバーの発行元の CA 証明書を取得します。CA 証明書は、プライバシーにより強化されたメール(PEM)形式である必要があります。重要サーバー URL がセキュアなプロトコル(ldaps)を使用する場合は、TLS を使用して接続を暗号化する ことはでき ませ ん。このオプションは、標準ポートでセキュアな接続を開始する Start TLS を使用します。セキュアなポートが指定されている場合は、TLS の代わりに SSL などのプロトコルを使用する必要があります。
- 認証方法を選択します。LDAP は、簡単なパスワード認証または Kerberos 認証を許可します。Kerberos の使用については、「LDAP または NIS 認証での Kerberos の使用」 を参照してください。LDAP パスワード オプションは、PAM アプリケーションで LDAP 認証を使用します。このオプションには、LDAP サーバーに接続するためにセキュアな(ldaps://)URL または TLS オプションのいずれかが必要です。
13.1.2.2. NIS 認証の設定
- ypbind パッケージをインストールします。これは NIS サービスに必要ですが、デフォルトではインストールされません。
~]# yum install ypbind
ypbind
サービスをインストールすると、ポートマップとyp
bind - 「Authentication Configuration Tool UI の起動」 のとおりに、認証設定ツールを開きます。
- User Account Database ドロップダウンメニューで を選択します。
- NIS サーバーに接続する情報を設定します。つまり、NIS ドメイン名およびサーバーホスト名になります。NIS サーバーが指定されていない場合、authconfig デーモンは NIS サーバーをスキャンします。
- 認証方法を選択します。NIS は、簡単なパスワード認証または Kerberos 認証を許可します。Kerberos の使用については、「LDAP または NIS 認証での Kerberos の使用」 を参照してください。
13.1.2.3. Winbind 認証の設定
- samba-winbind パッケージをインストールします。これは、Samba サービスの Windows 統合機能に必要ですが、デフォルトではインストールされません。
~]# yum install samba-winbind
- 「Authentication Configuration Tool UI の起動」 のとおりに、認証設定ツールを開きます。
- User Account Database ドロップダウンメニューで を選択します。
- Microsoft Active Directory ドメインコントローラーへの接続に必要な情報を設定します。
- Winbind ドメイン は、接続する Windows ドメインを提供します。これは、DOMAIN などの Windows 2000 形式である必要があります。
- セキュリティーモデル は、Samba クライアントに使用するセキュリティーモデルを設定します。authconfig は、以下の 4 種類のセキュリティーモデルをサポートします。
- ads は、Samba が Active Directory Server レルムのドメインメンバーとして動作するように設定します。このモードで実行するには、krb5-server パッケージをインストールして、Kerberos を適切に設定する必要があります。また、コマンドラインを使用して Active Directory Server に参加する場合は、以下のコマンドを使用する必要があります。
net ads join
- ドメイン には、Windows サーバーなど、Windows プライマリーまたはバックアップドメインコントローラーで認証することで、Samba がユーザー名/パスワードを検証します。
- サーバー には、Windows サーバーなどの別のサーバーで認証することで、ローカルの Samba サーバーがユーザー名/パスワードを検証します。サーバーの認証を試みると、システムは user モードで認証を試行します。
- ユーザー には、有効なユーザー名およびパスワードでクライアントにログインする必要があります。このモードは、暗号化されたパスワードに対応します。ユーザー名の形式は domain\user (例: EXAMPLE\jsmith) である必要があります。注記指定したユーザーが Windows ドメインに存在することを確認するには、常に Windows 2000 形式の形式を使用してバックスラッシュ(\)文字をエスケープしてください。以下に例を示します。
~]# getent passwd domain\\user DOMAIN\user:*:16777216:16777216:Name Surname:/home/DOMAIN/user:/bin/bash
以下はデフォルトのオプションになります。
- Winbind ADS レルム は、Samba サーバーが参加する Active Directory レルムを提供します。これは、ads セキュリティーモデルとのみ使用されます。
- winbind ドメインコントローラーは、使用するドメインコントローラーを提供します。ドメインコントローラーの詳細は、「ドメインコントローラー」 を参照してください。
- テンプレート シェルは、Windows ユーザーアカウント設定に使用するログインシェルを設定します。
- オフラインログインを許可する と、認証情報をローカルキャッシュに保存できます。システムがオフライン時に、ユーザーがシステムリソースに認証を試みるとキャッシュが参照されます。
Winbind
サービスの詳細は、「Samba デーモンと関連サービス」 を参照してください。
smb.conf
ファイルの一部を生成する Winbind Mapper
ユーティリティーが含まれます。
13.1.2.4. LDAP または NIS 認証での Kerberos の使用
- これは、標準ポートを介した接続を許可する一方で、通信にセキュリティーレイヤーを使用します。
- SSSD で認証情報キャッシュを自動的に使用します。これにより、オフラインログインが可能になります。
図13.2 Kerberos フィールド

- レルム は、Kerberos サーバーのレルム名を指定します。レルムは、Kerberos を使用するネットワークで、1 つ以上の キー配布センター (KDC) と、潜在的に多数のクライアントで構成されます。
- KDC は、Kerberos チケットを発行するサーバーのコンマ区切りリストを提供します。
- 管理サーバー は、レルムで kadmind プロセスを実行する管理サーバーのリストを提供します。
- 必要に応じて、DNS を使用してサーバーのホスト名を解決し、レルム内で追加の KDC を見つけます。
13.1.3. 代替認証機能の設定
図13.3 高度な設定

13.1.3.1. フィンガープリント認証の使用
13.1.3.2. ローカル認証パラメーターの設定
- ローカルアクセス制御を有効 にすると、
/etc/security/access.conf
ファイルに、ローカルユーザー承認ルールを確認するように指示します。 - パスワードハッシュアルゴリズムは 、 ローカルに保存されたパスワードの暗号化に使用するハッシュアルゴリズムを設定します。
13.1.3.3. スマートカード認証の有効化
- カード削除アクション は、アクティブなセッション中にカードがカードリーダーから削除されるときにシステムに応答する方法を指示します。システムは削除を無視し、ユーザーが通常通りにリソースにアクセスできるようにしたり、スマートカードが提供されるまでシステムが直ちにロックできます。
- ログ インにスマートカード が必要であるか、ログインに許可されているか、スマートカードのログインが必要です。このオプションを選択すると、認証の他のすべての方法がすぐにブロックされます。警告スマートカードを使用してシステムに正常に認証されるまで、このオプションを選択しないでください。
13.1.3.4. ユーザーホームディレクトリーの作成
13.1.4. コマンドラインでの認証設定
13.1.4.1. authconfig を使用するためのヒント
- すべてのコマンドで、
--update
オプションまたは--test
オプションのいずれかを使用します。コマンドを正常に実行するには、以下のオプションのいずれかが必要です。--update
を使用すると、設定の変更が書き込まれます。--test
は変更を stdout に出力しますが、設定の変更は適用されません。 - 有効化オプションには、それぞれ対応する無効化オプションがあります。
13.1.4.2. LDAP ユーザーストアの設定
--enableldap
を使用します。LDAP を認証ソースとして使用する場合は、--enableldapauth
を使用して、LDAP サーバー名、ユーザーサフィックスのベース DN、TLS を使用するかどうか (オプション) など、必要な接続情報を使用します。authconfig コマンドには、ユーザーエントリーの RFC 2307bis スキーマを有効または無効にするオプションもありますが、認証設定 UI では不可能です。
--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
--ldapauth
を使用する代わりに、LDAP ユーザーストアで Kerberos を使用できます。これらのオプションは、「Kerberos 認証の設定」 で説明されています。
13.1.4.3. NIS ユーザーストアの設定
--enablenis
を使用します。Kerberos パラメーターが明示的に設定されていない限り、NIS 認証が自動的に使用されるため、Kerberos 認証(「Kerberos 認証の設定」)が使用されます。NIS サーバーおよび NIS ドメインを特定するためのパラメーターのみ。これを使用しないと、authconfig
サービスは NIS サーバーのネットワークをスキャンします。
authconfig --enablenis --nisdomain=EXAMPLE --nisserver=nis.example.com --update
13.1.4.4. Winbind ユーザーストアの設定
authconfig --enablewinbind --enablewinbindauth --smbsecurity=user|server --enablewinbindoffline --smbservers=ad.example.com --smbworkgroup=EXAMPLE --update
~]# getent passwd domain\\user DOMAIN\user:*:16777216:16777216:Name Surname:/home/DOMAIN/user:/bin/bash
authconfig --enablewinbind --enablewinbindauth --smbsecurity ads --enablewinbindoffline --smbservers=ad.example.com --smbworkgroup=EXAMPLE --smbrealm EXAMPLE.COM --winbindtemplateshell=/bin/sh --update
13.1.4.5. Kerberos 認証の設定
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
13.1.4.6. ローカル認証設定の構成
authconfig --enablemkhomedir --update
authconfig --passalgo=sha512 --update
13.1.4.7. フィンガープリント認証の設定
authconfig
設定 (LDAP ユーザーストアなど) と併用できます。
~]# authconfig --enablefingerprint --update
13.1.4.8. スマートカード認証の設定
、--enablesmartcard
オプションを設定することだけです。
~]# authconfig --enablesmartcard --update
~]# authconfig --enablesmartcard --smartcardaction=0 --update
~]# authconfig --enablerequiresmartcard --update
--enablerequiresmartcard
オプションを使用しないでください。それ以外の場合は、ユーザーがシステムにログインできなくなる可能性があります。
13.1.4.9. キックスタートファイルと設定ファイルの管理
--update
オプションは、設定の変更ですべての設定ファイルを更新します。いくつかの代替オプションがあり、動作が若干異なります。
--kickstart
は、更新された設定をキックスタートファイルに書き込みます。--test
は、全設定を標準出力(stdout)に変更しますが、設定ファイルは編集されません。
authconfig
を使用して以前の設定をバックアップおよび復元できます。すべてのアーカイブは /var/lib/authconfig/
ディレクトリーの一意のサブディレクトリーに保存されます。たとえば、--savebackup
オプションは、バックアップディレクトリーを 2011-07-01 として指定します。
~]# authconfig --savebackup=2011-07-01
/var/lib/authconfig/backup-2011-07-01
ディレクトリーの下にあるすべての認証設定ファイルのバックアップが作成されます。
--restorebackup
オプションを使用して設定を復元し、手動で保存した設定の名前を指定します。
~]# authconfig --restorebackup=2011-07-01
--update
オプションを使用して) 変更を適用する前に設定のバックアップを作成します。設定は、--restorelastbackup
オプションを使用して完全バックアップを指定することなく、最新の自動バックアップから復元できます。
13.1.5. カスタムホームディレクトリーの使用
/home
にないホームディレクトリーを持っていて、ユーザーが最初にログインしたときにホームディレクトリーを作成するようにシステムが構成されている場合、これらのディレクトリーは誤った権限で作成されます。
/home
ディレクトリーから、ローカルシステムで作成されたホームディレクトリーに、正しい SELinux コンテキストおよびパーミッションを適用します。以下に例を示します。~]# semanage fcontext -a -e /home /home/locale
- システムに oddjob-mkhomedir パッケージをインストールします。このパッケージは、認証設定ツールがホームディレクトリーの作成に使用する
pam_oddjob_mkhomedir.so
ライブラリーを提供します。デフォルトのpam_mkhomedir.so
ライブラリーとは異なり、pam_oddjob_mkhomedir.so
ライブラリーでは、SELinux ラベルを作成できます。Authentication Configuration Tool は、利用可能な場合はpam_oddjob_mkhomedir.so
ライブラリーを自動的に使用します。それ以外の場合、デフォルトではpam_mkhomedir.so
が使用されます。 oddjobd
サービスが実行中であることを確認します。- 「代替認証機能の設定」 にあるように、Authentication Configuration Tool を再度実行し、ホームディレクトリーを有効にします。
~]# semanage fcontext -a -e /home /home/locale # restorecon -R -v /home/locale
13.2. SSSD での認証情報の使用およびキャッシュ
13.2.1. SSSD について
- ID/認証サーバーの負荷を削減します。すべてのクライアントサービスが識別サーバーに直接アクセスしようとするのではなく、すべてのローカルクライアントは、識別サーバーに接続したり、そのキャッシュをチェックできる SSSD に問い合わせることができます。
- オフライン認証を許可します。SSSD は、必要に応じて、リモートサービスから取得するユーザー ID および認証情報のキャッシュを維持できます。これにより、リモート識別サーバーがオフラインの場合やローカルマシンがオフラインであっても、ユーザーはリソースに対して正常に認証できます。
- 単一ユーザーアカウントの使用リモートユーザーには、ローカルシステム用のユーザーアカウントと組織システム用のユーザーアカウントなど、2 つ(または複数)ユーザーアカウントが頻繁にあります。これは、仮想プライベートネットワーク(VPN)に接続するために必要です。SSSD はキャッシュおよびオフライン認証をサポートするため、リモートユーザーはローカルマシンに認証し、SSSD がネットワーク認証情報を維持することでネットワークリソースに接続できます。
その他のリソース
本章では、SSSD でのサービスとドメインの設定の基本を説明しますが、これは包括的なリソースではありません。SSSD の各機能エリアには、その他の多くの設定オプションを利用できます。オプションの完全な一覧を表示するには、特定の機能エリアの man ページを参照してください。
sssd(8)
man ページの「See Also」セクションには、SSSD の man ページの完全なリストもあります。
機能エリア | man ページ | ||
---|---|---|---|
一般的な設定 | sssd.conf(8) | ||
sudo Services | sssd-sudo | ||
LDAP ドメイン | sssd-ldap | ||
Active Directory ドメイン |
| ||
Identity Management(IdM または IPA)ドメイン |
| ||
ドメインの Kerberos 認証 | sssd-krb5 | ||
OpenSSH キー |
| ||
キャッシュのメンテナンス |
|
13.2.2. sssd.conf ファイルの設定
.conf
ファイルで設定されます。デフォルトでは、これは /etc/sssd/sssd.conf
になりますが、SSSD はインストール後に設定されていないため、このファイルは手動で作成および設定する必要があります。
13.2.2.1. sssd.conf ファイルの作成
- [SSSD]、一般的な SSSD プロセスと運用設定用。基本的には、それぞれの設定済みサービス、ドメイン、および設定パラメーターを一覧表示します。
- [service_name]、サポートされている各システムサービスの設定オプションの場合(を参照) 「SSSD およびシステムサービス」
- [domain_type/DOMAIN_NAME]、設定済みの各アイデンティティープロバイダーの設定オプションの場合重要サービスはオプションですが、SSSD サービスを起動する前に少なくとも 1 つのアイデンティティープロバイダードメインを設定する必要があります。
例13.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 がアイデンティティープロバイダーとして使用するsssd.conf
で設定されているすべてのドメインを一覧表示します。ドメインがdomains
キーに記載されていない場合は、configuration セクションがある場合でも SSSD では使用されません。サービス
は、SSSD を使用するsssd.conf
で設定されるすべてのシステムサービスを一覧表示します。SSSD が起動すると、設定された各システムサービスについて対応する SSSD サービスが起動します。サービスがservices
キーに記載されていない場合は、configuration セクションがある場合でも SSSD では使用されません。config_file_version
は、ファイル形式の期待値を設定する設定ファイルのバージョンを設定します。最新の SSSD バージョンの場合、これはバージョン 2 です。
ドメイン
が sssd.conf
ファイルで設定されている場合でも、[sssd] セクションにそれぞれサービスまたはドメインが表示されていない限り、SSSD はその サービス
またはドメインと対話しません。
sssd.conf
の man ページに記載されています。
13.2.2.2. カスタム設定ファイルの使用
/etc/sssd/sssd.conf
であることを前提としています。
-c
オプションを使用して SSSD に渡すことができます。
~]# sssd -c /etc/sssd/customfile.conf --daemon
13.2.3. SSSD の起動および停止
/etc/init.d/sssd
スクリプトのいずれかが SSSD を起動できます。以下に例を示します。
~]# service sssd start
- authconfig コマンドで SSSD を有効にします。
~]# authconfig --enablesssd --enablesssdauth --update
- chkconfig コマンドを使用して、SSSD プロセスを開始リストに追加します。
~]# chkconfig sssd on
13.2.4. SSSD およびシステムサービス
sssd.conf
ファイルで設定されます。[sssd]
セクションは、sssd
が services ディレクティブ内で開始する際にアクティブで、起動する必要がある サービス も一覧表示します。
sssd_nss
モジュールから name サービス要求に応答する 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 アイデンティティープロバイダーの一部として設定されます。この操作は、「サービスの設定: autofs」 で説明しています。
- LDAP サーバーに接続して、設定された sudo ポリシーを取得する sudo プロバイダーサービスこれは、設定ファイルの [domain/NAME] セクションの LDAP アイデンティティープロバイダーの一部として設定されます。この操作は、「サービスの設定: sudo」 で説明しています。
- SSSD が Kerberos で機能して Active Directory ユーザーおよびグループを管理する方法を定義する PAC レスポンダーサービス。これは、特に 「ドメインの作成: Active Directory」 で説明されているように、ドメインを使用した Active Directory アイデンティティープロバイダーの管理に含まれます。
13.2.5. サービスの設定: NSS
sssd_nss
を提供します。これは、SSSD を使用してユーザー情報を取得するように指示します。NSS 設定には SSSD モジュールへの参照が含まれ、SSSD 設定は SSSD が NSS と対話する方法を設定します。
NSS サービスマップおよび SSSD
- パスワード(パスワード)
- ユーザーグループ(シャドウ)
- グループ(グループ)
- Netgroups (netgroups)
- サービス(サービス)
手順13.1 SSSD を使用するように NSS サービスを設定する
- 認証設定ツールを使用して SSSD を有効にします。これにより、
nsswitch.conf
ファイルが SSSD をプロバイダーとして使用するように自動的に設定されます。~]# authconfig --enablesssd --update
これにより、パスワード、シャドウ、グループ、および netgroups サービスが SSSD モジュールを使用するようにマップされます。passwd: files sss shadow: files sss group: files sss netgroup: files sss
- SSSD が authconfig で有効になっている場合、サービスマップはデフォルトでは有効になっていません。このマップを追加するには、
nsswitch.conf
ファイルを開き、sss モジュールを サービス マップに追加します。~]# vim /etc/nsswitch.conf ... services: file
sss
...
手順13.2 NSS と連携する SSSD の設定
sssd.conf
ファイルを開きます。~]# vim /etc/sssd/sssd.conf
- NSS が SSSD と連携するサービスの 1 つとしてリストされていることを確認します。
[sssd] config_file_version = 2 reconnection_retries = 3 sbus_timeout = 30 services =
nss
, pam - [nss] セクションで、NSS パラメーターを変更します。これらについては、表13.2「SSSD [nss] 設定パラメーター」 に一覧表示されます。
[nss] filter_groups = root filter_users = root reconnection_retries = 3 entry_cache_timeout = 300 entry_cache_nowait_percentage = 75
- SSSD を再起動します。
~]# service sssd restart
パラメーター | 値の形式 | 説明 |
---|---|---|
entry_cache_nowait_percentage | 整数 | キャッシュを更新する前に sssd_nss がキャッシュされたエントリーを返す期間を指定します。このパラメーターをゼロ(0 )に設定すると、エントリーキャッシュの更新が無効になります。
これにより、次の更新の前にある期間が次の期間になる前にエントリーキャッシュが要求されると、バックグラウンドでエントリーを更新するよう自動的にエントリーキャッシュが設定されます。たとえば、間隔が 300 秒でキャッシュの割合が 75 の場合、要求が 225 秒 - 75% の間隔でエントリーキャッシュの更新が開始されます。
このオプションに許可される値は 0 から 99 です。これにより、
entry_cache_timeout の値に基づいてパーセンテージが設定されます。デフォルト値は 50% です。
|
entry_negative_timeout | 整数 | sssd_nss が 負 のキャッシュヒットをキャッシュする期間(秒単位)を指定します。負のキャッシュヒットは、存在しないエントリーを含む、無効なデータベースエントリーのクエリーです。 |
filter_users、filter_groups | 文字列 | 特定のユーザーが NSS データベースから取得されないように SSSD に指示します。これは、root などのシステムアカウントに特に便利です。 |
filter_users_in_groups | Boolean | グループ検索の実行時に filter_users リストに一覧表示されているユーザーがグループメンバーシップに表示されるかどうかを設定します。FALSE に設定すると、グループの検索はそのグループのメンバーであるすべてのユーザーを返します。指定されていない場合、デフォルト値は true で、グループメンバーの一覧をフィルターします。 |
debug_level | 整数、0 - 9 | デバッグロギングレベルを設定します。 |
NSS の互換性モード
/etc/passwd
ファイルの追加エントリーをサポートし、netgroup のユーザーまたはメンバーがシステムにアクセスできるようにします。
/etc/nsswitch.conf
ファイルに以下のエントリーを追加します。
passwd: compat passwd_compat: sss
passwd
エントリーがサポートされます。
+user
-user
ネットワーク情報システム(NIS)マップから指定した ユーザー を include(+
)または exclude(-
)します。+@netgroup
-@netgroup
NIS マップから指定した netgroup 内の全ユーザーを追加(+
)または exclude(-
)します。+
以前の NIS マップから除外したユーザー以外は、全ユーザーを除外します。
nsswitch.conf(5)
man ページを参照してください。
13.2.6. サービスの設定: PAM
sssd_pam
を提供します。これにより、SSSD を使用してユーザー情報を取得するようシステムに指示します。PAM 設定には SSSD モジュールへの参照が含まれ、SSSD 設定は SSSD が PAM と対話する方法を設定します。
手順13.3 PAM の設定
- 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 quietaccount [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_authtokpassword 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_uidsession sufficient pam_sss.so
session required pam_unix.soこれらのモジュールは、必要に応じてステートメントを含める
ように設定できます。 sssd.conf
ファイルを開きます。# vim /etc/sssd/sssd.conf
- PAM が SSSD と連携するサービスの 1 つとしてリストされていることを確認します。
[sssd] config_file_version = 2 reconnection_retries = 3 sbus_timeout = 30 services = nss,
pam
- [pam] セクションで、PAM パラメーターを変更します。これらについては、表13.3「SSSD [pam] 設定パラメーター」 に一覧表示されます。
[pam] reconnection_retries = 3 offline_credentials_expiration = 2 offline_failed_login_attempts = 3 offline_failed_login_delay = 5
- SSSD を再起動します。
~]# service sssd restart
パラメーター | 値の形式 | 説明 |
---|---|---|
offline_credentials_expiration | 整数 | 認証プロバイダーがオフラインの場合にキャッシュされたログインを許可する期間を日数単位で設定します。この値は、最後に成功したオンラインログインから測定されます。指定されていない場合、デフォルトでゼロ(0 )に設定されます。これは無制限になります。 |
offline_failed_login_attempts | 整数 | 認証プロバイダーがオフラインの場合に失敗したログイン試行の数を設定します。指定されていない場合、デフォルトでゼロ(0 )に設定されます。これは無制限になります。 |
offline_failed_login_delay | 整数 | ユーザーが失敗したログイン試行制限にヒットした場合にログイン試行を防ぐ期間を設定します。ゼロ(0 )に設定すると、プロバイダーがオフラインの場合に、試行に失敗した制限に達すると、ユーザーは認証できません。オンライン認証に成功すると、オフライン認証を再度有効にできます。指定されていない場合、デフォルトは5 (5)に設定されます。 |
13.2.7. サービスの設定: autofs
自動マウント、LDAP、および SSSD
pub
をホストする nfs.example.com という名前のファイルサーバーがあり、自動マウントが /shares/
ディレクトリーにディレクトリーをマウントするように設定されているとします。そのため、マウント場所は /shares/pub
です。すべてのマウントは auto.master
ファイルに一覧表示されます。このファイルは、さまざまなマウントディレクトリーとそれらのマウントディレクトリーを設定するファイルを識別します。次に、auto.shares
ファイルは各ファイルサーバーと、/shares/
ディレクトリーにあるマウントディレクトリーを識別します。関係は、以下のように表示できます。
auto.master _________|__________ | | | | /shares/ auto.shares | | | nfs.example.com:pub
auto.master
と auto)で定義されます。
ファイルに関係なく、これらのファイルは各ローカル自動マウントプロセスで利用できる必要があります。
# 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
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
/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"
手順13.4 SSSD での autofs サービスの設定
- autofs パッケージおよび sssd-common パッケージがインストールされていることを確認します。
sssd.conf
ファイルを開きます。~]# vim /etc/sssd/sssd.conf
- autofs サービスを、SSSD が管理するサービスの一覧に追加します。
[sssd] services = nss,pam,
autofs
.... - [autofs] サービス設定を新しいセクションを作成します。このセクションは空白のままにすることができます。負のキャッシュヒットのタイムアウトについては、設定可能なオプションが 1 つのみあります。ただし、このセクションでは、SSSD が autofs サービスを認識し、デフォルト設定を提供する必要があります。
[autofs]
- 自動マウント情報は、SSSD 設定の設定済みの LDAP ドメインから読み取られるため、LDAP ドメインが利用可能でなければなりません。追加の設定がない場合、設定は自動マウント情報の RFC 2307 スキーマおよび LDAP 検索ベース(ldap_search_base)にデフォルト設定されます。これはカスタマイズが可能です。
- ディレクトリータイプ autofs_provider。デフォルトは id_provider の値に設定されます。値が none の場合は、ドメインの 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
sssd.conf
ファイルを保存して閉じます。nsswitch.conf
ファイルを編集し、ldap から sss に変更して、SSSD で自動マウントマップ情報を検索するように autofs を設定します。# vim /etc/nsswitch.conf automount: files
sss
- SSSD を再起動します。
# service sssd restart
13.2.8. サービスの設定: sudo
sudo、LDAP、および SSSD について
sudoers
ファイルで定義されます。これは、一貫性を保つためにすべてのマシンに個別に分散する必要があります。
Defaults env_keep+=SSH_AUTH_SOCK ... %wheel ALL=(ALL) ALL
# 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
sudoHost
属性の値に応じてローカルシステムに適用される sudo ルールのみをキャッシュします。つまり、sudoHost
の値が ALL に設定されていると、ホスト名と一致する正規表現、システムの netgroup と一致する正規表現を使用するか、システムのホスト名、完全修飾ドメイン名、または IP アドレスと一致させます。
手順13.5 SSSD を使用した sudo の設定
- sssd-common パッケージがインストールされていることを確認します。
~]$ rpm -q sssd-common
sssd.conf
ファイルを開きます。~]# vim /etc/sssd/sssd.conf
- SSSD が管理するサービス一覧に sudo サービスを追加します。
[sssd] services = nss,pam,
sudo
.... - 新しい [sudo] サービス設定セクションを作成します。このセクションは空白のままにすることができます。1 つの設定可能なオプションは 1 つしかなく、sudo がピリオドの前または後に評価するための設定可能です。ただし、このセクションでは、SSSD が sudo サービスを認識し、デフォルト設定を提供する必要があります。
[sudo]
- 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
Identity Management(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=comldap_sasl_mech = GSSAPI
ldap_sasl_authid = host/hostname.example.com
ldap_sasl_realm = EXAMPLE.COM
krb5_server = ipa.example.com
注記Identity Management プロバイダーの sudo_provider タイプは ldap です。 - 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 に設定されていると、ホスト名と一致する正規表現、システムの netgroup と一致する正規表現を使用するか、システムのホスト名、完全修飾ドメイン名、または IP アドレスと一致させます。 - 必要に応じて、sudo ルールに使用されるスキーマを変更する値を設定します。スキーマ要素は ldap_sudorule_* 属性で設定されます。デフォルトでは、スキーマ要素はすべて sudoers.ldap で定義されたスキーマを使用します。これらのデフォルトはほぼすべてのデプロイメントで使用されます。
sssd.conf
ファイルを保存して閉じます。nsswitch.conf
ファイルを編集して sss の場所を追加して、SSSD でルール設定を検索するように sudo を設定します。~]# vim /etc/nsswitch.conf sudoers: files
sss
- SSSD を再起動します。
~]# service sssd restart
13.2.9. サービスの設定: OpenSSH およびキャッシュされたキー
known_hosts
ファイルまたは authorized_keys
のリモートユーザーに保存されます。リモートマシンまたはユーザーが再度認証を試みるたびに、ローカルシステムは最初に known_hosts
ファイルまたは authorized_keys
ファイルをチェックして、リモートエンティティーが認識され、信頼できるかどうかを確認します。存在する場合には、アクセスが許可されます。
known_hosts
ファイルは、マシン名、その IP アドレス、および公開鍵のトリプレットです。
server.example.com,255.255.255.255 ssh-rsa AbcdEfg1234ZYX098776/AbcdEfg1234ZYX098776/AbcdEfg1234ZYX098776=
known_hosts
ファイルは、さまざまな理由ですぐに古くなる可能性があります。たとえば、IP アドレスを介して DHCP サイクルを使用しているシステム、新しい鍵を定期的に再発行することも、仮想マシンまたはサービスをオンラインおよび削除することもできます。これにより、ホスト名、IP アドレス、およびキートリプレットが変更されます。
known_hosts
ファイルを消去して維持する必要があります。(またはシステムユーザーは、提示されるマシンと鍵を受け入れることで、キーベースのセキュリティーのセキュリティー上のメリットを否定します。)
known_hosts
ファイルが均一に更新されていないため、一部のシステムで認識され、他のシステムで信頼されないマシンまたはユーザーが存在する可能性があります。
known_hosts
ファイルで通常の認証メカニズムを使用する必要があります。
ホストキーに SSSD を使用するように OpenSSH の設定
~/.ssh/config
)またはシステム全体の設定ファイル(/etc/ssh/ssh_config
)で設定されます。ユーザーファイルはシステム設定よりも優先され、パラメーターで最初に取得した値が使用されます。このファイルのフォーマットおよび規則は、14章OpenSSH で説明されています。
- Identity Management サーバーから公開鍵キーを取得し、
/var/lib/sss/pubconf/known_hosts
ファイルに保存するように SSSD に要求します。 - ソケット(デフォルト)またはプロキシーコマンドのいずれかを使用して、ホストマシンとの接続を確立します。
sss_ssh_knownhostsproxy [-d sssd_domain] [-p ssh_port] HOST [PROXY_COMMAND]
短い引数 | 長い引数 | 説明 |
---|---|---|
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 クライアントに接続します。デフォルトでは、これはポート 22 です。 |
ssh_config
または ~/.ssh/config
ファイルに 2 つのパラメーターを追加または編集します。
- SSH クライアント(ProxyCommand)への接続に使用するコマンドを指定します。これは sss_ssh_knownhostsproxy で、必要な引数とホスト名を使用します。
- SSSD ホストファイルの場所を指定します(グローバル既知のホストファイル)。
ProxyCommand /usr/bin/sss_ssh_knownhostsproxy -p %p %h GlobalKnownHostsFile /var/lib/sss/pubconf/known_hosts
ユーザーキーに SSSD を使用するように OpenSSH の設定
sshd
により読み取られ、ファイルに保存されません。
sshd
を設定するには(この場合は sss_ssh_authorizedkeys ツール)、/etc/ssh/sshd_config
ファイルの AuthorizedKeysCommand ディレクティブを使用します。
authorized_keys
形式で出力できます。コマンドの形式は以下のとおりです。
sss_ssh_authorizedkeys [-d sssd_domain] USER
短い引数 | 長い引数 | 説明 |
---|---|---|
USER | 公開鍵を取得するユーザー名またはアカウント名。OpenSSH 設定ファイルでは、これはトークン %u で表示できます。 | |
-d sssd_domain | --domain sssd_domain | 指定のドメインのエントリーで公開鍵のみを検索します。指定のない場合は、SSSD は設定済みのすべてのドメインで鍵を検索します。 |
/etc/ssh/sshd_config
で設定されます。
AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys AuthorizedKeysCommandRunAs nobodyこれおよび他のオプションは、man ページの
sshd_config(5)
に記載されています。変更を反映するには、sshd
サービスを再起動する必要があります。
13.2.10. SSSD および ID プロバイダー(ドメイン)
- 一般的な LDAP サーバーの場合
- Active Directory(LDAP プロバイダータイプの拡張)
- Identity Management(LDAP プロバイダータイプの拡張)
- ローカル SSSD データベースのローカル(ローカル)
- Proxy
- Kerberos(認証プロバイダーのみ)
識別プロバイダー | 認証プロバイダー |
---|---|
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] domains = LOCAL,Name ... [domain/Name] id_provider = type auth_provider = type provider_specific = value global = value
パラメーター | 値の形式 | 説明 |
---|---|---|
id_provider | 文字列 | このドメインに使用するデータバックエンドを指定します。サポート対象のアイデンティティーバックエンドは以下のとおりです。
|
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 ディレクトリーが UID 番号を使用していると、ローカルの /etc/passwd ファイルのユーザーとの競合が発生する可能性があります。このような競合を回避するには、可能な限り min_id を 1000 以上に設定します。
|
cache_credentials | Boolean | オプション:ローカルの SSSD ドメインデータベースキャッシュにユーザーの認証情報を保存するかどうかを指定します。このパラメーターのデフォルト値は false です。LOCAL ドメイン以外のドメインではこの値を true に設定して、オフライン認証を有効にします。 |
entry_cache_timeout | 整数 | オプション:SSSD が 正 のキャッシュヒットをキャッシュする期間(秒単位)を指定します。正のキャッシュヒットはクエリーに成功します。 |
use_fully_qualified_names | Boolean | オプション:このドメインへの要求に完全修飾ドメイン名を必要とするかどうかを指定します。true に設定すると、このドメインへのすべての要求は完全修飾ドメイン名を使用する必要があります。また、要求からの出力に完全修飾名が表示されることも意味します。完全修飾ユーザー名への要求を制限すると、SSSD はユーザー名が競合しているユーザーを持つドメインを区別できます。
use_fully_qualified_names が false に設定されている場合、リクエストの完全修飾名を使用できますが、出力には簡素化されたバージョンのみが表示されます。
SSSD は、レルム名ではなく、ドメイン名に基づいた名前のみを解析できます。ただし、ドメインとレルムの両方に同じ名前を使用できます。
|
13.2.11. ドメインの作成: LDAP
- Red Hat Directory Server
- OpenLDAP
- Identity Management(IdM または IPA)
- Microsoft Active Directory 2008 R2
LDAP ドメインを設定するためのパラメーター
ldap_pwd_policy=shadow
オプションを設定する場合、ユーザーの shadow
LPAD 属性で定義したポリシーは、OpenLDAP サーバーでパスワードポリシーが有効であるかどうかには影響しません。
sssd-ldap(5)
の man ページに記載されています。
パラメーター | 説明 |
---|---|
ldap_uri | SSSD が接続する LDAP サーバーの URI のコンマ区切りリストを指定します。一覧は優先順に指定されるため、一覧の最初のサーバーが最初に試行されます。追加のサーバーを一覧表示すると、フェイルオーバーの保護が提供されます。これは、DNS SRV レコードが指定されない場合は検出できます。 |
ldap_search_base |
LDAP ユーザー操作の実行に使用するベース DN を指定します。
重要
正しく使用しないと、 ldap_search_base により SSSD ルックアップが失敗する可能性があります。
AD プロバイダーでは、
ldap_search_base を設定する必要はありません。AD プロバイダーは必要な情報をすべて自動的に検出します。Red Hatnbsp;Hat は、この状況でパラメーターを設定せず、代わりに AD プロバイダーが検出するものに依存することを推奨します。
|
ldap_tls_reqcert | TLS セッションで SSL サーバー証明書を確認する方法を指定します。4 つのオプションがあります。
|
ldap_tls_cacert | SSSD が認識するすべての CA の CA 証明書が含まれるファイルに完全パスおよびファイル名を指定します。SSSD は、これらの CA が発行する証明書を受け入れます。
明示的に指定されていない場合は、OpenLDAP システムのデフォルトを使用します。
|
ldap_referrals | SSSD が LDAP 参照を使用するかどうかを設定します。つまり、クエリーを LDAP データベースから別の LDAP データベースに転送します。SSSD は、データベースレベルおよびサブツリー参照をサポートします。同じ LDAP サーバー内の参照元では、SSSD はクエリーされるエントリーの DN を調整します。異なる LDAP サーバーを参照する参照の場合、SSSD は DN で完全に一致します。この値を true に設定すると参照元が有効になります。これがデフォルトです。
参照元の追跡試行に費やされた時間が原因で、全体のパフォーマンスに悪影響を及ぼす可能性があります。リファーラルチェックを無効にすると、パフォーマンスが大幅に向上します。
|
ldap_schema | ユーザーエントリーの検索時に使用するスキーマのバージョンを設定します。これには、rfc2307 、rfc2307bis 、ad 、または ipa を指定できます。デフォルトは rfc2307 です。
RFC 2307 では、グループオブジェクトは多値属性
memberuid を使用します。これは、そのグループに属するユーザーの名前を一覧表示します。RFC 2307bis では、グループオブジェクトは、ユーザーまたはグループエントリーの完全な識別名(DN)を含む member 属性を使用します。RFC 2307bis は、member 属性を使用してネスト化されたグループを許可します。これらの異なるスキーマはグループメンバーシップに異なる定義を使用するため、SSSD で誤った LDAP スキーマを使用すると、適切なパーミッションが設定されていてもネットワークリソースの表示と管理に悪影響を及ぼす可能性があります。
たとえば、RFC 2307bis の場合、ネスト化されたグループまたはプライマリー/セカンダリーグループを使用する場合にすべてのグループが返されます。
$ id uid=500(myserver) gid=500(myserver) groups=500(myserver),510(myothergroup)
SSSD が RFC 2307 スキーマを使用している場合は、プライマリーグループのみが返されます。
この設定は、SSSD がグループメンバーを決定する方法にのみ影響します。実際のユーザーデータは変更されません。
|
ldap_search_timeout | LDAP 検索がキャンセルされ、キャッシュされた結果が返されるまでの実行時間を秒単位で設定します。
LDAP 検索がタイムアウトすると、SSSD は自動的にオフラインモードに切り替わります。
|
ldap_network_timeout | 接続試行に失敗した後に SSSD が LDAP サーバーのポーリングを試みる時間を秒単位で設定します。デフォルトは 6 秒です。 |
ldap_opt_timeout | サーバーから応答が受信されない場合に、同期 LDAP 操作を中止するまでの待機時間を秒単位で設定します。このオプションは、SASL バインドの場合の KDC との通信時にタイムアウトを制御します。デフォルトは 5 秒です。 |
LDAP ドメインの例
sssd.conf
ファイルのクエリーを行う SSSD のドメイン一覧に新しいドメインを追加します。以下に例を示します。
domains = LOCAL,LDAP1,AD,PROXYNIS
例13.2 基本的な LDAP ドメイン設定
- LDAP サーバー
- 検索ベース
- セキュアな接続を確立する方法
ldap_uri
オプションの一部として設定されます。
# An LDAP domain [domain/LDAP] cache_credentials = true id_provider = ldap auth_provider = ldap ldap_uri = ldaps://ldap.example.com:636 ldap_search_base = dc=example,dc=com
ldap_id_use_start_tls
オプションを使用して Start TLS を使用し、ldap_tls_cacert
オプションを使用して SSL サーバー証明書を発行した CA 証明書を特定します。
# An LDAP domain [domain/LDAP] 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
13.2.12. ドメインの作成: Identity Management(IdM)
*_provider
また、Identity Management には、SELinux ポリシー、自動マウント情報、ホストベースのアクセス制御を管理する独自のドメイン内に設定オプションがあります。IdM ドメインの機能はすべて SSSD 設定に関連付けて、システムユーザーにこれらのセキュリティー関連のポリシーを適用し、キャッシュすることができます。
例13.3 基本的な IdM プロバイダー
- デフォルトの RFC 2307 スキーマではなく、特定の IdM スキーマを使用します。
- クライアントが最初に IdM ドメインに接続するときに、Identity Management ドメインの DNS サーバーをこのクライアントの IP アドレスで更新するように 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
sssd.conf
の IdM ドメインエントリーで管理できます。
例13.4 SELinux を使用した IdM プロバイダー
selinux_provider = ipa
例13.5 ホストベースのアクセス制御のある IdM プロバイダー
- SSSD は、ユーザーが IdM リソースに接続するために使用するマシン(ソースホスト)を評価できます。これはデフォルトでは無効になっているため、ルールのターゲットホスト部分のみが評価されます。
- SSSD は、指定した間隔で、キャッシュのホストベースのアクセス制御ルールを更新できます。
access_provider = ipa ipa_hbac_refresh = 120 # check for source machine rules; disabled by default ipa_hbac_support_srchost = true
例13.6 レルム間の Kerberos 信頼を使用したアイデンティティー管理
- Kerberos チケットに必要なデータを追加するサービス
- サブドメインをサポートする設定
[sssd]
services = nss, pam, pac
...
[domain/IDM] ... subdomains_provider = ipa get_domains_timeout = 300
13.2.13. ドメインの作成: Active Directory
- Windows セキュリティー ID を使用する ID は、対応する Linux システムユーザー ID にマップされる必要があります。
- 検索では、範囲の取得拡張機能を考慮する必要があります。
- LDAP 参照にはパフォーマンスの問題が発生する可能性があります。
Active Directory Securiy ID および Linux ユーザー ID のマッピング
- Services for Unix を使用した Windows ユーザーおよびグループエントリーに POSIX 属性を挿入し、それらの属性を PAM/NSS にプルする
- SSSD で ID マッピングを使用した Active Directory セキュリティー ID(SID)と Linux で生成された UID 間のマップの作成
ID マッピングのメカニズム
S-1-5-21-3623811015-3361044348-30300820-1013
S-1-5-21-3623811015-3361044348-30300820
-1013
S-1-5-21-3623811015-3361044348-30300820-1013
|_____________________________| | | minimum ID max ID
| slice 1 | slice 2 | ... | |_________|_________|_________| | | | | minimum ID max ID
| Active | Active | | |Directory|Directory| | |domain 1 |domain 2 | ... | | | | | | slice 1 | slice 2 | ... | |_________|_________|_________| | | | | minimum ID max ID
ID マッピングパラメーター
ldap_id_mapping = True ldap_schema = ad
uidNumber
属性および gidNumber
属性は無視されます。これにより、手動で割り当てられた値を防ぐことができます。いずれか の値を手動で割り当てる必要がある場合は、すべて の値を手動で割り当て、ID マッピングを無効にする必要があります。
ユーザーのマッピング
- ユーザーのシステム UID が、そのドメインの SID と ID 範囲に基づいて作成されます。
- GID は、UID と同じユーザー用に作成されます。
- ユーザー用にプライベートグループが作成されます。
sssd.conf
ファイルのホームディレクトリーの形式に基づいて、ホームディレクトリーが作成されます。- シェルは、システムのデフォルト、または
sssd.conf
ファイルの設定に従って作成されます。 - ユーザーが Active Directory ドメイン内のグループに所属する場合は、SID を使用して、SSSD により、Linux システムのこれらのグループにユーザーが追加されます。
Active Directory ユーザーと範囲の取得検索
MaxValRange
があります。この属性は、多値属性の値の数に制限を設定します。これは、検索拡張機能を 取得する範囲 です。基本的に、これは複数検索を実行し、すべての一致が返されるまで、指定した範囲内で結果のサブセットを返します。
member
属性の検索を行う場合、各エントリーには複数の値があり、その属性を持つエントリーが複数ある可能性があります。2000 に一致する結果(またはそれ以上)がある場合、MaxValRange
は一度に表示される値を制限します。これは、値の範囲です。指定される属性には追加のフラグセットがあり、結果が置かれているセットの範囲を表示します。
attribute:range=low-high:value
member;range=99-499: cn=John Smith...
パフォーマンスおよび LDAP 参照
ldap_referrals = false
他のプロバイダータイプとしての Active Directory
access_provider = ldap ldap_access_order = expire ldap_account_expire_policy = ad
手順13.6 Active Directory アイデンティティープロバイダーの設定
*_provider
さらに、デフォルトの RFC 2307 を使用するのではなく、ユーザーおよびグループのエントリー用にネイティブの Active Directory スキーマを読み込むこともできます。
- Active Directory システムおよび Linux システムの両方に適切に構成されている環境があることを確認します。
- 特に SSSD でサービス検出を使用する場合は、名前解決を適切に設定する必要があります。
- Kerberos が正常に機能するには、両方のシステムのクロックが同期されている必要があります。
- Linux システムを Active Directory クライアントとして設定し、Active Directory ドメイン内に登録します。これは、Linux システムで Kerberos サービスおよび Samba サービスを設定して行います。
- Active Directory Kerberos レルムを使用するように Kerberos を設定します。
- Kerberos クライアント設定ファイルを開きます。
~]# vim /etc/krb5.conf
- [logging] セクションおよび [libdefaults] セクションを設定し、Active Directory レルムに接続するようにします。
[logging] default = FILE:/var/log/krb5libs.log [libdefaults] default_realm = EXAMPLE.COM dns_lookup_realm = true dns_lookup_kdc = true ticket_lifetime = 24h renew_lifetime = 7d rdns = false forwardable = false
SSSD で自動検出を使用しない場合は、[realms] セクションおよび [domain_realm] セクションも設定し、Active Directory サーバーを明示的に定義します。
- Active ディレクトリーサーバーに接続するように Samba サーバーを設定します。
- Samba 設定ファイルを開きます。
~]# vim /etc/samba/smb.conf
- [global] セクションに Active Directory ドメイン情報を設定します。
[global] workgroup = EXAMPLE client signing = yes client use spnego = yes kerberos method = secrets and keytab log file = /var/log/samba/%m.log password server = AD.EXAMPLE.COM realm = EXAMPLE.COM security = ads
- Linux マシンを Active Directory ドメインに追加します。
- Windows 管理ユーザーの Kerberos 認証情報を取得します。
~]# kinit Administrator
- net コマンドを使用してマシンをドメインに追加します。
~]# net ads join -k Joined 'server' to dns domain 'example.com'
これにより、新しい keytab ファイル/etc/krb5.keytab
が作成されます。システムのキーを一覧表示し、ホストプリンシパルが存在することを確認します。~]# klist -k
- authconfig を使用して、システム認証に SSSD を有効にします。
# authconfig --update --enablesssd --enablesssdauth
- 例13.7「Active Directory 2008 R2 ドメイン」 および 例13.8「ID マッピングのある Active Directory 2008 R2 ドメイン」 に示されるように、Active Directory ドメインを SSSD 設定の ID プロバイダーとして設定します。
- SSH サービスを再起動して、新しい PAM 設定を読み込みます。
~]# service sshd restart
- 設定ファイルの変更後に SSSD を再起動します。
~]# service sssd restart
例13.7 Active Directory 2008 R2 ドメイン
~]# vim /etc/sssd/sssd.conf [sssd] config_file_version = 2 domains = ad.example.com services = nss, pam ... [domain/ad.example.com] id_provider = ad ad_server = ad.example.com ad_hostname = ad.example.com auth_provider = ad chpass_provider = ad access_provider = ad # defines user/group schema type ldap_schema = ad # using explicit POSIX attributes in the Windows entries ldap_id_mapping = False # caching credentials cache_credentials = true # access controls ldap_access_order = expire ldap_account_expire_policy = ad ldap_force_upper_case_realm = true # performance ldap_referrals = false
例13.8 ID マッピングのある Active Directory 2008 R2 ドメイン
~]# vim /etc/sssd/sssd.conf [sssd] config_file_version = 2 domains = ad.example.com services = nss, pam ... [domain/ad.example.com] id_provider = ad ad_server = ad.example.com ad_hostname = ad.example.com auth_provider = ad chpass_provider = ad access_provider = ad# defines user/group schema type
ldap_schema = ad
# for SID-UID mapping
ldap_id_mapping = True
# caching credentials cache_credentials = true # access controls ldap_access_order = expire ldap_account_expire_policy = ad ldap_force_upper_case_realm = true # performance ldap_referrals = false
sssd-ldap(5)および sssd-ad(5
)
の man ページに記載されています。
13.2.14. ドメインの設定: LDAP プロバイダーとしての Active Directory(Alternative)
手順13.7 LDAP プロバイダーとしての Active Directory の設定
- SSSD は SASL を使用して Active Directory サーバーに接続することが推奨されます。つまり、ローカルホストには Linux ホスト の Windows ドメイン のサービスキータブが必要です。このキータブは Samba を使用して作成できます。
- Active Directory レルムを使用するように
/etc/krb5.conf
ファイルを設定します。[logging] default = FILE:/var/log/krb5libs.log [libdefaults] default_realm = AD.EXAMPLE.COM dns_lookup_realm = true dns_lookup_kdc = true ticket_lifetime = 24h renew_lifetime = 7d rdns = false forwardable = false [realms] # Define only if DNS lookups are not working # AD.EXAMPLE.COM = { # kdc = server.ad.example.com # admin_server = server.ad.example.com # master_kdc = server.ad.example.com # } [domain_realm] # Define only if DNS lookups are not working # .ad.example.com = AD.EXAMPLE.COM # ad.example.com = AD.EXAMPLE.COM
- Samba 設定ファイル
/etc/samba/smb.conf
を設定して、Windows Kerberos レルムを参照します。[global] workgroup = EXAMPLE client signing = yes client use spnego = yes kerberos method = secrets and keytab log file = /var/log/samba/%m.log password server = AD.EXAMPLE.COM realm = EXAMPLE.COM security = ads
- Kerberos を初期化するには、
root
で以下のコマンドを入力します。~]# kinit Administrator@EXAMPLE.COM
- 次に net ads コマンドを実行して管理者プリンシパルとしてログインします。この管理者アカウントにはマシンを Windows ドメインに追加するのに十分な権限が必要ですが、ドメイン管理者権限は必要ありません。
~]# net ads join -U Administrator
- net ads を再度実行して、ホストマシンをドメインに追加します。これは、ホストプリンシパル(host/FQDN)で行うか、必要に応じて NFS サービス(nfs/FQDN)を使用して実行できます。
~]# net ads join createupn="host/rhel-server.example.com@AD.EXAMPLE.COM" -U Administrator
- Unix パッケージのサービスが Windows サーバーにインストールされていることを確認します。
- SSSD で使用する Windows ドメインを設定します。
- Windows マシンで Server Manager を開きます。
- Active Directory ドメインサービス ロールを作成します。
- ad.example.com などの新しいドメインを作成します。
- Active Directory Domain Services ロールに UNIX サービス用の Identity Management を追加します。Unix NIS ドメインを、設定のドメイン名として使用します。
- Active Directory サーバーで、Linux ユーザーのグループを作成します。
- Administrative Tools を開き、Active Directory Users および Computers を選択します。
- Active Directory ドメイン ad.example.com を選択します。
- Users タブで右クリックし、 を選択します。
- 新しいグループ unixusers という名前を付け、保存します。
- unixusers グループエントリーをダブルクリックして、Users タブを開きます。
- Unix Attributes タブを開きます。
- NIS ドメインを、ad.example.com に設定し、必要に応じてグループ ID(GID)番号を設定する NIS ドメインに設定します。
- Unix グループに含まれるようにユーザーを設定します。
- Administrative Tools を開き、Active Directory Users および Computers を選択します。
- Active Directory ドメイン ad.example.com を選択します。
- Users タブで右クリックし、 を選択します。
- 新しいユーザー aduser という名前を付け、ユーザーが 次回のログオンと Lock アカウント の チェックボックスが選択されて いない ことを確認します。次に、ユーザーを保存します。
- aduser ユーザーエントリーをダブルクリックして、Unix Attributes タブを開きます。Unix 設定が Active Directory ドメインと unixgroup グループと一致することを確認します。
- Active Directory ドメイン用に作成された NIS ドメイン
- UID
- ログインシェルの /bin/bash
- ホームディレクトリーの /home/aduserへのホームディレクトリー
- プライマリーグループ名( unixusersへ)
ヒント大規模なディレクトリーのパスワード検索には、要求ごとに数秒かかる場合があります。最初のユーザールックアップは、LDAP サーバーへの呼び出しです。インデックスのない検索はリソース集約型が多いため、サーバーはディレクトリー内のすべてのエントリーが一致するかどうかをチェックするため、インデックス化された検索よりも時間がかかります。ユーザー検索を迅速化するには、SSSD が検索する属性をインデックス化します。- uid
- uidNumber
- gidNumber
- gecos
- Linux システムで、SSSD ドメインを設定します。
~]# vim /etc/sssd/sssd.conf
LDAP プロバイダーパラメーターの完全なリストは、sssd-ldap(5)
man ページを参照してください。例13.9 Unix のサービスがある Active Directory 2008 R2 ドメイン
[sssd] config_file_version = 2 domains = ad.example.com services = nss, pam ... [domain/ad.example.com] cache_credentials = true # for performance ldap_referrals = false id_provider = ldap auth_provider = krb5 chpass_provider = krb5 access_provider = ldap ldap_schema = rfc2307bis ldap_sasl_mech = GSSAPI ldap_sasl_authid = host/rhel-server.example.com@AD.EXAMPLE.COM #provide the schema for services for unix ldap_schema = rfc2307bis ldap_user_search_base = ou=user accounts,dc=ad,dc=example,dc=com ldap_user_object_class = user ldap_user_home_directory = unixHomeDirectory ldap_user_principal = userPrincipalName # optional - set schema mapping # parameters are listed in sssd-ldap ldap_user_object_class = user ldap_user_name = sAMAccountName ldap_group_search_base = ou=groups,dc=ad,dc=example,dc=com ldap_group_object_class = group ldap_access_order = expire ldap_account_expire_policy = ad ldap_force_upper_case_realm = true ldap_referrals = false krb5_realm = AD-REALM.EXAMPLE.COM # required krb5_canonicalize = false
- SSSD を再起動します。
~]# service sssd restart
13.2.15. ドメインオプション: ユーザー名の形式の設定
ldap.example.com
ドメインで jsmith
と jsmith
の両方を正常に認証 でき
ます。
[sssd]
セクションでユニバーサルで定義され、各ドメインセクションで個別に定義することができます(任意)。
(?P<name>[^@]+)@?(?P<domain>[^@]*$)
(?P<domain>[^\\]*?)\\?(?P<name>[^\\]+$)
- username
- username@domain.name
- DOMAIN\username
(((?P<domain>[^\\]+)\\(?P<name>.+$))|((?P<name>[^@]+)@(?P<domain>.+$))|(^(?P<name>[^@\\]+)$))
jsmith@ldap.example.com
などの完全修飾名で情報を要求すると、適切なユーザーアカウントが常に返されます。異なるドメインに同じユーザー名を持つユーザーが複数ある場合は、ユーザー名のみを指定すると、ルックアップ順にドメインが最初に表示されるユーザーが返されます。
デフォルトのドメイン名値
1 つ目は、すべてのユーザーで使用されるデフォルトのドメイン名( default_domain_suffix )を設定します。(これは、[sssd] セクションでのみ利用できるグローバル設定です。) 複数のドメインが設定され、1 つのドメインのみがユーザーデータを格納する場合があり、もう 1 つがホストまたはサービス ID に使用される場合があります。デフォルトのドメイン名を設定すると、ユーザーはドメイン名のみでログインでき、ドメイン名(プライマリードメイン外のユーザーに必要)を指定できません。
[sssd] ... default_domain_suffix = USERS.EXAMPLE.COM
出力のフルネーム形式
他のパラメーターは、ユーザー名の 解釈 を定義するのではなく、識別された名前を 出力 する方法を定義するのではなく、re_expression に関連します。full_name_format パラメーターは、ユーザー名とドメイン名(決定後に)を表示する方法を設定します。
full_name_format = %1$s@%2$s
13.2.16. ドメインオプション: オフライン認証の有効化
[domain/EXAMPLE] cache_credentials = true
[sssd] services = nss,pam ... [pam] offline_credentials_expiration = 3 ... [domain/EXAMPLE] cache_credentials = true ...
- account_cache_expiration は、ログインに成功すると、ユーザーアカウントの全エントリーが SSSD キャッシュから削除されるまでの日数を設定します。これは、個別のオフライン認証情報キャッシュの有効期限と同じか、またはそれ以上である必要があります。
- entry_cache_timeout は、SSSD が ID プロバイダーから更新された情報を要求する前に、キャッシュに保存されているすべてのエントリーに有効期間を秒単位で設定します。group、service、netgroup、sudo、autofs エントリーには個別のキャッシュタイムアウトパラメーターがあります。これらは
sssd.conf
の man ページに記載されています。デフォルトの時間は 5400 秒(90 分)です。
[sssd] services = nss,pam ... [pam] offline_credentials_expiration = 3 ... [domain/EXAMPLE] cache_credentials = true account_cache_expiration = 7 entry_cache_timeout = 14400 ...
13.2.17. ドメインオプション: パスワードの有効期限の設定
pam_pwd_expiration_warning
パラメーターは、パスワードの有効期限の前に警告を表示する前に、すべてのドメインのグローバルデフォルト設定を定義します。これは PAM サービスに設定されます。pwd_expiration_warning
パラメーターは、パスワードの有効期限の前に警告を表示する前に、ドメインごとの設定を定義します。ドメインレベルのパスワード有効期限の警告を使用する場合は、認証プロバイダー(auth_provider
)もドメインに設定する必要があります。
[sssd] services = nss,pam ... [pam] pam_pwd_expiration_warning = 3 ... [domain/EXAMPLE] id_provider = ipa auth_provider = ipa pwd_expiration_warning = 7
0
に設定されていない場合は、SSSD パスワードの警告フィルターが適用されず、サーバー側のパスワード警告が表示されます。
パスワード以外の認証についてのパスワードの有効期限の警告
sssd.conf
ファイルでaccess_provider
パラメーターがldap
に設定されていることを確認します。sssd.conf
でldap_pwd_policy
パラメーターが設定されていることを確認してください。多くの場合、適切な値はshadow
です。sssd.conf
のldap_access_order
パラメーターに、以下のpwd_expire_*
の値のいずれかを追加します。パスワードが期限切れになる場合は、これらの値の 1 つが有効期限の警告のみを表示します。また、以下を追加しています。pwd_expire_policy_reject
は、パスワードの有効期限が切れている場合にユーザーがログインできないようにします。pwd_expire_policy_warn
を使用すると、パスワードが期限切れであってもユーザーはログインできます。pwd_expire_policy_renew
により、ユーザーが期限切れのパスワードでログインしようとすると、すぐにパスワードを変更するように求められます。
以下に例を示します。[domain/EXAMPLE] access_provider = ldap ldap_pwd_policy = shadow ldap_access_order = pwd_expire_policy_warn
ldap_access_order
の使用方法とその値の詳細は、sssd-ldap(5) の man ページを参照してください。
13.2.18. ドメインオプション: DNS サービス検出の使用
_service._protocol.domain
_ldap._tcp.example.com
_service._protocol._domain TTL priority weight port hostname
[domain/EXAMPLE] ... chpass_provider = ldap ldap_chpass_dns_service_name = ldap
[domain/EXAMPLE] id _provider = ldap dns_discovery_domain = corp.example.com ldap_dns_service_name = ldap chpass_provider = krb5 ldap_chpass_dns_service_name = kerberos
[domain/EXAMPLE] id _provider = ldap ldap_uri = _srv_ ldap_backup_uri = ldap://ldap2.example.com auth_provider = krb5 krb5_server = _srv_ krb5_backup_server = kdc2.example.com chpass_provider = krb5 ldap_chpass_dns_service_name = kerberos ldap_chpass_uri = _srv_ ldap_chpass_backup_uri = kdc2.example.com
sssd.conf
設定ファイルの lookup family order
オプションで設定されます。
13.2.19. ドメインオプション: 証明書のサブジェクト名での IP アドレスの使用(LDAP のみ)
ldap_uri
オプションで IP アドレスを使用すると、TLS/SSL 接続が失敗する可能性があります。TLS/SSL 証明書には、IP アドレスではなくサーバー名が含まれます。ただし、証明書の サブジェクトの別名 フィールドを使用して、サーバーの IP アドレスを含めることができます。これにより、IP アドレスを使用した正常な接続が可能になります。
手順13.8 証明書のサブジェクト名での IP アドレスの使用
- 既存の証明書を証明書要求に変換します。署名鍵(
-signkey
)は、最初に証明書を発行した CA の発行者のキーです。外部 CA でこれを行う場合は、別の PEM ファイルが必要です。証明書が自己署名されている場合は、証明書自体になります。以下に例を示します。openssl x509 -x509toreq -in old_cert.pem -out req.pem -signkey key.pem
自己署名証明書の場合:openssl x509 -x509toreq -in old_cert.pem -out req.pem -signkey old_cert.pem
/etc/pki/tls/openssl.cnf
設定ファイルを編集して、[ v3_ca ]
セクションにサーバーの IP アドレスを追加します。subjectAltName = IP:10.0.0.10
- 生成された証明書要求を使用して、指定した IP アドレスで新規の自己署名証明書を生成します。
openssl x509 -req -in req.pem -out new_cert.pem -extfile ./openssl.cnf -extensions v3_ca -signkey old_cert.pem
-extensions
オプションは、証明書で使用する拡張機能を設定します。適切なセクションを読み込むには、v3_ca にする必要があります。 old_cert.pem
ファイルからnew_cert.pem
ファイルに秘密鍵ブロックをコピーし、1 つのファイルに関連情報をすべて保持します。
13.2.20. ドメインの作成: プロキシー
パラメーター | 説明 |
---|---|
proxy_pam_target | PAM を認証プロバイダーとしてプロキシーする必要があるターゲットを指定します。PAM ターゲットは、デフォルトの PAM ディレクトリー /etc/pam.d/ に PAM スタック情報が含まれるファイルです。
これは、認証プロバイダーのプロキシーに使用されます。
重要
プロキシー PAM スタックに pam_sss.so が再帰的に追加 されない ようにします。
|
proxy_lib_name | ID 要求をプロキシー処理する既存の NSS ライブラリーを指定します。
これは、アイデンティティープロバイダーのプロキシーに使用されます。
|
例13.10 プロキシー ID および Kerberos 認証
proxy_lib_name
パラメーターを使用して読み込まれます。このライブラリーは、指定の認証サービスと互換性がある限りすべて使用できます。Kerberos 認証プロバイダーの場合は、NIS などの Kerberos 互換ライブラリーである必要があります。
[domain/PROXY_KRB5] auth_provider = krb5 krb5_server = kdc.example.com krb5_realm = EXAMPLE.COM id_provider = proxy proxy_lib_name = nis cache_credentials = true
例13.11 LDAP アイデンティティーおよびプロキシー認証
proxy_pam_target
パラメーターを使用して読み込まれます。このライブラリーは、指定のアイデンティティープロバイダーと互換性のある PAM モジュールである必要があります。たとえば、以下は LDAP で PAM フィンガープリントモジュールを使用します。
[domain/LDAP_PROXY] id_provider = ldap ldap_uri = ldap://example.com ldap_search_base = dc=example,dc=com auth_provider = proxy proxy_pam_target = sssdpamproxy cache_credentials = true
/etc/pam.d/sssdpamproxy
ファイルを作成し、PAM/LDAP モジュールを読み込みます。
auth required pam_frprint.so account required pam_frprint.so password required pam_frprint.so session required pam_frprint.so
例13.12 プロキシー ID および認証
proxy_pam_target
、NIS や LDAP などのサービスの proxy_lib_name
のみです。
[domain/PROXY_PROXY] auth_provider = proxy id_provider = proxy proxy_lib_name = ldap proxy_pam_target = sssdproxyldap cache_credentials = true
- pam_ldap.so モジュールを必要とする
/etc/pam.d/sssdproxyldap
ファイルを作成します。auth required pam_ldap.so account required pam_ldap.so password required pam_ldap.so session required pam_ldap.so
- nss-pam-ldapd パッケージがインストールされていることを確認します。
~]# yum install nss-pam-ldapd
- LDAP ディレクトリー情報が含まれるように、
/etc/nslcd.conf
ファイル(LDAP ネームサービスデーモンの設定ファイル)を編集します。uid nslcd gid ldap uri ldaps://ldap.example.com:636 base dc=example,dc=com ssl on tls_cacertdir /etc/openldap/cacerts
13.2.21. ドメインの作成: Kerberos 認証
krb5_kpasswd
オプションを使用して、パスワードの変更サービスが実行されている場所、またはデフォルト以外のポートで実行しているかどうかを指定します。krb5_kpasswd
オプションが定義されていない場合は、SSSD は Kerberos KDC を使用してパスワードを変更します。
sssd-krb5(5)
には、Kerberos 設定オプションの詳細情報が記載されています。
例13.13 基本的な Kerberos 認証
# A domain with identities provided by LDAP and authentication by Kerberos [domain/KRBDOMAIN] id_provider = ldap chpass_provider = krb5 ldap_uri = ldap://ldap.example.com ldap_search_base = dc=example,dc=com ldap-tls_reqcert = demand ldap_tls_cacert = /etc/pki/tls/certs/ca-bundle.crt auth_provider = krb5 krb5_server = kdc.example.com krb5_backup_server = kerberos.example.com krb5_realm = EXAMPLE.COM krb5_kpasswd = kerberos.admin.example.com krb5_auth_timeout = 15
例13.14 Kerberos チケット更新オプションの設定
krb5_lifetime = 1h krb5_renewable_lifetime = 1d
krb5_lifetime = 1h krb5_renewable_lifetime = 1d krb5_renew_interval = 60s
パラメーター | 説明 |
---|---|
chpass_provider | パスワード変更操作に使用するサービスを指定します。これは、認証プロバイダーと同じであることを前提としています。Kerberos を使用するには、これを krb5 に設定します。 |
krb5_server | SSSD が接続する IP アドレスまたはホスト名でプライマリー Kerberos サーバーを指定します。 |
krb5_backup_server | プライマリーサーバーが利用できない場合に SSSD が接続する Kerberos サーバーの IP アドレスまたはホスト名のコンマ区切りリストを指定します。一覧は優先順に指定されるため、一覧の最初のサーバーが最初に試行されます。
1 時間後に、SSSD は
krb5_server パラメーターで指定されたプライマリーサービスへの再接続を試みます。
KDC または kpasswd サーバーのサービス検出を使用する場合、SSSD はまず UDP を接続プロトコルとして指定する DNS エントリーを検索し、その後に TCP にフォールバックします。
|
krb5_realm | KDC が提供する Kerberos レルムを特定します。 |
krb5_lifetime | 指定された有効期間(s)、分(m)、時間(h)、または日(d)で Kerberos チケットを要求します。 |
krb5_renewable_lifetime | 更新可能な Kerberos チケットを、秒(s)、分(m)、時間(h)、または日(d)で指定した合計有効期間でリクエストします。 |
krb5_renew_interval | SSSD がチケットを更新するかどうかをチェックする時間を秒単位で設定します。チケットは、有効期間が半分以上になると自動的に更新されます。このオプションがないと、またはゼロに設定されていると、自動チケットの更新が無効になります。 |
krb5_store_password_if_offline | Kerberos 認証プロバイダーがオフラインの場合にユーザーパスワードを保存するかどうかを設定し、プロバイダーがオンラインに戻る際にそのキャッシュを使用してチケットを要求するかどうかを設定します。デフォルトは false で、パスワードを保存しません。 |
krb5_kpasswd | 変更パスワードサービスが KDC で実行していない場合は、使用する別の Kerberos kadmin サーバーを一覧表示します。 |
krb5_ccname_template | ユーザーの認証情報キャッシュの保存に使用するディレクトリーを指定します。これはテンプレート化でき、以下のトークンがサポートされます。
krb5_ccname_template = FILE:%d/krb5cc_%U_XXXXXX |
krb5_ccachedir | 認証情報キャッシュを保存するディレクトリーを指定します。これは、%d および %P を除き、krb5_ccname_template と同じトークンを使用して、テンプレート 化できます。%u 、%U 、%p 、または %h を使用すると、SSSD は各ユーザーにプライベートディレクトリーを作成します。それ以外の場合は、パブリックディレクトリーを作成します。 |
krb5_auth_timeout | オンライン認証またはパスワードの変更要求が中断されるまでの時間を秒単位で指定します。可能な場合は、認証要求はオフラインで続行されます。デフォルトは 15 秒です。 |
13.2.22. ドメインの作成: アクセス制御
Simple アクセスプロバイダーの使用
simple_allow_users
と simple_allow_groups
で、特定のユーザー(特定のユーザーまたはグループメンバーのいずれか)に明示的にアクセスを許可し、他のすべてのユーザーへのアクセスを拒否します。拒否リストを作成することも可能です(明示的なユーザーのみへのアクセスを制限し、他のすべてのアクセスを暗黙的に許可します)。
- allow および deny リストの両方が空の場合は、アクセスが許可されます。
- 一覧を指定すると、許可ルールが最初に評価され、次にルールを拒否します。実際には、拒否ルールが許可ルールよりも優先されることを意味します。
- 許可リストを指定すると、リストでない限り、すべてのユーザーは拒否されます。
- 拒否リストのみを指定すると、リストでない限り、すべてのユーザーがアクセスが許可されます。
[domain/example.com] access_provider = simple simple_allow_users = jsmith,bjensen simple_allow_groups = itgroup
simple
をサポートしません。
sssd-simple
の man ページに記載されていますが、これはほとんど使用されません。
アクセスフィルターの使用
ldap_access_filter
、AD の場合は ad_access_filter
)は、指定したホストへのアクセスが付与されるユーザーを指定します。ユーザーフィルターを使用するか、すべてのユーザーがアクセスを拒否する必要があります。以下の例を参照してください。
[domain/example.com] access_provider = ldap ldap_access_filter = memberOf=cn=allowedusers,ou=Groups,dc=example,dc=com
[domain/example.com] access_provider = ad ad_access_filter = memberOf=cn=allowedusers,ou=Groups,dc=example,dc=com
authorizedService
または host
属性で結果を確認することもできます。実際、ユーザーエントリーおよび設定に応じて、すべてのオプション (LDAP フィルター、authorizedService
、および host
) を評価できます。ldap_access_order
パラメーターは、評価すべき順に、使用するアクセス制御の手法をすべて表示します。
[domain/example.com] access_provider = ldap ldap_access_filter = memberOf=cn=allowedusers,ou=Groups,dc=example,dc=com ldap_access_order = filter, host, authorized_service
sssd-ldap(5)
の man ページに一覧表示されます。
13.2.23. ドメインの作成: プライマリーサーバーとバックアップサーバー
サービスエリア | プライマリーサーバー属性 | バックアップサーバーの属性 |
---|---|---|
LDAP アイデンティティープロバイダー | ldap_uri | ldap_backup_uri |
Active Directory アイデンティティープロバイダー | ad_server | ad_backup_server |
Identity Management(IdM または IPA)アイデンティティープロバイダー | ipa_server | ipa_backup_server |
Kerberos 認証プロバイダー | krb5_server | krb5_backup_server |
Kerberos 認証プロバイダー | krb5_server | krb5_backup_server |
パスワード変更プロバイダー | ldap_chpass_uri | ldap_chpass_backup_uri |
[domain/EXAMPLE] id_provider = ad ad_server = ad.example.com ad_backup_server = ad1.example.com, ad-backup.example.com
13.2.24. SSSD ユーティリティーのインストール
~]# yum install sssd-tools
13.2.25. SSSD および UID および GID 番号
~]# sss_cache -u jsmith
13.2.26. ローカルシステムユーザーの作成
~]# sss_useradd jsmith
(sss_useradd(8
)にリストされている)もあります。
~]# sss_useradd --UID 501 --home /home/jsmith --groups admin,dev-group jsmith
13.2.27. キックスタート中の SSSD キャッシュへのユーザーのシード
sss_seed --domain EXAMPLE.COM --username testuser --password-file /tmp/sssd-pwd.txt
--domain
は、SSSD 設定からのドメイン名を提供します。このドメインは、SSSD 設定にすでに存在している必要があります。--username
は、ユーザーアカウントの短縮名です。--password-file
: seed エントリーの一時パスワードが含まれるファイルのパスおよび名前。ユーザーアカウントが SSSD キャッシュにすでに存在する場合は、このファイルの一時パスワードは SSSD キャッシュに保存されているパスワードを上書きします。
sss_seed(8)
に記載されています。
function make_sssd { cat <<- _EOF_ [sssd] domains = LOCAL services = nss,pam [nss] [pam] [domain/LOCAL] id_provider = local auth_provider = local access_provider = permit _EOF_ } make_sssd >> /etc/sssd/sssd.conf authconfig --enablesssd --enablesssdauth --update function make_pwdfile { cat <<1 _EOF_ password _EOF_ } make_pwdfile >> /tmp/sssd-pwd.txt sss_seed --domain EXAMPLE.COM --username testuser --password-file /tmp/sssd-pwd.txt
13.2.28. SSSD キャッシュの管理
/var/lib/sss/db/
ディレクトリーに保存されます。
SSSD キャッシュのパージ
~]# sss_cache -E
~]# sss_cache -Ed LDAP1
~]# sss_cache -u jsmith
短い引数 | 長い引数 | 説明 |
---|---|---|
-E | --everything | sudo ルールを除くキャッシュされたエントリーをすべて無効にします。 |
-d name | --domain name | 指定のドメイン内でのみ、ユーザー、グループ、およびその他のエントリーのキャッシュエントリーを無効にします。 |
-G | --groups | すべてのグループレコードを無効にします。-g も使用する場合は、-G が優先されます。-g は無視されます。 |
-g name | --group name | 指定のグループのキャッシュエントリーを無効にします。 |
-N | --netgroups | すべての netgroup キャッシュレコードのキャッシュエントリーを無効にします。-n も使用する場合は、-N が優先されます。-n は無視されます。 |
-n name | --netgroup name | 指定した netgroup のキャッシュエントリーを無効にします。 |
-U | --users | すべてのユーザーレコードのキャッシュエントリーを無効にします。-u オプションも使用する場合は、-U が優先されます。-u は無視されます。 |
-u name | --user name | 指定のユーザーのキャッシュエントリーを無効にします。 |
ドメインキャッシュファイルの削除
cache_exampleldap.ldb
です。
- キャッシュファイルを削除すると、識別とキャッシュされた認証情報の両方など、すべてのユーザーデータが削除されます。したがって、システムがオンラインになっていず、ドメインのサーバーに対してユーザー名で認証できる場合を除き、キャッシュファイルを削除しないでください。認証情報キャッシュがないと、オフライン認証は失敗します。
- 別のアイデンティティープロバイダーを参照するように設定を変更すると、元のプロバイダーからキャッシュされたエントリーがタイムアウトするまで、SSSD は両方のプロバイダーのユーザーを認識します。キャッシュをパージするとこれを回避することができますが、新しいプロバイダーに別のドメイン名を使用することが推奨されます。SSSD を再起動すると、新しい名前で新しいキャッシュファイルが作成され、古いファイルは無視されます。
13.2.29. SSSD のダウングレード
(Wed Nov 28 21:25:50 2012) [sssd] [sysdb_domain_init_internal] (0x0010): Unknown DB version [0.14], expected [0.10] for domain AD!
- 既存のキャッシュデータベースファイルを削除します。
~]# rm -rf /var/lib/sss/db/*
- SSSD プロセスを再起動します。
~]# service sssd restart Stopping sssd: [FAILED] Starting sssd: [ OK ]
13.2.30. SSSD での NSCD の使用
resolv.conf
ファイルを読み取る可能性があります。このファイルは、通常 1 回だけ読み取るため、このファイルへの変更は自動的に適用されません。これにより、サービスを手動で再起動しない限り、NSCD サービスが実行されているマシンで NFS ロックが失敗する可能性があります。
/etc/nscd.conf
ファイルでホストとサービスのキャッシュを有効にし、passwd
、グループ
、および netgroup
エントリーの SSSD キャッシュに依存します。
/etc/nscd.conf
ファイルを変更します。
enable-cache hosts yes enable-cache passwd no enable-cache group no enable-cache netgroup no
13.2.31. SSSD のトラブルシューティング
SSSD ドメインのデバッグログの設定
sssd.conf
ファイルの各セクションに debug_level
パラメーターを設定し、追加のログを生成します。以下に例を示します。
[domain/LDAP]
cache_credentials = true
debug_level = 9
レベル | 説明 |
---|---|
0 | 致命的な障害。SSSDの起動を妨げる、またはSSSDの実行を停止させるもの。 |
1 | 重大なエラー。SSSD を強制終了しないものの、少なくとも 1 つの主要な機能が適切に機能していないことを示すエラー。 |
2 | 深刻なエラー。特定の要求または操作が失敗したことを示すエラー。 |
3 | マイナーな障害。これらのエラーが浸透して、2の動作不良の原因となるのです。 |
4 | 構成設定。 |
5 | 関数データ。 |
6 | 操作関数のメッセージを追跡します。 |
7 | 内部制御関数のメッセージのトレース。 |
8 | 対象の関数内部変数の内容。 |
9 | 非常に低いレベルのトレース情報。 |
sssd_update_debug_levels.py
スクリプトを使用します。
python -m SSSDConfig.sssd_update_debug_levels.py
SSSD ログファイルの確認
/var/log/sssd/
ディレクトリーにある操作に関する情報を報告するログファイルを使用します。SSSD は、各ドメインのログファイルと sssd_pam.log
および sssd_nss.log
ファイルを生成します。
/var/log/secure
ファイルは認証の失敗と、失敗の原因を記録します。
SSSD 設定に関する問題
- 問: SSSD が起動に失敗する
- 問: 「id」または「getent group」を持つグループメンバーを持つグループは表示されません。
- 問: 認証は LDAP に対して失敗します。
- 問: 非標準ポートで LDAP サーバーへの接続に失敗します。
- 問: NSS がユーザー情報を返すことができません
- 問: NSS が間違ったユーザー情報を返す
- 問: ローカルの SSSD ユーザーのパスワードを設定すると、パスワードが 2 回要求されます。
- 問: Identity Management(IPA)プロバイダーで sudo ルールを使用しようとすると、sudo が適切に設定されていない場合でも sudo ルールは見つかりません。
- 問: 大規模なディレクトリーのパスワード検索には、要求ごとに数秒かかる場合があります。どのように改善できるのでしょうか?
- 問: Active Directory アイデンティティープロバイダーは sssd.conf ファイルで適切に設定されていますが、SSSD は接続に失敗し、GSS-API エラーが出されます。
- 問: SSSD が中央認証用に設定されましたが、アプリケーション(Firefox、Adobe など)が複数起動しません。
- 問: SSSD は、削除された自動マウントの場所を表示します。
- SSSD では、サービスが起動する前に、最低でもドメインを適切に設定する必要があります。ドメインがないと、SSSD を起動すると、ドメインが設定されていないエラーが返されます。
# sssd -d4 [sssd] [ldb] (3): server_sort:Unable to register control with rootdse! [sssd] [confdb_get_domains] (0): No domains configured, fatal error! [sssd] [get_monitor_config] (0): No domains configured.
/etc/sssd/sssd.conf
ファイルを編集し、最低でも 1 つのドメインを作成します。 - SSSD は、開始する前に、少なくとも 1 つ以上の利用可能なサービスプロバイダーも必要です。問題がサービスプロバイダー設定にある場合、エラーメッセージはサービスが設定されていないことを示します。
[sssd] [get_monitor_config] (0): No services configured!
/etc/sssd/sssd.conf
ファイルを編集し、1 つ以上のサービスプロバイダーを設定します。重要SSSD では、サービスプロバイダーを/etc/sssd/sssd.conf
ファイルの単一のservices
エントリーでコンマ区切りリストとして設定する必要があります。サービスが複数のエントリーに一覧表示されます。最後のエントリーのみが SSSD によって認識されます。
sssd.conf
の [domain/DOMAINNAME] セクションに誤った ldap_schema 設定が原因である可能性があります。
memberuid
属性として保存されます。RFC2307bis サーバーでは、グループメンバーは、このグループのメンバーであるユーザーまたはグループの DN を含む多値 member
または uniqueMember
属性として保存されます。RFC2307bis を使用すると、ネストされたグループも保守できます。
- ldap_schema を rfc2307bis に設定します。
- Delete
/var/lib/sss/db/cache_DOMAINNAME.ldb
. - SSSD を再起動します。
sssd.conf
に追加します。
ldap_group_name = uniqueMember
sssd.conf
が標準プロトコル (ldap://
) 経由で接続するように設定されていると、Start TLS で通信チャネルの暗号化を試みます。sssd.conf
がセキュアなプロトコル (ldaps://
) に接続するように設定されている場合、SSSD は SSL を使用します。
syslog
メッセージが書き込まれます。証明書設定は、SSSD とは別に LDAP サーバーにアクセスできるかどうかを確認してテストできます。たとえば、以下は、test.example.com への TLS 接続を介して匿名バインドをテストします。
$ ldapsearch -x -ZZ -h test.example.com -b dc=example,dc=com
ldap_start_tls: Connect error (-11) additional info: TLS error -8179:Unknown code ___f 13
- LDAP サーバー証明書に署名するために使用される認証局の公開 CA 証明書のコピーを取得してローカルシステムに保存します。
- ファイルシステムの CA 証明書を参照する
sssd.conf
ファイルに行を追加します。ldap_tls_cacert = /path/to/cacert
- LDAP サーバーが自己署名証明書を使用する場合は、
sssd.conf
ファイルから ldap_tls_reqcert 行を削除します。このパラメーターにより、SSSD が CA 証明書により発行された証明書を信頼するように指示します。これは、自己署名の CA 証明書を使用するセキュリティーリスクになります。
# semanage port -a -t ldap_port_t -p tcp 1389
- NSS が実行していることを確認します。
# service sssd status
- NSS が実行している場合、プロバイダーが
/etc/sssd/sssd.conf
ファイルの[nss]
セクションで適切に設定されていることを確認します。特に、filter_users
属性およびfilter_groups
属性を確認します。 - NSS が SSSD が使用するサービスの一覧に含まれていることを確認します。
/etc/nsswitch.conf
ファイルの設定を確認します。
/etc/sssd/sssd.conf
ファイルで use_fully_qualified_domains
属性を true
に設定します。これは、同じ名前の異なるドメインの異なるユーザーを区別します。
[root@clientF11 tmp]# passwd user1000 Changing password for user user1000. New password: Retype new password: New Password: Reenter new Password: passwd: all authentication tokens updated successfully.
/etc/pam.d/system-auth
ファイルで use_authtok
オプションが正しく設定されていることを確認します。
(Thu Jun 21 10:37:47 2012) [sssd[be[ipa.test]]] [sdap_sudo_load_sudoers_process] (0x0400): Receiving sudo rules with base [ou=sudoers,dc=ipa,dc=test]
(Thu Jun 21 10:37:47 2012) [sssd[be[ipa.test]]] [sdap_sudo_load_sudoers_done] (0x0400): Received 0 rules
(Thu Jun 21 10:37:47 2012) [sssd[be[ipa.test]]] [sdap_sudo_purge_sudoers] (0x0400): Purging SUDOers cache of user's [admin] rules
(Thu Jun 21 10:37:47 2012) [sssd[be[ipa.test]]] [sysdb_sudo_purge_byfilter] (0x0400): No rules matched
(Thu Jun 21 10:37:47 2012) [sssd[be[ipa.test]]] [sysdb_sudo_purge_bysudouser] (0x0400): No rules matched
(Thu Jun 21 10:37:47 2012) [sssd[be[ipa.test]]] [sdap_sudo_load_sudoers_done] (0x0400): Sudoers is successfuly stored in cache
(Thu Jun 21 10:37:47 2012) [sssd[be[ipa.test]]] [be_sudo_handler_reply] (0x0200): SUDO Backend returned: (0, 0, Success)
sssd.conf
の ID プロバイダー設定で認証メカニズムとして GSS-API を有効にします。以下に例を示します。
[domain/ipa.example.com] id_provider = ipa 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=ipa,dc=example,dc=com ldap_sasl_mech = GSSAPI ldap_sasl_authid = host/hostname.ipa.example.com ldap_sasl_realm = IPA.EXAMPLE.COM krb5_server = ipa.example.com
- uid
- uidNumber
- gidNumber
- gecos
sssd.conf
ファイルで適切に設定されていますが、SSSD は接続に失敗し、GSS-API エラーが出されます。
[domain/ADEXAMPLE]
debug_level = 0xFFF0
id_provider = ad
ad_server = 255.255.255.255
ad_domain = example.com
krb5_canonicalize = False
(Fri Jul 27 18:27:44 2012) [sssd[be[ADTEST]]] [sasl_bind_send] (0x0020): ldap_sasl_bind failed (-2)[Local error] (Fri Jul 27 18:27:44 2012) [sssd[be[ADTEST]]] [sasl_bind_send] (0x0080): Extended failure message: [SASL(-1): generic failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Cannot determine realm for numeric host address)]
ad_server
を Active Directory ホストの名前に設定します。
Failed to contact configuration server. See http://www.gnome.org/projects/gconf/ for information. (Details - 1: IOR file '/tmp/gconfd-somebody/lock/ior' not opened successfully, no gconfd located: Permission denied 2: IOR file '/tmp/gconfd-somebody/lock/ior' not opened successfully, no gconfd located: Permission denied)
~]$ acroread (acroread:12739): GLib-WARNING **: getpwuid_r(): failed due to unknown user id (366)
- 「SSSD キャッシュのパージ」 の説明に従って、autofs キャッシュを削除します。
- 「SSSD の起動および停止」 にあるように、SSSD を再起動します。
第14章 OpenSSH
SSH
(Secure Shell)は、クライアント/サーバーアーキテクチャーを使用する 2 つのシステム間でのセキュアな通信を容易にし、ユーザーがリモートでサーバーホストシステムにログインできるようにするプロトコルです。FTP
、Telnet
、rlogin などの他のリモート通信プロトコルとは異なり、SSH はログインセッションを暗号化するため、侵入者が接続して暗号化されていないパスワードを収集するのが困難になります。
14.1. SSH プロトコル
14.1.1. SSH を使用する理由
- 2 つのシステム間の通信の傍受
- 攻撃者は、ネットワーク上で通信を行う二者の間のどこかに潜み、両者間で渡される情報をコピーしている可能性があります。攻撃者は情報を傍受して保持する、または情報を改ざんして元の受信者に送信する場合があります。通常、この攻撃は パケットスニファー を使用して実行されます。これは、ネットワークを通過する各パケットをキャプチャーしてその内容を分析する一般的なネットワークユーティリティーです。
- 特定のホストの偽装
- 攻撃者のシステムは、送信の対象となる受信者を装うように設定されます。このストラテジーが機能すると、ユーザーのシステムは間違ったホストと通信していることに気づかないままとなります。この攻撃は、DNS ポイズニング として知られる手法、または IP スプーフィング と呼ばれる手法を使用して実行できます。前者の場合、侵入者はクラックされた DNS サーバーを使用して、クライアントシステムを不当に複製されたホストへ指定します。後者の場合、侵入者は、信頼されたホストから送信されたように見せかけた偽装ネットワークパケットを送信します。
14.1.2. 主な特長
- 対象のサーバーになりすますことができない
- クライアントは、初回接続後に、以前接続したサーバーと同じサーバーに接続していることを確認できます。
- 認証情報の取得ができない
- クライアントは、強力な 128 ビット暗号化を使用して、サーバーへ認証情報を送信します。
- 通信の傍受ができない
- セッション中に送受信された全データは、128 ビット暗号化を使用して転送されるため、傍受された送信データの暗号解読と読み取りは非常に困難になります。
- ネットワーク上でグラフィカルアプリケーションを使用するセキュアな手段を提供する
- クライアントは、X11 転送 と呼ばれる技術を使用して、サーバーから X11 (X Window System)アプリケーションを転送できます。
ForwardX11Trusted
オプションをyes
に設定した場合、または-Y
オプションで SSH を使用する場合は、X11 SECURITY 拡張制御が省略され、セキュリティー上の脅威となる可能性があることに注意してください。 - セキュアでないプロトコルをセキュアにする手段を提供する
- SSH プロトコルは、送受信するものをすべて暗号化します。SSH サーバーは、ポート転送 と呼ばれる技術を使用して、POP などのセキュアではないプロトコルをセキュアにし、システムとデータ全体のセキュリティーを強化できます。
- セキュアなチャンネルを作成する
- OpenSSH サーバーとクライアントは、サーバーマシンとクライアントマシンとの間のトラフィックに対して、仮想プライベートネットワークに似たトンネルを作成するように設定できます。
- Kerberos 認証をサポートする
- OpenSSH サーバーとクライアントは、Kerberos ネットワーク認証プロトコルの GSSAPI (Generic Security Services Application Program Interface)実装を使用して認証を行うように設定できます。
14.1.3. プロトコルのバージョン
14.1.4. SSH 接続のイベントシーケンス
- 暗号化ハンドシェイクが行われ、クライアントが正しいサーバーと通信していることを確認できます。
- クライアントとリモートホストとの間の接続のトランスポート層が、対称暗号方式を使用して暗号化されます。
- クライアントが、サーバーに対して自己認証します。
- クライアントは、暗号化された接続でリモートホストと対話します。
14.1.4.1. トランスポート層
- 鍵を交換する
- 公開鍵暗号化アルゴリズムが決定する
- 対称暗号化アルゴリズムが決定する
- メッセージ認証アルゴリズムが決定する
- ハッシュアルゴリズムが決定する
14.1.4.2. 認証
14.1.4.3. チャネル
14.2. OpenSSH の設定
14.2.1. 設定ファイル
/etc/ssh/
ディレクトリーに保存されます。ユーザー固有の SSH 設定情報は、表14.2「ユーザー固有の設定ファイル」 に記載されているように、ユーザーのホームディレクトリーの ~/.ssh/
に保存されます。
ファイル | 詳細 |
---|---|
/etc/ssh/moduli | セキュアなトランスポート層を構築するのに非常に重要となる、Diffie-Hellman 鍵交換に使用される Diffie-Hellman グループが置かれています。SSH セッションの初めに鍵が交換される時、共有秘密値が作成されますが、どちらか一方の当事者だけでは決定できません。この値は、ホスト認証を行うのに使用されます。 |
/etc/ssh/ssh_config | デフォルトの SSH クライアント設定ファイルです。~/.ssh/config が存在する場合は、これは上書きされることに注意してください。 |
/etc/ssh/sshd_config | sshd デーモンの設定ファイルです。 |
/etc/ssh/ssh_host_dsa_key | sshd デーモンが使用する DSA 秘密鍵です。 |
/etc/ssh/ssh_host_dsa_key.pub | sshd デーモンが使用する DSA 公開鍵です。 |
/etc/ssh/ssh_host_key | sshd デーモンが使用する SSH プロトコルのバージョン 1 用の RSA 秘密鍵です。 |
/etc/ssh/ssh_host_key.pub | sshd デーモンが使用する SSH プロトコルのバージョン 1 用の RSA 公開鍵です。 |
/etc/ssh/ssh_host_rsa_key | sshd デーモンが使用する SSH プロトコルのバージョン 2 用の RSA 秘密鍵です。 |
/etc/ssh/ssh_host_rsa_key.pub | sshd デーモンが使用する SSH プロトコルのバージョン 2 用の RSA 公開鍵です。 |
/etc/pam.d/sshd | sshd デーモンの PAM 設定ファイルです。 |
/etc/sysconfig/sshd | sshd サービスの設定ファイルです。 |
ファイル | 詳細 |
---|---|
~/.ssh/authorized_keys | サーバー用の認証済み公開鍵の一覧があります。クライアントがサーバーに接続すると、サーバーが、このファイル内に格納されている署名済み公開鍵を確認してクライアントを認証します。 |
~/.ssh/id_dsa | ユーザーの DSA 秘密鍵が含まれます。 |
~/.ssh/id_dsa.pub | ユーザーの DSA 公開鍵です。 |
~/.ssh/id_rsa | ssh が使用する SSH プロトコルのバージョン 2 用の RSA 秘密鍵です。 |
~/.ssh/id_rsa.pub | ssh が使用する SSH プロトコルのバージョン 2 用の RSA 公開鍵です。 |
~/.ssh/identity | ssh が使用する SSH プロトコルのバージョン 1 用の RSA 秘密鍵です。 |
~/.ssh/identity.pub | ssh が使用する SSH プロトコルのバージョン 1 用の RSA 公開鍵です。 |
~/.ssh/known_hosts | ユーザーがアクセスする SSH サーバーの DSA ホストキーが含まれます。このファイルは、SSH クライアントが正しい SSH サーバーに接続することを確認するのに非常に重要になります。 |
ssh_config
(5)および sshd_config
(5)を参照してください。
14.2.2. OpenSSH サーバーの起動
~]# service sshd start
~]# service sshd stop
~]# chkconfig sshd on
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that the RSA host key has just been changed.
/etc/ssh/
ディレクトリーから関連ファイルをバックアップして(完全な一覧は 表14.1「システム全体の設定ファイル」 を参照)、システムを再インストールするたびに復元できます。
14.2.3. リモート接続に必要な SSH
~]# chkconfig telnet off ~]# chkconfig rsh off ~]# chkconfig rlogin off ~]# chkconfig vsftpd off
14.2.4. キーベースの認証の使用
/etc/ssh/sshd_config
設定ファイルを開き、PasswordAuthentication
オプションを以下のように変更します。
PasswordAuthentication no
root
として鍵ペアを生成しないでください。root
のみがこれらの鍵を使用できるためです。
~/.ssh/
ディレクトリーをバックアップし、生成されたキーペアを保持します。root を含む、必要なユーザーの新しいシステムのホームディレクトリーに、バックアップデータをコピーします。
14.2.4.1. 鍵ペアの生成
- RSA 鍵ペアを生成するには、シェルプロンプトで次のコマンドを実行します。
~]$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/john/.ssh/id_rsa):
- Enter キーを押して、新しく作成されたキーのデフォルトの場所(
~/.ssh/id_rsa
)を確認します。 - パスフレーズを入力します。プロンプトが表示されたら再入力して確認します。セキュリティー上の理由により、アカウントのログイン時に使用するパスワードは使用しないでください。この後、以下のようなメッセージが表示されます。
Your identification has been saved in /home/john/.ssh/id_rsa. Your public key has been saved in /home/john/.ssh/id_rsa.pub. The key fingerprint is: e7:97:c7:e2:0e:f9:0e:fc:c4:d7:cb:e5:31:11:92:14 john@penguin.example.com The key's randomart image is: +--[ RSA 2048]----+ | E. | | . . | | o . | | . .| | S . . | | + o o ..| | * * +oo| | O +..=| | o* o.| +-----------------+
~/.ssh/
ディレクトリーのパーミッションを変更します。~]$ chmod 700 ~/.ssh
~/.ssh/id_rsa.pub
の内容を、接続するマシンの~/.ssh/authorized_keys
にコピーし、ファイルがすでに存在する場合はこれを最後に追加します。- 以下のコマンドを使用して、
~/.ssh/authorized_keys
ファイルのパーミッションを変更します。~]$ chmod 600 ~/.ssh/authorized_keys
- シェルプロンプトで以下を入力して DSA 鍵ペアを生成します。
~]$ ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/home/john/.ssh/id_dsa):
- Enter キーを押して、新しく作成された鍵のデフォルトの場所(
~/.ssh/id_dsa
)を確認します。 - パスフレーズを入力します。プロンプトが表示されたら再入力して確認します。セキュリティー上の理由により、アカウントのログイン時に使用するパスワードは使用しないでください。この後、以下のようなメッセージが表示されます。
Your identification has been saved in /home/john/.ssh/id_dsa. Your public key has been saved in /home/john/.ssh/id_dsa.pub. The key fingerprint is: 81:a1:91:a8:9f:e8:c5:66:0d:54:f5:90:cc:bc:cc:27 john@penguin.example.com The key's randomart image is: +--[ DSA 1024]----+ | .oo*o. | | ...o Bo | | .. . + o. | |. . E o | | o..o S | |. o= . | |. + | | . | | | +-----------------+
~/.ssh/
ディレクトリーのパーミッションを変更します。~]$ chmod 700 ~/.ssh
~/.ssh/id_dsa.pub
の内容を、接続するマシンの~/.ssh/authorized_keys
にコピーし、ファイルがすでに存在する場合はこれを最後に追加します。- 以下のコマンドを使用して、
~/.ssh/authorized_keys
ファイルのパーミッションを変更します。~]$ chmod 600 ~/.ssh/authorized_keys
- RSA 鍵ペアを生成するには、シェルプロンプトで次のコマンドを実行します。
~]$ ssh-keygen -t rsa1 Generating public/private rsa1 key pair. Enter file in which to save the key (/home/john/.ssh/identity):
- Enter を押して、新規作成された鍵のデフォルトの場所(つまり
~/.ssh/identity
)を確認します。 - パスフレーズを入力します。プロンプトが表示されたら再入力して確認します。セキュリティー上の理由から、アカウントへのログインに使用するパスワードと同じパスワードを使用しないでください。この後、以下のようなメッセージが表示されます。
Your identification has been saved in /home/john/.ssh/identity. Your public key has been saved in /home/john/.ssh/identity.pub. The key fingerprint is: cb:f6:d5:cb:6e:5f:2b:28:ac:17:0c:e4:62:e4:6f:59 john@penguin.example.com The key's randomart image is: +--[RSA1 2048]----+ | | | . . | | o o | | + o E | | . o S | | = + . | | . = . o . .| | . = o o..o| | .o o o=o.| +-----------------+
~/.ssh/
ディレクトリーのパーミッションを変更します。~]$ chmod 700 ~/.ssh
~/.ssh/identity.pub
の内容を、接続するマシンの~/.ssh/authorized_keys
にコピーし、ファイルがすでに存在する場合はこれを最後に追加します。- 以下のコマンドを使用して、
~/.ssh/authorized_keys
ファイルのパーミッションを変更します。~]$ chmod 600 ~/.ssh/authorized_keys
14.2.4.2. ssh-agent の設定
- openssh-askpass パッケージがインストールされていることを確認します。Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux に新しいパッケージをインストールする方法の詳細は、「パッケージのインストール」 を参照してください。
- パネルから スタートアップアプリケーション設定 が起動し、利用可能な起動プログラムの一覧を含むタブがデフォルトで表示されます。→ → を選択します。
図14.1 自動起動するアプリの設定
[D] - 右側の コマンド フィールドにボタンをクリックして、
/usr/bin/ssh-add
と入力します。図14.2 新規アプリケーションの追加
[D] 図14.3 アプリケーションの有効化
[D]- 一度ログアウトしてから再度ログインします。パスフレーズの入力を求めるダイアログボックスが表示されます。これ以降は、ssh、scp、または sftp によるパスワードの入力を要求されることはありません。
図14.4 パスフレーズの入力
[D]
~]$ ssh-add
Enter passphrase for /home/john/.ssh/id_rsa:
14.2.4.3. sshd に必要な認証方法が複数になる
/etc/ssh/sshd_config
ファイルの RequiredAuthentications2
オプションを必要に応じて設定します。たとえば、以下を実行して行います。
~]# echo "RequiredAuthentications2 publickey,password" >> /etc/ssh/sshd_config
sshd_config(5)
を参照してください。
14.3. OpenSSH 証明書認証の使用
14.3.1. SSH 証明書の概要
/usr/share/doc/openssh-version/PROTOCOL.certkeys
で説明されています。
sshd
が CA 公開鍵を信頼するように設定する必要があります。
14.3.2. SSH 証明書のサポート
root
で次のコマンドを実行します。
~]# yum install openssh
Package openssh-5.3p1-104.el6_6.1.i686 already installed and latest version
Nothing to do
14.3.3. SSH CA 証明書署名キーの作成
ca_user_key
および ca_host_key
など)を使用することが適していますが、両方の証明書に署名するのに 1 つの CA キーのみを使用できます。また、別の鍵を使用する場合は手順を行う方が簡単なため、以下の例では別のキーを使用します。
ssh-keygen -s ca_user_key -I certificate_ID id_rsa.pubです。
-s
は、証明書の署名に使用される秘密鍵を示します。-I
は ID 文字列( certificate_ID )を示します。これは任意のアルファ数値値になります。これは、証明書にゼロ終端文字列として保存されます。certificate_ID は、証明書が識別に使用されるたびにログに記録され、証明書の取り消し時にも使用されます。長い値を設定すると、ログの読み取りが困難になります。そのため、ホスト証明書のホスト名とユーザー証明書のユーザー名を使用すると安全な選択肢になります。
-h
オプションを追加します。 ssh-keygen -s ca_host_key -I certificate_ID -h ssh_host_rsa_key.pub
~]# ls -l /etc/ssh/ssh_host*
-rw-------. 1 root root 668 Jul 9 2014 /etc/ssh/ssh_host_dsa_key
-rw-r--r--. 1 root root 590 Jul 9 2014 /etc/ssh/ssh_host_dsa_key.pub
-rw-------. 1 root root 963 Jul 9 2014 /etc/ssh/ssh_host_key
-rw-r--r--. 1 root root 627 Jul 9 2014 /etc/ssh/ssh_host_key.pub
-rw-------. 1 root root 1671 Jul 9 2014 /etc/ssh/ssh_host_rsa_key
-rw-r--r--. 1 root root 382 Jul 9 2014 /etc/ssh/ssh_host_rsa_key.pub
root
ユーザーが使用されます。管理ユーザーアカウントを持つオフラインコンピューターを使用する実際の実稼働環境では、推奨しています。キーの長さに関するガイダンスは 『NIST Special Publication 800-131A』 を参照してください。
手順14.1 SSH CA 証明書署名鍵の生成
- CA として指定されたサーバーで、署名証明書で使用する鍵を 2 つ生成します。これらは、他のすべてのホストが信頼する必要のあるキーです。
ca_user_key
およびca_host_key
など、適切な名前を選択します。ユーザー証明書署名要求を生成するには、root
で以下のコマンドを入力します。~]# ssh-keygen -t rsa -f ~/.ssh/ca_user_key Generating public/private rsa key pair. Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/ca_user_key. Your public key has been saved in /root/.ssh/ca_user_key.pub. The key fingerprint is: 11:14:2f:32:fd:5d:f5:e4:7a:5a:d6:b6:a0:62:c9:1f root@host_name.example.com The key's randomart image is: +--[ RSA 2048]----+ | .+. o| | . o +.| | o + . . o| | o + . . ..| | S . ... *| | . . . .*.| | = E .. | | . o . | | . | +-----------------+
以下のように、ホスト証明書署名要求(ca_host_key
)を生成します。~]# ssh-keygen -t rsa -f ~/.ssh/ca_host_key Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/ca_host_key. Your public key has been saved in /root/.ssh/ca_host_key.pub. The key fingerprint is: e4:d5:d1:4f:6b:fd:a2:e3:4e:5a:73:52:91:0b:b7:7a root@host_name.example.com The key's randomart image is: +--[ RSA 2048]----+ | .. | | . ....| | . . o +oo| | o . o *o| | S = .| | o. .| | *.E. | | +o= | | .oo. | +-----------------+
必要に応じて、パーミッションが正しいことを確認します。~]# ls -la ~/.ssh total 40 drwxrwxrwx. 2 root root 4096 May 22 13:18 . dr-xr-x---. 3 root root 4096 May 8 08:34 .. -rw-------. 1 root root 1743 May 22 13:15 ca_host_key -rw-r--r--. 1 root root 420 May 22 13:15 ca_host_key.pub -rw-------. 1 root root 1743 May 22 13:14 ca_user_key -rw-r--r--. 1 root root 420 May 22 13:14 ca_user_key.pub -rw-r--r--. 1 root root 854 May 8 05:55 known_hosts -r--------. 1 root root 1671 May 6 17:13 ssh_host_rsa -rw-r--r--. 1 root root 1370 May 7 14:30 ssh_host_rsa-cert.pub -rw-------. 1 root root 420 May 6 17:13 ssh_host_rsa.pub
- サーバーのホスト公開キーをホスト名、CA サーバーの完全修飾ドメイン名(FQDN)など、識別文字列と共に署名し、末尾の
.
. なしで CA サーバーの 完全修飾ドメイン名 (FQDN)を署名して、CA サーバー自体のホスト証明書を作成します。このコマンドは、ssh-keygen -s ~/.ssh/ca_host_key -I certificate_ID -h -Z host_name.example.com -V -start:+end /etc/ssh/ssh_host_rsa.pub
-Z オプションの形式を取ります。-Z
オプションは、この証明書をドメイン内の特定のホストに制限します。-V
オプションは有効期間を追加するため、強く推奨されます。有効期間は 1 年 5 週間にすることが意図されており、証明書を変更する時間と、証明書の有効期限が経過する期間などを考慮してください。以下に例を示します。~]# ssh-keygen -s ~/.ssh/ca_host_key -I host_name -h -Z host_name.example.com -V -1w:+54w5d /etc/ssh/ssh_host_rsa.pub Enter passphrase: Signed host key /root/.ssh/ssh_host_rsa-cert.pub: id "host_name" serial 0 for host_name.example.com valid from 2015-05-15T13:52:29 to 2016-06-08T13:52:29
14.3.4. SSH CA 公開鍵の配布と信頼
ca_user_key.pub
です。
ca_user_key.pub
鍵を公開し、リモートユーザーがログインできるように必要なすべてのホストにダウンロードします。または、CA ユーザーの公開鍵をすべてのホストにコピーします。実稼働環境では、公開鍵をまず管理者アカウントにコピーすることを検討してください。secure copy コマンドを使用して、公開鍵をリモートホストにコピーすることができます。このコマンドは、scp ~/.ssh/ca_user_key.pub root@host_name.example.com:/etc/ssh/の形式を取ります。host_name は、ログインプロセス中に提示されるユーザーの証明書の認証に必要なサーバーのホスト名です。秘密鍵ではなく公開鍵をコピーしてください。たとえば、
root
で以下を実行します。
~]# scp ~/.ssh/ca_user_key.pub root@host_name.example.com:/etc/ssh/
The authenticity of host 'host_name.example.com (10.34.74.56)' can't be established.
RSA key fingerprint is fc:23:ad:ae:10:6f:d1:a1:67:ee:b1:d5:37:d4:b0:2f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'host_name.example.com,10.34.74.56' (RSA) to the list of known hosts.
root@host_name.example.com's password:
ca_user_key.pub 100% 420 0.4KB/s 00:00
/etc /ssh/sshd_config
ファイルの TrustedUserCAKeys ディレクティブを使用してグローバルに使用することで、~/.ssh/authorized_keys
ファイルで信頼されるユーザー/authorized_keys としてマークできます。リモートホスト認証の場合、CA キーは、/etc/ssh/known_hosts
ファイルまたは ~/.ssh/ssh_known_hosts
ファイルのユーザーごとに信頼できるとマークできます。
手順14.2 ユーザー署名キーの信頼
- 1 つ以上の原則が記載されていて、設定がグローバルを有効にする場合は、
/etc/ssh/sshd_config
ファイルを以下のように編集します。TrustedUserCAKeys /etc/ssh/ca_user_key.pub
sshd
を再起動して変更を適用します。~]# service sshd restart
ca_host_key.pub
です。
手順14.3 ホスト署名キーの信頼
- ホスト証明書の署名に使用される公開鍵の内容を抽出します。たとえば、CA では以下のようになります。
cat ~/.ssh/ca_host_key.pub ssh-rsa AAAAB5Wm.== root@ca-server.example.com
- サーバーの署名済みホスト証明書を信頼するようにクライアントシステムを設定するには、
ca_host_key.pub
の内容をグローバルknown_hosts
ファイルに追加します。これにより、新しいマシンが*.example.com
ドメインで接続されるたびに、すべてのユーザーに対して、サーバーのホストが CA 公開鍵に対してアドバタイズされた証明書が自動的にチェックされます。root
としてログインし、/etc/ssh/ssh_known_hosts
ファイルを設定します。~]# vi /etc/ssh/ssh_known_hosts # A CA key, accepted for any host in *.example.com @cert-authority *.example.com ssh-rsa AAAAB5Wm.
ssh-rsa AAAAB5Wm.
はca_host_key.pub
の内容です。上記は、システムが CA サーバーのホスト公開鍵を信頼するように設定します。これにより、ホストが提示する証明書のグローバル認証ができるようになります。
14.3.5. SSH 証明書の作成
root
ユーザーの /etc/ssh/
ディレクトリーにコピーすることは推奨していません。以下の例では、key / という名前のディレクトリーを持つ admin
という名前
のアカウントが使用されます。
admin
)と、ユーザーのキーを受け取るディレクトリーを作成します。以下に例を示します。
~]$ mkdir keys
鍵をコピーできるようにパーミッションを設定します。
~]$ chmod o+w keys ls -la keys total 8 drwxrwxrwx. 2 admin admin 4096 May 22 16:17 . drwx------. 3 admin admin 4096 May 22 16:17 ..
14.3.5.1. ホストを認証する SSH 証明書の作成
ssh-keygen -s ca_host_key -I host_name -h ssh_host_rsa_key.pubになります。ホスト証明書の名前は
ssh_host_rsa_key-cert.pub
です。
手順14.4 ホスト証明書の生成
- ホスト鍵は、システムで自動的に生成されます。一覧表示するには、以下のコマンドを入力します。
~]# ls -l /etc/ssh/ssh_host* -rw-------. 1 root root 668 May 6 14:38 /etc/ssh/ssh_host_dsa_key -rw-r--r--. 1 root root 590 May 6 14:38 /etc/ssh/ssh_host_dsa_key.pub -rw-------. 1 root root 963 May 6 14:38 /etc/ssh/ssh_host_key -rw-r--r--. 1 root root 627 May 6 14:38 /etc/ssh/ssh_host_key.pub -rw-------. 1 root root 1679 May 6 14:38 /etc/ssh/ssh_host_rsa_key -rw-r--r--. 1 root root 382 May 6 14:38 /etc/ssh/ssh_host_rsa_key.pub
- 選択した公開鍵を CA として指定されたサーバーにコピーします。たとえば、ホストからは以下のようになります。
~]# scp /etc/ssh/ssh_host_rsa_key.pub admin@ca-server.example.com:~/keys/ssh_host_rsa_key.pub The authenticity of host 'ca-server.example.com (10.34.74.58)' can't be established. RSA key fingerprint is b0:e5:ea:b8:75:e2:f0:b1:fe:5b:07:39:7f:58:64:d9. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'ca-server.example.com,10.34.74.58' (RSA) to the list of known hosts. admin@ca-server.example.com's password: ssh_host_rsa_key.pub 100% 382 0.4KB/s 00:00
または、CA から以下を行います。~]$ scp root@host_name.example.com:/etc/ssh/ssh_host_rsa_key.pub ~/keys/ssh_host_rsa_key.pub
- CA サーバーで、ホストの公開鍵に署名します。たとえば、
root
で以下を実行します。~]# ssh-keygen -s ~/.ssh/ca_host_key -I host_name -h -Z host_name.example.com -V -1d:+54w /home/admin/keys/ssh_host_rsa_key.pub Enter passphrase: Signed host key /home/admin/keys/ssh_host_rsa_key-cert.pub: id "host_name" serial 0 for host_name.example.com valid from 2015-05-26T12:21:54 to 2016-06-08T12:21:54
host_name は、証明書を必要とするシステムのホスト名です。 - 証明書をホストにコピーします。CA の場合の例を以下に示します。
~]# scp /home/admin/keys/ssh_host_rsa_key-cert.pub root@host_name.example.com:/etc/ssh/ root@host_name.example.com's password: ssh_host_rsa_key-cert.pub 100% 1384 1.5KB/s 00:00
- ユーザーがログインプロセスの開始時に証明書をユーザーのシステムに提示するようにホストを設定します。
root
で、/etc/ssh/sshd_config
ファイルを以下のように編集します。HostCertificate /etc/ssh/ssh_host_rsa_key-cert.pub
sshd
を再起動して、変更を有効にします。~]# service sshd restart
- ユーザーのシステムで、ユーザーが以前に設定したホストにログインしている場合は、
~/.ssh/known_hosts
ファイルからホストに属する鍵を削除します。ユーザーがホストにログインすると、ホストの信頼性についての警告が表示されなくなります。
/etc/ssh/known_hosts
ファイルを設定しており、サーバーの公開鍵が ~/.ssh/known_hosts
ファイルにないことを確認します。次に、リモートユーザーとして SSH 経由でサーバーへのログインを試みます。ホストの信頼性についての警告は表示されません。必要な場合は SSH コマンドに -v
オプションを追加して、ロギング情報を確認します。
14.3.5.2. ユーザーの認証用の SSH 証明書の作成
ssh-keygen -s ca_user_key -I user_name -Z user_name -V -start:+end id_rsa.pubの形式でコマンドを使用します。生成される証明書の名前は
id_rsa-cert.pub
です。
-Z
オプションを使用して、署名プロセス中にユーザーの名前をさらに証明書に追加します。-Z "name1[,name2,...]"
- ユーザーのシステムで、cert-authority ディレクティブを使用して
~/.ssh/authorized_keys
ファイルに CA の公開鍵を追加し、以下のようにプリンシパル名を一覧表示します。~]# vi ~/.ssh/authorized_keys # A CA key, accepted for any host in *.example.com @cert-authority principals="name1,name2" *.example.com ssh-rsa AAAAB5Wm.
- サーバーで、ユーザーまたはグローバルのいずれかで
AuthorizedPrincipalsFile
ファイルを作成し、ログインを許可されたユーザーのファイルに原則の名前を追加します。次に、/etc/ssh/sshd_config
ファイルで AuthorizedPrincipalsFile ディレクティブを使用してファイルを指定します。
手順14.5 ユーザー証明書の生成
- クライアントシステムで、証明書を必要とするユーザーとしてログインします。利用可能なキーが以下のようにあるかどうかを確認します。
~]$ ls -l ~/.ssh/
適切な公開鍵が存在しない場合は、ディレクトリーがデフォルトのディレクトリーでなければ、それを生成してディレクトリーパーミッションを設定します。たとえば、以下のコマンドを入力します。~]$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/user1/.ssh/id_rsa): Created directory '/home/user1/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/user1/.ssh/id_rsa. Your public key has been saved in /home/user1/.ssh/id_rsa.pub. The key fingerprint is: b1:f8:26:a7:46:87:c3:60:54:a3:6d:85:0d:60:fe:ce user1@host1.example.com The key's randomart image is: +--[ RSA 2048]----+ | oo++. | | o.o.o. | | .o o . | | oo . o | | . oo.S | | o=.. | | .Eo+ | | .= | | .. | +-----------------+
デフォルトでは、ユーザーの鍵のディレクトリーパーミッションはdrwx------
で、または 8 進数の 0700 です。必要に応じて、パーミッションが正しいことを確認します。~]$ ls -la ~/.ssh total 16 drwx------. 2 user1 user1 4096 May 7 12:37 . drwx------. 3 user1 user1 4096 May 7 12:37 .. -rw-------. 1 user1 user1 1679 May 7 12:37 id_rsa -rw-r--r--. 1 user1 user1 421 May 7 12:37 id_rsa.pub
キー生成の例と、正しいディレクトリー権限の設定方法については、「キーベースの認証の使用」 を参照してください。 - 選択した公開鍵を署名するには、CA として指定されたサーバーにコピーする必要があります。そのためには、secure copy コマンドを使用することができます。
scp ~/.ssh/id_protocol.pub admin@ca_server.example.com:~/keys/
ここで protocol はファイル名の一部で、キーの生成に使用するプロトコル(rsa
など)、admin は CA サーバーのアカウントであり、/keys/ は署名するキーを受信するディレクトリーの設定です。選択した公開鍵を CA として指定されたサーバーにコピーします。以下に例を示します。~]$ scp ~/.ssh/id_rsa.pub admin@ca-server.example.com:~/keys/ admin@ca-server.example.com's password: id_rsa.pub 100% 421 0.4KB/s 00:00
手順14.3「ホスト署名キーの信頼」 の説明に従ってホスト署名キーを信頼するようにクライアントシステムを設定した場合は、リモートホストの信頼性についての警告は表示されません。 - CA サーバーで、ユーザーの公開鍵に署名します。たとえば、
root
で以下を実行します。~]# ssh-keygen -s ~/.ssh/ca_user_key -I user1 -Z user1 -V -1d:+54w /home/admin/keys/id_rsa.pub Enter passphrase: Signed user key /home/admin/keys/id_rsa-cert.pub: id "user1" serial 0 for host_name.example.com valid from 2015-05-21T16:43:17 to 2016-06-03T16:43:17
- 作成された証明書を、システムのユーザーの
~/.ssh/
ディレクトリーにコピーします。以下に例を示します。~]# scp /home/admin/keys/id_rsa-cert.pub user1@host_name.example.com:~/.ssh/ user1@host_name.example.com's password: id_rsa-cert.pub 100% 1498 1.5KB/s 00:00
- 標準のファイル名と場所を使用する場合は、SSH デーモンは
-cert.pub
で終わるユーザー証明書を検索し、見つかった場合は自動的に使用するため、追加の設定は必要ありません。SSH バージョン 2 キーのデフォルトの場所とファイル名は~/.ssh/id_dsa
、~/.ssh/id_ecdsa
および~/.ssh/id_rsa
の man ページで説明されています。これらの場所と命名規則を使用する場合は、
sshd
が証明書を提示できるように設定ファイルを編集する必要はありません。リモートシステムにログインする際に自動的に使用されます。この場合、ステップ 6 に進みます。デフォルト以外のディレクトリーまたはファイルの命名規則を使用する必要がある場合は、root
で、以下の行を/etc/ssh/ssh_config
または~/.ssh/config
ファイルに追加します。IdentityFile ~/path/key_file
これは秘密鍵名でなければならず、.pub や-cert
.pub
は使用しないことに注意してください。ファイルのパーミッションが正しいことを確認します。以下に例を示します。~]$ ls -la ~/.ssh/config -rw-rw-r--. 1 user1 user1 36 May 27 21:49 /home/user1/.ssh/config chmod 700 ~/.ssh/config ~]$ ls -la ~/.ssh/config -rwx------. 1 user1 user1 36 May 27 21:49 /home/user1/.ssh/config
これにより、CA ユーザーの証明書署名鍵を信頼するように設定されたリモートシステムにログインする際に、このシステムのユーザーがユーザー証明書で認証できるようになります。 - ユーザー証明書をテストするには、ユーザーのアカウントから SSH 経由でサーバーへのログインを試みます。指定した場合は、証明書のプリンシパルとしてリストされているユーザーとしてこれを実行する必要があります。パスワードの入力を求めるプロンプトはないはずです。必要な場合は SSH コマンドに
-v
オプションを追加して、ロギング情報を確認します。
14.3.6. PKCS#11 トークンを使用した SSH 証明書の署名
-D
を使用してトークンライブラリーを提供し、-s
オプションに公開半分を引数として指定することで、PKCS#11 トークンに保存されている CA キーを使用してホストキーに署名できます: ssh-keygen -s ca_host_key.pub -D libpkcs11.so -I certificate_ID host_key.pubいずれの場合も、certificate_ID は、証明書が認証に使用される際にサーバーによってログに記録される 「鍵識別子」 です。
-Z
オプションを指定してコンマ区切りリストを使用します。
ssh-keygen -s ca_user_key.pub -D libpkcs11.so -I certificate_ID -Z user1,user2 id_rsa.pub
ssh-keygen -s ca_host_key.pub -D libpkcs11.so -I certificate_ID -h -Z host.domain ssh_host_rsa_key.pub
-O
オプションの ssh-keygen(1)
man ページを参照してください。
-V
オプションを使用すると、証明書の開始時間と終了時間を指定できます。例: ssh-keygen -s ca_user_key -I certificate_ID id_rsa.pub -V "-1w:+54w5d"この範囲外の時点で提示される証明書は有効とみなされません。デフォルトでは、証明書は UNIX Epoch から無期限に有効になります。
14.3.7. SSH CA 証明書の表示
-L
を使用してコンテンツを一覧表示します。たとえば、ユーザーの証明書の場合は、以下のようになります。
~]$ ssh-keygen -L -f ~/.ssh/id_rsa-cert.pub
/home/user1/.ssh/id_rsa-cert.pub:
Type: ssh-rsa-cert-v01@openssh.com user certificate
Public key: RSA-CERT 3c:9d:42:ed:65:b6:0f:18:bf:52:77:c6:02:0e:e5:86
Signing CA: RSA b1:8e:0b:ce:fe:1b:67:59:f1:74:cd:32:af:5f:c6:e8
Key ID: "user1"
Serial: 0
Valid: from 2015-05-27T00:09:16 to 2016-06-09T00:09:16
Principals:
user1
Critical Options: (none)
Extensions:
permit-X11-forwarding
permit-agent-forwarding
permit-port-forwarding
permit-pty
permit-user-rc
~]# ssh-keygen -L -f /etc/ssh/ssh_host_rsa_key-cert.pub
/etc/ssh/ssh_host_rsa_key-cert.pub:
Type: ssh-rsa-cert-v01@openssh.com host certificate
Public key: RSA-CERT 1d:71:61:50:05:9b:ec:64:34:27:a5:cc:67:24:03:23
Signing CA: RSA e4:d5:d1:4f:6b:fd:a2:e3:4e:5a:73:52:91:0b:b7:7a
Key ID: "host_name"
Serial: 0
Valid: from 2015-05-26T17:19:01 to 2016-06-08T17:19:01
Principals:
host_name.example.com
Critical Options: (none)
Extensions: (none)
14.3.8. SSH CA 証明書の取り消し
revoked_keys
ファイルに追加し、以下のように sshd_config
ファイルにファイル名を指定します。RevokedKeys /etc/ssh/revoked_keys: このファイルが読み取り可能でない場合は、全ユーザーに対して公開鍵認証が拒否されることに注意してください。
ssh-keygen -Qf /etc/ssh/revoked_keys ~/.ssh/id_rsa.pub
known_hosts
ファイルで 取り消しするように CA 証明書を取り消す ことができます。
14.4. OpenSSH クライアント
14.4.1. ssh ユーティリティーの使用
ssh hostname
penguin.example.com
という名前のリモートマシンにログインするには、シェルプロンプトで以下を入力します。
~]$ ssh penguin.example.com
ssh username@hostname
john
として penguin.example.com
にログインするには、以下を入力します。
~]$ ssh john@penguin.example.com
The authenticity of host 'penguin.example.com' can't be established. RSA key fingerprint is 94:68:3a:3a:bc:f3:9a:9b:01:5d:b3:07:38:e2:11:0c. Are you sure you want to continue connecting (yes/no)?
yes
を入力して確定します。サーバーが既知ホストの一覧に追加されたことを知らせるメッセージと、パスワードの入力を求めるプロンプトが以下のように表示されます。
Warning: Permanently added 'penguin.example.com' (RSA) to the list of known hosts. john@penguin.example.com's password:
~/.ssh/known_hosts
ファイルから削除されるまで接続を開始できないことをユーザーに通知します。SSH サーバーのシステム管理者に連絡して、サーバーが危険にさらされていないことを確認してから、最初にリモートマシンの名前が含まれる行を削除します。
ssh [username@]hostname command
/etc/redhat-release
ファイルは、Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux バージョンに関する情報を提供します。penguin.example.com
でこのファイルの内容を表示するには、以下を入力します。
~]$ ssh john@penguin.example.com cat /etc/redhat-release
john@penguin.example.com's password:
Red Hat Enterprise Linux Server release 6.2 (Santiago)
14.4.2. scp ユーティリティーの使用
scp localfile username@hostname:remotefile
taglist.vim
を penguin.example.com
という名前のリモートマシンに転送する場合は、シェルプロンプトで以下を入力します。
~]$ scp taglist.vim john@penguin.example.com:.vim/plugin/taglist.vim
john@penguin.example.com's password:
taglist.vim 100% 144KB 144.5KB/s 00:00
.vim/plugin/
の内容を、リモートマシン penguin.example.com
の同じディレクトリーに転送するには、以下のコマンドを入力します。
~]$ scp .vim/plugin/* john@penguin.example.com:.vim/plugin/
john@penguin.example.com's password:
closetag.vim 100% 13KB 12.6KB/s 00:00
snippetsEmu.vim 100% 33KB 33.1KB/s 00:00
taglist.vim 100% 144KB 144.5KB/s 00:00
scp username@hostname:remotefile localfile
.vimrc
設定ファイルをリモートマシンからダウンロードするには、以下を入力します。
~]$ scp john@penguin.example.com:.vimrc .vimrc
john@penguin.example.com's password:
.vimrc 100% 2233 2.2KB/s 00:00
14.4.3. sftp ユーティリティーの使用
sftp username@hostname
john
で penguin.example.com
という名前のリモートマシンにログインするには、以下を入力します。
~]$ sftp john@penguin.example.com
john@penguin.example.com's password:
Connected to penguin.example.com.
sftp>
コマンド | 詳細 |
---|---|
ls [directory] | リモート ディレクトリー の内容を一覧表示します。指定がない場合は、デフォルトで現在の作業ディレクトリーが使用されます。 |
cd directory | リモートの作業ディレクトリーを ディレクトリー に変更します。 |
mkdir directory | リモート ディレクトリー を作成します。 |
rmdir path | リモート ディレクトリー を削除します。 |
put localfile [remotefile] | localfile をリモートマシンに転送します。 |
get remotefile [localfile] | remotefile をリモートマシンから転送します。 |
sftp
(1)の man ページを参照してください。
14.5. セキュアなシェルの追加
14.5.1. X11 転送
ssh -Y username@hostname
john
で penguin.example.com
という名前のリモートマシンにログインするには、以下を入力します。
~]$ ssh -Y john@penguin.example.com
john@penguin.example.com's password:
~]$ system-config-printer &
14.5.2. ポート転送
TCP/IP
プロトコルをセキュアにすることができます。この手法を使用する場合、SSH サーバーは SSH クライアントをつなぐ暗号化された経路となります。
root
レベルのアクセスが必要であることに注意してください。
localhost
で接続をリッスンする TCP/IP ポート転送チャンネルを作成するには、以下の形式でコマンドを使用します。
ssh -L local-port:remote-hostname:remote-port username@hostname
POP3
を使用して、mail.example.com
と呼ばれるサーバーでメールを確認するには、以下のコマンドを使用します。
~]$ ssh -L 1100:mail.example.com:110 mail.example.com
localhost
上のポート 1100
を使用して、新しいメールを確認するように指示します。クライアントシステムのポート 1100
に送信されたリクエストは、安全に mail.example.com
サーバーに転送されます。
mail.example.com
が SSH サーバーを実行しておらず、同じネットワーク上にある別のマシンの場合でも、SSH を使用して接続の一部をセキュアにすることができます。ただし、若干異なるコマンドが必要になります。
~]$ ssh -L 1100:mail.example.com:110 other.example.com
1100
からの POP3 要求がポート 22
の SSH 接続を介して SSH サーバー other.example.com
に転送されます。次に、other.example.com
が mail.example.com
のポート 110
に接続し、新規メールを確認します。この手法を使用する場合、クライアントシステムと other.example.com
SSH サーバー間の接続のみがセキュアである点に注意してください。
/etc/ssh/sshd_config
ファイルの AllowTcpForwarding
行に No
パラメーターを指定して sshd サービスを再起動し、この機能を無効にします。
14.6. その他のリソース
14.6.1. インストールされているドキュメント
- sshd(8):
sshd
デーモンの man ページです。 - ssh(1): ssh クライアントの man ページです。
- scp(1)- scp ユーティリティーの man ページです。
- sftp(1)- sftp ユーティリティーの man ページです。
- ssh-keygen(1)- ssh-keygen ユーティリティーの man ページです。
- ssh_config(5): 利用可能な SSH クライアント設定オプションの詳細が記載された man ページです。
- sshd_config(5): man ページで、利用可能な SSH デーモン設定オプションが説明されています。
/usr/share/doc/openssh-バージョン
: OpenSSH が対応するプロトコルの詳細情報が含まれます。
14.6.2. 便利な Web サイト
- http://www.openssh.com/
- その他のドキュメント、よくある質問、メーリングリストへのリンク、バグレポートなどの役立つリソースを含む OpenSSH のホームページです。
- http://www.openssl.org/
- その他のドキュメント、よくある質問、メーリングリストへのリンクなどの役立つリソースを掲載した OpenSSL のホームページです。
第15章 TigerVNC
Tiger
vnc(Tiger Virtual Network Computing)は、グラフィカルデスクトップ共有用のシステムであり、他のコンピューターのリモート制御を可能にします。
Tiger
vnc は、クライアントサーバープリンシパルで機能します。サーバー はその出力(vncserver
)を共有し、クライアント (vncviewer
)はサーバーに接続します。
15.1. VNC Server
vncserver
は、VNC(Virtual Network Computing)デスクトップを起動するユーティリティーです。適切なオプションで Xvnc を実行し、VNC デスクトップでウィンドウマネージャーを起動します。vncserver
を使用すると、どこからでも任意の数のクライアントがアクセス可能なマシンで個別のセッションを並行して実行できます。
15.1.1. VNC サーバーのインストール
root
で以下のコマンドを実行します。
~]# yum install tigervnc-server
15.1.2. VNC サーバーの設定
手順15.1 1 人のユーザー用に VNC サーバーの設定
/etc/sysconfig/vncservers
を編集し、次の形式で行を追加して、ユーザー名とディスプレイ番号を指定します。VNCSERVERS="display_number:user"
VNC ユーザー名は、システムのユーザーに対応している必要があります。例15.1 ユーザーのディスプレイ番号の設定
たとえば、ユーザーjoe
のディスプレイ番号3
を設定するには、設定ファイルを開いて編集します。~]# vi /etc/sysconfig/vncservers
以下のように行を追加します。VNCSERVERS="3:joe"
ファイルを保存してから閉じます。上記の例では、ディスプレイ番号 3 とユーザー joe が設定されます。ワークステーションのメイン X ディスプレイは通常 0 と示されるため、ディスプレイ番号には 0 を使用しないでください。
手順15.2 複数のユーザーの VNC 表示の設定
- 複数のユーザーに VNC 表示を設定するには、
/etc/sysconfig/vncservers
を編集してユーザー名とディスプレイ番号を指定し、次の形式で行を追加します。VNCSERVERS="display_number:user display_number:user"
VNC ユーザー名は、システムのユーザーに対応している必要があります。例15.2 2 人のユーザーの表示番号の設定
たとえば、2 人のユーザーを設定するには、設定ファイルを開いて編集します。~]# vi /etc/sysconfig/vncservers
以下のように行を追加します。VNCSERVERS="3:joe 4:jill"
手順15.3 VNC 表示引数の設定
- 以下のように VNCSERVERARGS ディレクティブを使用して引数を追加して、
/etc/sysconfig/vncservers
ファイルに追加の設定を指定します。VNCSERVERS="display_number:user display_number:user" VNCSERVERARGS[display_number]="arguments"
表15.1 頻繁に使用される VNC サーバーパラメーター VNCSERVERARGS 定義 -geometry 作成する VNC デスクトップのサイズを指定します。デフォルトは 1024x768 です。 -nolisten tcp TCP(Transmission Control Protocol)を介した VNC サーバーへの接続を防止する -localhost セキュアなトンネルを介して実行する場合を除き、リモート VNC クライアントが接続しないようにする その他のオプションについては、Xvnc(1)
の man ページを参照してください。例15.3 vncserver 引数の設定
上記の例では、2 人のユーザーに引数を追加するには、以下のように/etc/sysconfig/vncservers
ファイルを編集します。VNCSERVERS="3:joe 4:jill" VNCSERVERARGS[1]="-geometry 800x600 -nolisten tcp -localhost" VNCSERVERARGS[2]="-geometry 1920×1080 -nolisten tcp -localhost"
手順15.4 VNC ユーザーパスワードの設定
/etc/sysconfig/vncservers
ファイルで定義されたすべてのユーザーに VNC パスワードを設定するには、root
で次のコマンドを実行します。~]# vncpasswd Password: Verify:
ユーザーに VNC パスワードを個別に設定するには、以下を実行します。~]# su - user ~]$ vncpasswd Password: Verify:
重要保存されたパスワードは暗号化されていません。パスワードファイルへのアクセスが可能であれば、誰でもプレーンテキストのパスワードを見ることができます。
15.1.3. VNC サーバーの起動
vncserver
ユーティリティーが使用されます。これは、Xvnc サーバーの起動プロセスを簡素化する Perl スクリプトです。適切なオプションで Xvnc を実行し、VNC デスクトップでウィンドウマネージャーを起動します。vncserver
を開始する方法は 3 つあります。
vncserver
は、最初に利用可能なディスプレイ番号を選択し、そのディスプレイ番号で Xvnc を起動して、Xvnc セッションでデフォルトのウィンドウマネージャーを起動することができます。これらの手順はすべて 1 つのコマンドによって提供されます。~]$ vncserver
VNC パスワードが設定されていない場合は、コマンドの初回実行時に VNC パスワードを入力するように求められます。- または、特定のディスプレイ番号を指定することもできます。
vncserver :display_number
vncserver
はそのディスプレイ番号で Xvnc を起動しようとし、ディスプレイ番号が利用できない場合は終了するようにできます。以下に例を示します。~]$ vncserver :20
- または、
root
で、/etc/sysconfig/vncservers
設定ファイルに設定したユーザーのディスプレイを使用して VNC サーバーを起動するには、次のコマンドを実行します。~]# service vncserver start
システム起動時にvncserver
サービスを自動的に有効にできます。ログインするたびに、vncserver
は自動的に開始します。root
で以下を実行します。~]# chkconfig vncserver on
15.1.4. VNC セッションの終了
vncserver
サービスの有効化と同様に、システム開始時に自動的にサービスの起動を無効にできます。
~]# chkconfig vncserver off
root
で以下のコマンドを実行してサービスを停止できます。
~]# service vncserver stop
-kill
オプションを使用して vncserver
を終了します。
例15.4 特定の表示の終了
~]# vncserver -kill :2
例15.5 Xvnc プロセスの終了
~]$ service vncserver status
Xvnc (pid 4290 4189) is running...
4290
を終了するには、root
で次のコマンドを実行します。
~]# kill -s 15 4290
15.2. 既存のデスクトップの起動
0
の X サーバーにより提供されたデスクトップを使用します。ユーザーは TigerVNC
サーバー x0vncserver
を使用してデスクトップを共有できます。
手順15.5 X デスクトップの共有
x0vncserver
を使用して共有するには、以下の手順を実行します。
root
で次のコマンドを実行します。~]# yum install tigervnc-server
- ユーザーの VNC パスワードを設定します。
~]$ vncpasswd Password: Verify:
- そのユーザーで以下のコマンドを入力します。
~]$ x0vncserver -PasswordFile=.vnc/passwd -AlwaysShared=1
5900
への接続を許可するよう設定されている場合、リモートビューアーはディスプレイ 0
に接続し、ログインしているユーザーのデスクトップを表示できます。ファイアウォールの設定方法は 「VNC のためのファイアウォールの設定」 を参照してください。
15.3. VNC ビューアーの使用
15.3.1. VNC ビューアーのインストール
root
で TigerVNC クライアント vncviewer をインストールするには、以下のコマンドを実行します。 ~]#
yum install tigervnc
vncviewer
を操作することもできます。vncviewer
のパラメーター一覧を表示するには、コマンドラインで vncviewer -h と入力します。
15.3.2. VNC サーバーへの接続
手順15.6 SSH を使用した VNC サーバーへの接続
- 引数なしで vncviewer コマンドを入力すると、VNC Viewer: Connection Details ユーティリティーが表示されます。接続する VNC サーバーを求めるプロンプトが出されます。
- 必要な場合は、同じ画面への既存の VNC 接続の切断を回避するために、以下のようにデスクトップの共有を許可するオプションを選択します。
- Misc. タブを選択します。
- OK を選択してメインメニューに戻ります。
- 接続するアドレスとディスプレイ番号を入力します。
address:display_number
- Connect (接続) を押して VNC サーバー画面に接続します。
- VNC パスワードを入力するよう求められます。これは、グローバルなデフォルトの VNC パスワードが設定されていない限り、ディスプレイ番号に対応するユーザーの VNC パスワードです。VNC サーバーデスクトップを示すウィンドウが表示されます。これは通常のユーザーに表示されるデスクトップではなく、Xvnc デスクトップであることに注意してください。
手順15.7 CLI を使用した VNC サーバーへの接続
- 引数としてアドレスとディスプレイ番号を指定して viewer コマンドを入力します。
vncviewer address:display_number
ここで、address はIP
アドレスまたはホスト名です。 - VNC パスワードを入力して自分自身を認証します。これは、グローバルなデフォルトの VNC パスワードが設定されていない限り、ディスプレイ番号に対応するユーザーの VNC パスワードです。
- VNC サーバーデスクトップを示すウィンドウが表示されます。これは通常のユーザーに表示されるデスクトップではなく、Xvnc デスクトップであることに注意してください。
15.3.2.1. VNC のためのファイアウォールの設定
TCP
パケットで転送される リモートフレームバッファー (RFB)です。必要な場合は、以下のように TCP
プロトコルのポートを開きます。-via
オプションを使用する場合、トラフィックはデフォルトで有効になっている SSH
経由でリダイレクトされます。
手順15.8 lokkit を使用したポートを開く
TCP
のポート5902
などの特定のポートを有効にするには、root
で以下のコマンドを実行します。~]# lokkit --port=5902:tcp --update
これにより、--disabled
オプションで無効にされていない限り、ファイアウォールが再起動されることに注意してください。アクティブな接続は終了し、開始マシンでタイムアウトします。- 選択したポートが開いているかどうかを確認します。
root
で以下を入力します。~]# iptables -L -n | grep 'tcp.*59' ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:5902
- VNC に使用するポート番号が分からない場合は、
root
で以下を入力します。~]# netstat -tnlp tcp 0 0 0.0.0.0:6003 0.0.0.0:* LISTEN 4290/Xvnc tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 7013/x0vncserver tcp 0 0 0.0.0.0:5902 0.0.0.0:* LISTEN 4189/Xvnc tcp 0 0 0.0.0.0:5903 0.0.0.0:* LISTEN 4290/Xvnc tcp 0 0 0.0.0.0:6002 0.0.0.0:* LISTEN 4189/Xvnc
59XX
を開始するポートは、VNCRFB
プロトコル用です。60XX
以降のポートは、X windows プロトコル用です。root
で、ポートおよび Xvnc セッションに関連するユーザーを一覧表示するには、次のコマンドを実行します。~]# lsof -i -P | grep vnc Xvnc 4189 jane 0u IPv6 27972 0t0 TCP *:6002 (LISTEN) Xvnc 4189 jane 1u IPv4 27973 0t0 TCP *:6002 (LISTEN) Xvnc 4189 jane 6u IPv4 27979 0t0 TCP *:5902 (LISTEN) Xvnc 4290 joe 0u IPv6 28231 0t0 TCP *:6003 (LISTEN) Xvnc 4290 joe 1u IPv4 28232 0t0 TCP *:6003 (LISTEN) Xvnc 4290 joe 6u IPv4 28244 0t0 TCP *:5903 (LISTEN) x0vncserv 7013 joe 4u IPv4 47578 0t0 TCP *:5900 (LISTEN)
手順15.9 エディターを使用したファイアウォールの設定
/etc/sysconfig/system-config-firewall
ファイルの詳細を確認します。
- ファイアウォールが許可するものを確認するには、
root
で次のコマンドを実行して、ファイアウォール設定ファイルを表示します。~]# less /etc/sysconfig/system-config-firewall # Configuration file for system-config-firewall --enabled --service=ssh
この例では、デフォルトのインストールでファイアウォールは有効になっていますが、VNC ポートが通過するように設定されていません。 /etc/sysconfig/system-config-firewall
でroot
として編集し、ファイアウォール設定ファイルに--port=port_number:tcp
という行を追加します。たとえば、ポート5902
を追加するには、次のコマンドを実行します。~]# vi /etc/sysconfig/system-config-firewall # Configuration file for system-config-firewall --enabled --service=ssh --port=5902:tcp
- ファイアウォールが再読み込みされたり、システムが再起動されても、これらの変更は反映されないことに注意してください。
/etc/sysconfig/system-config-firewall
の設定を適用するには、root
で以下のコマンドを実行します。~]# lokkit --update
15.3.3. SSH を使用した VNC サーバーへの接続
-via
オプションを指定してサーバークライアント接続を暗号化します。これにより、VNC サーバーとクライアントとの間に SSH
トンネルが作成されます。
vncviewer -via user@host:display_number
例15.6 -via オプションの使用
SSH
を使用して VNC サーバーに接続するには、以下のようにコマンドを入力します。$
vncviewer -via joe@192.168.2.101 127.0.0.1:3
- プロンプトが表示されたら、パスワードを入力し、Enter を押して確認します。
- リモートデスクトップのウィンドウが画面に表示されます。
SSH
の使用の詳細は、14章OpenSSH を参照してください。
15.4. 関連情報
インストールされているドキュメント
vncserver(1)
: VNC サーバーユーティリティーの man ページです。vncviewer(1)
: VNC ビューアーの man ページです。vncpasswd(1)
: VNC パスワードコマンドの man ページです。Xvnc(1)
: Xvnc サーバー設定オプションの man ページです。x0vncserver(1)
: 既存の X サーバーを共有するTigerVNC
サーバーの man ページです。
パート VI. サーバー
第16章 DHCP サーバー
16.1. DHCP を使用する理由
16.2. DHCPv4 サーバーの設定
~]# yum install dhcp
/etc/dhcp/dhcpd.conf
が作成されます。これは、空の設定ファイルです。
~]# cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
/usr/share/doc/dhcp-<バージョン>/dhcpd.conf.sample
にあります。/etc/dhcp/dhcpd.conf
を設定するする際に、このファイルを使用してください。詳細は以下で説明します。
/var/lib/dhcpd/dhcpd.leases
ファイルを使用してクライアントリースデータベースを保存します。詳細は、「リースデータベース」を参照してください。
16.2.1. 設定ファイル
- パラメーター: タスクの実行方法、タスクを実行するかどうか、クライアントに送信するネットワーク設定のオプションを規定します。
- 宣言 - ネットワークトポロジの記述、クライアントの記述、クライアントのアドレス指定、宣言グループへのパラメーターグループの適用を行います。
ルーター
、subnet-mask
、domain-search
、domain-name-servers
、および time-offset
オプションは、以下に宣言された ホスト
ステートメントに使用されます。
サブネット
、および DHCP サーバーが接続されているすべての サブネット
について、サブネット
宣言が 1 つ必要です。これは、DHCP デーモンに対して、アドレスがその サブネット
上に存在することを認識する方法を示しています。サブネット
にアドレスが動的に割り当てられない場合でも、サブネット
ごとに subnet
宣言が必要です。
範囲
が宣言されています。クライアントには、範囲
内の IP アドレスが割り当てられます。
例16.1 サブネットの宣言
subnet 192.168.1.0 netmask 255.255.255.0 { option routers 192.168.1.254; option subnet-mask 255.255.255.0; option domain-search "example.com"; option domain-name-servers 192.168.1.1; option time-offset -18000; # Eastern Standard Time range 192.168.1.10 192.168.1.100; }
範囲
の IP アドレスをクライアントシステムに割り当てます。
例16.2 Range パラメーター
default-lease-time 600; max-lease-time 7200; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option routers 192.168.1.254; option domain-name-servers 192.168.1.1, 192.168.1.2; option domain-search "example.com"; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.100; }
host
宣言内の ハードウェアイーサネット
パラメーターを使用します。例16.3「DHCP を使用した静的 IP アドレス」 で説明されているように、ホスト apex
宣言は、MAC アドレス 00:A0:78:8E:9E:AA が常に IP アドレス 192.168.1.4 を受信するように指定します。
host-name
を使用して、クライアントにホスト名を割り当てることもできます。
例16.3 DHCP を使用した静的 IP アドレス
host apex { option host-name "apex.example.com"; hardware ethernet 00:A0:78:8E:9E:AA; fixed-address 192.168.1.4; }
shared-network
宣言内で宣言する必要があります。shared-network
内のパラメーターですが、囲まれた subnet
宣言以外は、グローバルパラメーターとみなされます。shared-network
の名前は、テストラボ環境内のすべてのサブネットを記述するために「test-lab」というタイトルを使用するなど、ネットワークの説明的なタイトルである必要があります。
group
宣言はグローバルパラメーターを宣言のグループに適用するために使用されます。たとえば、共有ネットワーク、サブネット、ホストをグループ化することができます。
例16.5 Group 宣言
group { option routers 192.168.1.254; option subnet-mask 255.255.255.0; option domain-search "example.com"; option domain-name-servers 192.168.1.1; option time-offset -18000; # Eastern Standard Time host apex { option host-name "apex.example.com"; hardware ethernet 00:A0:78:8E:9E:AA; fixed-address 192.168.1.4; } host raleigh { option host-name "raleigh.example.com"; hardware ethernet 00:A1:DD:74:C3:F2; fixed-address 192.168.1.6; } }
root
で以下のコマンドを実行します。
~]# cp /usr/share/doc/dhcp-<version_number>/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
dhcp-options
の man ページを参照してください。
16.2.2. リースデータベース
/var/lib/dhcpd/dhcpd.leases
が DHCP クライアントのリースデータベースを保存します。このファイルは変更しないでください。最近割り当てられた各 IP アドレスの DHCP リース情報は、リースデータベースに自動的に保存されます。情報には、リースの長さ、IP アドレスの割り当て、リースの開始日と終了日、リースの取得に使用されたネットワークインターフェースカードの MAC アドレスが含まれます。
dhcpd.leases
ファイルの名前は dhcpd.leases~
に変更され、一時的なリースデータベースが dhcpd.leases
に書き込まれます。
dhcpd.leases
ファイルは存在しませんが、サービスを起動する必要があります。この際、新規のリースファイルを作成しないでください。作成すると、それまでのリースはすべて失われ、多くの問題が発生します。これを解決する方法は、dhcpd.leases~
バックアップファイルの名前を dhcpd.leases
に変更して、デーモンを起動することです。
16.2.3. サーバーの起動と停止
dhcpd.leases
ファイルがなければ失敗します。ファイルがない場合は、touch /var/lib/dhcpd/dhcpd.leases コマンドを使用して作成します。
dhcpd.leases
ファイルが自動的にチェックされるため、この手順は必要ありません。
/etc/sysconfig/dhcpd
で、インターフェース名を DHCPDARGS の一覧に追加します。
# Command line options here DHCPDARGS=eth0
/etc/sysconfig/dhcpd
で指定できるその他のコマンドラインオプションは次のとおりです。
- -p & lt;portnum& gt; - dhcpd がリッスンする UDP ポート番号を指定します。デフォルト値はポート 67 です。DHCP サーバーは、指定された UDP ポートよりも大きいポート番号で DHCP クライアントに応答を送信します。たとえば、デフォルトのポート 67 を使用する場合、サーバーはポート 67 でリクエストをリッスンし、ポート 68 にあるクライアントに応答します。ポートを指定して DHCP リレーエージェントを使用する場合は、DHCP リレーエージェントがリッスンするポートと同じポートを指定する必要があります。詳細は、「DHCP リレーエージェント」を参照してください。
- -f: フォアグラウンドプロセスとしてデーモンを実行します。これは主にデバッグ用に使用されます。
- -d - DHCP サーバーデーモンを標準のエラー記述子に記録します。これは主にデバッグ用に使用されます。このオプションを指定しないと、ログは
/var/log/messages
に書き込まれます。 - -cf & lt;filename& gt; - 設定ファイルの場所を指定します。デフォルトの場所は
/etc/dhcp/dhcpd.conf
です。 - -LF & lt;filename& gt; - リースデータベースファイルの場所を指定します。リースデータベースファイルがすでに存在する場合は、DHCP サーバーを起動するたびに同じファイルを使用することが非常に重要になります。このオプションは、実稼働環境以外のマシンでデバッグする目的にのみ使用することが強く推奨されます。デフォルトの場所は
/var/lib/dhcpd/dhcpd.leases
です。 - -q - デーモンの起動時に著作権に関するメッセージ全体を表示しません。
16.2.4. DHCP リレーエージェント
INTERFACES
ディレクティブを使用して /etc/sysconfig/dhcrelay
で指定されていない限り、すべてのインターフェースの DHCP 要求をリッスンします。
16.3. DHCPv4 クライアントの設定
/etc/sysconfig/network
ファイルを変更して、/etc/sysconfig/network-scripts
ディレクトリー内の各ネットワークデバイスのネットワークおよび設定ファイルを有効にします。このディレクトリーでは、各デバイスに ifcfg-eth0
という名前の設定ファイルがなければなりません。ここで、eth0
はネットワークデバイス名です。
/etc/sysconfig/network-scripts/ifcfg-eth0
ファイルに以下の行が含まれていることを確認してください。
DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes
DHCP_HOSTNAME
: DHCP サーバーが IP アドレスを受信する前にクライアントがホスト名を指定する必要がある場合にのみこのオプションを使用します。PEERDNS= <answer
>。ここで、<answer&
gt; は以下のいずれかになります。- はい: サーバーの情報を使用して
/etc/resolv.conf
を変更します。これはデフォルトです。 - No:
/etc/resolv.conf
は変更しないでください。
16.4. マルチホーム DHCP サーバーの設定
/etc/sysconfig/dhcpd
および /etc/dhcp/dhcpd.conf
ファイルのバックアップを作成してください。
/etc/sysconfig/dhcpd
ファイルを使用して、DHCP デーモンがリッスンするネットワークインターフェースを指定します。以下の /etc/sysconfig/dhcpd
例は、DHCP デーモンが eth0
インターフェースおよび eth1
インターフェースをリッスンするように指定します。
DHCPDARGS="eth0 eth1";
eth0
、eth1
、および eth2
があり、DHCP デーモンが eth0
カードでリッスンすることのみが必要で、/etc/sysconfig/dhcpd
で eth0
のみを指定する必要があります。
DHCPDARGS="eth0";
eth0
と 172.16.0.0/24 ネットワークの eth1
を持つサーバーの基本的な /etc/dhcp/dhcpd.conf
ファイルです。複数の subnet
宣言で複数のネットワークに異なる設定を定義することができます。
default-lease-time 600; max-lease-time 7200; subnet 10.0.0.0 netmask 255.255.255.0 { option subnet-mask 255.255.255.0; option routers 10.0.0.1; range 10.0.0.5 10.0.0.15; } subnet 172.16.0.0 netmask 255.255.255.0 { option subnet-mask 255.255.255.0; option routers 172.16.0.1; range 172.16.0.5 172.16.0.15; }
-
subnet 10.0.0.0 netmask 255.255.255.0;
- DHCP サーバーが提供するすべてのネットワークに
subnet
宣言が必要です。複数のサブネットには、複数のsubnet
宣言が必要です。DHCP サーバーにsubnet
宣言の範囲にネットワークインターフェースがない場合、DHCP サーバーはそのネットワークを提供しません。subnet
宣言が 1 つしかなく、ネットワークインターフェースがそのサブネットの範囲にない場合、DHCP デーモンは起動に失敗し、以下のようなエラーが/var/log/messages
に記録されます。dhcpd: No subnet declaration for eth0 (0.0.0.0). dhcpd: ** Ignoring requests on eth0. If this is not what dhcpd: you want, please write a subnet declaration dhcpd: in your dhcpd.conf file for the network segment dhcpd: to which interface eth1 is attached. ** dhcpd: dhcpd: dhcpd: Not configured to listen on any interfaces!
-
option subnet-mask 255.255.255.0;
option subnet-mask
オプションは、サブネットマスクを定義し、subnet
宣言内のnetmask
値を上書きします。簡単なケースでは、サブネットとネットマスクの値は同じです。-
option routers 10.0.0.1;
option routers
オプションは、サブネットのデフォルトゲートウェイを定義します。これは、システムが異なるサブネット上の内部ネットワーク、さらには外部ネットワークに届くために必要です。-
range 10.0.0.5 10.0.0.15;
range
オプションは、利用可能な IP アドレスのプールを指定します。システムには、指定された IP アドレスの範囲からアドレスが割り当てられます。
dhcpd.conf(5)
の man ページを参照してください。
16.4.1. ホストの設定
/etc/sysconfig/dhcpd
および /etc/dhcp/dhcpd.conf
ファイルのバックアップを作成してください。
複数ネットワークに対する単一システムの設定
以下の /etc/dhcp/dhcpd.conf
例は、2 つのサブネットを作成し、接続するネットワークに応じて、同じシステムの IP アドレスを設定します。
default-lease-time 600; max-lease-time 7200; subnet 10.0.0.0 netmask 255.255.255.0 { option subnet-mask 255.255.255.0; option routers 10.0.0.1; range 10.0.0.5 10.0.0.15; } subnet 172.16.0.0 netmask 255.255.255.0 { option subnet-mask 255.255.255.0; option routers 172.16.0.1; range 172.16.0.5 172.16.0.15; } host example0 { hardware ethernet 00:1A:6B:6A:2E:0B; fixed-address 10.0.0.20; } host example1 { hardware ethernet 00:1A:6B:6A:2E:0B; fixed-address 172.16.0.20; }
-
host example0
host
宣言は、IP アドレスなどの単一システムの特定のパラメーターを定義します。複数のホストに特定のパラメーターを設定するには、複数のhost
宣言を使用します。ほとんどの DHCP クライアントはhost
宣言の名前を無視します。そのため、他のhost
宣言に固有である限り、この名前は任意の名前にすることができます。複数のネットワークに同じシステムを設定するには、host
宣言ごとに異なる名前を使用します。そうでない場合には、DHCP デーモンの起動に失敗します。システムは、host
宣言の名前ではなく、hardware ethernet
オプションで識別されます。-
hardware ethernet 00:1A:6B:6A:2E:0B;
hardware ethernet
オプションはシステムを識別します。アドレスを確認するには、ip link コマンドを実行します。-
fixed-address 10.0.0.20;
fixed-address
オプションは、hardware ethernet
オプションで指定したシステムに有効な IP アドレスを割り当てます。このアドレスは、range
オプションで指定した IP アドレスプール外である必要があります。
option
ステートメントがセミコロンで終了しない場合、DHCP デーモンは起動に失敗し、以下のようなエラーが /var/log/messages
に記録されます。
/etc/dhcp/dhcpd.conf line 20: semicolon expected. dhcpd: } dhcpd: ^ dhcpd: /etc/dhcp/dhcpd.conf line 38: unexpected end of file dhcpd: dhcpd: ^ dhcpd: Configuration file errors encountered -- exiting
複数のネットワークインターフェースを持つシステムの設定
以下の host
宣言では、複数のネットワークインターフェースを持つ 1 つのシステムを設定し、各インターフェースが同じ IP アドレスを受け取るようにします。両方のネットワークインターフェースが同じネットワークに同時に接続されている場合には、この設定は機能しません。
host interface0 { hardware ethernet 00:1a:6b:6a:2e:0b; fixed-address 10.0.0.18; } host interface1 { hardware ethernet 00:1A:6B:6A:27:3A; fixed-address 10.0.0.18; }
interface0
は最初のネットワークインターフェースで、interface1
は 2 番目のインターフェースです。異なる hardware ethernet
オプションは、各インターフェースを特定します。
host
宣言をさらに追加します。
- ホストが接続しているネットワークに有効な
fixed-address
を割り当てます。 host
宣言の名前を一意にします。
host
宣言で指定した名前が一意でない場合は、DHCP デーモンは起動に失敗し、以下のようなエラーが /var/log/messages
に記録されます。
dhcpd: /etc/dhcp/dhcpd.conf line 31: host interface0: already exists dhcpd: } dhcpd: ^ dhcpd: Configuration file errors encountered -- exiting
/etc/dhcp/dhcpd.conf
に複数の host interface0
宣言が定義されているために生じました。
16.5. IPv6 の DHCP (DHCPv6)
16.5.1. DHCPv6 サーバーの設定
/etc/dhcp/dhcpd6.conf
にあります。
/usr/share/doc/dhcp- 4.1.1/dhcpd6.conf.sample)の /usr/share/doc/dhcp-<version
>/dhcpd6.conf.sample
にあります。
subnet6 2001:db8:0:1::/64 { range6 2001:db8:0:1::129 2001:db8:0:1::254; option dhcp6.name-servers fec0:0:0:1::1; option dhcp6.domain-search "domain.example"; }
dhcpd.conf(5)
man ページを参照してください。
dhcpd
デーモンにコマンドラインオプションを渡すには、/etc/sysconfig/dhcpd6
ファイルを使用します。このファイルは、/etc/sysconfig/dhcpd
と同じ構造を使用します。
# cat /etc/sysconfig/dhcpd6
# Command line options here
DHCPDARGS=
DHCPDARGS
オプションに追加した値は、DHCPv6 サービスに渡され、dhcpd
デーモンに渡されます。詳細は、dhcpd-options(5)
man ページの STANDARD DHCPV6 OPTIONS
セクションを参照してください。その他の例は、Fedora Project wiki の 動的 IPv6 設定 を参照してください。
16.5.2. DHCPv6 クライアントの設定
/etc/dhcp/dhclient.conf
ファイルを作成および変更します。クライアント設定ファイルの例は、/usr/share/doc/dhclient-4.1.1/dhclient6.conf.sample
を参照してください。
dhcpd-options(5
) man ページの STANDARD DHCPV6 OPTIONS
セクションを参照してください。
16.6. その他のリソース
16.6.1. インストールされているドキュメント
- dhcpd man ページ - DHCP デーモンの動作が説明されています。
- man ページの
dhcpd.conf
- DHCP 設定ファイルの設定方法を検討し、いくつかの例が含まれています。 dhcpd.leases
man ページ - リースの永続的なデータベースを説明しています。- man ページの
dhcp-options
-dhcpd.conf
で DHCP オプションを宣言する構文には、いくつかの例が含まれています。 dhcrelay
の man ページ: DHCP リレーエージェントおよびその設定オプションを説明します。/usr/share/doc/dhcp-<バージョン&
gt;/: 現在の DHCP サービスのファイル、README ファイル、およびリリースノートが含まれています。
第17章 DNS Servers: DNS サーバーの IP アドレス
DNS
(ドメイン名システム)は、ネームサーバー とも呼ばれるネットワークシステムであり、ホスト名をそれぞれの IP アドレスに関連付けます。ユーザーにとっては、ネットワーク上のマシンを名前で参照できるという利点があります。システム管理者は、ネームサーバーを使用すると、名前ベースのクエリーに影響を与えることなく、ホストの IP アドレスを変更したり、これらのクエリーを処理するマシンを決定したりできます。
17.1. DNS の概要
17.1.1. ネームサーバーゾーン
例17.1 シンプルなリソースレコード
bob.sales.example.com
.
)で分割されます。例17.1「シンプルなリソースレコード」 では、com
で トップレベルのドメイン、そのサブドメイン の例
を定義し、example
のサブドメインを 売上
します。この場合、bob
は sales.example.com
ドメインの一部であるリソースレコードを特定します。左側( bob
)以外では、各セクションは ゾーン と呼ばれ、特定の namespace を定義します。
17.1.2. ネームサーバーの種別
17.1.3. ネームサーバーとしての BIND
named
という名前のネームサーバー、rndc と呼ばれる管理ユーティリティー、および dig と呼ばれるデバッグツールが含まれます。Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux でサービスを実行する方法については、12章サービスおよびデーモン を参照してください。
17.2. BIND
BIND
(Berkeley Internet Name Domain)について説明します。ここでは、その設定ファイルの構造にフォーカスし、ローカルとリモートの両方での管理方法を記述しています。
17.2.1. named サービスの設定
named
サービスは起動時に、表17.1「named サービスの設定ファイル」に記載のファイルから設定を読み込みます。
パス | 説明 |
---|---|
/etc/named.conf | 主要設定ファイル。 |
/etc/named/ | 主要設定ファイル内に含まれている設定ファイル用の補助ディレクトリー。 |
named
サービスは起動しません。一般的な /etc/named.conf
ファイルは、以下のように整理されています。
statement-1 ["statement-1-name"] [statement-1-class] { option-1; option-2; option-N; }; statement-2 ["statement-2-name"] [statement-2-class] { option-1; option-2; option-N; }; statement-N ["statement-N-name"] [statement-N-class] { option-1; option-2; option-N; };
/var/named/chroot
環境で実行されます。その場合、初期化スクリプトは mount --bind コマンドを使って上記の設定ファイルをマウントするので、この環境外で設定が管理できます。自動的にマウントされるため、/var/named/chroot
ディレクトリーに何もコピーする必要はありません。これにより、chroot
環境で実行する場合は BIND
設定ファイルの特別な処理を行う必要がないため、メンテナンスが容易になります。BIND
が chroot
環境で実行されていない場合には、すべて整理できます。
/var/named/chroot
ディレクトリーで空の場合、/var/named/chroot
に自動的にマウントされます。/var/named/chroot
にマウントする場合は、空のままにする必要があります。
/var/named
/etc/pki/dnssec-keys
/etc/named
/usr/lib64/bind
または/usr/lib/bind
(アーキテクチャーに依存)
/var/named/chroot
に存在しない場合には、以下のファイルがマウントされます。
/etc/named.conf
/etc/rndc.conf
/etc/rndc.key
/etc/named.rfc1912.zones
/etc/named.dnssec.keys
/etc/named.iscdlv.key
/etc/named.root.key
17.2.1.1. 一般的なステートメントのタイプ
/etc/named.conf
では、通常、以下のタイプのステートメントが使用されます。
-
acl
acl
(Access Control List) (アクセス制御リスト) ステートメントにより、ホストのグループを定義できるようになるため、それらのホストはネームサーバーへのアクセスを許可/拒否できるようになります。以下の形式を取ります。acl acl-name { match-element; ... };
acl-name ステートメント名はアクセス制御リストの名前であり、match-element オプションは通常個別の IP アドレス(例: 10.0.1.1
)または CIDR(Classless Inter-Domain Routing)ネットワーク表記(例: 10.0.1.0/24
)です。定義済みのキーワードの一覧は、表17.2「事前定義されたアクセス制御リスト」を参照してください。表17.2 事前定義されたアクセス制御リスト キーワード 説明 any
すべての IP アドレスと一致します。 localhost
ローカルシステムが使用している IP アドレスと一致します。 localnets
ローカルシステムが接続している任意のネットワークの IP アドレスと一致します。 none
いずれの IP アドレスにも一致しません。 acl
ステートメントは、特にオプション
などの他のステートメントと併用できます。例17.2「acl をオプションと併用する」 ブラックリスト(black-hats
およびred-hats
)の 2 つのアクセス制御リストを定義し、red-hats
に通常のアクセスを付与する間にブラックリストにblack-hats
を追加します。例17.2 acl をオプションと併用する
acl black-hats { 10.0.2.0/24; 192.168.0.0/24; 1234:5678::9abc/24; }; acl red-hats { 10.0.1.0/24; }; options { blackhole { black-hats; }; allow-query { red-hats; }; allow-query-cache { red-hats; }; };
-
include
include
ステートメントにより、ファイルを/etc/named.conf
内に含めることができるので、機密性のあるデータを制限のあるパーミッションで別のファイルに配置できます。以下の形式を取ります以下の形式を取ります。include "file-name"
file-name ステートメント名はファイルへの絶対パスとなります。例17.3 /etc/named.conf へのファイルの追加
include "/etc/named.rfc1912.zones";
-
options
options
ステートメントでは、グローバルサーバー設定オプションや他のステートメントのデフォルトを設定できます。名前付き
の作業ディレクトリーの場所、許可されたクエリーのタイプなどを指定できます。以下の形式を取ります。options { option; ... };
よく使用される option ディレクティブの一覧は、表17.3「一般的に使用されるオプション」を参照してください。表17.3 一般的に使用されるオプション オプション 説明 allow-query
権限のあるリソースレコード用のネームサーバーにクエリーを許可されるホストを指定します。CIDR 表記では、アクセス制御リスト、IP アドレスのコレクション、またはネットワークを受け入れます。デフォルトではすべてのホストが許可されています。 allow-query-cache
再帰クエリーなど権限の必要ないデータ用のネームサーバーにクエリーを許可されるホストを指定します。デフォルトでは、 localhost
とlocalnets
のみが許可されています。blackhole
ネームサーバーへのクエリーを許可されないホストを指定します。このオプションは、特定のホストまたはネットワークにリクエストがあるサーバーをいっぱいにする場合に使用する必要があります。デフォルトのオプションは none
です。directory
named
サービス用の作業ディレクトリーを指定します。デフォルトのオプションは/var/named/
です。dnssec-enable
DNSSEC 関連のリソースレコードを返すかどうかを指定します。デフォルトのオプションは yes
です。dnssec-validation
リソースレコードが DNSSEC を介して認証されていることを確認するかどうかを指定します。デフォルトのオプションは yes
です。forwarders
解決用に要求を転送するネームサーバーの有効な IP アドレス一覧を指定します。 進む
forwarders
ディレクティブの動作を指定します。以下のオプションを取ります。first
: サーバーは、独自の名前の解決を試行する前に、forwarders
ディレクティブに一覧表示されるネームサーバーをクエリーします。only
:forwarders
ディレクティブに一覧表示されるネームサーバーをクエリーできない場合、サーバーは独自の名前の解決を試行しません。
listen-on
クエリーをリッスンする IPv4 ネットワークインターフェースを指定します。ゲートウェイとしても機能する DNS サーバーでは、このオプションを使用して、1 つのネットワークからのみ発信されたクエリーに対応できます。デフォルトでは、すべての IPv4 インターフェースが使用されます。 listen-on-v6
クエリーをリッスンする IPv6 ネットワークインターフェースを指定します。ゲートウェイとしても機能する DNS サーバーでは、このオプションを使用して、1 つのネットワークからのみ発信されたクエリーに対応できます。デフォルトでは、すべての IPv6 インターフェースが使用されます。 max-cache-size
サーバー用キャッシュとして使用されるメモリーの最大容量を指定します。最大値に到達すると、その限度を超過しないようにサーバーは記録が早期期限切れになるようにします。複数表示を持つサーバーでは、この制限は各表示のキャッシュ毎に別々に適用されます。デフォルトのオプションは 32M
です。notify
あるゾーンが更新された時にセカンダリーネームサーバーに通知するかどうかを指定します。以下のオプションを取ります。yes
: サーバーはすべてのセカンダリーネームサーバーに通知します。no
: サーバーはセカンダリーネームサーバーに通知し ません。master-only
: サーバーはゾーンに対してのみプライマリーサーバーに通知します。explicit
: サーバーは、ゾーンステートメント内のalso-notify
一覧で指定したセカンダリーサーバーのみを通知します。
pid-file
named
サービスで作成されたプロセス ID ファイルの場所を指定します。recursion
再帰的なサーバーとして動作するかどうかを指定します。デフォルトのオプションは yes
です。statistics-file
統計ファイルの代替の場所を指定します。デフォルトでは、 /var/named/named.stats
ファイルがデフォルトで使用されています。選択したクライアントのみへの再帰サーバーの制限DDoS(DDoS)攻撃を防止するには、allow-query-cache
オプションを使用して、特定のクライアントサブセットの再帰 DNS サービスのみを制限することが推奨されます。利用可能なオプションの詳細の一覧については、「インストールされているドキュメント」 で参照されている 『BIND 9 管理者リファレンスマニュアル』 およびnamed.conf
man ページを参照してください。例17.4 options ステートメントの使用
options { allow-query { localhost; }; listen-on port 53 { 127.0.0.1; }; listen-on-v6 port 53 { ::1; }; max-cache-size 256M; directory "/var/named"; statistics-file "/var/named/data/named_stats.txt"; recursion yes; dnssec-enable yes; dnssec-validation yes; };
-
zone
zone
ステートメントでは、設定ファイルやゾーン固有のオプションなど、ゾーンの特性を定義でき、グローバルoptions
ステートメントを上書きするのに使用できます。以下の形式を取ります。zone zone-name [zone-class] { option; ... };
zone-name 属性はゾーン の名前で、zone-class はゾーンの オプション です。option は、表17.4「一般的に使用されるオプション」で説明されているようにzone
ステートメントオプションになります。zone-name 属性は、/var/named/
ディレクトリーにある対応するゾーンファイル内で使用される$ORIGIN
ディレクティブに割り当てられたデフォルト値であるため、特に重要になります。named
デーモンはゾーンの名前を、ゾーンファイル内に一覧表示された非完全修飾型のドメイン名のいずれかに追記します。たとえば、zone
ステートメントがexample.com
の名前空間を定義する場合は、zone-name としてexample.com
を使用し、example.com
ゾーンファイル内のホスト名の最後に配置されるようにします。ゾーンファイルの詳細は、「ゾーンファイルの編集」 を参照してください。表17.4 一般的に使用されるオプション オプション 説明 allow-query
このゾーンに関する情報要求が出来るクライアントを指定します。このオプションはグローバル allow-query
オプションを上書きします。デフォルトではすべてのクエリー要求が許可されます。allow-transfer
ゾーン情報の転送要求を許可されるセカンダリーサーバーを指定します。デフォルトでは、すべての転送要求が許可されています。 allow-update
自身のゾーン内で動的な情報更新を許可されるホストを指定します。デフォルトオプションでは、すべての動的更新要求は拒否されます。ホストがゾーンについての情報を更新可能とするには注意が必要です。サーバーが信頼できるネットワークにある場合を除き、このオプションに IP アドレスを設定しないでください。代わりに、「Transaction SIGnatures トランザクション署名 (TSIG)」 の説明に従って TSIG キーを使用します。file
ゾーンの設定データを収納している named
作業ディレクトリー内のファイル名を指定します。masters
権威ゾーン情報を要求する IP アドレスを指定します。このオプションは、ゾーンが type
slave
として定義されている場合にのみ使用されます。notify
あるゾーンが更新された時にセカンダリーネームサーバーに通知するかどうかを指定します。以下のオプションを取ります。yes
: サーバーはすべてのセカンダリーネームサーバーに通知します。no
: サーバーはセカンダリーネームサーバーに通知し ません。master-only
: サーバーはゾーンに対してのみプライマリーサーバーに通知します。explicit
: サーバーは、ゾーンステートメント内のalso-notify
一覧で指定したセカンダリーサーバーのみを通知します。
type
ゾーンのタイプを指定します。以下のオプションを取ります。delegation-only
: COM、NET、ORG などのインフラストラクチャーゾーンの委譲ステータスを強制します。明示的あるいは暗示的な委任のない受信回答はNXDOMAIN
として扱われます。このオプションは、再帰的あるいはキャッシング実装で使用される TLD もしくは root のゾーンのファイルにのみ適用されます。forward
: このゾーンに関する情報へのすべての要求を他のネームサーバーに転送します。hint
: ゾーンが不明な場合にクエリーを解決するルートネームサーバーをポイントする特別な種類のゾーン。hint
ゾーンでは、デフォルト以外の設定は必要ありません。master
: このゾーンに対してネームサーバーを権威として指定します。ゾーンの設定ファイルがシステムに存在する場合は、ゾーンをmaster
として設定する必要があります。slave
: このゾーンに対してネームサーバーをスレーブサーバーとして指定します。マスターサーバーはmasters
ディレクティブで指定します。
プライマリーまたはセカンダリーのネームサーバーの/etc/named.conf
ファイルに対するほとんどの変更には、zone
ステートメントの追加、修正、または削除が含まれ、通常はzone
ステートメントオプションの小さなサブセットのみが、ネームサーバーの効率的な機能のために必要となります。例17.5「プライマリーネームサーバーのゾーンステートメント」では、ゾーンはexample.com
として識別されており、タイプはmaster
にセットされて、named
サービスは/var/named/example.com.zone
ファイルを読み込むように指示されています。これはまた、ゾーンの転送にセカンダリーネームサーバー (192.168.0.2
) のみを許可します。例17.5 プライマリーネームサーバーのゾーンステートメント
zone "example.com" IN { type master; file "example.com.zone"; allow-transfer { 192.168.0.2; }; };
セカンダリーサーバーのzone
ステートメントは、若干異なります。タイプはslave
に設定され、masters
ディレクティブはマスターサーバーの IP アドレスの名前
を指定します。例17.6「セカンダリーネームサーバーのゾーンステートメント」 では、example.com
ゾーンに関する情報に対して、named
サービスがIP
アドレスにプライマリーサーバーをクエリーするように設定されます。受信した情報はその後、/var/named/slaves/example.com.zone
ファイルに保存されます。すべてのスレーブゾーンを/var/named/slaves
ディレクトリーに置く必要があります。そうでないと、ゾーンの送信に失敗します。例17.6 セカンダリーネームサーバーのゾーンステートメント
zone "example.com" { type slave; file "slaves/example.com.zone"; masters { 192.168.0.1; }; };
17.2.1.2. その他のステートメントタイプ
/etc/named.conf
ではあまり使用されません。
-
controls
controls
ステートメントにより各種設定が可能になり、named
サービスを管理するための rndc コマンドの使用に必要なさまざまなセキュリティー要件を設定できるようになります。rndc ユーティリティーとその使用方法についての詳細は、「rndc ユーティリティーの使用」 を参照してください。-
key
key
ステートメントでは、名前で特定のキーを定義できます。キーは、安全な更新や、あるいは、rndc コマンドの使用など各種動作を認証するために使用されます。以下の 2 つのオプションがkey
と合わせて使用されます。algorithm algorithm-name
: 使用されるアルゴリズムのタイプ (たとえば、hmac-md5
)。secret "key-value"
: 暗号化キー。
rndc ユーティリティーとその使用方法についての詳細は、「rndc ユーティリティーの使用」 を参照してください。-
logging
logging
ステートメントでは、channels と呼ばれる複数の種類のログを使用できます。ステートメント内でchannel
オプションを使用すると、独自のファイル名(ファイル
)、サイズ制限(サイズ)、バージョン管理(バージョン
)、重要度(重大度
)を使用してログのカスタムタイプを作成できます。カスタマイズされたチャネルが定義されると、
category
オプションを使用して、チャネルを分類し、named
サービスの再起動時にロギングを開始します。デフォルトでは、named
は標準メッセージをrsyslog
デーモンに送信して、受信したデーモンはメッセージを/var/log/messages
に配置します。それらの重要度レベルとして、default_syslog
(情報ロギングメッセージを処理) とdefault_debug
(特にデバッギングメッセージを処理) などがあります。default
と呼ばれるデフォルトカテゴリは、組み込み型チャンネルを使用して特別な設定なしで通常のロギングを行います。ロギングプロセスのカスタマイズは詳細なプロセスとなるため、本章の範囲外になります。カスタム BIND ログの作成に関する詳細は、「インストールされているドキュメント」 で参照されている 『BIND 9 Administrator Reference Manual』 を参照してください。-
server
server
ステートメントにより、named
サービスがリモートのネームサーバーに対しての反応の仕方に影響する、特に通知とゾーン転送に関して影響するオプションを指定できるようになります。transfer-format
オプションは、各メッセージと共に送信されるリソースレコードの数を制御します。これには、1-answer
(リソースレコード 1 つのみ)、またはmany-answer
(複数リソースレコード) のいずれかになります。many-answers
オプションはより効率的ですが、以前のバージョンの BIND ではサポートされていないことに注意してください。-
ステートメントを使うと、安全な DNS (DNSSEC) に使用される各種パブリックキーを指定できるようになります。
trusted-keys
ステートメントでは、セキュアな DNS(DNSSEC)に使用されるソートされた公開鍵を指定できます。このトピックの詳細については、「DNSSEC (DNS Security Extensions)」 を参照してください。-
match-clients
view
ステートメントでは、ホストがネームサーバーをクエリーするネットワークに応じて、特別なビューを作成できます。これにより、他のホストが全く異なる情報を受け取る間、ゾーンに関する応答が 1 つの応答を受け取ることができます。また、信頼されないホスト以外のホストでは他のゾーンに対するクエリーしか実行できません。view はその名前が一意になっていれば、複数のものを使用できます。match-clients
オプションを使用すると、特定のビューに適用する IP アドレスを指定できます。options
ステートメントがビュー内で使用されると、設定済みのグローバルオプションが上書きされます。最後に、ほとんどのview
ステートメントには、match-clients
リストに適用される複数のzone
ステートメントが含まれます。特定のクライアントの IP アドレスに一致する最初のステートメントが使用されるため、view
ステートメントが一覧表示される順序が重要である点に注意してください。このトピックに関する詳細は、「複数表示」 を参照してください。
17.2.1.3. コメントタグ
/etc/named.conf
ファイルにはコメントも含まれています。コメントは named
サービスには無視されますが、ユーザーに追加情報を提供する時に役に立ちます。以下に有効なコメントタグを示します。
-
//
//
文字の後のテキストはいずれもその行末までコメントとみなされます。以下に例を示します。notify yes; // notify all secondary nameservers
-
#
#
文字の後のテキストはいずれもその行末までコメントとみなされます。以下に例を示します。notify yes; # notify all secondary nameservers
/*
and*/
/*
と*/
によって囲まれたテキストのブロックはコメントとみなされます。以下に例を示します。notify yes; /* notify all secondary nameservers */
17.2.2. ゾーンファイルの編集
/var/ named
/
にある名前付きの作業ディレクトリーに格納され、各ゾーンファイルの名前は zone
ステートメントの file
オプションに従って名前が付けられます。通常、問題のドメインに関連する方法で、example.com.zone
などのゾーンデータを含むファイルを特定します。
パス | 説明 |
---|---|
/var/named/ | named サービスの作業ディレクトリーです。ネームサーバーにはこのディレクトリーに書き込む許可が ありません。 |
/var/named/slaves/ | セカンダリーゾーンのディレクトリーです。このディレクトリーは named サービスによる書き込みが可能です。 |
/var/named/dynamic/ | 動的 DNS(DDNS)ゾーンや管理対象 DNSSEC キーなどの他のファイルのディレクトリー。このディレクトリーは named サービスによる書き込みが可能です。 |
/var/named/data/ | 様々な統計とデバッギングファイル用のディレクトリーです。このディレクトリーは named サービスによる書き込みが可能です。 |
17.2.2.1. 一般的なディレクティブ
- $INCLUDE
- $INCLUDE ディレクティブにより、それが出現する場所にもう1つのファイルを含めることができるため、他のゾーンセッティングは別個のゾーンファイルに保存できるようになります。
例17.7 $INCLUDE ディレクティブの使用
$INCLUDE /var/named/penguin.example.com
- $ORIGIN
- $ORIGIN ディレクティブを使うと、ホスト名だけの非完全修飾型の記録へドメイン名を追記できるようになります。デフォルトではゾーン名が使用されるので、
/etc/named.conf
内でゾーンが指定されている場合は、このディレクティブの使用は不要です。例17.8「$ORIGIN ディレクティブの使用」 では、末尾のピリオドで終了しないリソースレコードで使用される名前はすべてexample.com
が付けられます。例17.8 $ORIGIN ディレクティブの使用
$ORIGIN example.com.
- $TTL
- $TTL ディレクティブにより、ゾーン用のデフォルト TTL (Time to Live) 値をセットできるようになります。つまり、ゾーン記録が有効である時間の長さのセッティングです。各リソースレコードはそれ自身のTTL 値を含むことができるため、それがこのディレクティブを上書きします。この値を増加させるとリモートのネームサーバーはより長い期間でゾーン情報をキャッシュ化できるようになり、ゾーンへのクエリー回数が減少し、リソースレコード変更の伝達に必要な時間を延長させることができます。
例17.9 $TTL ディレクティブの使用
$TTL 1D
17.2.2.2. 一般的なリソースレコード
- A
- Address レコードは、名前に割り当てる IP アドレスを指定します。以下の形式を取ります。
hostname IN A IP-address
hostname の値ない場合、レコードは最後に指定された hostname を指します。例17.10 A リソースレコードの使用
server1 IN A 10.0.1.3 IN A 10.0.1.5
- CNAME
- Canonical Name (別名) レコードはある名前を別の名前にマッピングします。このため、このタイプのレコードは、エイリアスレコードと呼ばれることもあります。以下の形式を取ります。
alias-name IN CNAME real-name
CNAME レコードは Web サーバー用のwww
のように、共通の命名基準を使用するサービスを指すために最も一般的に使用されます。しかし、それらの使用については複数の制限があります。- CNAME レコードは他の CNAME レコードを指してはいけません。これは主に無限のループの可能性を避けるためです。
- CNAME レコードには、他のリソースレコードタイプ(A、NS、pid など)を含めないでください。ゾーンが署名されている場合、唯一の例外は DNSSEC 関連のレコード(RRSIG、NSEC など)です。
- ホストの完全修飾ドメイン名(FQDN)をポイントする他のリソースレコード(NS、pid、PTR)は CNAME レコードを参照できません。
例17.11「CNAME リソースレコードの使用」 では、A レコードはホスト名を IP アドレスにバインドしますが、CNAME レコードは一般的に使用されるwww
ホスト名をその IP アドレスに指定します。例17.11 CNAME リソースレコードの使用
server1 IN A 10.0.1.5 www IN CNAME server1
- MX
- Mail Exchange レコードは、このゾーンで制御されている特定のネームスペースに送信されるメールの行き先を指定します。以下の形式を取ります。
IN MX preference-value email-server-name
email-server-name は完全修飾型ドメイン名 (FQDN) です。preference-value によってネームスペースのメールサーバーの数値ランキングが可能になり、一部のメールシステムに他のシステムよりも優先度を与えます。最小の preference-value を持つ MX リソースレコードが他よりも優先されます。しかし複数メールサーバーが同じ値を持つ可能性があり、その場合はメールトラフィックをサーバー間で均等に分配することになります。例17.12「リソースレコードの使用」では、example.com
ドメイン宛のメール受信時には最初のmail.example.com
メールサーバーがmail2.example.com
メールサーバーよりも優先されます。例17.12 リソースレコードの使用
example.com. IN MX 10 mail.example.com. IN MX 20 mail2.example.com.
- NS
- Nameserver レコードはある特定のゾーン用に正当なネームサーバーを表明します。以下の形式を取ります。
IN NS nameserver-name
nameserver-name は完全修飾型ドメイン名 (FQDN) である必要があります。ドメインに対して 2 つのネームサーバーが正当だとして一覧表示されている時には、これらのネームサーバーがセカンダリーネームサーバーであるか、またはその 1 つがプライマリーサーバーであるかどうかは重要でありません。両方とも正当と考慮されます。例17.13 NS リソースレコードの使用
IN NS dns1.example.com. IN NS dns2.example.com.
- PTR
- Pointer レコードはネームスペースの別の部分を指します。以下の形式を取ります。
last-IP-digit IN PTR FQDN-of-system
last-IP-digit ディレクティブは、IP アドレスの最後の番号で、FQDN-of-system は完全修飾ドメイン名(FQDN)です。 - SOA
- Start of Authority レコードはネームスペースについての信頼できる重要な情報をネームサーバーに表明します。ディレクティブの後に配置されていて、ゾーンファイルでは最初のリソースレコードです。以下の形式を取ります。
@ IN SOA primary-name-server hostmaster-email ( serial-number time-to-refresh time-to-retry time-to-expire minimum-TTL )
ディレクティブは以下の通りです。@
シンボルは $ORIGIN ディレクティブ (または$ORIGIN ディレクティブがセットされていない場合は、ゾーン名) をこのSOA リソースレコードで定義されたネームスペースとして配置します。- primary-name-server ディレクティブは、このドメインの正式なプライマリーネームサーバーのホスト名です。
- hostmaster-email ディレクティブは、ネームスペースに関して連絡する相手のメールです。
- serial-number ディレクティブは、
named
サービスがゾーンを再ロードする時間であることを示すためにゾーンファイルが変更される度に増加する数値です。 - time-to-refresh ディレクティブは、ゾーンに対して変更がなされたかどうかをプライマリーネームサーバーに尋ねるまで待機する時間の長さを決定するためにセカンダリーネームサーバーが使用する数値です。
- time-to-retry ディレクティブは、プライマリーネームサーバーが応答しない事態にリフレッシュ要求を出すまで待機する時間の長さを決定するためにセカンダリーネームサーバーによって使用される数値です。time-to-expire ディレクティブ内で指定された時間が経過するまでに、プライマリーネームサーバーがリフレッシュ要求に応答しない場合は、セカンダリーサーバーはそのネームスペースに関する要求での権威としての応答を停止します。
- BIND 4 と 8 では、minimum-TTL ディレクティブは他のネームサーバーがゾーンの情報をキャッシュ化する時間の長さになります。BIND 9 では、これは否定的な回答がキャッシュ化される時間の長さを定義します。ネガティブな応答のキャッシュは最大 3 時間(つまり
3H
)に設定できます。
BIND の設定時には、すべての時間は秒で指定されます。しかし、秒以外の時間単位を指定するのに短縮形を使用することができます。たとえば、分 (M
)、時間 (H
)、日 (D
)、および週 (W
) です。表17.6「秒表示とその他の時間単位」は、秒単位で、同等の時間 (秒単位) を別の形式で示しています。表17.6 秒表示とその他の時間単位 秒 他の時間単位 60 1M
1800 30M
3600 1H
10800 3H
21600 6H
43200 12H
86400 1D
259200 3D
604800 1W
31536000 365D
例17.14 SOA リソースレコードの使用
@ IN SOA dns1.example.com. hostmaster.example.com. ( 2001062501 ; serial 21600 ; refresh after 6 hours 3600 ; retry after 1 hour 604800 ; expire after 1 week 86400 ) ; minimum TTL of 1 day
17.2.2.3. コメントタグ
named
サービスでは無視されますが、ユーザーに追加情報を提供する際に便利です。セミコロンの後の行末までのテキストはすべてコメントとみなされます。以下に例を示します。
604800 ; expire after 1 week
17.2.2.4. 使用例
17.2.2.4.1. 単純なゾーンファイル
例17.15 単純なゾーンファイル
$ORIGIN example.com. $TTL 86400 @ IN SOA dns1.example.com. hostmaster.example.com. ( 2001062501 ; serial 21600 ; refresh after 6 hours 3600 ; retry after 1 hour 604800 ; expire after 1 week 86400 ) ; minimum TTL of 1 day ; ; IN NS dns1.example.com. IN NS dns2.example.com. dns1 IN A 10.0.1.1 IN AAAA aaaa:bbbb::1 dns2 IN A 10.0.1.2 IN AAAA aaaa:bbbb::2 ; ; @ IN MX 10 mail.example.com. IN MX 20 mail2.example.com. mail IN A 10.0.1.5 IN AAAA aaaa:bbbb::5 mail2 IN A 10.0.1.6 IN AAAA aaaa:bbbb::6 ; ; ; This sample zone file illustrates sharing the same IP addresses ; for multiple services: ; services IN A 10.0.1.10 IN AAAA aaaa:bbbb::10 IN A 10.0.1.11 IN AAAA aaaa:bbbb::11 ftp IN CNAME services.example.com. www IN CNAME services.example.com. ; ;
.example.com および dns2.example.com
として設定され、それぞれ A レコードを使用して 10.
0.1.1
および 10.0.1.2
IP アドレスに関連付けられます。
mail
および mail2
をポイントします。これらの名前はトレーリングピリオドで終了していないため、$ORIGIN ドメインがその後に配置されており、それらを mail.example.com
および mail2.example.com
に広げています。
www.example.com
(WWW) などの標準の名前で利用可能なサービスは、CNAME レコードを使用して適切なサービスを指すようにしてあります。
/etc/named.conf
ファイルに追加される場合に使用されます。
zone "example.com" IN { type master; file "example.com.zone"; allow-update { none; }; };
17.2.2.4.2. 逆引き名前解決ゾーンファイル
例17.16 逆引き名前解決ゾーンファイル
$ORIGIN 1.0.10.in-addr.arpa. $TTL 86400 @ IN SOA dns1.example.com. hostmaster.example.com. ( 2001062501 ; serial 21600 ; refresh after 6 hours 3600 ; retry after 1 hour 604800 ; expire after 1 week 86400 ) ; minimum TTL of 1 day ; @ IN NS dns1.example.com. ; 1 IN PTR dns1.example.com. 2 IN PTR dns2.example.com. ; 5 IN PTR server1.example.com. 6 IN PTR server2.example.com. ; 3 IN PTR ftp.example.com. 4 IN PTR ftp.example.com.
10.0.1.1
から 10.0.1.6
までは対応する完全修飾ドメイン名を参照します。
zone
ステートメントが /etc/named.conf
ファイルに追加される場合に使用されます。
zone "1.0.10.in-addr.arpa" IN { type master; file "example.com.rr.zone"; allow-update { none; }; };
17.2.3. rndc ユーティリティーの使用
named
サービスの管理を可能にするコマンドラインツールです。以下のような使用法になります。
rndc [option...] command [command-option]
17.2.3.1. ユーティリティーの設定
named
が選択したポート(デフォルトでは 953
)をリッスンするように設定し、サービスと rndc ユーティリティーの両方で同じキーを使用する必要があります。
パス | 説明 |
---|---|
/etc/named.conf | named サービス用のデフォルト設定ファイル |
/etc/rndc.conf | rndc ユーティリティー用のデフォルト設定ファイル |
/etc/rndc.key | デフォルトキーの場所 |
/etc/rndc.conf
に配置されています。ファイルが存在しない場合は、ユーティリティーは、rndc-confgen -a コマンドを使用したインストールプロセス中に自動的に生成される、/etc/rndc.key
にあるキーを使用します。
named
サービスは、「その他のステートメントタイプ」 に記載されている よう
に、/etc/named.conf
設定ファイルの control ステートメントを使用して設定されます。このステートメントが存在しない限り、ループバックアドレス( 127.0.0.1
)からの接続のみが許可され、/etc/rndc.key
にあるキーが使用されます。
/etc/rndc.key
ファイルを読み取れるようにします。
~]# chmod o-rwx /etc/rndc.key
17.2.3.2. サービスステータスの確認
named
サービスの現在の状態をチェックするには、以下のコマンドを使用します。
~]# rndc status
version: 9.7.0-P2-RedHat-9.7.0-5.P2.el6
CPUs found: 1
worker threads: 1
number of zones: 16
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running
17.2.3.3. 設定とゾーンのリロード
~]# rndc reload
server reload successful
~]# rndc reload localhost
zone reload up-to-date
~]# rndc reconfig
~]# rndc freeze localhost
~]# rndc thaw localhost
The zone reload and thaw was successful.
17.2.3.4. ゾーンキーの更新
~]# rndc sign localhost
auto-dnssec
オプションを maintain
に設定する必要があることに注意してください。例を示します。たとえば、以下のようになります。
zone "localhost" IN { type master; file "named.localhost"; allow-update { none; }; auto-dnssec maintain; };
17.2.3.5. DNSSEC 検証の有効化
~]# rndc validation on
~]# rndc validation off
17.2.3.6. クエリーロギングの有効化
~]# rndc querylog
17.2.4. dig ユーティリティーの使用
dig [@server] [option...] name type
17.2.4.1. ネームサーバーのルックアップ
dig name NS
例17.17 ネームサーバールックアップのサンプル
~]$ dig example.com NS
; <<>> DiG 9.7.1-P2-RedHat-9.7.1-2.P2.fc13 <<>> example.com NS
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57883
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;example.com. IN NS
;; ANSWER SECTION:
example.com. 99374 IN NS a.iana-servers.net.
example.com. 99374 IN NS b.iana-servers.net.
;; Query time: 1 msec
;; SERVER: 10.34.255.7#53(10.34.255.7)
;; WHEN: Wed Aug 18 18:04:06 2010
;; MSG SIZE rcvd: 77
17.2.4.2. IP アドレスのルックアップ
dig name A
例17.18 IP アドレス検索のサンプル
~]$ dig example.com A
; <<>> DiG 9.7.1-P2-RedHat-9.7.1-2.P2.fc13 <<>> example.com A
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4849
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0
;; QUESTION SECTION:
;example.com. IN A
;; ANSWER SECTION:
example.com. 155606 IN A 192.0.32.10
;; AUTHORITY SECTION:
example.com. 99175 IN NS a.iana-servers.net.
example.com. 99175 IN NS b.iana-servers.net.
;; Query time: 1 msec
;; SERVER: 10.34.255.7#53(10.34.255.7)
;; WHEN: Wed Aug 18 18:07:25 2010
;; MSG SIZE rcvd: 93
17.2.4.3. ホスト名の検索
dig -x
address
例17.19 ホスト名の検索例
~]$ dig -x 192.0.32.10
; <<>> DiG 9.7.1-P2-RedHat-9.7.1-2.P2.fc13 <<>> -x 192.0.32.10
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29683
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 6
;; QUESTION SECTION:
;10.32.0.192.in-addr.arpa. IN PTR
;; ANSWER SECTION:
10.32.0.192.in-addr.arpa. 21600 IN PTR www.example.com.
;; AUTHORITY SECTION:
32.0.192.in-addr.arpa. 21600 IN NS b.iana-servers.org.
32.0.192.in-addr.arpa. 21600 IN NS c.iana-servers.net.
32.0.192.in-addr.arpa. 21600 IN NS d.iana-servers.net.
32.0.192.in-addr.arpa. 21600 IN NS ns.icann.org.
32.0.192.in-addr.arpa. 21600 IN NS a.iana-servers.net.
;; ADDITIONAL SECTION:
a.iana-servers.net. 13688 IN A 192.0.34.43
b.iana-servers.org. 5844 IN A 193.0.0.236
b.iana-servers.org. 5844 IN AAAA 2001:610:240:2::c100:ec
c.iana-servers.net. 12173 IN A 139.91.1.10
c.iana-servers.net. 12173 IN AAAA 2001:648:2c30::1:10
ns.icann.org. 12884 IN A 192.0.34.126
;; Query time: 156 msec
;; SERVER: 10.34.255.7#53(10.34.255.7)
;; WHEN: Wed Aug 18 18:25:15 2010
;; MSG SIZE rcvd: 310
17.2.5. BIND の高度な機能
named
のみを使用して名前解決サービスを提供したり、特定ドメイン用の権威として機能させます。ただし、BIND バージョン 9 には、よりセキュアで効率的な DNS サービスを可能にする数多くの高度な機能があります。
17.2.5.1. 複数表示
/etc/named.conf
設定ファイルに追加します。match-clients
オプションを使用して IP アドレスまたはネットワーク全体に一致し、特別なオプションおよびゾーンデータを指定します。
17.2.5.2. IXFR (Incremental Zone Transfers 差分ゾーン転送)
17.2.5.3. Transaction SIGnatures トランザクション署名 (TSIG)
17.2.5.4. DNSSEC (DNS Security Extensions)
SERFVAIL
応答が返されます。
+dnssec
(DNSSEC OK ビット)、+cd
(応答の検証に再帰的ネームサーバー)、および +bufsize=512
(パケットサイズを 512B に変更してファイアウォール経由で取得する。
17.2.5.5. インターネットプロトコルバージョン 6 (IPv6)
AAAA
リソースレコードと listen-on-v6
ディレクティブを使用してサポートされます。
17.2.6. 回避すべき一般的な間違い
- セミコロンと弓形括弧の正しい使用
/etc/named.conf
ファイル内のセミコロンの欠如や、不一致な弓形括弧はnamed
サービスの開始を阻止してしまいます。- 期間を正しく使用する
- ゾーンファイル内では、ドメイン名の末尾のピリオドは完全修飾型ドメイン名を示します。省略した場合には、
named
サービスがゾーンの名前または$ORIGIN
の値を追加して、完了します。 - ゾーンファイルを編集する時のシリアル番号増加
- シリアル番号が増加していない場合、プライマリーネームサーバーは正しくて新しい情報を持ちますが、セカンダリーネームサーバーは決して変更を通知されません。そのため、そのゾーンのデータをリフレッシュする試みをしません。
- ファイヤーウォールの設定
- ファイヤーウォールが、
named
サービスから他のネームサーバーへの接続をブロックしている場合は、ファイヤーウォールの設定変更が推奨されます。固定 UDP ソースポートの使用を回避DNS セキュリティーの最近の調査によると、DNS クエリーに固定の UDP ソースポートを使用することは、攻撃者がキャッシュポイズリング攻撃をより簡単に実行できるセキュリティー脆弱性があります。これを回避するには、ファイアウォールを、ランダムな UDP ソースポートからのクエリーを許可するように設定します。
17.2.7. その他のリソース
17.2.7.1. インストールされているドキュメント
-
/usr/share/doc/bind-version/
- 最新のドキュメンテーションを格納しているメインのディレクトリーです。
-
/usr/share/doc/bind-version/arm/
- 『BIND リソース要件の詳細、さまざまな種類のネームサーバーの設定方法、負荷分散の実行方法、その他の高度なトピックなど、HTML および SGML 形式で BIND 9 管理者リファレンスマニュアル』 を含むディレクトリー。BIND のほとんどの新しいユーザーでは、開始する最適な場所になります。
-
/usr/share/doc/bind-version/draft/
- DNS サービスに関連する問題を確認し、それらに対応する方法を提案する、さまざまな技術ドキュメントを含むディレクトリー。
-
/usr/share/doc/bind-version/misc/
- 特定の高度な問題に対処するために設計されたディレクトリー。BIND バージョン 8 のユーザーは、BIND 9 に
移行する際に行う必要がある特定の変更について移行
ドキュメントを参照してください。options
ファイルには、/etc/named.conf
で使用される BIND 9 に実装されたすべてのオプションが一覧表示されます。 -
/usr/share/doc/bind-version/rfc/
- BIND に関連するすべての RFC ドキュメントを提供するディレクトリー。
- man rndc
- 使用に関する全ドキュメントを含む rndc の man ページです。
- man named
- BIND nameserver デーモンの制御に使用できるさまざまな引数のドキュメントを含む
名前
の man ページです。 - man lwresd
- 軽量リゾルバーデーモンとその使用方法に関する完全なドキュメントを含む
lwresd
の man ページです。 - man named.conf
- この man ページには、
named
設定ファイル内で利用可能なオプションの総合的一覧があります。 - man rndc.conf
- この man ページには、rndc 設定ファイル内で利用可能なオプションの総合的一覧があります。
17.2.7.2. 便利な Web サイト
- http://www.isc.org/software/bind
- BIND プロジェクトのホームページには、現在のリリースに関する情報と 『BIND 9 Administrator Reference Manual』 の PDF バージョンが含まれます。
第18章 Web サーバー
HTTP
(Hypertext Transfer Protocol)サーバーまたは Web サーバー は、Web 経由でクライアントにコンテンツを提供するネットワークサービスです。これは通常 Web ページを指しますが、他のドキュメントも当てはまります。
- Apache HTTP サーバー
- nginx
18.1. Apache HTTP サーバー
httpd
サービスの基本設定について説明し、サーバーモジュールの追加、仮想ホストの設定、セキュアな HTTP サーバーの設定など、高度なトピックを説明します。
httpd
サービス設定を更新する必要があります。本セクションでは、新たに追加された機能の一部、重要な変更の概要、古い設定ファイルの更新について説明します。
18.1.1. 新機能
18.1.2. 主な変更点
httpd
サービス設定にいくつかの変更が加えられました。
18.1.3. 設定の更新
- モジュールは変更されている可能性があるため、すべてのモジュール名が正しいことを確認してください。名前が変更された各モジュールの
LoadModule
ディレクティブを調整します。 - サードパーティーのモジュールは、読み込みを試みる前にすべて再コンパイルをします。これは一般的に認証と権限付与のモジュールに該当します。
- Apache HTTP Secure Server を使用する場合は、Secure Sockets Layer (SSL) プロトコルの有効化に関する重要な情報について 「mod_ssl モジュールの有効化」 を参照してください。
~]# service httpd configtest
Syntax OK
18.1.4. httpd サービスの実行
httpd
サービスを使用するには、httpd がインストールされていることを確認してください。これを行うには、次のコマンドを使用します。
~]# yum install httpd
18.1.4.1. サービスの起動
httpd
サービスを実行する場合は、root
で次のコマンドを実行します。
~]# service httpd start
Starting httpd: [ OK ]
~]# chkconfig httpd on
18.1.4.2. サービスの停止
httpd
サービスを停止するには、root
で次のコマンドを実行します。
~]# service httpd stop
Stopping httpd: [ OK ]
~]# chkconfig httpd off
18.1.4.3. サービスの再起動
httpd
サービスを再起動する方法は、3 通りあります。
- サービスを完全に再起動するには、
root
で次のコマンドを実行します。~]# service httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ]
これにより、稼働中のhttpd
サービスが停止し、すぐに再起動します。このコマンドは、PHP など、動的に読み込んだモジュールをインストールまたは削除した後に使用します。 - 設定のリロードだけを行うには、
root
で以下を入力します。~]# service httpd reload
これにより、実行中のhttpd
サービスが設定ファイルを再読み込みします。現在処理中のリクエストはすべて割り込みされるため、クライアントのブラウザーはエラーメッセージを表示したり、ページの一部をレンダリングしたりする可能性があります。 - アクティブなリクエストに影響を与えずに設定を再読み込みするには、
root
で次のコマンドを実行します。~]# service httpd graceful
これにより、実行中のhttpd
サービスが設定ファイルを再読み込みします。現在処理されているリクエストでは、古い設定が使用されます。
18.1.4.4. サービスステータスの確認
httpd
サービスが実行していることを確認するには、シェルプロンプトで以下を入力します。
~]# service httpd status
httpd (pid 19014) is running...
18.1.5. 設定ファイルの編集
httpd
サービスが起動すると、デフォルトでは、表18.1「httpd サービスの設定ファイル」 に記載されている場所から設定が読み込まれます。
パス | 説明 |
---|---|
/etc/httpd/conf/httpd.conf | 主要設定ファイル。 |
/etc/httpd/conf.d/ | 主要設定ファイル内に含まれている設定ファイル用の補助ディレクトリー。 |
httpd
サービスを再起動する方法は、「サービスの再起動」 を参照してください。
~]# service httpd configtest
Syntax OK
18.1.5.1. 一般的な httpd.conf ディレクティブ
/etc/httpd/conf/httpd.conf
設定ファイルで使用されます。
-
<Directory>
- <
;Directory>
; ディレクティブを使用すると、特定のディレクティブを特定のディレクトリーにのみ適用できます。以下の形式を取ります。<Directory directory> directive … </Directory>
ディレクトリー は、ローカルファイルシステム内の既存のディレクトリーへの完全パスまたはワイルドカード式のいずれかになります。このディレクティブは、ScriptAlias
で指定されたディレクトリー外にあるサーバー側のスクリプトに追加のcgi-bin
ディレクトリーを設定するために使用できます。この場合、ExecCGI
ディレクティブおよびAddHandler
ディレクティブを指定し、ターゲットディレクトリーのパーミッションを正しく設定する必要があります(つまり0755
)。例18.1 <Directory> ディレクティブの使用
<Directory /var/www/html> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory>
-
<IfDefine>
IfDefine
ディレクティブでは、特定のパラメーターがコマンドラインに提供されている場合に限り、特定のディレクティブを使用できます。以下の形式を取ります。<IfDefine [!]parameter> directive … </IfDefine>
パラメーター は、-D
パラメーター コマンドラインオプション(例: httpd -DEnableHome)を使用してシェルプロンプトに指定できます。オプションの感嘆符(つまり!
)が存在する場合、囲まれたディレクティブはパラメーターが指定されて いない 場合にのみ使用されます。例18.2 <IfDefine> ディレクティブの使用
<IfDefine EnableHome> UserDir public_html </IfDefine>
-
<IfModule>
- <
;IfModule>
ディレクティブを使用すると、特定のモジュールがロードされる場合にのみ特定のディレクティブを使用できます。以下の形式を取ります。<IfModule [!]module> directive … </IfModule>
モジュール は名前またはファイル名で識別できます。オプションの感嘆符(つまり!
)が存在する場合は、モジュールがロードされて いない 場合にのみ囲まれたディレクティブが使用されます。例18.3 <IfModule> ディレクティブの使用
<IfModule mod_disk_cache.c> CacheEnable disk / CacheRoot /var/cache/mod_proxy </IfModule>
-
<location>
- <
;Location>
; ディレクティブを使用すると、特定のディレクティブを特定の URL のみに適用できます。以下の形式を取ります。<Location url> directive … </Location>
url は、DocumentRoot
ディレクティブ(/server-info
など)で指定されたディレクトリーに対する相対パス、またはhttp://example.com/server-info
などの外部 URL のいずれかになります。例18.4 <Location> ディレクティブの使用
<Location /server-info> SetHandler server-info Order deny,allow Deny from all Allow from .example.com </Location>
-
<Proxy>
- <
;Proxy>
; ディレクティブを使用すると、特定のディレクティブをプロキシーサーバーにのみ適用できます。以下の形式を取ります。<Proxy pattern> directive … </Proxy>
パターン は外部 URL またはワイルドカード式(http://example.com/*
など)にすることができます。例18.5 <Proxy> ディレクティブの使用
<Proxy *> Order deny,allow Deny from all Allow from .example.com </Proxy>
-
<VirtualHost>
- <
;VirtualHost>
ディレクティブを使用すると、特定のディレクティブを特定の仮想ホストにのみ適用できます。以下の形式を取ります。<VirtualHost address[:port]…> directive … </VirtualHost>
アドレス は、表18.2「利用可能な <VirtualHost> オプション」 に記載されているように、IP アドレス、完全修飾ドメイン名、または特別な形式になります。表18.2 利用可能な <VirtualHost> オプション オプション 説明 *
すべての IP アドレスを表します。 _default_
一致しない IP アドレスを表します。 例18.6 <VirtualHost> ディレクティブの使用
<VirtualHost *:80> ServerAdmin webmaster@penguin.example.com DocumentRoot /www/docs/penguin.example.com ServerName penguin.example.com ErrorLog logs/penguin.example.com-error_log CustomLog logs/penguin.example.com-access_log common </VirtualHost>
-
AccessFileName
AccessFileName
ディレクティブを使用すると、各ディレクトリーのアクセス制御情報をカスタマイズするために使用するファイルを指定できます。以下の形式を取ります。AccessFileName filename…
ファイル 名 は、要求されたディレクトリーで検索するファイルの名前です。デフォルトでは、サーバーは.htaccess
を検索します。セキュリティー上の理由から、ディレクティブの後にFiles
タグを付け、.ht
で始まるファイルが Web クライアントによってアクセスされないようにします。これには、.htaccess
および.htpasswd
ファイルが含まれます。例18.7 AccessFileName ディレクティブの使用
AccessFileName .htaccess <Files ~ "^\.ht"> Order allow,deny Deny from all Satisfy All </Files>
-
アクション
Action
ディレクティブにより、特定のメディアタイプが要求されるときに実行される CGI スクリプトを指定できます。以下の形式を取ります。Action content-type path
content-type は、text/html
、image/png
、application/pdf
などの有効な MIME タイプである必要があります。パス は既存の CGI スクリプトを参照し、DocumentRoot
ディレクティブで指定されたディレクトリーに対して相対的である必要があります(例:/cgi-bin/process-image.cgi
)。例18.8 Action ディレクティブの使用
Action image/png /cgi-bin/process-image.cgi
-
AddDescription
AddDescription
ディレクティブを使用すると、指定のファイルについてのサーバー生成ディレクトリー一覧に表示する簡単な説明を指定できます。以下の形式を取ります。AddDescription "description" filename…
この 説明 は、二重引用符(つまり"
)で囲まれた短いテキストである必要があります。ファイル名 に は、完全なファイル名、ファイル拡張子、またはワイルドカード式を使用できます。例18.9 AddDescription ディレクティブの使用
AddDescription "GZIP compressed tar archive" .tgz
-
AddEncoding
AddEncoding
ディレクティブを使用すると、特定のファイル拡張子のエンコーディングタイプを指定できます。以下の形式を取ります。AddEncoding encoding extension…
エンコーディング は、x-compress
、x-gzip
などの有効な MIME エンコーディングである必要があります。拡張機能 は大文字と小文字を区別するファイル拡張子で、従来は先頭のドット(.gz
など)で記述されます。このディレクティブは通常、ダウンロード時に特定のファイルタイプを圧縮解除するように Web ブラウザーに指示するために使用されます。例18.10 AddEncoding ディレクティブの使用
AddEncoding x-gzip .gz .tgz
-
AddHandler
AddHandler
ディレクティブを使用すると、特定のファイル拡張子を選択したハンドラーにマップできます。以下の形式を取ります。AddHandler handler extension…
ハンドラー は、以前に定義したハンドラーの名前である必要があります。拡張機能 は大文字と小文字を区別するファイル拡張子で、従来は先頭のドット(.cgi
など)で記述されます。このディレクティブは通常、.cgi
拡張子を持つファイルを CGI スクリプトとして処理するために使用されます。さらに、これは一般的に、サーバー解析された HTML および image-map ファイルを処理するためにも使用されます。例18.11 AddHandler オプションの使用
AddHandler cgi-script .cgi
-
AddIcon
AddIcon
ディレクティブを使用すると、サーバー生成ディレクトリーの一覧の特定ファイルに表示されるアイコンを指定できます。以下の形式を取ります。AddIcon path pattern…
パス は既存のアイコンファイルを参照し、DocumentRoot
ディレクティブで指定されたディレクトリーに対して相対的である必要があります(例:/icons/folder.png
)。パターン は、ファイル名、ファイル拡張子、ワイルドカード式、または以下の表に記載されている特別な形式になります。表18.3 利用可能な AddIcon オプション オプション 説明 ^^DIRECTORY^^
ディレクトリーを表します。 ^^BLANKICON^^
空の行を表します。 例18.12 AddIcon ディレクティブの使用
AddIcon /icons/text.png .txt README
-
AddIconByEncoding
AddIconByEncoding
ディレクティブを使用すると、サーバー生成ディレクトリー一覧で特定のエンコーディングタイプに対して表示されるアイコンを指定できます。以下の形式を取ります。AddIconByEncoding path encoding…
パス は既存のアイコンファイルを参照し、DocumentRoot
ディレクティブで指定されたディレクトリーに対して相対的である必要があります(例:/icons/compressed.png
)。エンコーディング は、x-compress
、x-gzip
などの有効な MIME エンコーディングである必要があります。例18.13 AddIconByEncoding ディレクティブの使用
AddIconByEncoding /icons/compressed.png x-compress x-gzip
-
AddIconByType
AddIconByType
ディレクティブを使用すると、サーバー生成ディレクトリー一覧の特定のメディアタイプについて表示されるアイコンを指定できます。以下の形式を取ります。AddIconByType path content-type…
パス は既存のアイコンファイルを参照し、DocumentRoot
ディレクティブで指定されたディレクトリーに対して相対的である必要があります(例:/icons/text.png
)。content-type は、有効な MIME タイプ(例:text/html
またはimage/png
)か、text/*
、image/* などのワイルドカード式のいずれかである必要があります。例18.14 AddIconByType ディレクティブの使用
AddIconByType /icons/video.png video/*
-
AddLanguage
AddLanguage
ディレクティブを使用すると、ファイル拡張子を特定の言語に関連付けることができます。以下の形式を取ります。AddLanguage language extension…
言語 は、cs
、en
、fr
などの有効な MIME 言語である必要があります。拡張機能 は大文字と小文字を区別するファイル拡張子で、従来は先頭のドット(.cs
など)で記述されます。このディレクティブは、クライアントの言語設定に基づいて複数の言語でコンテンツを提供する Web サーバーに特に便利です。例18.15 AddLanguage ディレクティブの使用
AddLanguage cs .cs .cz
-
AddType
AddType
ディレクティブを使用すると、特定のファイル拡張子のメディアタイプを定義または上書きできます。以下の形式を取ります。AddType content-type extension…
content-type は、text/html
、image/png
等の有効な MIME タイプである必要があります。拡張機能 は大文字と小文字を区別するファイル拡張子で、従来は先頭のドット(.cs
など)で記述されます。例18.16 AddType ディレクティブの使用
AddType application/x-gzip .gz .tgz
-
Alias
Alias
ディレクティブを使用すると、DocumentRoot
ディレクティブで指定されたデフォルトディレクトリー外のファイルおよびディレクトリーを参照できます。以下の形式を取ります。Alias url-path real-path
url-path はDocumentRoot
ディレクティブで指定されたディレクトリーに対して相対的である必要があります(例:/images/
)。リアルタイムパス は、ローカルファイルシステム内のファイルまたはディレクトリーへの完全パスです。このディレクティブの後には、通常、ターゲットディレクトリーにアクセスするための追加のパーミッションを持つDirectory
タグが続きます。デフォルトでは、/icons/
エイリアスが作成され、/var/www/icons/
からのアイコンがサーバー生成ディレクトリー一覧に表示されます。例18.17 Alias ディレクティブの使用
Alias /icons/ /var/www/icons/ <Directory "/var/www/icons"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order allow,deny Allow from all <Directory>
-
許可
Allow
ディレクティブでは、指定のディレクトリーにアクセスするパーミッションがあるクライアントを指定できます。以下の形式を取ります。Allow from client…
クライアント は、ドメイン名、IP アドレス(フルおよびパーシャルの両方)、ネットワーク/ネットマスク のペア、またはすべてのクライアントのすべて
になります。例18.18 Allow ディレクティブの使用
Allow from 192.168.1.0/255.255.255.0
-
AllowOverride
AllowOverride
ディレクティブを使用すると、.htaccess
ファイルのディレクティブがデフォルト設定を上書きできます。以下の形式を取ります。AllowOverride type…
この タイプ は、表18.4「利用可能な AllowOverride オプション」 で説明されているように、利用可能なグルーピングオプションの 1 つである必要があります。表18.4 利用可能な AllowOverride オプション オプション 説明 すべて
.htaccess
のすべてのディレクティブは、以前の設定を上書きすることができます。なし
.htaccess
のディレクティブは、以前の設定を上書きすることはできません。AuthConfig
AuthName
、AuthType
、またはRequire
などの承認ディレクティブを使用できます。FileInfo
DefaultType
、RequestHeader
、またはRewriteEngine
、およびAction
ディレクティブなどのファイルタイプ、メタデータ、およびmod_rewrite
ディレクティブを使用できます。Indexes
AddDescription
、AddIcon
、またはFancyIndexing
などのディレクトリーインデックスディレクティブの使用を許可します。制限
ホストアクセスディレクティブを許可します。つまり、 Allow
、Deny
、およびOrder
を使用できます。options
[=オプション,…]Options
ディレクティブを使用できます。さらに、このディレクティブを使用して設定できるオプションをカスタマイズするオプションのコンマ区切りリストを指定することもできます。例18.19 AllowOverride ディレクティブの使用
AllowOverride FileInfo AuthConfig Limit
-
BrowserMatch
BrowserMatch
ディレクティブを使用すると、クライアントの Web ブラウザータイプに基づいてサーバーの動作を変更できます。以下の形式を取ります。BrowserMatch pattern variable…
この パターン は、User-Agent HTTP header フィールドに一致する正規表現です。変数 は、header フィールドがパターンと一致する場合に設定される環境変数です。デフォルトでは、このディレクティブは既知の問題のある特定のブラウザーへの接続を拒否するために使用され、これらのアクションで問題が発生することがわかっているブラウザーの keepalives および HTTP ヘッダーのフラッシュを無効にします。例18.20 BrowserMatch ディレクティブの使用
BrowserMatch "Mozilla/2" nokeepalive
-
CacheDefaultExpire
CacheDefaultExpire
オプションでは、有効期限のないドキュメント、または最後の変更日がないドキュメントをキャッシュする期間を設定できます。以下の形式を取ります。CacheDefaultExpire time
時間 は秒単位で指定します。デフォルトのオプションは3600
(1 時間)です。例18.21 CacheDefaultExpire ディレクティブの使用
CacheDefaultExpire 3600
-
CacheDisable
CacheDisable
ディレクティブを使用すると、特定の URL のキャッシュを無効にできます。以下の形式を取ります。CacheDisable path
パス はDocumentRoot
ディレクティブで指定されたディレクトリーに対して相対的である必要があります(例:/files/
)。例18.22 CacheDisable ディレクティブの使用
CacheDisable /temporary
-
CacheEnable
CacheEnable
ディレクティブを使用すると、特定の URL に使用するキャッシュタイプを指定できます。以下の形式を取ります。CacheEnable type url
表18.5「利用可能なキャッシュタイプ」 の説明に従って、タイプ は有効なキャッシュタイプである必要があります。url には、DocumentRoot
ディレクティブ(例:/images/
)で指定されたディレクトリーに対する相対パス、プロトコル(ftp:
// など)、またはhttp://example.com/
などの外部 URL を使用できます。表18.5 利用可能なキャッシュタイプ タイプ 説明 mem
メモリーベースのストレージマネージャー。 disk
ディスクベースのストレージマネージャー。 fd
ファイル記述子キャッシュ。 例18.23 CacheEnable ディレクティブの使用
CacheEnable disk /
-
CacheLastModifiedFactor
CacheLastModifiedFactor
ディレクティブでは、有効期限が指定されていないドキュメントをキャッシュする時間をカスタマイズできますが、最終変更日に関する情報が提供されます。以下の形式を取ります。CacheLastModifiedFactor number
この 数 は、ドキュメントの最終更新以降に渡された時間を掛けて乗算するために使用されます。デフォルトのオプションは0.1
(10 分の 1)です。例18.24 CacheLastModifiedFactor ディレクティブの使用
CacheLastModifiedFactor 0.1
-
CacheMaxExpire
CacheMaxExpire
ディレクティブを使用すると、ドキュメントをキャッシュする最大時間を指定できます。以下の形式を取ります。CacheMaxExpire time
時間 は秒単位で指定します。デフォルトのオプションは86400
(1 日)です。例18.25 CacheMaxExpire ディレクティブの使用
CacheMaxExpire 86400
-
CacheNegotiatedDocs
CacheNegotiatedDocs
ディレクティブを使用すると、コンテンツに基づいてネゴシエートされたドキュメントのキャッシュを有効にできます。以下の形式を取ります。CacheNegotiatedDocs option
この オプション は、表18.6「利用可能な CacheNegotiatedDocs オプション」 の説明に従って、有効なキーワードである必要があります。コンテンツネゴシエートされたドキュメントは時間の経過と共に変化するか、または要求側の入力により変更される可能性があるため、デフォルトのオプションはOff
です。表18.6 利用可能な CacheNegotiatedDocs オプション オプション 説明 オン
コンテンツネゴシエートされたドキュメントのキャッシュを有効にします。 オフ
コンテンツネゴシエートされたドキュメントのキャッシュを無効にします。 例18.26 CacheNegotiatedDocs ディレクティブの使用
CacheNegotiatedDocs On
-
CacheRoot
CacheRoot
ディレクティブを使用すると、キャッシュファイルを保存するディレクトリーを指定できます。以下の形式を取ります。CacheRoot directory
ディレクトリー は、ローカルファイルシステム内の既存のディレクトリーへの完全パスである必要があります。デフォルトのオプションは/var/cache/mod_proxy/
です。例18.27 CacheRoot ディレクティブの使用
CacheRoot /var/cache/mod_proxy
-
CustomLog
CustomLog
ディレクティブを使用すると、ログファイル名とログファイルの形式を指定できます。以下の形式を取ります。CustomLog path format
パス はログファイルを参照し、ServerRoot
ディレクティブ(デフォルトでは/etc/httpd/
)で指定されたディレクトリーに対して相対的である必要があります。形式 は、明示的な形式の文字列、またはLogFormat
ディレクティブを使用して以前に定義したフォーマット名のいずれかである必要があります。例18.28 CustomLog ディレクティブの使用
CustomLog logs/access_log combined
-
DefaultIcon
DefaultIcon
ディレクティブでは、他のアイコンが関連付けられていない場合に、サーバー生成ディレクトリー一覧のファイルに表示されるアイコンを指定できます。以下の形式を取ります。DefaultIcon path
パス は既存のアイコンファイルを参照し、DocumentRoot
ディレクティブで指定されたディレクトリーに対して相対的である必要があります(例:/icons/unknown.png
)。例18.29 DefaultIcon ディレクティブの使用
DefaultIcon /icons/unknown.png
-
DefaultType
DefaultType
ディレクティブでは、適切な MIME タイプをサーバーで判断できない場合に使用するメディアタイプを指定できます。以下の形式を取ります。DefaultType content-type
content-type は、text/html
、image/png
、application/pdf
など、有効な MIME タイプである必要があります。例18.30 DefaultType ディレクティブの使用
DefaultType text/plain
-
拒否
Deny
ディレクティブを使用すると、指定のディレクトリーへのアクセスを拒否しているクライアントを指定できます。以下の形式を取ります。Deny from client…
クライアント は、ドメイン名、IP アドレス(フルおよびパーシャルの両方)、ネットワーク/ネットマスク のペア、またはすべてのクライアントのすべて
になります。例18.31 Deny ディレクティブの使用
Deny from 192.168.1.1
-
DirectoryIndex
DirectoryIndex
ディレクティブでは、ディレクトリーが要求される際にクライアントに提供されるドキュメントを指定できます(つまり、URL が/
文字で終了する場合)。以下の形式を取ります。DirectoryIndex filename…
ファイル 名 は、要求されたディレクトリーで検索するファイルの名前です。デフォルトでは、サーバーはindex.html
とindex.html.var
を検索します。例18.32 DirectoryIndex ディレクティブの使用
DirectoryIndex index.html index.html.var
-
DocumentRoot
DocumentRoot
ディレクティブを使用すると、コンテンツを提供するメインディレクトリーを指定できます。以下の形式を取ります。DocumentRoot directory
ディレクトリー は、ローカルファイルシステム内の既存のディレクトリーへの完全パスである必要があります。デフォルトのオプションは/var/www/html/
です。例18.33 DocumentRoot ディレクティブの使用
DocumentRoot /var/www/html
-
ErrorDocument
ErrorDocument
ディレクティブを使用すると、特定のエラーへの応答として表示するドキュメントまたはメッセージを指定できます。以下の形式を取ります。ErrorDocument error-code action
error-code は403
(Forbidden)、404
(Not Found)、または500
(Internal Server Error)などの有効なコードである必要があります。アクション は、URL(ローカルおよび外部の両方)または二重引用符(つまり"
)で囲まれたメッセージ文字列のいずれかになります。例18.34 ErrorDocument ディレクティブの使用
ErrorDocument 403 "Access Denied" ErrorDocument 404 /404-not_found.html
-
ErrorLog
ErrorLog
ディレクティブを使用すると、サーバーエラーがログに記録されるファイルを指定できます。以下の形式を取ります。ErrorLog path
パス はログファイルを参照し、ServerRoot
ディレクティブ(デフォルトは/etc/httpd/
)で指定されたディレクトリーへの相対パスのいずれかです。デフォルトのオプションはlogs/error_log
です。例18.35 ErrorLog ディレクティブの使用
ErrorLog logs/error_log
-
ExtendedStatus
ExtendedStatus
ディレクティブを使用すると、詳細なサーバーステータス情報を有効にできます。以下の形式を取ります。ExtendedStatus option
この オプション は、表18.7「利用可能な ExtendedStatus オプション」 の説明に従って、有効なキーワードである必要があります。デフォルトのオプションはOff
です。表18.7 利用可能な ExtendedStatus オプション オプション 説明 オン
詳細なサーバーステータスの生成を有効にします。 オフ
詳細なサーバーステータスの生成を無効にします。 例18.36 ExtendedStatus ディレクティブの使用
ExtendedStatus On
-
グループ
Group
ディレクティブを使用すると、httpd
サービスを実行するグループを指定できます。以下の形式を取ります。Group group
この グループ は既存の UNIX グループである必要があります。デフォルトのオプションはapache
です。Group
は <VirtualHost> 内で
はサポートされなくなり、SuexecUserGroup
ディレクティブに置き換えられました。例18.37 Group ディレクティブの使用
Group apache
-
HeaderName
HeaderName
ディレクティブを使用すると、サーバー生成ディレクトリーリストの最初に付加されるファイルを指定できます。以下の形式を取ります。HeaderName filename
ファイル 名 は、要求されたディレクトリーで検索するファイルの名前です。デフォルトでは、サーバーはHEADER.html
を検索します。例18.38 HeaderName ディレクティブの使用
HeaderName HEADER.html
-
HostnameLookups
HostnameLookups
ディレクティブを使用すると、IP アドレスの自動解決を有効にできます。以下の形式を取ります。HostnameLookups option
この オプション は、表18.8「利用可能な HostnameLookups オプション」 の説明に従って、有効なキーワードである必要があります。サーバーのリソースを確保するため、デフォルトのオプションはOff
です。表18.8 利用可能な HostnameLookups オプション オプション 説明 オン
各接続の IP アドレスの解決を有効にして、ホスト名をログに記録できるようにします。ただし、これにより処理のオーバーヘッドが大きくなります。 double
二重の逆引き DNS ルックアップの実行を有効にします。上記のオプションと比較すると、処理のオーバーヘッドがさらに追加されます。 オフ
各接続の IP アドレスの解決を無効にします。 サーバーログファイルにホスト名が必要な場合は、DNS ルックアップを実行する多くのログアナライザーツールのいずれかを効率的に使用できます。例18.39 HostnameLookups ディレクティブの使用
HostnameLookups Off
-
包含
Include
ディレクティブを使用すると、他の設定ファイルを追加できます。以下の形式を取ります。Include filename
ファイル名
には、絶対パス、ServerRoot
ディレクティブで指定されたディレクトリーに対する相対パス、またはワイルドカード式を使用できます。/etc/httpd/conf.d/
ディレクトリーのすべての設定ファイルは、デフォルトでロードされます。例18.40 Include ディレクティブの使用
Include conf.d/*.conf
-
IndexIgnore
IndexIgnore
ディレクティブを使用すると、サーバー生成ディレクトリーの一覧から省略されるファイル名の一覧を指定できます。以下の形式を取ります。IndexIgnore filename…
filename オプションは、完全なファイル名またはワイルドカード式のいずれかです。例18.41 IndexIgnore ディレクティブの使用
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
-
IndexOptions
IndexOptions
ディレクティブを使用すると、サーバー生成ディレクトリー一覧の動作をカスタマイズできます。以下の形式を取ります。IndexOptions option…
この オプション は、表18.9「利用可能なディレクトリー一覧オプション」 の説明に従って、有効なキーワードである必要があります。デフォルトのオプションはCharset=UTF-8
、FancyIndexing
、HTMLTable
、NameWidth=*
、およびVersionSort
です。表18.9 利用可能なディレクトリー一覧オプション オプション 説明 charset
=encoding生成された Web ページの文字セットを指定します。エンコーディング は、 UTF-8
やISO-8859-2
などの有効な文字セットである必要があります。Type
=content-type生成された Web ページのメディアタイプを指定します。content-type は、 text/html
やtext/plain
などの有効な MIME タイプである必要があります。DescriptionWidth
=valuedescription 列の幅を指定します。値 は、幅を自動的に調整する多数の文字またはアスタリスク( *
)のいずれかになります。FancyIndexing
特定のファイルのさまざまなアイコンや、列ヘッダーをクリックしてディレクトリー一覧を再分類できる高度な機能を有効にします。 FolderFirst
最初にディレクトリーの一覧表示を有効にします。常にディレクトリーにファイルを配置してください。 HTMLTable
ディレクトリーの一覧への HTML テーブルの使用を有効にします。 IconsAreLinks
アイコンをリンクとしての使用を有効にします。 IconHeight
=valueアイコンの高さを指定します。値 は複数のピクセルです。 IconWidth
=valueアイコンの幅を指定します。値 は複数のピクセルです。 IgnoreCase
大文字と小文字を区別する方法でファイルとディレクトリーのソートを有効にします。 IgnoreClient
クライアントからのクエリー変数の受け入れを無効にします。 NameWidth
=valueファイル名列の幅を指定します。値 は、幅を自動的に調整する多数の文字またはアスタリスク( *
)のいずれかになります。ScanHTMLTitles
AddDescription
ディレクティブでファイルが指定されていない場合に、説明(つまりtitle
要素)のファイルの解析を有効にします。ShowForbidden
他のアクセスが制限されているファイルの一覧表示を有効にします。 SuppressColumnSorting
列ヘッダーをクリックして、ディレクトリー一覧の並べ替えを無効にします。 SuppressDescription
ファイルの説明のために領域の確保を無効にします。 SuppressHTMLPreamble
HeaderName
ディレクティブで指定されたファイルが存在する場合に、標準の HTML プリアンブルの使用を無効にします。SuppressIcon
ディレクトリー一覧でアイコンの使用を無効にします。 SuppressLastModified
ディレクトリー一覧の最後の変更フィールドの日付の表示を無効にします。 SuppressRules
ディレクトリー一覧での水平行の使用を無効にします。 SuppressSize
ディレクトリー一覧のファイルサイズフィールドの表示を無効にします。 TrackModified
HTTP ヘッダーの Last-Modified
およびETag
の値の返信を有効にします。VersionSort
期待した方法でバージョン番号が含まれるファイルのソートを有効にします。 XHTML
デフォルトの HTML 3.2 の代わりに XHTML 1.0 の使用を有効にします。 例18.42 IndexOptions ディレクティブの使用
IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable Charset=UTF-8
-
KeepAlive
KeepAlive
ディレクティブを使用すると、永続的な接続を有効にできます。以下の形式を取ります。KeepAlive option
この オプション は、表18.10「利用可能な KeepAlive オプション」 の説明に従って、有効なキーワードである必要があります。デフォルトのオプションはOff
です。表18.10 利用可能な KeepAlive オプション オプション 説明 オン
永続的な接続を有効にします。この場合、サーバーは接続ごとに複数のリクエストを受け入れます。 オフ
キープアライブ接続を無効にします。 永続的な接続が有効になっていると、ビジーなサーバーで子プロセスの数がすぐに増大し、最終的に最大限度に達するため、サーバーが大幅に低下することに注意してください。リスクを軽減するには、KeepAliveTimeout
をより小さい値に設定し、/var/log/httpd/logs/error_log
ログファイルを注意して監視することを推奨します。例18.43 KeepAlive ディレクティブの使用
KeepAlive Off
-
KeepAliveTimeout
KeepAliveTimeout
ディレクティブでは、接続を閉じる前に別の要求を待つ時間を指定できます。以下の形式を取ります。KeepAliveTimeout time
時間 は秒単位で指定します。デフォルトのオプションは15
です。例18.44 KeepAliveTimeout ディレクティブの使用
KeepAliveTimeout 15
-
LanguagePriority
LanguagePriority
ディレクティブでは、言語の優先順位をカスタマイズできます。以下の形式を取ります。LanguagePriority language…
言語 は、cs
、en
、fr
などの有効な MIME 言語である必要があります。このディレクティブは、クライアントの言語設定に基づいて複数の言語でコンテンツを提供する Web サーバーに特に便利です。例18.45 LanguagePriority ディレクティブの使用
LanguagePriority sk cs en
-
listen
- Listen ディレクティブでは、リッスンする IP アドレスまたはポートを指定できます。以下の形式を取ります。
Listen [ip-address:]port [protocol]
ip-address はオプションで、指定しない限り、サーバーはすべての IP アドレスからの指定の ポート で着信要求を受け入れます。プロトコル はポート番号から自動的に決定されるため、通常は省略可能です。デフォルトオプションでは、ポート80
をリッスンします。サーバーが 1024 未満のポートをリッスンするように設定されている場合は、スーパーユーザーだけがhttpd
サービスを起動することができることに注意してください。例18.46 Listen ディレクティブの使用
Listen 80
-
LoadModule
LoadModule
ディレクティブを使用すると、DSO( Dynamic Shared Object )モジュールを読み込むことができます。以下の形式を取ります。LoadModule name path
名前 は、必要なモジュールの有効な識別子である必要があります。パス は既存のモジュールファイルを参照し、ライブラリーを配置するディレクトリーに対して相対的である必要があります(32 ビットの場合は/usr/lib/httpd/
、デフォルトでは 64 ビットシステムの場合は/usr/lib/httpd/
)。Apache HTTP Server の DSO サポートの詳細は、「モジュールの使用」 を参照してください。例18.47 LoadModule ディレクティブの使用
LoadModule php5_module modules/libphp5.so
-
LogFormat
- LogFormat ディレクティブでは、ログファイルの形式を指定できます。以下の形式を取ります。
LogFormat format name
形式 は、表18.11「一般的な LogFormat オプション」 で説明されているオプションで構成される文字列です。名前 はCustomLog
ディレクティブの形式文字列の代わりに使用できます。表18.11 一般的な LogFormat オプション オプション 説明 %b
応答のサイズ(バイト単位)を表します。 %h
リモートクライアントの IP アドレスまたはホスト名を表します。 %l
指定されている場合はリモートログ名を表します。そうでない場合は、代わりにハイフン(つまり -
)が使用されます。%r
ブラウザーまたはクライアントから送信される要求文字列の最初の行を表します。 %s
ステータスコードを表します。 %t
リクエストの日付と時間を表します。 %u
認証が必要な場合は、リモートユーザーを表します。そうでない場合は、代わりにハイフン(つまり -
)が使用されます。%{field}
HTTP ヘッダー フィールド の内容を表します。一般的なオプションには、 %{Referer}
(クライアントをサーバーに接続する Web ページの URL)および%{User-Agent}
(リクエストを行う Web ブラウザーのタイプ)が含まれます。例18.48 LogFormat ディレクティブの使用
LogFormat "%h %l %u %t \"%r\" %>s %b" common
-
LogLevel
LogLevel
ディレクティブを使用すると、エラーログの詳細レベルをカスタマイズできます。以下の形式を取ります。LogLevel option
この オプション は、表18.12「利用可能な logLevel オプション」 の説明に従って、有効なキーワードである必要があります。デフォルトのオプションはwarn
です。表18.12 利用可能な logLevel オプション オプション 説明 emerg
サーバーが作業を実行できない場合、緊急の状況のみがログに記録されます。 alert
即時アクションが必要なときのすべての状況がログに記録される。 crit
重大な状態はすべてログに記録されます。 error
すべてのエラーメッセージがログに記録されます。 warn
すべての警告メッセージがログに記録されます。 notice
正常であっても、重要な状況はログに記録されます。 info
さまざまな情報メッセージがログに記録されます。 debug
さまざまなデバッグメッセージがログに記録されます。 例18.49 LogLevel ディレクティブの使用
LogLevel warn
-
MaxKeepAliveRequests
MaxKeepAliveRequests
ディレクティブでは、永続的な接続の要求の最大数を指定できます。以下の形式を取ります。MaxKeepAliveRequests number
数 値が大きいと、サーバーのパフォーマンスが向上することがあります。0
を使用すると、要求数が無制限になることに注意してください。デフォルトオプションは100
です。例18.50 MaxKeepAliveRequests オプションの使用
MaxKeepAliveRequests 100
-
NameVirtualHost
NameVirtualHost
ディレクティブを使用すると、名前ベースの仮想ホストの IP アドレスとポート番号を指定できます。以下の形式を取ります。NameVirtualHost ip-address[:port]
ip-address は、すべてのインターフェースを表す完全な IP アドレス、またはアスタリスク(*
)のいずれかになります。IPv6 アドレスは角括弧([
および ])で囲む必要があることに注意してください。ポート はオプションです。
名前ベースの仮想ホストを使用すると、1 つの Apache HTTP Server が複数の IP アドレスを使用せずに異なるドメインに対応できます。セキュアな HTTP 接続の使用名前ベースの仮想ホストは、セキュアでない HTTP 接続で のみ 機能します。セキュアなサーバーで仮想ホストを使用する場合は、代わりに IP アドレスベースの仮想ホストを使用してください。例18.51 NameVirtualHost ディレクティブの使用
NameVirtualHost *:80
-
オプション
Options
ディレクティブでは、特定のディレクトリーで利用可能なサーバー機能を指定できます。以下の形式を取ります。Options option…
この オプション は、表18.13「利用可能なサーバー機能」 の説明に従って、有効なキーワードである必要があります。表18.13 利用可能なサーバー機能 オプション 説明 ExecCGI
CGI スクリプトの実行を有効にします。 FollowSymLinks
ディレクトリーの以下のシンボリックリンクを有効にします。 インクルード (Include)
サーバー側のインクルードを有効にします。 IncludesNOEXEC
サーバー側のインクルードを有効にしますが、コマンドの実行はできません。 Indexes
サーバー生成ディレクトリーの一覧を有効にします。 MultiViews
コンテンツネゴシエートされた 「複数ビュー」 を有効にします。 SymLinksIfOwnerMatch
リンクとターゲットファイルの両方に同じ所有者がある場合は、ディレクトリー内の以下のシンボリックリンクを有効にします。 すべて
複数のビュー
以外の上記のすべての機能を有効にします。なし
上記のすべての機能を無効にします。 重要SymLinksIfOwnerMatch
オプションは、攻撃者が迂回できるためセキュリティー機能ではありません。例18.52 Options ディレクティブの使用
Options Indexes FollowSymLinks
-
順序
Order
ディレクティブでは、Allow
ディレクティブおよびDeny
ディレクティブを評価する順番を指定できます。以下の形式を取ります。Order option
この オプション は、表18.14「利用可能な順序オプション」 の説明に従って、有効なキーワードである必要があります。デフォルトのオプションはallow,deny
です。表18.14 利用可能な順序オプション オプション 説明 allow,deny
使用 できる
ディレクティブは最初に評価されます。deny,allow
deny
ディレクティブが最初に評価されます。例18.53 Order ディレクティブの使用
Order allow,deny
-
PidFile
PidFile
ディレクティブでは、サーバーの プロセス ID (PID)を保存するファイルを指定できます。以下の形式を取ります。PidFile path
パス は pid ファイルを参照します。これは、ServerRoot
ディレクティブ(デフォルトでは/etc/httpd/
)で指定されたディレクトリーへの相対または相対パスになります。デフォルトのオプションはrun/httpd.pid
です。例18.54 PidFile ディレクティブの使用
PidFile run/httpd.pid
-
ProxyRequests
ProxyRequests
ディレクティブを使用すると、転送プロキシー要求を有効にすることができます。以下の形式を取ります。ProxyRequests option
この オプション は、表18.15「利用可能な ProxyRequests オプション」 の説明に従って、有効なキーワードである必要があります。デフォルトのオプションはOff
です。表18.15 利用可能な ProxyRequests オプション オプション 説明 オン
転送プロキシー要求を有効にします。 オフ
転送プロキシー要求を無効にします。 例18.55 ProxyRequests ディレクティブの使用
ProxyRequests On
-
ReadmeName
ReadmeName
ディレクティブを使用すると、サーバー生成ディレクトリー一覧の最後に追加するファイルを指定できます。以下の形式を取ります。ReadmeName filename
ファイル 名 は、要求されたディレクトリーで検索するファイルの名前です。デフォルトでは、サーバーはREADME.html
を検索します。例18.56 ReadmeName ディレクティブの使用
ReadmeName README.html
-
リダイレクト
Redirect
ディレクティブを使用すると、クライアントを別の URL にリダイレクトできます。以下の形式を取ります。Redirect [status] path url
ステータス は任意で、表18.16「利用可能なステータスオプション」 で説明されているように有効なキーワードである必要があります。パス は古い場所を参照し、DocumentRoot
ディレクティブで指定されたディレクトリーに対して相対的である必要があります(例:/docs
)。URL は コンテンツの現在の場所を参照します(例:http://docs.example.com
)。表18.16 利用可能なステータスオプション ステータス 説明 permanent
要求されたリソースが永続的に移動されたことを示します。 301
(Moved Permanently)ステータスコードがクライアントに返されます。temp
要求されたリソースが一時的に移動したことを示します。 302
(Found)ステータスコードがクライアントに返されます。seeother
要求されたリソースが置き換えられたことを示します。 303
(その他 を参照)のステータスコードがクライアントに返されます。gone
要求されたリソースが永続的に削除されたことを示します。 410
(Gone)ステータスはクライアントに返されます。より高度なリダイレクト技術の場合は、Apache HTTP Server インストールに含まれるmod_rewrite
モジュールを使用できます。例18.57 Redirect ディレクティブの使用
Redirect permanent /docs http://docs.example.com
-
ScriptAlias
ScriptAlias
ディレクティブを使用すると、CGI スクリプトの場所を指定できます。以下の形式を取ります。ScriptAlias url-path real-path
url-path はDocumentRoot
ディレクティブで指定されたディレクトリーに対して相対的である必要があります(例:/cgi-bin/
)。リアルタイムパス は、ローカルファイルシステム内のファイルまたはディレクトリーへの完全パスです。このディレクティブの後には、通常、ターゲットディレクトリーにアクセスするための追加のパーミッションを持つDirectory
タグが続きます。デフォルトでは、/var/www
alias が作成されます。/cgi-bin/
にあるスクリプトにアクセスできるように、/cgi-bin/ScriptAlias
ディレクティブは、CGI スクリプトが通常のテキストドキュメントとして表示されないようにするために使用されます。例18.58 ScriptAlias ディレクティブの使用
ScriptAlias /cgi-bin/ /var/www/cgi-bin/ <Directory "/var/www/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory>
-
ServerAdmin
ServerAdmin
ディレクティブでは、サーバー生成の Web ページに表示されるサーバー管理者のメールアドレスを指定できます。以下の形式を取ります。ServerAdmin email
デフォルトのオプションはroot@localhost
です。このディレクティブは、通常webmaster@hostname
に設定されます。hostname はサーバーのアドレスです。設定が完了すると、エイリアスwebmaster
は/etc/aliases
の Web サーバーを担当するユーザー、および superuser として newaliases コマンドを実行します。例18.59 ServerAdmin ディレクティブの使用
ServerAdmin webmaster@penguin.example.com
-
ServerName
ServerName
ディレクティブを使用すると、Web サーバーのホスト名およびポート番号を指定できます。以下の形式を取ります。ServerName hostname[:port]
ホスト名 は、サーバーの 完全修飾ドメイン名 (FQDN)である必要があります。ポート はオプションですが、指定する場合はListen
ディレクティブで指定された番号と一致する必要があります。このディレクティブを使用する場合は、IP アドレスとサーバー名のペアが/etc/hosts
ファイルに含まれていることを確認してください。例18.60 ServerName ディレクティブの使用
ServerName penguin.example.com:80
-
ServerRoot
ServerRoot
ディレクティブを使用すると、サーバーが機能するディレクトリーを指定できます。以下の形式を取ります。ServerRoot directory
ディレクトリー は、ローカルファイルシステム内の既存のディレクトリーへの完全パスである必要があります。デフォルトのオプションは/etc/httpd/
です。例18.61 ServerRoot ディレクティブの使用
ServerRoot /etc/httpd
-
ServerSignature
ServerSignature
ディレクティブを使用すると、サーバー生成ドキュメントのサーバーに関する情報を表示できます。以下の形式を取ります。ServerSignature option
この オプション は、表18.17「利用可能な ServerSignature オプション」 の説明に従って、有効なキーワードである必要があります。デフォルトのオプションはOn
です。表18.17 利用可能な ServerSignature オプション オプション 説明 オン
サーバー名とバージョンをサーバー生成ページに追加できるようにします。 オフ
サーバー名とバージョンをサーバー生成ページに追加するを無効にします。 Email
ServerAdmin
ディレクティブで指定されたサーバー名、バージョン、およびメールアドレスをサーバー生成ページへ追加できるようにします。例18.62 ServerSignature ディレクティブの使用
ServerSignature On
-
ServerTokens
ServerTokens
ディレクティブを使用すると、Server 応答ヘッダーに含まれる情報をカスタマイズできます。以下の形式を取ります。ServerTokens option
この オプション は、表18.18「利用可能な ServerTokens オプション」 の説明に従って、有効なキーワードである必要があります。デフォルトのオプションはOS
です。表18.18 利用可能な ServerTokens オプション オプション 説明 Prod
製品名( Apache
)のみが含まれます。メジャー
製品名とサーバーのメジャーバージョンが含まれます(例: 2
)。マイナー
製品名とサーバーのマイナーバージョンが含まれます(例: 2
.2)。Min
製品名と最小バージョンのサーバー(例: 2.2.15
)が含まれます。OS
製品名、サーバーの最小バージョン、および実行中のオペレーティングシステムのタイプ( Red Hat
など)が含まれます。Full
上記のすべての情報を、読み込んだモジュールのリストとともに追加します。 セキュリティー上の理由から、できるだけ少ないサーバーに関する情報を表示することが推奨されます。例18.63 ServerTokens ディレクティブの使用
ServerTokens Prod
-
SuexecUserGroup
SuexecUserGroup
ディレクティブを使用すると、CGI スクリプトが実行されるユーザーおよびグループを指定できます。以下の形式を取ります。SuexecUserGroup user group
ユーザー は既存のユーザーで、グループは有効な UNIX グループ である必要があります。セキュリティー上の理由から、CGI スクリプトは root 権限で実行する必要があります。<VirtualHost&
gt; では、SuexecUserGroup
はUser
ディレクティブおよびGroup
ディレクティブを置き換えます。例18.64 SuexecUserGroup ディレクティブの使用
SuexecUserGroup apache apache
-
タイムアウト
Timeout
ディレクティブでは、接続を閉じる前のイベントを待機する時間を指定できます。以下の形式を取ります。Timeout time
時間 は秒単位で指定します。デフォルトのオプションは60
です。例18.65 Timeout ディレクティブの使用
Timeout 60
-
TypesConfig
TypesConfig
を使用すると、MIME タイプ設定ファイルの場所を指定できます。以下の形式を取ります。TypesConfig path
パス は既存の MIME タイプの設定ファイルを参照し、絶対またはServerRoot
ディレクティブ(デフォルトでは/etc/httpd/
)で指定されたディレクトリーへの相対のいずれかになります。デフォルトのオプションは/etc/mime.types
です。/etc/mime.types
を編集する代わりに、Apache HTTP Server に MIME タイプマッピングを追加する方法としてAddType
ディレクティブを使用することが推奨されます。例18.66 TypesConfig ディレクティブの使用
TypesConfig /etc/mime.types
-
UseCanonicalName
UseCanonicalName
を使用すると、サーバー自体の参照方法を指定できます。以下の形式を取ります。UseCanonicalName option
この オプション は、表18.19「利用可能な UseCanonicalName オプション」 の説明に従って、有効なキーワードである必要があります。デフォルトのオプションはOff
です。表18.19 利用可能な UseCanonicalName オプション オプション 説明 オン
ServerName
ディレクティブで指定された名前の使用を有効にします。オフ
ServerName
ディレクティブで指定された名前の使用を無効にします。代わりに、要求側のクライアントが提供するホスト名とポート番号が使用されます。DNS
ServerName
ディレクティブで指定された名前の使用を無効にします。代わりに逆引き DNS ルックアップによって決定されるホスト名が使用されます。例18.67 UseCanonicalName ディレクティブの使用
UseCanonicalName Off
-
ユーザー
User
ディレクティブでは、httpd
サービスを実行するユーザーを指定できます。以下の形式を取ります。User user
既存の UNIX ユーザー である必要があります。デフォルトのオプションはapache
です。セキュリティー上の理由から、httpd
サービスは root 権限で実行しないでください。User
は <VirtualHost> 内で
はサポートされなくなり、SuexecUserGroup
ディレクティブに置き換えられました。例18.68 User ディレクティブの使用
User apache
-
UserDir
UserDir
ディレクティブでは、ユーザーのホームディレクトリーからのコンテンツの提供を有効にできます。以下の形式を取ります。UserDir option
この オプション は、ユーザーのホームディレクトリー(通常はpublic_html
)を検索するディレクトリーの名前、または 表18.20「利用可能な UserDir オプション」 で説明されているように有効なキーワードになります。デフォルトのオプションは無効になっ
ています。表18.20 利用可能な UserDir オプション オプション 説明 enabled
user…指定の ユーザーのホームディレクトリーからコンテンツを提供できます。 disabled
[user…]ホームディレクトリーのコンテンツの提供を無効にします(すべてのユーザー、またはユーザースペースで区切られた一覧が指定された場合)は、指定の ユーザーにのみコンテンツを提供します。 適切なパーミッションの設定Web サーバーがコンテンツにアクセスできるようにするには、関連するディレクトリーおよびファイルのパーミッションを正しく設定する必要があります。すべてのユーザーがホームディレクトリーにアクセスでき、UserDir
ディレクティブで指定されたディレクトリーの内容にアクセスできることを確認します。以下に例を示します。~]# chmod a+x /home/username/ ~]# chmod a+rx /home/username/public_html/
このディレクトリーのすべてのファイルは適宜設定する必要があります。例18.69 UserDir ディレクティブの使用
UserDir public_html
18.1.5.2. 一般的な ssl.conf ディレクティブ
/etc/httpd/conf.d/ssl.conf
で一般的に使用されます。
-
SetEnvIf
SetEnvIf
ディレクティブでは、受信接続のヘッダーに基づいて環境変数を設定できます。以下の形式を取ります。SetEnvIf option pattern [!]variable[=value]…
この オプション は、表18.21「利用可能な SetEnvIf オプション」 で説明されているように、HTTP ヘッダーフィールド、以前に定義した環境変数名、または有効なキーワードのいずれかです。この パターン は正規表現です。変数 は、オプションがパターンと一致する際に設定される環境変数です。オプションの感嘆符(つまり!
)が存在する場合、変数は設定されずに削除されます。表18.21 利用可能な SetEnvIf オプション オプション 説明 Remote_Host
クライアントのホスト名を参照します。 Remote_Addr
クライアントの IP アドレスを参照します。 Server_Addr
サーバーの IP アドレスを参照します。 Request_Method
リクエストメソッドを参照します(例: GET
)。Request_Protocol
プロトコル名とバージョン( HTTP/1.1 など)を参照します
。Request_URI
要求されたリソースを参照します。 SetEnvIf
ディレクティブは、HTTP keepalives を無効にし、クライアントのブラウザーからクローズ通知なしに SSL が接続を閉じるのを許可するために使用されます。これは、SSL 接続を確実にシャットダウンしていない特定の Web ブラウザーに必要です。例18.70 SetEnvIf ディレクティブの使用
SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0
/etc/httpd/conf.d/ssl.conf
ファイルが存在する場合は、mod_ssl をインストールする必要があります。SSL サーバーのインストールおよび設定方法の詳細は、「SSL サーバーの設定」 を参照してください。
18.1.5.3. 一般的な複数プロセスモジュールのディレクティブ
IfModule
に組み込まれています。デフォルトでは、server-pool は prefork
と worker
MPM の両方に対して定義されます。
/etc/httpd/conf/httpd.conf
で一般的に使用されます。
-
MaxClients
MaxClients
ディレクティブを使用すると、一度に処理する同時接続クライアントの最大数を指定できます。以下の形式を取ります。MaxClients number
prefork MPM を使用する場合は、高い 数値 を指定するとサーバーのパフォーマンスが向上しますが、prefork
MPM を使用する場合は256
を超えることは推奨されません。例18.71 MaxClients ディレクティブの使用
MaxClients 256
-
MaxRequestsPerChild
MaxRequestsPerChild
ディレクティブでは、終了前に子プロセスが処理できるリクエストの最大数を指定できます。以下の形式を取ります。MaxRequestsPerChild number
数値を0
に設定すると、要求数が無制限になります。MaxRequestsPerChild
ディレクティブは、有効期限の長いプロセスがメモリーリークを引き起こさないようにするために使用されます。例18.72 MaxRequestsPerChild ディレクティブの使用
MaxRequestsPerChild 4000
-
MaxSpareServers
MaxSpareServers
ディレクティブでは、スペア子プロセスの最大数を指定できます。以下の形式を取ります。MaxSpareServers number
このディレクティブは、prefork
MPM のみによって使用されます。例18.73 MaxSpareServers ディレクティブの使用
MaxSpareServers 20
-
MaxSpareThreads
MaxSpareThreads
ディレクティブを使用すると、スペアサーバースレッドの最大数を指定できます。以下の形式を取ります。MaxSpareThreads number
数値 はMinSpareThreads
およびThreadsPerChild
の合計値以上である必要があります。このディレクティブは、worker
MPM だけによって使用されます。例18.74 MaxSpareThreads ディレクティブの使用
MaxSpareThreads 75
-
MinSpareServers
MinSpareServers
ディレクティブでは、予備の子プロセスの最小数を指定できます。以下の形式を取ります。MinSpareServers number
数 値が大きいと、サーバーに大量の処理負荷が発生する可能性があることに注意してください。このディレクティブは、prefork
MPM のみによって使用されます。例18.75 MinSpareServers ディレクティブの使用
MinSpareServers 5
-
MinSpareThreads
MinSpareThreads
ディレクティブを使用すると、スペアサーバースレッドの最小数を指定できます。以下の形式を取ります。MinSpareThreads number
このディレクティブは、worker
MPM だけによって使用されます。例18.76 MinSpareThreads ディレクティブの使用
MinSpareThreads 75
-
StartServers
StartServers
ディレクティブでは、サービスの起動時に作成する子プロセスの数を指定できます。以下の形式を取ります。StartServers number
子プロセスは現在のトラフィックの負荷に応じて動的に作成され、終了されるため、通常はこの値を変更する必要はありません。例18.77 StartServers ディレクティブの使用
StartServers 8
-
ThreadsPerChild
ThreadsPerChild
ディレクティブを使用すると、子プロセスが作成できるスレッド数を指定できます。以下の形式を取ります。ThreadsPerChild number
このディレクティブは、worker
MPM だけによって使用されます。例18.78 ThreadsPerChild ディレクティブの使用
ThreadsPerChild 25
18.1.6. モジュールの使用
httpd
サービスは、モジュールアプリケーションであるため、多数の Dynamic Shared Objects (DSOs)とともに配布されます。これは、必要に応じてランタイム時に、動的に読み込まれたり、アンロードしたりできます。デフォルトでは、これらのモジュールは 32 ビットおよび 64 ビットシステムの /usr/lib64/httpd/modules
/ の /usr/lib/httpd/modules/
にあります。
18.1.6.1. モジュールの読み込み
LoadModule
ディレクティブを使用します。別のパッケージが提供するモジュールでは、多くの場合、/etc/httpd/conf.d/
ディレクトリーに独自の設定ファイルがあることに注意してください。
例18.79 mod_ssl DSO の読み込み
LoadModule ssl_module modules/mod_ssl.so
httpd
サービスを再起動する方法は、「サービスの再起動」 を参照してください。
18.1.6.2. モジュールの作成
root
で次のコマンドを実行します。
~]# yum install httpd-devel
~]# apxs -i -a -c module_name.c
18.1.7. 仮想ホストの設定
/etc/httpd/conf/httpd.conf
で提供される仮想ホストコンテナーを見つけ、各行の先頭にあるハッシュ記号(つまり #
)を削除し、例18.80「仮想ホストの設定例」 に記載の要件に応じてオプションをカスタマイズします。
例18.80 仮想ホストの設定例
NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin webmaster@penguin.example.com DocumentRoot /www/docs/penguin.example.com ServerName penguin.example.com ServerAlias www.penguin.example.com ErrorLog logs/penguin.example.com-error_log CustomLog logs/penguin.example.com-access_log common </VirtualHost>
ServerName
は、マシンに割り当てられた有効な DNS 名を指定する必要があることに注意してください。< ;VirtualHost>
; コンテナーは高度なカスタマイズが可能で、メインサーバー設定で利用可能なディレクティブのほとんどを使用できます。このコンテナーで対応してい ない ディレクティブには、SuexecUserGroup
に置き換えられた User
および Group
が含まれます。
/etc/httpd/conf/httpd.conf
ファイルのグローバル設定セクションの Listen
ディレクティブを必ず更新してください。
httpd
サービスを再起動する方法は、「サービスの再起動」 を参照してください。
18.1.8. SSL サーバーの設定
mod_ssl
と組み合わせて、OpenSSL ツールキットを使用して SSL/TLS サポートを提供するモジュールは、SSL サーバー と呼ばれます。Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux は、TLS 実装としての Mozilla NSS の使用もサポートします。Mozilla NSS のサポートは mod_nss
モジュールにより提供されます。
18.1.8.1. 証明書およびセキュリティーの概要
Web ブラウザー | リンク |
---|---|
Mozilla Firefox | Mozilla root CA の一覧 |
Opera | Opera が使用するルート証明書に関する情報。 |
Internet Explorer | Microsoft Windows が使用するルート証明書に関する情報 |
Chromium | Chromium プロジェクトが使用するルート証明書に関する情報 |
18.1.9. mod_ssl モジュールの有効化
mod_ssl
を使用して SSL または HTTPS サーバーをセットアップする場合は、別のアプリケーションまたはモジュール( mod_nss
など)で同じポートを使用するよう設定することは できません。ポート 443
は、HTTPS のデフォルトポートです。
mod_ssl
モジュールおよび OpenSSL ツールキットを使用して SSL サーバーを設定するには、mod_ssl および openssl パッケージをインストールします。root
で以下のコマンドを入力します。
~]# yum install mod_ssl openssl
/etc/httpd/conf.d/ssl.conf
に mod_ssl
設定ファイルが作成されます。このファイルは、デフォルトでメインの Apache HTTP Server 設定ファイルに含まれています。モジュールを読み込むには、「サービスの再起動」 の説明に従って httpd
サービスを再起動します。
SSL
を無効にし、有効にしている場合は TLSv1 .
1 または TLSv1
.2 のみを使用することを推奨します。後方互換性は、TLSv1.0
を使用して実現できます。Red Hat がサポートする多くの製品は SSLv2
プロトコルまたは SSLv3
プロトコルを使用できます。ただし、SSLv2
または SSLv3
の使用が強く推奨されます。
18.1.9.1. mod_ssl での SSL および TLS の有効化および無効化
手順18.1 SSLv2 および SSLv3 の無効化
root
で/etc/httpd/conf.d/ssl.conf
ファイルを開き、SSLProtocol ディレクティブの すべて のインスタンスを検索します。デフォルトでは、設定ファイルに以下のような 1 つのセクションが含まれます。~]# vi /etc/httpd/conf.d/ssl.conf # SSL Protocol support: # List the enable protocol levels with which clients will be able to # connect. Disable SSLv2 access by default: SSLProtocol all -SSLv2
このセクションは、VirtualHost セクション内にあります。- SSLProtocol 行を以下のように編集します。
# SSL Protocol support: # List the enable protocol levels with which clients will be able to # connect. Disable SSLv2 access by default: SSLProtocol all -SSLv2 -SSLv3
すべての VirtualHost セクションに対してこのアクションを繰り返します。ファイルを保存してから閉じます。 - すべての SSLProtocol ディレクティブが以下のように変更したことを確認します。
~]# grep SSLProtocol /etc/httpd/conf.d/ssl.conf SSLProtocol all -SSLv2 -SSLv3
この手順は、デフォルトの VirtualHost セクションが複数の場合に特に重要になります。 - 以下のように Apache デーモンを再起動します。
~]# service httpd restart
セッションが中断されることに注意してください。
手順18.2 TLS 1 以上を除くすべての SSL および TLS プロトコルの無効化
root
で/etc/httpd/conf.d/ssl.conf
ファイルを開き、SSLProtocol ディレクティブの すべて のインスタンスを検索します。デフォルトでは、このファイルには以下のようなセクションが含まれます。~]# vi /etc/httpd/conf.d/ssl.conf # SSL Protocol support: # List the enable protocol levels with which clients will be able to # connect. Disable SSLv2 access by default: SSLProtocol all -SSLv2
- SSLProtocol 行を以下のように編集します。
# SSL Protocol support: # List the enable protocol levels with which clients will be able to # connect. Disable SSLv2 access by default: SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2
ファイルを保存してから閉じます。 - 以下のように変更を確認します。
~]# grep SSLProtocol /etc/httpd/conf.d/ssl.conf SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2
- 以下のように Apache デーモンを再起動します。
~]# service httpd restart
セッションが中断されることに注意してください。
手順18.3 SSL および TLS プロトコルのステータスのテスト
openssl s_client -connect hostname:port -protocolです。port は、テストするポートで、protocol はテストするプロトコルバージョンです。ローカルで稼働している SSL サーバーをテストするには、
localhost
をホスト名として使用します。たとえば、SSLv3 が有効であるかどうかを確認するためにセキュアな HTTPS 接続のデフォルトポートであるポート 443
をテストするには、以下のようにコマンドを発行します。
~]# openssl s_client -connect localhost:443 -ssl3 CONNECTED(00000003) 139809943877536:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:s3_pkt.c:1257:SSL alert number 40 139809943877536:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake failure:s3_pkt.c:596: output omitted New, (NONE), Cipher is (NONE) Secure Renegotiation IS NOT supported Compression: NONE Expansion: NONE SSL-Session: Protocol : SSLv3 output truncated
上記の出力はハンドシェイクが失敗し、暗号化がネゴシエートされなかったことを示しています。~]$ openssl s_client -connect localhost:443 -tls1_2 CONNECTED(00000003) depth=0 C = --, ST = SomeState, L = SomeCity, O = SomeOrganization, OU = SomeOrganizationalUnit, CN = localhost.localdomain, emailAddress = root@localhost.localdomain output omitted New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384 Server public key is 2048 bit Secure Renegotiation IS supported Compression: NONE Expansion: NONE SSL-Session: Protocol : TLSv1.2 output truncated
上記の出力は、ハンドシェイクが失敗しておらず、暗号化セットがネゴシエートされたことを示しています。
s_client(1)
man ページに記載されています。
18.1.10. mod_nss Module の有効化
mod_nss
を使用して HTTPS サーバーをセットアップする場合、mod_ssl
はデフォルトでポート 443
を使用するため、HTTPS サーバーでは mod_ssl
を同時に使用することが できません が、これはデフォルトの HTTPS ポートになります。パッケージが必要ない場合は削除することが推奨されます。
root
で次のコマンドを実行します。
~]# yum remove mod_ssl
mod_ssl
が必要な場合は、443
以外のポートを使用するように /etc/httpd/conf.d/ssl.conf
ファイルを変更し、リッスンするポートが 443
に変更されたときに mod_ssl
が mod_nss
と競合しないようにします。
mod_nss
と mod_ssl
は一意のポートを使用している場合のみ同時に共存できます。このため、mod_nss
はデフォルトで 8443
を使用しますが、HTTPS のデフォルトポートはポート 443
です。ポートは Listen ディレクティブと VirtualHost 名またはアドレスで指定されます。
手順18.4 mod_nss の設定
root
で mod_nss をインストールします。~]# yum install mod_nss
これにより、/etc/httpd/conf.d/nss.conf
にmod_nss
設定ファイルが作成されます。/etc/httpd/conf.d/
ディレクトリーは、デフォルトでメインの Apache HTTP Server 設定ファイルに含まれます。モジュールを読み込むには、「サービスの再起動」 の説明に従ってhttpd
サービスを再起動します。root
で/etc/httpd/conf.d/nss.conf
ファイルを開き、Listen ディレクティブの すべて のインスタンスを検索します。Listen 8443 行を以下のように編集します。Listen 443
ポート443
は、HTTPS
のデフォルトポートです。- デフォルトの VirtualHost _default_:8443 行を以下のように編集します。
VirtualHost _default_:443
デフォルト以外の他のすべての仮想ホストセクション (存在する場合) を編集します。ファイルを保存してから閉じます。 - Mozilla NSS は、証明書を
/etc/httpd/conf.d/nss.conf
ファイルの NSSCertificateDatabase ディレクティブで示唆される サーバー証明書データベース に保存します。デフォルトでは、パスはインストール時に作成された NSS データベースである/etc/httpd/alias
に設定されます。デフォルトの NSS データベースを表示するには、以下のコマンドを実行します。~]# certutil -L -d /etc/httpd/alias Certificate Nickname Trust Attributes SSL,S/MIME,JAR/XPI cacert CTu,Cu,Cu Server-Cert u,u,u alpha u,pu,u
上記のコマンド出力では、Server-Cert
がデフォルトの NSSNickname です。-L
オプションは、証明書データベースにすべての証明書を一覧表示したり、名前付き証明書に関する情報を表示します。-d
オプションは、証明書およびキーデータベースファイルを含むデータベースディレクトリーを指定します。その他のコマンドラインオプションは、certutil(1)
の man ページを参照してください。 - 別のデータベースを使用するように mod_nss を設定するには、
/etc/httpd/conf.d/nss.conf
ファイルの NSSCertificateDatabase 行を編集します。デフォルトファイルの VirtualHost セクション内には以下の行が含まれます。# Server Certificate Database: # The NSS security database directory that holds the certificates and # keys. The database consists of 3 files: cert8.db, key3.db and secmod.db. # Provide the directory that these files exist. NSSCertificateDatabase /etc/httpd/alias
上記のコマンド出力では、alias
がデフォルトの NSS データベースディレクトリー/etc/httpd/alias/
です。 - デフォルトの NSS 証明書データベースにパスワードを適用するには、
root
で以下のコマンドを使用します。~]# certutil -W -d /etc/httpd/alias Enter Password or Pin for "NSS Certificate DB": Enter a password which will be used to encrypt your keys. The password should be at least 8 characters long, and should contain at least one non-alphabetic character. Enter new password: Re-enter password: Password changed successfully.
- HTTPS サーバーをデプロイする前に、認証局 (CA) により署名された証明書を使用して新しい証明書データベースを作成します。
例18.81 Mozilla NSS データベースへの証明書の追加
certutil コマンドは、CA 証明書を NSS データベースファイルに追加するために使用されます。certutil
-d
/etc/httpd/nss-db-directory/
-A
-n
"CA_certificate"-t
CT,,
-a
-i
certificate.pem
上記のコマンドは、certificate.pem という名前の PEM 形式のファイルに保存されている CA 証明書を追加します。-d
オプションは、証明書およびキーデータベースファイルを含む NSS データベースディレクトリーを指定します。-n
オプションは、証明書の名前(-t
CT,,
)を設定します。これは、証明書が TLS クライアントおよびサーバーで使用されるように信頼されることを意味します。-A
オプションは、既存の証明書を証明書データベースに追加します。データベースが存在しない場合は、作成されます。-a
オプションを使用すると、入力または出力に ASCII 形式を使用でき、-i
オプションはcertificate.pem
入力ファイルをコマンドに渡します。その他のコマンドラインオプションは、certutil(1)
の man ページを参照してください。 - 秘密鍵を保護するために、NSS データベースはパスワードで保護する必要があります。
例18.82 Setting_a_Password_for_a_Mozilla_NSS_database
NSS データベースのパスワードを設定するには、以下のように certutil ツールを使用できます。certutil -W -d /etc/httpd/nss-db-directory/
たとえば、デフォルトのデータベースの場合は、root
で以下のコマンドを実行します。~]# certutil -W -d /etc/httpd/alias Enter Password or Pin for "NSS Certificate DB": Enter a password which will be used to encrypt your keys. The password should be at least 8 characters long, and should contain at least one non-alphabetic character. Enter new password: Re-enter password: Password changed successfully.
- 以下のように NSSPassPhraseDialog ディレクティブで行を変更して、NSS 内部ソフトウェアトークンを使用するように
mod_nss
を設定します。~]# vi /etc/httpd/conf.d/nss.conf NSSPassPhraseDialog file:/etc/httpd/password.conf
これにより、システムの起動時にパスワードを手動で入力する必要がなくなります。ソフトウェアトークンは NSS データベースに存在しますが、証明書を含む物理トークンを使用することもできます。 - NSS データベースに含まれる SSL サーバー証明書が RSA 証明書である場合は、NSSNickname パラメーターのコメントを解除し、上記の手順 4 で示されたニックネームに一致するようにします。
~]# vi /etc/httpd/conf.d/nss.conf NSSNickname Server-Cert
NSS データベースに含まれる SSL サーバー証明書が ECC 証明書である場合は、NSSECCNickname パラメーターのコメントを解除し、上記の手順 4 で示されたニックネームに一致するようにします。~]# vi /etc/httpd/conf.d/nss.conf NSSECCNickname Server-Cert
NSSCertificateDatabase パラメーターがコメント解除され、上記の手順 4 で示された、または手順 5 で設定された NSS データベースディレクトリーを参照するようにします。~]# vi /etc/httpd/conf.d/nss.conf NSSCertificateDatabase /etc/httpd/alias
/etc/httpd/alias
を、使用する証明書データベースへのパスに置き換えます。 root
で/etc/httpd/password.conf
ファイルを作成します。~]# vi /etc/httpd/password.conf
internal:password
の形式の行を追加します。上記の手順 6 で NSS セキュリティーデータベースに適用したパスワードでパスワードを置き換えます。- 適切な所有権とパーミッションを
/etc/httpd/password.conf
ファイルに適用します。~]# chgrp apache /etc/httpd/password.conf ~]# chmod 640 /etc/httpd/password.conf ~]# ls -l /etc/httpd/password.conf -rw-r-----. 1 root apache 10 Dec 4 17:13 /etc/httpd/password.conf
- NSS のソフトウェアトークンを使用するように
mod_nss
を設定するには、/etc/httpd/password.conf
で/etc/httpd/conf.d/nss.conf
を以下のように編集します。~]# vi /etc/httpd/conf.d/nss.conf
- 変更を反映するために、「サービスの再起動」 の説明通りに Apache サーバーを再起動します。
SSL
を無効にし、有効にしている場合は TLSv1 .
1 または TLSv1
.2 のみを使用することを推奨します。後方互換性は、TLSv1.0
を使用して実現できます。Red Hat がサポートする多くの製品は SSLv2
プロトコルまたは SSLv3
プロトコルを使用できます。ただし、SSLv2
または SSLv3
の使用が強く推奨されます。
18.1.10.1. mod_nss での SSL および TLS の有効化および無効化
手順18.5 mod_nss での TLS 1 以上を除くすべての SSL および TLS プロトコルの無効化
root
で/etc/httpd/conf.d/nss.conf
ファイルを開き、NSSProtocol ディレクティブの すべて のインスタンスを検索します。デフォルトでは、設定ファイルに以下のような 1 つのセクションが含まれます。~]# vi /etc/httpd/conf.d/nss.conf # SSL Protocol: output omitted # Since all protocol ranges are completely inclusive, and no protocol in the # middle of a range may be excluded, the entry "NSSProtocol SSLv3,TLSv1.1" # is identical to the entry "NSSProtocol SSLv3,TLSv1.0,TLSv1.1". NSSProtocol TLSv1.0,TLSv1.1,TLSv1.2
このセクションは、VirtualHost セクション内にあります。- NSSProtocol 行を以下のように編集します。
# SSL Protocol: NSSProtocol TLSv1.0,TLSv1.1,TLSv1.2
すべての VirtualHost セクションに対してこのアクションを繰り返します。 - Listen 8443 行を以下のように編集します。
Listen 443
- デフォルトの VirtualHost _default_:8443 行を以下のように編集します。
VirtualHost _default_:443
デフォルト以外の他のすべての仮想ホストセクション (存在する場合) を編集します。ファイルを保存してから閉じます。 - すべての NSSProtocol ディレクティブが以下のように変更したことを確認します。
~]# grep NSSProtocol /etc/httpd/conf.d/nss.conf # middle of a range may be excluded, the entry "NSSProtocol SSLv3,TLSv1.1" # is identical to the entry "NSSProtocol SSLv3,TLSv1.0,TLSv1.1". NSSProtocol TLSv1.0,TLSv1.1,TLSv1.2
この手順は、VirtualHost セクションが複数の場合に特に重要になります。 - 以下のように Apache デーモンを再起動します。
~]# service httpd restart
セッションが中断されることに注意してください。
手順18.6 mod_nss での SSL および TLS プロトコルのステータスのテスト
root
で openssl パッケージをインストールします。
~]# yum install openssl
openssl s_client -connect hostname:port -protocolになります。port は、テストするポートで、protocol はテストするプロトコルバージョンです。ローカルで稼働している SSL サーバーをテストするには、
localhost
をホスト名として使用します。たとえば、SSLv3 が有効であるかどうかを確認するためにセキュアな HTTPS 接続のデフォルトポートであるポート 443
をテストするには、以下のようにコマンドを発行します。
~]# openssl s_client -connect localhost:443 -ssl3 CONNECTED(00000003) 3077773036:error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number:s3_pkt.c:337: output omitted New, (NONE), Cipher is (NONE) Secure Renegotiation IS NOT supported Compression: NONE Expansion: NONE SSL-Session: Protocol : SSLv3 output truncated
上記の出力はハンドシェイクが失敗し、暗号化がネゴシエートされなかったことを示しています。~]$ openssl s_client -connect localhost:443 -tls1_2 CONNECTED(00000003) depth=1 C = US, O = example.com, CN = Certificate Shack output omitted New, TLSv1/SSLv3, Cipher is AES256-SHA Server public key is 1024 bit Secure Renegotiation IS supported Compression: NONE Expansion: NONE SSL-Session: Protocol : TLSv1.2 Cipher : AES256-SHA output truncated
上記の出力は、ハンドシェイクが失敗しておらず、暗号化セットがネゴシエートされたことを示しています。
s_client(1)
man ページに記載されています。
18.1.11. 既存の鍵および証明書の使用
- IP アドレスまたはドメイン名を変更している。証明書が、特定の IP アドレスとドメイン名のペアに対して発行されます。この値のいずれかが変更すると、証明書が無効になります。
- VeriSign からの証明書があり、サーバーソフトウェアを変更している。Verivsftpd は、幅広く使用されている認証局で、特定のソフトウェア製品、IP アドレス、およびドメイン名の証明書を発行します。ソフトウェア製品を変更すると、証明書が無効になります。
/etc/pki/tls/private/
ディレクトリーと /etc/pki/tls/certs/
ディレクトリーに移動します。root
で以下のコマンドを実行してこれを実行できます。
~]# mvkey_file.key
/etc/pki/tls/private/hostname.key
~]# mvcertificate.crt
/etc/pki/tls/certs/hostname.crt
/etc/httpd/conf.d/ssl.conf
設定ファイルに追加します。
SSLCertificateFile /etc/pki/tls/certs/hostname.crt SSLCertificateKeyFile /etc/pki/tls/private/hostname.key
httpd
サービスを再起動します。
例18.83 Red Hat Secure Web Server からの鍵と証明書の使用
~]# mv /etc/httpd/conf/httpsd.key /etc/pki/tls/private/penguin.example.com.key ~]# mv /etc/httpd/conf/httpsd.crt /etc/pki/tls/certs/penguin.example.com.crt
18.1.12. 新しい鍵と証明書の生成
root
で次のコマンドを実行します。
~]# yum install crypto-utils mod_ssl
~]# openssl req -x509 -new -set_serial number -key hostname.key -out hostname.crt
root
で以下のコマンドを使用して既存のファイルを削除します。
~]# rm /etc/pki/tls/private/hostname.key
root
で genkey コマンドの後に、適切なホスト名(例: penguin.example.com
)を付けて実行します。
~]# genkey hostname
- 鍵と証明書を保存する場所を確認します。
図18.1 genkey ユーティリティーの実行
[D]Tab キーを使用してボタンを選択してから、Enter キーを押すと次の画面を進みます。 - up と down の矢印キーを使用して、適切な鍵のサイズを選択します。鍵が大きくなればセキュリティーは向上しますが、サーバーの応答時間も長くなることに注意してください。NIST では、
2048 bits
の使用が推奨されています。『NIST Special Publication 800-131A』 を参照してください。図18.2 鍵のサイズ選択
[D]終了したら、タブ キーを使用してボタンを選択し、Enter キーを押すと、ランダムなビットの生成プロセスが開始します。選択した鍵のサイズによっては、時間がかかることもあります。 - 証明書要求を認証局に送信するかどうかを決定します。
図18.3 証明書要求の生成
[D]タブ キーを使用してを選択し、証明書要求を組み立てるか、または を選択して、自己署名の証明書を生成します。その後、Enter キーを押して、選択を確認します。 - Spacebar (スペースバー) キーを使用すると、秘密鍵の暗号化を有効にする (
[*]
) か、無効にする ([ ]
) 選択ができます。図18.4 秘密鍵の暗号化
[D]Tab キーを使用してボタンを選択してから、Enter キーを押すと次の画面を進みます。 - 秘密鍵の暗号化を有効にしている場合は、適切なパスフレーズを入力します。セキュリティーの理由により入力時には文字が表示されませんが、最低でも 5 文字の長さが必要です。
図18.5 パスフレーズの入力
[D]Tab キーを使用してボタンを選択してから、Enter キーを押すと次の画面を進みます。パスフレーズを忘れないようにしてくださいサーバーを起動するには正しいパスフレーズの入力が必要です。それを紛失したり忘れたりした場合は、新しい鍵と証明書を生成する必要があります。 - 証明書詳細のカスタマイズ
図18.6 証明書情報の指定
[D]タブ キーを使用してボタンを選択し、Enter を押すと鍵の生成が完了します。 - 証明書要求の生成を有効にしていた場合は、それを認証局に送信するように求められます。
図18.7 証明書要求を送信する方法の指示
[D]Enter を押してシェルプロンプトに戻ります。
/etc/httpd/conf.d/ssl.conf
設定ファイルに追加します。
SSLCertificateFile /etc/pki/tls/certs/hostname.crt SSLCertificateKeyFile /etc/pki/tls/private/hostname.key
httpd
サービスを再起動して、更新された設定が読み込まれます。
18.1.13. コマンドラインを使用して HTTP 用および HTTPS 用にファイアウォールを設定
HTTP
および HTTPS
トラフィックを許可しません。システムが Web サーバーとして機能するようにするには、必要に応じてポートとプロトコルを有効にします。HTTP
のデフォルトポートは 80
で、HTTPS
のデフォルトポートは 443
です。いずれの場合も、TCP
がファイアウォールを通過することを許可されている必要があります。
HTTP
のポート 80
を有効にするには、root
で以下のコマンドを発行します。
~]# lokkit --port=80:tcp --update
これにより、--disabled
オプションで無効にされていない限り、ファイアウォールが再起動されることに注意してください。アクティブな接続は終了し、開始マシンでタイムアウトします。lokkit --help コマンドを使用して、組み込みのヘルプを表示します。
HTTPS
のポート 443
を有効にするには、root
で以下のコマンドを発行します。
~]# lokkit --port=443:tcp --update
これにより、--disabled
オプションで無効にされていない限り、ファイアウォールが再起動されることに注意してください。アクティブな接続は終了し、開始マシンでタイムアウトします。サービスおよびそれらの関連付けられたポートの一覧は、/etc/services
ファイルを参照してください。
/etc/sysconfig/system-config-firewall
ファイルの詳細を確認します。/etc/sysconfig/system-config-firewall
の設定を適用するには、root
で以下のコマンドを実行します。
~]# lokkit --update
HTTPS
がファイアウォールを通過できるようにするには、root
ユーザーになり、以下の行を /etc/sysconfig/system-config-firewall
に追加します。
--port=443:tcpファイアウォールが再読み込みされたり、システムが再起動されても、これらの変更は反映されないことに注意してください。
/etc/sysconfig/system-config-firewall
で変更を適用するには、root
で以下のコマンドを実行します。
~]# lokkit --update
18.1.13.1. コマンドラインで着信 HTTPS および HTTPS のネットワークアクセスの確認
root
で以下のコマンドを実行します。
~]# less /etc/sysconfig/system-config-firewall
# Configuration file for system-config-firewall
--enabled
--service=ssh
この例では、デフォルトのインストールでファイアウォールは有効になっていますが、HTTP
と HTTPS
は通過できません。
HTTP
のデフォルトポートを有効にすると、以下の行が上記の行に加えて出力として表示されます。
--port=80:tcp
HTTP
トラフィックを許可しているかどうかを確認するには、root
で以下のコマンドを実行します。
~]# iptables -L -n | grep 'tcp.*80'
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
HTTPS
のデフォルトポートを有効にすると、以下の行が上記の行に加えて出力として表示されます。
--port=443:tcp
HTTPS
トラフィックを許可しているかどうかを確認するには、root
で以下のコマンドを実行します。
~]# iptables -L -n | grep 'tcp.*443'
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:443
18.1.14. その他のリソース
インストールされているドキュメント
httpd(8)
:httpd
サービスの man ページで、コマンドラインオプションの一覧が記載されます。genkey(1)
: crypto-utils パッケージが提供する genkey ユーティリティーの man ページです。
インストール可能なドキュメント
- http://localhost/manual/ - Apache HTTP Server の公式ドキュメントで、そのディレクティブと利用可能なモジュールの詳細を説明します。本書にアクセスするには、httpd-manual パッケージがインストールされ、Web サーバーが稼働している必要があることに注意してください。ドキュメントにアクセスする前に、
root
で以下のコマンドを発行します。~]# yum install httpd-manual ~]# service httpd graceful
オンラインドキュメント
- http://httpd.apache.org/ - Apache HTTP Server の公式 Web サイトです。すべてのディレクティブおよびデフォルトモジュールの説明が記載されています。
- http://www.openssl.org/ - その他のドキュメント、よくある質問、メーリングリストへのリンクなどの役立つリソースを掲載した OpenSSL のホームページです。
第19章 メールサーバー
19.1. メールプロトコル
19.1.1. メール転送プロトコル
19.1.1.1. SMTP
19.1.2. メールアクセスプロトコル
19.1.2.1. POP
root
で以下を実行して dovecot パッケージがインストールされていることを確認します。
~]# yum install dovecot
POP
サーバーを使用する場合、電子メールメッセージは電子メールクライアントアプリケーションによってダウンロードされます。デフォルトでは、ほとんどの POP
メールクライアントは、電子メールサーバーのメッセージが正常に転送されるとそのメッセージを削除するように自動的に設定されますが、通常は変更できます。
POP
は、電子メールのファイル添付を可能にするMIME( 多目的インターネットメール拡張)などの 重要なインターネットメッセージング標準と完全に互換性があります。
POP
は、電子メールを読むためのシステムが 1 つであるユーザーにとって最適に機能します。また、インターネットやメールサーバーを持つネットワークに常時接続していないユーザーにもうまく機能します。ネットワーク速度が遅いユーザーの場合は、POP
はクライアントプログラムに対して、認証を行った上で各メッセージのコンテンツ全体をダウンロードするよう要求します。このプロセスは、メッセージに大きなファイルが添付されている場合に長時間かかる場合があります。
POP
プロトコルの最新版は POP3
です。
POP
プロトコルのバリアントにも様々な種類があります。
- APOP:
MD5
認証を使用したPOP3
です。暗号化されていないパスワードを送信するのではなく、エンコードされたユーザーパスワードのハッシュが電子メールクライアントからサーバーに送信されます。 - KPOP: Kerberos 認証を使用した
POP3
です。 - RPOP:
RPOP
認証を使用したPOP3
です。これは、パスワードに似たユーザーごとの ID を使用し、POP 要求を認証します。ただし、この ID は暗号化されていないため、RPOP
は標準のPOP
よりも安全ではありません。
19.1.2.2. IMAP
IMAP
サーバーは Dovecot で、dovecot パッケージで提供されます。Dovecot のインストール方法は 「POP」 を参照してください。
IMAP
メールサーバーを使用する場合は電子メールメッセージはサーバーに残るため、ユーザーはメッセージの読み取りや削除が可能です。また、IMAP
により、クライアントアプリケーションがサーバー上でメールディレクトリーの作成、名前変更、削除を行い電子メールを整理および保存することもできます。
IMAP
は、複数のマシンを使用して電子メールにアクセスするユーザーに特に役立ちます。このプロトコルでは、メッセージが開封されるまでは、電子メールのヘッダー情報しかダウンロードされず帯域幅を節減できるため、低速な接続でメールサーバーに接続するユーザーにも便利です。ユーザーは、メッセージを表示またはダウンロードすることなく削除することも可能です。
IMAP
クライアントアプリケーションはメッセージのコピーをローカルでキャッシュすることが可能です。そのため、ユーザーは IMAP
サーバーに直接接続していないときに、既読メッセージを閲覧できます。
IMAP
は POP
と同様に、電子メールのファイル添付を可能にする MIME などの重要なインターネットメッセージング標準と完全に互換性があります。
SSL
暗号化を使用できます。これは、imaps サービスまたは stunnel プログラムを使用して有効にできます。メール通信のセキュリティー保護に関する詳細は、「通信のセキュリティー保護」 を参照してください。
19.1.2.3. Dovecot
IMAP
および POP3
プロトコルを実装する imap- login および pop 3-login プロセスは、dovecot パッケージに含まれるマスターの dovecot
デーモンにより起動します。IMAP
および POP
の使用は、/etc/dovecot/dovecot.conf
設定ファイルで設定されます。デフォルトでは、dovecot は、SSL
を使用するセキュアなバージョンとともに IMAP
および POP3
を実行します。POP
を使用するように dovecot を設定するには、以下の手順を実行します。
protocols
変数がコメント解除されていて(行頭のハッシュ記号(#
)を削除)、pop3
引数を含むように/etc/dovecot/dovecot.conf
設定ファイルを編集します。以下に例を示します。protocols = imap pop3 lmtp
protocols
変数がコメントアウトされている場合、dovecot は上記のようにデフォルト値を使用します。- 以下のコマンドを実行して、現行セッションで変更を可能にします。
~]# service dovecot restart
- この変更を次回の再起動後に有効にするには、以下のコマンドを実行します。
~]# chkconfig dovecot on
dovecot サービスが POP3 サーバーを起動するdovecot はIMAP
サーバーを起動したことしか報告せず、POP3
サーバーも起動することに注意してください。
SMTP
とは異なり、IMAP
と POP3
の両方では、接続クライアントがユーザー名とパスワードを使用して認証する必要があります。デフォルトでは、両方のプロトコルのパスワードは、暗号化されていないネットワーク上で渡されます。
SSL
を設定するには、以下を実行します。
/etc/dovecot/conf.d/10-ssl.conf 設定を編集して、
変数がコメント解除されていることを確認し、ssl
_cipher_list:!SSLv3
を追加します。ssl_cipher_list = ALL:!LOW:!SSLv2:!EXP:!aNULL:!SSLv3
これらの値により、dovecot は、安全でないことがわかっている SSL バージョン 2 および 3 を回避するようになります。これは、『POODLE: SSLv3 脆弱性(CVE-2014-3566)で説明されている脆弱性』 が原因です。詳細は、『Postfix および Dovecot の POODLE SSL 3.0 脆弱性(CVE-2014-3566)の解決』 方法を参照してください。/etc/pki/dovecot/dovecot-openssl.cnf
設定ファイルを必要に応じて編集します。ただし、標準的なインストールではこのファイルへの変更は必要ありません。/etc/pki/dovecot/certs/dovecot.pem
ファイルおよび/etc/pki/dovecot/private/dovecot.pem
ファイルの名前変更、移動、または削除を行います。/usr/libexec/dovecot/mkcert.sh
スクリプトを実行して、dovecot の自己署名証明書を作成します。これらの証明書は、/etc/pki/dovecot/certs
および/etc/pki/dovecot/private
ディレクトリーにコピーされます。変更を実装するには、dovecot を再起動します。~]# service dovecot restart
19.2. 電子メールプログラムの分類
19.2.1. メール転送エージェント (Mail Transport Agent)
SMTP
を使用してホスト間で電子メールメッセージを転送します。メッセージは目的の送信先に移動する時、様々な MTA に関わることがあります。
19.2.2. メール配信エージェント (MDA)
19.2.3. メールユーザーエージェント
POP
プロトコルまたは IMAP
プロトコルを介してメッセージを取得したり、メッセージを格納するためのメールボックスを設定し、送信メッセージを MTA に送信することができます。
19.3. メール転送エージェント (MTA)
~]# alternatives --config mta
chkconfig service_name on | off
19.3.1. postfix
19.3.1.1. Postfix のデフォルトインストール
/usr/sbin/postfix
です。このデーモンは、メール配信の処理に必要なすべての関連プロセスを起動します。
/etc/postfix/
ディレクトリーに格納します。以下は、一般的に使用されるその他のファイルの一覧です。
access
: アクセス制御に使用します。このファイルは Postfix に接続可能なホストを指定します。main.cf
: グローバル Postfix 設定ファイル設定オプションの大部分がこのファイルで指定されています。master.cf
: メール配信を完了するために Postfix が様々なプロセスとやりとりを行う方法を指定します。transport
: 電子メールアドレスをリレーホストにマッピングします。
aliases
ファイルは /etc/
ディレクトリーにあります。このファイルは Postfix と Sendmail 間で共有されます。ユーザー ID エイリアスを記述するメールプロトコルが必要な設定可能な一覧です。
/etc/postfix/main.cf
ファイルでは、Postfix はローカルコンピューター以外のホストからのネットワーク接続を受け付けられないように設定されています。Postfix を他のクライアント用のサーバーとして設定する方法は 「Postfix の基本設定」 を参照してください。
/etc/ postfix
ディレクトリーにある設定ファイルのオプションに変更を加えた後には、postfix サービスを再起動してこれらの変更を適用します。
~]# service postfix restart
19.3.1.2. Postfix の基本設定
root
で以下のコマンドを実行します。
- vi などのテキストエディターで
/etc/postfix/main.cf
ファイルを編集します。 - mydomain 行のコメントを解除して、ハッシュ記号(
#
)を削除し、domain.tld を、example.com などのメールサーバーがサービスを提供しているドメインに置き換えます。 - myorigin = $mydomain 行のコメントを解除します。
- myhostname 行のコメントを解除し、host.domain.tld をマシンのホスト名に置き換えます。
- mydestination = $myhostname, localhost.$mydomain 行のコメントを解除します。
- mynetworks 行のコメントを解除して、168 .100.189.0/28 を、サーバーに接続可能なホストの有効なネットワーク設定に置き換えます。
- inet_interfaces = all 行のコメントを解除します。
- inet_interfaces = localhost 行をコメント化します。
- postfix サービスを再起動します。
/etc/postfix/main.cf
設定ファイルのコメントを読むことです。Postfix 設定、SpamAssassin 統合、/etc/postfix/main.cf
パラメーターの詳細などの補足情報は http://www.postfix.org/ で参照できます。
19.3.1.2.1. Postfix がトランスポート層セキュリティーを使用するように設定する
.
0 脆弱性(CVE-2014-3566)の解決で説明されている脆弱性』 のため、Red Hat では、SSL
を無効にすることを推奨します。また、TLSv1. 1 または TLSv1
.2 のみを使用することを推奨します。後方互換性は、TLSv1.0
を使用して実現できます。Red Hat がサポートする多くの製品は SSLv2
プロトコルまたは SSLv3
プロトコルを使用できます。ただし、SSLv2
または SSLv3
の使用が強く推奨されます。
19.3.1.3. LDAP での Postfix の使用
LDAP
ディレクトリーをさまざまなルックアップテーブルのソースとして利用できます( エイリアス
、仮想
、正規
など)。これにより LDAP
は階層的なユーザー情報を保存でき、Postfix は LDAP
クエリーの結果を必要な場合にのみ知らされます。この情報をローカルに保存しないことで、管理者は容易に管理することができます。
19.3.1.3.1. /etc/aliases ルックアップのサンプル
LDAP
を使用して /etc/aliases
ファイルを検索する基本的な例です。/etc/postfix/main.cf
ファイルに以下の内容が含まれていることを確認してください。
alias_maps = hash:/etc/aliases, ldap:/etc/postfix/ldap-aliases.cf
/etc/postfix/ldap-aliases.cf
ファイルがない場合は作成し、以下の内容を追加します。
server_host = ldap.example.com search_base = dc=example, dc=com
ldap.example.com
、example
、および com
は、既存の利用可能な LDAP
サーバーの仕様に置き換える必要があるパラメーターです。
/etc/postfix/ldap-aliases.cf
ファイルは、LDAP
SSL
と STARTTLS
を有効にするパラメーターなど、さまざまなパラメーターを指定できます。詳細は、ldap_table(5)
man ページを参照してください。
LDAP
の詳細は、「OpenLDAP」 を参照してください。
19.3.2. Sendmail
SMTP
プロトコルを使用して、ホスト間で電子メールを安全に転送することです。ただし、Sendmail は高度な設定が可能で、使用されるプロトコルを含め、電子メールの処理方法をほぼすべての方法で制御できます。多くのシステム管理者は、パワーとスケーラビリティーにより Sendmail を MTA として使用することを選択しています。
19.3.2.1. 用途と制約
POP
または IMAP
を使用してメッセージをローカルマシンにダウンロードする MUA を使用してメールと対話したい場合があります。ユーザーは通常、POP または IMAP を使用する MUA で電子メールとやりとりを行い、ローカルマシンにメッセージをダウンロードする方法を望みます。こうした他のアプリケーションを Sendmail と連動させることは可能ですが、実際、それらが存在する理由は異なり、独立して機能することができます。
19.3.2.2. Sendmail のデフォルトのインストール
root
で以下を実行し、sendmail パッケージがシステムにインストールされていることを確認します。
~]# yum install sendmail
root
で以下を実行し、sendmail-cf パッケージがシステムにインストールされていることを確認します。
~]# yum install sendmail-cf
/usr/sbin/sendmail
です。
/etc/mail/sendmail.cf
です。sendmail.cf
ファイルを直接編集しないでください。Sendmail に設定を変更するには、/etc/mail/sendmail.mc
ファイルを編集し、元の /etc/mail/sendmail.cf
ファイルをバックアップし、以下の代替を使用して新しい設定ファイルを生成します。
/etc/mail/
に含まれる makefile を使用して、新しい/etc/mail/sendmail.cf
設定ファイルを作成します。~]# make all -C /etc/mail/
/etc/mail
(db ファイル)内のその他の生成されたファイルはすべて、必要に応じて再生成されます。古い makemap コマンドは引き続き利用できます。make コマンドは、sendmail
サービスを起動または再起動するたびに自動的に使用されます。- m4 マクロプロセッサーを使用して、新しい
/etc/mail/sendmail.cf
を作成することもできます。m4 マクロプロセッサーはデフォルトでインストールされません。/etc/mail/sendmail.cf
を作成する前に、root で m4 パッケージをインストールします。~]# yum install m4
/etc/mail/
ディレクトリーにインストールされています。
access
: 電子メールの送信に Sendmail を使用できるシステムを指定します。domaintable
: ドメイン名のマッピングを指定します。local-host-names
: ホストのエイリアスを指定します。mailertable
: 特定のドメインのルーティングを上書きする方法を指定します。virtusertable
: ドメイン固有のエイリアス形式を指定し、1 台のマシンに複数の仮想ドメインをホストできるようにします。
アクセス
、domaintable
、mailertable
、virtusertable
などの /etc/mail/
の設定ファイルの中には、Sendmail が設定変更を使用できるようになる前に、実際にデータベースファイルに情報を保存する必要があります。データベースファイルの設定に変更を追加する場合は、root
で以下のコマンドを実行します。
~]# makemap hash /etc/mail/<name> < /etc/mail/<name>
sendmail
サービスを再起動することもできます。
~]# service sendmail restart
example.com
ドメインに対応するには、以下
の行を virtusertable
ファイルに追加します。
@example.com bob@other-example.com
virtusertable.db
ファイルを更新する必要があります。
~]# makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable
virtusertable.db
ファイルを作成します。
19.3.2.3. Sendmail の一般的な設定変更
/etc/mail/sendmail.cf
ファイルを生成するのが最適な方法です。
sendmail.cf
ファイルを置き換えたり変更したりする前に、バックアップコピーを作成してください。
/etc/mail/sendmail.mc
ファイルを編集します。編集が終了したら、sendmail
サービスを再起動します。m4 パッケージがインストールされている場合は、m4 マクロプロセッサーが新しい sendmail.cf
設定ファイルを自動的に生成します。
~]# service sendmail restart
sendmail.cf
ファイルでは、Sendmail はローカルコンピューター以外のホストからのネットワーク接続を受け入れることができません。Sendmail を他のクライアント用のサーバーとして設定するには、/etc/mail/sendmail.mc
ファイルを編集して、DAEMON_OPTIONS ディレクティブの Addr= オプションで指定されているアドレスを 127.0.0.1 からアクティブなネットワークデバイスの IP アドレスに変更するか、行頭に dnl を付けて DAEMON_OPTIONS ディレクティブをすべてコメントアウトします。終了したら、サービスを再起動して /etc/mail/sendmail.cf
を再生成します。
~]# service sendmail restart
SMTP
専用サイトで機能します。ただし、U CP (UNIX-to-UNIX Copy Protocol)サイトでは動作しません。UUCP メール転送を使用している場合は、/etc/mail/sendmail.mc
ファイルを再設定し、新しい /etc/mail/sendmail.cf
ファイルを生成する必要があります。
/usr/share/sendmail-cf
ディレクトリー下のディレクトリーにあるファイルを編集する前に、/usr/share/sendmail-cf/README
ファイルを確認してください。このファイルは、/etc/mail/sendmail.cf
ファイルの今後の設定に影響を及ぼす可能性があるためです。
19.3.2.4. マスカレーディング
mail.example.com
という名前のマシンですべての電子メールを処理して、すべての送信メールに一貫した返信アドレスを割り当てるとします。
user@example.com
ではなく user@host.example.com
になるように、企業のネットワーク上のマシン名をマスカレードする必要があります。
/etc/mail/sendmail.mc
に追加します。
FEATURE(always_add_domain)dnl FEATURE(`masquerade_entire_domain')dnl FEATURE(`masquerade_envelope')dnl FEATURE(`allmasquerade')dnl MASQUERADE_AS(`example.com.')dnl MASQUERADE_DOMAIN(`example.com.')dnl MASQUERADE_AS(example.com)dnl
sendmail.cf
ファイルを生成した後に、この設定により、ネットワーク内のメールがすべて example.com
から送信されたかのように表示されます。
19.3.2.5. Spam の停止
SMTP
メッセージの転送は、Sendmail バージョン 8.9 以降デフォルトでは無効になっています。この変更前に、Sendmail はメールホスト(x.edu
)に対して、ある当事者(y.com
)からのメッセージを受け入れるよう指示し、それらを別の当事者(z.net
)に送信していました。しかし、現在は任意のドメインがサーバーを介してメールをリレーするよう Sendmail を設定する必要があります。リレードメインを設定するには、/etc/mail/relay-domains
ファイルを編集して Sendmail を再起動します。
~]# service sendmail restart
/etc/mail/access
ファイルで利用可能な Sendmail のアクセス制御機能を使用して、不要なホストからの接続を阻止することができます。以下の例は、このファイルを使用したブロックの方法と Sendmail サーバーへのアクセスを具体的に許可する方法を示しています。
badspammer.com ERROR:550 "Go away and do not spam us anymore" tux.badspammer.com OK 10.0 RELAY
ammer.com から送信
された電子メールはいずれも 550 RFC-821 準拠のエラーコードでブロックされ、メッセージは送り返されます。tux.badspammer.com
サブドメインから送信される電子メールは受け入れられます。最後の行は、10.0..* ネットワークから送信された電子メールは、メールサーバーを介してリレーできることを示しています。
/etc/mail/access.db
ファイルはデータベースであるため、makemap コマンドを使用して変更を更新します。これは、root
で以下のコマンドを使用して行います。
~]# makemap hash /etc/mail/access < /etc/mail/access
SMTP
サーバーは、電子メールの取り組みに関する情報をメッセージヘッダーに保存します。メッセージがある MTA から別の MTA に移動すると、それぞれは他のすべての Received
ヘッダーの上に Received
ヘッダーに配置されます。この情報はスパムで変更可能である可能性があることに注意してください。
/usr/share/sendmail-cf/README
ファイルを参照してください。
19.3.2.6. LDAP での Sendmail の使用
LDAP
の使用は、大規模なグループから特定のユーザーに関する特定の情報を検索する、非常に迅速かつ強力な方法です。たとえば、LDAP
サーバーを使用すると、一般的な企業ディレクトリーから特定の電子メールアドレスをユーザーの名で検索できます。この種の実装では、LDAP
はほとんど Sendmail から分離されています。LDAP
は階層的なユーザー情報を保存し、Sendmail は事前にアドレスが入力された電子メールメッセージで LDAP
クエリーの結果のみを知らています。
LDAP
とのより優れた統合をサポートします。この場合、LDAP
を使用して、中規模レベルの組織をサポートするさまざまなメールサーバーで、/etc/aliases
や /etc/mail/virtusertables
などのメンテナンスされたファイルを置き換えます。つまり、LDAP
はメールルーティングレベルを Sendmail と、その別個の設定ファイルから、さまざまなアプリケーションで活用できる強力な LDAP
クラスターに抽象化します。
LDAP
に対応しています。LDAP
を使用して Sendmail を拡張するには、最初に OpenLDAP などの LDAP
サーバーを取得し、適切な設定を行います。次に、/etc/mail/sendmail.mc
を編集して以下を追加します。
LDAPROUTE_DOMAIN('yourdomain.com')dnl FEATURE('ldap_routing')dnl
LDAP
を使用した非常に基本的な Sendmail の設定のみです。LDAP の実装によっては、これとは大幅に異なる可能性があります。特に、共通の LDAP
サーバーを使用するようにいくつかの Sendmail マシンを設定する場合がそうです。
LDAP
ルーティング設定の指示と例は、/usr/share/sendmail-cf/README
を参照してください。
/etc/mail/sendmail.cf
ファイルを再作成します。手順については 「Sendmail の一般的な設定変更」 を参照してください。
LDAP
の詳細は、「OpenLDAP」 を参照してください。
19.3.3. Fetchmail
POP3
や IMAP
などのプロトコルを使用して、メールスプールファイルに接続し、すべての電子メールメッセージを迅速にダウンロードします。必要に応じて、電子メールメッセージを SMTP
サーバーに転送することもできます。
root
で以下を実行し、fetchmail パッケージがシステムにインストールされていることを確認します。
~]# yum install fetchmail
.fetchmailrc
ファイルを使用して、各ユーザーに設定されています。これが存在しない場合は、ホームディレクトリーに .fetchmailrc
ファイルを作成します。
.fetchmailrc
ファイル内の詳細設定を使用して、リモートサーバー上にある電子メールを確認し、ダウンロードします。その後、これをローカルマシンのポート 25
に配信し、ローカルの MTA を使用してメールを正しいユーザーのスプールファイルに配置します。Procmail が利用できる場合は起動して電子メールをフィルターし、MUA が読み込むことができるようにメールボックスに配置します。
19.3.3.1. Fetchmail の設定オプション
.fetchmailrc
ファイルを使用した方がはるかに簡単です。希望の設定オプションを .fetchmailrc
ファイルに置き、それらのオプションが fetchmail コマンドを実行するたびに使用されるようにします。Fetchmail の実行時にオプションを上書きしたい場合は、コマンドラインでそのオプションを指定します。
.fetchmailrc
ファイルには、3 つのクラスの設定オプションが含まれています。
- グローバルオプション: プログラムの動作を制御する、または電子メールを確認する全接続の設定を提供する指示を Fetchmail に指定します。
- server options: ポーリングされるサーバーに必要な情報を指定します。ホスト名をはじめ、確認するポートやタイムアウトになるまでの秒数など、特定の電子メールサーバーの設定などです。こうしたオプションは、該当するサーバーを使用する全ユーザーに影響を及ぼします。
- ユーザーオプション: 指定された電子メールサーバーを使用して、電子メールの認証や確認を行うにあたって必要なユーザー名、パスワードなどの情報を格納します。
.fetchmailrc
ファイルの上部に表示され、その後に 1 つ以上のサーバーオプションが表示されます。各オプションは Fetchmail がチェックする異なるメールサーバーを指定します。ユーザーオプションは、そのメールサーバーをチェックする各ユーザーアカウントのサーバーオプションに従います。サーバーオプションと同様に、複数のユーザーオプションを指定することで特定のサーバーでの使用、同一サーバー上の複数の電子メールアカウントの確認を行うことができます。
.fetchmailrc
ファイルで利用するには、サーバーの情報の先頭に poll または skip などの特別なオプションの動詞を使用します。poll アクションは、Fetchmail の実行時にこのサーバーオプションを使用して、指定されたユーザーオプションで電子メールを確認するよう Fetchmail に指示します。ただし、skip アクションの後にあるサーバーオプションは、Fetchmail が呼び出された時にサーバーのホスト名が指定されていない限り確認されません。skip オプションは、特に呼び出された時にスキップされたサーバーのみを確認し、現在稼働中の設定には影響を及ぼさないため、.fetchmailrc
ファイルの設定をテストする際に役立ちます。
.fetchmailrc
ファイルの例です。
set postmaster "user1" set bouncemail poll pop.domain.com proto pop3 user 'user1' there with password 'secret' is user1 here poll mail.domain2.com user 'user5' there with password 'secret2' is user1 here user 'user7' there with password 'secret3' is user1 here
POP3
を使用してチェックするように設定されます。2 つのユーザーは 2 番目のサーバーオプションを使用してチェックされますが、任意のユーザーで見つかったすべての電子メールは user1 の mail spool に送信されます。これにより、1 つの MUA 受信トレイに表示され、複数のサーバーで複数のクラスを確認できます。各ユーザーの固有の情報は、user アクションで開始します。
.fetchmailrc
ファイルに配置する必要はありません。with password '<password>' セクションを省略すると、Fetchmail は起動時にパスワードを要求します。
fetchmail
の man ページでは、各オプションの詳細が記載されていますが、最も一般的なものを以下の 3 セクションで説明します。
19.3.3.2. グローバルオプション
- daemon seconds : Fetchmail がバックグラウンドに残るデーモンモードを指定します。seconds を、Fetchmail がサーバーをポーリングするまでの待機時間の秒数に置き換えます。
- postmaster: 配信に問題が生じた場合にローカルユーザーがメールを送信するよう指定します。
- syslog: エラーとステータスメッセージのログファイルを指定します。デフォルトでは、これは
/var/log/maillog
です。
19.3.3.3. サーバーオプション
.fetchmailrc
内の独自の行に配置する必要があります。
- auth auth-type : auth-type を使用する認証のタイプに置き換えます。デフォルトでは、パスワード 認証が使用されますが、一部のプロトコルは、kerberos_v5、kerberos_v4、ssh など、他のタイプの認証をサポートします。any 認証タイプを使用すると、Fetchmail は、パスワードを必要としない方法を最初に試みます。次に、パスワードをマスクする方法を試みた後、最後にサーバーに暗号化されていないパスワードを送信して認証を試みます。
- interval number : 指定されたサーバーを、設定されたすべてのサーバーの電子メールをチェックするたびにポーリングします。このオプションは、通常のユーザーがほとんどメッセージを受信しない電子メールサーバーに使用されます。
- port port-number : port-number をポート番号に置き換えます。この値は、指定されたプロトコルのデフォルトのポート番号を上書きします。
- proto protocol : protocol を、サーバー上のメッセージを確認する時に使用する pop3 や imap などのプロトコルに置き換えます。
- timeout seconds : seconds を、Fetchmail が接続の試行をやめてからサーバーが非アクティブになる秒数に置き換えます。この値を設定しないと、デフォルトの 300 秒が使用されます。
19.3.3.4. ユーザーオプション
- fetchall: 既読メッセージを含め Fetchmail がキューにあるすべてのメッセージをダウンロードするように命令します。デフォルトでは、Fetchmail は新規メッセージのみをダウンロードするようになっています。
- fetchlimit number : number を、停止する前に取得するメッセージ数に置き換えます。
- flush: 新規メッセージを取得する前にキューにあるすべての既読メッセージを削除します。
- limit max-number-bytes : max-number-bytes を、Fetchmail で取得する時に許容されているメッセージの最大バイトサイズに置き換えます。このオプションでは低速のネットワークリンクが提供されるため、サイズが大きいメッセージのダウンロードに時間がかかりすぎる場合に有用です。
- password 'password' - password を、ユーザーのパスワードに置き換えます。
- preconnect "command" - command を、ユーザー宛のメッセージを取得する前に実行するコマンドに置き換えます。
- postconnect " - command を、ユーザー宛のメッセージを取得した後に実行するコマンドに置き換えます。
- ssl: SSL 暗号化を有効にします。この英語版が公開された時点で、デフォルトのアクションでは
SSL2
、SSL3
、SSL23
、TLS1
、TLS1.1
、およびTLS1.2
から最良のものを使用します。SSL2
は廃止されたものと見なされ、POODLE: SSLv3 脆弱性(CVE-2014-3566)のため、SSLv3
を使用しないでください。ただし、TLS1 以降の使用を強制できないため、接続するメールサーバーがSSLv2
およびSSLv3
を使用し ない よう設定する必要があります。サーバーがSSLv2
およびSSLv3
を使用し ない ように設定できない場合は、stunnel を使用します。 - sslproto: 許可された SSL プロトコルまたは TLS プロトコルを定義します。可能な値は
SSL2
、SSL3
、SSL23
、およびTLS1
です。sslproto が省略された場合、未設定の場合、または無効な値に設定された場合のデフォルト値はSSL23
です。デフォルトのアクションはSSLv3
、TLSv1
、TLS1.1、およびTLS1.2 から最適なものを使用します
。SSL または TLS の他の値を設定すると、他のすべてのプロトコルが無効になることに注意してください。POODLE: SSLv3 脆弱性(CVE-2014-3566 )のため、このオプションを省略するか、
SSLv23
に設定し、対応するメールサーバーがSSLv2
およびSSLv3
を使用し ない ように設定することが推奨されます。サーバーがSSLv2
およびSSLv3
を使用し ない ように設定できない場合は、stunnel を使用します。 - user ": username を、Fetchmail がメッセージの取得に使用するユーザー名に置き換えます。このオプションは、他のすべてのユーザーオプションの前に付ける必要があります。
19.3.3.5. Fetchmail のコマンドオプション
.fetchmailrc
設定オプションを反映します。この方法では、Fetchmail は設定ファイルの有無を問わず使用できます。これらのオプションは、.fetchmailrc
ファイルに残しておいた方が簡単なため、ほとんどのユーザーがコマンドラインでは使用しません。
.fetchmailrc
設定を一時的に上書きすることが可能です。
19.3.3.6. 情報提供またはデバッグのオプション
- --configdump:
.fetchmailrc
および Fetchmail のデフォルトからの情報に基づいて可能なすべてのオプションを表示します。このオプションを使用すると、どのユーザーの電子メールも取得されません。 - -s: Fetchmail をサイレントモードで実行し、fetchmail コマンドの後にエラー以外のメッセージが表示されないようにします。
- -v: Fetchmail を verbose モードで実行し、Fetchmail とリモートの電子メールサーバー間のすべての通信を表示します。
- -v: 詳細なバージョン情報の表示、グローバルオプションの一覧表示、電子メールプロトコルや認証方法など、各ユーザーと使用する設定の表示を行います。このオプションを使用すると、どのユーザーの電子メールも取得されません。
19.3.3.7. 特殊なオプション
.fetchmailrc
ファイルによく見られるデフォルト値を上書きする時に役立つ場合があります。
- -a: Fetchmail は、新規または既読を問わず、すべてのメッセージをリモートの電子メールサーバーからダウンロードします。デフォルトでは、Fetchmail は新規メッセージのみをダウンロードします。
- -k: Fetchmail はメッセージをダウンロードした後、リモートの電子メールサーバー上にメッセージを残します。このオプションを使用すると、メッセージをダウンロード後に削除するデフォルトの動作は上書きされます。
- -l max-number-bytes : Fetchmail は特定のサイズを超えるメッセージはダウンロードせず、リモートの電子メールサーバー上に残します。
- --quit: Fetchmail デーモンのプロセスを終了します。
.fetchmailrc
オプションは、fetchmail の man ページを参照してください。
19.3.4. メール転送エージェント (MTA) の設定
root
ユーザーに送信する場合があります。
19.4. メール配信エージェント (MDA)
/etc/procmailrc
または ~/.procmailrc
ファイル(別名 rc ファイル)がユーザーのホームディレクトリーにあると、MTA が新しいメッセージを受信するたびに Procmail が呼び出されます。
/etc/
ディレクトリーにシステム全体の rc
ファイルが存在せず、ユーザーのホームディレクトリーに .procmailrc
ファイルが存在しません。このため、Procmail を使用するには、各ユーザーが特定の環境変数とルールを使用して .procmailrc
ファイルを構築する必要があります。
rc
ファイルの特定の条件または レシピ と一致するかどうかによって異なります。あるメッセージが任意のレシピと適合する場合、電子メールは特定のファイルに置かれるか削除され、それ以外は処理されます。
/etc/procmailrc
ディレクトリー内の / etc/procmailrc
ファイルと rc
ファイルで、デフォルトのシステム全体の Procmail 環境変数とレシピを探します。その後 Procmail は、ユーザーのホームディレクトリー内で .procmailrc
ファイルを検索します。多くのユーザーは、Procmail 用に追加の rc
ファイルも作成します。これは、ホームディレクトリーの .procmailrc
ファイル内で参照されます。
19.4.1. Procmail の設定
~/.procmailrc
ファイルの最初に表示されます。
env-variable="value"
- DEFAULT: どのレシピにも適合しないメッセージが配置された場合のデフォルトのメールボックスを設定します。デフォルトの DEFAULT 値は、$ORGMAIL と同じです。
- INCLUDERC: チェックするメッセージに対する多くのレシピを格納する追加の
rc
ファイルを指定します。これにより、Procmail レシピの一覧は、スパムのブロックや電子メール一覧の管理など異なるロールを満たす個別のファイルに分割されます。このファイルは、ユーザーの~/.procmailrc
ファイル内のコメント文字を使用して、オンやオフにすることができます。たとえば、ユーザーの~/.procmailrc
ファイル内の行は以下のようになります。MAILDIR=$HOME/Msgs INCLUDERC=$MAILDIR/lists.rc INCLUDERC=$MAILDIR/spam.rc
電子メールの一覧の Procmail フィルターをオフにしつつスパム制御を維持する場合は、最初の INCLUDERC 行をハッシュ記号(#
)でコメントアウトします。現在のディレクトリーに相対的なパスが使用されることに注意してください。 - LOCKSLEEP: Procmail が特定のロックファイルの使用を試みるまでの時間を秒単位で設定します。デフォルトは
8
秒です。 - LOCKTIMEOUT: ロックファイルが最後に修正された後、Procmail がそれは古くて削除可能であるとみなすまでに経過する必要のある時間を秒単位で設定します。デフォルトは
1024
秒です。 - LOGFILE: Procmail の情報やエラーメッセージが書き込まれるファイルです。
- MAILDIR: Procmail 用の現在作業中のディレクトリーを設定します。設定されると、他の Procmail のパスはすべてこのディレクトリーに対する相対パスになります。
- ORGMAIL - 元のメールボックス、またはデフォルトまたはレシピで必要な場所にメッセージを配置できなかった場合に、メッセージを配置する別の場所を指定します。デフォルトでは、/var/spool/mail/$LOGNAME の値が使用されます。
- SUSPEND: スワップ領域など必要なリソースが利用できない場合に Procmail が一時停止する時間を秒単位で設定します。
- SWITCHRC: 追加の Procmail レシピが格納されている外部ファイルをユーザーが指定できるようにします。これは、INCLUDERC オプションとよく似ていますが、レシピのチェックが参照先の設定ファイルで実際に停止され、SWITCHRC- 指定のファイル上のレシピのみが使用される点が異なります。
- VERBOSE: Procmail が詳細な情報をログ記録するようにします。このオプションはデバッグに役立ちます。
procmailrc
を参照してください。
19.4.2. Procmail レシピ
:0 [flags] [: lockfile-name ] * [ condition_1_special-condition-character condition_1_regular_expression ] * [ condition_2_special-condition-character condition-2_regular_expression ] * [ condition_N_special-condition-character condition-N_regular_expression ] special-action-character action-to-perform
19.4.2.1. 配信と非配信レシピ
19.4.2.2. フラグ
- a: A や a のフラグが付いていない以前のレシピもこのメッセージに適合する場合にのみ、このレシピが使用されることを指定します。
- a : A または a のフラグが付いた以前のレシピもこのメッセージに適合し、かつ 正常に完了した場合にのみこのレシピが使用されることを指定します。
- B: メッセージのボディーを解析し、適合する条件を検索します。
- b: ファイルへのメッセージの書き込みや転送など、結果として生じるアクションにボディーを使用します。これはデフォルトの動作です。
- c - 電子メールのカーボンコピーを生成します。必要なアクションをメッセージで実行し、メッセージのコピーは
rc
のファイル内で引き続き処理することができるため、レシピの配信に役立ちます。 - D: egrep の比較で大文字と小文字を区別します。デフォルトでは、照合プロセスでは大文字と小文字を区別していません。
- E: A フラグと同様ですが、レシピ内の条件は、直前にある E フラグなしのレシピが適合しない場合のみに、メッセージと照合されます。これは else アクションと類似しています。
- e: 直前のレシピで指定されたアクションが失敗した場合のみ、レシピがメッセージに照合されます。
- f: フィルターとしてパイプを使用します。
- H: メッセージのヘッダーを解析し、適合する条件を検索します。これはデフォルトの動作です。
- h: 結果として生じるアクションでヘッダーを使用します。これはデフォルトの動作です。
- w: Procmail に対して、指定されたフィルターまたはプログラムが終了するのを待ち、メッセージがフィルターされたとみなす前に成功したかどうかを報告するよう指示します。
- w: 「プログラム障害」のメッセージが抑制されている点を除いては w と同じです。
procmailrc
man ページを参照してください。
19.4.2.3. ローカルロックファイルの指定
19.4.2.4. 特別な条件とアクション
- !: 条件の行では、この文字により条件が反転し、条件がメッセージに一致しない場合にのみ、適合が発生します。
- & lt;: メッセージが、指定されているバイト数に収まっているかどうかを確認します。
- & gt;: メッセージが、指定されているバイト数を超えているかどうかを確認します。
- !: アクションの行では、この文字は、指定された電子メールアドレスにメッセージを転送するように Procmail に指示します。
- $:
rc
ファイルで以前に設定された変数を参照します。多くの場合は、さまざまなレシピによって参照される共通のメールボックスを設定するために使用されます。 - |: 指定したプログラムを開始し、メッセージを処理します。
- { and }: 適合するメッセージに適用する追加のレシピを格納するために使用されるネストされたブロックを構築します。
19.4.2.5. レシピの例
grep(1)
を参照してください。
:0: new-mail.spool
new-mail.spool
という単一の spool ファイルに配置されます。その後、MUA はこのファイルでメッセージを表示できます。
rc
ファイルの末尾に置かれ、メッセージをデフォルトの場所に送ります。
:0 * ^From: spammer@domain.com /dev/null
spammer@domain.com
によって送信されたメッセージはすべて /dev/null
デバイスに送信され、削除されます。
/dev/null
に送信して永久に削除してしまう前に、ルールが目的どおりに機能していることを確認してください。レシピが間違えて目的以外のメッセージを対象にすると、それらのメッセージは消えてしまい、ルールのトラブルシューティングが困難になります。
/dev/null
に送信するよう指示します。
:0: * ^(From|Cc|To).*tux-lug tuxlug
tux-lug@domain.com
メーリングリストから送信されたメッセージはすべて、MUA 用に自動的に tuxlug
メールボックスに置かれます。From
、Cc
、または To
行にメーリングリストのメールアドレスがある場合は、この例の条件がメッセージに適合する点に注意してください。
19.4.2.6. spam フィルター
root
で以下を実行し、spamassassin パッケージがシステムにインストールされていることを確認します。
~]# yum install spamassassin
~/.procmailrc
ファイルの最上部付近に以下の行を追加します。
INCLUDERC=/etc/mail/spamassassin/spamassassin-default.rc
/etc/mail/spamassassin/spamassassin-default.rc
には、すべての受信メールに対して SpamAssassin を有効にする単純な Procmail ルールが含まれています。電子メールがスパムであると判断された場合には、ヘッダー内でタグ付けされ、タイトルの先頭には以下のようなパターンが追加されます。
*****SPAM*****
:0 Hw * ^X-Spam-Status: Yes spam
spam
と呼ばれるメールボックスにファイルします。
spamd
)およびクライアントアプリケーション(spamc)を使用する必要がある場合があります。ただし、SpamAssassin をこのように設定するには、ホストへの root
アクセスが必要です。
spamd
デーモンを起動するには、以下のコマンドを入力します。
~]# service spamassassin start
spamassassin
サービスを有効にします。サービスの起動と停止に関する詳細は、12章サービスおよびデーモン を参照してください。
~/.procmailrc
ファイルの最上部付近に以下の行を追加します。システム全体の設定の場合は、/etc/procmailrc
に配置します。
INCLUDERC=/etc/mail/spamassassin/spamassassin-spamc.rc
19.5. メールユーザーエージェント
19.5.1. 通信のセキュリティー保護
POP
プロトコルおよび IMAP
プロトコルは認証情報を暗号化せずに渡すため、ユーザー名とパスワードはネットワーク経由で渡される際に攻撃者がそれらを収集して、ユーザーアカウントにアクセスできる可能性があります。
19.5.1.1. セキュアな電子メールクライアント
IMAP
および POP
には、MUA がメッセージの認証およびダウンロードに使用する既知のポート番号(993
および 995
)があります。
19.5.1.2. 電子メールクライアントの通信のセキュリティー保護
IMAP
および POP
ユーザーに SSL 暗号化を行うことは簡単です。
IMAP
または POP
に自己署名 SSL 証明書を作成するには、/etc/pki/dovecot/
ディレクトリーに移動し、/etc/pki/dovecot/dovecot-openssl.cnf
設定ファイルの証明書パラメーターを編集し、root
で以下のコマンドを入力します。
dovecot]# rm -f certs/dovecot.pem private/dovecot.pem dovecot]# /usr/libexec/dovecot/mkcert.sh
/etc/dovecot/conf.d/10-ssl.conf ファイルに以下の設定があることを確認します。
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem ssl_key = </etc/pki/dovecot/private/dovecot.pem
IMAP
サービスまたは POP
サービスへの標準的なセキュアでない接続で暗号化ラッパーとして使用することもできます。
IMAPS
と POP3S
のラッパーとして設定するには、以下の行を /etc/stunnel/stunnel.conf
設定ファイルに追加します。
[pop3s] accept = 995 connect = 110 [imaps] accept = 993 connect = 143
IMAP
または POP
の電子メールクライアントを使用し、SSL 暗号化を使用して電子メールサーバーに接続できます。
19.6. その他のリソース
19.6.1. インストールされているドキュメント
- Sendmail の設定に関する情報は、sendmail パッケージおよび sendmail-cf パッケージに含まれています。
/usr/share/sendmail-cf/README
: m4 マクロプロセッサーの情報、Sendmail のファイルの場所、対応するメーラー、強化機能へのアクセス方法などに関する情報が含まれています。
さらに、sendmail
およびaliases
の man ページには、Sendmail の様々なオプションと Sendmail/etc/mail/aliases
ファイルの適切な設定に関する役立つ情報が記載されています。 /usr/share/doc/postfix-version-number/
: Postfix の設定方法に関する多くの情報が含まれています。version-number を Postfix のバージョン番号に置き換えてください。/usr/share/doc/fetchmail-version-number
: Fetchmail の機能の全一覧は、FEATURES
ファイルおよび入門FAQ
ドキュメントに記載されています。version-number を Fetchmail のバージョン番号に置き換えてください。/usr/share/doc/procmail-version-number/
: Procmail の概要を示すREADME
ファイル、すべてのプログラム機能を調べるFEATURES
ファイル、設定に関する多くのよくある質問への回答が含まれるFAQ
ファイルが含まれています。version-number を、Procmail のバージョン番号に置き換えてください。Procmail の仕組みや新しいレシピの作成方法を学習する場合は、以下にあげる Procmail の man ページが非常に役立ちます。Procmail
: Procmail の仕組みと電子メールのフィルタリングに必要な手順を概説します。procmailrc
: レシピの構築に使用されるrc
のファイル形式を説明します。procmailex
: 実環境向けの役立つ Procmail のサンプルレシピを多数紹介します。procmailsc
: 特定のレシピとメッセージに適合するために Procmail で使用される加重スコアリング手法を説明します。/usr/share/doc/spamassassin-version-number/
: SpamAssassin に関する多くの情報が含まれています。version-number を、spamassassin パッケージのバージョン番号に置き換えます。
19.6.2. オンラインドキュメント
- How to configure postfix with TLS?: postfix が TLS を使用するように設定することに関する Red Hat ナレッジベースの記事です。
- Red Hat ナレッジベースの記事「 How to Configure a System to Manage Multiple Virtual Mailboxes Using Postfix and Dovecot 」では、Postfix を Mail Transporting Agent(MTA)および Dovecot を IMAP サーバーとして使用する 1 つの実ユーザーアカウントで複数の仮想ユーザーを管理する方法を説明します。
- http://www.sendmail.org/: Sendmail の機能、ドキュメント、設定例の詳細を説明します。
- http://www.sendmail.com/: Sendmail に関連する認識、生産性、記事が含まれています。これには、利用可能な多くのオプションの幅広いビューが含まれます。
- http://www.postfix.org/: Postfix プロジェクトのホームページには、Postfix に関する豊富な情報が記載されています。メーリングリストは、特に情報検索に役立ちます。
- http://www.fetchmail.info/fetchmail-FAQ.html: Fetchmail に関する詳細な FAQ です。
- http://www.procmail.org/: Procmail のホームページで、Procmail 専用の各種メーリングリストへのリンクと、様々な FAQ ドキュメントへのリンクが含まれています。
- http://www.spamassassin.org/: SpamAssassin プロジェクトの公式サイトです。
第20章 ディレクトリーサーバー
20.1. OpenLDAP
LDAP
(Lightweight Directory Access Protocol) は、ネットワーク上で一元的に保存された情報にアクセスするために使用されるオープンプロトコルのセットです。これは、ディレクトリー共有の X.500
標準に基づいていますが、それほど複雑ではなく、リソースを大量に消費します。このため、LDAP は 「X.500 Lite」 と呼ばれることもあります。
20.1.1. LDAP の概要
SSLv3
に依存しないことを推奨しています。OpenLDAP は、SSLv3
を効果的に無効にできるようにする設定パラメーターを提供しないシステムコンポーネントの 1 つです。リスクを軽減するには、stunnel コマンドを使用してセキュアなトンネルを提供し、SSLv3
の使用から stunnel を無効にすることが推奨されます。stunnel の使用方法は、『 Red Hat Enterprise Linux 6 セキュリティーガイド』 を参照してください。
20.1.1.1. LDAP の用語
- entry
- LDAP ディレクトリー内の単一のユニット。各エントリーは、固有の 識別名 (DN) で識別されます。
- attribute
- エントリーに直接関連付けられた情報。たとえば、組織が LDAP エントリーとして表されている場合、この組織に関連付けられている属性にはアドレス、ファx 番号などが含まれます。同様に、個人の電話番号やメールアドレスなどの一般的な属性のエントリーとして、ユーザーを表示することもできます。属性は、単一の値、または順序付けられていないスペースで区切られた値のリストのいずれかを持つことができます。特定の属性は任意ですが、その他は必須です。必要な属性は
objectClass
クラス定義を使用して指定し、/etc/openldap/slapd.d/cn=config/cn=schema/
ディレクトリーにあるスキーマファイルで確認できます。属性とそれに対応する値のアサーションは、RDN (Relative Distinguished Name) とも呼ばれます。グローバルで一意となる識別名とは異なり、相対識別名はエントリーごとに一意のみになります。 - LDIF
- LDAP データ交換形式 (LDIF) は LDAP エントリーのプレーンテキスト表現です。以下の形式を取ります。
[id] dn: distinguished_name attribute_type: attribute_value attribute_type: attribute_value ...
任意の id は、エントリーの編集に使用されるアプリケーションによって決定される数値です。各エントリーには、対応するスキーマファイルにすべて定義されている限り、必要が数の attribute_type と attribute_value のペアを含めることができます。空白行は、エントリーの最後を示します。
20.1.1.2. OpenLDAP の機能
- LDAPv3 サポート: LDAP バージョン 2 以降のプロトコルの変更の多くは、LDAP よりセキュアにするように設計されています。また、これには、Simple Authentication and Security Layer(SASL)、Transport Layer Security(TLS)プロトコルのサポートが含まれます。
- LDAP Over IPC: プロセス間の通信 (IPC) を使用すると、ネットワーク上で通信する必要がなくなります。
- IPv6 サポート: OpenLDAP は、インターネットプロトコルの次世代である IPv6 (Internet Protocol version 6) に準拠しています。
- LDIFv1 サポート: OpenLDAP は LDIF バージョン 1 に完全に準拠しています。
- 更新された C API: 現在の C API は、プログラマーが LDAP ディレクトリーサーバーに接続し、使用する方法を向上させます。
- 強化されたスタンドアロン LDAP サーバー: これには、更新されたアクセス制御システム、スレッドプール、より良いツールなどが含まれています。
20.1.1.3. OpenLDAP サーバーの設定
- OpenLDAP スイートをインストールします。必要なパッケージの詳細は、「OpenLDAP スイートのインストール」 を参照してください。
- 「OpenLDAP サーバーの設定」 の説明に従って設定をカスタマイズします。
- 「OpenLDAP サーバーの実行」 の説明に従って
slapd
サービスを起動します。 - ldapadd ユーティリティーを使用して、エントリーを LDAP ディレクトリーに追加します。
- ldapsearch ユーティリティーを使用して、
slapd
サービスが情報が正しくアクセスされていることを確認します。
20.1.2. OpenLDAP スイートのインストール
パッケージ | 説明 |
---|---|
openldap | OpenLDAP サーバーとクライアントアプリケーションの実行に必要なライブラリーを含むパッケージ。 |
openldap-clients | LDAP サーバーのディレクトリーを表示および変更するコマンドラインユーティリティーを含むパッケージ。 |
openldap-servers | LDAP サーバーを設定し、実行するサービスとユーティリティーの両方を含むパッケージ。これには、スタンドアロン LDAP デーモン slapd が含まれます。 |
compat-openldap | OpenLDAP 互換性ライブラリーを含むパッケージ。 |
パッケージ | 説明 |
---|---|
sssd | SSSD(System Security Services Daemon) を含むパッケージ。リモートディレクトリーおよび認証メカニズムへのアクセスを管理するデーモンセットです。システムおよびプラグ可能な認証モジュール(PAM)に Name Service Switch(NSS)インターフェースおよびプラグ可能な認証モジュール(PAM)インターフェースを提供して、複数の異なるアカウントソースに接続します。 |
mod_authz_ldap | mod_authz_ldap (Apache HTTP Server の LDAP 認証モジュール)が含まれるパッケージ。このモジュールは、サブジェクトとクライアント SSL 証明書の発行者に識別名の短縮形式を使用して、LDAP ディレクトリー内のユーザーの識別名を決定します。また、そのユーザーの LDAP ディレクトリーエントリーの属性に基づいてユーザーを承認し、アセットのユーザーおよびグループの権限に基づいてアセットへのアクセスを判定し、期限切れのパスワードを持つユーザーのアクセスを拒否することもできます。mod_authz_ldap モジュールを使用する場合は mod_ssl モジュールが必要になることに注意してください。
|
yum install
package
~]# yum install openldap openldap-clients openldap-servers
root
としてログイン) が必要であることに注意してください。Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux に新しいパッケージをインストールする方法の詳細は、「パッケージのインストール」 を参照してください。
20.1.2.1. OpenLDAP サーバーユーティリティーの概要
slapd
サービスとともに次のユーティリティーがインストールされます。
コマンド | 説明 |
---|---|
slapacl | 属性の一覧へのアクセスを確認できます。 |
slapadd | LDIF ファイルから LDAP ディレクトリーにエントリーを追加できます。 |
slapauth | 認証および承認権限のIDのリストを確認できます。 |
slapcat | デフォルト形式の LDAP ディレクトリーからエントリーを取得し、LDIF ファイルに保存できます。 |
slapdn | 利用可能なスキーマ構文に基づいて、識別名(DN)の一覧を確認できます。 |
slapindex | 現在の内容に基づいて slapd ディレクトリーを再インデックス化できます。設定ファイルのインデックスオプションを変更する場合に、このユーティリティーを実行します。 |
slappasswd | ldapmodify ユーティリティーまたは slapd 設定ファイルで使用する暗号化されたユーザーパスワードを作成できます。 |
slapschema | 対応するスキーマでデータベースのコンプライアンスを確認できます。 |
slaptest | LDAP サーバー設定を確認できるようにします。 |
root
のみですが、slapd
サービスは ldap
ユーザーとして実行します。このため、ディレクトリーサーバーは slapadd により作成されたファイルを変更できません。この問題を修正するには、slapd ユーティリティーを実行した後に、シェルプロンプトで以下を入力します。
~]# chown -R ldap:ldap /var/lib/ldap
slapd
サービスを停止します。これを行うには、シェルプロンプトで以下を実行できます。
~]# service slapd stop
Stopping slapd: [ OK ]
slapd
サービスの現在の状態の開始、停止、再起動、および確認の方法は、「OpenLDAP サーバーの実行」 を参照してください。
20.1.2.2. OpenLDAP クライアントユーティリティーの概要
コマンド | 説明 |
---|---|
ldapadd | エントリーは、ファイルまたは標準入力から LDAP ディレクトリーに追加できます。ldapmodify -a へのシンボリックリンクです。 |
ldapcompare | 指定属性を LDAP ディレクトリーエントリーと比較できます。 |
ldapdelete | LDAP ディレクトリーからエントリーを削除できます。 |
ldapexop | 拡張 LDAP 操作を実行できます。 |
ldapmodify | LDAP ディレクトリー(ファイルまたは標準入力のいずれか)のエントリーを変更できます。 |
ldapmodrdn | LDAP ディレクトリーエントリーの RDN 値を変更できます。 |
ldappasswd | LDAP ユーザーのパスワードを設定または変更できるようにします。 |
ldapsearch | LDAP ディレクトリーエントリーを検索できます。 |
ldapurl | LDAP URL の組み立てまたは分解を可能にします。 |
ldapwhoami | LDAP サーバーで whoami 操作を実行できます。 |
20.1.2.3. 共通 LDAP クライアントアプリケーションの概要
20.1.3. OpenLDAP サーバーの設定
/etc/openldap/
ディレクトリーに保存します。表20.5「OpenLDAP 設定ファイルとディレクトリーの一覧」 このディレクトリー内の最も重要なファイルおよびディレクトリーを強調表示します。
パス | 説明 |
---|---|
/etc/openldap/ldap.conf | OpenLDAP ライブラリーを使用するクライアントアプリケーションの設定ファイルこれには ldapadd、ldapsearch、Evolution などが含まれます。 |
/etc/openldap/slapd.d/ | slapd 設定が含まれるディレクトリー。 |
slapd
サービスは /etc/openldap/slapd.d/
ディレクトリーにある設定データベースを使用し、このディレクトリーが存在しない場合は、古い /etc/openldap/slapd.conf
設定ファイルのみを読み取ります。以前のインストールの既存の slapd.conf
ファイルがある場合は、次にこのパッケージを更新する際に openldap-servers パッケージが新しい形式に変換するか、root
で次のコマンドを実行します。
~]# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
slapd
設定は、階層的なディレクトリー構造で整理された LDIF エントリーで構成されます。これらのエントリーを編集する方法として、「OpenLDAP サーバーユーティリティーの概要」 に記載されているサーバーユーティリティーを使用することが推奨されます。
slapd
サービスを起動できない場合があります。このため、/etc/openldap/slapd.d/
ディレクトリーの LDIF ファイルを直接編集しないことが強く推奨されます。
20.1.3.1. グローバル設定の変更
/etc/openldap/slapd.d/cn=config.ldif
ファイルに保存されます。一般的には、以下のディレクティブが使用されます。
-
olcAllows
olcAllows
ディレクティブを使用すると、有効にする機能を指定できます。以下の形式を取ります。olcAllows
: feature表20.6「利用可能なolcAllows オプション」 に記載されている、スペースで区切られた機能のリストを受け入れます。デフォルトオプションはbind_v2
です。表20.6 利用可能なolcAllows オプション オプション 説明 bind_v2
LDAP バージョン 2 バインド要求の受け入れを有効にします。 bind_anon_cred
識別名(DN) が空でない場合は匿名バインドを有効にします。 bind_anon_dn
識別名(DN) が空 でない 場合は匿名バインドを有効にします。 update_anon
匿名更新操作の処理を有効にします。 proxy_authz_anon
匿名プロキシーの承認制御の処理を有効にします。 例20.1 olcAllows ディレクティブの使用
olcAllows: bind_v2 update_anon
-
olcConnMaxPending
olcConnMaxPending
ディレクティブを使用すると、匿名セッションの保留中の要求の最大数を指定できます。以下の形式を取ります。olcConnMaxPending
: numberデフォルトオプションは100
です。例20.2 olcConnMaxPending ディレクティブの使用
olcConnMaxPending: 100
-
olcConnMaxPendingAuth
olcConnMaxPendingAuth
ディレクティブを使用すると、認証されたセッションの保留中のリクエストの最大数を指定できます。以下の形式を取ります。olcConnMaxPendingAuth
: numberデフォルトオプションは1000
です。例20.3 olcConnMaxPendingAuth ディレクティブの使用
olcConnMaxPendingAuth: 1000
-
olcDisallows
olcDisallows
ディレクティブを使用すると、無効にする機能を指定できます。以下の形式を取ります。olcDisallows
: feature表20.7「利用可能な olcDisallows オプション」 に記載されている、スペースで区切られた機能のリストを受け入れます。デフォルトでは、機能は無効になりません。表20.7 利用可能な olcDisallows オプション オプション 説明 bind_anon
匿名バインド要求の受け入れを無効にします。 bind_simple
簡単なバインド認証メカニズムを無効にします。 tls_2_anon
STARTTLS コマンドを受け取ると、匿名セッションの強制を無効にします。 tls_authc
認証時に STARTTLS コマンドを許可しません。 例20.4 olcDisallows ディレクティブの使用
olcDisallows: bind_anon
-
olcIdleTimeout
olcIdleTimeout
ディレクティブを使用すると、アイドル状態の接続を閉じる前に待機する秒数を指定できます。以下の形式を取ります。olcIdleTimeout
: numberこのオプションは、デフォルトでは無効になっています (つまり0
に設定されます)。例20.5 olcIdleTimeout ディレクティブの使用
olcIdleTimeout: 180
-
olcLogFile
olcLogFile
ディレクティブを使用すると、ログメッセージを書き込むファイルを指定できます。以下の形式を取ります。olcLogFile
: file_nameログメッセージはデフォルトで標準エラーに書き込まれます。例20.6 olcLogFile ディレクティブの使用
olcLogFile: /var/log/slapd.log
-
olcReferral
olcReferral
オプションでは、サーバーがこれを処理できない場合に、要求を処理するサーバーの URL を指定できます。以下の形式を取ります。olcReferral
: URLこのオプションはデフォルトで無効になっています。例20.7 olcReferral ディレクティブの使用
olcReferral: ldap://root.openldap.org
-
olcWriteTimeout
olcWriteTimeout
オプションでは、未処理の書き込み要求との接続を閉じる前に待機する秒数を指定できます。以下の形式を取ります。olcWriteTimeout
このオプションは、デフォルトでは無効になっています (つまり0
に設定されます)。例20.8 olcWriteTimeout ディレクティブの使用
olcWriteTimeout: 180
20.1.3.2. データベース固有の設定の変更
/etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
ファイルに保存されます。以下のディレクティブは、データベース固有の設定で一般的に使用されます。
-
olcReadOnly
olcReadOnly
ディレクティブを使用すると、データベースを読み取り専用モードで使用できます。以下の形式を取ります。olcReadOnly
: booleanTRUE
(読み取り専用モードを有効) またはFALSE
(データベースの変更を有効) のいずれかを受け入れます。デフォルトのオプションはFALSE
です。例20.9 olcReadOnly ディレクティブの使用
olcReadOnly: TRUE
-
olcRootDN
olcRootDN
ディレクティブを使用すると、LDAP ディレクトリー上の操作に設定されたアクセス制御または管理制限パラメーターが無制限のユーザーを指定できます。以下の形式を取ります。olcRootDN
: distinguished_name識別名 (DN) を受け入れます。デフォルトのオプションはcn=Manager,dc=my-domain,dc=com
です。例20.10 olcRootDN ディレクティブの使用
olcRootDN: cn=root,dc=example,dc=com
-
olcRootPW
olcRootPW
ディレクティブを使用すると、olcRootDN
ディレクティブを使用して指定されるユーザーのパスワードを設定できます。以下の形式を取ります。olcRootPW
: passwordプレーンテキストの文字列またはハッシュのいずれかを指定できます。ハッシュを生成するには、シェルプロンプトで以下を入力します。~]$ slappaswd New password: Re-enter new password: {SSHA}WczWsyPEnMchFf1GRTweq2q7XJcvmSxD
例20.11 olcRootPW ディレクティブの使用
olcRootPW: {SSHA}WczWsyPEnMchFf1GRTweq2q7XJcvmSxD
-
olcSuffix
olcSuffix
ディレクティブでは、情報を提供するドメインを指定できます。以下の形式を取ります。olcSuffix
: domain_name完全修飾ドメイン名 (FQDN) を受け入れます。デフォルトのオプションはdc=my-domain,dc=com
です。例20.12 olcSuffix ディレクティブの使用
olcSuffix: dc=example,dc=com
20.1.3.3. スキーマの拡張
/etc/openldap/slapd.d/cn=config/cn=schema/
ディレクトリーには、/etc/openldap/schema/
に以前あった LDAP 定義も含まれます。OpenLDAPで使用されるスキーマを拡張して、デフォルトのスキーマファイルをガイドとして使用して、追加の属性タイプとオブジェクトクラスをサポートすることができます。ただし、このタスクは本章の範囲外です。このトピックに関する詳細は を参照してください http://www.openldap.org/doc/admin/schema.html。
20.1.4. OpenLDAP サーバーの実行
20.1.4.1. サービスの起動
slapd
サービスを実行するには、シェルプロンプトで以下を入力します。
~]# service slapd start
Starting slapd: [ OK ]
~]# chkconfig slapd on
20.1.4.2. サービスの停止
slapd
サービスを停止するには、シェルプロンプトで以下を入力します。
~]# service slapd stop
Stopping slapd: [ OK ]
~]# chkconfig slapd off
20.1.4.3. サービスの再起動
slapd
サービスを再起動するには、シェルプロンプトで以下を入力します。
~]# service slapd restart
Stopping slapd: [ OK ]
Starting slapd: [ OK ]
20.1.4.4. サービスステータスの確認
~]# service slapd status
slapd (pid 3672) is running...
20.1.5. OpenLDAP を使用してシステムを認証するためのシステムの設定
~]# yum install openldap openldap-clients sssd
20.1.5.1. 以前の認証情報の LDAP 形式への移行
~]# yum install migrationtools
/usr/share/migrationtools/
ディレクトリーにインストールされます。インストールが完了したら、/usr/share/migrationtools/migrate_common.ph
ファイルを編集し、以下の行を変更して正しいドメインを反映させます。
# Default DNS domain $DEFAULT_MAIL_DOMAIN = "example.com"; # Default base $DEFAULT_BASE = "dc=example,dc=com";
dc=example,dc=com
に設定して migrate_all_online.sh
スクリプトを実行するには、以下を入力します。
~]# export DEFAULT_BASE="dc=example,dc=com" \ /usr/share/migrationtools/migrate_all_online.sh
既存のネームサービス | LDAP が実行しているか? | 使用するスクリプト |
---|---|---|
/etc フラットファイル | はい | migrate_all_online.sh |
/etc フラットファイル | いいえ | migrate_all_offline.sh |
NetInfo | はい | migrate_all_netinfo_online.sh |
NetInfo | いいえ | migrate_all_netinfo_offline.sh |
NIS (YP) | はい | migrate_all_nis_online.sh |
NIS (YP) | いいえ | migrate_all_nis_offline.sh |
/usr/share/doc/migrationtools-version/
ディレクトリーの README
ファイルおよび migration-tools.txt
ファイルを参照してください。
20.1.6. その他のリソース
20.1.6.1. インストールされているドキュメント
/usr/share/doc/openldap-servers-version/guide.html
- 『OpenLDAP ソフトウェアチャンネルのガイド の』 コピー。
/usr/share/doc/openldap-servers-version/README.schema
- インストールされたスキーマファイルの説明が含まれる README ファイル。
- クライアントアプリケーション
- man ldapadd: LDAP ディレクトリーにエントリーを追加する方法を説明します。
- man ldapdelete: LDAP ディレクトリー内のエントリーを削除する方法を説明します。
- man ldapmodify: LDAP ディレクトリー内のエントリーを変更する方法を説明しています。
- man ldapsearch: LDAP ディレクトリー内のエントリーの検索方法を説明します。
- man ldappasswd: LDAP ユーザーのパスワードを設定または変更する方法を説明します。
- man ldapcompare: ldapcompare ツールの使用方法について説明しています。
- man ldapwhoami: ldapwhoami ツールの使用方法について説明しています。
- man ldapmodrdn: エントリーの RDN を変更する方法を説明しています。
- サーバーアプリケーション
- man slapd: LDAP サーバーのコマンドラインオプションを説明しています。
- 管理アプリケーション
- man slapadd: slapd データベースにエントリーを追加するために使用されるコマンドラインオプションを説明しています。
- man slapcat: slapd データベースから LDIF ファイルを生成するために使用されるコマンドラインオプションを説明しています。
- man slapindex: slapd データベースの内容に基づいてインデックスを再生成するために使用されるコマンドラインオプションを説明しています。
- man slappasswd: LDAP ディレクトリーのユーザーパスワードを生成するのに使用されるコマンドラインオプションを説明しています。
- 設定ファイル
- man ldap.conf: LDAP クライアントの設定ファイルで利用可能な形式とオプションを説明しています。
- man slapd-config: 設定ディレクトリー内で利用可能な形式とオプションを説明しています。
20.1.6.2. 便利な Web サイト
- http://www.openldap.org/doc/admin24/
- 『OpenLDAP ソフトウェアチャンネルガイドの』 現行バージョン
第21章 ファイルとプリントサーバー
21.1. Samba
SMB
)プロトコルを実装します。このプロトコルの最新版は、一般的なインターネットファイルシステム (CIFS
)プロトコルとしても知られています。Microsoft Windows®、Linux、UNIX、およびその他のオペレーティングシステムのネットワークを有効にし、Windows ベースのファイルおよびプリンター共有へのアクセスを可能にします。Samba の SMB
を使用すると、Windows クライアントへの Windows サーバーとして表示できます。
root
で以下のコマンドを実行して、samba パッケージがシステムにインストールされていることを確認します。
~]# yum install samba
21.1.1. Samba の概要
Samba の機能:
- Linux、UNIX、Windows クライアントにディレクトリーツリーとプリンターを提供する
- ネットワークブラウズの支援(NetBIOS を使用)
- Windows ドメインログインの認証
- Windows Internet Name Service (
WINS
)ネームサーバー解決の提供 - Windows の NT®スタイルの プライマリードメインコントローラー (PDC)として機能します。
- Samba ベースの P DC のバックアップドメインコントローラー (BDC)として機能します。
- Active Directory ドメインメンバーサーバーとして機能
- Join a Windows NT/2000/2003/2008 PDC
Samba が実行できる内容:
- Windows PDC の BDC として機能します(その逆も同様です)。
- Active Directory ドメインコントローラーとして動作する
21.1.2. Samba デーモンと関連サービス
smbd
、nmbd
、および winbindd
)で構成されています。3 つのサービス(smb
、nb
、および winbind
)は、デーモンの開始、停止、およびその他のサービス関連の機能を制御します。これらのサービスは、異なる init スクリプトとして機能します。各デーモンは、以下に詳細と、どの特定のサービスがこれを制御するかを示しています。
smbd
smbd
サーバーデーモンは、Windows クライアントにファイル共有および印刷サービスを提供します。また、SMB
プロトコルを介してユーザー認証、リソースロック、およびデータ共有を行います。サーバーが SMB
トラフィックをリッスンするデフォルトのポートは TCP
ポート 139
および 445
です。
smbd
デーモンは、smb
サービスにより制御されます。
nmbd
nmbd
サーバーデーモンは、Windows ベースのシステムで SMB/CIFS が生成するなど、NetBIOS ネームサービス要求を理解し、応答します。このシステムには、Windows 95/98/ME、Windows NT、Windows 2000、Windows XP、および LanManager クライアントが含まれます。また、Windows Network Neighborhood ビューを構成する参照プロトコルにも参加します。サーバーが NMB
トラフィックをリッスンするデフォルトのポートは UDP
ポート 137
です。
nmbd
デーモンは nmb
サービスによって制御されます。
winbindd
winbind
サービスは、Windows NT、Vagrant、Windows Server 2008、または Windows Server 2012 を実行しているサーバーから受け取ったユーザーおよびグループの情報を解決します。これにより、UNIX プラットフォームで Windows ユーザーおよびグループの情報を理解できるようになります。これは、Microsoft RPC 呼び出し、Pluggable Authentication Modules (PAM)、および Name Service Switch (NSS)を使用して実現されます。これにより、Windows NT ドメインおよび Active Directory ユーザーを表示し、UNIX マシンで UNIX ユーザーとして操作できます。Samba ディストリビューションにバンドルされていますが、winbind
サービスは smb
サービスとは別に制御されます。
winbind
デーモンは winbind
サービスによって制御され、動作のために smb
サービスを起動する必要はありません。Samba が Active Directory メンバーである場合にも winbind
を使用し、Samba ドメインコントローラーでも使用できます(ネスト化されたグループとドメイン間の信頼を実装するため)。winbind
は Windows NT ベースのサーバーへの接続に使用されるクライアント側のサービスであるため、winbind
の詳細な説明は本章の対象外となります。
winbind
を設定する方法は、「Winbind 認証の設定」 を参照してください。
21.1.4. Samba サーバーの設定
/etc/samba/smb.conf
)を使用すると、ユーザーはホームディレクトリーを Samba 共有として表示できます。また、システムに設定されたすべてのプリンターを Samba 共有プリンターとして共有します。システムにプリンターを割り当てて、ネットワーク上の Windows マシンからプリンターを印刷できます。
21.1.4.1. グラフィカル設定
21.1.4.2. コマンドライン設定
/etc/samba/smb.conf
を設定ファイルとして使用します。この設定ファイルを変更すると、root
で次のコマンドを実行して Samba デーモンを再起動するまで変更は反映されません。
~]# service smb restart
/etc/samba/smb.conf
ファイルで次の行を編集します。
workgroup = WORKGROUPNAME server string = BRIEF COMMENT ABOUT SERVER
/etc/samba/smb.conf
ファイルに以下のセクションを追加します(必要に応じて変更を反映するように修正します)。
例21.1 Samba サーバーの設定例
[sharename] comment = Insert a comment here path = /home/share/ valid users = tfox carole writable = yes create mask = 0765
/home/share/
ディレクトリーに対する tfox および carole ユーザーが読み書きできるようになります。
21.1.4.3. 暗号化パスワード
smbpasswd
ユーティリティーを使用します。
smbpasswd -a username
21.1.5. Samba の起動および停止
root
で次のコマンドを実行します。
~]# service smb start
smb
サービスを起動する 前 に net join コマンドを使用してドメインまたは Active Directory に参加する必要があります。また、smbd
の前に winbind
を実行することが推奨されます。
root
で次のコマンドを実行します。
~]# service smb stop
restart
オプションは、Samba を停止して起動する簡単な方法です。これは、Samba の設定ファイルを編集した後に設定変更を行う最も信頼性の高い方法です。restart オプションは、最初に実行していない場合でもデーモンを起動することに注意してください。
root
で次のコマンドを実行します。
~]# service smb restart
condrestart
(conditional restart)オプションは、現在実行している条件で smb
のみを停止し、開始します。このオプションは、デーモンが実行されていない場合はデーモンを起動しないため、スクリプトに便利です。
/etc/samba/smb.conf
ファイルを変更すると、Samba は数分後に自動的に再読み込みされます。手動での 再起動 または リロード の発行は効果的です。
root
で以下のコマンドを入力します。
~]# service smb condrestart
/etc/samba/smb.conf
ファイルの手動によるリロードは、smb
サービスが自動再読み込みに失敗した場合に役に立ちます。サービスを再起動せずに Samba サーバー設定ファイルが再読み込みされるようにするには、root
で以下のコマンドを入力します。
~]# service smb reload
smb
サービスは、システムの起動時に自動的に起動し ません。Samba が起動時に開始するように設定するには、/sbin/chkconfig
、/usr/sbin/ntsysv
、または Services Configuration Tool プログラムなどの initscript ユーティリティーを使用します。これらのツールの詳細は、12章サービスおよびデーモン を参照してください。
21.1.6. Samba サーバータイプおよび smb.conf
ファイル
/etc/samba/smb.conf
設定ファイルで行います。デフォルトの smb.conf
ファイルは十分に文書化されていますが、LDAP、Active Directory、多くのドメインコントローラー実装などの複雑なトピックには対応しません。
/etc/samba/smb.conf
ファイルに必要な変更に注意してください。
21.1.6.1. スタンドアロンサーバー
Anonymous Read-Only
/etc/samba/smb.conf
ファイルは、匿名の読み取り専用ファイル共有の実装に必要な設定例を示しています。匿名アクセスの設定には、map to guest = Bad user
および guest account = nobody
の 2 つのディレクティブが使用されます。
例21.2 Anonymous Read-Only Samba サーバーの設定例
[global] workgroup = DOCS netbios name = DOCS_SRV security = user guest account = nobody # default value map to guest = Bad user [data] comment = Documentation Samba Server path = /export read only = yes guest ok = yes
Anonymous Read/Write
/etc/samba/smb.conf
ファイルは、匿名の読み取り/書き込みファイル共有の実装に必要な設定例を示しています。匿名の読み取り/書き込みファイル共有を有効にするには、read only
ディレクティブを no
に設定します。force user
ディレクティブおよび force group
ディレクティブも追加され、共有で指定した新たに配置されたファイルの所有権を強制します。
/etc/samba/smb.conf
ファイルの汎用ユーザー(force user
)およびグループ(force group
)で指定されたユーザー/グループの組み合わせが割り当てられます。
例21.3 Anonymous Read/Write Samba サーバーの設定例
[global] workgroup = DOCS security = user guest account = nobody # default value map to guest = Bad user [data] comment = Data path = /export guest ok = yes writeable = yes force user = user force group = group
Anonymous Print Server
/etc/samba/smb.conf
ファイルは、匿名プリントサーバーの実装に必要な設定例を示しています。上記のように browseable
を no
に設定しても、Windows Network Neighborhood にプリンターは表示されません。参照を外すことはできませんが、プリンターを明示的に設定することはできません。NetBIOS を使用して DOCS_SRV
に接続すると、クライアントが DOCS
ワークグループに含まれる場合に、クライアントがプリンターにアクセスできます。また、use client driver
ディレクティブは yes
に設定されているため、クライアントに正しいローカルプリンタードライバーがインストールされていることを前提とします。この場合、Samba サーバーはプリンタードライバーをクライアントと共有する責任はありません。
例21.4 Anonymous Print Samba サーバーの設定例
[global] workgroup = DOCS netbios name = DOCS_SRV security = user map to guest = Bad user printing = cups [printers] comment = All Printers path = /var/spool/samba guest ok = yes printable = yes use client driver = yes browseable = yes
読み取り/書き込みファイルおよびプリントサーバーの保護
/etc/samba/smb.conf
ファイルは、セキュアな読み取り/書き込みファイルおよびプリントサーバーの実装に必要な設定例を示しています。security
ディレクティブを user
に設定すると、Samba がクライアント接続を認証するように強制します。[homes]
共有には [public]
共有が行われるため、force user
または force group
ディレクティブがないことに注意してください。[homes]
共有は、[public]
の force user
および force group
ではなく、作成されたすべてのファイルに認証されたユーザーの詳細を使用します。
例21.5 セキュアな読み取り/書き込みファイルの設定例および Samba サーバーの印刷
[global] workgroup = DOCS netbios name = DOCS_SRV security = user printcap name = cups disable spools = yes show add printer wizard = no printing = cups [homes] comment = Home Directories valid users = %S read only = no browseable = no [public] comment = Data path = /export force user = docsbot force group = users guest ok = yes [printers] comment = All Printers path = /var/spool/samba printer admin = john, ed, @admins create mask = 0600 guest ok = yes printable = yes use client driver = yes browseable = yes
21.1.6.2. ドメインメンバーサーバー
Active Directory ドメインメンバーサーバー
手順21.3 Active Directory ドメインへのメンバーサーバーの追加
- Active Directory ドメインに追加するメンバーサーバーに
/etc/samba/smb.conf
設定ファイルを作成します。以下の行を設定ファイルに追加します。[global] realm = EXAMPLE.COM security = ADS encrypt passwords = yes # Optional. Use only if Samba cannot determine the Kerberos server automatically. password server = kerberos.example.com
上記の設定では、Samba はローカルで実行するサービスのユーザーを認証しますが、Active Directory のクライアントでもあります。kerberos のrealm
パラメーターがすべての上限(例:realm = EXAMPLE.COM
)に表示されていることを確認します。Windows 2000/2003/2008 では Active Directory 認証に Kerberos が必要であるため、realm
ディレクティブが必要です。Active Directory と Kerberos が異なるサーバーで実行している場合は、区別に役立つpassword server
ディレクティブが必要です。 - メンバーサーバーで Kerberos を設定します。以下の内容で
/etc/krb5.conf
設定ファイルを作成します。[logging] default = FILE:/var/log/krb5libs.log [libdefaults] default_realm = AD.EXAMPLE.COM dns_lookup_realm = true dns_lookup_kdc = true ticket_lifetime = 24h renew_lifetime = 7d rdns = false forwardable = false [realms] # Define only if DNS lookups are not working # AD.EXAMPLE.COM = { # kdc = server.ad.example.com # admin_server = server.ad.example.com # master_kdc = server.ad.example.com # } [domain_realm] # Define only if DNS lookups are not working # .ad.example.com = AD.EXAMPLE.COM # ad.example.com = AD.EXAMPLE.COM
DNS ルックアップが機能しない場合は、[realms]
セクションおよび[domain_realm]
セクションのコメントを解除します。Kerberos および /etc/krb5.conf ファイルの詳細は、Red Hat Enterprise Linux 6nbsp;Hat Enterprise Red Hat Enterprise Linux 6nbsp;Linux Red Hat Enterprise Linux 6nbsp;6 『Managing Single Sign-On および Smart Cards』 の 『Kerberos の使用』 セクションを参照してください。 - Active Directory サーバーに参加するには、メンバーサーバーで
root
として以下のコマンドを入力します。~]# net ads join -U administrator%password
net コマンドは、NT LAN Manager(NTLM)プロトコルを使用して管理者
として認証し、マシンアカウントを作成します。次に、net はマシンアカウントの認証情報を使用して Kerberos で認証します。セキュリティーオプションsecurity = ads
ではなくsecurity = user
が使用されるため、smbpasswd
などのローカルパスワードバックエンドは必要ありません。security = ads
をサポートしない古いクライアントは、security = domain
が設定されているかのように認証されます。この変更は機能に影響を与えず、ドメインに提供していないローカルユーザーを許可します。
Windows NT4 ベースドメインメンバー Server
/etc/samba/smb.conf
ファイルは、Windows NT4- ベースのドメインメンバーサーバーの実装に必要な設定例を示しています。NT4 ベースのドメインのメンバーサーバーになるのは、Active Directory への接続に似ています。主な違いは、NT4 ベースのドメインは認証方法で Kerberos を使用しないため、/etc/samba/smb.conf
ファイルを簡素化します。この場合、Samba メンバーサーバーは NT4 ベースのドメインサーバーへパススルーします。
例21.6 Samba Windows NT4 ベースのドメインメンバーサーバーの設定例
[global] workgroup = DOCS netbios name = DOCS_SRV security = domain [homes] comment = Home Directories valid users = %S read only = no browseable = no [public] comment = Data path = /export force user = docsbot force group = users guest ok = yes
/etc/samba/smb.conf
ファイルを変更してサーバーを Samba ベースの PDC に変換する非常に簡単です。Windows NT ベースのサーバーが Windows 2000/2003/2008 にアップグレードされた場合、/etc/samba/smb.conf
ファイルは、必要に応じてインフラストラクチャーの変更を Active Directory に組み込むのを簡単に変更できます。
/etc/samba/smb.conf
ファイルを設定したら、root
で以下のコマンドを入力して Samba を起動 する前 にドメインに参加します。
~]# net rpc join -U administrator%password
-S
オプションは、net rpc join コマンドに指定する必要はありません。Samba は、明示的に指定する代わりに、/etc/samba/smb.conf
ファイルの workgroup
ディレクティブで指定されたホスト名を使用します。
21.1.6.3. ドメインコントローラー
tdbsam
を使用したプライマリードメインコントローラー(PDC)
tdbsam
パスワードデータベースバックエンドを使用します。古い smbpasswd
バックエンドを置き換えると、tdbsam
には、「Samba アカウント情報データベース」 で説明されている多くの改良点があります。passdb backend
ディレクティブは、PDC に使用するバックエンドを制御します。
/etc/samba/smb.conf
ファイルは、tdbsam
パスワードデータベースバックエンドの実装に必要な設定例を示しています。
例21.7 tdbsam
を使用した プライマリードメインコントローラー(PDC)の設定例
[global] workgroup = DOCS netbios name = DOCS_SRV passdb backend = tdbsam security = user add user script = /usr/sbin/useradd -m "%u" delete user script = /usr/sbin/userdel -r "%u" add group script = /usr/sbin/groupadd "%g" delete group script = /usr/sbin/groupdel "%g" add user to group script = /usr/sbin/usermod -G "%g" "%u" add machine script = /usr/sbin/useradd -s /bin/false -d /dev/null -g machines "%u" # The following specifies the default logon script # Per user logon scripts can be specified in the user # account using pdbedit logon script = logon.bat # This sets the default profile path. # Set per user paths with pdbedit logon drive = H: domain logons = yes os level = 35 preferred master = yes domain master = yes [homes] comment = Home Directories valid users = %S read only = no [netlogon] comment = Network Logon Service path = /var/lib/samba/netlogon/scripts browseable = no read only = no # For profiles to work, create a user directory under the # path shown. # mkdir -p /var/lib/samba/profiles/john [Profiles] comment = Roaming Profile Share path = /var/lib/samba/profiles read only = no browseable = no guest ok = yes profile acls = yes # Other resource shares ... ...
tdbsam
を使用する機能 PDC システムを提供するには、以下の手順に従います。
- 例21.7「
tdbsam
を使用した プライマリードメインコントローラー(PDC)の設定例」 に従って、smb.conf
設定ファイルを調整します。 root
ユーザーを Samba パスワードデータベースに追加します。root
ユーザーの新しい Samba パスワードを提供するように求められます。~]# smbpasswd -a root New SMB password:
smb
サービスを起動します。~]# service smb start
- すべてのプロファイル、ユーザー、および netlogon ディレクトリーが作成されていることを確認します。
- ユーザーをメンバーにできるグループを追加します。
~]# groupadd -f users ~]# groupadd -f nobody ~]# groupadd -f ntadmins
- UNIX グループをそれぞれの Windows グループに関連付けます。
~]# net groupmap add ntgroup="Domain Users" unixgroup=users ~]# net groupmap add ntgroup="Domain Guests" unixgroup=nobody ~]# net groupmap add ntgroup="Domain Admins" unixgroup=ntadmins
- ユーザーまたはグループへのアクセス権限を付与します。たとえば、Samba ドメインコントローラーのドメインにクライアントマシンを追加するパーミッションをドメイン管理グループのメンバーに付与するには、以下のコマンドを実行します。
~]# net rpc rights grant 'DOCS\Domain Admins' SetMachineAccountPrivilege -S PDC -U root
tdbsam
認証バックエンドを使用し ない でください。このような場合には、LDAP が推奨されます。
Active Directory を使用するプライマリードメインコントローラー(PDC)
21.1.7. Samba セキュリティーモード
21.1.7.1. ユーザーレベルのセキュリティー
security = user
ディレクティブが /etc/samba/smb.conf
ファイルに一覧表示されていない場合でも、Samba によって使用されます。サーバーがクライアントのユーザー名とパスワードを受け入れると、クライアントはインスタンスごとにパスワードを指定せずに複数の共有をマウントできます。Samba はセッションベースのユーザー名およびパスワード要求を受け入れることもできます。クライアントは、ログオンごとに一意の UID を使用して複数の認証コンテキストを維持します。
/etc/samba/smb.conf
ファイルでは、ユーザーレベルのセキュリティーを設定する security = user
ディレクティブは次のとおりです。
[GLOBAL] ... security = user ...
Samba ゲスト共有
security = share
パラメーターを使用せずに Samba ゲスト共有を設定するには、以下の手順に従います。
ドメインセキュリティーモード(ユーザーレベルのセキュリティー)
/etc/samba/smb.conf
ファイルの以下のディレクティブを使用して、Samba サーバーがドメインメンバーサーバーに確立されます。
[GLOBAL] ... security = domain workgroup = MARKETING ...
Active Directory セキュリティーモード(ユーザーレベルのセキュリティー)
/etc/samba/smb.conf
ファイルで、以下のディレクティブで Samba に Active Directory メンバーサーバーが作成されます。
[GLOBAL] ... security = ADS realm = EXAMPLE.COM password server = kerberos.example.com ...
21.1.8. Samba アカウント情報データベース
- プレインテキスト
- プレーンテキストのバックエンドは、
/etc/passwd
タイプのバックエンドにはありません。プレーンテキストのバックエンドでは、クライアントとサーバーはすべて、クライアントとサーバー間で暗号化されずに送信されます。この方法は安全ではないため、どのような手段でも使用することは推奨されません。プレーンテキストのパスワードで Samba サーバーに接続する別の Windows クライアントは、このような認証方法に対応できません。 smbpasswd
smbpasswd
バックエンドは、MS Windows Lan アカウントおよび NT アカウント、暗号化されたパスワード情報が含まれるプレーンテキストの ASCII テキストレイアウトを使用します。smbpasswd
バックエンドには、Windows NT/2000/2003 SAM 拡張コントロールのストレージがありません。smbpasswd
バックエンドは、NT ベースのグループの RID などの Windows 情報をスケーリングしたり、保持したりしないため、推奨されません。tdbsam
バックエンドはこれらの問題を解決し、小規模なデータベース(250 ユーザー)で使用する問題を解決しますが、エンタープライズレベルのソリューションではありません。ldapsam_compat
ldapsam_compat
バックエンドを使用すると、Samba のアップグレードバージョンと引き続き OpenLDAP サポートを使用できます。tdbsam
- デフォルトの
tdbsam
パスワードバックエンドは、ローカルサーバーのデータベースバックエンド、組み込みデータベースレプリケーションを必要としないサーバー、および LDAP のスケーラビリティーや複雑さを必要としないサーバーを提供します。tdbsam
バックエンドには、smbpasswd
データベース情報と、以前に除外された SAM 情報が含まれます。拡張 SAM データを含めることで、Samba は Windows NT/2000/2003/2008 ベースのシステムと同じアカウントおよびシステムアクセス制御を実装できます。最大 250 ユーザーには、tdbsam
バックエンドが推奨されます。大規模な組織では、スケーラビリティーやネットワークインフラストラクチャーの潜在的な問題により、Active Directory または LDAP 統合が必要になります。 ldapsam
ldapsam
バックエンドは、Samba に最適な分散アカウントのインストール方法を提供します。LDAP は、Red Hat Directory Server や OpenLDAP Server などの任意の数のサーバーにデータベースを複製する機能が原因で最適です。LDAP データベースは軽量でスケーラブルなため、大規模な企業から推奨されます。ディレクトリーサーバーのインストールと設定については、本章の対象外となります。Red Hat Directory Server の詳細は、『 Red Hat Directory Server 『9.0 デプロイメントガイド』』 を参照してください。LDAP の詳細は、「OpenLDAP」 を参照してください。以前のバージョンの Samba から 3.0 にアップグレードする場合は、OpenLDAP スキーマファイル(/usr/share/doc/samba-バージョン/LDAP/samba.schema
)および Red Hat Directory Server スキーマファイル(/usr/share/doc/samba-version/LDAP/samba-schema-FDS.ldif
)が変更されたことに注意してください。これらのファイルには、ldapsam
バックエンドが適切に機能するために必要な 属性構文の 定義 と objectclass 定義 が含まれます。そのため、Samba サーバーにldapsam
バックエンドを使用している場合は、このスキーマファイルのいずれかを含めるようにslapd
を設定する必要があります。これを行う方法については、「スキーマの拡張」 を参照してください。openldap-servers パッケージがインストールされていることを確認します。ldapsam
バックエンドを使用する場合は、openldap-servers パッケージがインストールされている必要があります。パッケージがインストールされていることを確認するには、root で以下の
コマンドを実行します。~]# yum install openldap-servers
21.1.9. Samba Network Browsing
TCP
/IP
を介した NetBIOS が必要です。NetBIOS ベースのネットワークはブロードキャスト(UDP
)メッセージングを使用して、参照リスト管理を行います。TCP
/IP
ホスト名の解決の主な方法として NetBIOS および WINS を使用しないと、静的ファイル(/etc/hosts
)や DNS
などの他のメソッドを使用する必要があります。
21.1.9.1. ドメインの参照
/etc/samba/smb.conf
ファイルを設定することは、ワークグループの設定と同じです( 「Samba サーバーの設定」を参照)。
21.1.9.2. WINS(Windows インターネットネームサーバー)
/etc/samba/smb.conf
ファイルの例です。
例21.8 WINS サーバーの設定例
[global] wins support = yes
21.1.10. Samba と CUPS 印刷サポート
21.1.10.1. 簡易 smb.conf
の設定
/etc/samba/smb.conf
設定を示しています。
例21.9 CUPS サポートを使用した Samba の設定例
[global] load printers = yes printing = cups printcap name = cups [printers] comment = All Printers path = /var/spool/samba browseable = no guest ok = yes writable = no printable = yes printer admin = @ntadmins [print$] comment = Printer Drivers Share path = /var/lib/samba/drivers write list = ed, john printer admin = ed, john
print$
ディレクティブには、ローカルで利用できない場合にクライアントがアクセスするプリンタードライバーが含まれます。print$
ディレクティブは任意で、組織によっては必要でないことがあります。
browseable
を yes
に設定すると、Windows Network Neighborhood でプリンターを表示できます。
21.1.11. Samba ディストリビューションプログラム
findsmb
findsmb <subnet_broadcast_address>
findsmb
プログラムは、特定のサブネットの SMB
対応システムに関する情報を報告する Perl スクリプトです。サブネットが指定されていない場合には、ローカルサブネットが使用されます。表示される項目には、IP
アドレス、NetBIOS 名、ワークグループまたはドメイン名、オペレーティングシステム、およびバージョンが含まれます。findsmb コマンドは、以下の形式で使用されます。
~]$ findsmb
IP ADDR NETBIOS NAME WORKGROUP/OS/VERSION
------------------------------------------------------------------
10.1.59.25 VERVE [MYGROUP] [Unix] [Samba 3.0.0-15]
10.1.59.26 STATION22 [MYGROUP] [Unix] [Samba 3.0.2-7.FC1]
10.1.56.45 TREK +[WORKGROUP] [Windows 5.0] [Windows 2000 LAN Manager]
10.1.57.94 PIXEL [MYGROUP] [Unix] [Samba 3.0.0-15]
10.1.57.137 MOBILE001 [WORKGROUP] [Windows 5.0] [Windows 2000 LAN Manager]
10.1.57.141 JAWS +[KWIKIMART] [Unix] [Samba 2.2.7a-security-rollup-fix]
10.1.56.159 FRED +[MYGROUP] [Unix] [Samba 3.0.0-14.3E]
10.1.59.192 LEGION *[MYGROUP] [Unix] [Samba 2.2.7-security-rollup-fix]
10.1.56.205 NANCYN +[MYGROUP] [Unix] [Samba 2.2.7a-security-rollup-fix]
net
net <protocol> <function> <misc_options> <target_options>
net
ユーティリティーは、Windows および MS-DOS に使用される net
ユーティリティーと似ています。最初の引数は、コマンドの実行時に使用するプロトコルを指定するために使用されます。protocol
オプションは、サーバー接続のタイプを指定するために ads
、rap
、または rpc
です。Active Directory は ads
を使用し、Win9x/NT3 は rap
を使用し、Windows NT4/2000/2003/2008 は rpc
を使用します。プロトコルを省略すると、net
は自動的に判断を試行します。
wakko
という名前のホストで利用可能な共有の一覧を表示します。
~]$ net -l share -S wakko
Password:
Enumerating shared resources (exports) on remote server:
Share name Type Description
---------- ---- -----------
data Disk Wakko data share
tmp Disk Wakko tmp share
IPC$ IPC IPC Service (Samba Server)
ADMIN$ IPC IPC Service (Samba Server)
wakko
という名前のホストの Samba ユーザーの一覧を表示します。
~]$ net -l user -S wakko
root password:
User name Comment
-----------------------------
andriusb Documentation
joe Marketing
lisa Sales
nmblookup
nmblookup <options> <netbios_name>
nmblookup
プログラムは、NetBIOS 名を IP
アドレスに解決します。プログラムは、ターゲットマシンが応答するまでローカルサブネットのクエリーをブロードキャストします。
trek
の IP
アドレスを表示します。
~]$ nmblookup trek
querying trek on 10.1.59.255
10.1.56.45 trek<00>
pdbedit
pdbedit <options>
pdbedit
プログラムは、SAM データベースにあるアカウントを管理します。すべてのバックエンドには、smbpasswd
、LDAP、および tdb データベースライブラリーが含まれます。
~]$ pdbedit -a kristin new password: retype new password: Unix username: kristin NT username: Account Flags: [U ] User SID: S-1-5-21-1210235352-3804200048-1474496110-2012 Primary Group SID: S-1-5-21-1210235352-3804200048-1474496110-2077 Full Name: Home Directory: \\wakko\kristin HomeDir Drive: Logon Script: Profile Path: \\wakko\kristin\profile Domain: WAKKO Account desc: Workstations: Munged dial: Logon time: 0 Logoff time: Mon, 18 Jan 2038 22:14:07 GMT Kickoff time: Mon, 18 Jan 2038 22:14:07 GMT Password last set: Thu, 29 Jan 2004 08:29:28 GMT Password can change: Thu, 29 Jan 2004 08:29:28 GMT Password must change: Mon, 18 Jan 2038 22:14:07 GMT ~]$ pdbedit -v -L kristin Unix username: kristin NT username: Account Flags: [U ] User SID: S-1-5-21-1210235352-3804200048-1474496110-2012 Primary Group SID: S-1-5-21-1210235352-3804200048-1474496110-2077 Full Name: Home Directory: \\wakko\kristin HomeDir Drive: Logon Script: Profile Path: \\wakko\kristin\profile Domain: WAKKO Account desc: Workstations: Munged dial: Logon time: 0 Logoff time: Mon, 18 Jan 2038 22:14:07 GMT Kickoff time: Mon, 18 Jan 2038 22:14:07 GMT Password last set: Thu, 29 Jan 2004 08:29:28 GMT Password can change: Thu, 29 Jan 2004 08:29:28 GMT Password must change: Mon, 18 Jan 2038 22:14:07 GMT ~]$ pdbedit -L andriusb:505: joe:503: lisa:504: kristin:506: ~]$ pdbedit -x joe ~]$ pdbedit -L andriusb:505: lisa:504: kristin:506:
rpcclient
rpcclient <server> <options>
rpcclient
プログラムは、システム管理用の Windows 管理グラフィカルユーザーインターフェース(GUI)へのアクセスを提供する Microsoft RPC を使用して管理コマンドを実行します。これは、Microsoft RPC の完全な複雑さを理解する上級ユーザーによりよく使用されます。
smbcacls
smbcacls <//server/share> <filename> <options>
smbcacls
プログラムは、Samba サーバーまたは Windows サーバーで共有されるファイルおよびディレクトリーの Windows ACL を変更します。
smbclient
smbclient <//server/share> <password> <options>
smbclient
プログラムは、ftp
ユーティリティーと同様の機能を提供する汎用 UNIX クライアントです。
smbcontrol
smbcontrol -i <options>
smbcontrol <options> <destination> <messagetype> <parameters>
smbcontrol
プログラムは、smbd
デーモン、nmbd
デーモン、または winbindd
デーモンの実行に制御メッセージを送信します。smbcontrol -i を実行すると、空の行または 'q'
が入力されるまでコマンドを対話的に実行します。
smbpasswd
smbpasswd <options> <username> <password>
smbpasswd
プログラムは、暗号化されたパスワードを管理します。このプログラムは、スーパーユーザーが実行して、ユーザーのパスワードを変更し、通常のユーザーが独自の Samba パスワードを変更することもできます。
smbspool
smbspool <job> <user> <title> <copies> <options> <filename>
smbspool
プログラムは、Samba への CUPS 互換印刷インターフェースです。CUPS プリンターで使用するように設計されていますが、smbspool は CUPS 以外のプリンターでも機能します。
smbstatus
smbstatus <options>
smbstatus
プログラムは、Samba サーバーへの現在の接続のステータスを表示します。
smbtar
smbtar <options>
smbtar
プログラムは、Windows ベースの共有ファイルおよびディレクトリーのバックアップおよび復元をローカルテープアーカイブに対して実行します。tar
ユーティリティーと同様に、これら 2 つのユーティリティーは互換性がありません。
testparm
testparm <options> <filename> <hostname IP_address>
testparm
プログラムは、/etc/samba/smb.conf
ファイルの構文をチェックします。smb.conf
ファイルがデフォルトの場所(/etc/samba/smb.conf
)にある場合は、場所を指定する必要はありません。testparm
プログラムにホスト名および IP
アドレスを指定すると、hosts.allow
ファイルおよび host.deny
ファイルが正しく設定されていることを確認します。testparm
プログラムは、テスト後に smb.conf
ファイルとサーバーのロール(stand-alone、domain など)の概要も表示します。これは、コメントを除外し、経験のある管理者が読み取る情報を簡潔に提示する時に、デバッグを行う場合に便利です。以下に例を示します。
~]$ testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[printers]"
Processing section "[tmp]"
Processing section "[html]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
<enter>
# Global parameters
[global]
workgroup = MYGROUP
server string = Samba Server
security = SHARE
log file = /var/log/samba/%m.log
max log size = 50
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
dns proxy = no
[homes]
comment = Home Directories
read only = no
browseable = no
[printers]
comment = All Printers
path = /var/spool/samba
printable = yes
browseable = no
[tmp]
comment = Wakko tmp
path = /tmp
guest only = yes
[html]
comment = Wakko www
path = /var/www/html
force user = andriusb
force group = users
read only = no
guest only = yes
wbinfo
wbinfo <options>
wbinfo
プログラムは、winbindd
デーモンからの情報を表示します。wbinfo
を機能させるには、winbindd
デーモンが実行している必要があります。
21.1.12. その他のリソース
インストールされているドキュメント
/usr/share/doc/samba-<version-number&
gt;/: Samba ディストリビューションに含まれる追加ファイルすべて。これには、ヘルパースクリプト、設定ファイルのサンプル、およびドキュメントが含まれます。- 特定の Samba 機能の詳細は、以下の man ページを参照してください。
- smb.conf(5)
- samba(7)
- smbd(8)
- nmbd(8)
- winbindd(8)
関連書籍
- 『Official Samba-3 HOWTO-Collection』 by John H. Terpstra and Jelmer R. Vernooij; Prentice Hall - Samba 開発チームが発行した公式の Samba-3 ドキュメントこれは、ステップバイステップのガイドよりも多くのリファレンスガイドです。
- 『Samba-3 by John H. Terpstra; Prentice Hall: これは、OpenLDAP、DNS、DHCP、および print 設定ファイルの詳細例』 を説明する Samba 開発チームが発行する別の公式リリースです。これには、実際の実装に役立つステップバイステップの関連情報があります。
- 『Samba、2nd Edition(Jan Ts による 2nd Edition、Robert Eckstein、および David Collier-Brown)の使用』。O'Reilly - O'Revice to novice to novice to novice which includes comprehensive reference material.
便利な Web サイト
- http://www.samba.org/: Samba ディストリビューションのホームページと、Samba 開発チームが作成したすべての公式ドキュメント多くのリソースは HTML および PDF 形式で利用できますが、その他は購入でのみ利用できます。これらのリンクの多くは Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux 固有のものではなく、一部の概念が適用される場合があります。
- http://samba.org/samba/archives.html : Samba コミュニティーの有効なメール一覧。一覧アクティビティーのレベルが高くなるため、ダイジェストモードを有効にすることが推奨されます。
- Samba newsgroups -
NNTP
プロトコルを使用する Samba スレッドの newsgroups( www.gmane.org など)も利用可能です。これは、メーリングリストのメールを受信する代わりになります。
21.2. FTP
FTP
( File Transfer Protocol )は、現在インターネット上で見られる、最も古く、一般的に使用されているプロトコルです。この目的は、ユーザーがリモートホストに直接ログインしなくても、もしくはリモートシステムの使用法についての知識がなくとも、ネットワーク上のコンピューターホスト間で確実にファイルを転送することです。これにより、ユーザーは、標準の簡単なコマンドセットを使用してリモートシステム上のファイルにアクセスすることができます。
FTP
プロトコルの基本と、Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux に同梱されているプライマリー FTP
サーバーである vsftpd
について概説します。
21.2.1. ファイル転送プロトコル (FTP)
TCP
ネットワークプロトコルを使用してファイルを転送します。FTP
は古いプロトコルであることから、暗号化されていないユーザー名とパスワード認証を使用します。このため、安全でないプロトコルとみなされており、絶対的に必要でない限り、使用するべきではありません。ただし、FTP
はインターネット上で非常に有益であるため、共有ファイルの公開で必要となる場合がよくあります。このため、システム管理者は、FTP
の固有の特性を認識する必要があります。
TLS
によるセキュアな接続を確立する方法と、SELinux を用いて FTP
サーバーのセキュリティーを保護する方法を説明します。FTP
の代用となるのは、OpenSSH スイートからの sftp です。OpenSSH の設定方法および SSH
プロトコル全般に関する情報は、14章OpenSSH を参照してください。
FTP
が正しく機能するためには複数のネットワークポートを必要とします。FTP
クライアントアプリケーションが FTP
サーバーへの接続を開始すると、コマンド ポート と呼ばれるポート 21
をサーバー上で開きます。このポートは、すべてのコマンドをサーバーに発行するために使用されます。サーバーから要求されたデータは、データポート を介してクライアントに返されます。データ接続のポート番号、およびデータ接続を初期化する方法は、クライアントが active モードまたは passive モードでデータを要求するかどうかによって異なります。
- アクティブモード
- アクティブモードは、
FTP
プロトコルでクライアントへのデータ転送に使用される独自の方法です。FTP
クライアントがアクティブモードのデータ転送を開始すると、サーバーは、サーバーのポート20
から、クライアントで指定されたIP
アドレスとランダムな非特権ポート(1024
以上)への接続を開きます。この配置は、クライアントマシンが1024
を超えるポートを介して接続を受け入れることができる必要があることを意味します。インターネットのようなセキュリティー保護されていないネットワークが増加するにともない、ファイアウォールを使用したクライアントマシンの保護が普及しています。このようなクライアント側のファイアウォールは、アクティブモードのFTP
サーバーから着信する接続を拒否する場合が多いため、パッシブモードが実現されました。 - パッシブモード
- パッシブモードはアクティブモードと同様に、
FTP
クライアントアプリケーションによって開始されます。サーバーからデータを要求する際に、FTP
クライアントはパッシブモードでデータにアクセスしたいことを示し、サーバーはサーバー上のIP
アドレスとランダムな非特権ポート(1024
以上)を提供します。クライアントは、サーバー上のそのポートに接続して要求した情報をダウンロードします。パッシブモードは、クライアント側のファイアウォールによるデータ接続障害の問題を解決しますが、サーバー側のファイアウォール管理を複雑化させてしまう場合があります。FTP
サーバー上の特権のないポートの範囲を制限することにより、サーバー上で開いているポートの数を減らすことができます。またこの方法により、サーバーを対象としたファイアウォールのルール設定の手順が簡略化されます。パッシブポートの制限の詳細は、「ネットワークオプション」 を参照してください。
21.2.2. vsftpd サーバー
vsftpd
( Very Secure FTP Daemon)は、高速で安定性があり、安全性が重要なように、最大で重要なものから設計されています。vsftpd
は、多数の接続を効率的かつ安全に処理できるため、Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux とともに配布される唯一のスタンドアロン FTP
サーバーです。
vsftpd
で使用されるセキュリティーモデルには、以下に挙げる 3 つの主要な側面があります。
- 特権プロセスと非特権プロセスの確固たる分離: 別個のプロセスが異なるタスクを処理します。各プロセスは、そのタスクに必要な最低限の権限で稼働します。
- 高い権限を必要とするタスクを、必要最小限の権限を伴うプロセスで処理:
libcap
ライブラリー内にある互換性を利用して、通常は完全な root 権限を必要とするタスクを、権限が低いプロセスでより安全に実行できます。 - ほとんどのプロセスを chroot jail で実行 する - 可能な場合は常に、プロセスはルートディレクトリーを共有ディレクトリーに変更します。このディレクトリーは、chroot jail と見なされます。たとえば、
/var/ftp/
ディレクトリーが主要な共有ディレクトリーである場合、vsftpd
は/var/ftp/
を新しい root ディレクトリー(/
)に再割り当てします。これにより、新たな root ディレクトリー下に格納されていないディレクトリーに対する、ハッカーの潜在的な悪質行為を行うことができなくなります。
vsftpd
によるリクエスト対応方法に以下のような影響があります。
- 親プロセスは、必要最小限の権限で稼働: 親プロセスは、リスクレベルを最低限に抑えるために必要とされる権限のレベルを動的に算出します。子プロセスは、
FTP
クライアントとの直接的な対話を処理し、できるだけ権限なしに近い状態で稼働します。 - 高い 権限を必要とする操作はすべて、小さな親プロセスによって処理され ます。Apache
HTTP
Server と同様に、vsftpd
は権限のない子プロセスを起動し、着信接続を処理します。これにより、権限のある親プロセスを最小限に抑えられ、比較的少ないタスクを処理することになります。 - 親プロセスは、権限のない子プロセスからのリクエストはどれも信頼しない: 子プロセスとの通信はソケット上で受信し、子プロセスからの情報の有効性は動作を実施する前に確認されます。
FTP
クライアントとのインタラクションの大半は、chroot jail 内の権限のない子プロセスによって処理: これらの子プロセスには権限がなく、共有ディレクトリーへのアクセスしかないため、プロセスがクラッシュした際 に攻撃者がアクセスできるのは共有ファイルのみです。
21.2.2.1. vsftpd の起動と停止
/etc/rc.d/init.d/vsftpd
スクリプトをインストールします。これは、service コマンドを使用してアクセスできます。
root
で以下を入力します。
~]# service vsftpd start
~]# service vsftpd stop
restart
オプションは、vsftpd
を停止して起動する簡単な方法です。これは、vsftpd
の設定ファイルを編集した後に設定変更を行う最も効率的な方法です。
root
で以下のコマンドを入力し、サーバーを再起動するには、以下を実行します。
~]# service vsftpd restart
condrestart
(条件付き再起動)オプションは停止し、現在実行している場合にのみ vsftpd を起動します。このオプションは、デーモンが実行されていない場合はデーモンを起動しないため、スクリプトに便利です。try-restart
オプションは同義語です。
~]# service vsftpd condrestart
21.2.2.2. vsftpd の複数コピーの起動
FTP
ドメインに使用する場合があります。これは、マルチホーミング と呼ばれる手法です。vsftpd
を使用してマルチホーミングを行う方法の 1 つに、デーモンの複数コピーを実行し、各コピーに設定ファイルを与える方法があります。
IP
アドレスをシステム上のネットワークデバイスまたはエイリアスネットワークデバイスに割り当てます。ネットワークデバイス、デバイスエイリアスの設定に関する詳細は、10章NetworkManager を参照してください。ネットワーク設定スクリプトの詳細は、11章Network Interfaces を参照してください。
FTP
ドメインの DNS サーバーが正しいマシンを参照するように設定する必要があります。BIND、Red Hat Enterprise Linuxnbsp;Hat Enterprise Red Hat Enterprise Linuxnbsp;Linux で使用されている DNS
プロトコル実装、設定ファイルの詳細は、「BIND」 を参照してください。
vsftpd
がさまざまな IP
アドレスで要求に応答するには、デーモンの複数コピーが実行中である必要があります。これを可能にするには、FTP
サーバーで必要な各インスタンスの個別の vsftpd
設定ファイルを作成し、それを /etc/vsftpd/
ディレクトリーに格納する必要があります。これらの設定ファイルは、( /etc/vsftpd/vsftpd-site-2.conf
などの)一意の名前を持ち、root
ユーザーのみが読み取り、書き込み可能とする必要があることに注意してください。
IPv4
ネットワーク上でリッスンする各 FTP
サーバーの設定ファイル内で、以下のディレクティブは一意のものである必要があります。
listen_address=N.N.N.N
FTP
サイト用の 一意 の IP
アドレスに置き換えます。サイトが IPv6
を使用している場合は、代わりに listen_address6
ディレクティブを使用します。
/etc/vsftpd/
ディレクトリーに格納したら、vsftpd
デーモンの設定済みインスタンスをすべて root
として実行して起動できます。
~]# service vsftpd start
vsftpd
デーモンの個別インスタンスは、以下のコマンドを使用して root
シェルプロンプトから起動できます。
~]# vsftpd /etc/vsftpd/configuration-file
vsftpd-site-2.conf
などの要求されたサーバーの設定ファイルの一意の名前に置き換えます。
anon_root
local_root
vsftpd_log_file
xferlog_file
vsftpd
デーモンの設定ファイルで使用できるディレクティブの詳細な一覧は、「vsftpd でインストールされたファイル」 を参照してください。
21.2.2.3. TLS を使用した vsftpd 接続の暗号化
FTP
の本質的にセキュアでない性質に対照するために、vsftpd
デーモンが TLS
プロトコルを使用して接続を認証し、すべての送信を暗号化するように設定できます。TLS
をサポートする FTP
クライアントは、TLS
が有効になっている vsftpd
と通信する必要があることに注意してください。
SSL
(Secure Sockets Layer)は、セキュリティープロトコルの古い実装の名前です。新しいバージョンは TLS
(Transport Layer Security)と呼ばれます。SSL
にはセキュリティーに関する深刻な脆弱性があるため、新しいバージョン(TLS
)のみを使用してください。vsftpd サーバーに付随するドキュメントや vsftpd.conf
ファイルで使用される設定ディレクティブでは、セキュリティー関連の項目を参照する際に SSL
名を使用しますが、TLS
はサポートされており、ssl_enable
ディレクティブが YES
に設定されているときにデフォルトで使用されています。
vsftpd.conf
ファイルの ssl_enable
設定ディレクティブを YES
に設定して、TLS
サポートを有効にします。ssl_enable
オプションが有効になっていると自動的にアクティブになる他の TLS
関連のディレクティブのデフォルト設定により、合理的に適切に設定された TLS
のセットアップが提供されます。これには、すべての接続に TLS
v1 プロトコルのみを使用する要件(安全でない SSL
プロトコルバージョンはデフォルトで無効になるなど)や、匿名以外のすべてのログインでパスワードおよびデータ送信での TLS
の使用を強制することなどです。
例21.10 TLS を使用するように vsftpd の設定
vsftpd.conf
ファイルでセキュリティープロトコルの古い SSL
バージョンを明示的に無効にします。
ssl_enable=YES ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO
vsftpd
サービスを再起動します。
~]# service vsftpd restart
vsftpd
による TLS
の使用を微調整するための他の TLS
関連の設定ディレクティブについては、vsftpd.conf(5) man ページを参照してください。また、一般的に使用されるその他の vsftpd.conf
設定ディレクティブの説明は、「vsftpd 設定オプション」 を参照してください。
21.2.2.4. vsftpd 用の SELinux ポリシー
ftpd
プロセスとともに) vsftpd
デーモンを管理する SELinux ポリシーは、強制アクセス制御を定義します。これはデフォルトでは、最低限必要なアクセスに基づいています。FTP
デーモンが特定のファイルまたはディレクトリーにアクセスできるようにするには、それらに適切なラベルを割り当てる必要があります。
public_content_t
ラベルを共有するファイルおよびディレクトリーに割り当てる必要があります。これは、chcon コマンドを root
として使用して実行できます。
~]# chcon -R -t public_content_t /path/to/directory
public_content_rw_t
ラベルを割り当てる必要があります。さらに、SELinux のブール値オプション allow_ftpd_anon_write
を 1
に設定する必要があります。以下のように、setsebool コマンドを root
で実行します。
~]# setsebool -P allow_ftpd_anon_write=1
FTP
経由でホームディレクトリーにアクセスできるようにするには、Red Hat Enterprise Linux 6nbsp;Hat Enterprise Red Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 のデフォルト設定である FTP でホームディレクトリーにアクセスできるようにするには、ftp_home_dir
のブール値オプションを 1
に設定する必要があります。vsftpd
をスタンドアロンモードで実行できるようにするには(Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 でデフォルトで有効)、ftpd_is_daemon
オプションも 1
に設定する必要があります。
FTP
に関する SELinux ポリシーの設定方法の他の便利なラベルやブール値オプションの例は、man ページの ftpd_selinux(8) を参照してください。SELinux 全般に関する詳細情報は、Red Hat Enterprise Linux 6 Security-Enhanced Linux をご覧ください。
21.2.2.5. vsftpd でインストールされたファイル
vsftpd
)、その設定と関連ファイル、および FTP
ディレクトリーをシステムにインストールします。以下は、vsftpd
設定に関連するファイルおよびディレクトリーの一覧です。
/etc/pam.d/
: vsftpd のPAM(プラグ可能な認証モジュール )設定ファイルこのファイルは、vsftpd
FTP
サーバーへのログインに必要な要件を指定します。PAM の詳細は、『 Red Hat Enterprise Linux 6 Single Sign-On およびスマートカード 』の「 『PAM(プラグ可能な認証モジュール)の使用』 」の章を参照してください。/etc/vsftpd/ftpusers
:vsftpd
へのログインが許可されていないユーザーの一覧です。デフォルトでは、この一覧にはroot
、bin
、およびdaemon
ユーザーが含まれます。/etc/vsftpd/user_list
: このファイルは、userlist_deny
ディレクティブがYES
(デフォルト)に設定されているか、または/etc/vsftpd/vsftpd.conf
でNO
に設定されているかに応じて、リストされているユーザーへのアクセスを拒否するか、許可するよう設定できます。/etc/vsftpd/user_list
を使用してユーザーへのアクセス権限を付与する場合は、一覧にあるユーザー名が/etc/vsftpd/ftpusers
に表示され ない 必要があります。/var/ftp/
:vsftpd
が提供するファイルが含まれるディレクトリー。また、匿名ユーザー用の/var/ftp/pub/
ディレクトリーも含まれています。どちらのディレクトリーも誰でも読み取り可能ですが、root
ユーザーのみが書き込み可能です。
21.2.2.6. vsftpd 設定オプション
FTP
サーバーのカスタマイズレベルを提供しないかもしれませんが、ほとんどの管理者のニーズを満たすのに十分なオプションが提供されています。これは、機能的な制限設定およびプログラムによるエラーに制限されないということになります。
vsftpd
のすべての設定は、設定ファイル /etc/vsftpd/vsftpd.conf
により処理されます。各ディレクティブは、ファイル内の各行にあり、以下の形式に従います。
directive=value
#
)を付け、デーモンにより無視されます。
vsftpd.conf
の man ページを参照してください。vsftpd
のセキュリティー保護に関する概要は『 Red Hat Enterprise Linux 6 セキュリティーガイド』 を参照してください。
/etc/vsftpd/vsftpd.conf
内の重要なディレクティブの一覧です。vsftpd
の設定ファイル内で明示的に検出またはコメントアウトされていないすべてのディレクティブは、デフォルト値に設定されます。
21.2.2.6.1. デーモンオプション
vsftpd
デーモンの全体的な動作を制御するディレクティブの一覧です。
listen
: 有効にすると、vsftpd
はスタンドアロンモードで実行されます。つまり、デーモンはxinetd
super-server ではなく独立して起動します。Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 は、この値をYES
に設定します。vsftpd
をスタンドアロンモードで実行できるようにするには、SELinuxftpd_is_daemon
のブール値オプションを設定する必要があります。vsftpd
のデフォルトの SELinux ポリシーとの対話に関する詳細は、「vsftpd 用の SELinux ポリシー」 および ftpd_selinux(8) を参照してください。このディレクティブは、listen_ipv6
ディレクティブと併用できません。デフォルト値はNO
です。Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 では、このオプションは設定ファイルでYES
に設定されます。listen_ipv6
: 有効にすると、vsftpd
はスタンドアロンモードで実行されます。つまり、デーモンはxinetd
super-server ではなく独立して起動します。このディレクティブを使用すると、IPv6
ソケットのみをリッスンします。vsftpd
をスタンドアロンモードで実行できるようにするには、SELinuxftpd_is_daemon
のブール値オプションを設定する必要があります。vsftpd
のデフォルトの SELinux ポリシーとの対話に関する詳細は、「vsftpd 用の SELinux ポリシー」 および ftpd_selinux(8) を参照してください。このディレクティブはlisten
ディレクティブと併用できません。デフォルト値はNO
です。session_support
: 有効にすると、vsftpd
は プラグ可能な認証モジュール (PAM)を介して各ユーザーのログインセッションを維持しようとします。詳細は、Red Hat Enterprise Linux 6 Single Sign-On および Smart Cards の 『PAM(プラグ可能な認証モジュール)の使用』 と、PAM の man ページを参照してください。セッションロギングが必要ない場合は、このオプションを無効にすると、プロセスを減らし、権限が低いvsftpd
を実行することができます。デフォルト値はNO
です。
21.2.2.6.2. ログインオプションおよびアクセス制御
anonymous_enable
: 有効にすると、匿名ユーザーがログインできるようになります。ユーザー名anonymous
およびftp
が許可されます。デフォルト値はYES
です。匿名ユーザーに影響するディレクティブの一覧は、「Anonymous User Options」 を参照してください。banned_email_file
-deny_email_enable
ディレクティブがYES
に設定されている場合、このディレクティブはサーバーへのアクセスが許可されない匿名メールパスワードの一覧を含むファイルを指定します。デフォルト値は/etc/vsftpd/banned_emails
です。banner_file
: サーバーへの接続が確立されたときに表示されるテキストを含むファイルを指定します。このオプションは、ftpd_banner
ディレクティブで指定されたテキストを上書きします。このディレクティブにはデフォルト値がありません。cmds_allowed
: サーバーが許可するFTP
コマンドのカンマ区切りリストを指定します。その他のコマンドはすべて拒否されます。このディレクティブにはデフォルト値がありません。deny_email_enable
: 有効にすると、/etc/vsftpd/banned_emails
で指定された電子メールパスワードを使用する匿名ユーザーはサーバーへのアクセスを拒否します。このディレクティブで参照されるファイルの名前は、banned_email_file ディレクティブ
を使用して指定できます。デフォルト値はNO
です。ftpd_banner
- 有効にすると、このディレクティブ内で指定された文字列は、サーバーへの接続が確立されたときに表示されます。このオプションはbanner_file
ディレクティブで上書きできます。デフォルトでは、vsftpd
は標準バナーを表示します。local_enable
: 有効にすると、ローカルユーザーはシステムにログインできます。このディレクティブが想定どおりに機能するには、SELinuxftp_home_dir
のブール値オプションを設定する必要があります。vsftpd
のデフォルトの SELinux ポリシーとの対話に関する詳細は、「vsftpd 用の SELinux ポリシー」 および ftpd_selinux(8) を参照してください。デフォルト値はNO
です。Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 では、このオプションは設定ファイルでYES
に設定されます。ローカルユーザーに影響するディレクティブの一覧については、「local-User オプション」 を参照してください。pam_service_name
:vsftpd
の PAM サービス名を指定します。デフォルト値はftp
です。Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 では、このオプションは設定ファイルでvsftpd
に設定されます。tcp_wrappers
: 有効にすると、TCP ラッパーを使用してサーバーへのアクセスを付与します。FTP サーバーが複数の IP アドレスに設定されている場合は、VSFTPD_LOAD_CONF
環境変数を使用して、クライアントが要求した IP アドレスに基づいて異なる設定ファイルを読み込むことができます。デフォルト値はNO
です。Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 では、このオプションは設定ファイルでYES
に設定されます。userlist_deny
:userlist_enable
ディレクティブと併用してNO
に設定すると、ユーザー名がuserlist_file
ディレクティブで指定されたファイルに表示されない限り、すべてのローカルユーザーは拒否されます。クライアントがパスワードを要求する前にアクセスが拒否されるため、このディレクティブをNO
に設定すると、ローカルユーザーがネットワーク経由で暗号化されていないパスワードを送信するのを防ぎます。デフォルト値はYES
です。userlist_enable
: 有効にすると、userlist_file
ディレクティブで指定されたファイルに記載されているユーザーはアクセスが拒否されます。クライアントがパスワードを要求する前にアクセスが拒否されるため、ユーザーはネットワーク経由で暗号化されていないパスワードを送信することはできません。デフォルト値はNO
です。Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 では、このオプションは設定ファイルでYES
に設定されます。userlist_file
:userlist_enable
ディレクティブが有効な場合にvsftpd
が参照するファイルを指定します。デフォルト値は
です。これはインストール時に作成されます。/etc/vsftpd/user_list
21.2.2.6.3. Anonymous User Options
anonymous_enable
ディレクティブを YES
に設定する必要があります。
anon_mkdir_write_enable
-write_enable
ディレクティブとともに有効にすると、匿名ユーザーは書き込みパーミッションを持つ親ディレクトリーに新しいディレクトリーを作成できます。デフォルト値はNO
です。anon_root
: 匿名ユーザーがログインした後にvsftpd
の変更を指定します。このディレクティブにはデフォルト値がありません。anon_upload_enable
-write_enable
ディレクティブとともに有効にすると、匿名ユーザーは書き込みパーミッションを持つ親ディレクトリー内のファイルをアップロードできます。デフォルト値はNO
です。anon_world_readable_only
: 有効にすると、匿名ユーザーは誰でも読み取り可能なファイルのみをダウンロードできます。デフォルト値はYES
です。ftp_username
- 匿名のFTP
ユーザーに使用されるローカルユーザーアカウント(/etc/passwd
にリストされている)を指定します。ユーザーの/etc/passwd
で指定したホームディレクトリーは、匿名のFTP
ユーザーのルートディレクトリーです。デフォルト値は
です。ftp
no_anon_password
: 有効にすると、匿名ユーザーはパスワードを要求されません。デフォルト値はNO
です。secure_email_list_enable
: 有効にすると、匿名ログインに対して指定された電子メールパスワード一覧のみが許可されます。これは、仮想ユーザーを使用せずに、限定されたセキュリティーをパブリックコンテンツに提供する便利な方法です。/etc/vsftpd/email_passwords
に提供されたパスワードが一覧表示されていない限り、匿名ログインは回避されます。ファイル形式は、1 行に 1 つのパスワードで、最後の空白はありません。デフォルト値はNO
です。
21.2.2.6.4. local-User オプション
local_enable
ディレクティブを YES
に設定する必要があります。ユーザーがホームディレクトリーにアクセスできるようにするには、SELinux ftp_home_dir
のブール値オプションを設定する必要があります。vsftpd
のデフォルトの SELinux ポリシーとの対話に関する詳細は、「vsftpd 用の SELinux ポリシー」 および ftpd_selinux(8) を参照してください。
chmod_enable
- 有効にすると、FTP
コマンドの SITE CHMOD がローカルユーザーに許可されます。このコマンドにより、ユーザーはファイルのパーミッションを変更できます。デフォルト値はYES
です。chroot_list_enable
: 有効にすると、ログイン時にchroot_list_file
ディレクティブに指定されたファイルに記載されているローカルユーザーが chroot jail に配置されます。chroot_local_user
ディレクティブとともに有効にすると、chroot_list_file
ディレクティブで指定されたファイルに記載されているローカルユーザーは、ログイン時に chroot jail に配置され ません。デフォルト値はNO
です。chroot_list_file
:chroot_list_enable
ディレクティブがYES
に設定されている場合に、参照されるローカルユーザーの一覧を含むファイルを指定します。デフォルト値は
です。/etc/vsftpd/chroot_list
chroot_local_user
: 有効にすると、ログイン後にローカルユーザーがホームディレクトリーに変更します。デフォルト値はNO
です。chroot_local_user オプションの有効化を回避chroot_local_user
を有効にすると、特にアップロード権限を持つユーザーにとって、多くのセキュリティー問題が開きます。このため、推奨され ません。guest_enable
: 有効にすると、匿名以外のユーザーはすべて、guest
_usernameデフォルト値はNO
です。guest_username
:ゲスト
ユーザーがマップされるユーザー名を指定します。デフォルト値は
です。ftp
local_root
: ローカルユーザーがログインした後にvsftpd
の変更を指定します。このディレクティブにはデフォルト値がありません。local_umask
: ファイル作成の umask 値を指定します。デフォルト値は 8 進数形式(8 つの数字のシステム)です。これには「0」のプレフィックスが含まれます。それ以外の場合は、値は base-10 整数として処理されます。デフォルト値は077
です。Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 では、このオプションは設定ファイルで022
に設定されています。passwd_chroot_enable
-chroot_local_user
ディレクティブとともに有効にすると、vsftpd
は/etc/passwd
内の home-directory フィールドで/./
の発生に基づいてローカルユーザーを変更します。デフォルト値はNO
です。user_config_dir
: これらのユーザーの特定の設定が含まれるローカルシステムユーザーの名前を持つ設定ファイルを含むディレクトリーへのパスを指定します。ユーザーの設定ファイルのディレクティブは、/etc/vsftpd/vsftpd.conf
にあるディレクティブを上書きします。このディレクティブにはデフォルト値がありません。
21.2.2.6.5. ディレクトリーオプション
dirlist_enable
: 有効にすると、ユーザーはディレクトリー一覧を表示できます。デフォルト値はYES
です。dirmessage_enable
: 有効にすると、ユーザーがメッセージファイルのあるディレクトリーに入るたびにメッセージが表示されます。このメッセージは、現在のディレクトリーにあります。このファイルの名前はmessage_file
ディレクティブに指定されており、デフォルトでは.message
です。デフォルト値はNO
です。Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 では、このオプションは設定ファイルでYES
に設定されます。force_dot_files
: 有効にすると、.
および..
ファイルを除き、ドット(.
)で始まるファイルがディレクトリー一覧に表示されます。デフォルト値はNO
です。hide_ids
: これを有効にすると、各ファイルのユーザーおよびグループとして、すべてのディレクトリー一覧がftp
と表示されます。デフォルト値はNO
です。message_file
:dirmessage_enable
ディレクティブの使用時にメッセージファイルの名前を指定します。デフォルト値は
です。.message
text_userdb_names
: 有効にすると、UID エントリーおよび GID エントリーの代わりにテキストユーザー名およびグループ名が使用されます。このオプションを有効にすると、サーバーのパフォーマンスに悪影響を及ぼす可能性があります。デフォルト値はNO
です。use_localtime
: 有効にすると、ディレクトリーの一覧は、GMT ではなくコンピューターのローカルタイムを表示します。デフォルト値はNO
です。
21.2.2.6.6. ファイル転送オプション
download_enable
: 有効にすると、ファイルのダウンロードが許可されます。デフォルト値はYES
です。chown_uploads
: 有効にすると、匿名ユーザーによってアップロードされるすべてのファイルは、chown_username
ディレクティブで指定されたユーザーが所有します。デフォルト値はNO
です。chown_username
:chown_uploads
ディレクティブが有効な場合に匿名でアップロードされたファイルの所有権を指定します。デフォルト値は
です。root
write_enable
- 有効にすると、ファイルシステムが変更できるFTP
コマンド(DELE、R
NFRSTOR
など)。デフォルト値はNO
です。Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 では、このオプションは設定ファイルでYES
に設定されます。
21.2.2.6.7. ロギングのオプション
vsftpd
のロギング動作に影響するディレクティブの一覧です。
dual_log_enable
:xferlog_enable
と併用すると、
は 2 つのファイルを同時に書き込みます。vsftpd
wu-ftpd
-xferlog_file
ディレクティブ(デフォルトでは/var/log/xferlog
)で指定された標準のvsftpd ログファイル
(デフォルトでは/var/log/vsftpd.log
)です。デフォルト値はNO
です。log_ftp_protocol
:xferlog_enable
とともに有効にされ、xferlog_std_format
がNO
に設定されていると、FTP
コマンドおよび応答がすべてログに記録されます。このディレクティブはデバッグに役立ちます。デフォルト値はNO
です。syslog_enable
-xferlog_enable
と併用すると、通常はvsftpd
_log_file/var/log/vsftpd.log
)で指定された標準の vsftpd ログファイルに書き込まれるすべてのロギングがFTPD
ファシリティー下でシステムロガーに送信されます。デフォルト値はNO
です。vsftpd_log_file
:vsftpd
ログファイルを指定します。このファイルを使用するには、xferlog_enable
を有効にし、xferlog_std_format
をNO
に設定するか、xferlog_std_format
がYES
に設定されている必要があります。syslog_enable
がYES
に設定されている場合には、このディレクティブで指定されたファイルの代わりにシステムログが使用されることに注意してください。デフォルト値は
です。/var/log/vsftpd.log
xferlog_enable
: 有効にすると、vsftpd
は接続(vsftpd
形式のみ)およびファイル転送情報をvsftpd_log_file
ディレクティブ(デフォルトでは/var/log/vsftpd.log
)に指定したログファイルに記録します。xferlog_std_format
がYES
に設定されている場合、ファイル転送情報はログに記録されますが、接続はログに記録されず、代わりにxferlog_file
(デフォルトでは/var/log/xferlog
)で指定されたログファイルが使用されます。dual_log_enable
がYES
に設定されている場合、ログファイルとログ形式の両方が使用されることに注意してください。デフォルト値はNO
です。Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 では、このオプションは設定ファイルでYES
に設定されます。xferlog_file
-wu-ftpd
- 互換のログファイルを指定します。このファイルを使用するには、xferlog_enable
を有効にし、xferlog_std_format
をYES
に設定する必要があります。dual_log_enable
がYES
に設定されている場合にも使用されます。デフォルト値は
です。/var/log/xferlog
xferlog_std_format
:xferlog_enable
と併用すると、wu-ftpd
- 互換の file-transfer ログのみが、xferlog_file
ディレクティブ(デフォルトでは/var/log/xferlog
)に指定されたファイルに書き込まれます。このファイルではファイル転送のみが記録され、サーバーへの接続はログに記録されないことに注意してください。デフォルト値はNO
です。Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 では、このオプションは設定ファイルでYES
に設定されます。
wu-ftpd
FTP
サーバーに書き込まれたログファイルとの互換性を維持するために、Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;Linux 6nbsp;6 では xferlog_std_format
ディレクティブが YES
に設定されます。ただし、この設定は、サーバーへの接続がログに記録されないことを意味します。vsftpd
形式の両方のログ接続と wu-ftpd
- 互換のファイル転送ログを維持するには、nmy _log_enable
を YES
に設定します。wu-ftpd
- 互換のファイル転送ログを維持することが重要でない場合は、xferlog_std_format
を NO
に設定し、ハッシュ記号(「#」)で行をコメント化するか、行を完全に削除します。
21.2.2.6.8. ネットワークオプション
vsftpd
がネットワークと対話する方法を定義するディレクティブの一覧です。
accept_timeout
: パッシブモードを使用して接続を確立するクライアントの時間を指定します。デフォルト値は60
です。anon_max_rate
: 匿名ユーザーのデータ転送速度を 1 秒あたりのバイト単位で指定します。デフォルト値は0
で、転送レートは制限しません。connect_from_port_20
: 有効にすると、vsftpd
はアクティブモードのデータ転送中にサーバーでポート20
を開くのに十分な権限で稼働します。このオプションを無効にすると、vsftpd
は少ない権限で実行できますが、一部のFTP
クライアントと互換性がなくなる可能性があります。デフォルト値はNO
です。Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 では、このオプションは設定ファイルでYES
に設定されます。connect_timeout
: アクティブモードを使用するクライアントがデータ接続に応答する最大時間を指定します(秒単位)。デフォルト値は60
です。data_connection_timeout
: データ転送が停止できる最大時間(秒単位)を指定します。トリガーされると、リモートクライアントへの接続が閉じられます。デフォルト値は300
です。ftp_data_port
:connect_from_port_20
がYES
に設定されている場合に、アクティブなデータ接続に使用するポートを指定します。デフォルト値は20
です。idle_session_timeout
: リモートクライアントからのコマンド間の最大時間を指定します。トリガーされると、リモートクライアントへの接続が閉じられます。デフォルト値は300
です。listen_address
:vsftpd
がネットワーク接続をリッスンするIP
アドレスを指定します。このディレクティブにはデフォルト値がありません。vsftpd の複数コピーの実行異なるIP
アドレスを提供するvsftpd
の複数のコピーを実行する場合は、vsftpd
デーモンの各コピー用の設定ファイルに、このディレクティブにはそれぞれ異なる値を指定する必要があります。マルチホームFTP
サーバーの詳細は、「vsftpd の複数コピーの起動」 を参照してください。listen_address6
:listen_ipv6
がYES
に設定されている場合にvsftpd
がネットワーク接続をリッスンするIPv6
アドレスを指定します。このディレクティブにはデフォルト値がありません。vsftpd の複数コピーの実行異なるIP
アドレスを提供するvsftpd
の複数のコピーを実行する場合は、vsftpd
デーモンの各コピー用の設定ファイルに、このディレクティブにはそれぞれ異なる値を指定する必要があります。マルチホームFTP
サーバーの詳細は、「vsftpd の複数コピーの起動」 を参照してください。listen_port
:vsftpd
がネットワーク接続をリッスンするポートを指定します。デフォルト値は21
です。local_max_rate
: サーバーにログインするローカルユーザーに対してデータを転送する最大レートを指定します(バイト毎秒単位)。デフォルト値は0
で、転送レートは制限しません。max_clients
: スタンドアロンモードで実行する際にサーバーに接続可能な同時クライアントの最大数を指定します。追加のクライアント接続により、エラーメッセージが生成されます。デフォルト値は0
で、接続に制限されません。max_per_ip
: 同じソースIP
アドレスから接続できるクライアントの最大数を指定します。デフォルト値は50
です。値が0
の場合は、制限をオフにします。pasv_address
: Network Address Translation (NAT)ファイアウォールの背後にあるサーバーのパブリック向けIP
アドレスのIP
アドレスを指定します。これにより、vsftpd
が passive-mode 接続の正しいリターンアドレスを渡します。このディレクティブにはデフォルト値がありません。pasv_enable
- 有効にすると、passive-mode 接続が許可されます。デフォルト値はYES
です。pasv_max_port
- パッシブモード接続用にFTP
クライアントに送信される可能な最大ポートを指定します。この設定は、ファイアウォールルールの作成を容易にするために、ポート範囲を制限するために使用されます。デフォルト値は0
で、最も高い passive-port 範囲の制限はありません。値は65535
を超えることはできません。pasv_min_port
- パッシブモード接続用にFTP
クライアントに送信されるポートの下限を指定します。この設定は、ファイアウォールルールの作成を容易にするために、ポート範囲を制限するために使用されます。デフォルト値は0
で、最小の passive-port 範囲の制限はありません。値は1024
未満にすることはできません。pasv_promiscuous
: 有効な場合、データ接続はチェックされず、それらが同じIP
アドレスから取得されていることを確認します。この設定は、特定のトンネリングのタイプにのみ役立ちます。pasv_promiscuous オプションを有効にしないパッシブモードの接続がデータ転送を開始するコントロール接続と同じIP
アドレスから送信されることを検証する重要なセキュリティー機能を無効にするため、絶対に必要な場合を除き、このオプションを有効にしないでください。デフォルト値はNO
です。port_enable
: 有効にすると、アクティブモードの接続が許可されます。デフォルト値はYES
です。
21.2.2.6.9. セキュリティーオプション
vsftpd
のセキュリティー向上に使用できるディレクティブの一覧です。
isolate_network
: 有効にすると、vsftpd
はCLONE_NEWNET
コンテナーフラグを使用して、権限のないプロトコルハンドラープロセスを分離して、任意に connect() を呼び出しないようにし、代わりにソケットの特権プロセスを要求する必要があります(port_promiscuous
オプションを無効にする必要があります)。デフォルト値はYES
です。isolate
: 有効にすると、vsftpd
はCLONE_NEWPID
およびCLONE_NEWIPC
コンテナーフラグを使用してプロセスを IPC および PID 名前空間に分離し、それらのプロセスが互いに対話できないようにします。デフォルト値はYES
です。ssl_enable
:vsftpd
のSSL
のサポートを有効にします(TLS
を含む)。SSL は認証と後続のデータ転送の両方に使用されます。ssl_enable
がYES
に設定されている場合に限り、その他のSSL
関連のオプションが適用されます。デフォルト値はNO
です。allow_anon_ssl
: 匿名ユーザーがセキュアなSSL
接続を使用することを許可するかどうかを指定します。デフォルト値はNO
です。require_cert
: 有効な場合は、クライアント証明書を提示するためにすべてのSSL
クライアント接続が必要になります。デフォルト値はNO
です。
21.2.3. その他のリソース
vsftpd
設定に関する詳しい情報は、以下の資料を参照してください。
21.2.3.1. インストールされているドキュメント
/usr/share/doc/vsftpd-version-number/
ディレクトリー:TUNING
ファイルには基本的なパフォーマンス調整のヒントが含まれ、SECURITY/
ディレクトリーにはvsftpd
が使用するセキュリティーモデルに関する情報が含まれます。vsftpd
: 関連する man ページ: デーモンおよび設定ファイルに関する man ページは多数あります。以下は、重要な man ページの一部です。- サーバーアプリケーション
- vsftpd(8) -
vsftpd
で利用可能なコマンドラインオプションを説明しています。
- 設定ファイル
- vsftpd.conf(5) -
vsftpd
の設定ファイルで利用可能なオプションの詳細な一覧が含まれます。 - hosts_access(5) - hosts.
allow および
のhosts
.denyTCP
ラッパーの設定ファイルで利用可能な形式とオプションを説明します。
- SELinux とのインタラクション
- man ftpd_selinux:
ftpd
プロセスを管理する SELinux ポリシーと、SELinux ラベルの割り当て方法、およびブール値セットを説明します。
21.2.3.2. オンラインドキュメント
- vsftpd および FTP 全般について
- http://vsftpd.beasts.org/:
vsftpd
プロジェクトページは、最新のドキュメントやソフトウェアの作成者の連絡先に最適な場所です。 - http://slacksite.com/other/ftp.html: この Web サイトでは、アクティブモードと passive-mode
FTP
の相違点を簡単に説明します。
- Red Hat Enterprise Linux のドキュメンテーション
- Red Hat Enterprise Linux 6 Security-Enhanced Linux - 『Security-Enhanced Linux』 for Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 では、SELinux の基本原則と、Apache HTTP Server、Postfix、PostgreSQL、OpenShift などのさまざまなサービスで SELinux を設定および使用する方法が詳細に説明されています。また、SELinux アクセスパーミッションを systemd が管理するシステムサービス用に設定する方法も説明しています。
- Red Hat Enterprise Linux 6 セキュリティーガイド: Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;Linux Red Hat Enterprise Linux 6nbsp;6 の 『セキュリティーガイド』 は、ユーザーおよび管理者がローカルおよびリモートの侵入、悪用、悪意のあるアクティビティーに対してワークステーションおよびサーバーを保護するプロセスとプラクティスを学習する際に役立ちます。また、重大なシステムサービスを保護する方法についても説明しています。
- 関連する RFC ドキュメント
- 『RFC 0959:』 IETF からの
FTP
プロトコルの元の Request for Comments (RFC) - 『RFC 1123』: 短い
FTP
- 関連のセクションで、RFC 0959 を拡張、明確化します。 - 『RFC 2428:』
IPv6
サポート。
21.3. プリンターの設定
cupsd.conf
の man ページには、CUPS サーバーの設定が記載されています。これには、SSL
サポートを有効にするためのディレクティブが含まれています。ただし、CUPS では使用されるプロトコルバージョンのコントロールが許可されません。『設定から SSLv3 を無効にできないコンポーネントに対する POODLE SSLv3.0 脆弱性(CVE-2014-3566)の解決で説明されて』 いる脆弱性のため、Red Hat は、セキュリティーのためにこれに依存しないことを推奨します。stunnel を使用してセキュアなトンネルを提供し、SSLv3
を無効にすることが推奨されます。stunnel の使用方法は、『 Red Hat Enterprise Linux 6 セキュリティーガイド』 を参照してください。
21.3.1. プリンター設定ツールの起動
図21.3 プリンター設定ウィンドウ

[D]
21.3.2. プリンター設定の開始
- プリンター設定ツールを起動します( 「プリンター設定ツールの起動」を参照)。
- Authenticate ダイアログボックスで、root ユーザーのパスワードを入力して確認します。
- プリンターの接続タイプを選択し、右側エリアでその詳細を記入します。
21.3.3. ローカルプリンターの追加
新規プリンターダイアログを
開きます( 「プリンター設定の開始」を参照)。- デバイスが自動的に表示されない場合は、左側の一覧でプリンターを接続するポートを選択します( Serial Port #1 や LPT #1など)。
- 右側で、接続プロパティーを入力します。
- Otherの場合
- URI (例: file:/dev/lp0)
- Serial Portの場合
- 通信速度パリティーデータビットフロー制御
図21.4 ローカルプリンターの追加
[D] - プリンターのモデルを選択します。詳しくは 「プリンターモデルの選択と完了」 を参照してください。
21.3.4. AppSocket/HP JetDirect プリンターの追加
新規プリンターダイアログを
開きます( 「プリンター設定ツールの起動」を参照)。- 左側の一覧で→ の順に選択します。
- 右側で、接続設定を入力します。
- Hostname
- プリンターホスト名または IP アドレス。
- ポート番号
- 印刷ジョブをリッスンするプリンターポート (デフォルトは
9100
)
図21.5 JetDirect プリンターの追加
[D] - プリンターのモデルを選択します。詳しくは 「プリンターモデルの選択と完了」 を参照してください。
21.3.5. IPP プリンターの追加
新規プリンターダイアログを
開きます( 「プリンター設定の開始」を参照)。- 左側のデバイスの一覧で、and または を選択します。
- 右側で、接続設定を入力します。
- ホスト
- IPP プリンターのホスト名。
- Queue
- 新規のキューに与えるキューの名前です (このボックスを空白のままにすると、デバイスノードに基づいた名前が使用されます)。
図21.6 IPP プリンターの追加
[D] - プリンターのモデルを選択します。詳しくは 「プリンターモデルの選択と完了」 を参照してください。
21.3.6. LPD/LPR Host or Printer の追加
新規プリンターダイアログを
開きます( 「プリンター設定の開始」を参照)。- 左側のデバイス一覧で、→ の順に選択します。
- 右側で、接続設定を入力します。
- Host
- LPD/LPR プリンターまたはホストのホスト名必要に応じて、をクリックし、LSD ホスト上のキューを検索します。
- Queue
- 新規のキューに与えるキューの名前です (このボックスを空白のままにすると、デバイスノードに基づいた名前が使用されます)。
図21.7 LPD/LPR プリンターの追加
[D] - プリンターのモデルを選択します。詳しくは 「プリンターモデルの選択と完了」 を参照してください。
21.3.7. Samba (SMB) プリンターの追加
root
で以下のコマンドを実行してこれを実行できます。
yum install samba-client
新規プリンターダイアログを
開きます( 「プリンター設定の開始」を参照)。- 左側の一覧で、→ の順に選択します。
- smb:// フィールドに SMB アドレスを入力します。computer name/printer share の形式を使用します。図21.8「SMB プリンターの追加」 では、コンピューター名 は dellbox で、プリンター共有 は r2 です。
図21.8 SMB プリンターの追加
[D] - 利用できるワークグループやドメインを確認するには、をクリックします。特定のホストのキューだけを表示させるには、ホスト名 (NetBios 名) を入力して、 をクリックします。
- 以下のオプションのいずれかを選択します。
- 認証が必要な場合にはプロンプトユーザー (ユーザー名およびパスワードが必要)は、ドキュメントを印刷する際にユーザーから収集されます。
- ここで認証の詳細 を設定する : 認証情報を提供するため、後で認証情報は必要ありません。ユーザー 名 フィールドには、プリンターにアクセスするユーザー名を入力します。このユーザーは、SMB システムで存在している必要があり、ユーザーはプリンターへのアクセス権限を持っている必要があります。デフォルトのユーザー名は通常、Windows サーバーでは
guest
、または Samba サーバーの場合はnobody
です。
- ユーザー名 フィールドに指定したユーザーの パスワード (必要な場合)を 入力 します。パスワードを選択する際には注意してください。Samba プリンターのユーザー名とパスワードは、root および lpd(Linux Printing Daemon)が読み取り可能な暗号化されていないファイルとしてプリンターサーバーに保存されます。そのため、プリンターサーバーに root アクセスを持つ他のユーザーは、Samba プリンターへのアクセスに使用するユーザー名とパスワードを表示できます。したがって、Samba プリンターにアクセスするためのユーザー名とパスワードを選択する場合は、ローカルの Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux システムへのアクセスに使用するパスワードとは異なるパスワードを選択することが推奨されます。Samba プリンターサーバーで共有するファイルがある場合も、印刷キューで使用されるパスワードとは異なるパスワードを使用することが推奨されます。
- プリンターのモデルを選択します。詳しくは 「プリンターモデルの選択と完了」 を参照してください。
21.3.8. プリンターモデルの選択と完了
- ドライバーの自動検知が失敗すると、ウィンドウが表示されます。以下のオプションのいずれかを選択します。
- データベースからプリンターを選択( Select a Printer from database ): システムは、Makes の一覧から選択したプリンターの製造元に基づいてドライバーを選択します。ご使用のプリンターのモデルが一覧にない場合は、Generic を選択します。
- PPD ファイルを提供( Provide PPD file )- システムは、提供されている PPD(PostScript Printer Description)ファイルを使用してインストールを行います。PPD ファイルは製造元が通常提供するプリンターに同梱されています。PPD ファイルが利用可能な場合は、このオプションを選択し、オプションの詳細の下にあるブラウザバーを使用して、PPD ファイルを選択できます。
- ダウンロードするプリンタードライバーを検索し ます。製造元とプリンターのモデルを Make and model フィールドに入力し、OpenPrinting.org で適切なパッケージを検索します。
図21.9 プリンターブランドの選択
[D] - 上で選択した内容により、以下に表示される詳細は異なります。
- データベースからプリンターを選択 オプションの場合は、プリンター ブランドが表示されます。
- PPD ファイルを提供 オプションの場合は、PPD ファイル の場所を指定します。
- ダウンロードするプリンタードライバーの検索オプションに使用するプリンター 製造元とモデル
- 選択したオプションが該当する場合は、図21.10「プリンターモデルの選択」 のようなウィンドウが表示されます。左側の Models 列で該当するモデルを選択します。プリンタードライバーの選択右側で、推奨される印刷ドライバーが自動的に選択されています。ただし、別の利用可能なドライバーを選択することもできます。ただし、別の利用可能なドライバーを選ぶことも可能です。ローカルプリンターはコンピューターに直接接続されているため、プリンターに送信されるデータを処理するにはプリンタードライバーが必要です。
図21.10 プリンターモデルの選択
[D] 説明
プリンター の下の、プリンター名 フィールドに一意のプリンター名を 入力 します。プリンター名には、文字、数字、ダッシュ(-)、およびアンダースコア(_)を使用できます。スペースを含めること はできません。また、説明 フィールドおよび Location フィールドを使用して、さらにプリンター情報を追加することもできます。どちらもオプションで、スペースを入れることは可能です。図21.11 プリンターの設定
[D]- 設定が正しければ、をクリックして、ご使用のプリンター設定を確認し、印刷キューを追加できます。 をクリックすると、プリンター設定を変更できます。
- 変更が適用されると、テストページの印刷を行うダイアログボックスが表示されます。「テストページの印刷」 の記載通りに、テストページを後で印刷することもできます。をクリックするとテストページが印刷されます。
21.3.9. テストページの印刷
- 印刷( Printing )ウィンドウでプリンターを右クリックし、 をクリックします。
- プロパティーウィンドウで、左側の 設定 を クリックします。
- 表示されている Settings タブで、テストページの印刷( )ボタンをクリックします。
21.3.10. 既存プリンターの修正
21.3.10.1. 設定のページ
図21.12 設定ページ

[D]
21.3.10.2. ポリシーページ
21.3.10.2.1. プリンターの共有
図21.13 ポリシーページ

[D]
21.3.10.2.2. アクセス制御のページ
図21.14 アクセス制御のページ

[D]
21.3.10.2.3. プリンターオプションのページ
図21.15 プリンターオプションのページ

[D]
21.3.10.2.4. ジョブオプションページ
図21.16 ジョブオプションページ

[D]
21.3.10.2.5. Ink/Toner Levels ページ
図21.17 Ink/Toner Levels ページ

[D]
21.3.10.3. 印刷ジョブの管理
図21.18 GNOME 印刷の状態

[D]
例21.11 lpstat -o 出力の例
$ lpstat -o
Charlie-60 twaugh 1024 Tue 08 Feb 2011 16:42:11 GMT
Aaron-61 twaugh 1024 Tue 08 Feb 2011 16:42:44 GMT
Ben-62 root 1024 Tue 08 Feb 2011 16:45:42 GMT
Authenticated
に変更し、root 認証を強制します。
sample.txt
を出力します。印刷フィルターはファイルのタイプを決定し、プリンターが理解できる形式に変換します。
21.3.11. その他のリソース
21.3.11.1. インストールされているドキュメント
- man lp
- コマンドラインからのファイルの印刷を可能にする lp コマンドの man ページです。
- man lpr
- コマンドラインからのファイルの印刷を可能にする lpr コマンドの man ページです。
- man cancel
- 印刷キューから印刷ジョブを削除するためのコマンドラインユーティリティーの man ページです。
- man mpage
- 1 枚の用紙に複数ページを印刷するためのコマンドラインユーティリティーの man ページです。
- man cupsd
- CUPS プリンターデーモンの man ページです。
- man cupsd.conf
- CUPS プリンターデーモン設定ファイルの man ページです。
- man classes.conf
- CUPS のクラス設定ファイルの man ページです。
- man lpstat
- クラス、ジョブ、プリンターのステータス情報を表示する lpstat コマンドの man ページです。
21.3.11.2. 便利な Web サイト
- http://www.linuxprinting.org/
- 『GNU/Linux 印刷には』、Linux での印刷に関する多くの情報が含まれています。
- http://www.cups.org/
- CUPS に関するドキュメント、FAQ、および newsgroups。
第22章 ntpd を使用した NTP 設定
22.1. NTP の概要
NTP
サーバーは、「協定世界時」 (UTC)を提供します。これらのタイムサーバーに関する情報は、『www.pool.ntp.org』 を参照してください。
NTP
はユーザー空間で実行しているデーモンにより実装されます。Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 のデフォルトの NTP
デーモンは ntpd
です。
rtc (4)
および hwclock(8
)を参照してください。システムクロックは、さまざまなクロックソースを使用して時間を維持します。通常、Time Stamp Counter (TSC)が使用されます。TSC は、最後にリセットされた時点からのサイクル数を計測する CPU レジスターです。TSC は、それが最後にリセットされてからのサイクル数をカウントする CPU レジスターです。これは非常に高速で精度が高く、割り込みがありません。RTC が保持する時間は、気温の変化により、1 カ月あたり最大 5 分ごとに実際の時間から離れます。RTC が維持している時間は実際の時間と比べて、温度変化によりひと月で最大 5 分間の誤差を生じます。ntpd
がシステムクロックを同期している場合には、カーネルは自動的に RTC を 11 分ごとに更新します。
22.2. NTP Strata (階層)
NTP
サーバーは、時間信号のソースとなる原子時計からの同期距離によって分類されます。サーバーは、上は 1 から下は 15 までの stratum (階層) に分類されていると考えられます。このため、特定の層に言及する際は、stratum という言葉が使用されます。アトミッククロックはソースである Stratum 0 と呼ばれます。ただし、インターネットでは Stratum 0 パケットが送信されず、すべての stratum 0 アトミッククロックは stratum 1 と呼ばれるサーバーにアタッチされます。これらのサーバーは、Stratum 1としてマークされたパケットを送信します。stratum n
とマークされたパケットで同期されるサーバーは、次の下位の stratum に属し、そのパケットを stratum n+1
とマークします。stratum n のマークがついているパケットで同期されるサーバーは、その次に下位の stratum に所属し、パケットを stratum n+1 とマークします。Stratum 16 という名称は、サーバーが現在信頼できるタイムソースと同期していないことを意味します。
NTP
クライアントはそれよりも下位の stratum にあるシステムのサーバーとして機能することに注意してください。
NTP
Strata(階層)のサマリーです。
- Stratum 0:
- 原子時計と無線および GPS による信号送信
- GPS (全地球測位システム)
- 携帯電話システム
- 低周波無線送信 WWVB (米国コロラド州)、JJY-40 および JJY-60 (日本)、DCF77 (ドイツ)、および MSF (英国)
これらの信号は専用デバイスで受信可能で、通常は RS-232 で組織全体またはサイト全体のタイムサーバーとして使用されるシステムに接続されます。 - Stratum 1:
- 電波時計、GPS 時計、または原子時計に接続しているコンピューター
- Stratum 2
- stratum 1 から読み取り、下位の strata に提供
- Stratum 3:
- stratum 2 から読み取り、下位の strata に提供
- Stratum n+1:
- stratum n から読み取り、下位の strata に提供
- Stratum 15:
- stratum 14 から読み取り、これが最下位の stratum になります。
22.3. NTP の概要
NTP
のバージョンは、RFC 1305 Network Time Protocol(Version 3)Specification, Implementation and Analysis and 『RFC 5905 Network Time Protocol Version』4: Protocol and Algorithms Specification で説明されています。
NTP
を実装すると、10 秒以下の正確性が達成できます。インターネット上では、数十ミリ秒の正確性の維持は普通のことです。ローカルエリアネットワーク (LAN) 上では、1 ミリ秒の正確性は理想的な条件下では可能です。これは、クロックのドリフトを考慮して修正され、以前の、シンプルな時間プロトコルシステムで行われていないためです。64 ビットのタイムスタンプを使用することにより、233 ピコ秒の解像度が得られます。ここではタイムスタンプの最初の 32 ビットが秒に使われ、次の 32 ビットが 1 秒未満に使われます。
NTP
は、1900 年 1 月 1 日の GMT 午前 0 分からの経過時間を秒数で表します。秒のカウントには 32 ビットが使用されます。これは、時間が 2036 で 「ロールオーバー」 されることを意味します。ただし、NTP
はタイムスタンプ間の差異で機能するため、タイムプロトコルの他の実装と同じレベルの問題はありません。誤差が 68 年以内のハードウェアクロックが起動時に利用可能であれば、NTP
は正確に現在の日時を解釈します。NTP4
仕様は、「Era Number」 および 「Era Offset」 を提供します。このセットを使用すると、68 年を超える時間の長さを扱う場合にソフトウェアをより堅牢にすることができます。これは Unix 年の 2038 年問題と混同しないようにしてください。
NTP
プロトコルは、正確性を高めるために追加情報を提供します。4 つのタイムスタンプを使うことで、往復時間とサーバー応答時間の計算が可能になります。NTP
クライアントとしての役割でシステムが参照時間サーバーと同期するために、パケットは 「元のタイムスタンプ」 で送信されます。パケットが到達すると、タイムサーバーは 「受信タイムスタンプ」 を追加します。日時情報の要求を処理した後、パケットの返信前に 「転送タイムスタンプ」 が追加されます。返信パケットが NTP
クライアントに届くと、「受信タイムスタンプ」 が生成されます。クライアントはこれで往復時間が計算でき、処理時間を差し引くことで実際の移動時間が導き出されます。送信時間と受信時間が同じだと仮定すると、NTP
データを受信する際の 1 回の移動の遅延が計算されます。正式な NTP
アルゴリズムは、ここで示されているものよりもはるかに複雑です。
ntpd
が時間と決定する時間の違いを決定します。システムクロックは、使用されているカウンターの頻度を変更することで、このオフセットを減らすために、最大で 0.5ms のレートで調整されます。この方法を使用してクロックを 1 秒で調整するには、最低 2000 秒かかります。この方法でクロックを 1 秒調整するには、少なくとも 2000 秒かかります。クロックの時間オフセットが 128ms を超える場合(デフォルト設定)、ntpd
はクロックの転送または後方を 「ステップ」 できます。システムののタイムオフセットが 1000 ミリ秒を超える場合は、ユーザーまたはインストールスクリプトで手動の調整を行う必要があります。2章日付と時刻の設定を参照してください。-g
オプションを ntpd コマンドに指定すると(デフォルトで使用)、システム起動時のオフセットは修正されますが、通常の操作中に修正されるオフセットは最大 1000 秒までです。
-g
オプションとは関係しません)。-x
オプションを使用してステップの制限を 0.128s から 600s に増やすと、クロック制御に異なる方法が使用される必要があるため、マイナス面があります。カーネルのクロック規範が無効になり、クロックの正確性にマイナスの影響が出る可能性があります。-x
オプションは、/etc/sysconfig/ntpd
設定ファイルに追加できます。
22.4. 誤差ファイルの概要
ntpd
が計算して、誤差ファイルは置換されます。誤差ファイルは更新されるのではなく置換されるので、ntpd
が書き込みパーミッションのあるディレクトリーに格納される必要があります。
22.5. UTC、タイムゾーン、および DST
NTP
は完全に UTC(協定世界時)であるため、タイムゾーンと DST(DST)はシステムがローカルで適用します。/etc/localtime
ファイルは、/usr/share/zoneinfo
のコピー、または へのシンボリックリンクです。RTC は、/etc/adjtime
の 3 行目に指定してあるとおり、ローカルタイムまたは UTC になります。これは、RTC クロックの設定方法を示す LOCAL または UTC のいずれかです。system-config-date グラフィカル設定ツールの System Clock Uses UTC チェックボックスを使用して、この設定を簡単に変更できます。そのツールの使用方法は、2章日付と時刻の設定 を参照してください。夏時間を変更する際には、各種の問題を避けるために RTC を UTC で実行することが推奨されます。
22.6. NTP の認証オプション
NTPv4
は、公開非対称暗号をベースとしながら対称鍵暗号にも対応している Autokey Security Architecture のサポートが追加されました。Autokey セキュリティーアーキテクチャーについては、『RFC 5906 Network Time Protocol Version 4: Autokey Specification』 で説明されています。ntpd
の認証オプションとコマンドについては、ntp_auth(5)
の man ページで説明しています。
NTP
パケットを送信することで、サービスを中断できます。NTP
サーバーのパブリックプールを使用するシステムでは、/etc/ntp.conf
のパブリック NTP
サーバー一覧に 4 つ以上の NTP
サーバーを記載することで、このリスクが軽減されます。1 つのタイムソースのみが危険にさらされるか、またはなりすましを受けた場合、ntpd
はそのソースを無視します。リスク評価を実行し、不正確な時間がアプリケーションおよび組織に及ぼす影響を検討してください。内部のタイムソースがある場合は、NTP
パケットが配布されるネットワークを保護する手段を検討してください。リスク評価を実行して、リスクを許容でき、アプリケーションへの影響が最小限であると判断した場合は、認証を使わないことを選択することもできます。
ntp.conf
ファイルの disable auth ディレクティブを使用して認証を無効にできます。別の方法では、SHA1 または MD5 シンメトリックキーを使って認証を設定するか、Autokey スキームを使用して公開 (非対称) キー暗号法で認証を設定する必要があります。非対称暗号法の Autokey スキームは、ntp_auth(
8)man ページで、キーの生成については ntp-keygen(8
)で説明されています。対称鍵暗号を実装するには、キー
オプションの説明を 「鍵を使った対称認証の設定」 を参照してください。
22.7. 仮想マシン上での時間管理
kvm-clock
です。『仮想 『化ホスト設定および 『ゲストインストールガイド』の「KVM ゲストタイミング管理』 」の章を参照』 してください。
22.8. うるう秒の概要
NTP
は保留中のうるう秒についての情報を転送し、これらを自動的に適用するので、この発表が重要となるのは、Stratum 1 サーバーの管理者にのみ重要です。
22.9. ntpd 設定ファイルについて
ntpd
デーモンは、システム起動時またはサービスの再起動時に設定ファイルを読み取ります。このファイルのデフォルトの場所は /etc/ntp.conf
で、以下のコマンド入力して確認することができます。
~]$ less /etc/ntp.conf
設定コマンドについては、本章の後半で簡単に説明しています。また、ntp.conf(5)
man ページで詳細に詳細を説明します。「NTP の設定」
- driftfile エントリー
- drift ファイルへのパスが指定されていると、Red Hat Enterprise Linuxnbsp;Hat Enterprise Red Hat Enterprise Linuxnbsp;Linux のデフォルトエントリーは以下のようになります。
driftfile /var/lib/ntp/drift
これを変更する場合は、ディレクトリーがntpd
で書き込み可能となっていることを確認してください。ファイルには、システムもしくはサービス起動時に毎回システムクロックの周波数を調整する値が含まれます。詳細情報は、誤差ファイルの概要 を参照してください。 - アクセス制御エントリー
- 次の行は、デフォルトのアクセス制御制限を設定します。
restrict default kod nomodify notrap nopeer noquery restrict -6 default kod nomodify notrap nopeer noquery
kod
オプションは、不要なクエリーを減らすために 「Kiss-o'-death」 パケットを送信することを意味します。nomodify
オプションは、設定に変更が加えられないようにします。notrap
オプションは、ntpdc
制御メッセージプロトコルトラップを防ぎます。nopeer
オプションは、ピア関連付けが形成されないようにします。noquery
オプションは、ntpq
およびntpdc
クエリーの応答を防ぎますが、タイムクエリーは除外されます。-6
オプションは、IPv6
アドレスの前に必要になります。127.0.0.0/8
範囲内のアドレスは、さまざまなプロセスまたはアプリケーションで必要になることがあります。上記の "restrict default" 行は明示的に許可されていないすべてのものへのアクセスを禁止するため、IPv4
およびIPv6
の標準ループバックアドレスへのアクセスは以下の行で許可されます。# the administrative functions. restrict 127.0.0.1 restrict -6 ::1
別のアプリケーションで特に必要とされる場合は、アドレスはすぐ下に追加できます。-6
オプションは、IPv6
アドレスの前に必要になります。ローカルネットワーク上のホストは、上記の "restrict default" 行のために許可されません。これを変更するには、たとえば192.0.2.0/24
ネットワークからのホストが時間および統計情報のみをクエリーできるようにするには、以下の形式の行が必要になります。restrict 192.0.2.0 mask 255.255.255.0 nomodify notrap nopeer
特定のホスト(例:192.0.2.250/32
)からの無制限のアクセスを許可するには、以下の形式の行が必要になります。restrict 192.0.2.250
指定がない場合は、255.255.255.255
のマスクが適用されます。制限コマンドは、ntp_acc(5)
man ページで説明されています。 - 公開サーバーエントリー
- デフォルトでは、Red Hat Enterprise 6.5 では
ntp.conf
ファイルに 4 つの公開サーバーエントリーが含まれます。server 0.rhel.pool.ntp.org iburst server 1.rhel.pool.ntp.org iburst server 2.rhel.pool.ntp.org iburst server 3.rhel.pool.ntp.org iburst
以前のマイナーリリースからアップグレードし、/etc/ntp.conf
ファイルを変更した場合には、Red Hat Enterprise Linux 6.5 へのアップグレードで新しいファイル/etc/ntp.conf.rpmnew
が作成され、既存の/etc/ntp.conf
ファイルは変更されません。 - ブロードキャストマルチキャストサーバーエントリー
- デフォルトでは、
ntp.conf
ファイルにはコメントアウトされた例がいくつか含まれています。これらは見ればすぐにわかります。特定のコマンド 「NTP の設定」 の説明を参照してください。必要に応じて、例のすぐ下にコマンドを追加します。
DHCP
クライアントプログラムである dhclient が DHCP
サーバーから NTP
サーバーの一覧を受信したら、ntp.conf
に追加され、サービスを再起動します。この機能を無効にするには、PEERNTP=no を /etc/sysconfig/network
に追加します。
22.10. ntpd Sysconfig ファイルの概要
ntpd
init スクリプトが読み取ります。デフォルトのコンテンツは以下のとおりです。
# Drop root to id 'ntp:ntp' by default. OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -g"
-g
オプションを指定すると、ntpd
は 1000s のオフセット制限を無視し、オフセットが 1000 秒よりも大きい場合でも、システムの起動時にのみ同期を試みます。このオプションを指定しないと、時間オフセットが 1000 秒を超えると、ntpd は終了します。また、-g
オプションを使用しても、サービスが再起動し、オフセットが 1000 秒を超えると、システムの起動後に終了します。
-p
オプションは pid file へのパスを設定し、-u
はデーモンが root 権限をドロップするユーザーおよびグループを設定します。
22.11. NTP デーモンのインストールを確認する
ntpd
がインストールされていることを確認するには、root で以下のコマンドを発行します。
~]# yum install ntp
NTP
デーモンまたはサービス ntpd
で実装されます。これは、ntp パッケージに含まれています。
22.12. NTP デーモン (ntpd) のインストール
ntpd
をインストールするには、root
で以下のコマンドを発行します。
~]# yum install ntp
デフォルトのインストールディレクトリーは /usr/sbin/
です。
22.13. NTP ステータスの確認
ntpd
がシステム起動時に実行されるよう設定されているかどうかを確認するには、以下のコマンドを発行します。
~]$ chkconfig --list ntpd
ntpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
デフォルトでは、ntpd
のインストール時に、システム起動ごとに起動するように設定されています。
ntpd
が実行中かどうかを確認するには、以下のコマンドを実行します。
~]$ ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== +clock.util.phx2 .CDMA. 1 u 111 128 377 175.495 3.076 2.250 *clock02.util.ph .CDMA. 1 u 69 128 377 175.357 7.641 3.671 ms21.snowflakeh .STEP. 16 u - 1024 0 0.000 0.000 0.000 rs11.lvs.iif.hu .STEP. 16 u - 1024 0 0.000 0.000 0.000 2001:470:28:bde .STEP. 16 u - 1024 0 0.000 0.000 0.000このコマンドは、接続されたタイムサーバーを一覧表示し、最後にポーリングされた日時と応答の安定性を示す情報を表示します。列見出しは以下のようになります。
- リモートおよび refid: リモート NTP サーバーおよびその NTP サーバー
- st: stratum of server
- T: サーバーの種類(ローカル、ユニキャスト、マルチキャスト、またはブロードキャスト)
- poll: サーバーをクエリーする頻度(秒単位)
- when: 最後のポーリングからの経過時間(秒単位)
- Reach: 8 進数のビットマスク(left-shifted); 377 = 11111111 = all recent queries was successful; 257 = 10101111 = 4 most recent was successful, 5 and 7 failed
- 遅延: ネットワークラウンドトリップタイム(ミリ秒単位)
- オフセット: ローカルクロックとリモートクロックの違い(ミリ秒単位)
- ジッター: サーバーからの連続した時間値の差異(高ジッターは不安定なクロックによるもの、またはネットワークパフォーマンスが低下する可能性あり)
ntpd
から簡単なステータスレポートを取得するには、以下のコマンドを発行します。
~]$ ntpstat
unsynchronised
time server re-starting
polling server every 64 s
~]$ ntpstat
synchronised to NTP server (10.5.26.10) at stratum 2
time correct to within 52 ms
polling server every 1024 s
22.14. 着信 NTP パケットを許可するファイアウォールの設定
NTP
トラフィックはポート 123
上の UDP
パケットで構成されており、NTP
が機能するにはネットワークおよびホストベースのファイアウォール通過が許可されている必要があります。
22.14.1. グラフィカルツールを使用したファイアウォールの設定
NTP
がファイアウォールを通過できるようにするには、グラフィカルツール system-config-firewall を使用して root で以下のコマンドを実行します。
~]# system-config-firewall
Firewall Configuration ウィンドウが開きます。左側のリストから Other Ports を選択します。 をクリックします。Port and Protocol ウィンドウが開きます。ポート番号のいずれかをクリックし、123
の入力を開始します。UDP をプロトコルとして使用して 「ポート 123」 エントリーを選択します。 をクリックします。Port and Protocol ウインドウを閉じます。Firewall Configuration ウィンドウで をクリックし、変更を適用します。アクションを確認するようダイアログボックスがポップアップ表示され、 をクリックします。 をクリックすると、既存のセッションがすべて終了することに注意してください。
22.14.2. コマンドラインを使用したファイアウォールの設定
NTP
がコマンドラインを使用してファイアウォールを通過できるようにするには、root
で以下のコマンドを実行します。
~]# lokkit --port=123:udp --update
これにより、--disabled
オプションで無効にされていない限り、ファイアウォールが再起動されることに注意してください。アクティブな接続は終了し、開始マシンでタイムアウトします。
/etc/sysconfig/system-config-firewall
ファイルの詳細を確認します。
NTP
がファイアウォールを通過できるようにするには、設定ファイルを編集して root
ユーザーになり、以下の行を /etc/sysconfig/system-config-firewall
に追加します。
--port=123:udpこの変更は、ファイアウォールが再読み込みされるか、システムが再起動するまで反映されないことに注意してください。
22.14.2.1. コマンドラインを使用した着信 NTP のネットワークアクセスの確認
NTP
トラフィックを許可するように設定されているかどうかを確認するには、root で以下のコマンドを実行します。
~]# less /etc/sysconfig/system-config-firewall
# Configuration file for system-config-firewall
--enabled
--service=ssh
この例では、デフォルトのインストールでファイアウォールは有効になっていますが、NTP
は通過できません。有効にすると、以下の行が上記の行に加えて出力として表示されます。
--port=123:udp
NTP
トラフィックを許可しているかどうかを確認するには、root
で以下のコマンドを実行します。
~]# iptables -L -n | grep 'udp.*123'
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 state NEW udp dpt:123
22.15. ntpdate サーバーの設定
ntpdate
サービスの目的は、システムの起動時にクロックを設定することです。ntpdate
が正確な時間を確保し、クロックでジャンプが生じないようにすることができます。ntpdate
の使用と step-tickers の一覧は非推奨とみなされるため、Red Hat Enterprise Linux 6 はデフォルトで -g
オプションを ntpd コマンドに指定しますが、ntpdate
ではなく、この -g オプションが使用されます。ただし、-g
オプションを指定すると、ntpd
は 1000s のオフセット制限を無視し、時間を同期しようとします。他のプログラムやサービスの開始時に時間が正しいことを保証する訳ではありません。そのため、ntpd
サービスは、ntpd
が無効であるか、または正しい時間で開始する必要があるサービスがあり、クロックでジャンプが生じないようにする場合に便利です。
ntpdate
サービスがシステム起動時に実行されるようになっていることを確認するには、以下のコマンドを発行します。
~]$ chkconfig --list ntpdate
ntpdate 0:off 1:off 2:on 3:on 4:on 5:on 6:off
root
で以下のコマンドを発行します。
~]# chkconfig ntpdate on
ntpdate
サーバーを設定するには、テキストエディターを root として実行し、/etc/ntp/step-tickers
を編集して以下のように 1 つ以上のホスト名を含めます。
clock1.example.com clock2.example.com
ntpdate
は、システム起動時に日付情報を取得するためにこのファイルを 1 回使用するだけなので、記載されているサーバー数は重要ではありません。内部のタイムサーバーがある場合は、そのホスト名を 1 行目に使います。2 行目に追加のホストをバックアップとしておくのがよいでしょう。バックアップサーバーにどれを選ぶか、また 2 番目のホストを内部または外部とするかは、リスク評価によります。たとえば、1 番目のサーバーに影響する問題が 2 番目のサーバーにも影響する可能性はどの程度か。1 番目のサーバーにアクセスできなくなるネットワーク障害時に、より接続性が高いのは外部サーバーかそれとも内部サーバーか、といった点を考慮します。
ntpdate
サービスには、システム起動時に使用される NTP
サーバーの一覧が含まれる必要があるファイルがあります。誤ったチェッカー(正しいタイムソース)の可能性を減らすために、時間オフセット計算の質に影響を与えるために、最後の 4 つのサーバーを一覧表示することが推奨されます。「」ただし、一般にアクセス可能なタイムソースはほとんど正しくありません。
22.16. NTP の設定
NTP
サービスのデフォルト設定を変更するには、root
でテキストエディターを使用して /etc/ntp.conf
ファイルを編集します。このファイルは ntpd
とともにインストールされ、Red Hat プールからのタイムサーバーを使用するデフォルト設定になっています。ntp.conf(5)
の man ページでは、アクセスおよびレート制限コマンドとは別に、設定ファイルで使用可能なコマンドオプションが説明されています。アクセスおよびレート制限コマンドは、ntp_acc(5)
man ページで説明されています。
22.16.1. NTP サービスへのアクセス制御の設定
NTP
サービスへのアクセスを制限または制御するには、ntp.conf
ファイルの restrict コマンドを利用します。コメントアウトされた例は以下のとおりです。
# Hosts on local network are less restricted. #restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
restrict address mask option
ignore
:ntpq
およびntpdc
クエリーを含むすべてのパケットは無視されます。Ko
D: 「Kiss-o'-death」 パケットが送信され、不要なクエリーが少なくなります。limited
: パケットがレート制限のデフォルト値または discard コマンドで指定された値に違反する場合、タイムサービス要求に応答しません。ntpq
およびntpdc
クエリーは影響を受けません。discard コマンドおよびデフォルト値に関する詳細情報は、「NTP サービスへのレート制限アクセスの設定」 を参照してください。lowpriotrap
: 一致するホストがトラップを低い優先度に設定します。nomodify
: 設定に変更を加えられないようにします。noquery
:ntpq
およびntpdc
クエリーに応答しないようにしますが、タイムクエリーは除外されます。nopeer
: ピア関連付けが形成されないようにします。noserve
:ntpq
およびntpdc
クエリー以外のパケットをすべて拒否します。notrap
:ntpdc
制御メッセージプロトコルトラップを防ぎます。notrust
: 暗号法で認証されないパケットを拒否します。ntpport
: 発信元ポートが標準のNTP
UDP
ポート123
の場合、一致アルゴリズムが制限のみを適用するように修正します。version
: 現在のNTP
バージョンに一致しないパケットを拒否します。
limited
オプションを指定する必要があります。ntpd
が KoD
パケットで応答する必要がある場合は、restrict コマンドに limited
オプションと kod
オプションの両方が必要です。
ntpq
および ntpdc
クエリーは増幅攻撃に使用できます(詳細は 『CVE-2013-5211』 を参照してください)。アクセスを公開しているシステムでは、restrict default コマンドから noquery
オプションを削除しないでください。
22.16.2. NTP サービスへのレート制限アクセスの設定
NTP
サービスへのレート制限アクセスを有効にするには、「NTP サービスへのアクセス制御の設定」 で説明されているように、limited
オプションを restrict コマンドに追加します。デフォルトの discard パラメーターを使用したくない場合は、以下で説明するように discard コマンドも使用できます。
discard [average
value] [minimum
value] [monitor
value]
average
: 許可される最小限の平均パケット間隔を指定し、log2 秒の引数を取ります。デフォルト値は 3 です(23 は 8 秒に相当)。minimum
: 許可される最小限のパケット間隔を指定し、log2 秒の引数を取ります。デフォルト値は 1 です(21 は 2 秒に相当します)。monitor
: 許可されるレート制限を超えた場合のパケットの discard の確率を指定します。デフォルト値は、3000 秒です。このオプションは、1 秒あたり 1000 以上のリクエストを受信するサーバー用に用意されています。
discard average 4
discard average 4 minimum 2
22.16.3. ピアアドレスの追加
NTP
サービスを実行しているサーバーのアドレスを追加するには、ntp.conf
ファイルの peer コマンドを利用します。
peer address
IP
ユニキャストアドレスまたは DNS
の解決可能な名前になります。アドレスは、同一 stratum のメンバーに既知のシステムのものである必要があります。ピアは、相互に異なる時間ソースを少なくとも 1 つ持っている必要があります。ピアは通常、同一管理制御下にあるシステム群です。
22.16.4. サーバーアドレスの追加
NTP
サービスを実行しているサーバーのアドレスを追加するには、ntp.conf
ファイルの server コマンドを利用します。
server address
IP
ユニキャストアドレスまたは DNS
の解決可能な名前になります。パケットの送信元となるリモートリファレンスサーバーまたはローカルリファレンスクロックのアドレスになります。
22.16.5. ブロードキャストまたはマルチキャストサーバーアドレスの追加
NTP
パケットをブロードキャストまたはマルチキャストするアドレスを追加するには、ntp.conf
ファイルの broadcast コマンドを利用します。
broadcast address
IP
ブロードキャストまたはマルチキャストアドレスになります。
NTP
ブロードキャストサーバーとして機能するように設定します。使用するアドレスは、ブロードキャストかマルチキャストアドレスである必要があります。ブロードキャストアドレスは、IPv4
アドレス 255.255.255.255
を意味します。デフォルトでは、ルーターはブロードキャストメッセージを渡しません。マルチキャストアドレスは、IPv4
Class D アドレスまたは IPv6
アドレスになります。IANA には、IPv4
マルチキャストアドレス 224.0.1.1
と IPv6
アドレス FF05::101
(サイトローカル)が NTP
に割り当てられています。『RFC 2365 Administratively Scoped IP Multicast の説明にあるように、管理』 者が範囲指定した IPv4
マルチキャストアドレスを使用することもできます。
22.16.6. Manycast クライアントアドレスの追加
NTP
サーバーの検出に使用するマルチキャストアドレスを設定するには、ntp.conf
ファイルの manycastclient コマンドを利用します。
manycastclient address
IP
マルチキャストアドレスで、ここからパケットが受信されます。クライアントはこのアドレスにリクエストを送信し、応答から最善のサーバーを選んで他を無視します。その後、NTP
通信は発見された NTP
サーバーが ntp.conf
に記載されているかのようにユニキャスト関連付けを使用します。
NTP
クライアントのように動作するように設定します。システムは、同時にクライアントとサーバーの両方になることができます。
22.16.7. ブロードキャストクライアントアドレスの追加
NTP
パケット用にブロードキャストアドレスを監視するように設定するには、ntp.conf
ファイルの broadcastclient コマンドを利用します。
broadcastclient
NTP
クライアントのように動作するように設定します。システムは、同時にクライアントとサーバーの両方になることができます。
22.16.8. Manycast サーバーアドレスの追加
NTP
パケットをマルチキャストすることでクライアントがサーバーを発見できるようにするアドレスを設定するには、ntp.conf
ファイルの manycastserver コマンドを利用します。
manycastserver address
NTP
サーバーとして機能するように設定します。システムは、同時にクライアントとサーバーの両方になることができます。
22.16.9. マルチキャストクライアントアドレスの追加
NTP
パケット用にマルチキャストアドレスを監視するように設定するには、ntp.conf
ファイルの multicastclient コマンドを利用します。
multicastclient address
NTP
クライアントのように動作するように設定します。システムは、同時にクライアントとサーバーの両方になることができます。
22.16.10. Burst オプションの設定
NTP
サーバーでは、このオプションを使用しないでください。このオプションは、組織内のアプリケーションにのみ使用するようにしてください。
burst
22.16.11. iburst オプションの設定
iburst
22.16.12. 鍵を使った対称認証の設定
key number
1
から 65534
までの数字になります。このオプションを使用すると、パケットで メッセージ認証コード (MAC)を使用できます。このオプションは、peer、server、broadcast、および manycastclient コマンドで使用します。
/etc/ntp.conf
ファイルで使用できます。
server 192.168.1.1 key 10 broadcast 192.168.1.255 key 20 manycastclient 239.255.254.254 key 30
22.16.13. ポーリング間隔の設定
minpoll value and maxpoll value
minpoll
値は 6 で、26 は 64 に相当します。maxpoll
のデフォルト値は 10 で、1024 秒に相当します。使用できる値は、3 から 17 の範囲で、それぞれ 8s から 36.4h に相当します。これらのオプションは、peer または server で使用します。maxpoll
を短く設定すると、クロックの精度が向上する場合があります。
22.16.14. サーバー優先順位の設定
prefer
22.16.15. NTP パケットの Time-to-Live (有効期限) の設定
ttl value
NTP
サーバーが送信するパケットで使用される TTL の値を指定します。manycast クライアントによる 「リング拡張に使用する最大 Time-to」 -live 値を指定します。デフォルト値は 127
です。
22.16.16. 使用する NTP バージョンの設定
NTP
を指定するには、サーバーまたはピアコマンドの最後に以下のオプションを追加します。
version value
NTP
パケット内の NTP
セットのバージョンを指定します。値は 1
から 4
になります。デフォルト値は 4
です。
22.17. ハードウェアクロック更新の設定
/etc/sysconfig/ntpdate
に追加します。
SYNC_HWCLOCK=yes
root
で以下のコマンドを発行します。
~]# hwclock --systohc
ntpd
がシステムクロックを同期している場合には、カーネルは自動的に RTC を 11 分ごとに更新します。
22.18. クロックソースの設定
~]$ cd /sys/devices/system/clocksource/clocksource0/ clocksource0]$ cat available_clocksource kvm-clock tsc hpet acpi_pm clocksource0]$ cat current_clocksource kvm-clock上記の例では、カーネルは kvm-clock を使用しています。これは仮想マシンなので、起動時にこのクロックソースが選択されています。
grub.conf
に以下のような行を追加します。
clocksource=tsc利用可能なクロックソースはアーキテクチャーに依存します。
22.19. その他のリソース
NTP
および ntpd
に関する追加リソースが提供されています。
22.19.1. インストールされているドキュメント
ntpd(8)
man ページ:ntpd
の詳細な説明があり、コマンドラインオプションも含まれています。ntp.conf(5)
man ページ: サーバーおよびピアとの関連付けの設定方法に関する情報が含まれています。ntpq(8)
man ページ:NTP
サーバーの監視およびクエリーを行うNTP
クエリーユーティリティーを説明しています。ntpdc(8)
man ページ:ntpd
の状態をクエリーおよび変更するntpd
ユーティリティーを説明しています。ntp_auth(5)
man ページ:ntpd
の認証オプション、コマンド、および鍵管理を説明しています。ntp_keygen(8)
man ページ:ntpd
の公開および秘密鍵生成を説明しています。ntp_acc(5)
man ページ: restrict コマンドを使ったアクセス制御オプションを説明しています。ntp_mon(5)
man ページ: 統計情報収集に関する監視オプションを説明しています。ntp_clock(5)
man ページ: 基準クロックを設定するコマンドを説明しています。ntp_misc(5)
man ページ: その他のオプションが説明されています。
22.19.2. 便利な Web サイト
- http://doc.ntp.org/
- NTP 資料のアーカイブ
- http://www.eecis.udel.edu/~mills/ntp.html
- Network Time Synchronization Research Project
- http://www.eecis.udel.edu/~mills/ntp/html/manyopt.html
NTPv4
での Automatic Server Discovery に関する情報
第23章 ptp4l を使用した PTP の設定
23.1. PTP の概要
PTP
はマイクロ秒以下の正確性があり、これは NTP
で得られる正確性が非常に優れています。PTP
サポートは、カーネルとユーザースペースに分けられます。Red Hat Enterprise Linux 6 のカーネルに PTP
クロックのサポートが含まれるようになりました。これは、ネットワークドライバーが提供しています。実際のプロトコル実装は linuxptp と呼ばれ、これは Linux の IEEE 標準 1588 に準拠した PTPv2
実装です。
PTP
境界クロックと通常のクロックを実装します。ハードウェアタイムスタンプでは、PTP
ハードウェアクロックのマスタークロックとの同期に使用され、ソフトウェアタイムスタンプではシステムクロックのマスタークロックとの同期に使用されます。phc2sys プログラムは、システムクロックを ネットワークインターフェースカード (NIC)上の PTP
ハードウェアクロックと同期するハードウェアタイムスタンプでのみ必要です。
23.1.1. PTP を理解する
PTP
で同期するクロックは、マスター/スレーブ階層で組織されています。スレーブはマスターと同期し、このマスターは別のマスターのスレーブとなっています。この階層は、最適なマスタークロック (BMC)アルゴリズムにより自動的に作成され、更新されます。クロックにポートが 1 つしかない場合は、master または slave を指定できます。このようなクロックは 通常のクロック (OC)と呼ばれます。1 つのポートを持つクロックは 1 つのポート上にマスターとなり、別のポートでスレーブできます。このようなクロックは 境界 クロック(BC)と呼ばれます。トップレベルのマスターは、Global Positioning System (GPS)のタイムソースを使用して同期できる グランドマスタークロック と呼ばれます。GPS ベースの時間ソースを使うことで、高度の正確性を保って異なるネットワークが同期可能になります。
図23.1 PTP グランドマスター、境界、スレーブの各クロック

[D]
23.1.2. PTP の利点
PTP
が Network Time Protocol (NTP)よりも対応している主な利点の 1 つは、さまざまな ネットワークインターフェースコントローラー (NIC)およびネットワークスイッチにあるハードウェアサポートです。この特化されたハードウェアにより、PTP
はメッセージ転送の遅延を考慮し、時間同期の精度を大幅に高めます。ネットワーク内で PTP 以外に対応するハードウェアコンポーネントを使用することは可能ですが、その場合、変動が増えたり、遅れが非対称となったりして、同期が不正確になります。これにより、通信パスで使用される複数の非 PTP 対応コンポーネントが追加されます。可能な限りの精度を実現するには、PTP クロック間の全ネットワークコンポーネントが PTP
ハードウェアを有効にすることが推奨されます。ネットワークハードウェアが PTP
に対応していない大規模なネットワークでの時間同期は、NTP
に適している場合があります。
PTP
サポートでは、NIC には独自のオンボードクロックがあります。これは受信および送信の PTP
メッセージのタイムスタンプで使用されます。PTP
マスターに同期しているオンボードクロックで、コンピューターのシステムクロックは NIC 上の PTP
ハードウェアクロックに同期されます。ソフトウェア PTP
サポートでは、システムクロックは PTP
メッセージのタイムスタンプに使用され、PTP
マスターに直接同期します。ソフトウェア PTP
サポートではオペレーティングシステムによる追加の PTP
パケット処理を必要としますが、ハードウェア PTP サポートでは、NIC が PTP
パケットの送受信時のタイムスタンプができるので、より優れた正確性が得られます。
23.2. PTP の使用
PTP
を使用するには、対象とするインターフェース用のカーネルネットワークドライバーがソフトウェアまたはハードウェアのタイムスタンプ機能をサポートしている必要があります。
23.2.1. ドライバーおよびハードウェアサポートの確認
~]# ethtool -T eth3
Time stamping parameters for eth3:
Capabilities:
hardware-transmit (SOF_TIMESTAMPING_TX_HARDWARE)
software-transmit (SOF_TIMESTAMPING_TX_SOFTWARE)
hardware-receive (SOF_TIMESTAMPING_RX_HARDWARE)
software-receive (SOF_TIMESTAMPING_RX_SOFTWARE)
software-system-clock (SOF_TIMESTAMPING_SOFTWARE)
hardware-raw-clock (SOF_TIMESTAMPING_RAW_HARDWARE)
PTP Hardware Clock: 0
Hardware Transmit Timestamp Modes:
off (HWTSTAMP_TX_OFF)
on (HWTSTAMP_TX_ON)
Hardware Receive Filter Modes:
none (HWTSTAMP_FILTER_NONE)
all (HWTSTAMP_FILTER_ALL)
eth3 は、チェックするインターフェースに置き換えます。
SOF_TIMESTAMPING_SOFTWARE
SOF_TIMESTAMPING_TX_SOFTWARE
SOF_TIMESTAMPING_RX_SOFTWARE
SOF_TIMESTAMPING_RAW_HARDWARE
SOF_TIMESTAMPING_TX_HARDWARE
SOF_TIMESTAMPING_RX_HARDWARE
23.2.2. PTP のインストール
PTP
に対応するようになりました。ユーザー空間のサポートは、linuxptp パッケージのツールで提供されます。linuxptp をインストールするには、root
で以下のコマンドを発行します。
~]# yum install linuxptp
これにより、ptp4l および phc2sys がインストールされます。
23.2.3. ptp4l の起動
-i
オプションを指定する必要があります。root
で以下のコマンドを入力します。
~]# ptp4l -i eth3 -m
eth3 は、設定するインターフェースに置き換えます。以下は、NIC 上の PTP
クロックがマスターに同期された際の ptp4l からの出力例です。
~]# ptp4l -i eth3 -m
selected eth3 as PTP clock
port 1: INITIALIZING to LISTENING on INITIALIZE
port 0: INITIALIZING to LISTENING on INITIALIZE
port 1: new foreign master 00a069.fffe.0b552d-1
selected best master clock 00a069.fffe.0b552d
port 1: LISTENING to UNCALIBRATED on RS_SLAVE
master offset -23947 s0 freq +0 path delay 11350
master offset -28867 s0 freq +0 path delay 11236
master offset -32801 s0 freq +0 path delay 10841
master offset -37203 s1 freq +0 path delay 10583
master offset -7275 s2 freq -30575 path delay 10583
port 1: UNCALIBRATED to SLAVE on MASTER_CLOCK_SELECTED
master offset -4552 s2 freq -30035 path delay 10385
マスターオフセットの値は、マスターからナノ秒で測定されたオフセットです。s0
、s1
、s2
の各ストリングは、異なるクロックのサーボ状態を示しています。s0
はアンロックされています。s1
はクロックステップで、s2
です。servo がロック状態(s2
)になると、p _offset_const
オプションが設定ファイルの正の値( ptp4l(8)で説明)に設定されていない限り、クロックはステップになりません(
徐々に調整されるのみ)。freq
値は、10億分の 1(ppb)単位のクロックの周波数調整です。パス遅延値は、マスターから送信される同期メッセージの遅延 (ナノ秒単位) です。Port 0 は、ローカル PTP
管理に使用される Unix ドメインソケットです。Port 1 は eth3
インターフェースです(上記の例に基づいています)。 INITIALIZING、LISTENING、UNCALIBRATED、および SLAVE は、INITIALIZE、RS_SLAVE、MASTER_CLOCK_SELECTED イベントで変化する可能性のあるポート状態です。最後の状態変更メッセージでは、ポート状態が UNCALIBRATED から SLAVE に変更し、PTP
マスタークロックとの同期が成功したことを示しています。
~]# service ptp4l start
サービスとして実行する場合、オプションは /etc/sysconfig/ptp4l
ファイルに指定されます。各種の異なる ptp4l オプションおよび設定ファイルの設定についての詳細は、ptp4l(8)
man ページを参照してください。
/var/log/messages
に送信されます。ただし、-m
オプションを指定すると標準出力へのロギングが可能になり、これはデバッグで役に立ちます。
-S
オプションを使用する必要があります。
~]# ptp4l -i eth3 -m -S
23.2.3.1. 遅延測定メカニズムの選択
-P
-P
は、 ピアツーピア (P2P)の遅延測定メカニズムを選択します。P2P メカニズムはネットワークトポロジーの変更に高速に対応し、他のメカニズムよりも遅延の測定がより正確であるため、推奨されています。 P2P メカニズムは、各ポートが最大で他の 1 つの P2P ポートを持つ PTP メッセージを交換するトポロジーでのみ使用できます。これは、透過クロックを含む通信パス上のすべてのハードウェアでサポートされ、使用される必要があります。-E
-E
は、エンドツーエンド (E2E)の遅延測定メカニズムを選択します。これはデフォルトです。E2E メカニズムは、遅延 「リクエスト応答」 メカニズムとも呼ばれます。-A
-A
は、遅延測定メカニズムの自動選択を有効にします。自動オプションは、E2E モードで ptp4l を起動します。ピアの遅延リクエストを受信すると、P2P モードに変更されます。
PTP
通信パス上のクロックはすべて、遅延を測定するために同じメカニズムを使用する必要があります。E2E メカニズムを使用しているポートでピアの遅延リクエストを受信すると警告が表示されます。P2P メカニズムを使用するポートで E2E の遅延リクエストを受信すると警告が表示されます。
23.3. 設定ファイルの指定
-f
オプションを指定してランタイム時に指定する必要があります。以下に例を示します。
~]# ptp4l -f /etc/ptp4l.conf
~]# cat /etc/ptp4l.conf
[global]
verbose 1
time_stamping software
[eth3]
23.4. PTP 管理クライアントの使用
PTP
管理クライアントである pmc を使用すると、以下のように ptp4l から追加情報を取得できます。
~]# pmc -u -b 0 'GET CURRENT_DATA_SET'
sending: GET CURRENT_DATA_SET
90e2ba.fffe.20c7f8-0 seq 0 RESPONSE MANAGMENT CURRENT_DATA_SET
stepsRemoved 1
offsetFromMaster -142.0
meanPathDelay 9310.0
~]# pmc -u -b 0 'GET TIME_STATUS_NP'
sending: GET TIME_STATUS_NP
90e2ba.fffe.20c7f8-0 seq 0 RESPONSE MANAGMENT TIME_STATUS_NP
master_offset 310
ingress_time 1361545089345029441
cumulativeScaledRateOffset +1.000000000
scaledLastGmPhaseChange 0
gmTimeBaseIndicator 0
lastGmPhaseChange 0x0000'0000000000000000.0000
gmPresent true
gmIdentity 00a069.fffe.0b552d
-b
オプションを ゼロ
に設定すると、ローカルで実行している ptp4l インスタンスへの境界を制限されます。大きな境界値が大きいと、ローカルクロックからさらに PTP
ノードから情報を取得します。取得できる情報は次のとおりです。
stepsRemoved
は、グランドマスタークロックへの通信パスの数です。offsetFromMaster
および master_offset は、マスターから最後に測定されたオフセットをナノ秒で表します。meanPathDelay
は、マスターから送信された同期メッセージの遅延予測をナノ秒で表します。gmPresent
が true の場合、PTP
クロックがマスターに同期され、ローカルクロックはグランドマスタークロックに同期されません。gmIdentity
はグランドマスターのアイデンティティーです。
root
で以下を入力します。
~]# pmc help
pmc(8)
man ページでは詳細情報が見られます。
23.5. クロックの同期
phc2sys サービスは /etc/sysconfig/phc2sys
設定ファイルで設定されます。/etc/sysconfig/phc2sys
ファイルのデフォルト設定は OPTIONS="-a -r"です。
-a
オプションを使用すると、phc2sys が ptp4l アプリケーションから同期されるクロックを読み取ります。PTP
ポートの状態の変更に従い、NIC ハードウェアクロック間の同期を適宜調整します。-r
オプションも指定されていない限り、システムクロックは同期されません。システムクロックをタイムソースにするには、-r
オプションを 2 回指定します。
/etc/sysconfig/phc2sys
への変更後に、root
でコマンドを実行し、コマンドラインから phc2sys サービスを再起動します。
~]# service phc2sys restart
通常の状態では、service コマンドを使用して、phc2sys サービスを起動し、停止し、再起動します。
root
で以下のコマンドを入力します。
~]# phc2sys -a -r
-a
オプションを使用すると、phc2sys が ptp4l アプリケーションから同期されるクロックを読み取ります。システムクロックをタイムソースにするには、-r
オプションを 2 回指定します。
-s
オプションを使用して、システムクロックを特定のインターフェースの PTP
ハードウェアクロックに同期します。以下に例を示します。
~]# phc2sys -s eth3 -w
-w
オプションは、実行中の ptp4l アプリケーションが PTP
クロックを同期するまで待機し、ptp4l から UTC オフセットへの TAI を取得します。
PTP
は 国際原子時(TAI )のタイムスケールで作動し、システムクロックは 協定世界時 (UTC)で維持されます。TAI と UTC のタイムスケール間の現在のオフセットは、36 秒です。このオフセットは、うるう秒が追加もしくは取り除かれると変化します。以下のように、-w
オプションを使用しない場合は、-O
オプションを使用してこのオフセットを手動で設定する必要があります。
~]# phc2sys -s eth3 -O -36
-S
オプションを使用しない限り、クロックはステップされません。つまり、phc2sys プログラムは、ptp4l プログラムが PTP
ハードウェアクロックを同期した後に起動すべきということになります。ただし、-w
を使用すると、ptp4l の後に phc2sys を起動する必要はありません。これは、クロックの同期を待つためです。
~]# service phc2sys start
サービスとして実行する場合、オプションは /etc/sysconfig/phc2sys
ファイルに指定されます。phc2sys の他のオプションの詳細は、 phc2sys (8)
man ページを参照してください。
23.6. 時間同期の検証
PTP
時間同期が適切に機能すると、オフセットと頻度調整を含む新しいメッセージが ptp4l および phc2sys に定期的に出力され(ハードウェアタイムスタンプが使用される場合)。これらの値は、最終的に短期間後に収束されます。これらのメッセージは /var/log/messages
ファイルで確認できます。ptp4l の出力例:
ptp4l[352.359]: selected /dev/ptp0 as PTP clock ptp4l[352.361]: port 1: INITIALIZING to LISTENING on INITIALIZE ptp4l[352.361]: port 0: INITIALIZING to LISTENING on INITIALIZE ptp4l[353.210]: port 1: new foreign master 00a069.fffe.0b552d-1 ptp4l[357.214]: selected best master clock 00a069.fffe.0b552d ptp4l[357.214]: port 1: LISTENING to UNCALIBRATED on RS_SLAVE ptp4l[359.224]: master offset 3304 s0 freq +0 path delay 9202 ptp4l[360.224]: master offset 3708 s1 freq -29492 path delay 9202 ptp4l[361.224]: master offset -3145 s2 freq -32637 path delay 9202 ptp4l[361.224]: port 1: UNCALIBRATED to SLAVE on MASTER_CLOCK_SELECTED ptp4l[362.223]: master offset -145 s2 freq -30580 path delay 9202 ptp4l[363.223]: master offset 1043 s2 freq -29436 path delay 8972 ptp4l[364.223]: master offset 266 s2 freq -29900 path delay 9153 ptp4l[365.223]: master offset 430 s2 freq -29656 path delay 9153 ptp4l[366.223]: master offset 615 s2 freq -29342 path delay 9169 ptp4l[367.222]: master offset -191 s2 freq -29964 path delay 9169 ptp4l[368.223]: master offset 466 s2 freq -29364 path delay 9170 ptp4l[369.235]: master offset 24 s2 freq -29666 path delay 9196 ptp4l[370.235]: master offset -375 s2 freq -30058 path delay 9238 ptp4l[371.235]: master offset 285 s2 freq -29511 path delay 9199 ptp4l[372.235]: master offset -78 s2 freq -29788 path delay 9204
phc2sys[526.527]: Waiting for ptp4l... phc2sys[527.528]: Waiting for ptp4l... phc2sys[528.528]: phc offset 55341 s0 freq +0 delay 2729 phc2sys[529.528]: phc offset 54658 s1 freq -37690 delay 2725 phc2sys[530.528]: phc offset 888 s2 freq -36802 delay 2756 phc2sys[531.528]: phc offset 1156 s2 freq -36268 delay 2766 phc2sys[532.528]: phc offset 411 s2 freq -36666 delay 2738 phc2sys[533.528]: phc offset -73 s2 freq -37026 delay 2764 phc2sys[534.528]: phc offset 39 s2 freq -36936 delay 2746 phc2sys[535.529]: phc offset 95 s2 freq -36869 delay 2733 phc2sys[536.529]: phc offset -359 s2 freq -37294 delay 2738 phc2sys[537.529]: phc offset -257 s2 freq -37300 delay 2753 phc2sys[538.529]: phc offset 119 s2 freq -37001 delay 2745 phc2sys[539.529]: phc offset 288 s2 freq -36796 delay 2766 phc2sys[540.529]: phc offset -149 s2 freq -37147 delay 2760 phc2sys[541.529]: phc offset -352 s2 freq -37395 delay 2771 phc2sys[542.529]: phc offset 166 s2 freq -36982 delay 2748 phc2sys[543.529]: phc offset 50 s2 freq -37048 delay 2756 phc2sys[544.530]: phc offset -31 s2 freq -37114 delay 2748 phc2sys[545.530]: phc offset -333 s2 freq -37426 delay 2747 phc2sys[546.530]: phc offset 194 s2 freq -36999 delay 2749
summary_interval
もあります。通常、2 秒ごとにメッセージを出力します。たとえば、出力を 1024
秒ごとに減らするには、以下の行を /etc/ptp4l.conf
ファイルに追加します。
summary_interval 10
summary_interval 6
を含む ptp4l の出力例:
ptp4l: [615.253] selected /dev/ptp0 as PTP clock ptp4l: [615.255] port 1: INITIALIZING to LISTENING on INITIALIZE ptp4l: [615.255] port 0: INITIALIZING to LISTENING on INITIALIZE ptp4l: [615.564] port 1: new foreign master 00a069.fffe.0b552d-1 ptp4l: [619.574] selected best master clock 00a069.fffe.0b552d ptp4l: [619.574] port 1: LISTENING to UNCALIBRATED on RS_SLAVE ptp4l: [623.573] port 1: UNCALIBRATED to SLAVE on MASTER_CLOCK_SELECTED ptp4l: [684.649] rms 669 max 3691 freq -29383 ± 3735 delay 9232 ± 122 ptp4l: [748.724] rms 253 max 588 freq -29787 ± 221 delay 9219 ± 158 ptp4l: [812.793] rms 287 max 673 freq -29802 ± 248 delay 9211 ± 183 ptp4l: [876.853] rms 226 max 534 freq -29795 ± 197 delay 9221 ± 138 ptp4l: [940.925] rms 250 max 562 freq -29801 ± 218 delay 9199 ± 148 ptp4l: [1004.988] rms 226 max 525 freq -29802 ± 196 delay 9228 ± 143 ptp4l: [1069.065] rms 300 max 646 freq -29802 ± 259 delay 9214 ± 176 ptp4l: [1133.125] rms 226 max 505 freq -29792 ± 197 delay 9225 ± 159 ptp4l: [1197.185] rms 244 max 688 freq -29790 ± 211 delay 9201 ± 162phc2sys からの出力を減らすには、以下のように
-u
オプションを使用してこれを呼び出します。
~]# phc2sys -u summary-updates
ここでの summary-updates は、サマリー統計に含めるクロック更新数です。例を示します。
~]# phc2sys -s eth3 -w -m -u 60
phc2sys[700.948]: rms 1837 max 10123 freq -36474 ± 4752 delay 2752 ± 16
phc2sys[760.954]: rms 194 max 457 freq -37084 ± 174 delay 2753 ± 12
phc2sys[820.963]: rms 211 max 487 freq -37085 ± 185 delay 2750 ± 19
phc2sys[880.968]: rms 183 max 440 freq -37102 ± 164 delay 2734 ± 91
phc2sys[940.973]: rms 244 max 584 freq -37095 ± 216 delay 2748 ± 16
phc2sys[1000.979]: rms 220 max 573 freq -36666 ± 182 delay 2747 ± 43
phc2sys[1060.984]: rms 266 max 675 freq -36759 ± 234 delay 2753 ± 17
23.7. NTP を使用した PTP 時間の実行
ntpd
デーモンは、ptp4l または phc2sys で同期されたシステムクロック、または LOCAL 参照クロックドライバーを使用して同期されたシステムクロックの時間を分散するよう設定できます。ntpd
がシステムクロックを調整するのを防ぐには、ntp.conf
ファイルで NTP
サーバーを指定しないでください。以下は、ntp.conf
の最小限の例です。
~]# cat /etc/ntp.conf
server 127.127.1.0
fudge 127.127.1.0 stratum 0
DHCP
クライアントプログラムである dhclient が DHCP
サーバーから NTP
サーバーの一覧を受信したら、ntp.conf
に追加され、サービスを再起動します。この機能を無効にするには、PEERNTP=no を /etc/sysconfig/network
に追加します。
23.8. PTP を使った NTP 時間の実行
NTP
から PTP
への同期も可能です。ntpd
を使用してシステムクロックを同期する場合、ptp4l は priority1
オプション(または、最適なマスタークロックアルゴリズムに含まれるその他のクロックオプション)でグランドマスタークロックとして設定し、システムクロックから PTP
を介して時間を分配できます。
~]# cat /etc/ptp4l.conf
[global]
priority1 127
[eth3]
# ptp4l -f /etc/ptp4l.conf
PTP
ハードウェアクロックをシステムクロックに同期させる必要があります。
~]# phc2sys -c eth3 -s CLOCK_REALTIME -w
PTP
クロックの周波数の迅速な変更を防ぐため、システムクロックへの同期は、PI servo の小規模な P
(比例)および I
(積分)定数を使用して緩めることができます。
~]# phc2sys -c eth3 -s CLOCK_REALTIME -w -P 0.01 -I 0.0001
23.9. timemaster を使用した PTP または NTP 時間への同期
PTP
ドメインがネットワーク上で利用できるか、または NTP
へのフォールバックが必要な場合、timemaster プログラムを使用して、利用可能なすべてのタイムソースにシステムクロックを同期できます。PTP
時間は、共有メモリードライバー ( chronyd
または ntpd
へのSHM リファレンスクロック)を介して phc2sys および ptp4l で提供されます(システム上で設定されている NTP
デーモンにより異なります)。NTP
デーモンは次に、すべてのタイムソース、PTP
および NTP
の両方を比較でき、システムクロックを同期するのに最適なソースを使用できます。
NTP
および PTP
タイムソースを指定する設定ファイルを読み取り、独自のクロックを持つか、または PTP
ハードウェアクロック(PHC)を共有するネットワークインターフェースを確認し、ptp4l および chronyd
または ntpd
の設定ファイルを生成し、必要に応じて ptp4l、phc2sys、および chronyd
または ntpd
プロセスを起動します。終了時には生成された設定ファイルは削除されます。chronyd
、ntpd
、ptp4l の設定ファイルを /var/run/timemaster/
に書き込みます。
23.9.1. timemaster をサービスとして起動
root
で以下のコマンドを発行します。
~]# service timemaster start
これにより、 /etc/timemaster.conf
のオプションが読み取られます。Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 でのシステムサービスの管理に関する詳細は、「Managing Services with systemd」を参照してください。
23.9.2. timemaster 設定ファイルの概要
/etc/timemaster.conf
ファイルにデフォルトオプションを含む数多くのセクションを提供します。このセクションの見出しは括弧で囲まれます。
~]$ less /etc/timemaster.conf
# Configuration file for timemaster
#[ntp_server ntp-server.local]
#minpoll 4
#maxpoll 4
#[ptp_domain 0]
#interfaces eth0
[timemaster]
ntp_program chronyd
[chrony.conf]
include /etc/chrony.conf
[ntp.conf]
includefile /etc/ntp.conf
[ptp4l.conf]
[chronyd]
path /usr/sbin/chronyd
options -u chrony
[ntpd]
path /usr/sbin/ntpd
options -u ntp:ntp -g
[phc2sys]
path /usr/sbin/phc2sys
[ptp4l]
path /usr/sbin/ptp4l
[ntp_server address]という名前のセクションに注目してください。これは
NTP
サーバーセクションの例で、「ntp-server.local」 はローカル LAN 上の NTP
サーバーのホスト名の例です。セクション名の一部としてホスト名または IP
アドレスを使用して、必要に応じてセクションを追加します。セクション例の短いポーリング値はパブリックサーバーに適していないことに注意してください。適切な minpoll
値および maxpoll
値の説明は、22章ntpd を使用した NTP 設定 を参照してください。
[ptp_domain number]A 「PTP domain」 は、互いに同期する 1 つ以上の
PTP
クロックのグループです。それらは別のドメインでクロックに同期される場合もありますが、同期されない場合もあります。同じドメイン番号で設定されているクロックがドメインを構成します。これには、PTP
グランドマスタークロックが含まれます。各 「PTP ドメインセクションのドメイン」 番号は、ネットワーク上に設定される PTP
ドメインのいずれかに対応している必要があります。
PTP
クロックを持つすべてのインターフェースで起動し、ハードウェアのタイムスタンプは自動的に有効にされます。ハードウェアのタイムスタンプをサポートするインターフェースには PTP
クロック(PHC)が割り当てられます。同じ PHC を共有するインターフェースグループごと、ソフトウェアのタイムスタンプのみをサポートする各インターフェースに対して、別の ptp4l インスタンスが起動します。すべての ptp4l インスタンスは、スレーブとして実行するように設定されます。ハードウェアのタイムスタンプが設定されたインターフェースが 1 つ以上の PTP
ドメインに指定される場合、作成される最初の ptp4l インスタンスのみで、ハードウェアのタイムスタンプが有効にされます。
[timemaster]という名前のセクションに注目してください。デフォルトの timemaster 設定には、アクセス制限および認証キーの設定を組み込むためにシステムの
ntpd
および chrony 設定(/etc/ntp.conf
または /etc/chronyd.conf
)が含まれます。つまり、そこに指定されたすべての NTP
サーバーが timemaster で使用されます。
[ntp_SERVER ntp-server.local
]: このサーバーのポーリング間隔を指定します。必要に応じて追加のセクションを作成します。セクション見出しのホスト名またはIP
アドレスを含めます。[ptp_domain 0
]: このドメインにPTP
クロックを設定するインターフェースを指定します。必要に応じて、適切なドメイン番号で追加のセクションを作成します。[timemaster]:
使用するNTP
デーモンを指定します。使用できる値はchronyd
およびntpd
です。[chrony.conf
]:chronyd
に生成される設定ファイルにコピーされる追加設定を指定します。[ntp.conf
]:ntpd
に生成される設定ファイルにコピーされる追加設定を指定します。[ ptp4l.conf]: ptp
4l に生成される設定ファイルにコピーされるオプションを指定します。[
に対してコマンドラインで渡される追加設定を指定します。chronyd
]: chronyd[
に対してコマンドラインで渡される追加設定を指定します。ntpd
]: ntpd[phc2sys]:
phc2sys に対してコマンドラインで渡される追加設定を指定します。[ptp4l]:
ptp4l のすべてのインスタンスに対してコマンドラインで渡される追加設定を指定します。
timemaster(8)
man ページで説明されています。
23.9.3. timemaster オプションの設定
手順23.1 timemaster 設定ファイルの編集
- デフォルト設定を変更するには、
root
で編集するために/etc/timemaster.conf
ファイルを開きます。~]# vi /etc/timemaster.conf
- timemaster を使用して制御する必要のある各
NTP
サーバーについて、[ntp_server address]
セクションを作成します。この例の短いポーリング値はパブリックサーバーに適していません。適切なminpoll
値およびmaxpoll
値の説明は、22章ntpd を使用した NTP 設定 を参照してください。 - ドメインで使用するインターフェースを追加するには、
#[ptp_domain 0]
セクションを編集してインターフェースを追加します。必要に応じて追加のドメインを作成します。以下に例を示します。[ptp_domain 0] interfaces eth0 [ptp_domain 1] interfaces eth1
- このシステムの
NTP
デーモンとしてntpd
を使用する必要がある場合は、[timemaster]
セクションのデフォルトエントリーをchronyd
からntpd
に変更します。ntpd と chronyd の相違点は、「chrony スイートを使用した NTP 設定」を参照してください。 - このシステムで
chronyd
をNTP
サーバーとして使用する場合は、[chrony.conf]
セクションのデフォルトのinclude /etc/chrony.conf
エントリーの下に追加オプションを追加します。/etc/chrony.conf
へのパスが変更された場合は、デフォルトのinclude
エントリーを編集します。 - このシステムで
ntpd
をNTP
サーバーとして使用する場合は、[ntp.conf]
セクションのデフォルトのinclude /etc/ntp.conf
エントリーの下に追加オプションを追加します。/etc/ntp.conf
へのパスが変更された場合は、デフォルトのinclude
エントリーを編集します。 [ptp4l.conf]
セクションに、ptp4l に生成される設定ファイルにコピーされるオプションを追加します。本章では、共通オプションについて説明します。詳細は、ptp4l(8)
man ページを参照してください。[chronyd]
セクションに、timemaster で呼び出される場合にchronyd
に渡されるコマンドラインオプションを追加します。chronyd
の使用に関する詳細は、「chrony スイートを使用した NTP の設定」を参照してください。[ntpd]
セクションに、timemaster で呼び出される場合にntpd
に渡されるコマンドラインオプションを追加します。ntpd
の使用方法は、22章ntpd を使用した NTP 設定 を参照してください。[phc2sys]
セクションに、timemaster で呼び出される場合に phc2sys に渡すコマンドラインオプションを追加します。本章では、共通オプションについて説明します。詳細は、phy2sys(8)
man ページを参照してください。[ptp4l]
セクションに、timemaster で呼び出される場合に ptp4l に渡されるコマンドラインオプションを追加します。本章では、共通オプションについて説明します。詳細は、ptp4l(8)
man ページを参照してください。- 設定ファイルを保存し、timemaster を再起動するには、
root
で以下のコマンドを実行します。~]# service timemaster restart
23.10. 精度の向上
PTP
同期の精度が向上します(電力消費量は高まります)。カーネル起動オプションパラメーターに nohz=off
を追加することで、カーネルティックモードを無効にすることができます。ただし、kernel-3.10.0-197.el7
に適用される最近の改善により、システムクロックの安定性が大幅に改善され、nohz=off
のあるクロックの安定性の相違点が、ほとんどのユーザーに対して大幅に小さくなるはずです。
/etc/ptp4l.conf
ファイルに以下の行を追加します。clock_servo linreg
/etc/ptp4l.conf
に変更を加えた後に、root
として以下のコマンドを実行し、コマンドラインから ptp4l サービスを再起動します。
~]# service ptp4l restart
/etc/sysconfig/phc2sys
ファイルに以下の行を追加します。-E linreg
/etc/sysconfig/phc2sys
に変更を加えた後に、root
として以下のコマンドを実行し、コマンドラインから phc2sys サービスを再起動します。
~]# service phc2sys restart
23.11. その他のリソース
PTP
および ptp4l ツールに関する追加リソースが提供されています。
23.11.1. インストールされているドキュメント
ptp4l(8)
man ページ: 設定ファイルの形式を含む ptp4l オプションを説明しています。pmc(8)
man ページ:PTP
管理クライアントおよびそのコマンドオプションを説明しています。phc2sys(8)
man ページ: システムクロックをPTP
ハードウェアクロック(PHC)に同期させるツールを説明しています。
23.11.2. 便利な Web サイト
- http://linuxptp.sourceforge.net/
- Linux PTP プロジェクト。
- http://www.nist.gov/el/isd/ieee/ieee1588.cfm
- IEEE 1588 規格
パート VII. 監視と自動化
第24章 システムモニタリングツール
24.1. システムプロセスの表示
24.1.1. ps コマンドの使用
ps ax
PID
)、それに関連付けられているターミナル(TTY
)、現在のステータス(STAT
)、累積された CPU 時間(TIME
)、および実行可能ファイルの名前(COMMAND
)を表示します。以下に例を示します。
~]$ ps ax PID TTY STAT TIME COMMAND 1 ? Ss 0:01 /sbin/init 2 ? S 0:00 [kthreadd] 3 ? S 0:00 [migration/0] 4 ? S 0:00 [ksoftirqd/0] 5 ? S 0:00 [migration/0] 6 ? S 0:00 [watchdog/0] [output truncated]
ps aux
USER
)、CPU のパーセンテージ(%CPU
)およびメモリー(%MEM
)の使用状況、キロバイト単位で仮想メモリーサイズ(キロバイト単位)、キロバイト単位での非スワップ物理メモリー容量(VSZ
)、プロセスの開始日時を表示します。RSS
たとえば、以下のようになります。
~]$ ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 19404 832 ? Ss Mar02 0:01 /sbin/init root 2 0.0 0.0 0 0 ? S Mar02 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S Mar02 0:00 [migration/0] root 4 0.0 0.0 0 0 ? S Mar02 0:00 [ksoftirqd/0] root 5 0.0 0.0 0 0 ? S Mar02 0:00 [migration/0] root 6 0.0 0.0 0 0 ? R Mar02 0:00 [watchdog/0] [output truncated]
~]$ ps ax | grep emacs
12056 pts/3 S+ 0:00 emacs
12060 pts/2 S+ 0:00 grep --color=auto emacs
24.1.2. top コマンドの使用
top
PID
)、プロセス所有者の実効ユーザー名(USER
)、優先度(PR
)、優れた値(NI
)、プロセスが使用する仮想メモリー容量(VIRT
)、プロセスが使用する非スワップ物理メモリー容量(RES
)、プロセスが使用する共有メモリー容量(SHR
)、プロセスステータスフィールド S
)を表示します。 CPU(%CPU
)およびメモリー(%MEM
)の使用量の割合、累積された CPU 時間(TIME+
)、実行可能ファイルの名前(COMMAND
)。以下に例を示します。
~]$ top top - 02:19:11 up 4 days, 10:37, 5 users, load average: 0.07, 0.13, 0.09 Tasks: 160 total, 1 running, 159 sleeping, 0 stopped, 0 zombie Cpu(s): 10.7%us, 1.0%sy, 0.0%ni, 88.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 760752k total, 644360k used, 116392k free, 3988k buffers Swap: 1540088k total, 76648k used, 1463440k free, 196832k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 14401 jhradile 20 0 313m 10m 5732 S 5.6 1.4 6:27.29 gnome-system-mo 1764 root 20 0 133m 23m 4756 S 5.3 3.2 6:32.66 Xorg 13865 jhradile 20 0 1625m 177m 6628 S 0.7 23.8 0:57.26 java 20 root 20 0 0 0 0 S 0.3 0.0 4:44.39 ata/0 2085 root 20 0 40396 348 276 S 0.3 0.0 1:57.13 udisks-daemon 1 root 20 0 19404 832 604 S 0.0 0.1 0:01.21 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 4 root 20 0 0 0 0 S 0.0 0.0 0:00.02 ksoftirqd/0 5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 6 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0 7 root 20 0 0 0 0 S 0.0 0.0 0:01.00 events/0 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuset 9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khelper 10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 netns 11 root 20 0 0 0 0 S 0.0 0.0 0:00.00 async/mgr 12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 pm [output truncated]
コマンド | 詳細 |
---|---|
Enter、Space | 表示を最新の情報に直ちに更新します。 |
h, ? | ヘルプ画面を表示します。 |
k | プロセスを強制終了します。プロセス ID およびプロセスに送信するシグナルがプロンプトされます。 |
-n | 表示されるプロセス番号を変更します。番号を入力するようプロンプトされます。 |
u | 一覧をユーザー別に並べ替えます。 |
M | 一覧をメモリ使用率で並べ替えます。 |
%P | 一覧を CPU 使用率で並べ替えます。 |
q | ユーティリティーを終了して、シェルプロンプトに戻ります。 |
24.1.3. システムモニターツールの使用
root
で以下のコマンドを発行します。
~]# yum install gnome-system-monitor
図24.1 システムモニター — プロセス

[D]
- 実行中のプロセスのみの表示
- すべてのプロセスの表示
- ユーザーのプロセスの表示
- プロセスの依存関係の表示
- 選択したプロセスのメモリーマップの表示
- 選択したプロセスで開いているファイルの表示
- プロセスの一覧を更新します。
- プロセスを停止します。
- 停止したプロセスの実行を継続します。
- プロセスを終了します。
- プロセスを強制終了します。
- 選択したプロセスの優先度を変更する
- プロセスの一覧の更新間隔や表示する情報など、システムモニター の設定を編集します。
24.2. メモリ使用量の表示
24.2.1. free コマンドの使用
free
Mem
)とスワップ領域(Swap
)に関する情報を提供します。メモリーの合計量(total
)、使用メモリー容量(used
)、空きメモリー容量(free
)、共有(shared
)、カーネルバッファー(buffers
)、およびキャッシュメモリー容量(cached
)を表示します。以下に例を示します。
~]$ free
total used free shared buffers cached
Mem: 760752 661332 99420 0 6476 317200
-/+ buffers/cache: 337656 423096
Swap: 1540088 283652 1256436
-m
コマンドラインオプションを指定します。
free -m
~]$ free -m
total used free shared buffers cached
Mem: 742 646 96 0 6 309
-/+ buffers/cache: 330 412
Swap: 1503 276 1227
24.2.2. システムモニターツールの使用
図24.2 システムモニター — リソース

[D]
24.3. CPU 使用率の表示
24.3.1. システムモニターツールの使用
図24.3 システムモニター — リソース

[D]
24.4. ブロックデバイスとファイルシステムの表示
24.4.1. lsblk コマンドの使用
lsblk
NAME
)、メジャーおよびマイナーデバイス番号(MAJ:MIN
)、デバイスがリムーバブル場合は(RM
)、サイズが読み取り専用(SIZE
)、そのタイプ(RO
)、およびデバイスがマウントされている場所(TYPE
)を表示します。MOUNTPOINT
以下に例を示します。
~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 252:0 0 20G 0 rom
|-vda1 252:1 0 500M 0 part /boot
`-vda2 252:2 0 19.5G 0 part
|-vg_kvm-lv_root (dm-0) 253:0 0 18G 0 lvm /
`-vg_kvm-lv_swap (dm-1) 253:1 0 1.5G 0 lvm [SWAP]
-l
を追加します。
lsblk -l
~]$ lsblk -l
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 252:0 0 20G 0 rom
vda1 252:1 0 500M 0 part /boot
vda2 252:2 0 19.5G 0 part
vg_kvm-lv_root (dm-0) 253:0 0 18G 0 lvm /
vg_kvm-lv_swap (dm-1) 253:1 0 1.5G 0 lvm [SWAP]
24.4.2. blkid コマンドの使用
root
で次のコマンドを実行します。
blkid
UUID
)、ファイルシステムタイプ(TYPE
)、ボリュームラベル(LABEL
)などの属性を表示します。以下に例を示します。
~]# blkid
/dev/vda1: UUID="7fa9c421-0054-4555-b0ca-b470a97a3d84" TYPE="ext4"
/dev/vda2: UUID="7IvYzk-TnnK-oPjf-ipdD-cofz-DXaJ-gPdgBW" TYPE="LVM2_member"
/dev/mapper/vg_kvm-lv_root: UUID="a07b967c-71a0-4925-ab02-aebcad2ae824" TYPE="ext4"
/dev/mapper/vg_kvm-lv_swap: UUID="d7ef54ca-9c41-4de4-ac1b-4193b0c1ddb6" TYPE="swap"
blkid device_name
/dev/vda1
に関する情報を表示するには、以下を入力します。
~]# blkid /dev/vda1
/dev/vda1: UUID="7fa9c421-0054-4555-b0ca-b470a97a3d84" TYPE="ext4"
-p
および -o udev
のコマンドラインオプションと共に使用して、詳細情報を取得することもできます。このコマンドを実行するには、root
権限が必要な点に注意してください。
blkid-po
udev
device_name
~]# blkid -po udev /dev/vda1
ID_FS_UUID=7fa9c421-0054-4555-b0ca-b470a97a3d84
ID_FS_UUID_ENC=7fa9c421-0054-4555-b0ca-b470a97a3d84
ID_FS_VERSION=1.0
ID_FS_TYPE=ext4
ID_FS_USAGE=filesystem
24.4.3. findmnt コマンドの使用
findmnt
TARGET
)、ソースデバイス(SOURCE
)、ファイルシステムタイプ(FSTYPE
)、および関連するマウントオプション(OPTIONS
)を表示します。以下に例を示します。
~]$ findmnt TARGET SOURCE FSTYPE OPTIONS / /dev/mapper/vg_kvm-lv_root ext4 rw,relatime,sec |-/proc /proc proc rw,relatime | |-/proc/bus/usb /proc/bus/usb usbfs rw,relatime | `-/proc/sys/fs/binfmt_misc binfmt_m rw,relatime |-/sys /sys sysfs rw,relatime,sec |-/selinux selinuxf rw,relatime |-/dev udev devtmpfs rw,relatime,sec | `-/dev udev devtmpfs rw,relatime,sec | |-/dev/pts devpts devpts rw,relatime,sec | `-/dev/shm tmpfs tmpfs rw,relatime,sec |-/boot /dev/vda1 ext4 rw,relatime,sec |-/var/lib/nfs/rpc_pipefs sunrpc rpc_pipe rw,relatime |-/misc /etc/auto.misc autofs rw,relatime,fd= `-/net -hosts autofs rw,relatime,fd= [output truncated]
-l
を追加します。
findmnt -l
~]$ findmnt -l TARGET SOURCE FSTYPE OPTIONS /proc /proc proc rw,relatime /sys /sys sysfs rw,relatime,seclabe /dev udev devtmpfs rw,relatime,seclabe /dev/pts devpts devpts rw,relatime,seclabe /dev/shm tmpfs tmpfs rw,relatime,seclabe / /dev/mapper/vg_kvm-lv_root ext4 rw,relatime,seclabe /selinux selinuxf rw,relatime /dev udev devtmpfs rw,relatime,seclabe /proc/bus/usb /proc/bus/usb usbfs rw,relatime /boot /dev/vda1 ext4 rw,relatime,seclabe /proc/sys/fs/binfmt_misc binfmt_m rw,relatime /var/lib/nfs/rpc_pipefs sunrpc rpc_pipe rw,relatime /misc /etc/auto.misc autofs rw,relatime,fd=7,pg /net -hosts autofs rw,relatime,fd=13,p [output truncated]
-t
コマンドラインオプションに続けてファイルシステムタイプを追加します。
findmnt -t
type
ext4
ファイルシステムの一覧を表示するには、次のコマンドを実行します。
~]$ findmnt -t ext4
TARGET SOURCE FSTYPE OPTIONS
/ /dev/mapper/vg_kvm-lv_root ext4 rw,relatime,seclabel,barrier=1,data=ord
/boot /dev/vda1 ext4 rw,relatime,seclabel,barrier=1,data=ord
24.4.4. df コマンドの使用
df
Filesystem
)、サイズ(1K-blocks
または Size
)、使用容量(Used
)、利用可能な領域のサイズ(Available
)、領域の使用量の割合(Use%
)、およびファイルシステムがマウントされている場所(Mounted on
)。以下に例を示します。
~]$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/vg_kvm-lv_root 18618236 4357360 13315112 25% /
tmpfs 380376 288 380088 1% /dev/shm
/dev/vda1 495844 77029 393215 17% /boot
-h
を指定して、df が人間が判読可能な形式で値を表示します。
df -h
~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_kvm-lv_root 18G 4.2G 13G 25% /
tmpfs 372M 288K 372M 1% /dev/shm
/dev/vda1 485M 76M 384M 17% /boot
24.4.5. du コマンドの使用
du
~]$ du
14972 ./Downloads
4 ./.gnome2
4 ./.mozilla/extensions
4 ./.mozilla/plugins
12 ./.mozilla
15004 .
-h
を指定して、ユーティリティーが人間が判読可能な形式で値を表示します。
du -h
~]$ du -h
15M ./Downloads
4.0K ./.gnome2
4.0K ./.mozilla/extensions
4.0K ./.mozilla/plugins
12K ./.mozilla
15M .
-s
コマンドラインオプションを指定します。
du -sh
~]$ du -sh
15M .
24.4.6. システムモニターツールの使用
図24.4 システムモニター — ファイルシステム

[D]
24.4.7. gamin によるファイルおよびディレクトリーの監視
inotify
ではなく NFS ファイルシステムのポーリングを使用します。他のファイルシステムの変更は、GLib に直接実装される inotify monitor により監視されます。
/mnt/* または / media/
* に一致するすべてのパスのポーリングの使用に戻ります。ユーザーは、以下の設定をオーバーライドするか、または拡張するには、以下のいずれかの設定ファイルの内容を変更します。
/etc/gamin/gaminrc
$HOME/.gaminrc
/etc/gamin/mandatory_gaminrc
設定ファイルで使用できるコマンド
- notify
- カーネルモニタリングを一致するパスに使用する必要があることを示すには、以下を行います。
- poll
- 一致するパスにポーリングを使用することを表すには、以下を行います。
- fsset
- ファイルシステムタイプで使用される通知メソッドを制御する。
# configuration for gamin # Can be used to override the default behaviour. # notify filepath(s) : indicate to use kernel notification # poll filepath(s) : indicate to use polling instead # fsset fsname method poll_limit : indicate what method of notification for the file system # kernel - use the kernel for notification # poll - use polling for notification # none - don't use any notification # the poll_limit is the number of seconds # that must pass before a resource is polled again. # It is optional, and if it is not present the previous # value will be used or the default. notify /mnt/local* /mnt/pictures* # use kernel notification on these paths poll /temp/* # use poll notification on these paths fsset nfs poll 10 # use polling on nfs mounts and poll once every 10 seconds
/etc/gamin/gaminrc
~/.gaminrc
/etc/gamin/mandatory_gaminrc
/etc/gamin/mandatory_gaminrc
設定ファイルを使用すると、システム管理者は、ユーザーが設定した潜在的な危険性のある設定をオーバーライドできます。ポーリングまたはカーネル通知のいずれを使用すべきかを推測すべきパスを確認すると、gamin は最初に、設定ファイル内のユーザーが指定したルールの順番をチェックしてから、事前定義済みのルールをチェックします。これにより、例にある /mnt/local*
の最初の宣言は、/ mnt/* のデフォルトの宣言を上書きします
。
24.5. ハードウェア情報の表示
24.5.1. lspci コマンドの使用
lspci
~]$ lspci 00:00.0 Host bridge: Intel Corporation 82X38/X48 Express DRAM Controller 00:01.0 PCI bridge: Intel Corporation 82X38/X48 Express Host-Primary PCI Express Bridge 00:1a.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 02) 00:1a.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 (rev 02) 00:1a.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 (rev 02) [output truncated]
-v
コマンドラインオプションを使用して詳細出力を表示することもできます。詳細の出力には -vv
を指定することもできます。
lspci-v
|-vv
~]$ lspci -v [output truncated] 01:00.0 VGA compatible controller: nVidia Corporation G84 [Quadro FX 370] (rev a1) (prog-if 00 [VGA controller]) Subsystem: nVidia Corporation Device 0491 Physical Slot: 2 Flags: bus master, fast devsel, latency 0, IRQ 16 Memory at f2000000 (32-bit, non-prefetchable) [size=16M] Memory at e0000000 (64-bit, prefetchable) [size=256M] Memory at f0000000 (64-bit, non-prefetchable) [size=32M] I/O ports at 1100 [size=128] Expansion ROM at <unassigned> [disabled] Capabilities: <access denied> Kernel driver in use: nouveau Kernel modules: nouveau, nvidiafb [output truncated]
24.5.2. lsusb コマンドの使用
lsusb
~]$ lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub [output truncated] Bus 001 Device 002: ID 0bda:0151 Realtek Semiconductor Corp. Mass Storage Device (Multicard Reader) Bus 008 Device 002: ID 03f0:2c24 Hewlett-Packard Logitech M-UAL-96 Mouse Bus 008 Device 003: ID 04b3:3025 IBM Corp.
-v
コマンドラインオプションを使用すると、さらに詳細な出力を表示することもできます。
lsusb -v
~]$ lsusb -v [output truncated] Bus 008 Device 002: ID 03f0:2c24 Hewlett-Packard Logitech M-UAL-96 Mouse Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x03f0 Hewlett-Packard idProduct 0x2c24 Logitech M-UAL-96 Mouse bcdDevice 31.00 iManufacturer 1 iProduct 2 iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 [output truncated]
24.5.3. lspcmcia コマンドの使用
lspcmcia
~]$ lspcmcia
Socket 0 Bridge: [yenta_cardbus] (bus ID: 0000:15:00.0)
-v
コマンドラインオプションを使用して詳細情報を表示するか、-vv
を使用して詳細レベルをさらに増やすこともできます。
lspcmcia-v
|-vv
~]$ lspcmcia -v
Socket 0 Bridge: [yenta_cardbus] (bus ID: 0000:15:00.0)
Configuration: state: on ready: unknown
24.5.4. lscpu コマンドの使用
lscpu
~]$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 23
Stepping: 7
CPU MHz: 1998.000
BogoMIPS: 4999.98
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 3072K
NUMA node0 CPU(s): 0-3
24.6. Net-SNMP を使用したパフォーマンスのモニタリング
24.6.1. Net-SNMP のインストール
パッケージ | 提供する項目 |
---|---|
net-snmp | SNMP Agent Daemon とドキュメント。このパッケージは、パフォーマンスデータをエクスポートするために必要です。 |
net-snmp-libs | netsnmp ライブラリーと、同梱の MIB(Management Information Base: 管理情報ベース)。このパッケージは、パフォーマンスデータをエクスポートするために必要です。 |
net-snmp-utils | snmpget や snmpwalk などの SNMP クライアント。SNMP 経由でシステムのパフォーマンスデータをクエリーするには、このパッケージが必要です。 |
net-snmp-perl | mib2c ユーティリティーおよび NetSNMP Perl モジュール。 |
net-snmp-python | Python 向け SNMP クライアントライブラリー。 |
yum install
package
~]# yum install net-snmp net-snmp-libs net-snmp-utils
root
としてログイン) が必要であることに注意してください。Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux に新しいパッケージをインストールする方法の詳細は、「パッケージのインストール」 を参照してください。
24.6.2. Net-SNMP Daemon の実行
snmpd
が含まれています。本セクションでは、snmpd
サービスを起動、停止、再起動する方法と、特定のランレベルで有効にする方法を説明します。ランレベルの概念と Red Hat Enterprise Linux でシステムサービスを管理する方法は、12章サービスおよびデーモン を参照してください。
24.6.2.1. サービスの起動
snmpd
サービスを実行するには、シェルプロンプトで root
として以下を入力します。
servicesnmpd
start
chkconfigsnmpd
on
24.6.2.2. サービスの停止
snmpd
サービスを停止するには、シェルプロンプトで root
として以下を入力します。
servicesnmpd
stop
chkconfigsnmpd
off
24.6.2.3. サービスの再起動
snmpd
サービスを再起動するには、シェルプロンプトで以下を入力します。
servicesnmpd
restart
servicesnmpd
reload
snmpd
サービスが設定を再読み込みします。
24.6.3. Net-SNMP の設定
/etc/snmp/snmpd.conf
設定ファイルを編集します。Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;Linux Red Hat Enterprise Linux 6nbsp;6 に同梱されるデフォルトの snmpd.conf
ファイルは、多くのコメントが含まれているため、エージェント設定の際のスタート地点となります。
root
で以下のコマンドを実行し、snmpd
サービスに設定の再読み取りを強制します。
servicesnmpd
reload
24.6.3.1. システム情報の設定
system
ツリー経由で基本的なシステム情報を提供します。たとえば、次の snmpwalk コマンドは、デフォルトのエージェント設定を持つ system
ツリーを示しています。
~]# snmpwalk -v2c -c public localhost system
SNMPv2-MIB::sysDescr.0 = STRING: Linux localhost.localdomain 2.6.32-122.el6.x86_64 #1 SMP Wed Mar 9 23:54:34 EST 2011 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (99554) 0:16:35.54
SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
SNMPv2-MIB::sysName.0 = STRING: localhost.localdomain
SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf)
sysName
オブジェクトはホスト名に設定されています。sysLocation
および sysContact
オブジェクトは、syslocation
ディレクティブおよび syscontact
ディレクティブの値を変更することで、/etc/snmp/snmpd.conf
ファイルで設定できます。以下に例を示します。
syslocation Datacenter, Row 3, Rack 2 syscontact UNIX Admin <admin@example.com>
~]# service snmpd reload Reloading snmpd: [ OK ] ~]# snmpwalk -v2c -c public localhost system SNMPv2-MIB::sysDescr.0 = STRING: Linux localhost.localdomain 2.6.32-122.el6.x86_64 #1 SMP Wed Mar 9 23:54:34 EST 2011 x86_64 SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (158357) 0:26:23.57 SNMPv2-MIB::sysContact.0 = STRING: UNIX Admin <admin@example.com> SNMPv2-MIB::sysName.0 = STRING: localhost.localdomain SNMPv2-MIB::sysLocation.0 = STRING: Datacenter, Row 3, Rack 2
24.6.3.2. 認証の設定
SNMP Version 2c Community の設定
/etc/snmp/snmpd.conf
設定ファイルの rocommunity
または rwcommunity
ディレクティブを使用します。ディレクティブの形式は次のとおりです。
directive community [source [OID]]
システム
ツリーへの読み取り専用アクセスを提供します。
rocommunity redhat 127.0.0.1 .1.3.6.1.2.1.1
-v
オプションおよび -c
オプションを指定して snmpwalk コマンドを使用します。
~]# snmpwalk -v2c -c redhat localhost system
SNMPv2-MIB::sysDescr.0 = STRING: Linux localhost.localdomain 2.6.32-122.el6.x86_64 #1 SMP Wed Mar 9 23:54:34 EST 2011 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (158357) 0:26:23.57
SNMPv2-MIB::sysContact.0 = STRING: UNIX Admin <admin@example.com>
SNMPv2-MIB::sysName.0 = STRING: localhost.localdomain
SNMPv2-MIB::sysLocation.0 = STRING: Datacenter, Row 3, Rack 2
SNMP Version 3 User の設定
/var/lib/net-snmp/snmpd.conf
ファイルおよび /etc/snmp/snmpd.conf
ファイルにエントリーを追加します。net-snmp-create-v3-user コマンドは、エージェントが実行されていない場合にのみ実行できることに注意してください。以下の例では、パスワードが 「redhatsnmp」 の 「admin」 ユーザーを作成します。
~]# service snmpd stop Stopping snmpd: [ OK ] ~]# net-snmp-create-v3-user Enter a SNMPv3 user name to create: admin Enter authentication pass-phrase: redhatsnmp Enter encryption pass-phrase: [press return to reuse the authentication pass-phrase] adding the following line to /var/lib/net-snmp/snmpd.conf: createUser admin MD5 "redhatsnmp" DES adding the following line to /etc/snmp/snmpd.conf: rwuser admin ~]# service snmpd start Starting snmpd: [ OK ]
/etc/snmp/snmpd.conf
に追加される rwuser
ディレクティブ( -
ro コマンドラインオプションを指定する場合は rouser
)は、rwcommunity
ディレクティブおよび rocommunity
ディレクティブと同様の形式になります。
directive user [noauth
|auth
|priv
] [OID]
auth
オプション)。noauth
オプションを使用すると、認証されていない要求を許可でき、priv
オプションは暗号化の使用を強制します。authpriv
オプションは要求の認証と応答の暗号化が必要であることを指定します。
rwuser admin authpriv .1
.snmp
ディレクトリーを作成して、そのディレクトリーに次の行を含む snmp.conf
という名前の設定ファイルを作成します(~/.snmp/snmp.conf
)。
defVersion 3 defSecurityLevel authPriv defSecurityName admin defPassphrase redhatsnmp
~]$ snmpwalk -v3 localhost system SNMPv2-MIB::sysDescr.0 = STRING: Linux localhost.localdomain 2.6.32-122.el6.x86_64 #1 SMP Wed Mar 9 23:54:34 EST 2011 x86_64 [output truncated]
24.6.4. SNMP によるパフォーマンスデータの取得
24.6.4.1. ハードウェアの設定
Host Resources MIB
は、ホストの現在のハードウェアおよびソフトウェア設定に関する情報をクライアントユーティリティーに表示します。表24.3「利用可能な OID」 は、その MIB で利用可能なさまざまな OID の概要を示します。
OID | 詳細 |
---|---|
HOST-RESOURCES-MIB::hrSystem | アップタイム、ユーザー数、実行中のプロセス数などのシステム情報全般が含まれています。 |
HOST-RESOURCES-MIB::hrStorage | メモリおよびファイルシステムの使用に関するデータが含まれています。 |
HOST-RESOURCES-MIB::hrDevices | すべてのプロセッサー、ネットワークデバイス、ファイルシステムの一覧が含まれています。 |
HOST-RESOURCES-MIB::hrSWRun | 実行中の全プロセス一覧が含まれています。 |
HOST-RESOURCES-MIB::hrSWRunPerf | HOST-RESOURCES-MIB::hrSWRun からのプロセステーブル上のメモリと CPU 統計が含まれています。 |
HOST-RESOURCES-MIB::hrSWInstalled | RPM データベースの一覧が含まれています。 |
HOST-RESOURCES-MIB::hrFSTable
を表示しています。
~]$ snmptable -Cb localhost HOST-RESOURCES-MIB::hrFSTable
SNMP table: HOST-RESOURCES-MIB::hrFSTable
Index MountPoint RemoteMountPoint Type
Access Bootable StorageIndex LastFullBackupDate LastPartialBackupDate
1 "/" "" HOST-RESOURCES-TYPES::hrFSLinuxExt2
readWrite true 31 0-1-1,0:0:0.0 0-1-1,0:0:0.0
5 "/dev/shm" "" HOST-RESOURCES-TYPES::hrFSOther
readWrite false 35 0-1-1,0:0:0.0 0-1-1,0:0:0.0
6 "/boot" "" HOST-RESOURCES-TYPES::hrFSLinuxExt2
readWrite false 36 0-1-1,0:0:0.0 0-1-1,0:0:0.0
HOST-RESOURCES-MIB
の詳細は、/usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt
ファイルを参照してください。
24.6.4.2. CPU およびメモリー情報
UCD SNMP MIB
で利用できます。systemStats
OID は、プロセッサー使用率に関する多くのカウンターを提供します。
~]$ snmpwalk localhost UCD-SNMP-MIB::systemStats
UCD-SNMP-MIB::ssIndex.0 = INTEGER: 1
UCD-SNMP-MIB::ssErrorName.0 = STRING: systemStats
UCD-SNMP-MIB::ssSwapIn.0 = INTEGER: 0 kB
UCD-SNMP-MIB::ssSwapOut.0 = INTEGER: 0 kB
UCD-SNMP-MIB::ssIOSent.0 = INTEGER: 0 blocks/s
UCD-SNMP-MIB::ssIOReceive.0 = INTEGER: 0 blocks/s
UCD-SNMP-MIB::ssSysInterrupts.0 = INTEGER: 29 interrupts/s
UCD-SNMP-MIB::ssSysContext.0 = INTEGER: 18 switches/s
UCD-SNMP-MIB::ssCpuUser.0 = INTEGER: 0
UCD-SNMP-MIB::ssCpuSystem.0 = INTEGER: 0
UCD-SNMP-MIB::ssCpuIdle.0 = INTEGER: 99
UCD-SNMP-MIB::ssCpuRawUser.0 = Counter32: 2278
UCD-SNMP-MIB::ssCpuRawNice.0 = Counter32: 1395
UCD-SNMP-MIB::ssCpuRawSystem.0 = Counter32: 6826
UCD-SNMP-MIB::ssCpuRawIdle.0 = Counter32: 3383736
UCD-SNMP-MIB::ssCpuRawWait.0 = Counter32: 7629
UCD-SNMP-MIB::ssCpuRawKernel.0 = Counter32: 0
UCD-SNMP-MIB::ssCpuRawInterrupt.0 = Counter32: 434
UCD-SNMP-MIB::ssIORawSent.0 = Counter32: 266770
UCD-SNMP-MIB::ssIORawReceived.0 = Counter32: 427302
UCD-SNMP-MIB::ssRawInterrupts.0 = Counter32: 743442
UCD-SNMP-MIB::ssRawContexts.0 = Counter32: 718557
UCD-SNMP-MIB::ssCpuRawSoftIRQ.0 = Counter32: 128
UCD-SNMP-MIB::ssRawSwapIn.0 = Counter32: 0
UCD-SNMP-MIB::ssRawSwapOut.0 = Counter32: 0
ssCpuRawUser
、ssCpuRawSystem
、ssCpuRawWait
および ssCpuRawIdle
の OID は、システムがカーネルスペース、ユーザー空間、または I/O でプロセッサー時間の大半を費やしているかどうかを判断する際に役立つカウンターを提供します。Ss RawSwapIn
および ssRawSwapOut
は、システムがメモリーを使い切っているかどうかを判断する際に役立ちます。
UCD-SNMP-MIB::memory
OID で利用できます。
~]$ snmpwalk localhost UCD-SNMP-MIB::memory
UCD-SNMP-MIB::memIndex.0 = INTEGER: 0
UCD-SNMP-MIB::memErrorName.0 = STRING: swap
UCD-SNMP-MIB::memTotalSwap.0 = INTEGER: 1023992 kB
UCD-SNMP-MIB::memAvailSwap.0 = INTEGER: 1023992 kB
UCD-SNMP-MIB::memTotalReal.0 = INTEGER: 1021588 kB
UCD-SNMP-MIB::memAvailReal.0 = INTEGER: 634260 kB
UCD-SNMP-MIB::memTotalFree.0 = INTEGER: 1658252 kB
UCD-SNMP-MIB::memMinimumSwap.0 = INTEGER: 16000 kB
UCD-SNMP-MIB::memBuffer.0 = INTEGER: 30760 kB
UCD-SNMP-MIB::memCached.0 = INTEGER: 216200 kB
UCD-SNMP-MIB::memSwapError.0 = INTEGER: noError(0)
UCD-SNMP-MIB::memSwapErrorMsg.0 = STRING:
UCD SNMP MIB
でも利用可能です。SNMP テーブル UCD-SNMP-MIB::laTable
には、1 分、5 分、15 分間の負荷平均の一覧があります。
~]$ snmptable localhost UCD-SNMP-MIB::laTable
SNMP table: UCD-SNMP-MIB::laTable
laIndex laNames laLoad laConfig laLoadInt laLoadFloat laErrorFlag laErrMessage
1 Load-1 0.00 12.00 0 0.000000 noError
2 Load-5 0.00 12.00 0 0.000000 noError
3 Load-15 0.00 12.00 0 0.000000 noError
24.6.4.3. ファイルシステムとディスク情報
Host Resources MIB
は、ファイルシステムのサイズと使用量についての情報を提供します。HOST-RESOURCES-MIB::hrStorageTable
テーブルには、各ファイルシステム(および各メモリープール)のエントリーがあります。
~]$ snmptable -Cb localhost HOST-RESOURCES-MIB::hrStorageTable
SNMP table: HOST-RESOURCES-MIB::hrStorageTable
Index Type Descr
AllocationUnits Size Used AllocationFailures
1 HOST-RESOURCES-TYPES::hrStorageRam Physical memory
1024 Bytes 1021588 388064 ?
3 HOST-RESOURCES-TYPES::hrStorageVirtualMemory Virtual memory
1024 Bytes 2045580 388064 ?
6 HOST-RESOURCES-TYPES::hrStorageOther Memory buffers
1024 Bytes 1021588 31048 ?
7 HOST-RESOURCES-TYPES::hrStorageOther Cached memory
1024 Bytes 216604 216604 ?
10 HOST-RESOURCES-TYPES::hrStorageVirtualMemory Swap space
1024 Bytes 1023992 0 ?
31 HOST-RESOURCES-TYPES::hrStorageFixedDisk /
4096 Bytes 2277614 250391 ?
35 HOST-RESOURCES-TYPES::hrStorageFixedDisk /dev/shm
4096 Bytes 127698 0 ?
36 HOST-RESOURCES-TYPES::hrStorageFixedDisk /boot
1024 Bytes 198337 26694 ?
HOST-RESOURCES-MIB::hrStorageSize および HOST-RESOURCES-MIB::hr
StorageUsed
の OID を使用して、マウントされた各ファイルシステムの残りの容量を算出することができます。
UCD-SNMP-MIB::systemStats
(ssIORawSent.0
と ssIORawRecieved.0
)と UCD-DISKIO-MIB::diskIOTable
の両方で利用できます。後者は、前者と比べてより粒度の細かいデータを提供します。このテーブルには、diskIONReadX
および diskIONWrittenX
の OID があり、システムブートから問題のブロックデバイスに対し読み取りおよび書き込みを実行したバイト数のカウンターを提供します。
~]$ snmptable -Cb localhost UCD-DISKIO-MIB::diskIOTable
SNMP table: UCD-DISKIO-MIB::diskIOTable
Index Device NRead NWritten Reads Writes LA1 LA5 LA15 NReadX NWrittenX
...
25 sda 216886272 139109376 16409 4894 ? ? ? 216886272 139109376
26 sda1 2455552 5120 613 2 ? ? ? 2455552 5120
27 sda2 1486848 0 332 0 ? ? ? 1486848 0
28 sda3 212321280 139104256 15312 4871 ? ? ? 212321280 139104256
24.6.4.4. ネットワーク情報
Interfaces MIB
はネットワークデバイスの情報を提供します。IF-MIB::ifTable
は、SNMP テーブルにシステム上の各インターフェースのエントリー、インターフェースの設定、インターフェース用の各種パケットカウンターを提供します。以下の例は、2 つの物理ネットワークインターフェースを持つシステム上の ifTable
の最初の数コラムを示しています。
~]$ snmptable -Cb localhost IF-MIB::ifTable
SNMP table: IF-MIB::ifTable
Index Descr Type Mtu Speed PhysAddress AdminStatus
1 lo softwareLoopback 16436 10000000 up
2 eth0 ethernetCsmacd 1500 0 52:54:0:c7:69:58 up
3 eth1 ethernetCsmacd 1500 0 52:54:0:a7:a3:24 down
IF-MIB::ifOutOctets および IF-MIB:
:ifInOctets
の OID で利用できます。以下の SNMP クエリーは、このシステム上の各インターフェースに対するネットワークトラフィックを取得します。
~]$ snmpwalk localhost IF-MIB::ifDescr IF-MIB::ifDescr.1 = STRING: lo IF-MIB::ifDescr.2 = STRING: eth0 IF-MIB::ifDescr.3 = STRING: eth1 ~]$ snmpwalk localhost IF-MIB::ifOutOctets IF-MIB::ifOutOctets.1 = Counter32: 10060699 IF-MIB::ifOutOctets.2 = Counter32: 650 IF-MIB::ifOutOctets.3 = Counter32: 0 ~]$ snmpwalk localhost IF-MIB::ifInOctets IF-MIB::ifInOctets.1 = Counter32: 10060699 IF-MIB::ifInOctets.2 = Counter32: 78650 IF-MIB::ifInOctets.3 = Counter32: 0
24.6.5. Net-SNMP の拡張
24.6.5.1. シェルスクリプトによる Net-SNMP の拡張
NET-SNMP-EXTEND-MIB
)を提供します。実行するシェルスクリプトを指定するには、/etc/snmp/snmpd.conf
ファイルの extend
ディレクティブを使用します。定義されると、Agent は SNMP により終了コードとコマンドの出力を提供します。以下の例は、プロセステーブルの httpd
プロセスの数を決定するスクリプトを使用したこの仕組みを示しています。
proc
ディレクティブでプロセステーブルをチェックする組み込みメカニズムも提供します。詳細は、snmpd.conf(5)man ページを参照してください。
#!/bin/sh NUMPIDS=`pgrep httpd | wc -l` exit $NUMPIDS
/etc/snmp/snmpd.conf
ファイルに extend
ディレクティブを追加します。extend
ディレクティブの形式は次のとおりです。
extend
name prog args
/usr/local/bin/check_apache.sh
にコピーされた場合、以下のディレクティブは SNMP ツリーにスクリプトを追加します。
extend httpd_pids /bin/sh /usr/local/bin/check_apache.sh
NET-SNMP-EXTEND-MIB::nsExtendObjects
でクエリーできます。
~]$ snmpwalk localhost NET-SNMP-EXTEND-MIB::nsExtendObjects
NET-SNMP-EXTEND-MIB::nsExtendNumEntries.0 = INTEGER: 1
NET-SNMP-EXTEND-MIB::nsExtendCommand."httpd_pids" = STRING: /bin/sh
NET-SNMP-EXTEND-MIB::nsExtendArgs."httpd_pids" = STRING: /usr/local/bin/check_apache.sh
NET-SNMP-EXTEND-MIB::nsExtendInput."httpd_pids" = STRING:
NET-SNMP-EXTEND-MIB::nsExtendCacheTime."httpd_pids" = INTEGER: 5
NET-SNMP-EXTEND-MIB::nsExtendExecType."httpd_pids" = INTEGER: exec(1)
NET-SNMP-EXTEND-MIB::nsExtendRunType."httpd_pids" = INTEGER: run-on-read(1)
NET-SNMP-EXTEND-MIB::nsExtendStorage."httpd_pids" = INTEGER: permanent(4)
NET-SNMP-EXTEND-MIB::nsExtendStatus."httpd_pids" = INTEGER: active(1)
NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."httpd_pids" = STRING:
NET-SNMP-EXTEND-MIB::nsExtendOutputFull."httpd_pids" = STRING:
NET-SNMP-EXTEND-MIB::nsExtendOutNumLines."httpd_pids" = INTEGER: 1
NET-SNMP-EXTEND-MIB::nsExtendResult."httpd_pids" = INTEGER: 8
NET-SNMP-EXTEND-MIB::nsExtendOutLine."httpd_pids".1 = STRING:
extend
ディレクティブを使用してスクリプトに異なる引数を指定します。例えば、以下のシェルスクリプトを使用すると、任意の文字列に一致するプロセスの数を見つけ出すことができ、プロセスの数を示すテキスト文字列も出力します。
#!/bin/sh PATTERN=$1 NUMPIDS=`pgrep $PATTERN | wc -l` echo "There are $NUMPIDS $PATTERN processes." exit $NUMPIDS
/etc/snmp/snmpd.conf
ディレクティブは、上記のスクリプトが /usr/local/bin/check_proc.sh
にコピーされたときに httpd
PID の数と snmpd
PID の数の両方を提供します。
extend httpd_pids /bin/sh /usr/local/bin/check_proc.sh httpd extend snmpd_pids /bin/sh /usr/local/bin/check_proc.sh snmpd
nsExtendObjects
OID の snmpwalk の出力を示しています。
~]$ snmpwalk localhost NET-SNMP-EXTEND-MIB::nsExtendObjects
NET-SNMP-EXTEND-MIB::nsExtendNumEntries.0 = INTEGER: 2
NET-SNMP-EXTEND-MIB::nsExtendCommand."httpd_pids" = STRING: /bin/sh
NET-SNMP-EXTEND-MIB::nsExtendCommand."snmpd_pids" = STRING: /bin/sh
NET-SNMP-EXTEND-MIB::nsExtendArgs."httpd_pids" = STRING: /usr/local/bin/check_proc.sh httpd
NET-SNMP-EXTEND-MIB::nsExtendArgs."snmpd_pids" = STRING: /usr/local/bin/check_proc.sh snmpd
NET-SNMP-EXTEND-MIB::nsExtendInput."httpd_pids" = STRING:
NET-SNMP-EXTEND-MIB::nsExtendInput."snmpd_pids" = STRING:
...
NET-SNMP-EXTEND-MIB::nsExtendResult."httpd_pids" = INTEGER: 8
NET-SNMP-EXTEND-MIB::nsExtendResult."snmpd_pids" = INTEGER: 1
NET-SNMP-EXTEND-MIB::nsExtendOutLine."httpd_pids".1 = STRING: There are 8 httpd processes.
NET-SNMP-EXTEND-MIB::nsExtendOutLine."snmpd_pids".1 = STRING: There are 1 snmpd processes.
httpd
プロセスの数のクエリーを示しています。このクエリーは、パフォーマンステスト中にメモリ負担に与えるプロセス数の影響を知るために使用することができます。
~]$ snmpget localhost \ 'NET-SNMP-EXTEND-MIB::nsExtendResult."httpd_pids"' \ UCD-SNMP-MIB::memAvailReal.0 NET-SNMP-EXTEND-MIB::nsExtendResult."httpd_pids" = INTEGER: 8 UCD-SNMP-MIB::memAvailReal.0 = INTEGER: 799664 kB
24.6.5.2. Perl による Net-SNMP の拡張
extend
ディレクティブを使用したシェルスクリプトの実行は、SNMP によるカスタムアプリケーションメトリックを公開する非常に限定的な方法です。Net-SNMP エージェントは、カスタムオブジェクトを公開するための埋め込み Perl インターフェースも提供します。net-snmp-perl パッケージは、Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux で組み込み Perl プラグインを作成するために使用される NetSNMP::agent
Perl モジュールを提供します。
NetSNMP::agent
Perl モジュールは、エージェントの OID ツリーの一部に対する要求を処理するために使用される agent
オブジェクトを提供します。agent
オブジェクトのコンストラクターには、エージェントを snmpd
のサブエージェントまたはスタンドアロンエージェントとして実行するためのオプションがあります。埋め込みエージェントを作成するために必要な引数はありません。
use NetSNMP::agent (':all'); my $agent = new NetSNMP::agent();
agent
オブジェクトには、コールバック関数を特定の OID に登録するために使用される register
メソッドがあります。register
関数は、名前、OID、コールバック関数へのポインターを取ります。以下の例では、hello_handler
という名前のコールバック関数を OID .1.3.6 .1.4.1.8072.9999.9999 で要求を処理する SNMP Agent に登録しています
。
$agent->register("hello_world", ".1.3.6.1.4.1.8072.9999.9999", \&hello_handler);
.1.3.6.1.4.1.8072.9999.9999
(NET-SNMP-MIB::netSnmpPlaypen
)はデモ目的でのみ使用されます。お客様の組織に root OID がない場合は、ISO Name Registration Authority (米国では ANSI) にご連絡いただくと取得できます。
HANDLER
、REGISTRATION_INFO
、REQUEST_INFO
、および REQUESTS
の 4 つのパラメーターで呼び出されます。REQUESTS
パラメーターには、現在の呼び出しの要求一覧が含まれており、反復されデータが追加されるはずです。一覧の request
オブジェクトには get メソッドおよび set メソッドがあるため、リクエストの OID および value を操作することができます。たとえば、以下の呼び出しは要求オブジェクトの値を文字列 「hello world」 に設定します。
$request->setValue(ASN_OCTET_STR, "hello world");
getMode
オブジェクトの request_info
メソッドを呼び出すことで決定されます。要求が GET 要求である場合、呼び出し元は、ハンドラーに要求の OID に応じて value オブジェクトの request
を設定するよう求めます。要求が GETNEXT 要求である場合、呼び出し元は、ハンドラーに要求の OID をツリー内で次に利用可能な OID に設定するよう求めます。以下のコードは、この例を示しています。
my $request; my $string_value = "hello world"; my $integer_value = "8675309"; for($request = $requests; $request; $request = $request->next()) { my $oid = $request->getOID(); if ($request_info->getMode() == MODE_GET) { if ($oid == new NetSNMP::OID(".1.3.6.1.4.1.8072.9999.9999.1.0")) { $request->setValue(ASN_OCTET_STR, $string_value); } elsif ($oid == new NetSNMP::OID(".1.3.6.1.4.1.8072.9999.9999.1.1")) { $request->setValue(ASN_INTEGER, $integer_value); } } elsif ($request_info->getMode() == MODE_GETNEXT) { if ($oid == new NetSNMP::OID(".1.3.6.1.4.1.8072.9999.9999.1.0")) { $request->setOID(".1.3.6.1.4.1.8072.9999.9999.1.1"); $request->setValue(ASN_INTEGER, $integer_value); } elsif ($oid < new NetSNMP::OID(".1.3.6.1.4.1.8072.9999.9999.1.0")) { $request->setOID(".1.3.6.1.4.1.8072.9999.9999.1.0"); $request->setValue(ASN_OCTET_STR, $string_value); } } }
getMode
が MODE_GET
を返すと、ハンドラーは getOID
オブジェクトの request
呼び出しの値を分析します。value の request
は、OID が .1 「.0」 で終わる場合は string_value
に、OID が .1.1 で終わる場合は integer_value
に設定され 「 ます。」getMode
が MODE_GETNEXT
を返す場合、ハンドラーは要求の OID が .1.0 かどうかを判断し、「.」 1.1 の OID と値を設定し 「 ます。」ツリーで要求が .1.0 を超える場合、「.1.0」 の OID および値が 「 設定」 されます。実際、これはツリーの 「次」 の値を返すため、snmpwalk のようなプログラムは構造に関する事前知識なくツリーをトラバースできます。
NetSNMP::ASN
からの定数を使用して設定されます。利用可能な定数の全一覧については、NetSNMP::ASN
の perldoc を参照してください。
#!/usr/bin/perl use NetSNMP::agent (':all'); use NetSNMP::ASN qw(ASN_OCTET_STR ASN_INTEGER); sub hello_handler { my ($handler, $registration_info, $request_info, $requests) = @_; my $request; my $string_value = "hello world"; my $integer_value = "8675309"; for($request = $requests; $request; $request = $request->next()) { my $oid = $request->getOID(); if ($request_info->getMode() == MODE_GET) { if ($oid == new NetSNMP::OID(".1.3.6.1.4.1.8072.9999.9999.1.0")) { $request->setValue(ASN_OCTET_STR, $string_value); } elsif ($oid == new NetSNMP::OID(".1.3.6.1.4.1.8072.9999.9999.1.1")) { $request->setValue(ASN_INTEGER, $integer_value); } } elsif ($request_info->getMode() == MODE_GETNEXT) { if ($oid == new NetSNMP::OID(".1.3.6.1.4.1.8072.9999.9999.1.0")) { $request->setOID(".1.3.6.1.4.1.8072.9999.9999.1.1"); $request->setValue(ASN_INTEGER, $integer_value); } elsif ($oid < new NetSNMP::OID(".1.3.6.1.4.1.8072.9999.9999.1.0")) { $request->setOID(".1.3.6.1.4.1.8072.9999.9999.1.0"); $request->setValue(ASN_OCTET_STR, $string_value); } } } } my $agent = new NetSNMP::agent(); $agent->register("hello_world", ".1.3.6.1.4.1.8072.9999.9999", \&hello_handler);
/usr/share/snmp/hello_world.pl
にコピーし、以下の行を /etc/snmp/snmpd.conf
設定ファイルに追加します。
perl do "/usr/share/snmp/hello_world.pl"
~]$ snmpwalk localhost NET-SNMP-MIB::netSnmpPlaypen
NET-SNMP-MIB::netSnmpPlaypen.1.0 = STRING: "hello world"
NET-SNMP-MIB::netSnmpPlaypen.1.1 = INTEGER: 8675309
~]$ snmpget localhost \ NET-SNMP-MIB::netSnmpPlaypen.1.0 \ NET-SNMP-MIB::netSnmpPlaypen.1.1 NET-SNMP-MIB::netSnmpPlaypen.1.0 = STRING: "hello world" NET-SNMP-MIB::netSnmpPlaypen.1.1 = INTEGER: 8675309
24.7. 関連資料
24.7.1. インストールされているドキュメント
- ps(1): ps コマンドの man ページです。
- top(1): top コマンドの man ページです。
- Free(1)- free コマンドの man ページです。
- df(1)- df コマンドの man ページです。
- du(1): du コマンドの man ページです。
- lspci(8): lspci コマンドの man ページです。
- snmpd(8):
snmpd
サービスの man ページです。 - snmpd.conf(5): 利用可能な設定ディレクティブについての全ドキュメントを含む
/etc/snmp/snmpd.conf
ファイルの man ページです。
第25章 ログファイルの表示と管理
rsyslogd
と呼ばれるデーモンによって制御されます。rsyslogd
デーモンは、以前の sysklogd の拡張版であり、拡張されたフィルタリング、暗号化で保護されたメッセージのリレー、様々な設定オプション、入出力モジュール、TCP
プロトコルまたは UDP
プロトコルを介した転送のサポートを提供します。rsyslog は sysklogd と互換性があることに注意してください。
25.1. rsyslog のインストール
root
で以下のコマンドを発行します。
~]# yum install rsyslog
Loaded plugins: product-id, refresh-packagekit, subscription-manager
Package rsyslog-5.8.10-10.el6_6.i686 already installed and latest version
Nothing to do
25.1.1. rsyslog バージョン 7 へのアップグレード
手順25.1 rsyslog 7 へのアップグレード
root
で以下のコマンドを入力し、yum シェルを起動します。~]# yum shell Loaded plugins: product-id, refresh-packagekit, subscription-manager >
yum シェルプロンプトが表示されます。- 以下のコマンドを入力して rsyslog7 パッケージをインストールし、rsyslog パッケージを削除します。
>
install rsyslog7
>remove rsyslog
- run を入力してプロセスを開始します。
>
run
--> Running transaction check ---> Package rsyslog.i686 0:5.8.10-10.el6_6 will be erased ---> Package rsyslog7.i686 0:7.4.10-3.el6_6 will be installed --> Finished Dependency Resolution ============================================================================ Package Arch Version Repository Size ============================================================================ Installing: rsyslog7 i686 7.4.10-3.el6_6 rhel-6-workstation-rpms 1.3 M Removing: rsyslog i686 5.8.10-10.el6_6 @rhel-6-workstation-rpms 2.1 M Transaction Summary ============================================================================ Install 1 Package Remove 1 Package Total download size: 1.3 M Is this ok [y/d/N]:y
- アップグレードを開始するプロンプトが出されたら、
y
を入力します。 - アップグレードが完了すると、yum シェル プロンプトが表示されます。exit または exit を入力してシェルを終了します。
Finished Transaction > quit Leaving Shell ~]#
25.2. ログファイルの場所の特定
rsyslogd
が維持するログファイルの一覧は、/etc/rsyslog.conf
設定ファイルにあります。ほとんどのログファイルは /var/log/
ディレクトリーにあります。httpd や samba などの一部のアプリケーションでは、ログファイル用のディレクトリーが /var/log/
内にあります。
/var/log/
ディレクトリー内には番号が付いた複数のファイル(例: cron-20100906
)があることに気付くかもしれません。これらの番号はローテーションを行ったログファイルに追加されたタイムスタンプを表します。ログファイルは、ファイルサイズが大きくなり過ぎないようにローテーションが行われます。logrotate
パッケージには cron タスクが含まれており、/etc/logrotate.conf
設定ファイルと /etc/logrotate.d/
ディレクトリー内の設定ファイルに従って自動的にログファイルをローテーションします。
25.3. Rsyslog の基本設定
/etc/rsyslog.conf
です。ここでは、グローバルディレクティブ、モジュール、および フィルター 部分および アクション 部分で構成される ルール を指定できます。また、ハッシュ記号 (#
) の後にテキスト形式でコメントを追加することもできます。
25.3.1. フィルター
/etc/rsyslog.conf
設定ファイルでルールを定義するには、フィルターとアクションの両方を 1 行で定義し、1 つ以上の空白またはタブで区切ります。
- Facility (ファシリティー) /Priority (優先度) ベースのフィルター
- syslog メッセージのフィルターに最もよく知られた方法は、syslog メッセージをフィルターするファシリティー/優先度ベースのフィルターを使用して、2 つの条件( ファシリティー および 優先度 をドットで区切る)を使用することです。セレクターを作成するには以下の構文を使用します。
FACILITY.PRIORITY
詳細は以下のようになります。- FACILITY は、特定の syslog メッセージを生成するサブシステムを指定します。たとえば、mail サブシステムはメール関連のすべての syslog メッセージを処理します。FACILITY は、以下のキーワード(または数値コード)のいずれかで表示できます。 kern (0), user (1), mail (2), daemon (3), auth (4), syslog (5), lpr (6)、news (7)、uucp (8)、cron (9)、authpriv (10)、ftp (11)、および local0 through local7 (16 - 23)
- PRIORITY は、syslog メッセージの優先度を指定します。PRIORITY は以下のキーワード(または数字)のいずれかで表示できます。debug (7)、info (6)、notice (5)、warning (4)、err (3)、crit (2)、alert (1)、および emerg (0)。上記の構文は、定義された優先度もしくは より高い 優先度で syslog メッセージを選択します。いずれかの優先度のキーワード前に等号 (
=
) を付けると、指定された優先度の syslog メッセージのみ選択されることが指定されます。他のすべての優先度は無視されます。反対に、感嘆符 (!
) を優先度のキーワードの前に付けると、この優先度以外のすべての syslog メッセージが選択されます。
上記で指定されているキーワード以外に、アスタリスク (*
) を使用してすべてのファシリティーもしくは優先度を定義することもできます (アスタリスクをコンマの前か後に配置するかによる)。優先度キーワードnone
を指定すると、優先度のないファシリティーを指定することになります。ファシリティーおよび優先度の条件は、どちらも大文字と小文字を区別しません。定義するファシリティーや優先度が複数になる場合は、コンマ (,
) を使用して区切ります。同じ行に複数のセレクターを定義するには、セミコロン (;
) を使用して区切ります。セレクターフィールド内の各セレクターは、以前のものを上書きすることに注意してください。これにより、パターンから優先度が除外される可能性があります。例25.1 ファシリティー/優先度ベースのフィルター
以下は、/etc/rsyslog.conf
で指定できる単純な facility/priority ベースのフィルターの例です。優先度ですべてのカーネル syslog メッセージを選択するには、設定ファイルに以下のテキストを追加します。kern.*
優先度が crit 以上になるメール syslog メッセージすべてを選択するには、以下の形式を使用します。mail.crit
info または debug の優先度以外のすべての cron syslog メッセージを選択するには、設定ファイルで以下の形式を設定します。cron.!info,!debug
- プロパティーベースのフィルター
- プロパティーベースのフィルターを使用すると、
timegenerated
やsyslogtag
などのプロパティーで syslog メッセージをフィルターできます。プロパティーに関する詳細情報は、「プロパティー」 を参照してください。指定された各プロパティーは、表25.1「プロパティベースの比較処理」 で一覧表示されている比較処理のいずれかを使用して特定の値に対して比較できます。プロパティー名と比較処理はどちらも大文字と小文字を区別します。プロパティーベースのフィルターは、コロン (:
) で開始する必要があります。フィルターの定義には、以下の構文を使用します。:PROPERTY, [!]COMPARE_OPERATION, "STRING"
詳細は以下のようになります。- PROPERTY 属性は希望するプロパティーを指定します。
- オプションの感嘆符 (
!
) は比較処理の出力を無効にします。他のブール値演算子は現在、プロパティーベースのフィルターではサポートされていません。 - COMPARE_OPERATION 属性は、表25.1「プロパティベースの比較処理」 に記載の比較処理のいずれかを指定します。
- STRING 属性は、プロパティーが提供するテキストの比較先となる値を指定します。この値は、引用符で囲む必要があります。この文字列内の特定の文字をエスケープさせるには (たとえば、引用符 (
"
))、バックスラッシュ (\
) を使用します。
表25.1 プロパティベースの比較処理 比較処理 詳細 contains
提供された文字列が、プロパティーで提供されたテキストのいずれかの部分に適合するかどうかをチェックします。大文字と小文字を区別しない比較を実行するには、 contains_i
を使用します。isequal
用意された文字列をプロパティーで提供されたすべてのテキストと比較します。これら 2 つの値が適合するには、完全に等しいものである必要があります。 startswith
提供された文字列が、プロパティーで提供されたテキストのちょうど最初にあるかどうかをチェックします。大文字と小文字を区別しない比較を実行するには、 startswith_i
を使用します。regex
指定された POSIX BRE (Basic Regular Expression) をプロパティーが提供したテキストと比較します。 ereregex
指定された POSIX ERE (Extended Regular Expression) 正規表現をプロパティーが提供したテキストと比較します。 isempty
プロパティーが空かどうかをチェックします。値は破棄されます。これは、いくつかのフィールドが正規化の結果に基づいて設定される正規化データでの作業時に特に有用です。 例25.2 プロパティーベースのフィルター
以下は、/etc/rsyslog.conf
で指定できるプロパティーベースのフィルターの例です。syslog メッセージのテキストに文字列error
が含まれているものを選択するには、以下を使用します。:msg, contains, "error"
以下のフィルターは、ホスト名host1
から受信した syslog メッセージを選択します。:hostname, isequal, "host1"
(fatal lib error
など)fatal
とerror
の間にテキストがあるかどうかに関わらず、これらを含まない syslog メッセージを選択するには、以下を入力します。:msg, !regex, "fatal .* error"
- 式ベースのフィルター
- 式ベースのフィルターは、定義されている算術演算、ブール演算、または文字列演算に従って syslog メッセージを選択します。式ベースのフィルターは、rsyslog の独自のスクリプト言語 RainerScript を使用して複雑なフィルターを構築します。式ベースのフィルターの基本的な構文は、以下のようになります。
if EXPRESSION then ACTION else ACTION
詳細は以下のようになります。- EXPRESSION 属性は、
$msg startswith 'DEVNAME'
または$syslogfacility-text == 'local0' などの評価される式を表します
。and
およびor
演算子を使用して、1 つのフィルターに複数の式を指定できます。 - ACTION 属性は、式が
true
の値を返す場合に実行されるアクションを表します。これは単一のアクションの場合と、波括弧で囲まれた任意の複雑なスクリプトになる場合があります。 - 式ベースのフィルターは、行の最初の if キーワードで示されます。then キーワードは、EXPRESSION を ACTION から分離します。オプションで、else キーワードを使用して条件が満たされない場合に実行されるアクションを指定することもできます。
式ベースのフィルターでは、例25.3「式ベースのフィルター」 にあるように、波括弧に囲まれた式を使うことで条件をネスト化することができます。このスクリプトでは、式内で facility/priority-based フィルターを使用することができます。ただし、ここで property-based フィルターを使用することは推奨されません。RainerScript は、特殊な関数re_match()
およびre_extract()
を含む正規表現をサポートします。例25.3 式ベースのフィルター
以下の式には、ネスト化された条件が 2 つ含まれています。prog1 と呼ばれるプログラムが生成したログファイルが、メッセージ内の文字列 "test" の有無に基づいて 2 つのファイルに分割されます。if $programname == 'prog1' then { action(type="omfile" file="/var/log/prog1.log") if $msg contains 'test' then action(type="omfile" file="/var/log/prog1test.log") else action(type="omfile" file="/var/log/prog1notest.log") }
25.3.2. アクション
- ログファイルへの syslog メッセージの保存
- アクションの大半は、どのログファイルに syslog メッセージを保存するかを指定します。これは定義済みセレクターの後にファイルパスを指定することで行います。
FILTER PATH
ここでの FILTER はユーザーが指定したセレクターを表し、PATH はターゲットファイルのパスを表します。たとえば、以下のルールは、すべての cron syslog メッセージを選択するセレクターと、それらを/var/log/cron.log
ログファイルに保存するアクションで構成されています。cron.* /var/log/cron.log
デフォルトでは、syslog メッセージの生成時に毎回ログファイルは同期されます。同期を省略する場合は、ダッシュ記号 (-
) を該当するファイルパスの接頭辞として使います。FILTER -PATH
書き込みの直後にシステムが終了すると、情報が失われる場合があることに注意してください。ただし、この設定では、特に非常に詳細なログメッセージを生成するプログラムを実行する場合には、パフォーマンスも改善されます。指定したファイルパスは、static または dynamic のいずれかになります。静的ファイルは、上記の例で示されているように固定ファイルパスで示されます。動的ファイルパスは、受け取ったメッセージによって異なります。動的ファイルパスは、テンプレートと疑問符 (?
) の接頭辞で示されます。FILTER ?DynamicFile
ここでは、DynamicFile は出力パスを変更する事前定義テンプレートの名前です。ダッシュ記号 (-
) の接頭辞を使うと同期を無効にでき、またコロン (;
) 区切りで複数のテンプレートを使用できます。テンプレートに関する詳細は 「動的なファイル名の生成」 を参照してください。指定したファイルが既存の terminal または/dev/console
デバイスである場合、syslog メッセージは標準出力(特別な terminal処理を使用)へ送信されるか、X Window システムの使用時には(特別な/dev/console
-handling を使用)標準出力に送信されます。 - ネットワークを使った syslog メッセージの送信
- rsyslog を使用すると、ネットワーク経由で syslog メッセージを送受信できます。この機能により、1 台のマシンで複数ホストの syslog メッセージを管理できます。syslog メッセージをリモートマシンに転送するには、以下の構文を使用します。
@[(zNUMBER)]HOST:[PORT]
詳細は以下のようになります。- アットマーク(
@
)は、syslog メッセージがUDP
プロトコルを使用してホストへ転送されることを示します。TCP
プロトコルを使用するには、2 つのアットマークを空白なしで使用します(@@)
。 - オプションの zNUMBER 設定を使用すると、syslog メッセージの zlib 圧縮が可能になります。NUMBER 属性は圧縮のレベルを指定します(最低 1 から 9 まで)。圧縮が得られた値は
rsyslogd
によって自動的にチェックされます。メッセージが圧縮されるのは圧縮され、60 バイト未満のメッセージは圧縮されません。 - HOST 属性は、選択した syslog メッセージを受信するホストを指定します。
- PORT 属性は、ホストマシンのポートを指定します。
IPv6
アドレスをホストとして指定する場合は、アドレスを角括弧([
, ])で囲みます。例25.4 ネットワークを使用した syslog メッセージの送信
以下の例は、ネットワーク上で syslog メッセージを転送するアクションです (注記: すべてのアクションの前には、いずれかの優先度を持つすべてのメッセージを選択するセレクターが付いています)。UDP
プロトコルを介してメッセージを192.168.0.1
に転送するには、以下を入力します。*.* @192.168.0.1
ポート 6514 とTCP
プロトコルを使用してメッセージを "example.com" に転送するには、以下を使用します。*.* @@example.com:6514
以下ではメッセージを zlib (レベル 9 圧縮)で圧縮し、UDP
プロトコルを使用して2001:db8
::1 に転送します。*.* @(z9)[2001:db8::1]
- 出力チャンネル
- 出力チャンネルは主にログファイルの最大サイズを指定するために使用されます。これは、ログファイルのローテーションに非常に便利です (詳細は 「ログローテーション」 を参照してください)。出力チャンネルは基本的に出力アクションに関する情報を集めたものです。出力チャンネルは、
$outchannel
ディレクティブで定義されます。/etc/rsyslog.conf
で出力チャンネルを定義するには、以下の構文を使用します。$outchannel NAME, FILE_NAME, MAX_SIZE, ACTION
詳細は以下のようになります。- NAME 属性は、出力チャンネル名を指定します。
- FILE_NAME 属性は、出力ファイル名を指定します。出力チャンネルはファイルにのみ書き込み可能で、パイプやターミナル、その他の出力には書き込みできません。
- MAX_SIZE 属性は、( FILE_NAME内の)指定されたファイルの最大サイズを表します。この値は バイト 単位で指定します。
- ACTION 属性は、MAX_SIZE で定義された最大サイズに達すると実行するアクションを指定します。
定義済みの出力チャンネルをルール内のアクションとして使用するには、以下を入力します。FILTER :omfile:$NAME
例25.5 出力チャンネルのログローテーション
以下の出力は、出力チャンネルを使用した簡単なログローテーションを示しています。まず、出力チャンネルは$outchannel
ディレクティブで定義されます。$outchannel log_rotation, /var/log/test_log.log, 104857600, /home/joe/log_rotation_script
その後に、優先度を持つすべての syslog メッセージを選択し、取得した syslog メッセージ上の事前定義された出力チャンネルを実行するルール内で使用されます。*.* :omfile:$log_rotation
制限(この例では100 MB
)に達すると、/home/joe/log_rotation_script
が実行されます。このスクリプトには、ファイルを異なるフォルダーに移動することやその中の特別なコンテンツを編集すること、単にそれを削除することなど、様々なタスクを含めることができます。 - 特定ユーザーへの syslog メッセージの送信
- Rsyslog は、( 例25.7「複数アクションの指定」のように)メッセージを送信するユーザーのユーザー名を指定することで、syslog メッセージを特定のユーザーに送信できます。複数のユーザーを指定するには、各ユーザー名をコンマ (
,
) で区切ります。現在ログオンしている全ユーザーにメッセージを送るには、アスタリスク (*
) を使用します。 - プログラムの実行
- rsyslog を使用すると、選択した syslog メッセージに対してプログラムを実行し、
system()
呼び出しを使用してシェルでプログラムを実行できます。実行するプログラムを指定するには、そのプログラムの前に キャレット文字(^
) を付けます。その後に、受信したメッセージをフォーマットしてそれを 1 行のパラメーターとして指定した実行ファイルに渡すテンプレートを指定します (テンプレートに関する詳細は 「テンプレート」 を参照)。FILTER ^EXECUTABLE; TEMPLATE
ここでは、FILTER 条件の出力は EXECUTABLE で表されるプログラムによって処理されます。このプログラムは、有効な実行ファイルであればどれでも構いません。TEMPLATE をフォーマットするテンプレートの名前に置き換えます。例25.6 プログラムの実行
以下の例では、すべての優先度の syslog メッセージが選択され、template
テンプレートでフォーマットされ、パラメーターとして test-program プログラムに渡されます。その後、提供されているパラメーターで実行されます。*.* ^test-program;template
シェル実行アクションを使用する場合は注意してください。ホストからメッセージを受信して、シェル実行アクションを使用する際には、コマンドインジェクションに対する脆弱性があります。ユーザーが自身のアクションで実行されるように指定しているプログラム内で、攻撃者が別のコマンドの挿入と実行を試みる可能性があります。セキュリティー脅威の可能性を回避するには、シェル実行アクションの使用をよく検討してください。 - syslog メッセージのデータベースでの保存
- 選択された syslog メッセージは、データベースライター の動作を使用して、直接データベーステーブルに書き込むことができます。データベースライターは、以下の構文を使用します。
:PLUGIN:DB_HOST,DB_NAME,DB_USER,DB_PASSWORD;[TEMPLATE]
詳細は以下のようになります。- PLUGIN はデータベースの書き込みを処理する指定プラグインを呼び出します(
ommysql
プラグインなど)。 - DB_HOST 属性はデータベースのホスト名を指定します。
- DB_NAME 属性はデータベースの名前を指定します。
- DB_USER 属性はデータベースユーザーを指定します。
- DB_PASSWORD 属性は上記のデータベースユーザーで使用されるパスワードを指定します。
- TEMPLATE 属性は syslog メッセージを変更するテンプレートのオプション使用を指定します。テンプレートに関する詳細は 「テンプレート」 を参照してください。
MySQL および PostgreSQL の使用現在、rsyslog はMySQL
およびPostgreSQL
データベースにのみ対応しています。MySQL
およびPostgreSQL
のデータベースライター機能を使用するには、rsyslog-mysql および rsyslog-pgsql パッケージをそれぞれインストールします。また、/etc/rsyslog.conf
設定ファイルに適切なモジュールを読み込んでください。$ModLoad ommysql # Output module for MySQL support $ModLoad ompgsql # Output module for PostgreSQL support
rsyslog モジュールの詳細は、「Rsyslog モジュールの使用」 を参照してください。または、omlibdb
モジュールが提供する汎用のデータベースインターフェースを使用することもできます(サポート対象: Firebird/Interbase、MS SQL、Sybase、SQLLite、Ingres、Oracle、mSQL)。 - syslog メッセージの破棄
- 選択したメッセージを破棄する場合は、チルダ文字(
~
)を使用します。FILTER ~
破棄するアクションは、ほとんどの場合、さらに処理をする前にメッセージをフィルタリングするために使用されます。繰り返されるメッセージを省略しなければログファイルがいっぱいになってしまう場合に、これは効果的です。破棄アクションの結果は、指定された設定ファイル内の場所によって異なります。最善の結果を得るためにも、これらのアクションは、アクションリストの上に配置します。一旦破棄したメッセージを、設定ファイルの後の行で回復することはできないことに注意してください。たとえば、以下のルールは cron syslog メッセージを破棄します。cron.* ~
複数アクションの指定
FILTER ACTION & ACTION & ACTION
例25.7 複数アクションの指定
crit
)を持つすべてのカーネル syslog メッセージはユーザー user1
に送信され、テンプレート temp
によって処理され、test-program
実行可能ファイルに渡され、UDP
プロトコルを介して 192.168.0.
1 に転送されます。
kern.=crit user1 & ^test-program;temp & @192.168.0.1
;
) を付け、続けてテンプレートの名前を指定します。テンプレートに関する詳細は 「テンプレート」 を参照してください。
/etc/rsyslog.conf
では、テンプレート定義が常にルール定義の前にくるようにする必要があります。
25.3.3. テンプレート
/etc/rsyslog.conf
で以下の構文を使用します。
$template TEMPLATE_NAME,"text %PROPERTY% more text", [OPTION]
$template
は、その後のテキストを示すテンプレートディレクティブで、テンプレートを定義します。TEMPLATE_NAME
テンプレートの名前です。この名前は、テンプレートを参照します。- 2 つの引用符(
「…
)の間はすべて実際のテンプレートテキストです。このテキスト内では、改行文字の」
\n
、キャリッジリターンの\r
などの特殊文字を使用できます。%
または"
などのその他の文字を使用する場合は、それらの文字を文字どおりエスケープする必要があります。 - 2 つのパーセントマーク(
%
)の間にあるテキストは、syslog メッセージの特定のコンテンツにアクセスできるようにする プロパティー を指定します。プロパティーに関する詳細情報は、「プロパティー」 を参照してください。 OPTION
属性は、テンプレート機能を修正するオプションを指定します。現在サポートされているテンプレートオプションは、テキストを SQL クエリーとしてフォーマットするのに使用されるsql
およびstdsql
です。sql オプションおよび stdsql オプションデータベースライターは、sql
オプションまたはstdsql
オプションがテンプレートで指定されているかどうかをチェックします。指定されていないと、データベースライターはアクションを実行しません。これは SQL インジェクションなどのセキュリティーの脅威を回避するためです。詳細は、『 「アクション」 の「syslog メッセージのデータベースで』 の保存」を参照してください。
動的なファイル名の生成
timegenerated
プロパティーを使用して、各 syslog メッセージに一意のファイル名を生成します。
$template DynamicFile,"/var/log/test_logs/%timegenerated%-test.log"
$template
ディレクティブは単にテンプレートを指定するだけです。効果を反映するためには、それをルール内で使用しなければなりません。/etc/rsyslog.conf
で、アクション定義でクエスチョンマーク(?
)を使用して、動的ファイル名テンプレートをマークします。
*.* ?DynamicFile
プロパティー
%
)の内側)で定義されたプロパティーにより、プロパティー置換関数 を使用して syslog メッセージの各種コンテンツにアクセスできるようになります。テンプレート内(2 つの引用符(「 …」
)でプロパティーを定義するには、以下の構文を使用します。
%PROPERTY_NAME[:FROM_CHAR:TO_CHAR:OPTION]%
- PROPERTY_NAME 属性は、プロパティー名を指定します。利用可能なすべてのプロパティーとその詳細な説明は、man ページの
rsyslog.conf(5)
の「 Available Properties 」セクションにあります。 - FROM_CHAR 属性および TO_CHAR 属性は、指定したプロパティーが動作する文字の範囲を表します。他の方法では、正規表現を使用して文字の範囲を指定することもできます。これを行うには、文字
R
を FROM_CHAR 属性として設定し、希望する正規表現を TO_CHAR 属性として指定します。 - OPTION 属性は、入力を
小
文字に変換する lowercase オプションなどのプロパティーオプションを指定します。利用可能なすべてのプロパティーオプションとその詳細な説明は、man ページのrsyslog.conf(5)
の Property Options セクションでご覧になれます。
- 以下のプロパティーは、syslog メッセージのメッセージテキスト全体を取得します。
%msg%
- 以下のプロパティは、syslog メッセージにあるメッセージテキストの最初の 2 文字を取得します。
%msg:1:2%
- 以下のプロパティは、syslog メッセージの全メッセージテキストを取得して、最後のラインフィード文字を省きます。
%msg:::drop-last-lf%
- 以下のプロパティーは、syslog メッセージの受信時に生成されるタイムスタンプの最初の 10 文字を取得し、『RFC 3999』 日付標準に従ってフォーマットします。
%timegenerated:1:10:date-rfc3339%
テンプレートの例
例25.8 詳細な syslog メッセージのテンプレート
$template verbose, "%syslogseverity%, %syslogfacility%, %timegenerated%, %HOSTNAME%, %syslogtag%, %msg%\n"
mesg(1)
パーミッションが yes
に設定されている全ユーザーに送信されるメッセージ)に似ているテンプレートを示しています。このテンプレートは改行後 (\r
と \n
を使用) にメッセージテキストと共にホスト名、メッセージタグ、およびタイムスタンプを出力してベル (\7
を使用) を鳴らします。
例25.9 ウォールメッセージのテンプレート
$template wallmsg,"\r\n\7Message from syslogd@%HOSTNAME% at %timegenerated% ...\r\n %syslogtag% %msg%\n\r"
sql
オプションに注目してください。これは、メッセージを MySQL SQL
クエリーとしてフォーマットするようにデータベースライターに指示します。
例25.10 データベースフォーマットが設定されたメッセージのテンプレート
$template dbFormat,"insert into SystemEvents (Message, Facility, FromHost, Priority, DeviceReportedTime, ReceivedAt, InfoUnitID, SysLogTag) values ('%msg%', %syslogfacility%, '%HOSTNAME%', %syslogpriority%, '%timereported:::date-mysql%', '%timegenerated:::date-mysql%', %iut%, '%syslogtag%')", sql
RSYSLOG_
接頭辞で識別される事前定義のテンプレートのセットも含まれています。これらは syslog の使用用に予約されており、競合を回避するためにこの接頭辞を使用してテンプレートを作成しないことが推奨されます。以下の一覧では、これらの事前定義のテンプレートとその定義を示しています。
RSYSLOG_DebugFormat
- プロパティー問題のトラブルシューティングに使われる特別なフォーマット。
"Debug line with all properties:\nFROMHOST: '%FROMHOST%', fromhost-ip: '%fromhost-ip%', HOSTNAME: '%HOSTNAME%', PRI: %PRI%,\nsyslogtag '%syslogtag%', programname: '%programname%', APP-NAME: '%APP-NAME%', PROCID: '%PROCID%', MSGID: '%MSGID%',\nTIMESTAMP: '%TIMESTAMP%', STRUCTURED-DATA: '%STRUCTURED-DATA%',\nmsg: '%msg%'\nescaped msg: '%msg:::drop-cc%'\nrawmsg: '%rawmsg%'\n\n\"
RSYSLOG_SyslogProtocol23Format
- IETF のインターネットドラフト ietf-syslog-protocol-23 で指定されるフォーマット。これは、新しい syslog 標準 RFC になると想定されています。
"%PRI%1 %TIMESTAMP:::date-rfc3339% %HOSTNAME% %APP-NAME% %PROCID% %MSGID% %STRUCTURED-DATA% %msg%\n\"
RSYSLOG_FileFormat
- TraditionalFileFormat に類似した新しいスタイルのログファイルフォーマットですが、タイムスタンプとタイムゾーン情報の精度がより高くなります。
"%TIMESTAMP:::date-rfc3339% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n\"
RSYSLOG_TraditionalFileFormat
- タイムスタンプの精度の低い古いスタイルのデフォルトのログファイルフォーマット。
"%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n\"
RSYSLOG_ForwardFormat
- 高精度のタイムスタンプとタイムゾーン情報が含まれる転送フォーマット。
"%PRI%%TIMESTAMP:::date-rfc3339% %HOSTNAME% %syslogtag:1:32%%msg:::sp-if-no-1st-sp%%msg%\"
RSYSLOG_TraditionalForwardFormat
- 精度の低いタイムスタンプを使用する従来の転送フォーマット。
"%PRI%%TIMESTAMP% %HOSTNAME% %syslogtag:1:32%%msg:::sp-if-no-1st-sp%%msg%\"
25.3.4. グローバルディレクティブ
rsyslogd
デーモンに適用される設定オプションです。通常、これらは rsyslogd
デーモンの動作に影響を与える事前定義された特定の変数の値、またはそれに続くルールを指定します。グローバルディレクティブはすべて、ドル記号($
)で開始する必要があります。1 行ごとに指定できるディレクティブは 1 つのみです。以下は、syslog メッセージキューの最大サイズを指定するグローバルディレクティブの例です。
$MainMsgQueueSize 50000
10,000
メッセージ)は、別の値を指定することで上書きできます(上記の例を参照)。
/etc/rsyslog.conf
設定ファイルで複数のディレクティブを定義できます。1 つのディレクティブは、同じディレクティブの発生が再度検出されるまですべての設定オプションの動作に影響します。グローバルディレクティブは、アクション、キュー、デバッグの設定に使用できます。利用可能なすべての設定ディレクティブの一覧は、「オンラインドキュメント」 でご覧になれます。現在、$ ベースの構文 (「新規設定フォーマットの使用」 を参照) に代わる新たな設定フォーマットが開発されています。ただし、従来のグローバルディレクティブはレガシーフォーマットとして引き続きサポートされます。
25.3.5. ログローテーション
/etc/logrotate.conf
設定ファイルのサンプルです。
# rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 4 # uncomment this if you want your log files compressed compress
.gz
形式に圧縮されます。ハッシュマーク (#) で始まる行はすべてコメントで、これは処理されません。
/etc/logrotate.d/
ディレクトリーに、特定ログファイル用の個別の設定ファイルを作成し、そこに設定オプションを定義することが推奨されます。
/etc/logrotate.d/
ディレクトリーに設定ファイルが保存されている例を以下に示します。
/var/log/messages { rotate 5 weekly postrotate /usr/bin/killall -HUP syslogd endscript }
/var/log/messages
ログファイル専用の特有なものです。ここで指定された設定は、可能な場合はグローバルオプションを上書きします。そのため、ローテートされた /var/log/messages
ログファイルは、グローバルオプションで定義された 4 週間ではなく、5 週間保管されます。
weekly
- ログファイルの週ごとのローテーションを指定します。同様なディレクティブには以下のものがあります。daily
monthly
yearly
compress
- ローテートしたログファイルの圧縮を有効にします。同様なディレクティブには以下のものがあります。nocompress
compresscmd
- 圧縮に使用するコマンドを指定します。uncompresscmd
compressext
- 圧縮に使用する拡張子を指定します。compressoptions
- 使用する圧縮プログラムに渡すオプションを指定します。delaycompress
- ログファイルの圧縮を次回のログファイルのローテーションまで延期します。
rotate INTEGER
- ログファイルが削除される、または特定のアドレスに送信されるまでにログファイルがローテーションされる回数を指定します。0
の値を指定すると、ローテーションではなく古いログファイルが削除されます。mail ADDRESS
- このオプションは、rotate
ディレクティブで定義された回数だけローテーションされたログファイルを特定のアドレスへメール送信できるようにします。同様なディレクティブには以下のものがあります。nomail
mailfirst
- 間もなく期限切れになるログファイルではなく、ローテートされたログファイルがメール送信されるよう指定します。maillast
- 交代されたばかりのログファイルではなく、間もなく期限切れになるログファイルがメール送信されるよう指定します。mail
が有効な場合は、これがデフォルトのオプションです。
logrotate(5)
を参照してください。
25.4. 新規設定フォーマットの使用
/etc/rsyslog.conf
設定ファイルでデフォルトで使用されます。rsyslog 7 をインストールするには、「rsyslog バージョン 7 へのアップグレード」 を参照してください。
input()
ステートメントおよび ruleset()
ステートメントを実装し、/etc/rsyslog.conf
設定ファイルを新しい構文で記述できます。新しい構文は主に構成される点で異なります。パラメーターは input、action、template、module load などのステートメントへの引数として渡されます。オプションの範囲はブロックによって制限されます。オプションのスコープはブロックにより制限されます。これにより、可読性が増し、設定の間違えによって発生するバグの数が減ります。一部の機能は両方の構文で公開され、他の機能は新しい構文でのみ公開されます。
$InputFileName /tmp/inputfile $InputFileTag tag1: $InputFileStateFile inputfile-state $InputRunFileMonitor
input(type="imfile" file="/tmp/inputfile" tag="tag1:" statefile="inputfile-state")
25.4.1. ルールセット
/etc/rsyslog.conf
ファイルでは、すべてのルールは、すべての入力メッセージの外観順に評価されます。このプロセスは最初のルールで開始し、すべてのルールが処理されるか、ルールのいずれかがメッセージを破棄するまで続きます。
/etc/rsyslog.conf
のレガシールールセット定義は以下のようになります。
$RuleSet rulesetname rule rule2
$RuleSet RSYSLOG_DefaultRuleset
input()
ステートメントおよび ruleset()
ステートメントが予約されます。/etc/rsyslog.conf
の新しい形式のルールセット定義は以下のようになります。
ruleset(name="rulesetname") { rule rule2 call rulesetname2 … }
RSYSLOG_
で始めることはできません。RSzySLOG_DefaultRuleset
は、メッセージが他のルールセットを割り当てていない場合に実行するデフォルトのルールセットを定義します。rule と rule 2 では、上記の filter-action 形式でルールを定義できます。call
パラメーターでは、他の ruleset ブロック内から ruleset を呼び出すことでこれらをネスト化できます。
input(type="input_type" port="port_num" ruleset="rulesetname");
input()
用に指定できます。rulesetname を、メッセージに対して評価されるルールセットの名前に置き換えます。入力メッセージが明示的に ruleset にバインドされていない場合は、デフォルトの ruleset が適用されます。
例25.11 ルールセットの使用
/etc/rsyslog.conf
に追加します。
ruleset(name="remote-6514") { action(type="omfile" file="/var/log/remote-6514") } ruleset(name="remote-601") { cron.* action(type="omfile" file="/var/log/remote-601-cron") mail.* action(type="omfile" file="/var/log/remote-601-mail") } input(type="imtcp" port="6514" ruleset="remote-6514"); input(type="imtcp" port="601" ruleset="remote-601");
601
の場合、メッセージはファシリティーに従ってソートされます。次に、TCP 入力が有効になり、ルールセットにバインドされます。この設定が機能するには、必須モジュール (imtcp) の読み込みが必要なことに注意してください。
25.4.2. sysklogd との互換性
-c
オプションで指定される互換性モードは rsyslog バージョン 5 にありますが、バージョン 7 には含まれません。また、sysklogd-style コマンドラインオプションは非推奨となり、これらのコマンドラインオプションを使用した rsyslog の設定を回避する必要があります。ただし、複数のテンプレートおよびディレクティブを使用して、rsyslogd
が sysklogd のような動作をエミュレートするように設定できます。
rsyslogd
オプションの詳細は、man ページの rsyslogd(8)
を参照してください。
25.5. Rsyslog でのキュー (Queue) を使った操作
図25.1 Rsyslog 内のメッセージフロー

[D]
/etc/rsyslog.conf
で定義されたルールが適用されます。これらのルールに基づいて、rule processor はどのアクションが実行されるかを評価します。アクションにはそれぞれ、独自のアクションキューがあります。メッセージはこのキューにより各アクションプロセッサーに渡され、これが最終的な出力を作成します。この時点では、1 つのメッセージに関して複数のアクションが同時に実行可能であることに注意してください。このためにメッセージは複製され、複数のアクションプロセッサーに渡されます。
- rsyslog構造で切り離されたプロデューサーとコンシューマーのバッファーとして機能します。
- メッセージで実行されるアクションの 並列化 を可能にします。
SSH
ロギングが阻止され、SSH
アクセスが阻止されるなどの重大な問題が発生することがあります。したがって、ネットワークを介して転送される、またはデータベースに転送される出力専用アクションキューを使用することが推奨されます。
25.5.1. キューの定義
/etc/rsyslog.conf
に追加します。
$objectQueueType queue_type
MainMsg
に置き換え)またはアクションキュー( オブジェクト を Action
に置き換える)を適用することができます。queue_type を direct
、linkedlist
または fixedarray
(インメモリーキュー)または ディスク
のいずれかに置き換えます。
ダイレクトキュー (Direct Queue)
$objectQueueType Direct
MainMsg
または Action
に置き換えて、このオプションをメインメッセージキューまたはアクションキューにそれぞれ使用します。ダイレクトキューを使用すると、メッセージはプロデューサーからコンシューマーに直ちに直接渡されます。
ディスクキュー
/etc/rsyslog.conf
に以下を入力します。
$objectQueueType Disk
MainMsg
または Action
に置き換えて、このオプションをメインメッセージキューまたはアクションキューにそれぞれ使用します。ディスクキューは、デフォルトサイズの 10 Mb で部分で記述されます。このデフォルトサイズは、以下の設定ディレクティブで変更できます。
$objectQueueMaxFileSize size
$objectQueueFilename name
メモリー内キュー
$ActionQueueSaveOnShutdown
設定を使用して、シャットダウン前にデータを保存することができます。インメモリーキューには 2 種類あります。
- FixedArray キュー: メインメッセージキューのデフォルトモードで、10,000 要素の制限があります。このタイプのキューは、キュー要素へのポインターを保有する固定かつ事前割り当てのアレイを使用します。これらのポインターのために、キューが空であってもある程度のメモリーが消費されます。しかし、FixedArray は、最善のランタイムパフォーマンスを提供し、比較的少ないキューに登録済みのメッセージと高パフォーマンスを期待する場合に最適なものです。
- LinkedList キュー: ここではすべての構造物はリンクされたリストに動的に割り当てられるので、メモリーは必要な場合にのみ割り当てられます。LinkedList キューは時折発生するメッセージバーストにもうまく対応します。
$objectQueueType LinkedList
$objectQueueType FixedArray
MainMsg
または Action
に置き換えて、このオプションをメインメッセージキューまたはアクションキューにそれぞれ使用します。
ディスク補助のインメモリーキュー (Disk-Assisted In-memory Queues)
$objectQueueFileName
ディレクティブを追加してディスクのファイル名を定義します。このキューは disk-assisted となり、インメモリーキューとディスクキューが連携します。
$objectQueueHighWatermark number
$objectQueueLowWatermark number
MainMsg
または Action
に置き換えて、このオプションをメインメッセージキューまたはアクションキューにそれぞれ使用します。number をキューに格納されたメッセージ数に置き換えます。インメモリーキューがハイウォーターマークで定義された数字に到達すると、ディスクへのメッセージの書き込みが開始し、インメモリーキューのサイズがローウォーターマークで定義された数字になるまで続きます。watermarks を正しく設定すると、ディスクファイルへの書き込みが長くなるため、不要なディスク書き込みが最小限に抑えられます。したがって、高い基準は $objectQueueSize で設定されたキュー容量全体よりも低くなければなりません。そのために、ハイウォーターマークは queue.size で設定されているキューのキャパシティ全体より低い必要があります。一方で、ハイウォーターマークを低く設定しすぎると、不必要なディスク補助が頻繁に発生してしまいます。
例25.12 サーバーへのログメッセージの確実な転送
UDP
プロトコルを使用している接続には設定できないことに注意してください。ロギングサーバーがプライベートネットワーク外にある場合などに、完全に信頼できる接続を確立するには、「RELP の使用」 で説明されている RELP プロトコルの使用を検討してください。
手順25.2 単一サーバーへの転送
/etc/rsyslog.conf
の以下の設定を使用するか、/etc/rsyslog.d/
ディレクトリーに以下の内容のファイルを作成します。$ActionQueueType LinkedList $ActionQueueFileName example_fwd $ActionResumeRetryCount -1 $ActionQueueSaveOnShutdown on *.* @@example.com:6514
詳細は以下のようになります。$ActionQueueType
は LinkedList インメモリーキューを有効にします。$ActionFileName
はディスクストレージを定義します。この場合、バックアップファイルが example_fwd 接頭辞を持つ/var/lib/rsyslog/
ディレクトリーに作成されます。$ActionResumeRetryCount -1
設定は、サーバーが応答しない場合に接続を再試行するときに rsyslog がメッセージを破棄しないようにします。- rsyslog がシャットダウンすると、有効になっている
$ActionQueueSaveOnShutdown
がインメモリーデータを保存します。 - 最後の行は受信メッセージをすべてロギングサーバーに転送します。ポートの指定は任意です。
上記の設定では、rsyslog は、リモートサーバーに到達できない場合にメッセージをメモリーに保持します。ディスク上にあるファイルは、設定されたメモリーキュー領域が rsyslog で不足するか、シャットダウンする必要がある場合にのみ作成されます。これにより、システムパフォーマンスが向上します。
手順25.3 複数のサーバーへの転送
- 各送信先サーバーでは、個別の転送ルール、アクションキュー指定、ディスク上のバックアップファイルが必要です。たとえば、
/etc/rsyslog.conf
で以下の設定を使用するか、/etc/rsyslog.d/
ディレクトリーに以下の内容のファイルを作成します。$ActionQueueType LinkedList $ActionQueueFileName example_fwd1 $ActionResumeRetryCount -1 $ActionQueueSaveOnShutdown on *.* @@example1.com $ActionQueueType LinkedList $ActionQueueFileName example_fwd2 $ActionResumeRetryCount -1 $ActionQueueSaveOnShutdown on *.* @@example2.com
25.5.2. rsyslog ログファイルの新しいディレクトリーの作成
syslogd
デーモンとして実行され、SELinux により管理されます。したがって、rsyslog が書き込む必要があるすべてのファイルでは適切な SELinux ファイルコンテキストが設定されている必要があります。
手順25.4 新規作業用ディレクトリーの作成
- 作業用ファイルを格納する別のディレクトリーを使用する必要がある場合は、以下のようにディレクトリーを作成します。
~]# mkdir
/rsyslog
- SELinux ポリシーを管理するためにユーティリティーをインストールします。
~]# yum install policycoreutils-python
- SELinux ディレクトリーコンテキストタイプを
/var/lib/rsyslog/
ディレクトリーと同じものに設定します。~]# semanage fcontext -a -t syslogd_var_lib_t /rsyslog
- SELinux コンテキストを適用します。
~]# restorecon -R -v /rsyslog restorecon reset /rsyslog context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:syslogd_var_lib_t:s0
- 必要な場合は、以下のように SELinux コンテキストを確認します。
~]# ls -Zd /rsyslog drwxr-xr-x. root root system_u:object_r:syslogd_var_lib_t:s0 /rsyslog
- 必要に応じてサブディレクトリーを作成します。以下に例を示します。
~]# mkdir
サブディレクトリーが親ディレクトリーと同じ SELinux コンテキストで作成されます。/rsyslog/work
/etc/rsyslog.conf
を有効にする直前にそのファイルに次の行を追加します。$WorkDirectory /rsyslog/work
この設定は、設定ファイルを解析するときに次の WorkDirectory ディレクティブが検出されるまで有効になります。
25.5.3. キューの管理
キューのサイズ制限
$objectQueueHighWatermark number
MainMsg
または Action
に置き換えて、このオプションをメインメッセージキューまたはアクションキューにそれぞれ使用します。number をキューに格納されたメッセージ数に置き換えます。キューサイズを実際のメモリーサイズではなくメッセージの数として設定します。デフォルトのキューサイズは、メインメッセージキューとルールセットキューの場合は 10,000 メッセージ、アクションキューの場合は 1,000 となります。
$objectQueueMaxDiscSpace number
MainMsg
または Action
に置き換えます。数 で指定したサイズ制限がヒットすると、キューデキューのメッセージで十分な領域が解放されるまでメッセージは破棄されます。
メッセージの破棄
$objectQueueDiscardMark number
MainMsg
または Action
に置き換えて、このオプションをメインメッセージキューまたはアクションキューにそれぞれ使用します。ここでは、number は、破棄プロセスを開始するためにキューにある必要がある多数のメッセージを表します。破棄するメッセージを定義するには、以下を使用します。
$objectQueueDiscardSeverity priority
タイムフレームの使用
$objectQueueDequeueTimeBegin hour
$objectQueueDequeueTimeEnd hour
ワーカースレッドの設定
$objectQueueWorkerThreadMinimumMessages number
$objectQueueWorkerThreads number
$objectQueueWorkerTimeoutThreadShutdown time
-1
として指定すると、スレッドは閉じられません。
バッチのデキュー
$objectQueueDequeueBatchSize number
キューの終了
$objectQueueTimeoutShutdown time
$objectQueueTimeoutActionCompletion time
$objectQueueTimeoutSaveOnShutdown time
25.5.4. rsyslog キューの新規構文の使用
/etc/rsyslog.conf
で個別に使用するか、またはルールセット内部で使用できる action()
オブジェクト内に定義されます。アクションキューの形式は以下のようになります。
action(type="action_type" queue.size="queue_size" queue.type="queue_type" queue.filename="file_name")
disk
を選択するか、インメモリーキュー( direct
、Linkedlist
、または fixedarray
)のいずれかを選択します。file_name には、パスではなくファイル名のみを指定します。ログファイルを保持する新規ディレクトリーを作成する場合は、SELinux コンテキストを設定する必要があることに注意してください。例は、「rsyslog ログファイルの新しいディレクトリーの作成」 を参照してください。
例25.13 アクションキューの定義
action(type="omfile" queue.size="10000" queue.type="linkedlist" queue.filename="logfile")
*.* action(type="omfile" file="/var/lib/rsyslog/log_file )
*.* action(type="omfile" queue.filename="log_file" queue.type="linkedlist" queue.size="10000" )デフォルトの作業ディレクトリー、または最後に設定した作業ディレクトリーが使用されます。別の作業ディレクトリーを使用する必要がある場合は、アクションキューの前に以下の行を追加します。
global(workDirectory="/directory")
例25.14 新規構文を使用した単一サーバーへの転送
omfwd
プラグインは、UDP
または TCP
を介した転送を提供するために使用されます。デフォルトは UDP
です。プラグインは組み込まれているため、ロードする必要がありません。
/etc/rsyslog.conf
の以下の設定を使用するか、/etc/rsyslog.d/
ディレクトリーに以下の内容のファイルを作成します。
*.* action(type="omfwd" queue.type="linkedlist" queue.filename="example_fwd" action.resumeRetryCount="-1" queue.saveOnShutdown="on" target="example.com" port="6514" protocol="tcp" )
queue.type="linkedlist"
は、LinkedList インメモリーキューを有効にします。queue.filename
はディスクストレージを定義します。バックアップファイルは、前のグローバルの workDirectory ディレクティブで指定された作業ディレクトリーに example_fwd 接頭辞を付けて作成されます。action.resumeRetryCount -1
設定は、サーバーが応答しない場合に接続を再試行するときに rsyslog がメッセージを破棄しないようにします。- rsyslog がシャットダウンすると、有効になっている
queue.saveOnShutdown="on"
はインメモリーデータを保存します。 - 最後の行は受信メッセージをすべてロギングサーバーに転送します。ポートの指定は任意です。
25.6. ロギングサーバーでの rsyslog の設定
rsyslog
サービスは、ロギングサーバーを実行する機能と、個別のシステムがログファイルをロギングサーバーに送信するように設定する機能の両方を提供します。クライアントの rsyslog
設定の詳細は、例25.12「サーバーへのログメッセージの確実な転送」 を参照してください。
rsyslog
サービスは、ロギングサーバーとして使用するシステムと、そのシステムにログを送信するように設定する全システムにインストールする必要があります。rsyslog は、Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 にデフォルトでインストールされます。必要な場合は、確実にインストールするために root
で以下のコマンドを入力します。
~]# yum install rsyslog
/etc/services
ファイルに記載されている UDP
および 514
です。ただし、rsyslog
はデフォルトで、ポート 514
で TCP
を使用するように設定されています。設定ファイル /etc/rsyslog.conf
では、TCP
は @@ で示され ます
。
~]# semanage port -l | grep syslog
syslogd_port_t tcp 6514, 601
syslogd_port_t udp 514, 6514, 601
semanage ユーティリティーは、policycoreutils-python パッケージの一部として提供されます。必要な場合は、以下のようにパッケージをインストールします。
~]# yum install policycoreutils-python
rsyslog
の SELinux タイプであるrsyslogd_t
は、SELinux タイプが rsh_port_t
のリモートシェル(rsh
)ポートでの送受信を許可するよう設定されます(デフォルトではポート 514
の TCP
に設定されます)。したがって、semanage を使用してポート 514
で TCP
を明示的に許可する必要はありません。たとえば、SELinux がポート 514
でそのTCPを許可するよう設定されているかを確認するには、以下のコマンドを入力します。
~]# semanage port -l | grep 514 output omitted rsh_port_t tcp 514 syslogd_port_t tcp 6514, 601 syslogd_port_t udp 514, 6514, 601
root
ユーザーで実行する必要があります。
手順25.5 ポートで rsyslog トラフィックを許可する SELinux の設定
rsyslog
トラフィックに新しいポートを使用する必要がある場合は、ロギングサーバーとクライアントでこの手順を実行します。たとえば、ポート 10514
で TCP
トラフィックを送受信するには、以下の手順を実行します。
~]# semanage port -a -t syslogd_port_t -p tcp 10514
- 以下のコマンドを入力して SELinux ポートを確認します。
~]# semanage port -l | grep syslog
- 新しいポートがすでに
/etc/rsyslog.conf
に設定されている場合は、rsyslog
を再起動して変更を反映します。~]# service rsyslog restart
rsyslog
が現在リッスンしているポートを確認します。~]# netstat -tnlp | grep rsyslog tcp 0 0 0.0.0.0:10514 0.0.0.0:* LISTEN 2528/rsyslogd tcp 0 0 :::10514 :::* LISTEN 2528/rsyslogd
semanage port
コマンドの詳細は、man ページの semanage-port(8) を参照してください。
手順25.6 iptables ファイアウォールの設定
iptables
ファイアウォールが、受信 rsyslog
トラフィックを許可するように設定します。たとえば、ポート 10514
で TCP
トラフィックを許可するには、以下の手順を実行します。
- テキストエディターで
/etc/sysconfig/iptables
ファイルを開きます。 - ポート
10514
のTCP
トラフィックを許可するINPUT
ルールを追加します。新しいルールは、REJECT
トラフィックに REJECT ルールの前に
表示される必要があります。-A INPUT -m state --state NEW -m tcp -p tcp --dport 10514 -j ACCEPT
/etc/sysconfig/iptables
ファイルへの変更を保存します。- ファイアウォールの変更を有効にするために
iptables
サービスを再起動します。~]#
service iptables restart
手順25.7 rsyslog で、リモートログメッセージを受信してソートするように設定
- テキストエディターで
/etc/rsyslog.conf
ファイルを開き、以下の手順を実行します。- モジュールセクションと
Provides UDP syslog reception
セクションの間に以下の行を追加します。# Define templates before the rules that use them ### Per-Host Templates for Remote Systems ### $template TmplAuthpriv, "/var/log/remote/auth/%HOSTNAME%/%PROGRAMNAME:::secpath-replace%.log" $template TmplMsg, "/var/log/remote/msg/%HOSTNAME%/%PROGRAMNAME:::secpath-replace%.log"
- デフォルトの
Provides TCP syslog reception
セクションを、以下の内容に置き換えます。# Provides TCP syslog reception $ModLoad imtcp # Adding this ruleset to process remote messages $RuleSet remote1 authpriv.* ?TmplAuthpriv *.info;mail.none;authpriv.none;cron.none ?TmplMsg $RuleSet RSYSLOG_DefaultRuleset #End the rule set by switching back to the default rule set $InputTCPServerBindRuleset remote1 #Define a new input and bind it to the "remote1" rule set $InputTCPServerRun 10514
/etc/rsyslog.conf
ファイルへの変更を保存します。 rsyslog
サービスは、ロギングサーバーと、そのサーバーにログ記録を試みるシステムの両方で実行する必要があります。- service コマンドを使用して
rsyslog
サービスを起動します。~]#
service rsyslog start
rsyslog
サービスが今後自動的に起動されるようにするには、root で以下のコマンドを入力します。~]#
chkconfig rsyslog on
25.6.1. ロギングサーバーでの新規テンプレート構文の使用
template(name="TmplAuthpriv" type="string" string="/var/log/remote/auth/%HOSTNAME%/%PROGRAMNAME:::secpath-replace%.log" ) template(name="TmplMsg" type="string" string="/var/log/remote/msg/%HOSTNAME%/%PROGRAMNAME:::secpath-replace%.log" )
template(name="TmplAuthpriv" type="list") { constant(value="/var/log/remote/auth/") property(name="hostname") constant(value="/") property(name="programname" SecurePath="replace") constant(value=".log") } template(name="TmplMsg" type="list") { constant(value="/var/log/remote/msg/") property(name="hostname") constant(value="/") property(name="programname" SecurePath="replace") constant(value=".log") }このテンプレートテキスト形式は、rsyslog の初心者にとって理解しやすいかもしれません。したがって、要件が変更したら簡単に変更できます。
module(load="imtcp") ruleset(name="remote1"){ authpriv.* action(type="omfile" DynaFile="TmplAuthpriv") *.info;mail.none;authpriv.none;cron.none action(type="omfile" DynaFile="TmplMsg") } input(type="imtcp" port="10514" ruleset="remote1")
25.7. Rsyslog モジュールの使用
$ModLoad MODULE
$ModLoad
は指定されたモジュールをロードするグローバルディレクティブで、MODULE は希望のモジュールを表します。たとえば、rsyslog を有効にして標準テキストファイルを syslog メッセージに変換する Text File Input Module(imfile)を読み込む場合は、/etc/rsyslog.conf
設定ファイルで以下の行を指定します。
$ModLoad imfile
- 入力モジュール: 入力モジュールは、さまざまなソースからメッセージを収集します。入力モジュールの名前は、常に imfile のように接頭辞
im
で始まります。 - 出力モジュール: 出力モジュールはメッセージをネットワーク上に送信したり、データベース内に保存したり、暗号化するなど、様々なターゲットにメッセージを発行するための機能を提供します。出力モジュールの名前は常に omsnmp や
om
relp などのように接頭辞 om で始まります。 - パーサーモジュール: これらのモジュールは、カスタムの解析ルールの作成や不正な形式のメッセージ解析に使用されます。C プログラミング言語についてある程度の知識があれば、独自のメッセージパーサーが作成できます。パーサーモジュールの名前は、常に
pm
rfc5424 やpmrfc3164 などの接頭辞 pm で始まります。 - メッセージ修正モジュール: メッセージ修正モジュールは、syslog メッセージの内容を変更します。このモジュールの名前は、
mm
接頭辞で始まります。mmanon、mmnormalize、mmjsonparse などのメッセージ修正モジュールは、メッセージの匿名化や正規化に使用されます。 - 文字列生成モジュール - 文字列生成モジュールは、メッセージの内容に基づいて文字列を生成し、rsyslog が提供するテンプレート機能と密接に連携します。テンプレートに関する詳細は 「テンプレート」 を参照してください。文字列生成モジュールの名前は、
sm
file や smtradfile のように常に接頭辞 sm で始まります。 - ライブラリーモジュール - ライブラリーモジュールは、他の読み込み可能なモジュール用の機能を提供します。これらのモジュールは、必要でユーザーが設定できない場合に rsyslog によって自動的にロードされます。
25.7.1. テキストファイルのインポート
/etc/rsyslog.conf
に追加します。
$ModLoad imfile $InputFilePollInterval int
/etc/rsyslog.conf
で以下の構文を使用します。
# File 1 $InputFileName path_to_file $InputFileTag tag: $InputFileStateFile state_file_name $InputFileSeverity severity $InputFileFacility facility $InputRunFileMonitor # File 2 $InputFileName path_to_file2 ...
- path_to_file を、テキストファイルへのパスに置き換えます。
- tag: を、このメッセージのタグ名に置き換えます。
- state_file_name は、状態ファイル の一意の名前に置き換えます。rsyslog の作業ディレクトリーに保管されている 状態ファイル は、監視対象ファイルのカーソルを保持し、すでに処理されたパーティションを示します。これらを削除すると、ファイル全体が再度読み込まれます。存在していない名前を指定してください。
- ファイルモニタリングを有効にする $InputRunFileMonitor ディレクティブを追加します。この設定がないと、テキストファイルは無視されます。
例25.15 テキストファイルのインポート
/etc/rsyslog.conf
に追加します。
$ModLoad imfile $InputFileName /var/log/httpd/error_log $InputFileTag apache-error: $InputFileStateFile state-apache-error $InputRunFileMonitor
25.7.2. データベースへのメッセージのエクスポート
libdbi
ライブラリーに依存する一般的な omlibdbi 出力モジュールを使用します。omlibdbi モジュールは、Firebird/Interbase、MS SQL、Sybase、SQLite、Ingres、Oracle、mSQL、MySQL、および PostgreSQL のデータベースシステムをサポートします。
例25.16 データベースへの rsyslog メッセージのエクスポート
/etc/rsyslog.conf
に追加します。
$ModLoad ommysql $ActionOmmysqlServerPort 1234 *.* :ommysql:database-server,database-name,database-userid,database-password
25.7.3. 暗号化トランスポートの有効化
25.7.4. RELP の使用
~]# yum install rsyslog-relp
- クライアントを設定するには、以下を設定します。
- 必要なモジュールの読み込み
- TCP 入力ポート
- トランスポート設定
以下の設定を/etc/rsyslog.conf
ファイルに追加します。$ModLoad omrelp $ModLoad imuxsock $ModLoad imtcp $InputTCPServerRun "port" *.* :omrelp:"target_IP":"target_port"
port を、必要なポートでリスナーを開始します。target_IP および target_port をターゲットサーバーを識別する IP アドレスとポートに置き換えます。 - サーバーを設定するには、以下を実行します。
- モジュールの読み込みの設定
- クライアント設定と同様の TCP 入力を設定します。
- ルールを設定し、実行するアクションを選択します。
以下の設定を/etc/rsyslog.conf
ファイルに追加します。$ModLoad imuxsock $ModLoad imrelp $RuleSet relp *.* "log_path" $InputRELPServerBindRuleset relp $InputRELPServerRun "target_port"
target_port をクライアントと同じ値に置き換えます。上記の例では、log_path はメッセージを保存するためのパスを指定します。
25.8. Rsyslog のデバッグ
rsyslogd
をデバッグモードで実行するには、以下のコマンドを使用します。
rsyslogd
-dn
rsyslogd
がデバッグ情報を作成し、標準出力に印刷します。-n
は「no fork」を意味します。たとえば、デバッグ出力をログファイルに保存して、環境変数を使用してデバッグを変更できます。rsyslogd
を起動する前に、コマンドラインで次のコマンドを実行します。
export RSYSLOG_DEBUGLOG="path" export RSYSLOG_DEBUG="Debug"
rsyslogd(8)
の関連セクションを参照してください。
/etc/rsyslog.conf
ファイルで使用される構文が有効かどうかを確認するには、以下を使用します。
rsyslogd
-N
1
1
は、出力メッセージの長さのレベルを表します。現在提供されているのは 1 つのレベルのみなので、これは前方互換性オプションになります。ただし、検証を実行するには、この引数を追加する必要があります。
25.9. グラフィカル環境でのログファイルの管理
25.9.1. ログファイルの表示
root
で以下を実行して gnome-system-log パッケージがインストールされていることを確認します。
~]# yum install gnome-system-log
~]$ gnome-system-log
図25.2 ログファイルビューアー

[D]
図25.3 ログファイルビューアー: フィルター

[D]
図25.4 ログファイルビューアー: フィルターの定義

[D]
- name: フィルターの名前を指定します。
- 正規表現 - ログファイルに適用され、その中の実行可能なテキストの文字列に一致するよう試行する正規表現を指定します。
- Effect
- highlight: これが有効な場合、検索結果は選択した色で 強調表示 されます。テキストのバックグラウンドまたはフォアグラウンドを強調するかどうかを選択できます。
- Hide: これが有効な場合は、検索結果は閲覧中のログファイルから非表示になります。
図25.5 ログファイルビューアー: フィルターの有効化

[D]
25.9.2. ログファイルの追加
図25.6 ログファイルビューアー: ログファイルの追加

[D]
.gz
形式のログファイルを開くことができます。
25.9.3. ログファイルのモニタリング
図25.7 ログファイルビューアー: 新しいログアラート

[D]
25.10. その他のリソース
rsyslog
デーモンの設定方法、およびログファイルの場所の特定、表示、監視方法に関する詳細情報は、以下に記載のリソースを参照してください。
インストールされているドキュメント
rsyslogd
(8):rsyslogd
デーモンの man ページは、その使用方法を説明しています。rsyslog.conf
(5):rsyslog.conf
の man ページでは、利用可能な設定オプションが説明されています。logrotate
(8): logrotate ユーティリティーの man ページは、その設定方法と使用方法を詳細に説明しています。
オンラインドキュメント
- rsyslog ホームページの rsyslog バージョン 5 ドキュメント - Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 のデフォルトの rsyslog はバージョン 5 です。
- rsyslog ホームページの rsyslog バージョン 7 ドキュメント - Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 では、rsyslog のバージョン 7 が利用できます。rsyslog7
- Description of queues on the rsyslog Home Page: さまざまなタイプのメッセージキューおよびその使用方法に関する全般情報。
その他の参考資料
第26章 MySQL のアップグレード
第27章 システムタスクの自動化
27.1. cron および Anacron
27.1.1. cron および Anacron のインストール
yum install
package
~]# yum install cronie cronie-anacron
root
としてログイン) が必要であることに注意してください。Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux に新しいパッケージをインストールする方法の詳細は、「パッケージのインストール」 を参照してください。
27.1.2. crond サービスの実行
crond
サービスによって選択されます。本セクションでは、crond
サービスを起動、停止、および再起動する方法を説明し、特定のランレベルでそのサービスを有効にする方法を説明します。ランレベルの概念と Red Hat Enterprise Linux でシステムサービスを管理する方法は、12章サービスおよびデーモン を参照してください。
27.1.2.1. cron サービスの起動と停止
crond
サービスを実行するには、root
で次のコマンドを実行します。
servicecrond
start
chkconfigcrond
on
27.1.2.2. cron サービスの停止
crond
サービスを停止するには、root
で次のコマンドを実行します。
servicecrond
stop
chkconfigcrond
off
27.1.2.3. cron サービスの再起動
crond
サービスを再起動するには、シェルプロンプトで以下を入力します。
servicecrond
restart
27.1.3. Anacron ジョブの設定
/etc/anacrontab
ファイルです。このファイルは root ユーザーのみがアクセスできます。このファイルには、以下が含まれます。
SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # the maximal random delay added to the base delay of the jobs RANDOM_DELAY=45 # the jobs will be started during the following hours only START_HOURS_RANGE=3-22 #period in days delay in minutes job-identifier command 1 5 cron.daily nice run-parts /etc/cron.daily 7 25 cron.weekly nice run-parts /etc/cron.weekly @monthly 45 cron.monthly nice run-parts /etc/cron.monthly
SHELL
- ジョブの実行に使用するシェル環境(この例では Bash シェル)PATH
- 実行可能なプログラムへのパスMAILTO
- メールで anacron ジョブの出力を受信するユーザーのユーザー名MAILTO
変数が定義されていない場合(MAILTO=
)、メールは送信されません。
RANDOM_DELAY
- 各ジョブに指定されるdelay in minutes
変数に追加される最大分単位数遅延の最小値は、デフォルトでは 6 分に設定されます。たとえば、RANDOM_DELAY
を12
に設定すると、特定の分析内のジョブごとに、6 分から 12 分の間にdelay in minutes
が追加されます。RANDOM_DELAY
0
など、6
以下の値に設定することもできます。0
に設定すると、ランダムな遅延は追加されません。これは、1 つのネットワーク接続を共有する複数のコンピューターが毎日同じデータをダウンロードする必要がある場合などに便利です。START_HOURS_RANGE
- スケジュールされたジョブを実行できる間隔(時間単位)電源障害などの理由で時間間隔がないと、スケジュールされたジョブはその日に実行されません。
/etc/anacrontab
ファイルの残りの行はスケジュールされたジョブを表し、以下の形式に従います。
period in days delay in minutes job-identifier command
period in days
- ジョブ実行の頻度(日数単位)プロパティーの値は整数またはマクロ(@daily
、@weekly
、@monthly
)として定義できます。ここで、@daily
は整数 1 として、@weekly
は 7 と同じ値、@monthly
は月の長さが 1 度実行されることを指定します。delay in minutes
- ジョブを実行する前に、anacron が待機する時間プロパティーの値は整数として定義されます。値が0
に設定されている場合、遅延は適用されません。job-identifier
- ログファイルで使用される特定のジョブを参照する一意の名前command
- 実行するコマンドコマンドは、ls /proc >> /tmp/proc などの コマンド、またはカスタムスクリプトを実行するコマンドのいずれかです。
27.1.3.1. Anacron ジョブの例
/etc/anacrontab
ファイルを示しています。
SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # the maximal random delay added to the base delay of the jobs RANDOM_DELAY=30 # the jobs will be started during the following hours only START_HOURS_RANGE=16-20 #period in days delay in minutes job-identifier command 1 20 dailyjob nice run-parts /etc/cron.daily 7 25 weeklyjob /etc/weeklyjob.bash @monthly 45 monthlyjob ls /proc >> /tmp/proc
anacrontab
ファイルで定義されているすべてのジョブは 6-30 分によって無作為に遅延し、16:00 から 20:00 の間で実行できます。
/etc/cron.daily
ディレクトリーに存在するすべてのプログラムを実行します( run-parts スクリプトはディレクトリーをコマンドライン引数として受け入れ、ディレクトリー内のすべてのプログラムを順次実行します)。
/etc
ディレクトリーで weeklyjob.bash
スクリプトを実行します。
/proc
の内容を 1 カ月 /tmp/proc
ファイル(ls /proc >> /tmp/proc)に書き込みます。
27.1.4. cron ジョブの設定
/etc/crontab
で、root ユーザーのみが変更できます。このファイルには、以下が含まれます。
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * username command to be executed
SHELL
、PATH
、および MAILTO
の anacrontab
ファイルと同じ変数定義が含まれます。これらの変数に関する詳細は、「Anacron ジョブの設定」 を参照してください。
HOME
変数を定義できます。HOME
変数はディレクトリーを定義します。このディレクトリーは、コマンドまたはジョブで実行されるスクリプトの実行時にホームディレクトリーとして使用されます。
/etc/crontab
ファイルの残りの行はスケジュールされたジョブを表し、以下の形式となっています。
minute hour day month day of week username command
minute
- 0 から 59 までの任意の整数hour
- 0 から 23 までの整数day
- 1 から 31 までの整数(月を指定する場合は有効な日付である必要があります)month
- 1 から 12 までの整数(または jan または feb などの月の省略名)day of week
- 0 から 7 までの任意の整数。0 または 7 は日曜日を表します(または sun または mon などの曜日の短縮名)。
username
- ジョブが実行されるユーザーを指定します。command
- 実行するコマンドコマンドは、ls /proc /tmp/proc などのコマンド、またはカスタムスクリプトを実行するコマンドのいずれかです。
1-4
は整数の 1、2、3、および 4 を意味します。
3, 4, 6, 8
はこれら 4 つの整数を正確に示します。
/integer
の範囲の後に続く範囲内で省略されます。たとえば、0-59/2
で定義される 1 分間の値は、分ごとの分を表します。ステップ値はアスタリスクでも使用することができます。たとえば、月の値が */3
として定義されている場合、タスクは 3 月ごとに実行されます。
/var/spool/cron/
ディレクトリーに保存され、作成したユーザーが実行したように実行されます。
VISUAL
または EDITOR
環境変数で指定されたエディターでユーザーの crontab を編集します。このファイルは、/etc/crontab
と同じ形式を使用します。crontab への変更が保存されると、crontab はユーザー名として保存され、/var/spool/cron/ ユーザー名のファイルに書き込まれます
。crontab ファイルの内容を一覧表示するには、crontab -l コマンドを使用します。
/etc/cron.d/
ディレクトリーには、/etc/crontab
ファイルと同じ構文を持つファイルが含まれます。このディレクトリーでファイルを作成および変更できるのは、root のみです。
/etc/anacrontab
ファイル、/etc/crontab
ファイル、/etc/cron.d/
ディレクトリー、および /var/spool/cron/
ディレクトリーが変更されるたびにチェックし、検出された変更はメモリーに読み込まれます。そのため、anacrontab ファイルまたは crontab ファイルに変更を加えた後にデーモンを再起動する必要はありません。
27.1.5. cron へのアクセスの制御
/etc/cron.allow
ファイルおよび /etc/cron.deny
ファイルを使用できます。これらのアクセス制御ファイルは、各行にユーザー名が同じ形式を使用します。いずれのファイルでも、空白文字は許可されません。
cron.allow
ファイルが存在する場合は、ファイルに一覧表示されているユーザーのみが cron を使用でき、cron.deny
ファイルは無視されます。
cron.allow
ファイルが存在しない場合は、cron.deny
ファイルにリストされているユーザーは Cron を使用することができません。
crond
)を再起動する必要はありません。アクセス制御ファイルは、ユーザーが cron ジョブの追加または削除を試みるたびにチェックされます。
/etc/security/access.conf
ファイルに保存されます。たとえば、以下の行をファイルに追加しますが、他のユーザーは作成できませんが、root ユーザーは crontabs を作成することができます。
-:ALL EXCEPT root :cron
access.conf.5
( man 5 access.conf)を参照してください。
27.1.6. cron ジョブのブラックリストおよびホワイトリスト
/etc/cron.daily
などの Cron ディレクトリーで run-parts スクリプトを呼び出す場合に便利です。ユーザーがディレクトリーにあるプログラムをジョブのブラックリストに追加すると、run-parts スクリプトはこれらのプログラムを実行しません。
jobs.deny
ファイルを作成します。たとえば、/etc/cron.daily
から特定のプログラムを省略する必要がある場合は、/etc/cron.daily/jobs.deny
ファイルを作成します。このファイルで、実行から省略するプログラムの名前を指定します(同じディレクトリーにあるプログラムのみを登録できます)。run-parts /etc/cron.daily などの cron.daily ディレクトリーからプログラムを実行するコマンドを実行すると、jobs.deny
ファイルに定義したプログラムは実行されません。
.allow ファイル
を作成します。
27.2. at および Batch
27.2.1. at および Batch のインストール
yum install
package
~]# yum install at
root
としてログイン) が必要であることに注意してください。Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux に新しいパッケージをインストールする方法の詳細は、「パッケージのインストール」 を参照してください。
27.2.2. at サービスの実行
atd
サービスにより選択されます。本セクションでは、atd
サービスを起動、停止、再起動する方法と、特定のランレベルでそのサービスを有効にする方法を説明します。ランレベルの概念と Red Hat Enterprise Linux でシステムサービスを管理する方法は、12章サービスおよびデーモン を参照してください。
27.2.2.1. at サービスの起動および停止
atd
サービスを実行するには、root
で次のコマンドを実行します。
serviceatd
start
chkconfigatd
on
27.2.2.2. at サービスの停止
atd
サービスを停止するには、root
で次のコマンドを実行します。
serviceatd
stop
chkconfigatd
off
27.2.2.3. at サービスの再起動
atd
サービスを再起動するには、シェルプロンプトで以下を入力します。
serviceatd
restart
27.2.3. at ジョブの設定
- コマンドラインで、 TIMEで コマンドを入力します。TIME は、コマンドを実行するタイミングになります。TIME 引数は、以下のいずれかの形式で定義できます。
HH:MM
は正確な時間と分を指定します。たとえば、04:
00 は 4:00 を指定します。午前 0 時
は午前 12:00 を指定します。noon
は 12:00 p.m を指定します。teatime
は 4:00 p.m を指定します。MONTHDAYYEAR
形式。たとえば、1 月 15 日は 2012
年 1 月 15 日と指定しています。year の値は任意です。MMDDYY
、MM/DD/YY
、またはMM.DD
の形式。たとえば、16 年 1 月 15 日の場合は011512
です。TIME
は 整数および値タイプ(minute、hour、days、または weeks)として定義されるようになりました。たとえば、now + 5 days
は、今後 5 日に同時にコマンドが実行されるように指定します。最初に時間を指定し、その後にオプションの日付を指定する必要があります。時間形式の詳細は、/usr/share/doc/at- <version> /timespec
テキストファイルを参照してください。
指定した時間を過去にすると、ジョブは次の日に実行されます。 - 表示される
at>
プロンプトで、ジョブコマンドを定義します。- ジョブが実行すべきコマンドを入力して、Enter を押します。必要に応じて、手順を繰り返して複数のコマンドを提供します。
- プロンプトでシェルスクリプトを 入力 し、スクリプトの各行で Enter を押します。ジョブは、ユーザーの
SHELL
環境、ユーザーのログインシェル、または /bin/sh (最初に見つかったもの)に設定したシェルを使用します。
- 完了したら、空の行で Ctrl+D を押してプロンプトを終了します。
27.2.4. バッチジョブの設定
- コマンドラインで、バッチ を入力します。
- 表示される
at>
プロンプトで、ジョブコマンドを定義します。- ジョブが実行すべきコマンドを入力して、Enter を押します。必要に応じて、手順を繰り返して複数のコマンドを提供します。
- プロンプトでシェルスクリプトを 入力 し、スクリプトの各行で Enter を押します。スクリプトを入力すると、ジョブはユーザーの
SHELL
環境、ユーザーのログインシェル、または /bin/sh (最初に見つかったもの)に設定したシェルを使用します。
- 完了したら、空の行で Ctrl+D を押してプロンプトを終了します。
27.2.5. 保留中のジョブの表示
27.2.6. 追加のコマンドラインオプション
オプション | 説明 |
---|---|
-f | プロンプトで指定する代わりに、ファイルからコマンドまたはシェルスクリプトを読み取ります。 |
-m | ジョブが完了したらユーザーにメールを送信します。 |
-v | ジョブが実行される時間を表示します。 |
27.2.7. at と batch へのアクセスの制御
/etc/at.allow
ファイルおよび /etc/at.deny
ファイルを使用します。これらのアクセス制御ファイルは、各行にユーザー名を定義するのと同じ形式を使用します。いずれのファイルでも、空白は許可されません。
at.allow
ファイルが存在する場合は、ファイルに一覧表示されているユーザーのみが at または batch を使用でき、at.deny
ファイルは無視されます。
at.allow
が存在しない場合は、at.deny
に一覧表示されているユーザーは at または batch を使用できません。
27.3. その他のリソース
cron
の man ページには cron の概要が記載されています。- セクション 1 および 5 の
crontab
man ページ:- セクション 1 の man ページには、
crontab
ファイルの概要が記載されています。 - セクション 5 の man ページには、ファイルの形式とエントリーの例が記載されています。
anacron
の man ページには、anacron の概要が記載されています。anacrontab
man ページには、anacrontab
ファイルの概要が記載されています。/usr/share/doc/at- <version> /timespec
には、cron ジョブ定義で使用可能な時間値に関する詳細情報が含まれます。- man ページ
で
は、at および batch の説明とそのコマンドラインオプションが記載されています。
第28章 自動バグレポーティングツール(ABRT)
abrtd
デーモンと、検出された問題を処理、分析、および報告する多数のシステムサービスおよびユーティリティーで構成されます。デーモンは、ほとんどの期間のバックグラウンドでサイレントに実行され、アプリケーションがクラッシュしたり、カーネルの oops が検出されると、springs がアクションになります。次に、デーモンは、コアファイルがある場合、クラッシュアプリケーションのコマンドラインパラメーター、フォレンジックユーティリティーのその他のデータがある場合は、コアファイルなどの関連する問題データを収集します。最も重要な ABRT コンポーネントの概要は、表28.1「ABRT の基本コンポーネント」 を参照してください。
コンポーネント | パッケージ | 説明 |
---|---|---|
abrtd | abrt | root ユーザー下でバックグラウンドサービスとして実行する ABRT デーモン。 |
abrt-applet | abrt-gui | abrtd からメッセージを受信し、新しい問題が発生するたびに通知するプログラム。 |
abrt-gui | abrt-gui | 収集した問題データを表示し、さらに処理できる GUI アプリケーション。 |
abrt-cli | abrt-cli | GUI と同様の機能を提供するコマンドラインインターフェースです。 |
abrt-ccpp | abrt-addon-ccpp | C/C++ の問題をアナライザーを提供する ABRT サービス。 |
abrt-oops | abrt-addon-kerneloops | カーネル oopses アナライザーを提供する ABRT サービス。 |
abrt-vmcore | abrt-addon-vmcore[a] | カーネルパニックアナライザーおよびレポーターを提供する ABRT サービス。 |
[a]
abrt-addon-vmcore パッケージは、Optional サブスクリプションチャンネルで提供されます。Red Hat 追加チャンネルの詳細は、「Optional および Supplementary リポジトリーの追加」 を参照してください。
|
kdump
クラッシュダンプメカニズムが有効で、それに応じてシステムに設定した場合に、ABRT はカーネルパニックを検出することもできます。
FTP
/SCP
を使用してアップロードしたり、電子メールを行ったり、ファイルに書き込んだりすることができます。
analyzer
、アーキテクチャー
、コアダンプ、cmdline
、実行可能な
、
kernel
、os_release
、理由
、time
、uid
などのファイルで構成されます。
backtrace
などの他のファイルは、分析中に使用する分析方法とその構成設定に応じて作成できます。これは、使用するアナライザーメソッドやその設定によって異なります。たとえば、kernel
ファイルには、クラッシュしたカーネルのバージョンが記録されます。
report [-v] --target
target --ticket
ID file
report-cli -r
dump_directory
libreport
を使用する他のアプリケーションです。report-cli の詳細は、man report-cli を参照してください。
28.1. ABRT のインストールとサービスの起動
abrtd
デーモンでは、abrt
ユーザーが /var/spool/abrt
ディレクトリーにファイルシステム操作に存在する必要があります。abrt パッケージをインストールすると、UID と GID が 173 の abrt
ユーザーが存在していない場合は自動的に作成されます。それ以外の場合は、abrt
ユーザーを手動で作成できます。この場合、abrtd
は特定の UID および GID を要求しないため、任意の UID および GID を選択できます。
~]# yum install abrt-desktop
~]# yum install abrt-cli
abrtd
が実行していることを確認する必要があります。デーモンは通常、ブート時に起動するように設定されています。以下のコマンドを root として使用し、現在のステータスを確認できます。
~]# service abrtd status
abrtd (pid 1535) is running...
abrt is stopped
メッセージを返すと、デーモンは実行していません。以下のコマンドを入力して、現行セッションで開始できます。
~]# service abrtd start
Starting abrt daemon: [ OK ]
abrt-ccpp
サービスを確認し、起動することができます。ABRT がカーネル oops を検出するように設定するには、abrt-oops
サービスに同じ手順を使用します。このサービスは、システムが失敗しなくなったり、すぐに再起動したりするカーネル oops を検出できないことに注意してください。ABRT でこのようなカーネル oops を検出できるようにするには、abrt-vmcore
サービスをインストールする必要があります。この機能が必要な場合は、詳細は 「カーネルパニックを検出するための ABRT の設定」 を参照してください。
ランレベル 3 と 5
に対して自動的に有効になります。chkconfig ユーティリティーを使用して必要なランレベルの ABRT サービスを無効または有効にできます。詳細は、「chkconfig ユーティリティーの使用」 を参照してください。
core_pattern
を上書きする/proc/sys/kernel/core_pattern
ファイルが上書きされることに注意してください。このファイルのコンテンツは、以下のように上書きされます。
|/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e
ABRT 通知アプレット
が実行中であることを確認できます。
~]$ ps -el | grep abrt-applet
0 S 500 2036 1824 0 80 0 - 61604 poll_s ? 00:00:00 abrt-applet
abrt-applet
プログラムを実行すると、現在のデスクトップセッションで手動で起動できます。
~]$ abrt-applet &
[1] 2261
図28.1 ABRT 通知アプレットが自動的に実行されるように設定。

[D]
28.2. グラフィカルユーザーインターフェースの使用
~]$ abrt-gui &
図28.2 ABRT GUI の実行例。

[D]
図28.3 問題データの詳細な例

[D]
図28.4 問題の分析方法の選択

[D]
図28.5 ABRT が問題を分析

[D]
図28.6 問題レポーターの選択

[D]
図28.7 警告: Red Hat カスタマーサポートの設定がない

[D]
図28.8 Red Hat カスタマーサポート設定ウィンドウ

[D]
図28.9 問題バックトレースの確認

[D]
図28.10 レポートするデータの確認

[D]
図28.11 問題が Red Hat カスタマーサポートデータベースに報告されています。

[D]
28.3. コマンドラインインターフェースの使用
abrtd
が保存した問題データは、コマンドラインインターフェースを使用して表示し、報告し、削除することができます。
abrt-cli [--version
] command [args]
- list: 問題を一覧表示し、問題データを表示します。
- report: 問題を分析して報告します。
- rm - 不要な問題を削除します。
- info: 特定の問題に関する情報を提供します。
abrt-cli command --help
28.3.1. 問題の表示
~]# abrt-cli list
Directory: /var/spool/abrt/ccpp-2011-09-13-10:18:14-2895
count: 2
executable: /usr/bin/gdb
package: gdb-7.2-48.el6
time: Tue 13 Sep 2011 10:18:14 AM CEST
uid: 500
Directory: /var/spool/abrt/ccpp-2011-09-21-18:18:07-2841
count: 1
executable: /bin/bash
package: bash-4.1.2-8.el6
time: Wed 21 Sep 2011 06:18:07 PM CEST
uid: 500
Directory
- 問題に関する情報をすべて含む問題データディレクトリーを表示します。count
- この特定の問題が発生した回数を表示します。executable
- クラッシュしたバイナリーまたは実行可能なスクリプトを示します。package
- 問題の原因となったプログラムを含むパッケージ名を表示します。time
- 問題の最後の日時を表示します。uid
- クラッシュしたプログラムを実行したユーザーの ID を表示します。
オプション | 説明 |
---|---|
追加のオプションがないと、abrt-cli list コマンドは、まだ報告されていない問題の基本情報のみを表示します。 | |
-d 、--detailed | 既に生成されていれば バックトレース など、一覧表示された問題に関するすべての保存された情報を表示します。 |
-f ,--full | すでに報告されたすべての問題の基本情報を表示します。 |
-v 、--verbose | アクションに関する追加情報を提供します。 |
abrt-cli info directory
オプション | 説明 |
---|---|
追加のオプションがないと、abrt-cli info コマンドは、問題 データディレクトリー の引数で指定された問題の基本情報のみを表示します。 | |
-d 、--detailed | 問題 データディレクトリー の引数で指定された問題の保存された情報をすべて表示します。これには、すでに生成された場合は backtrace が含まれます。 |
-v 、--verbose | abrt-cli info は、そのアクションに関する追加情報を提供します。 |
28.3.2. 問題の報告
abrt-cli report directory
~]$ abrt-cli report /var/spool/abrt/ccpp-2011-09-13-10:18:14-2895
How you would like to analyze the problem?
1) Collect .xsession-errors
2) Local GNU Debugger
Select analyzer: _
ABRT_EDITOR
環境変数で定義されたエディターを使用します。変数が定義されていない場合は、VISUAL
および EDITOR
変数を確認します。いずれの変数も設定されていない場合は、vi が使用されます。.bashrc
設定ファイルで優先エディターを設定することもできます。たとえば、GNU Emacs を使用する場合は、そのファイルに以下の行を追加します。
exportVISUAL
=emacs
How would you like to report the problem? 1) Logger 2) Red Hat Customer Support Select reporter(s): _
オプション | 説明 |
---|---|
追加オプションがないと、abrt-cli report コマンドは通常の出力を提供します。 | |
-v 、--verbose | abrt-cli レポート は、そのアクションに関する追加情報を提供します。 |
28.3.3. 問題の削除
abrt-cli rm directory
~]$ abrt-cli rm /var/spool/abrt/ccpp-2011-09-12-18:37:24-4413
rm '/var/spool/abrt/ccpp-2011-09-12-18:37:24-4413'
オプション | 説明 |
---|---|
オプションを指定しないと、abrt-cli rm コマンドは、指定した 問題データディレクトリー を、そのすべてのコンテンツとともに削除します。 | |
-v 、--verbose | abrt-cli rm は、そのアクションに関する追加情報を提供します。 |
28.4. ABRT の設定
- イベント 1 - 問題データのディレクトリーが作成されます。
- イベント 2: 問題データの分析
- イベント 3 - 問題の Bugzilla 報告
/etc/libreport/events/
: 事前定義イベントのデフォルト設定を指定するファイルを保持します。/etc/libreport/events.d/
: イベントを定義する設定ファイルを保持します。/etc/libreport/plugins/
: イベントの一部を取るプログラムの設定ファイルが含まれます。/etc/abrt/
- ABRT のサービスおよびプログラムの挙動を変更するために使用される ABRT 固有の設定ファイルを保持します。特定の設定ファイルの詳細は、「ABRT 固有の設定」 を参照してください。/etc/abrt/plugins/
: ABRT のサービスおよびプログラムのデフォルト設定を上書きするために使用される設定ファイルを保持します。一部の設定ファイルの詳細は、「ABRT 固有の設定」 を参照してください。
28.4.1. ABRT イベント
/etc/libreport/events.d/
ディレクトリーに保存されます。これらの設定ファイルは、メインの設定ファイル /etc/libreport/report_event.conf
によって使用されます。
/etc/libreport/report_event.conf
ファイルは、include ディレクティブ および ルール で構成されます。ルールは通常、/etc/libreport/events.d/
ディレクトリーの他の設定ファイルに保存されます。標準インストールでは、/etc/libreport/report_event.conf
ファイルには 1 つの include ディレクティブのみが含まれます。
include events.d/*.conf
スペース
文字または タブ
文字で始まるすべての後続の行は、このルールの一部と見なされます。各ルールは、条件部分とプログラム部分の2つの部分で構成されています。条件パートには、以下のいずれかの形式で条件が記載されます。
- VAR=VAL,
- VAR!=VAL または
- VAL~= REGEX
- VAR は、
EVENT
のキーワードまたは問題データディレクトリー要素の名前です(実行可能な
、package
、hostname
など)。 - VAL は、イベントまたは問題データ要素の名前です。
- REGEX は正規表現です。
EVENT=post-create date > /tmp/dt echo $HOSTNAME `uname -r`
/tmp/dt
ファイルの内容を上書きし、マシンのホスト名とカーネルバージョンを標準出力に表示します。
abrt-ccpp
サービスを使用してその問題を処理し、クラッシュ発生時に X11 ライブラリーが読み込まれている問題について ~/.xsession-errors
ファイルから関連する行を問題レポートに保存します。
EVENT=analyze_xsession_errors analyzer=CCpp dso_list~=.*/libX11.* test -f ~/.xsession-errors || { echo "No ~/.xsession-errors"; exit 1; } test -r ~/.xsession-errors || { echo "Can't read ~/.xsession-errors"; exit 1; } executable=`cat executable` && base_executable=${executable##*/} && grep -F -e "$base_executable" ~/.xsession-errors | tail -999 >xsession_errors && echo "Element 'xsession_errors' saved"
-
post-create
- このイベントは、新たに作成される問題データディレクトリーで
abrtd
により実行されます。post-create
イベントが実行すると、abrtd
は新規の問題データの UUID 識別子が既存の問題ディレクトリーの UUID と一致するかどうかを確認します。このような問題ディレクトリーが存在する場合は、新しい問題データが削除されます。 -
analyze_name_suffix
- ここでの name_suffix は、イベント名の調整可能な部分です。このイベントは、収集データの処理に使用されます。たとえば、
analyze_LocalGDB
は、アプリケーションのコアダンプで GNU Debugger(GDB)ユーティリティーを実行し、プログラムのバックトレースを生成します。分析イベントの一覧を表示し、abrt-gui を使用してこれを選択できます。 -
collect_name_suffix
- ここでの name_suffix は、イベント名の調整可能な部分です。このイベントは、問題に関する追加情報を収集するために使用されます。収集イベントの一覧を表示し、abrt-gui を使用してこれを選択できます。
-
report_name_suffix
- ここでの name_suffix は、イベント名の調整可能な部分です。このイベントは、問題を報告するために使用されます。レポートイベントの一覧を表示し、abrt-gui を使用してこれを選択できます。
/etc/libreport/events/event_name.xml
ファイルに保存されます。このファイルは、ユーザーインターフェースをより容易にするために abrt-gui および abrt-cli で使用されます。標準インストールを変更する場合以外に、このファイルは編集しないでください。
28.4.2. 標準 ABRT インストールでサポートされているイベント
analyze_xsession_errors
イベントは、ABRT GUI で Collect .xsession-errors とし
て表示されます。以下は、ABRT の標準インストールで提供される、デフォルトの分析、収集、レポートイベントの一覧です。
- analyze_VMcore - 仮想マシンコアの分析
- アプリケーションの問題データに対して GDB (GNU Debugger)を実行し、カーネルの
バックトレース
を生成します。/etc/libreport/events.d/vmcore_event.conf
設定ファイルで定義されます。 - analyze_LocalGDB: Local GNU Debugger
- アプリケーションの問題データに対して GDB (GNU Debugger)を実行し、プログラムの
バックトレース
を生成します。これは/etc/libreport/events.d/ccpp_event.conf
設定ファイルで定義されます。 - analyze_xsession_errors - Collect .xsession-errors
~/.xsession-errors
ファイルから関連する行を問題レポートに保存します。これは/etc/libreport/events.d/ccpp_event.conf
設定ファイルで定義されます。- report_Logger - ロガー
- 問題レポートを作成して、指定のローカルファイルに保存します。これは
/etc/libreport/events.d/print_event.conf
設定ファイルで定義されます。 - report_RHTSupport - Red Hat カスタマーサポート
- Red Hat テクニカルサポートシステムに問題を報告します。これは、Red Hat Enterprise Linux のユーザーを対象としています。これは、
/etc/libreport/events.d/gitopssupport_event.conf
設定ファイルで定義されます。 - report_Mailx — Mailx
- 問題レポートを Mailx ユーティリティーを介して指定のメールアドレスに送信します。これは
/etc/libreport/events.d/mailx_event.conf
設定ファイルで定義されます。 - report_Kerneloops — Kerneloops.org
- カーネル問題を oops トラッカーに送信します。これは
/etc/libreport/events.d/koops_event.conf
設定ファイルで定義されます。 - report_Uploader - Report uploader
FTP
またはSCP
プロトコルを使用して、問題データの tarball(.tar.gz)アーカイブを、選択した宛先にアップロードします。これは/etc/libreport/events.d/uploader_event.conf
設定ファイルで定義されます。
28.4.3. ABRT GUI でのイベント設定
report_Logger
イベントは、出力ファイル名をパラメーターとして受け入れます)。それぞれの /etc/libreport/events/event_name.xml
ファイルを使用すると、ABRT GUI は、選択されたイベントに対してどのパラメーターを指定できるかを判断し、ユーザーはこれらのパラメーターの値を設定できるようになります。これらの値は ABRT GUI によって保存され、後続のイベントの呼び出しで再利用されます。
/etc/libreport/
ディレクトリー階層内のすべてのファイルは誰でも読み取り可能で、グローバル設定として使用することが意図されています。そのため、ユーザー名、パスワード、その他の機密データをそれらのデータに保存することは推奨されません。ユーザー別の設定(GUI アプリケーションで設定され、$HOME
の所有者のみが読み取り可能)は Gnome キーリングに保存されるか、abrt-cli で使用するために $HOME/.abrt/*.conf
のテキストファイルに保存できます。
図28.12 イベント設定ウィンドウ

[D]
- ロガー
- Logger イベント設定ウィンドウで、以下のパラメーターを設定できます。
- ログファイル: クラッシュレポートを保存するファイルを指定します(デフォルトでは
/var/log/abrt.log
に設定されます)。
Append オプションにチェックが付けられると、Logger イベントは Logger ファイルオプションで指定されたログファイルに新しいクラッシュレポートを追加します。これの選択を解除すると、新しいクラッシュレポートは常に以前のクラッシュレポートに置き換わります。 - Red Hat カスタマーサポート
- Red Hat カスタマーサポート イベント設定ウィンドウで、以下のパラメーターを設定できます。
- RH Portal URL: クラッシュダンプの送信先となる Red Hat カスタマーサポート URL を指定します(デフォルトでは に https://api.access.redhat.com/rs設定されます)。
- Username: Red Hat カスタマーサポートにログインし、報告されたクラッシュについての Red Hat カスタマーサポートデータベースエントリーを作成するために使用されるユーザーログイン。https://www.redhat.com/en、Red Hat カスタマーポータル(https://access.redhat.com/home)、または Red Hat Network(https://rhn.redhat.com/)でアカウントを作成して、Red Hat ログイン 先を使用します。
- Password - Red Hat カスタマーサポートへのログインに使用されるパスワード( Red Hat ログインに関連するパスワード)
SSL 検証 オプションがチェックされたら、ネットワーク経由でデータを送信する際にSSL
プロトコルが使用されます。 - MailX
- MailX イベント設定ウィンドウで、以下のパラメーターを設定できます。
- subject - Mailx によって送信されるメールの
Subject
フィールドに表示される文字列(デフォルトでは「[abrt] detected a crash」
に設定)。 - sender: 問題レポートメールの
From
フィールドに表示される文字列。 - Recipient: 問題レポートメールの受信者の電子メールアドレス。
Send Binary Data オプションを確認すると、問題レポートのメールに、その問題に関連するバイナリーファイルがすべて添付されます。コアダンプファイルは、添付ファイルとしても送信されます。 - Kerneloops.org
- Kerneloops.org イベント設定ウィンドウで、以下のパラメーターを設定できます。
- KernelOops URL: カーネル の問題が報告される URL を指定します(デフォルトでは に http://submit.kerneloops.org/submitoops.php設定されます)。
- Report Uploader
- Report Uploader イベント設定で、以下のパラメーターを設定できます。
- url: 圧縮された問題データを含む tarball が
FTP
またはSCP
プロトコルを使用してアップロードされる URL を指定します(デフォルトではftp://localhost:/tmp/upload
に設定されます)。
28.4.4. ABRT 固有の設定
/etc/abrt/abrt.conf
:abrtd
サービスの動作を変更できます。/etc/abrt/abrt-action-save-package-data.conf
: abrt-action-save-package-data プログラムの動作を変更できます。/etc/abrt/plugins/CCpp.conf
- ABRT の core catching フックの動作を変更できます。
/etc/abrt/abrt.conf
ファイルでサポートされています。
- WatchCrashdumpArchiveDir = /var/spool/abrt-upload
- このディレクティブは、デフォルトでコメントアウトされています。
abrtd
で、指定したディレクトリーにある tarball アーカイブ(.tar.gz)を自動アンパッククラッシュダンプする場合は、これを有効にします。上記の例では、これは/var/spool/abrt-upload/
ディレクトリーです。このディレクティブに指定するすべてのディレクトリーは、それが存在し、abrtd
に対して書き込み可能であることを確認する必要があります。ABRT デーモンはこれを自動的に作成しません。このオプションのデフォルト値を変更する場合は、ABRT の適切な機能を確保するために、このディレクトリーをDumpLocation
オプションに指定されたディレクトリーと同じにし ない でください。このオプションは SELinux で変更しないでください。クラッシュダンプアーカイブの場所を変更すると、SELinux ルールの変更を最初に反映しない限り、SELinux 拒否が生じます。SELinux で ABRT の実行に関する詳細は、abrt_selinux(8)
man ページを参照してください。SELinux を使用する際にこのオプションを有効にする場合は、ABRT が public_content_rw_t ドメインに書き込むように適切なブール値を設定するには、以下のコマンドを実行する必要があります。setsebool -P abrt_anon_write 1
- MaxCrashReportsSize = size_in_megabytes
- このオプションは、ABRT が全ユーザーからの問題情報を保存するために使用するストレージ容量をメガバイトで設定します。デフォルト設定は
1000
MB です。ここで指定したクォータが一致したら、ABRT は継続して問題を取得し、新しいクラッシュダンプの容量を確保するために、一番古いものと最大のものを削除します。 - DumpLocation = /var/spool/abrt
- このディレクティブは、デフォルトでコメントアウトされています。問題データディレクトリーが作成される場所と、問題のコアダンプと、その他の問題データが格納される場所を指定します。デフォルトの場所は
/var/spool/abrt
ディレクトリーに設定されます。このディレクティブに指定するすべてのディレクトリーは、それが存在し、abrtd
に対して書き込み可能であることを確認する必要があります。このオプションのデフォルト値を変更する場合は、ABRT の適切な機能を確保するために、このディレクトリーをWatchCrashdumpArchiveDir
オプションに指定したディレクトリーと同じにし ない でください。このオプションは SELinux で変更しないでください。各 SELinux ルールに変更を反映しない限り、ダンプの場所を変更すると SELinux 拒否が生じます。SELinux で ABRT の実行に関する詳細は、abrt_selinux(8)
man ページを参照してください。SELinux を使用する際にこのオプションを有効にする場合は、ABRT が public_content_rw_t ドメインに書き込むように適切なブール値を設定するには、以下のコマンドを実行する必要があります。setsebool -P abrt_anon_write 1
/etc/abrt/abrt-action-save-package-data.conf
ファイルでサポートされています。
- OpenGPGCheck = yes/no
OpenGPGCheck
ディレクティブをyes
(デフォルト設定)に設定すると、ABRT に対して、場所が/etc/abrt/gpg_keys
ファイルにリストされている GPG キーにより署名されたパッケージで提供されるアプリケーションで のみ クラッシュを分析および処理するように指示します。OpenGPGCheck
をno
に設定すると、ABRT がすべてのプログラムでクラッシュを検出するように指示します。- blacklist = nspluginwrapper, valgrind, strace, [more_packages ]
BlackList
ディレクティブの後に一覧表示されるパッケージおよびバイナリーのクラッシュは ABRT によって処理されません。ABRT が他のパッケージやバイナリーを無視する場合は、ここにコンマで区切られたリストを指定します。- ProcessUnpackaged = yes/no
- このディレクティブは、ABRT が、パッケージに属していない実行可能ファイルでクラッシュを処理するかどうかを示します。デフォルト設定は no です。
- BlackListedPaths =
/usr/share/doc/*
,*/example*
- ABRT では、これらのパスの実行可能ファイル内のクラッシュは無視されます。
/etc/abrt/plugins/CCpp.conf
ファイルでサポートされています。
- MakeCompatCore = yes/no
- このディレクティブは、ABRT のコアキャッチフックがインストールされていない場合に実行する可能性があるので、ABRT のコアキャッチフックがコアファイルを作成するかどうかを指定します。コアファイルは、通常、クラッシュしたプログラムの現行ディレクトリーに作成されますが、ulimit -c 設定がそれを許可する場合のみです。ディレクティブはデフォルトで yes に設定されます。
- SaveBinaryImage = yes/no
- このディレクティブは、ABRT のコアキャッチフックがバイナリーイメージをコアダンプに保存するかどうかを指定します。これは、削除されたバイナリーで発生したクラッシュのデバッグに役立ちます。デフォルト設定は no です。
28.4.5. カーネルパニックを検出するための ABRT の設定
abrt-vmcore
サービスを使用してカーネルパニックを検出できます。このサービスはシステムの起動時に自動的に起動し、/var/crash/
ディレクトリーでコアダンプファイルを検索します。コアダンプファイルが見つかると、abrt-vmcore
が /var/spool/abrt/
ディレクトリーに問題データディレクトリー
を作成し、コアダンプファイルを新たに作成された問題データディレクトリーに移動します。/var/crash/
ディレクトリーを検索すると、このサービスは、次回のシステム起動まで停止します。
- システムで
kdump
サービスが有効になっている。特に、kdump カーネル用に予約されるメモリー容量が正しく設定されている必要があります。これは、system-config-kdump グラフィカルツールを使用するか、/etc/grub.conf
設定ファイルのカーネルオプションの一覧にcrashkernel
パラメーターを指定して設定できます。kdump
の有効化と設定の詳細は、32章kdump クラッシュリカバリーサービス を参照してください。 - yum パッケージインストーラーを使用して abrt-addon-vmcore パッケージ を インストールします。
~]# yum install abrt-addon-vmcore
これにより、各サポートファイルと設定ファイルと共にabrt-vmcore
サービスがインストールされます。abrt-addon-vmcore パッケージは Optional サブスクリプションチャンネルで提供されることに注意してください。Red Hat 追加チャンネルの詳細は、「Optional および Supplementary リポジトリーの追加」 を参照してください。 - システムを再起動して、変更を有効にします。
/var/spool/abrt/
ディレクトリーに保存され、他の検出されたカーネル oops として ABRT でさらに処理できるようになりました。
28.4.6. Debuginfo パッケージの自動ダウンロードとインストール
/etc/libreport/events.d/ccpp_event.conf
ファイルには、デフォルト設定でコメント解除されている以下のアナライザーイベントが含まれています。EVENT=analyze_LocalGDB analyzer=CCpp abrt-action-analyze-core --core=coredump -o build_ids && # In RHEL we don't want to install anything by default # and also this would fail, as the debuginfo repositories. # are not available without root password rhbz#759443 # /usr/libexec/abrt-action-install-debuginfo-to-abrt-cache --size_mb=4096 && abrt-action-generate-backtrace && abrt-action-analyze-backtrace
/etc/libreport/events.d/ccpp_event.conf
ファイルには以下の行が含まれます。この行は、不要なコンテンツのインストールを回避するために、デフォルトでコメントアウトされるため、先頭の#
文字を削除して有効にする必要があります。/usr/libexec/abrt-action-install-debuginfo-to-abrt-cache --size_mb=4096 &&
- gdb パッケージ(問題分析中にバックトレースを生成できる)がシステムにインストールされている。必要な場合は、Yum パッケージマネージャーでパッケージをインストールする方法の詳細は、「パッケージのインストール」 を参照してください。
root
で実行する必要があります。
28.4.7. 特定のタイプのクラッシュについての自動レポートの設定
/etc/libreport/events.d/python _event.conf ファイルの EVENT=post-create 条件に置き換えて、ユーザーによる対話なしに Python のクラッシュを Bugzilla に報告
するように指示できます。新しいルールは以下のようになります。
EVENT=post-create analyzer=Python test -f component || abrt-action-save-package-data reporter-bugzilla -c /etc/abrt/plugins/bugzilla.conf
作成後の
実行が root 権限で実行されます。作成後
イベントは、通常 root 権限で実行される abrtd
により実行されることに注意してください。
28.4.8. プロキシーサーバーを使用したアップロードとレポート
http_proxy
および ftp_proxy
環境変数に準拠します。レポートイベントの一部として環境変数を使用すると、レポートを実行するプロセス(通常は abrt-gui または abrt-cli )からその値を継承します。そのため、作業環境でこれらの変数を使用して、HTTP
または FTP
プロキシーサーバーを指定できます。
作成後
イベントの一部として配置すると、abrtd
プロセスの子として実行されます。abrtd の環境を調整するか、ルールを変更してこれらの変数を設定する必要があります。以下に例を示します。
EVENT=post-create analyzer=Python test -f component || abrt-action-save-package-data export http_proxy=http://proxy.server:8888/ reporter-bugzilla -c /etc/abrt/plugins/bugzilla.conf
28.4.9. 自動レポーティングの設定
- 有効化されると、ユーザーの対話なしに、brokersReports が 自動的 に送信されます。一方、通常のレポートは、ユーザーが手動でトリガーするまで送信されません。
- faillockReports は 匿名で、機密情報は含まれません。これにより、不要なデータが自動的に送信されるリスクがなくなります。
- gitopsReport は検出された問題を JSON オブジェクトとして表します。そのため、これはマシンが読み取り可能であり、自動的に作成され、処理できます。
- gitopsReports は完全なバグレポートよりも小さくなります。
- faillockReports では、大量のデバッグ情報をダウンロードする必要はありません。
- 変数のないプログラムの呼び出しスタックトレース、またはマルチスレッドの C プログラム、C++ プログラム、および Java プログラムの場合は複数のスタックトレース。
- 使用されているオペレーティングシステム
- crash に関連する RPM パッケージのバージョン
- プログラムが
root
ユーザーで実行するかどうか。 - カーネル oops の場合は、ホストハードウェアに関する情報がある警告お使いのハードウェアに関する情報を Red Hat と共有しない場合は、このレポートを有効にしないでください。
- ABRT は、問題に関する基本情報を Red Hat の ABRT サーバーに提出します。
- サーバーは、問題がすでにバグデータベースにあるかどうかを判断します。
- 存在する場合、サーバーは問題の簡単な説明と、報告されたケースの URL を返します。そうでない場合には、サーバーはユーザーを招待して完全な問題レポートを送信します。
root
で以下のコマンドを実行します。
~]# abrt-auto-reporting enabled
/etc/abrt/abrt.conf
ファイルに追加します。
AutoreportingEnabled = yes
$USER/.config/abrt/
ディレクトリーにあります。システム全体の設定を上書きします。
~]# service abrtd restart
/etc/abrt/abrt.conf
設定ファイルの AutoreportingEvent ディレクティブに別の ABRT イベントを割り当てます。標準イベントの概要は 「標準 ABRT インストールでサポートされているイベント」 を参照してください。
/etc/machine-id
ファイルから取得)、RHN アカウント番号など、認証済み の faillockReports を送信することもできます。認証された faillockReports の利点は、通常の pidReports があるため、Red Hat のプライベートクラッシュレポートサーバーだけでなく、Red Hat カスタマーポータルに直接移動する点にあります。これにより、Red Hat は、即座にクラッシュできるようにソリューションを提供できます。
root
で以下のコマンドを実行します。
~]# abrt-auto-reporting enabled -u RHN_username
/etc/libreport/plugins/gitopssupport.conf
ファイルに保存します。
28.5. 集中クラッシュコレクションの設定
28.5.1. 専用システムで必要な設定手順
- クラッシュレポートのアップロード先のディレクトリーを作成します。通常、
/var/spool/abrt-upload/
が使用されます(残りのドキュメントでは、このディレクトリーを使用していることを前提としています)。このディレクトリーが abrt ユーザーが書き込み可能であることを確認してください。abrt ユーザーおよびグループabrt-desktop パッケージをインストールすると、abrt
という名前の新しいシステムユーザーとグループが作成されます。このユーザーはabrtd
デーモンによって使用されます。たとえば、/var/spool/abrt/*
ディレクトリーの owner:group として使用されます。 /etc/abrt/abrt.conf
設定ファイルで、WatchCrashdumpArchiveDir
ディレクティブを以下に設定します。WatchCrashdumpArchiveDir = /var/spool/abrt-upload/
FTP
、SCP
など、希望するアップロードメカニズムを選択します。FTP
の設定方法に関する詳細は、「FTP」 を参照してください。SCP
の設定方法に関する詳細は、「scp ユーティリティーの使用」 を参照してください。アップロード方法が機能するかどうかを確認することが推奨されます。たとえば、FTP を使用する場合は、インタラクティブなFTP
~]$ ftp ftp> open servername Name:
username
Password:password
ftp> cd /var/spool/abrt-upload 250 Operation successful ftp> put testfile ftp> quittestfile
がサーバーシステムの適切なディレクトリーに表示されているかどうかを確認します。- 予想されるクラッシュデータのボリュームがデフォルトの
MaxCrashReportsSize
MB よりも大きい場合は、(/etc/abrt/abrt.conf
設定ファイル内)1000
ディレクティブには大きな値を設定する必要があります。 - C/C++ のクラッシュのバックトレースを生成するかどうかを検討します。バックトレースを全く生成しない場合や、問題が発生した場合は、サーバーでバックトレース生成を無効にできます。標準の ABRT インストールでは、
/etc/libreport/events.d/ccpp_events.conf
設定ファイルの以下のルールを使用して、C/C++ クラッシュのバックトレースが生成されます。EVENT=analyze_LocalGDB analyzer=CCpp abrt-action-analyze-core.py --core=coredump -o build_ids && abrt-action-install-debuginfo-to-abrt-cache --size_mb=4096 && abrt-action-generate-backtrace && abrt-action-analyze-backtrace
ルールにremote!=1
条件を追加して、このルールがアップロードされた問題データに適用されていないことを確認します。 - 問題データのパッケージ情報(
パッケージ
およびコンポーネント
要素)を収集するかどうかを決定します。集中クラッシュコレクション設定でパッケージ情報を収集する必要があるかどうか、またこれを適切に設定する必要があるかどうかを確認するには、「パッケージ情報の保存」 を参照してください。
28.5.2. クライアントシステムで必要な設定手順
- バックトレースを生成したくない場合や、サーバーシステムでそれを生成する場合は、
/etc/libreport/events.d/ccpp_events.conf
ファイルの対応するルールを削除またはコメントアウトする必要があります。このような例は、「専用システムで必要な設定手順」 を参照してください。 - クライアントマシンでパッケージ情報を収集しない場合は、
/etc/libreport/events.d/abrt_event.conf
ファイルで abrt-action-save-package-data を実行するルールをコメントアウトまたは変更します。集中クラッシュコレクション設定でパッケージ情報を収集する必要があるかどうか、またこれを適切に設定する必要があるかどうかを確認するには、「パッケージ情報の保存」 を参照してください。 - 対応する設定ファイルのサーバーシステムに、問題レポートをアップロードするルールを追加します。たとえば、検出される直後にすべての問題を自動的にアップロードする場合は、
/etc/libreport/events.d/abrt_event.conf
設定ファイルで以下のルールを使用できます。EVENT=post-create reporter-upload -u scp://user:password@server.name/directory
または、クライアントに問題データをローカルに保存し、ABRT GUI/CLI を使用して後でアップロードする場合は、reporter-upload プログラムをreport_SFX
イベントとして実行する同様のルールを使用することもできます。以下は、このようなイベントの例になります。EVENT=report_UploadToMyServer reporter-upload -u scp://user:password@server.name/directory
28.5.3. パッケージ情報の保存
post-create
イベントは、abrt-action-save-package-data ツール(他のステップ以外)を実行して、標準の ABRT インストールにこの情報を提供します。
- 問題の内部分析
- 問題データの収集後、パッケージ情報を外部のバグデータベースに報告せずに、インハウス内の問題を診断する予定がある場合に、収集する必要はありません。また、組織またはシステムにインストールされているサードパーティーアプリケーションが作成したプログラムで発生するクラッシュを収集することもできます。このようなプログラムが RPM パッケージの一部である場合は、クライアントシステム と 専用のクラッシュの収集システム では、それぞれの GPG キーを
/etc/abrt/gpg_keys
ファイルに追加するか、/etc/abrt/abrt-action-save-package-data.conf
ファイルに以下の行を追加します。OpenGPGCheck = no
プログラムが RPM パッケージに属していない場合は、クライアントシステムと 専用のクラッシュ収集システム の両方で以下の手順を実行します。/etc/libreport/events.d/abrt_event.conf
ファイルから以下のルールを削除します。EVENT=post-create component= abrt-action-save-package-data
/etc/abrt/abrt-action-save-package-data.conf
ファイルに以下のディレクティブを設定して、インストール済みのパッケージに対応しない問題データディレクトリーを削除しないでください。ProcessUnpackaged = yes
- 外部バグデータベースへのレポート
- または、クラッシュを RHTSupport または Bugzilla に報告することもできます。この場合は、パッケージ情報を収集する必要があります。通常、クライアントマシンと専用のクラッシュ収集システムでは、特定でないインストール済みパッケージセットがあります。そのため、クライアントからアップロードされる問題データが、専用のクラッシュ収集システムにインストールされているパッケージに対応していない可能性があります。標準の ABRT 設定では、問題データが削除されます(ABRT は、パッケージされていない実行可能ファイルでクラッシュとみなします)。これが発生しないようにするには、以下のように 専用のシステム で ABRT の設定を変更する必要があります。
/etc/libreport/events.d/abrt_event.conf
ファイルにremote!=1
条件を追加して、クライアントマシンからアップロードされる問題データのパッケージ情報の誤った収集がされないようにします。EVENT=post-create remote!=1 component= abrt-action-save-package-data
/etc/abrt/abrt-action-save-package-data.conf
に以下のディレクティブを設定して、インストール済みのパッケージに対応しない問題データディレクトリーを削除しないでください。ProcessUnpackaged = yes
専用システムにのみ必要な設定この場合、クライアントシステムではそのような変更は不要であることに注意してください。パッケージ情報を収集し、パッケージされていない実行可能ファイルでクラッシュを無視します。
28.5.4. ABRT のクラッシュ検出のテスト
sleep
プロセスを開始して、kill コマンドでそれを終了します。
~]$ sleep 100 & [1] 2823 ~]$ kill -s SIGSEGV 2823
/var/spool/abrt
ディレクトリーに作成されたクラッシュダンプを調べることによって、適切な syslog ファイルを調べたりして確認可能)。また、サーバーシステムにコピーし、サーバーシステムに展開され、サーバーシステムで abrt-cli または abrt-gui を使用すると確認できます。
第29章 oprofile
- 共有ライブラリー の使用: 共有ライブラリー のコードの Samples は、
--separate=library
オプションが使用されていない限り、特定のアプリケーションに属性されません。 - パフォーマンス監視サンプルは正確に行われません。パフォーマンス監視レジスターがサンプルをトリガーすると、割り込み処理はゼロ例外による分割のように正確で はありません。プロセッサーによる命令の順不同な実行により、サンプルはほぼ近い命令に記録される場合があります。
- opreport は、インライン関数のサンプルを適切に関連付けません。opreport は単純なアドレス範囲メカニズムを使用して、アドレスがどの関数にあるかを判断します。インライン関数のサンプルは、インライン関数には属性ではなく、インライン関数が挿入された関数に対して属性されません。
- OProfile は複数の実行からのデータを累積 します。OProfile はシステム全体のプロファイラーであり、プロセスが複数回起動し、シャットダウンすることを想定します。そのため、複数の実行のサンプルが累積されました。opcontrol --reset コマンドを使用して、直前の実行からサンプルを消去します。
- ハードウェアパフォーマンスカウンターはゲスト仮想マシンでは機能しません。ハードウェアパフォーマンスカウンターは仮想システムでは使用できません。そのため、
timer
モードを使用する必要があります。opcontrol --deinit コマンドを実行してから、modprobe oprofile timer=1 コマンドを実行してtimer
モードを有効にします。 - CPU の制限のないパフォーマンスの問題: OProfile は、CPU の制限のあるプロセスの問題を見つけるために使用されます。OProfile は、ロックを待機するか、または他のイベントが発生するため、sleep であるプロセスを特定しません(例: I/O デバイスで操作を終了するなど)。
29.1. ツールの概要
コマンド | 説明 |
---|---|
ophelp |
システムプロセッサーで使用可能なイベントとその簡単な説明を表示します。
|
opimport |
サンプルデータベースファイルをシステム用に外部のバイナリー形式からネイティブの形式に変換します。異なるアーキテクチャーからのサンプルデータベースを解析する場合にのみこのオプションを使用してください。
|
opannotate | アプリケーションがデバッグシンボルでコンパイルされている場合は、実行可能ファイルのアノテーション付きソースを作成します。詳しくは、「opannotateの使用」 を参照してください。 |
opcontrol |
収集されるデータを設定します。詳しくは、「OProfile の設定」 を参照してください。
|
opreport |
プロファイリングデータを取得します。詳しくは、「opreportの使用」 を参照してください。
|
oprofiled |
デーモンとして実行して定期的にサンプルデータをディスクに書き込みます。
|
29.2. OProfile の設定
/root/.oprofile/daemonrc
ファイルに保存されます。
29.2.1. カーネルの指定
~]# opcontrol --setup --vmlinux=/usr/lib/debug/lib/modules/`uname -r`/vmlinux
~]# opcontrol --setup --no-vmlinux
oprofile
カーネルモジュールも読み込みます(まだ読み込まれていない場合は)、/dev/oprofile/
ディレクトリーを作成します(存在しない場合)。このディレクトリーの詳細は、「/dev/oprofile/
について」 を参照してください。
29.2.2. 監視するイベントの設定
プロセッサー | cpu_type | カウンターの数 |
---|---|---|
AMD64 | x86-64/hammer | 4 |
AMD Athlon | i386/athlon | 4 |
AMD Family 10h | x86-64/family10 | 4 |
AMD Family 11h | x86-64/family11 | 4 |
AMD Family 12h | x86-64/family12 | 4 |
AMD Family 14h | x86-64/family14 | 4 |
AMD Family 15h | x86-64/family15 | 6 |
IBM eServer System i および IBM eServer System p | timer | 1 |
IBM POWER4 | ppc64/power4 | 8 |
IBM POWER5 | ppc64/power5 | 6 |
IBM PowerPC 970 | ppc64/970 | 8 |
IBM S/390 および IBM System z | timer | 1 |
Intel Core i7 | i386/core_i7 | 4 |
Intel Nehalem microarchitecture | i386/nehalem | 4 |
Intel Pentium 4(hy-hyper- thread) | i386/p4 | 8 |
Intel Pentium 4(ハイパースレッド) | i386/p4-ht | 4 |
Intel Westmere microarchitecture | i386/westmere | 4 |
TIMER_INT | timer | 1 |
timer
プロセッサーがパフォーマンス監視ハードウェアに対応していない場合は、プロセッサータイプとして使用されます。
timer
を使用する場合は、ハードウェアのパフォーマンスカウンターをサポートしないため、どのプロセッサーにもイベントも設定できません。代わりに、タイマー割り込みがプロファイリングに使用されます。
timer
がプロセッサータイプとして使用されていない場合は、監視されるイベントを変更し、プロセッサーのカウンター 0 はデフォルトで時間ベースのイベントに設定されます。プロセッサーに複数のカウンターが存在する場合は、カウンター 0 以外のカウンターはデフォルトでイベントには設定されません。監視されるデフォルトイベントは、表29.3「デフォルトイベント」 に表示されます。
プロセッサー | カウンターのデフォルトイベント | 説明 |
---|---|---|
AMD Athlon および AMD64 | CPU_CLK_UNHALTED | プロセッサーのクロックが停止されていない |
AMD Family 10h、AMD Family 11h、AMD Family 12h | CPU_CLK_UNHALTED | プロセッサーのクロックが停止されていない |
AMD Family 14h、AMD Family 15h | CPU_CLK_UNHALTED | プロセッサーのクロックが停止されていない |
IBM POWER4 | サイクル | プロセッサーサイクル |
IBM POWER5 | サイクル | プロセッサーサイクル |
IBM PowerPC 970 | サイクル | プロセッサーサイクル |
Intel Core i7 | CPU_CLK_UNHALTED | プロセッサーのクロックが停止されていない |
Intel Nehalem microarchitecture | CPU_CLK_UNHALTED | プロセッサーのクロックが停止されていない |
Intel Pentium 4(ハイパースレッドおよび非スレッド) | GLOBAL_POWER_EVENTS | プロセッサーが停止していない時間 |
Intel Westmere microarchitecture | CPU_CLK_UNHALTED | プロセッサーのクロックが停止されていない |
TIMER_INT | (なし) | 各タイマー割り込みの例 |
~]# ls -d /dev/oprofile/[0-9]*
~]# ophelp
Unable to open cpu_type file for reading Make sure you have done opcontrol --init cpu_type 'unset' is not valid you should upgrade oprofile or force the use of timer mode
~]# opcontrol --event=event-name:sample-rate
29.2.2.1. サンプリングレート
cpu_type
が timer
でない場合、各イベントには サンプリングレート を設定できます。サンプリングレートは、各サンプルスナップショット間のイベント数です。
~]# opcontrol --event=event-name:sample-rate
29.2.2.2. ユニットマスク
~]# opcontrol --event=event-name:sample-rate:unit-mask
29.2.3. カーネルとユーザー空間プロファイルの分離
~]# opcontrol --event=event-name:sample-rate:unit-mask:0
~]# opcontrol --event=event-name:sample-rate:unit-mask:1
~]# opcontrol --event=event-name:sample-rate:unit-mask:kernel:0
~]# opcontrol --event=event-name:sample-rate:unit-mask:kernel:1
~]# opcontrol --separate=choice
none
- プロファイルを分離することはできません(デフォルト)。- ライブラリー - ライブラリー のアプリケーションごとのプロファイルを生成します。
- kernel - カーネルおよびカーネルモジュールのアプリケーションごとのプロファイルを生成します。
- all: ライブラリーおよびカーネルモジュールのアプリケーションごとのプロファイルを生成します。
--separate=library
が使用される場合、サンプルファイル名には実行可能ファイルの名前およびライブラリーの名前が含まれます。
29.3. OProfile の起動および停止
~]# opcontrol --start
Using log file /var/lib/oprofile/oprofiled.log Daemon started. Profiler running.
/root/.oprofile/daemonrc
の設定が使用されます。
/var/lib/oprofile/samples/
ディレクトリーに書き込みます。デーモンのログファイルは /var/lib/oprofile/oprofiled.log
にあります。
nmi_watchdog
は perf
サブシステムに登録します。このため、perf
サブシステムは起動時にパフォーマンスカウンターレジスターを制御し、OProfile が機能しなくなります。
nmi_watchdog
を無効にします。
~]# echo 0 > /proc/sys/kernel/nmi_watchdog
nmi_watchdog
を再度有効にするには、以下のコマンドを使用します。
~]# echo 1 > /proc/sys/kernel/nmi_watchdog
~]# opcontrol --shutdown
29.4. データの保存
~]# opcontrol --save=name
/var/lib/oprofile/samples/
ディレクトリーが作成され、現在のサンプルファイルがコピーされます。
29.5. データの分析
/var/lib/oprofile/samples/
ディレクトリーに書き込みます。データを読み取る前に、root で以下のコマンドを実行して、すべてのデータがこのディレクトリーに書き込まれていることを確認します。
~]# opcontrol --dump
\{root\}/bin/bash/\{dep\}/\{root\}/bin/bash/CPU_CLK_UNHALTED.100000
- opreport
- opannotate
29.5.1. opreportの使用
Profiling through timer interrupt TIMER:0| samples| %| ------------------ 25926 97.5212 no-vmlinux 359 1.3504 pi 65 0.2445 Xorg 62 0.2332 libvte.so.4.4.0 56 0.2106 libc-2.3.4.so 34 0.1279 libglib-2.0.so.0.400.7 19 0.0715 libXft.so.2.1.2 17 0.0639 bash 8 0.0301 ld-2.3.4.so 8 0.0301 libgdk-x11-2.0.so.0.400.13 6 0.0226 libgobject-2.0.so.0.400.7 5 0.0188 oprofiled 4 0.0150 libpthread-2.3.4.so 4 0.0150 libgtk-x11-2.0.so.0.400.13 3 0.0113 libXrender.so.1.2.2 3 0.0113 du 1 0.0038 libcrypto.so.0.9.7a 1 0.0038 libpam.so.0.77 1 0.0038 libtermcap.so.2.0.8 1 0.0038 libX11.so.6.2 1 0.0038 libgthread-2.0.so.0.400.7 1 0.0038 libwnck-1.so.4.9.0
-r
オプションでは、サンプルの最大数が最も少ない実行可能ファイルから、最大数のサンプルを持つ実行ファイルから出力をソートします。
29.5.2. 単一の実行可能ファイルでの opreport の使用
~]# opreport mode executable
-
-l
- シンボルによるサンプルデータを一覧表示します。たとえば、以下は、opreport -l /lib/tls/libc-version.so コマンドを実行する際の出力の一部です。
samples % symbol name 12 21.4286 __gconv_transform_utf8_internal 5 8.9286 _int_malloc 4 7.1429 malloc 3 5.3571 __i686.get_pc_thunk.bx 3 5.3571 _dl_mcount_wrapper_check 3 5.3571 mbrtowc 3 5.3571 memcpy 2 3.5714 _int_realloc 2 3.5714 _nl_intern_locale_data 2 3.5714 free 2 3.5714 strcmp 1 1.7857 __ctype_get_mb_cur_max 1 1.7857 __unregister_atfork 1 1.7857 __write_nocancel 1 1.7857 _dl_addr 1 1.7857 _int_free 1 1.7857 _itoa_word 1 1.7857 calc_eclosure_iter 1 1.7857 fopen@@GLIBC_2.1 1 1.7857 getpid 1 1.7857 memmove 1 1.7857 msort_with_tmp 1 1.7857 strcpy 1 1.7857 strlen 1 1.7857 vfprintf 1 1.7857 write
最初の列は、シンボルのサンプル数で、2 番目のコラムは、実行可能なサンプルに対するこのシンボルのサンプルの割合で、3 番目のコラムは記号名になります。最大数のサンプルから最小(リバース順序)に出力を並べ替えるには、-l
オプションとともに-r
を使用します。 -
-i symbol-name
- シンボル名に固有のサンプルデータを一覧表示します。たとえば、以下の出力は、opreport -l -i __gconv_transform_utf8_internal /lib/tls/libc-version.so コマンドにあります。
samples % symbol name 12 100.000 __gconv_transform_utf8_internal
最初の行は、シンボル/実行可能ファイルの組み合わせの概要です。最初の列は、メモリーシンボルのサンプル数です。2 列目は、シンボルのサンプルの合計数と相対的に、メモリーアドレスのサンプルの割合(パーセント)です。3 列はシンボル名です。 -
-d
-l
よりも多くの詳細を含むシンボルによるサンプルデータを一覧表示します。たとえば、以下の出力は、opreport -l -d __gconv_transform_utf8_internal /lib/tls/libc-version.so コマンドにあります。vma samples % symbol name 00a98640 12 100.000 __gconv_transform_utf8_internal 00a98640 1 8.3333 00a9868c 2 16.6667 00a9869a 1 8.3333 00a986c1 1 8.3333 00a98720 1 8.3333 00a98749 1 8.3333 00a98753 1 8.3333 00a98789 1 8.3333 00a98864 1 8.3333 00a98869 1 8.3333 00a98b08 1 8.3333
データは-l
オプションと同じですが、各シンボルで、使用される各仮想メモリーアドレスが表示されます。各仮想メモリーアドレスについて、シンボルのサンプル数と基準に対するサンプル数とパーセンテージが表示されます。-
-x
symbol-name - 出力からシンボルのコンマ区切りリストを除外します。
-
Session
:name /var/lib/oprofile/samples/
ディレクトリーに対するセッションまたはディレクトリーへの完全パスを指定します。
29.5.3. モジュールでの詳細な出力の取得
initrd
ファイルから、さまざまなカーネルモジュールを含むディレクトリー、またはローカルに作成されたカーネルモジュールから送られる場合があります。その結果、OProfile がモジュールのサンプルを記録すると、root ディレクトリーで実行可能なモジュールのサンプルのみが一覧表示されますが、これはモジュールの実際のコードで配置される訳ではありません。分析ツールが実行ファイルを取得できるようにするには、いくつかの手順を実行する必要があります。
~]# opcontrol --reset
~]# opcontrol --setup --vmlinux=/usr/lib/debug/lib/modules/`uname -r`/vmlinux --event=CPU_CLK_UNHALTED:500000
~]# opreport /ext4 -l --image-path /lib/modules/`uname -r`/kernel
CPU: Intel Westmere microarchitecture, speed 2.667e+06 MHz (estimated)
Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with a unit mask of 0x00 (No unit mask) count 500000
warning: could not check that the binary file /lib/modules/2.6.32-191.el6.x86_64/kernel/fs/ext4/ext4.ko has not been modified since the profile was taken. Results may be inaccurate.
samples % symbol name
1622 9.8381 ext4_iget
1591 9.6500 ext4_find_entry
1231 7.4665 __ext4_get_inode_loc
783 4.7492 ext4_ext_get_blocks
752 4.5612 ext4_check_dir_entry
644 3.9061 ext4_mark_iloc_dirty
583 3.5361 ext4_get_blocks
583 3.5361 ext4_xattr_get
479 2.9053 ext4_htree_store_dirent
469 2.8447 ext4_get_group_desc
414 2.5111 ext4_dx_find_entry
29.5.4. opannotateの使用
~]# opannotate --search-dirs src-dir --source executable
29.6. /dev/oprofile/
について
/dev/oprofile/
ディレクトリーには、OProfile のファイルシステムが含まれます。cat コマンドを使用して、このファイルシステムの仮想ファイルの値を表示します。たとえば、以下のコマンドは検出されたプロセッサー OProfile のタイプを表示します。
~]# cat /dev/oprofile/cpu_type
/dev/oprofile/
に存在する。たとえば、カウンターが 2 つある場合は、/dev/oprofile/0 / ディレクトリーと dev/oprofile
/1/ ディレクトリーが存在
します。
count
: サンプルの間隔enabled
: 0 の場合、カウンターはオフになり、そのカウンターは収集されません。1 の場合は、カウンターがオンになり、サンプルが収集されます。event
: 監視するイベント。extra
: Nehalem プロセッサーを持つマシンで使用し、さらに監視するイベントを指定します。- kernel: 0 の場合は、プロセッサーが
カーネル
スペースにあるときにこのカウンターイベントのサンプルが収集されません。1 の場合は、プロセッサーがカーネルスペースにある場合でもサンプルが収集されます。 unit_mask
: カウンターに対して有効なユニットマスクを定義します。- User: 0 の場合は、プロセッサーが
ユーザー
空間にあるときにカウンターイベントのサンプルが収集されません。1 の場合は、プロセッサーがユーザー空間にある場合でもサンプルが収集されます。
~]# cat /dev/oprofile/0/count
29.7. 使用例
- システムで使用されるアプリケーションとサービスを判別 します。opreport を使用して、アプリケーションやサービスが使用するプロセッサー時間を判別できます。システムが複数のサービスに使用されていても、実行中である場合は、最もプロセッサー時間を消費するサービスを専用のシステムに移動できます。
- プロセッサーの使用量の決定:
CPU_CLK_UNHALTED
イベントを監視し、一定期間におけるプロセッサーの負荷を判断できます。このデータを使用して、追加のプロセッサーが追加または高速のプロセッサーがシステムパフォーマンスを向上させるかどうかを判断できます。
29.8. Java の OProfile サポート
29.8.1. Java コードのプロファイリング
-agentlib:jvmti_oprofile
29.9. グラフィカルインターフェース
/root/.oprofile/daemonrc
に書き込まれ、アプリケーションが終了します。
図29.1 OProfile のセットアップ

[D]
vmlinux
ファイルの名前と場所を入力します。OProfile がカーネルを監視しないように設定するには、No kernel image を選択します。
図29.2 OProfile の設定

[D]
29.10. OProfile および SystemTap
29.11. その他のリソース
29.11.1. Installed Docs
/usr/share/doc/oprofile-version/oprofile.html
- 『OProfile Manual』- OProfile man ページ: opcontrol、opreport、opannotate、および ophelp
29.11.2. 便利な Web サイト
- http://oprofile.sourceforge.net/ - 最新のドキュメント、メーリングリスト、IRC チャネルなどが含まれます。
- SystemTap ビギナーズガイド: SystemTap を使用して Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux の異なるサブシステムを監視する基本的な手順を提供します。
パート VIII. カーネル、モジュール、およびドライバーの設定
第30章 カーネルの手動によるアップグレード
30.1. カーネルパッケージの概要
- kernel - 単一、マルチコア、マルチプロセッサーシステム用のカーネルが含まれます。
- kernel-debug - カーネル診断用に有効なデバッグオプションが多数含まれるカーネルが含まれますが、パフォーマンスが低下します。
- kernel-devel - kernel パッケージに対してモジュールを構築するのに十分なカーネルヘッダーと makefiles が含まれます。
- kernel-debug-devel - カーネル診断用に多くのデバッグオプションが有効になっている開発バージョンのカーネルが含まれます。ただし、パフォーマンスが低下します。
- kernel-doc - カーネルソースのドキュメントファイル。これらのファイルには、同梱で配布される Linux カーネルとデバイスドライバーのさまざまな部分が文書化されています。このパッケージをインストールすると、オプションへの参照が提供され、読み込み時に Linux カーネルモジュールに渡すことができます。デフォルトでは、これらのファイルは
/usr/share/doc/kernel-doc- <kernel_version> /
ディレクトリーに配置されます。 - kernel-headers - Linux カーネルとユーザー空間ライブラリーとプログラム間のインターフェースを指定する C ヘッダーファイルが含まれます。ヘッダーファイルは、ほとんどの標準プログラムを構築するのに必要な構造と定数を定義します。
- kernel-firmware - さまざまなデバイスで動作するために必要なすべてのファームウェアファイルが含まれます。
- perf - このパッケージには、各カーネルイメージのサブパッケージに同梱される perf ツールのサポートスクリプトとドキュメントが含まれています。
30.2. アップグレードの準備
VFAT
ファイルシステムとしてフォーマットされています。ext2
、ext3
、または VFAT
としてフォーマットされているメディア上で起動可能な USB メディアを作成できます。
4 GB
はディストリビューション DVD イメージ、ディストリビューション CD イメージの場合は 700 MB
、または最小ブートメディアイメージの場合は約 10 MB
に必要です。
boot.iso
ファイルのコピーと、空き領域の約 16 MB
でフォーマットされた USB ストレージデバイスが必要です。
以下の手順は、コピー先のファイルと同じパス名を持っている場合を除き、USB ストレージデバイスにある既存のファイルには影響しません。USB ブートメディアを作成するには、root
で以下のコマンドを実行します。
- USB ストレージデバイスに SYSLINUX ブートローダーをインストールします。
~]# syslinux /dev/sdX1
... sdX はデバイス名です。 boot.iso
と USB ストレージデバイス用にマウントポイントを作成します。~]# mkdir /mnt/isoboot /mnt/diskboot
boot.iso
をマウントします。~]# mount -o loop boot.iso /mnt/isoboot
- USB ストレージデバイスをマウントします。
~]# mount /dev/<sdX1> /mnt/diskboot
- ISOLINUX ファイルを
boot.iso
から USB ストレージデバイスにコピーします。~]# cp /mnt/isoboot/isolinux/* /mnt/diskboot
boot.iso
からのisolinux.cfg
ファイルを USB デバイスのsyslinux.cfg
ファイルとして使用します。~]# grep -v local /mnt/isoboot/isolinux/isolinux.cfg > /mnt/diskboot/syslinux.cfg
boot.iso
と USB ストレージデバイスをアンマウントします。~]# umount /mnt/isoboot /mnt/diskboot
- ブートメディアでマシンを再起動し、起動できることを確認してから、続行してください。
~]# yum list installed "kernel-*"
kernel.x86_64 2.6.32-17.el6 @rhel-x86_64-server-6
kernel-doc.noarch 2.6.32-17.el6 @rhel-x86_64-server-6
kernel-firmware.noarch 2.6.32-17.el6 @rhel-x86_64-server-6
kernel-headers.x86_64 2.6.32-17.el6 @rhel-x86_64-server-6
30.3. アップグレードされたカーネルのダウンロード
- セキュリティーエラータ - セキュリティー問題を修正するカーネルのアップグレードなど、セキュリティーエラータの詳細 http://www.redhat.com/security/updates/ は を参照してください。
- Red Hat Network: Red Hat Network にサブスクライブしているシステムの場合は、yum パッケージマネージャーが最新のカーネルをダウンロードして、システム上のカーネルをアップグレードできます。Dracut ユーティリティーは、必要に応じて初期 RAM ディスクイメージを作成し、新しいカーネルを起動するようにブートローダーを設定します。Red Hat Network からパッケージをインストールする方法は、8章Yum を参照してください。Red Hat Network にシステムを登録する方法は、6章システム登録およびサブスクリプション管理 を参照してください。
30.4. アップグレードの実行
-i
引数を使用して古いカーネルを残します。-U
オプションは、現在インストールされているカーネルを上書きして、ブートローダーの問題を作成するため、使用し ない でください。以下に例を示します。
~]# rpm -ivh kernel-<kernel_version>.<arch>.rpm
30.5. 初期 RAM ディスクイメージの確認
initramfs
を作成できます。ただし、initramfs
を手動で作成する必要はありません。このステップは、カーネルとその関連パッケージが Red Hatnbsp;Hat によって配布される RPM パッケージからインストールされているか、またはアップグレードされている場合には自動的に実行されます。
initramfs
が存在し、grub.conf
設定ファイルで正しく指定されていることを確認できます。
手順30.1 初期 RAM ディスクイメージの確認
- root として、
/boot/
ディレクトリーのコンテンツを一覧表示し、最新のバージョン番号でカーネル(vmlinuz- <kernel_version
>)とinitramfs- <kernel_version
> を検索します。例30.1 カーネルと initramfs バージョンの一致を確認
~]# ls /boot/ config-2.6.32-17.el6.x86_64 lost+found config-2.6.32-19.el6.x86_64 symvers-2.6.32-17.el6.x86_64.gz config-2.6.32-22.el6.x86_64 symvers-2.6.32-19.el6.x86_64.gz efi symvers-2.6.32-22.el6.x86_64.gz grub System.map-2.6.32-17.el6.x86_64 initramfs-2.6.32-17.el6.x86_64.img System.map-2.6.32-19.el6.x86_64 initramfs-2.6.32-19.el6.x86_64.img System.map-2.6.32-22.el6.x86_64 initramfs-2.6.32-22.el6.x86_64.img vmlinuz-2.6.32-17.el6.x86_64 initrd-2.6.32-17.el6.x86_64kdump.img vmlinuz-2.6.32-19.el6.x86_64 initrd-2.6.32-19.el6.x86_64kdump.img vmlinuz-2.6.32-22.el6.x86_64 initrd-2.6.32-22.el6.x86_64kdump.img
例30.1「カーネルと initramfs バージョンの一致を確認」 は以下の点を示しています。- 3 つのカーネルがインストールされています(より正確には、3 つのカーネルファイルが
/boot/
にあります)。 - 最新のカーネルは
vmlinuz-2.6.32-22.el6.x86_64
です。 - カーネルバージョン
initramfs
-2.6.32-22.el6.x86_64.img に一致する initramfs
ファイルもあります。
/boot ディレクトリーの initrd ファイルが initramfs ファイルと同じではない/boot/
ディレクトリーには、initrd- <version> kdump.img ファイルが
複数見つかる場合があります。これは、カーネルのデバッグ目的で Kdump メカニズムで作成される特別なファイルであり、システムの起動には使用されません。また、無視しても問題はありません。 - (オプション)
initramfs- <kernel_version
> ファイルが/boot/
内の最新カーネルのバージョンと一致しない場合、または他の特定の状況では、Dracut ユーティリティーを使用してinitramfs
ファイルを生成する必要がある場合があります。root としてオプションを指定せずに dracut を呼び出すと、そのディレクトリーにある最新のカーネルのinitramfs
ファイルが/boot/
ディレクトリーに生成されます。~]# dracut
dracut で既存のinitramfs
を上書きするには、--force
オプションを使用する必要があります(たとえば、initramfs
が破損している場合)。それ以外の場合は、dracut は既存のinitramfs
ファイルの上書きを拒否します。~]# dracut Will not override existing initramfs (/boot/initramfs-2.6.32-22.el6.x86_64.img) without --force
現在のディレクトリーに initramfs を作成するには、 dracut < initramfs_name& gt; <kernel_version > を呼び出します。~]# dracut "initramfs-$(uname -r).img" $(uname -r)
事前に読み込む特定のカーネルモジュールを指定する必要がある場合には、/etc/dracut.conf
設定ファイルのadd_dracutmodules="<module> [<more_modules>]"
ディレクティブの括弧内にこれらのモジュールの名前(.ko
などのファイル名のサフィックスを除く)を追加します。dracut で作成したinitramfs
イメージファイルの内容を一覧表示するには、lsinitrd < initramfs_file& gt; コマンドを使用します。~]# lsinitrd initramfs-2.6.32-22.el6.x86_64.img initramfs-2.6.32-22.el6.x86_64.img: ======================================================================== dracut-004-17.el6 ======================================================================== drwxr-xr-x 23 root root 0 May 3 22:34 . drwxr-xr-x 2 root root 0 May 3 22:33 proc -rwxr-xr-x 1 root root 7575 Mar 25 19:53 init drwxr-xr-x 7 root root 0 May 3 22:34 etc drwxr-xr-x 2 root root 0 May 3 22:34 etc/modprobe.d [output truncated]
オプションと使用方法についての詳しい情報は、man dracut および man dracut.conf を参照してください。 /boot/grub/
ディレクトリーのgrub.conf
設定ファイルを検査して、起動しているカーネルバージョンのinitrd
が存在することを確認します。詳細は、「ブートローダーの確認」 を参照してください。initramfs-<kernel_version>.img
IBM eServer System i 上の初期 RAM ディスクイメージとカーネルの検証
boot/vmlinitrd- <kernel_version
> ファイルがすでに存在していることを確認します(< kernel_version
> はインストールしたカーネルのバージョンと一致する必要があります)。
30.6. ブートローダーの確認
アーキテクチャー | ブートローダー | 参照 |
---|---|---|
x86 | GRUB | 「GRUB ブートローダーの設定」 |
AMD AMD64 または Intel 64 | GRUB | 「GRUB ブートローダーの設定」 |
IBM eServer System i | OS/400 | 「OS/400 ブートローダーの設定」 |
IBM eServer System p | YABOOT | 「YABOOT ブートローダーの設定」 |
IBM System z | z/IPL |
30.6.1. GRUB ブートローダーの設定
/boot/grub/grub.conf
には、default
、timeout
、splashimage
、および hiddenmenu
(最後のディレクティブには引数がありません)などのディレクティブを含む行がいくつか含まれています。残りのファイルには、4 行の スタンザ が含まれており、それぞれがインストール済みカーネルを参照します。これらのスタンザは、常に title
エントリーで始まります。その後、関連付けられた root
、kernel
ディレクティブ、および initrd
ディレクティブを常にインデントする必要があります。各スタンザが、同じスタンザの title
行のバージョン番号(括弧内)が含まれる kernel /vmlinuz-<version_number>
で始まることを確認します。
例30.2 /boot/grub/grub.conf
# grub.conf generated by anaconda
[comments omitted]
default=1
timeout=0
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux (2.6.32-22.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-22.el6.x86_64 ro root=/dev/mapper/vg_vm6b-lv_root rd_LVM_LV=vg_vm6b/lv_root rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet crashkernel=auto
initrd /initramfs-2.6.32-22.el6.x86_64.img
title Red Hat Enterprise Linux (2.6.32-19.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-19.el6.x86_64 ro root=/dev/mapper/vg_vm6b-lv_root rd_LVM_LV=vg_vm6b/lv_root rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet crashkernel=auto
initrd /initramfs-2.6.32-19.el6.x86_64.img
title Red Hat Enterprise Linux 6 (2.6.32-17.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-17.el6.x86_64 ro root=/dev/mapper/vg_vm6b-lv_root rd_LVM_LV=vg_vm6b/lv_root rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet
initrd /initramfs-2.6.32-17.el6.x86_64.img
/boot/
パーティションを作成した場合、カーネルと initramfs
イメージへのパスは /boot/
との相対パスになります。上記は 例30.2「/boot/grub/grub.conf」 で行います。したがって、最初のカーネルスタンザの initrd /initramfs-2.6.32-22.el6.x86_64.img
行は、root ファイルシステムがマウントされる際に initramfs
イメージが実際に /boot/initramfs-2.6.32-22.el6.x86_64.img
に置かれていることを意味します。また、grub.conf
の各スタンザでカーネルパス(例: kernel /vmlinuz-2.6.32-22.el6.x86_64
)に使用されます。
grub.conf
のカーネルブートスタンザでは、initrd
ディレクティブは、同じカーネルバージョンに対応する initramfs
ファイルの場所(別のパーティションにある場合は /boot/
ディレクトリーに対して相対的)を参照する必要があります。初期 RAM ディスクイメージを作成した以前のツール、mkinitrd が initrd
と呼ばれるファイルを作成したため、この指示文は initrd
と呼ばれます。したがって、grub.conf
ディレクティブは、他のツールとの互換性を維持するために initrd
のままです。初期 RAM ディスクイメージを作成するための dracut ユーティリティーを使用したシステムのファイル命名規則は、initramfs- <kernel_version > .img です。
kernel /vmlinuz-<kernel_version>
行で指定されるカーネルバージョン番号が、各スタンザの initrd /initramfs-<kernel_version>.img
行に指定されている initramfs
イメージのバージョン番号と一致している必要があります。詳細は、手順30.1「初期 RAM ディスクイメージの確認」 を参照してください。
default=
ディレクティブは、デフォルトで 起動するカーネルが GRUB に指示します。grub.conf
の各 title
は起動可能なカーネルを表します。GRUB は、title
で始まる起動可能なカーネルを表す 0
d スタンザをカウントします。例30.2「/boot/grub/grub.conf」 では、default=1
の行は、GRUB がデフォルトで 2 番目 のカーネルエントリー(つまり title Red Hat Enterprise Linux (2.6.32-19.el6.x86_64)
)を起動することを示しています。
grub.conf
の 最初 の title
エントリーである新しいカーネルを起動するには、default
の値を 0
に変更する必要があります。
/boot/grub/grub.conf
が正しいことを確認し、default=
の値を新しいカーネルに変更します( 0
からカウントするのを忘れている間は、コンピューターを新しいカーネルに再起動します)。ブートプロセスの出力を監視して、ハードウェアが検出されていることを確認します。
grub.conf
の timeout
ディレクティブを 0
に設定すると、システムの起動時に GRUB が起動可能なカーネルの一覧を表示しません。システムの起動時にこの一覧を表示するには、BIOS 情報が表示された後に英数字キーを押して保持します。GRUB メニューが表示されます。
30.6.2. ループデバイスの制限の設定
max_loop
カーネルオプションで設定されます。たとえば、ループバックデバイスの最大数を 64
に設定し、/etc/grub.conf
ファイルを編集し、カーネル行の最後に max_loop=64
を追加します。/etc/grub.conf
の行は以下のようになります。
kernel /vmlinuz-2.6.32-131.0.15.el6.x86_64 ro root=/dev/mapper/root rhgb quiet max_loop=64 initrd /initramfs-2.6.32-131.0.15.el6.x86_64.imgシステムを再起動して、変更を有効にします。
/dev/loop*
デバイス(/dev/loop0
から /dev/loop7
への)が自動的に生成されますが、必要に応じて作成することもできます。たとえば、/dev/loop8
という名前の ninth ループデバイスを設定するには、root
で以下のコマンドを実行します。
~]# mknod /dev/loop8 b 7 8
したがって、Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 カーネルを搭載したシステムの管理者は、必要な数のループバックデバイスと、init スクリプト、または udev ルールを使って手動で作成できます。
max_loop
が設定されている場合、max_loop
はループバックデバイスの数がハード制限になり、ループバックデバイスの数は制限を超えて動的に拡張できません。
30.6.3. OS/400 ブートローダーの設定
/boot/vmlinitrd- <kernel-version> ファイル
は、カーネルのアップグレード時にインストールされます。ただし、dd コマンドを使用して、新しいカーネルを起動するように設定する必要があります。
- root として、cat /proc/iSeries/mf/side コマンドを実行してデフォルトのサイドを確認します(A、B、または C のいずれか)。
- root で、以下のコマンドを実行します。ここで、< kernel-version > は新しいカーネルのバージョンで、< side > は直前のコマンド側になります。
dd if=/boot/vmlinitrd-<kernel-version> of=/proc/iSeries/mf/<side>/vmlinux bs=8k
30.6.4. YABOOT ブートローダーの設定
/etc/yaboot.conf
を設定ファイルとして使用します。ファイルに先ほどインストールした image
パッケージと同じバージョンの kernel セクションが含まれている( initramfs
イメージの場合と同様)ことを確認します。
boot=/dev/sda1 init-message=Welcome to RedRed Hat Enterprise Linuxnbsp;Hat EnterpriseRed Hat Enterprise Linuxnbsp;Linux! Hit <TAB> for boot options partition=2 timeout=30 install=/usr/lib/yaboot/yaboot delay=10 nonvram image=/vmlinuz-2.6.32-17.EL label=old read-only initrd=/initramfs-2.6.32-17.EL.img append="root=LABEL=/" image=/vmlinuz-2.6.32-19.EL label=linux read-only initrd=/initramfs-2.6.32-19.EL.img append="root=LABEL=/"
default
を追加して、新しいカーネルを含むイメージスタンザの label
に設定します。
第31章 カーネルモジュールの使用
- 新しいハードウェアへのサポートを強化するデバイスドライバー
btrfs
やNFS
などのファイルシステムのサポート
- ユーザー空間の module-init-tools パッケージを使用して、カーネルモジュールとその依存関係を表示、クエリー、読み込み、アンロードします。
- モジュールパラメーターをコマンドラインで動的に設定し、カーネルモジュールの動作をカスタマイズできるようにします。
- 起動時にモジュールをロードします。
~]# yum install module-init-tools
31.1. 現在ロードされているモジュールの一覧表示
~]$ lsmod Module Size Used by xfs 803635 1 exportfs 3424 1 xfs vfat 8216 1 fat 43410 1 vfat tun 13014 2 fuse 54749 2 ip6table_filter 2743 0 ip6_tables 16558 1 ip6table_filter ebtable_nat 1895 0 ebtables 15186 1 ebtable_nat ipt_MASQUERADE 2208 6 iptable_nat 5420 1 nf_nat 19059 2 ipt_MASQUERADE,iptable_nat rfcomm 65122 4 ipv6 267017 33 sco 16204 2 bridge 45753 0 stp 1887 1 bridge llc 4557 2 bridge,stp bnep 15121 2 l2cap 45185 16 rfcomm,bnep cpufreq_ondemand 8420 2 acpi_cpufreq 7493 1 freq_table 3851 2 cpufreq_ondemand,acpi_cpufreq usb_storage 44536 1 sha256_generic 10023 2 aes_x86_64 7654 5 aes_generic 27012 1 aes_x86_64 cbc 2793 1 dm_crypt 10930 1 kvm_intel 40311 0 kvm 253162 1 kvm_intel [output truncated]
- メモリーに現在読み込まれているカーネルモジュールの名前
- 使用するメモリー量(および)
- モジュールを使用しているプロセスの合計と、それに依存する他のモジュールがある場合は、そのモジュールの名前の一覧が続きます。この一覧を使用して、アンロードしたいモジュールに依存しているモジュールすべてを最初にアンロードできます。詳細は、「モジュールのアンロード」 を参照してください。
/proc/modules
擬似ファイルの内容ほど詳細ではないので、はるかに読み取りやすくなっていることに注意してください。
31.2. モジュール情報の表示
.ko
を付けないでください。カーネルモジュール名には拡張子はありません。対応するファイルには拡張子があります。
e1000e
モジュールに関する情報を表示するには、以下のコマンドを実行します。
例31.1 lsmod を使用したカーネルモジュール情報の一覧表示
~]# modinfo e1000e
filename: /lib/modules/2.6.32-71.el6.x86_64/kernel/drivers/net/e1000e/e1000e.ko
version: 1.2.7-k2
license: GPL
description: Intel(R) PRO/1000 Network Driver
author: Intel Corporation, <linux.nics@intel.com>
srcversion: 93CB73D3995B501872B2982
alias: pci:v00008086d00001503sv*sd*bc*sc*i*
alias: pci:v00008086d00001502sv*sd*bc*sc*i*
[some alias
lines omitted]
alias: pci:v00008086d0000105Esv*sd*bc*sc*i*
depends:
vermagic: 2.6.32-71.el6.x86_64 SMP mod_unload modversions
parm: copybreak:Maximum size of packet that is copied to a new buffer on receive (uint)
parm: TxIntDelay:Transmit Interrupt Delay (array of int)
parm: TxAbsIntDelay:Transmit Absolute Interrupt Delay (array of int)
parm: RxIntDelay:Receive Interrupt Delay (array of int)
parm: RxAbsIntDelay:Receive Absolute Interrupt Delay (array of int)
parm: InterruptThrottleRate:Interrupt Throttling Rate (array of int)
parm: IntMode:Interrupt Mode (array of int)
parm: SmartPowerDownEnable:Enable PHY smart power down (array of int)
parm: KumeranLockLoss:Enable Kumeran lock loss workaround (array of int)
parm: WriteProtectNVM:Write-protect NVM [WARNING: disabling this can lead to corrupted NVM] (array of int)
parm: CrcStripping:Enable CRC Stripping, disable if your BMC needs the CRC (array of int)
parm: EEE:Enable/disable on parts that support the feature (array of int)
- filename
.ko
カーネルオブジェクトファイルへの絶対パス。modinfo -n を、filename
フィールドのみを出力するショートカットコマンドとして使用できます。- description
- モジュールの簡単な説明。modinfo -d を、説明フィールドのみを出力するショートカットコマンドとして使用できます。
- alias
alias
フィールドは、モジュールのエイリアスが存在する回数だけ表示され、存在しない場合は完全に省略されます。- 依存
- このフィールドには、このモジュールが依存するすべてのモジュールのコンマ区切りリストが含まれます。depends フィールドの削除モジュールに依存関係がない場合、
depends
フィールドは出力から省略される可能性があります。 - parm
- 各
parm
フィールドは、parameter_name:description
の形式でモジュールパラメーターを 1 つ表示します。ここでは以下のようになります。- PARAMETER _NAME は、コマンドラインでモジュールパラメーターとして使用する場合や、
/etc/modprobe.d/
ディレクトリーの.conf
ファイルのオプション行に使用すべき構文です。 - description は、パラメーターの動作を簡単に説明し、パラメーターが受け入れる値のタイプ( int、unit、または array of intなど)を括弧で示すことが想定されています。
-p
オプションを使用すると、モジュールがサポートするパラメーターの一覧を表示できます。ただし、便利な値タイプの情報は modinfo -p の出力から省略されるため、以下を実行すると便利です。例31.2 モジュールパラメーターの一覧表示
~]# modinfo e1000e | grep "^parm" | sort parm: copybreak:Maximum size of packet that is copied to a new buffer on receive (uint) parm: CrcStripping:Enable CRC Stripping, disable if your BMC needs the CRC (array of int) parm: EEE:Enable/disable on parts that support the feature (array of int) parm: InterruptThrottleRate:Interrupt Throttling Rate (array of int) parm: IntMode:Interrupt Mode (array of int) parm: KumeranLockLoss:Enable Kumeran lock loss workaround (array of int) parm: RxAbsIntDelay:Receive Absolute Interrupt Delay (array of int) parm: RxIntDelay:Receive Interrupt Delay (array of int) parm: SmartPowerDownEnable:Enable PHY smart power down (array of int) parm: TxAbsIntDelay:Transmit Absolute Interrupt Delay (array of int) parm: TxIntDelay:Transmit Interrupt Delay (array of int) parm: WriteProtectNVM:Write-protect NVM [WARNING: disabling this can lead to corrupted NVM] (array of int)
31.3. モジュールの読み込み
wacom
モジュールを読み込むには、以下のコマンドを実行します。
~]# modprobe wacom
/lib/modules/ <kernel_version> /kernel/drivers/
ディレクトリーからモジュールを読み込もうとします。このディレクトリーでは、各タイプのモジュールには、ネットワークおよび SCSI インターフェースドライバー用の net/
や scsi/
などの独自のサブディレクトリーがあります。
/lib/modules/<kernel_version>/modules.dep
ファイルに保持します。modprobe コマンドは、操作の実行時に常に modules.dep
ファイルを読み取ります。modprobe に特定のカーネルモジュールを読み込むよう指示すると、まずそのモジュールの依存関係(ある場合)を調べ、カーネルに読み込まれていない場合は読み込みます。modprobe は依存関係を再帰的に解決します。必要に応じて、依存関係のすべての依存関係を読み込むため、すべての依存関係が常に満たされるようにします。
-v
(または --verbose
)オプションを使用すると、modprobe が、モジュール依存関係のロードなど、実行内容に関する詳細情報を表示できます。以下は、イーサネットモジュールでファイバーチャネル
の詳細を読み込む例です。
例31.3 modprobe -v は、読み込む際にモジュール依存関係を表示します。
~]# modprobe -v fcoe
insmod /lib/modules/2.6.32-71.el6.x86_64/kernel/drivers/scsi/scsi_tgt.ko
insmod /lib/modules/2.6.32-71.el6.x86_64/kernel/drivers/scsi/scsi_transport_fc.ko
insmod /lib/modules/2.6.32-71.el6.x86_64/kernel/drivers/scsi/libfc/libfc.ko
insmod /lib/modules/2.6.32-71.el6.x86_64/kernel/drivers/scsi/fcoe/libfcoe.ko
insmod /lib/modules/2.6.32-71.el6.x86_64/kernel/drivers/scsi/fcoe/fcoe.ko
fcoe
を読み込む前に、scsi_tgt
モジュール、scsi_transport_fc
、libfc
モジュール、libfcoe
モジュールを依存関係としてロードしていることを示しています。また、modprobe は、モジュールを実行中のカーネルに挿入するために、より 「プリミティブ」 insmod コマンドを使用していることに注意してください。
31.4. モジュールのアンロード
wacom
モジュールがすでにカーネルに読み込まれていると仮定して、以下のコマンドを実行してアンロードできます。
~]# modprobe -r wacom
wacom
モジュールwacom
が直接依存するモジュール、またはwacom
- 依存関係ツリー経由のモジュールは、間接的に依存します。
firewire_ohci
モジュールをアンロードしたい場合(たとえば、システムの安定性に影響を与えるバグがあると思われるため)、ターミナルセッションは以下のようになります。
~]# modinfo -F depends firewire_ohci depends: firewire-core ~]# modinfo -F depends firewire_core depends: crc-itu-t ~]# modinfo -F depends crc-itu-t depends:
_ohci は firewire_
core
に依存します。これは、それが crc-itu-t
に依存します。
firewire_
ohci をアンロードできます。-r
は --remove
では短縮され、--verbose
の場合は -v
になります。
~]# modprobe -r -v firewire_ohci
rmmod /lib/modules/2.6.32-71.el6.x86_64/kernel/drivers/firewire/firewire-ohci.ko
rmmod /lib/modules/2.6.32-71.el6.x86_64/kernel/drivers/firewire/firewire-core.ko
rmmod /lib/modules/2.6.32-71.el6.x86_64/kernel/lib/crc-itu-t.ko
31.5. モジュールのブラックリスト登録
/etc/modprobe.d/
ディレクトリーの指定の設定ファイルに以下の行を追加します。
blacklist <module_name>
/etc/modprobe.d/blacklist.conf
ファイルを変更できます。ただし、特定のカーネルモジュールにのみ特定の設定が含まれる別の設定ファイル /etc/modprobe.d/ <module_name > .conf
を作成することが推奨されます。
例31.4 /etc/modprobe.d/blacklist.conf の例
# # Listing a module here prevents the hotplug scripts from loading it. # Usually that'd be so that some other driver will bind it instead, # no matter which driver happens to get probed first. Sometimes user # mode tools can also control driver binding. # # Syntax: see modprobe.conf(5). # # watchdog drivers blacklist i8xx_tco # framebuffer drivers blacklist aty128fb blacklist atyfb blacklist radeonfb blacklist i810fb blacklist cirrusfb blacklist intelfb blacklist kyrofb blacklist i2c-matroxfb blacklist hgafb blacklist nvidiafb blacklist rivafb blacklist savagefb blacklist sstfb blacklist neofb blacklist tridentfb blacklist tdfxfb blacklist virgefb blacklist vga16fb blacklist viafb # ISDN - see bugs 154799, 159068 blacklist hisax blacklist hisax_fcpcipnp # sound drivers blacklist snd-pcsp # I/O dynamic configuration support for s390x (bz #563228) blacklist chsc_sch
/etc/modprobe.d/
ディレクトリーの指定の設定ファイルを root として修正します。
install <module_name> /bin/true
例31.5 モジュールブラックリストを一時的な問題のソリューションとして使用する方法
pppol2pt
)の不具合が確認され、この不具合がシステム侵害に誤用される可能性があります。システムで pppol2pt
モジュールを機能させる必要がある場合は、この問題が修正されるまで pppol2pt
を完全にブラックリストに指定します。
- 以下のコマンドを実行して、カーネルに
pppol2pt
が現在読み込まれているかどうかを確認します。~]# lsmod | grep ^pppol2tp && echo "The module is loaded" || echo "The module is not loaded"
- モジュールがロードされた場合は、誤った使用を防ぐために、モジュールとそのすべての依存関係をアンロードする必要があります。安全にアンロードする方法は、「モジュールのアンロード」 を参照してください。
- 以下のコマンドを実行して、
pppol2pt
をカーネルに読み込みできないようにします。~]# echo "install pppol2tp /bin/true" > /etc/modprobe.d/pppol2tp.conf
このコマンドは、システムに/etc/modprobe.d/pppol2tp.conf
ファイルの内容を上書きすることに注意してください。このコマンドを実行する前に、既存のpppol2tp.conf
を確認してバックアップします。また、モジュールをアンロードできない場合は、このコマンドを有効にするためにシステムを再起動する必要があります。
pppol2pt
モジュールの問題が正しく修正されたら、/etc/modprobe.d/pppol2tp.conf
ファイルを削除するか、以前のコンテンツを復元できます。これにより、システムが元の設定で pppol2pt
モジュールをロードできるようになります。
31.6. モジュールパラメーターの設定
- コマンドラインで modprobe コマンドを実行し、カスタマイズされたパラメーターの一覧を実行して、カーネルモジュールを読み込みます。モジュールがすでにロードされている場合は、modprobe -r コマンドを使用して、最初にすべての依存関係とモジュール自体をアンロードする必要があります。この方法では、変更を永続化せずに、特定の設定でカーネルモジュールを実行できます。詳細は、「カスタマイズされたモジュールの読み込み: 一時的な変更」 を参照してください。
- または、
/etc/modprobe.d/
ディレクトリーにある、既存のファイルまたは新たに作成されたファイルで、カスタマイズしたパラメーターの一覧を指定します。この方法では、再起動または modprobe コマンドごとに、モジュールが読み込まれるたびに指定のパラメーターを設定すると、モジュールのカスタマイズが永続化されます。詳細は、「カスタマイズされたモジュールの読み込み - 永続的な変更」 を参照してください。
31.6.1. カスタマイズされたモジュールの読み込み: 一時的な変更
~]# modprobe <module_name> [parameter=value]
- 複数のパラメーターおよび値を入力するには、それらをスペースで区切ります。
- モジュールパラメーターによっては、コンマ区切りの値の一覧を引数として要求するものもあります。値の一覧を入力する際には、コンマごとにスペースを挿入し ない でください。または、modprobe は、以下のスペースの値を追加のパラメーターとして誤って解釈します。
- モジュールが正常に読み込まれた場合、また はモジュールが すでに カーネルに読み込まれている場合は、modprobe コマンドは、終了ステータス
0
で警告なしで成功します。したがって、カスタムパラメーターで読み込む前に、モジュールがまだロードされていないことを確認する必要があります。modprobe コマンドは、モジュールを自動的に再読み込みしません。もしくは、すでに読み込まれていることを警告します。
e1000e
モジュールのカスタムパラメーターを使用してカーネルモジュールを読み込むのに推奨される手順を説明します。
手順31.1 カスタムパラメーターを使用したカーネルモジュールの読み込み
- 以下のコマンドを実行して、モジュールがまだカーネルに読み込まれていないことを確認します。
~]# lsmod|grep e1000e e1000e 236338 0 ptp 9614 1 e1000e
この例のコマンドの出力は、e1000e
モジュールがすでにカーネルに読み込まれていることを示しています。また、このモジュールにはptp
モジュールの依存関係が 1 つあることも示されています。 - モジュールがすでにカーネルに読み込まれている場合は、次のステップに進む前にモジュールとそのすべての依存関係をアンロードする必要があります。安全にアンロードする方法は、「モジュールのアンロード」 を参照してください。
- モジュールを読み込み、モジュール名の後にすべてのカスタムパラメーターを一覧表示します。たとえば、割り込みスロットルレートで Intel PRO/1000 ネットワークドライバーを読み込む場合は、ドライバーの 1 番目、秒、および 3 番目のインスタンスに対して、割り込みスロットルを 3000 割り込みに設定し、EEE(EEE)がオンになります。 [5]root で以下のコマンドを実行します。
~]# modprobe e1000e InterruptThrottleRate=3000,3000,3000 EEE=1
この例では、コンマで複数の値を区切り、それらの間のスペースを省略して、複数の値を 1 つのパラメーターに渡す方法を示しています。
31.6.2. カスタマイズされたモジュールの読み込み - 永続的な変更
/etc/modprobe.d/
ディレクトリーの既存ファイルまたは新たに作成されたファイルを、以下の形式の行で修正します。
~]# options <module_name> [parameter=value]
b43
モジュールにカスタムパラメーターを使用してカーネルモジュールを読み込む手順を説明します。これにより、モジュールの再読み込み間で変更が永続化されるようになります。
手順31.2 カスタムパラメーターを使用したカーネルモジュールの読み込み - 永続的な変更
- 以下の行を
/etc/modprobe.d/openfwwf.conf
ファイルに追加します。これにより、b43
モジュールは常に QoS で読み込まれ、ハードウェアアクセラレーション暗号が無効になります。options b43 nohwcrypt=1 qos=0
- 以下のコマンドを実行して、モジュールがまだカーネルに読み込まれていないことを確認します。
~]# lsmod|grep ^b43 ~]#
この例のコマンドの出力は、モジュールが現在カーネルに読み込まれていないことを示しています。 - モジュールがすでにカーネルに読み込まれている場合は、次のステップに進む前にモジュールとそのすべての依存関係をアンロードする必要があります。安全にアンロードする方法は、「モジュールのアンロード」 を参照してください。
- 以下のコマンドを実行して
b43
モジュールを読み込みます。~]# modprobe b43
31.7. 永続的なモジュールの読み込み
/etc/sysconfig/modules/
ディレクトリーに新しい < file_name > .modules ファイルを作成します
。ここで、< file_name > は任意の説明的な名前です。< ;file_name > .modules
ファイルはシステム起動スクリプトがシェルスクリプトとして扱われ、そのためには最初の行として インタープリターディレクティブ ( 「bang 行」とも呼ばれます)で開始する必要があります。
例31.6 file_name.modules ファイルの最初の行
#!/bin/sh
file_name> .modules
ファイルは実行可能である必要があります。以下を実行して実行可能にします。
modules]# chmod +x <file_name>.modules
bluez-uinput.modules
スクリプトは uinput
モジュールを読み込みます。
例31.7 /etc/sysconfig/modules/bluez-uinput.modules
#!/bin/sh if [ ! -c /dev/input/uinput ] ; then exec /sbin/modprobe uinput >/dev/null 2>&1 fi
if
-conditional ステートメントは、/dev/input/uinput
ファイルが存在し ない ことを確認します(この条件は !
記号を否定)し、その場合は exec /sbin/modprobe uinput
を呼び出すことで uinput モジュールをロードします。uinput
モジュールは /dev/input/uinput
ファイルを作成するため、そのファイルが存在するかどうかをテストし、uinput
モジュールがカーネルに読み込まれているかどうかを検証します。
/dev/null
にリダイレクトすることで、modprobe コマンドが quiet のままになるようにします。
31.8. 特定のカーネルモジュール機能
31.8.1. チャンネルボンディングの使用
ボンディングカーネルモジュールと、チャンネルボンディング
インターフェースと呼ばれる特別なネットワークインターフェースを使用して、NIC を 1 つの チャンネル にバインドできます。このチャンネルボンディングにより、複数のネットワークインターフェースが 1 つとして機能できるようになり、また同時に帯域幅が増加し、冗長性を提供します。
- 「チャンネルボンディングインターフェース」 の説明に従って、チャネルボンディングインターフェースを設定します。
- パフォーマンスを強化するには、利用可能なモジュールオプションを調節して、最適な組み合わせを確認します。特に miimon、arp_interval、arp_ip_target パラメーターに注意してください。利用可能なオプション一覧と使用しているボンディングされたインターフェースに最適なオプションを迅速に決定する方法については、「ボンディングモジュールのディレクティブ」を参照してください。
31.8.1.1. ボンディングモジュールのディレクティブ
ifcfg-bond0
)で BONDING_OPTS="<bonding parameters>"
ディレクティブに追加する前に、ボンディングインターフェースにどのチャンネルボンディングモジュールパラメーターが最適であるかをテストすることが推奨されます。ボンディングされたインターフェースのパラメーターは、sysfs
ファイルシステム内のファイルを操作することで、ボンディングモジュールをアンロード (およびリロード) することなく設定できます。
sysfs
は、カーネルオブジェクトをディレクトリー、ファイル、シンボリックリンクとして表す仮想ファイルシステムです。sysfs
を使用すると、カーネルオブジェクトに関する情報のクエリーや、通常のファイルシステムコマンドを使用することでこれらのオブジェクトを操作することもできます。sysfs
仮想ファイルシステムには /etc/fstab
に行があり、/sys/
ディレクトリー下にマウントされます。ボンディングインターフェースはすべて、/sys/class/net/
ディレクトリー下にあるファイルと対話したり、これらを操作することで動的に設定できます。
ifcfg-bond0
などのチャンネルボンディングインターフェースファイルを作成します。ボンディングされている各インターフェースの設定ファイルに SLAVE=yes
ディレクティブおよび MASTER=bond0
ディレクティブを bond0 に挿入します。これが完了すると、パラメーターの確認に進むことができます。
N>up
as root を実行して、作成したボンディング
を起動します。
~]# ifconfig bond0 up
ifcfg-bond0
ボンディングインターフェースファイルを正しく作成している場合は、ifconfig の出力に bond0
がリストされているはずです(オプションはありません)。
~]# ifconfig bond0 Link encap:Ethernet HWaddr 00:00:00:00:00:00 UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) eth0 Link encap:Ethernet HWaddr 52:54:00:26:9E:F1 inet addr:192.168.122.251 Bcast:192.168.122.255 Mask:255.255.255.0 inet6 addr: fe80::5054:ff:fe26:9ef1/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:207 errors:0 dropped:0 overruns:0 frame:0 TX packets:205 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:70374 (68.7 KiB) TX bytes:25298 (24.7 KiB) [output truncated]
~]# cat /sys/class/net/bonding_masters
bond0
/sys/class/net/bond <N> /bonding/ ディレクトリーにあるファイルを操作することで、各ボンディングを
個別に設定できます。まず、設定するボンドをダウンにします。
~]# ifconfig bond0 down
~]# echo 1000 > /sys/class/net/bond0/bonding/miimon
balance-alb
モードで bond0 を設定するには、以下のいずれかを実行します。
~]# echo 6 > /sys/class/net/bond0/bonding/mode
~]# echo balance-alb > /sys/class/net/bond0/bonding/mode
up
を実行してテストすることができ ます。オプションを変更する場合はインターフェースを停止して、sysfs
を使用してそのパラメーターを修正後、有効に戻して再確認します。
/etc/sysconfig/network-scripts/ifcfg-bond <N
> ファイルの BONDING_OPTS=
ディレクティブに追加します。ボンドが有効な場合 (たとえば、ONBOOT=yes
ディレクティブが設定されていて、ブートシーケンス中にシステムがボンドを有効にする場合) はいつでも、BONDING_OPTS
で指定されているボンディングオプションはそのボンドに対して有効となります。ボンディングインターフェース(および BONDING_OPTS
)の設定に関する詳細は、「チャンネルボンディングインターフェース」 を参照してください。
parm
について簡単な説明、または kernel-doc パッケージの bonding.txt
ファイルの詳細の説明を参照してください( 「その他のリソース」を参照してください)。
ボンディングインターフェースパラメーター
-
arp_interval=<time_in_milliseconds>
- ARP モニタリングが発生する頻度(ミリ秒単位)を指定します。この設定を設定する場合は、このパラメーターの開始点は
1000
になります。必要なパラメーターをすべて指定するようにしてください。arp_interval
およびarp_ip_target
の両パラメーター、あるいはmiimon
パラメーターの指定は不可欠です。指定されないと、リンクが失敗した場合にネットワークパフォーマンスが低下する恐れがあります。mode=0
またはmode=2
(2 つの負荷分散モード) でこの設定を使用する場合、ネットワークスイッチは NIC 全体に均等にパケットを分散するよう設定する必要があります。これを実現する方法は、kernel-doc パッケージのbonding.txt
ファイル( 「その他のリソース」を参照)を参照してください。デフォルトでは値は0
に設定されており、ARP 監視を無効にします。 -
arp_ip_target=<ip_address>[,<ip_address_2>,…<ip_address_16>]
arp_interval
パラメーターが有効になっていると、ARP 要求のターゲット IP アドレスを指定します。最大 16 の IP アドレスは、コンマ区切りの一覧で指定できます。-
arp_validate=<value>
- ARP プローブのソース/ディストリビューションを検証します。デフォルトは
none
です。他の有効な値は、active
、backup
、およびall
です。 -
downdelay=<time_in_milliseconds>
- リンクを無効にする前に、リンクの失敗後に待機する時間を指定します (ミリ秒単位)。値は、
miimon
パラメーターで指定される値の倍数でなければなりません。デフォルトでは値は0
に設定されており、ARP 監視を無効にします。 - lacp_rate=<value>
- リンクパートナーが 802.3ad モードで LACPDU パケットを送信するレートを指定します。以下の値が使用できます。
slow
または0
: デフォルト設定。パートナーが 30 秒ごとに LACPDU を送信するよう指定します。fast
または1
: パートナーが LACPDU を 1 秒ごとに送信するように指定します。
-
miimon=<time_in_milliseconds>
- MII リンク監視が発生する頻度を指定します (ミリ秒単位)。MII は NIC がアクティブであることを検証するために使用されるため、これは高可用性が必要な場合に役立ちます。特定の NIC のドライバーが MII ツールに対応していることを確認するには、root で以下のコマンドを入力します。
~]# ethtool <interface_name> | grep "Link detected:"
このコマンドで、< ;interface_name> を、ボンドインターフェースではなくeth0
などのデバイスインターフェースの名前に置き換えます。MII が対応している場合は、コマンドは以下を返します。Link detected: yes
高可用性のためにボンディングされたインターフェースを使用する場合、各 NIC のモジュールは MII に対応していなければなりません。値を0
(デフォルト) に設定すると、この機能はオフになります。この設定を設定する際に、このパラメーターのスタート地点は100
になります。必要なパラメーターをすべて指定するようにしてください。arp_interval
およびarp_ip_target
の両パラメーター、あるいはmiimon
パラメーターの指定は不可欠です。指定されないと、リンクが失敗した場合にネットワークパフォーマンスが低下する恐れがあります。 -
mode=<value>
- ボンディングポリシーの指定が可能になります。< value > は、以下のいずれかになります。
balance-rr
または0
: 耐障害性とロードバランシングにラウンドロビンポリシーを設定します。利用可能な最初のインターフェースからそれぞれのボンディングされたスレーブインターフェースで送受信が順次行われます。active-backup
または1
: 耐障害性のためアクティブなバックアップポリシーを設定します。ボンディングインターフェースの中で最初に利用可能になったものから送受信が行われます。別のボンディングされたスレーブインターフェースは、アクティブなボンディングされたスレーブインターフェースが失敗した場合にのみ使用されます。balance-xor
または2
: フォールトトレランスおよび負荷分散用の XOR(排他的なor)ポリシーを設定します。この方法を使用すると、インターフェースは受信要求の MAC アドレスとスレーブ NIC のいずれかの MAC アドレスが一致します。このリンクが確立されると、最初の利用可能なインターフェースから順番に送信が送信されます。broadcast
または3
: 耐障害性にブロードキャストポリシーを設定します。すべての送信は、すべてのスレーブインターフェースで行われます。802.3ad
または4
: IEEE 802.3ad 動的リンクアグリゲーションのポリシーを設定します。同一の速度とデュプレックス設定を共有するアグリゲーショングループを作成します。アクティブなアグリゲーターのすべてのスレーブで送受信を行います。802.3ad に対応するスイッチが必要です。balance-tlb
または5
: 耐障害性とロードバランシングのための送信ロードバランシング (TLB) ポリシーを設定します。発信トラフィックは、各スレーブインターフェースの現在の負荷に従って分散されます。受信トラフィックは、現在のスレーブにより受信されます。受信しているスレーブが失敗すると、別のスレーブが失敗したスレーブの MAC アドレスを引き継ぎます。このモードは、カーネルボンディングモジュールが認識しているローカルアドレスにのみ、適したものになります。このため、仮想マシンのブリッジの背後では使用できません。balance-alb
または6
: 耐障害性とロードバランシングに適応型ロードバランシング (ALB) ポリシーを設定します。IPv4
トラフィック用の送受信ロードバランシングが含まれます。ARP
ネゴシエーションにより、受信ロードバランシングが可能です。このモードは、カーネルボンディングモジュールが認識しているローカルアドレスにのみ、適したものになります。このため、仮想マシンのブリッジの背後では使用できません。
-
num_unsol_na=<number>
- フェイルオーバーイベント後に発行される未諾の IPv6 Neighbor Advertisement の数を指定します。フェイルオーバーの直後に未要求の NA が発行されます。有効な範囲は
0 - 255
です。デフォルト値は1
です。このパラメーターは、active-backup モードにのみ影響します。 -
primary=<interface_name>
- プライマリーデバイスのインターフェース名(例:
eth0
)を指定します。primary
デバイスは、使用される最初のボンディングインターフェースであり、失敗しない限りは破棄されません。この設定が特に役立つのは、ボンディングインターフェースの NIC の 1 つが高速なため、大規模な負荷に対応できる場合です。この設定は、ボンディングインターフェースがactive-backup
モードの場合にのみ有効です。kernel-doc パッケージのbonding.txt
ファイル( 「その他のリソース」を参照)を参照してください。 -
primary_reselect=<value>
- プライマリースレーブに対して再選択ポリシーを指定します。これは、アクティブなスレーブの失敗やプライマリースレーブの回復が発生した場合に、どのようにプライマリースレーブが選択されてアクティブなスレーブになるかという点に影響します。このパラメーターは、プライマリースレーブと他のスレーブ間でのフリップフロップを防ぐように設計されています。以下の値が使用できます。
always
または0
: プライマリースレーブは有効になるといつでもアクティブなスレーブになります。better
または1
: プライマリースレーブの速度とデュプレックスが、現在のアクティブなスレーブの速度とデュプレックスと比べて良い場合は、プライマリースレーブは有効になるとアクティブなスレーブになります。failure
または2
: 現在のアクティブなスレーブが失敗してプライマリースレーブが有効になる場合のみ、プライマリースレーブはアクティブなスレーブになります。
primary_reselect
の設定は、以下の 2 つの場合では無視されます。- アクティブなスレーブがない場合は、回復する最初のスレーブがアクティブなスレーブになります。
- 初めにプライマリースレーブがスレーブにされた場合は、それは常にアクティブなスレーブになります。
sysfs
でprimary_reselect
ポリシーを変更すると、新しいポリシーに従って、アクティブなスレーブを即座に選択することができます。これにより、状況によってはアクティブなスレーブに変更が生じる場合があります。 -
updelay=<time_in_milliseconds>
- リンクを有効にする前の待機時間を指定します (ミリ秒単位)。値は、
miimon
パラメーターで指定される値の倍数でなければなりません。デフォルトでは値は0
に設定されており、ARP 監視を無効にします。 -
use_carrier=<number>
- リンク状態を決定するために
miimon
が MII/ETHTOOL ioctls またはnetif_carrier_ok()
を使用するかどうか指定します。netif_carrier_ok()
機能は、デバイスドライバーを使用してnetif_carrier_on/off
によりその状態を維持します。大半のデバイスドライバーはこの機能に対応しています。MII/ETHROOL ioctls ツールは、カーネル内で非推奨の呼び出しシーケンスを使用します。ただし、これは使用しているデバイスドライバーがnetif_carrier_on/off
に対応しない場合でも設定可能です。有効な値は以下のとおりです。1
: デフォルト設定。netif_carrier_ok()
の使用を有効にします。0
: MII/ETHTOOL ioctls の使用を有効にします。
注記リンクがアップになっているべきでない時にアップであるとボンディングインターフェースが主張した場合、使用しているネットワークデバイスドライバーはnetif_carrier_on/off
に対応しない可能性があります。 -
xmit_hash_policy=<value>
balance-xor
および802.3ad
モードで、スレーブを選択する時に使用する送信ハッシュポリシーを選択します。以下の値が使用できます。0
またはlayer2
: デフォルト設定。このパラメーターは、ハードウェア MAC アドレスの XOR を使用してハッシュを生成します。使用する式は以下のとおりです。(<source_MAC_address> XOR <destination_MAC>) MODULO <slave_count>
このアルゴリズムは、すべてのトラフィックを同じスレーブの特定のネットワークピアに割り振り、802.3ad に対応します。1
またはlayer3+4
: 上位レイヤープロトコルの情報を (利用可能な場合は) 使用して、ハッシュを生成します。これにより、特定のネットワークピアへのトラフィックが複数のスレーブに及ぶようにできますが、単一の接続では複数のスレーブに及びません。断片化された TCP および UDP パケットに使用される公式は、以下のとおりです:((<source_port> XOR <dest_port>) XOR ((<source_IP> XOR <dest_IP>) AND
0xffff
) MODULO <slave_count>断片化された TCP または UDP パケットおよび他のすべての IP プロトコルトラフィックの場合、送信元および宛先ポート情報は省略されます。IP 以外のトラフィックの場合、この式は layer2 がハッシュポリシーを送信するものと同じです。このポリシーの目的は、特に PFC2 付きの Cisco スイッチや Foundry および IBM 製品など一部のスイッチの動作を真似ることです。このポリシーで使用されるアルゴリズムは、802.3ad に対応していません。2
またはlayer2+3
: layer2 および layer3 プロトコル情報の組み合わせを使用して、ハッシュを生成します。XOR のハードウェアの MAC アドレスと IP アドレスを使用してハッシュを生成します。式は以下のとおりです。(((<source_IP> XOR <dest_IP>) AND
0xffff
) XOR ( <source_MAC> XOR <destination_MAC> )) MODULO <slave_count>このアルゴリズムは、すべてのトラフィックを同じスレーブの特定のネットワークピアに割り振ります。IP 以外のトラフィックの場合、この式は layer2 送信ハッシュポリシーと同じです。このポリシーの目的は、特に layer3 ゲートウェイデバイスが大半の宛先に到達する必要がある環境において、layer2 単独の場合より分散されたトラフィックを提供することです。このアルゴリズムは、802.3ad に対応しています。
31.9. その他のリソース
インストールされているドキュメント
lsmod(8)
: lsmod コマンドの man ページです。modinfo(8)
: modinfo コマンドの man ページです。modprobe(8)
>: modprobe コマンドの man ページです。rmmod(8)
: rmmod コマンドの man ページです。ethtool(8)
: ethtool コマンドの man ページです。mi-tool(8)
: mii-tool コマンドの man ページです。
インストール可能なドキュメント
/usr/share/doc/kernel-doc- <kernel_version> /Documentation/
: kernel-doc パッケージが提供するこのディレクトリーには、カーネル、カーネルモジュール、およびそれぞれのパラメーターに関する情報が含まれます。カーネルのドキュメントにアクセスする前に、root で以下のコマンドを実行する必要があります。~]# yum install kernel-doc
オンラインドキュメント
第32章 kdump クラッシュリカバリーサービス
kdump
クラッシュダンプメカニズムを有効にすると、別のカーネルのコンテキストからシステムが起動します。この 2 番目のカーネルは、少ないメモリーを確保し、システムがクラッシュした場合にコアダンプイメージを取得することを目的としています。
kdump
サービスの設定、テスト、および使用方法について説明します。また、crash ユーティリティーを使用して、生成されるコアダンプの分析方法の概要を説明します。
32.1. kdump サービスのインストール
kdump
サービスを使用するには、kexec-tools パッケージがインストールされていることを確認します。これを行うには、root
で次のコマンドを実行します。
~]# yum install kexec-tools
32.2. kdump サービスの設定
kdump
サービスを設定する一般的な方法は、初回ブート時に、カーネルダンプ設定グラフィカルユーティリティーを 使用し、コマンドラインで手動で行う 3 つの方法です。
Intel IOMMU
ドライバーの現在の実装の制限により、kdump
サービスがコアダンプイメージを取得できなくなることがあります。Intel アーキテクチャーで kdump
を確実に使用するには、IOMMU サポートを無効にすることを推奨します。
kdump
サービスは、同じベンダーの HP Smart Array デバイスとシステムボードの特定の組み合わせで確実に機能しないことが知られています。そのため、実稼働環境で設定を使用する前に設定をテストすることを強く推奨します。必要な場合は、カーネルクラッシュダンプをネットワーク経由でリモートマシンに保存するように kdump
を設定することを強く推奨します。kdump
設定のテスト方法に関する詳細は、「設定のテスト」 を参照してください。
32.2.1. 初回起動時での kdump の設定
kdump
を設定するには、Kdump セクションに移動し、以下の手順に従います。
kdump
クラッシュリカバリーを有効にすると、最小メモリー要件が予約メモリーサイズで増加します。この値はユーザーによって決定され、物理メモリーが 1 TB のシステムの合計 192 MB(つまり、物理メモリーが 1 TB 件の 192 MB)にデフォルトで 128 MB を加算します。メモリーは、必要に応じて最大 896 MB の試行できます。特に論理ユニット番号(LUN)が多数あるシステムでは、大規模な環境で推奨されます。
32.2.2. カーネルダンプ設定ユーティリティーの使用
kdump
の設定のほか、システムの起動時にサービスを有効または無効にすることもできます。設定が完了したら をクリックして変更を保存します。システムの再起動が要求されますが、すでに認証されていない限り、スーパーユーザーのパスワードを入力するように求められます。
kdumpgui_run_bootloader
のブール値を有効にする必要があります。このブール値により、system-config-kdump が bootloader_t
SELinux ドメインでブートローダーを実行できます。ブール値を永続的に有効にするには、root
で以下のコマンドを実行します。
~]# setsebool -P kdumpgui_run_bootloader 1
サービスの有効化
kdump
デーモンを開始するには、ツールバーで ボタンをクリックします。これにより、ランレベル 2
、3
、4
、および 5
のサービスが有効になり、現行セッションで起動します。同様に、 ボタンをクリックすると、すべてのランレベルに対して無効になり、すぐにサービスを停止します。
基本設定タブ
kdump
カーネル用に予約されるメモリー量を設定できます。これを行うには、手動 kdump メモリー設定 ラジオボタンを選択し、新規の kdump メモリー フィールドの横にある上矢印ボタンを クリックして値を増減します。システムで 使用できるメモリーの 残量に応じて 使用可能なメモリー フィールドが変化します。
図32.1 基本設定

[D]
kdump
クラッシュリカバリーを有効にすると、最小メモリー要件が予約メモリーサイズで増加します。この値はユーザーによって決定され、物理メモリーが 1 TB のシステムの合計 192 MB(つまり、物理メモリーが 1 TB 件の 192 MB)にデフォルトで 128 MB を加算します。メモリーは、必要に応じて最大 896 MB の試行できます。特に論理ユニット番号(LUN)が多数あるシステムでは、大規模な環境で推奨されます。
ターゲット設定タブ
vmcore
ダンプのターゲットの場所を指定できます。これはローカルのファイルシステムにファイルとして保存するか、デバイスに直接書き込むか、または NFS (Network File System) や SSH (Secure Shell) などのプロトコルを使ってネットワーク経由で送信することができます。
図32.2 出力先

[D]
/etc/dasd.conf
ファイルでデバイスを指定する必要があります。以下に例を示します。
0.0.2098 0.0.2198 0.0.2298 0.0.2398
0.0.2298
および 0.0.2398
は、kdump ターゲットとして使用される DASD です。
/etc/zfcp.conf
ファイルでディスクを指定する必要があります。以下に例を示します。
0.0.3d0c 0x500507630508c1ae 0x402424aa00000000 0.0.3d0c 0x500507630508c1ae 0x402424ab00000000 0.0.3d0c 0x500507630508c1ae 0x402424ac00000000
0.0.3d0c 0x500507630508c1ae 0x402424ab00000000
および 0. 0.3d0c 0x500507630508c1ae 0x402424ac00000000
は kdump ターゲットとして使用される FCP 接続の SCSI ディスクです。
/var/crash/
ディレクトリーに vmcore.flat
ファイルが作成されます。これは、crash ユーティリティーが読み取りできません。vmcore.flat
を、クラッシュ で読み取り可能なダンプファイルに変換するには、ターゲットシステムで root で以下のコマンドを実行します。
~]# /usr/sbin/makedumpfile -R */tmp/vmcore-rearranged* < *vmcore.flat*
タイプ | 対応しているダンプ出力先 | 対応していないダンプ出力先 |
---|---|---|
Raw デバイス | ローカルで添付されたすべての raw ディスクとパーティション | — |
ローカルファイルシステム | 直接接続されているディスクドライブ、ハードウェア RAID 論理ドライブ、LVM デバイス、mdraid アレイ上の ext2 、ext3 、ext4 、ext4、minix 、btrfs 、および xfs ファイルシステム。 | auto タイプ(自動ファイルシステム検出)など、この表で明示的にサポート対象とされていないローカルファイルシステム。 |
リモートディレクトリー | IPv4 で NFS または SSH プロトコルを使用してアクセスするリモートディレクトリー。 | NFS プロトコルを使用してアクセスする rootfs ファイルシステム上のリモートディレクトリー。 |
iSCSI | iBFT ( iSCSI Boot Firmware Table)が使用されていない限り、ソフトウェアイニシエーター上で iSCSI プロトコルを使用してアクセスするリモートディレクトリー。 | iBFT を使用して iSCSI プロトコルを使用してアクセスするリモートディレクトリー。 |
multipath | マルチパスベースのストレージ[a] | ハードウェアイニシエーター上で iSCSI プロトコルを使用してアクセスするリモートディレクトリー。 |
— | — | IPv6 でアクセスするリモートディレクトリー。 |
. | . | SMB /CIFS プロトコルを使用してアクセスするリモートディレクトリー。 |
. | . | FCoE (Fibre Channel over Ethernet)プロトコルを使用してアクセスするリモートディレクトリー。 |
. | . | ワイヤレスネットワークインターフェースを使ってアクセスするリモートディレクトリー |
[a]
kexec-tools-2.0.0-245.el6 以降の Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 でサポートされています。
|
フィルタリング設定タブ
vmcore
ダンプのフィルターレベルを選択できます。
図32.3 フィルタリング

[D]
エキスパート設定タブ
図32.4 エキスパート設定

[D]
kdump
がコアダンプを作成できない場合に実行するアクションを選択するには、Default action pulldown 一覧から適切なオプションを選択します。利用可能なオプションは、 (デフォルトアクション)、 起動(システムの再起動)、 (対話式シェルプロンプトのあるユーザーに表示)、 (システムの停止)、および (システムの電源オフ)です。
32.2.3. コマンドラインで kdump の設定
メモリー使用量の設定
GRUB
ブートローダーを使用して AMD64 システム、Intel 64 システム、および IBM Power Systems サーバーで予約メモリーの量を変更する方法と、zipl
を使用して IBM System z で変更する方法を説明します。kdump
カーネル用に予約するメモリー容量を設定するには、/boot/grub/grub.conf
ファイルを編集し、例32.1「/boot/grub/grub.conf ファイルのサンプル」 に示されるように kernel オプションの一覧に crashkernel= <size> M
または crashkernel=auto
を追加します。crashkernel=auto
オプションは、システムの物理メモリーが以下の値以上である場合に限りメモリーを予約することに注意してください。
- 32 ビットおよび 64 ビット x86 アーキテクチャーでは 2 GB。
- ページサイズが 4 KB または 8 GB の場合は PowerPC の 2 GB。
- IBM S/390 上の 4 GB。
例32.1 /boot/grub/grub.conf ファイルのサンプル
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda3
# initrd /initrd
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.32-220.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=/dev/sda3 crashkernel=128M
initrd /initramfs-2.6.32-220.el6.x86_64.img
kdump
クラッシュリカバリーを有効にすると、最小メモリー要件が予約メモリーサイズで増加します。この値はユーザーによって決定され、物理メモリーが 1 TB のシステムの合計 192 MB(つまり、物理メモリーが 1 TB 件の 192 MB)にデフォルトで 128 MB を加算します。メモリーは、必要に応じて最大 896 MB の試行できます。特に論理ユニット番号(LUN)が多数あるシステムでは、大規模な環境で推奨されます。
ターゲットタイプの設定
vmcore
ファイルをローカルファイルシステムの /var/crash/
ディレクトリーに保存することです。これを変更するには、root
でテキストエディターで /etc/kdump.conf
設定ファイルを開き、以下のようにオプションを編集します。
「#」path /var/crash
の行頭にあるハッシュ記号(#)を取り除き、値を任意のディレクトリーパスに置き換えます。必要に応じて、ファイルを別のパーティションに書き込む場合は、#ext4 /dev/sda3
行と同じ手順を実行し、ファイルシステムタイプとデバイス(デバイス名、ファイルシステムラベル、UUID はすべてサポートされています)を変更します。以下に例を示します。
ext3 /dev/sda4 path /usr/local/cores
「#」raw /dev/sda5
行の先頭にあるハッシュ記号(#)を取り除き、値を目的のデバイス名に置き換えます。以下に例を示します。
raw /dev/sdb1
「#」net my.server.com:/export/tmp
の行頭にあるハッシュ記号(#)を取り除き、値を有効なホスト名およびディレクトリーパスに置き換えます。以下に例を示します。
net penguin.example.com:/export/cores
「#」net user@my.server.com
の行頭にあるハッシュ記号(#)を取り除き、値を有効なユーザー名およびホスト名に置き換えます。以下に例を示します。
net john@penguin.example.com
/etc/dasd.conf
ファイルでデバイスを指定する必要があります。以下に例を示します。
0.0.2098 0.0.2198 0.0.2298 0.0.2398
0.0.2298
および 0.0.2398
は、kdump ターゲットとして使用される DASD です。
/etc/zfcp.conf
ファイルでディスクを指定する必要があります。以下に例を示します。
0.0.3d0c 0x500507630508c1ae 0x402424aa00000000 0.0.3d0c 0x500507630508c1ae 0x402424ab00000000 0.0.3d0c 0x500507630508c1ae 0x402424ac00000000
0.0.3d0c 0x500507630508c1ae 0x402424ab00000000
および 0. 0.3d0c 0x500507630508c1ae 0x402424ac00000000
は kdump ターゲットとして使用される FCP 接続の SCSI ディスクです。
/var/crash/
ディレクトリーに vmcore.flat
ファイルが作成されます。これは、crash ユーティリティーが読み取りできません。vmcore.flat
を、クラッシュ で読み取り可能なダンプファイルに変換するには、ターゲットシステムで root
で以下のコマンドを実行します。
~]# /usr/sbin/makedumpfile -R */tmp/vmcore-rearranged* < *vmcore.flat*
Core Collector の設定
vmcore
ダンプファイルのサイズを小さくするために、kdump
では外部アプリケーション(コアコレクター)を指定してデータを圧縮し、必要に応じてすべての関連性のない情報を除外できます。現在、完全にサポートされている唯一のコアコレクターは makedumpfile です。
root
で、テキストエディターで /etc/kdump.conf
設定ファイルを開き、「#」core_collector makedumpfile -c --message-level 1 -d 31
の行頭にあるハッシュ記号(#)を取り除き、以下のようにコマンドラインオプションを編集します。
-c
パラメーターを追加します。以下に例を示します。
core_collector makedumpfile -c
-d
valueパラメーターを追加します。value は、表32.2「サポートされるフィルターレベル」 で説明されているように、省略するページの値の合計になります。ゼロと未使用ページを除外する場合は次のようになります。
core_collector makedumpfile -d 17 -c
オプション | 説明 |
---|---|
1 | ゼロページ |
2 | キャッシュページ |
4 | キャッシュプライベート |
8 | ユーザーページ |
16 | フリーページ |
デフォルトアクションの変更
kdump
がコアダンプの作成に失敗する場合のデフォルトの動作であるバージョン 6.2 までのデフォルトアクションにより、root ファイルシステムがマウントされ、/sbin/init が実行されます。
kdump
が確実に動作するようにするために必要です。以前の動作を許可するために、mount_root_run_init
オプションが 表32.3「サポートされるアクション」 に追加されました。
root
で、テキストエディターで /etc/kdump.conf
設定ファイルを開き、「#」default shell
の行頭にあるハッシュ記号(#)を取り除き、表32.3「サポートされるアクション」 の説明に従って値を希望のアクションに置き換えます。
オプション | 説明 |
---|---|
reboot | システムを再起動します。コアは失われます。 |
halt | システムを停止します。 |
poweroff | システムの電源を切ります。 |
shell | initramfs 内から msh セッションを実行して、ユーザーがコアを手動で記録できるようにします。 |
mount_root_run_init | Red Hat Enterprise Linux 6.2 以前からデフォルトのフェイルバック動作を有効にします。 |
default halt
サービスの有効化
kdump
デーモンを起動するには、root
で次のコマンドを実行します。
chkconfigkdump
on
2
、3
、4
、および 5
のサービスが有効になります。同様に、chkconfig kdump off を入力すると、すべてのランレベルで無効になります。現行セッションでサービスを起動するには、root
で以下のコマンドを使用します。
servicekdump
start
32.2.4. 設定のテスト
kdump
を有効にしてシステムを再起動し、サービスが実行中であることを確認します(Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux でサービスを実行する方法は 「サービスの実行」 を参照してください)。
~]# service kdump status
Kdump is operational
echo 1 > /proc/sys/kernel/sysrq echo c > /proc/sysrq-trigger
アドレス-YYYY-MM-DD-HH:MM:SS/vmcore
ファイルが設定で選択した場所にコピーされます(デフォルトでは /var/crash/
)。
32.3. コアダンプの分析
netdump
、diskdump
、xendump
、kdump
で作成されたコアダンプを対話形式で分析できます。
vmcore
ダンプファイルを分析するには、crash および kernel-debuginfo パッケージがインストールされている必要があります。システムに crash パッケージをインストールするには、root
で次のコマンドを実行します。
yum install crash
root
で以下のコマンドを実行します。
debuginfo-install kernel
rhel-6-variant-debug-rpms
リポジトリーを有効にします。システムが RHN Classic に登録されている場合は、システムを rhel-architecture-variant-6-debuginfo
チャンネルにサブスクライブし https://access.redhat.com/site/solutions/9907 ます。
32.3.1. crash ユーティリティーの実行
crash/usr/lib/debug/lib/modules/kernel/vmlinux
/var/crash/timestamp/vmcore
kdump
が取得したものと同じである必要があります。現在実行中のカーネルを確認するには、uname -r コマンドを使用します。
例32.2 crash ユーティリティーの実行
~]# crash /usr/lib/debug/lib/modules/2.6.32-69.el6.i686/vmlinux \ /var/crash/127.0.0.1-2010-08-25-08:45:02/vmcore crash 5.0.0-23.el6 Copyright (C) 2002-2010 Red Hat, Inc. Copyright (C) 2004, 2005, 2006 IBM Corporation Copyright (C) 1999-2006 Hewlett-Packard Co Copyright (C) 2005, 2006 Fujitsu Limited Copyright (C) 2006, 2007 VA Linux Systems Japan K.K. Copyright (C) 2005 NEC Corporation Copyright (C) 1999, 2002, 2007 Silicon Graphics, Inc. Copyright (C) 1999, 2000, 2001, 2002 Mission Critical Linux, Inc. This program is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Enter "help copying" to see the conditions. This program has absolutely no warranty. Enter "help warranty" for details. GNU gdb (GDB) 7.0 Copyright (C) 2009 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i686-pc-linux-gnu"... KERNEL: /usr/lib/debug/lib/modules/2.6.32-69.el6.i686/vmlinux DUMPFILE: /var/crash/127.0.0.1-2010-08-25-08:45:02/vmcore [PARTIAL DUMP] CPUS: 4 DATE: Wed Aug 25 08:44:47 2010 UPTIME: 00:09:02 LOAD AVERAGE: 0.00, 0.01, 0.00 TASKS: 140 NODENAME: hp-dl320g5-02.lab.bos.redhat.com RELEASE: 2.6.32-69.el6.i686 VERSION: #1 SMP Tue Aug 24 10:31:45 EDT 2010 MACHINE: i686 (2394 Mhz) MEMORY: 8 GB PANIC: "Oops: 0002 [#1] SMP " (check log for details) PID: 5591 COMMAND: "bash" TASK: f196d560 [THREAD_INFO: ef4da000] CPU: 2 STATE: TASK_RUNNING (PANIC) crash>
32.3.2. メッセージバッファーの表示
例32.3 カーネルメッセージバッファーの表示
crash> log ... several lines omitted ... EIP: 0060:[<c068124f>] EFLAGS: 00010096 CPU: 2 EIP is at sysrq_handle_crash+0xf/0x20 EAX: 00000063 EBX: 00000063 ECX: c09e1c8c EDX: 00000000 ESI: c0a09ca0 EDI: 00000286 EBP: 00000000 ESP: ef4dbf24 DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068 Process bash (pid: 5591, ti=ef4da000 task=f196d560 task.ti=ef4da000) Stack: c068146b c0960891 c0968653 00000003 00000000 00000002 efade5c0 c06814d0 <0> fffffffb c068150f b7776000 f2600c40 c0569ec4 ef4dbf9c 00000002 b7776000 <0> efade5c0 00000002 b7776000 c0569e60 c051de50 ef4dbf9c f196d560 ef4dbfb4 Call Trace: [<c068146b>] ? __handle_sysrq+0xfb/0x160 [<c06814d0>] ? write_sysrq_trigger+0x0/0x50 [<c068150f>] ? write_sysrq_trigger+0x3f/0x50 [<c0569ec4>] ? proc_reg_write+0x64/0xa0 [<c0569e60>] ? proc_reg_write+0x0/0xa0 [<c051de50>] ? vfs_write+0xa0/0x190 [<c051e8d1>] ? sys_write+0x41/0x70 [<c0409adc>] ? syscall_call+0x7/0xb Code: a0 c0 01 0f b6 41 03 19 d2 f7 d2 83 e2 03 83 e0 cf c1 e2 04 09 d0 88 41 03 f3 c3 90 c7 05 c8 1b 9e c0 01 00 00 00 0f ae f8 89 f6 <c6> 05 00 00 00 00 01 c3 89 f6 8d bc 27 00 00 00 00 8d 50 d0 83 EIP: [<c068124f>] sysrq_handle_crash+0xf/0x20 SS:ESP 0068:ef4dbf24 CR2: 0000000000000000
vmcore-dmesg.txt
ファイルにダンプされます。これは、たとえば、ターゲットの場所にスペースがないために vmcore
ファイル全体の取得を試みる場合に便利です。デフォルトでは、vmcore-dmesg.txt
は /var/crash/
ディレクトリーにあります。
32.3.3. バックトレースの表示
例32.4 カーネルスタックトレースの表示
crash> bt
PID: 5591 TASK: f196d560 CPU: 2 COMMAND: "bash"
#0 [ef4dbdcc] crash_kexec at c0494922
#1 [ef4dbe20] oops_end at c080e402
#2 [ef4dbe34] no_context at c043089d
#3 [ef4dbe58] bad_area at c0430b26
#4 [ef4dbe6c] do_page_fault at c080fb9b
#5 [ef4dbee4] error_code (via page_fault) at c080d809
EAX: 00000063 EBX: 00000063 ECX: c09e1c8c EDX: 00000000 EBP: 00000000
DS: 007b ESI: c0a09ca0 ES: 007b EDI: 00000286 GS: 00e0
CS: 0060 EIP: c068124f ERR: ffffffff EFLAGS: 00010096
#6 [ef4dbf18] sysrq_handle_crash at c068124f
#7 [ef4dbf24] __handle_sysrq at c0681469
#8 [ef4dbf48] write_sysrq_trigger at c068150a
#9 [ef4dbf54] proc_reg_write at c0569ec2
#10 [ef4dbf74] vfs_write at c051de4e
#11 [ef4dbf94] sys_write at c051e8cc
#12 [ef4dbfb0] system_call at c0409ad5
EAX: ffffffda EBX: 00000001 ECX: b7776000 EDX: 00000002
DS: 007b ESI: 00000002 ES: 007b EDI: b7776000
SS: 007b ESP: bfcb2088 EBP: bfcb20b4 GS: 0033
CS: 0073 EIP: 00edc416 ERR: 00000004 EFLAGS: 00000246
32.3.4. プロセスステータスの表示
例32.5 システム内のプロセスステータスの表示
crash> ps PID PPID CPU TASK ST %MEM VSZ RSS COMM > 0 0 0 c09dc560 RU 0.0 0 0 [swapper] > 0 0 1 f7072030 RU 0.0 0 0 [swapper] 0 0 2 f70a3a90 RU 0.0 0 0 [swapper] > 0 0 3 f70ac560 RU 0.0 0 0 [swapper] 1 0 1 f705ba90 IN 0.0 2828 1424 init ... several lines omitted ... 5566 1 1 f2592560 IN 0.0 12876 784 auditd 5567 1 2 ef427560 IN 0.0 12876 784 auditd 5587 5132 0 f196d030 IN 0.0 11064 3184 sshd > 5591 5587 2 f196d560 RU 0.0 5084 1648 bash
32.3.5. 仮想メモリー情報の表示
例32.6 現在のコンテキストの仮想メモリー情報の表示
crash> vm PID: 5591 TASK: f196d560 CPU: 2 COMMAND: "bash" MM PGD RSS TOTAL_VM f19b5900 ef9c6000 1648k 5084k VMA START END FLAGS FILE f1bb0310 242000 260000 8000875 /lib/ld-2.12.so f26af0b8 260000 261000 8100871 /lib/ld-2.12.so efbc275c 261000 262000 8100873 /lib/ld-2.12.so efbc2a18 268000 3ed000 8000075 /lib/libc-2.12.so efbc23d8 3ed000 3ee000 8000070 /lib/libc-2.12.so efbc2888 3ee000 3f0000 8100071 /lib/libc-2.12.so efbc2cd4 3f0000 3f1000 8100073 /lib/libc-2.12.so efbc243c 3f1000 3f4000 100073 efbc28ec 3f6000 3f9000 8000075 /lib/libdl-2.12.so efbc2568 3f9000 3fa000 8100071 /lib/libdl-2.12.so efbc2f2c 3fa000 3fb000 8100073 /lib/libdl-2.12.so f26af888 7e6000 7fc000 8000075 /lib/libtinfo.so.5.7 f26aff2c 7fc000 7ff000 8100073 /lib/libtinfo.so.5.7 efbc211c d83000 d8f000 8000075 /lib/libnss_files-2.12.so efbc2504 d8f000 d90000 8100071 /lib/libnss_files-2.12.so efbc2950 d90000 d91000 8100073 /lib/libnss_files-2.12.so f26afe00 edc000 edd000 4040075 f1bb0a18 8047000 8118000 8001875 /bin/bash f1bb01e4 8118000 811d000 8101873 /bin/bash f1bb0c70 811d000 8122000 100073 f26afae0 9fd9000 9ffa000 100073 ... several lines omitted ...
32.3.6. オープンファイルの表示
例32.7 現在のコンテキストのオープンファイルについての情報の表示
crash> files
PID: 5591 TASK: f196d560 CPU: 2 COMMAND: "bash"
ROOT: / CWD: /root
FD FILE DENTRY INODE TYPE PATH
0 f734f640 eedc2c6c eecd6048 CHR /pts/0
1 efade5c0 eee14090 f00431d4 REG /proc/sysrq-trigger
2 f734f640 eedc2c6c eecd6048 CHR /pts/0
10 f734f640 eedc2c6c eecd6048 CHR /pts/0
255 f734f640 eedc2c6c eecd6048 CHR /pts/0
32.3.7. ユーティリティーの終了
例32.8 crash ユーティリティーの終了
crash> exit
~]#
32.4. IBM PowerPC ハードウェアにおける fadump の使用
kdump
の代替ダンプメカニズムである ファームウェア支援ダンプ
(fadump
)が利用できるようになりました。fadump
機能は、IBM Power Systems でのみサポートされます。fadump
の目的は、クラッシュしたシステムのダンプを有効にし、完全にリセットされたシステムからこれを実行し、システムが実稼働環境で復旧するまでの総経過時間を最小限に抑えることです。fadump
機能は、kdump
と fadump
メカニズムの間で無関係に切り替えるために、ユーザー空間にある kdump
インフラストラクチャーと統合されます。
fadump
)は、IBM PowerPC LPARS で利用可能な kexec-kdump
に代わる信頼性の高い仕組みです。ファームウェア支援ダンプでは、PCI および I/O デバイスが再初期化され、完全にリセットされたシステムから、vmcore がキャプチャーされます。この仕組みでは、クラッシュ発生時にファームウェアを使用してメモリーを保存しますが、kdump
ユーザー空間スクリプトを再利用して vmcore を保存します。
fadump
はクラッシュ発生時にシステムファームウェアを使って保持する必要のあるメモリー領域を登録します。これらの領域には、ブートメモリー、システムレジスター、およびハードウェアのページテーブルエントリー (PTE) を除く、すべてのシステムメモリーコンテンツが含まれます。
ブートメモリー と呼ばれる保持されないメモリー
領域は、クラッシュイベント後にカーネルを正常に起動するのに必要な RAM の容量です。デフォルトのブートメモリーサイズは、256 MB または全システム RAM の 5% のいずれか大きい方です。
kexec
-initiated イベントとは異なり、fadump
プロセスでは実稼働用のカーネルを使用してクラッシュダンプを復元します。PowerPC ハードウェアはクラッシュ後に起動すると、デバイスノード /proc/device-tree/rtas/ibm,kernel-dump
が procfs
で利用できるようにし、fadump 対応の kdump
スクリプトは vmcore を保存するかどうかを確認します。この処理が完了すると、システムは正しく再起動されます。
fadump の有効化
/etc/default/grub
のGRUB_CMDLINE_LINUX
の行にfadump=on
を追加します。GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/swap crashkernel=auto rd.lvm.lv=rhel/root rhgb quiet
fadump=on
"- (オプション)デフォルトを許可する代わりに予約ブートメモリーを指定する場合は、
/etc/default/grub
のGRUB_CMDLINE_LINUX
にfadump_reserve_mem=xxM
を追加します。xx は必要なメモリー容量(メガバイト単位)に置き換えます。GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/swap crashkernel=auto rd.lvm.lv=rhel/root rhgb quiet fadump=on
fadump_reserve_mem=xxM
"
fadump_reserve_mem=
で指定した値を増やします。この場合は、トライアンドエラーが必要になることがあります。
32.5. Fujitsu PRIMEQUEST システムにおける sadump の使用
- kdump を起動する前に Red Hat Enterprise Linux のパニックまたはハングする
- kdump が機能している間にエラー
sadump の使用方法
- 使用中のカーネルバージョンに応じて、以下のパッケージをインストールします。
# yum install kernel-debuginfo kernel-debuginfo-common
- sadumpの UEFI の設定詳細は、FUJITSU Server PRIMEQUEST 2000 Series Installation Manual を参照してください。
- sadump向け Red Hat Enterprise Linux の設定詳細は、「sadump 向け Red Hat Enterprise Linux の設定」 を参照してください。
- sadumpの開始詳細は、FUJITSU Server PRIMEQUEST 2000 Series Installation Manual を参照してください。
- メモリーダンプを確認します。詳細は、「メモリーダンプを確認します。」 を参照してください。
32.5.1. sadump 向け Red Hat Enterprise Linux の設定
- sadump で
kdump
が想定どおりに起動されるようにします。- カーネルパニック後に再起動しないように Red Hat Enterprise Linux を設定します。デフォルトでは、Red Hat Enterprise Linux はカーネルパニック後に自動的に再起動されるため、sadump は起動しません。この動作を回避するには、
/etc/sysctl.conf
ファイルを以下のように設定します。kernel.panic=0
- Red Hat Enterprise Linux がマスク不可割り込み(NMI)で kdump を開始するように設定します。sadump を開始する手順では、最初に NMI で kdump を起動する必要があります。
/etc/sysctl.conf
を以下のように設定します。kernel.unknown_nmi_panic=1
- sadump で
kdump
が正常に動作することを確認します。- kdump の後に停止するように Red Hat Enterprise Linux を設定します。デフォルトでは、kdump が失敗すると、Red Hat Enterprise Linux は自動的に再起動するため、sadump が起動しないようになります。この動作を回避するには、
/etc/kdump.conf
ファイルを以下のように設定します。default halt
またはdefault shell
- sadump を開始するように Red Hat Enterprise Linux を設定します。
/etc/kdump.conf
を設定して、System Management Interrupt(SMI)をブロックしないようにし、sadump が起動できるようにします。blacklist kvm-intel
32.5.2. メモリーダンプを確認します。
例32.9 ダンプ整合性の確認
crash /usr/lib/debug/lib/modules/2.6.32-358.el6.x86_64/vmlinux /dev/sdb1
32.6. その他のリソース
インストールされているドキュメント
- kdump.conf(5): 利用可能なオプションの詳細なドキュメントを含む
/etc/kdump.conf
設定ファイルの man ページです。 - makedumpfile(8): makedumpfile コアコレクターの man ページです。
- kexec(8): kexec の man ページです。
- crash(8)- crash ユーティリティーの man ページです。
/usr/share/doc/kexec-tools-version/kexec-kdump-howto.txt
:kdump
および kexec のインストールと使用の概要です。/usr/share/doc/kexec-tools-version/fadump-howto.txt
: ハードウェアをリセットする方法など、fadump メカニズムの詳細。version を、お使いのシステムにインストールされている kexec-tools バージョンに置き換えます。
便利な Web サイト
- https://access.redhat.com/kb/docs/DOC-6039
- kexec および
kdump
設定に関する Red Hat ナレッジベースアーティクルです。 - https://access.redhat.com/kb/docs/DOC-45183
- サポートしている
kdump
ターゲットに関する Red Hat ナレッジベースアーティクルです。 - http://people.redhat.com/anderson/
- crash ユーティリティーのホームページです。
パート IX. システムリカバリー
第33章 システムリカバリー
レスキューモード、シングルユーザーモード
、および 緊急モード
を提供し、誤作動システムを修復するために使用できます。本章では、各システムリカバリーモードで起動する方法を説明し、システムのリカバリーモードを使用してのみ解決できる特定の問題を解決するためのガイダンスを提供します。
- Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux(ランレベル 3 または 5)で通常起動することはできません。
- システムが正常に実行中に解決できないハードウェアまたはソフトウェアの問題を解決する必要があります。または、ハードドライブから重要なファイルにアクセスしたい場合があります。
- root パスワードを忘れてしまった。
33.1. レスキューモード
レスキューモード
は、システムのハードドライブではなく、CD-ROM や USB ドライブなどの外部メディアから完全に小規模な Red Hat Enterprise Linux 環境を起動する機能を提供します。さまざまな問題を修復するコマンドラインユーティリティーが含まれています。このモードでは、ファイルシステムを読み取り専用としてマウントしたり、ファイルシステムをマウントしたり、ドライバーディスクで提供されるドライバーをブラックリストに追加したり、システムパッケージをインストールまたはアップグレードしたり、パーティションを管理したりできます。
レスキューモード
で起動するには、以下の手順に従います。
手順33.1 レスキューモードでの起動
- 最小限の起動メディアまたは完全インストール DVD もしくは USB ドライブからシステムを起動し、ブートメニューが表示されるまで待ちます。選択したメディアからシステムを起動する方法は、『インストールガイド』 の該当する章を参照してください。
- 起動メニューから、
rescue
キーワードをカーネルパラメーターとして起動コマンドラインに追加します。 - システムの起動時にドライバー ディスクで提供されるサードパーティーのドライバー が必要な場合は、起動コマンドラインに
dd
オプションを追加して、そのドライバーを読み込みます。rescue dd
システムの起動時にディスクドライバーを使用する方法は、『インストールガイド』 の該当する章を参照してください。 - Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 ディストリビューションに含まれるドライバーが原因でシステムが起動しないようにする場合は、起動コマンドラインに
rdblacklist
オプションを追加してそのドライバーをブラックリストに指定します。rescue rdblacklist=driver_name
- 基本的な質問に回答し、プロンプトが表示されたら有効なレスキューイメージの場所を選択します。ローカル CD-ROM、ハードドライブ、NFS イメージ、FTP、または HTTP から関連するタイプを選択します。選択した場所には有効なインストールツリーが含まれ、インストールツリーは Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux のバージョンと同じバージョンの Red Hat Enterprise Linuxnbsp;Linux 用でなければなりません。これは、ブートしたディスクです。ハードドライブ、NFS サーバー、FTP サーバー、または HTTP サーバーにインストールツリーを設定する方法は、『インストール ガイド』 の該当する章を参照してください。ネットワーク接続を必要としないレスキューイメージを選択すると、ネットワーク接続を確立するかどうかが尋ねられます。ネットワーク接続は、ファイルを別のコンピューターにバックアップする必要がある場合や、共有ネットワークの場所からいくつかの RPM パッケージをインストールする必要がある場合に役立ちます。
- 以下のメッセージが表示されます。
The rescue environment will now attempt to find your Linux installation and mount it under the directory /mnt/sysimage. You can then make any changes required to your system. If you want to proceed with this step choose 'Continue'. You can also choose to mount your file systems read-only instead of read-write by choosing 'Read-only'. If for some reason this process fails you can choose 'Skip' and this step will be skipped and you will go directly to a command shell.
/mnt/sysimage/
ディレクトリーに root パーティションをマウントしようとします。root パーティションには、通常、/home/
、/boot/
、/var/
などの複数のファイルシステムが含まれます。これは、正しい場所に自動的にマウントされます。パーティションのマウントに失敗すると、通知されます。 を選択すると、システムは/mnt/sysimage/
ディレクトリーにファイルシステムをマウントしようとしますが、読み取り専用モードになります。 を選択すると、ファイルシステムがマウントされません。ファイルシステムが破損していると思われる場合は、 を選択します。 - レスキューモードでシステムを選択すると、仮想コンソール(VC)1 および VC 2 に以下のプロンプトが表示されます。Ctrl-Alt-F1 のキーの組み合わせを使用して VC 1 にアクセスし、Ctrl-Alt-F2 を使用して VC 2 にアクセスします。
sh-3.00b#
シングルユーザーモード
になります。
レスキューモード
ではデフォルトの root パーティションは一時的な root パーティションで、通常のユーザーモードで使用されるファイルシステムの root パーティションではありません(runlevel 3 または 5)。ファイルシステムのマウントを選択し、正常にマウントされた場合は、次のコマンドを実行してレスキューモード環境の root パーティションを、ファイルシステムの root パーティションに変更できます。
sh-3.00b#
chroot /mnt/sysimage
/
としてマウントされる必要がある rpm などのコマンドを実行する必要がある場合に便利です。chroot 環境を終了するには、exit と入力してプロンプトに戻ります。
レスキューモード
内でパーティションまたは LVM2 論理ボリュームを手動でマウントできます。
sh-3.00b#
mkdir /directorysh-3.00b#
mount -t ext4 /dev/mapper/VolGroup00-LogVol02 /directory
/directory
は作成したディレクトリーで、/dev/mapper/VolGroup00-LogVol02 はマウントする LVM2 論理ボリュームに置き換えます。パーティションが ext2 または ext3 タイプの場合は、ext4 をそれぞれ ext2 または ext3 に置き換えます。
sh-3.00b#
fdisk -l
- ネットワークが開始されている場合、ssh、scp、ping
- テープドライブのユーザー用に dump と restore
- パーティションの管理に parted と fdisk
- ソフトウェア の インストールまたはアップグレードを行うための RPM
- テキストファイルの編集の vi
33.2. シングルユーザーモード
シングルユーザーモード
は、1 人のユーザーの Linux 環境を提供し、ネットワーク化されたマルチユーザー環境で解決できない問題からシステムを復旧できます。シングルユーザーモード
で起動できるようにするには、外部ブートデバイスは必要ありません。また、システムの実行中に直接切り替えることができます。実行中のシステムで シングルユーザーモード
に切り替えるには、コマンドラインから以下のコマンドを実行します。
~]# init 1
シングルユーザーモード
では、システムはマウントされたローカルファイルシステムで起動します。多くの重要なサービスが実行され、通常のシステムコマンドの多くは実行できるメンテナンスシェルになります。そのため、シングルユーザーモード
は、システムの起動時に問題の解決に非常に便利ですが、正常に機能しない場合や、ログインすることができません。
シングルユーザーモード
は、自動的にローカルファイルシステムのマウントを試みます。シングルユーザーモード
で起動すると、ローカルファイルシステムが正常にマウントできない場合にデータが失われる可能性があります。
シングルユーザーモード
で起動するには、以下の手順に従います。
手順33.2 シングルユーザーモードで起動
- GRUB ブート画面で任意のキーを押すと GRUB 対話メニューに入ります。
- 起動するカーネルのバージョンで Red Hat Enterprise Linux を選択し、a を押して行を追加します。
- 行の最後にある別の単語として
single
と 入力 し、Enter を押して GRUB 編集モードを終了します。または、single の代わりに1
を入力することもできます。
33.3. 緊急モード
緊急モード
では、起動可能な最小限の環境が提供され、レスキューモード
が利用できない場合でもシステムの修復が可能になります。緊急モード
では、システムは root
ファイルシステムのみをマウントし、読み取り専用としてマウントされます。また、システムはネットワークインターフェースをアクティブにせず、必要最小限のサービスのみが設定されます。システムは init スクリプトをロードしないため、init が破損しているか、または機能しない場合に、再インストール中に失われたデータを回復するためにファイルシステムをマウントできます。
緊急モード
で起動するには、以下の手順に従います。
手順33.3 緊急モードでのブート
- GRUB ブート画面で任意のキーを押すと GRUB 対話メニューに入ります。
- 起動するカーネルのバージョンで Red Hat Enterprise Linux を選択し、a を押して行を追加します。
- 行の最後にある別の単語として
emergency
と 入力 し、Enter を押して GRUB 編集モードを終了します。
33.4. システムリカバリーモードでの問題の解決
root
パスワードをリセットする方法を示しています。
手順33.4 root パスワードのリセット
- 手順33.2「シングルユーザーモードで起動」 の説明に従って、
シングルユーザーモード
で起動します。 - メンテナンスシェルコマンドラインから passwd コマンドを実行します。
レスキューモード
でブートローダーを再設定しない限り、Red Hat Enterprise Linuxnbsp;Hat Enterprise Red Hat Enterprise Linuxnbsp;Linux を起動することはできません。
手順33.5 GRUB ブートローダーの再インストール
- 手順33.1「レスキューモードでの起動」 の説明に従って、
レスキューモード
で起動します。システムの root パーティションを読み書きモードでマウントしていることを確認します。 - 以下のコマンドを実行して root パーティションを変更します。
sh-3.00b#
chroot /mnt/sysimage - 以下のコマンドを実行して、GRUB ブートローダーを再インストールします。
sh-3.00b#
/sbin/grub-install boot_partboot_part は、ブートパーティション(通常は/dev/sda
)に置き換えます。 - GRUB が追加のオペレーティングシステムを制御するために追加エントリーが必要になる可能性があるため、
/boot/grub/grub.conf
ファイルを確認してください。 - システムを再起動します。
レスキューモード
で起動し、/boot/grub/grub.conf
ファイルを変更します。
レスキューモード
で更新されたドライバーや不足しているドライバーを追加したりすることができます。誤動作のあるドライバーを何らかの理由で削除できない場合は、代わりにドライバーをブラックリストに登録することで、起動時に読み込まれないようにすることができます。
手順33.6 レスキューモードでのドライバーの削除
- 手順33.1「レスキューモードでの起動」 の説明に従って、
レスキューモード
で起動します。システムの root パーティションを読み書きモードでマウントしていることを確認します。 - root ディレクトリーを
/mnt/sysimage/
に変更します。sh-3.00b#
chroot /mnt/sysimage - 以下のコマンドを実行してドライバーパッケージを削除します。
sh-3.00b#
rpm -e driver_name - chroot 環境を終了します。
sh-3.00b#
exit - システムを再起動します。
手順33.7 レスキューモードでのドライバーのインストール
- 手順33.1「レスキューモードでの起動」 の説明に従って、
レスキューモード
で起動します。システムの root パーティションを読み書きモードでマウントしていることを確認します。 - ドライバーを含む RPM パッケージでメディアをマウントし、パッケージを
/mnt/sysimage/
ディレクトリー配下の任意の場所にコピーします(例:/mnt/sysimage/root/drivers/
)。 - root ディレクトリーを
/mnt/sysimage/
に変更します。sh-3.00b#
chroot /mnt/sysimage - 以下のコマンドを実行してドライバーパッケージをインストールします。
sh-3.00b#
rpm -ihv /root/drivers/package_nameこの chroot 環境の/root/drivers/
は、元のレスキュー環境では/mnt/sysimage/root/drivers/
であることに注意してください。 - chroot 環境を終了します。
sh-3.00b#
exit - システムを再起動します。
手順33.8 レスキューモードでのドライバーのブラックリスト登録
- linux
rescue rdblacklist=driver_nameコマンドを使用してレスキュー
モード を起動します。driver_name はブラックリストに登録する必要のあるドライバーです。手順33.1「レスキューモードでの起動」 の手順に従って、システムの root パーティションを読み書きモードでマウントしていることを確認します。 - vi エディターで
/boot/grub/grub.conf
ファイルを開きます。sh-3.00b#
vi /boot/grub/grub.conf - システムの起動に使用するデフォルトのカーネルを特定します。各カーネルは
grub.conf
ファイルに、タイトル
で始まる行のグループで指定します。デフォルトのカーネルは、ファイルの開始直後にdefault
パラメーターで指定します。値が0
の場合は、1 番目の行グループで説明されるカーネルを参照し、値1
は 2 番目のグループで説明されるカーネルを指します。また、高い値は、後続のカーネルを順次参照します。 - グループの
カーネル
行を編集して、オプションrdblacklist=driver_name
を追加します。driver_name はブラックリストに指定する必要のあるドライバーです。以下に例を示します。kernel /vmlinuz-2.6.32-71.18-2.el6.i686 ro root=/dev/sda1 rhgb quiet rdblacklist=driver_name
- 以下を入力してファイルを保存し、vi エディターを終了します。
:wq
- 以下のコマンドを実行して、root パーティションをマウントした後に
ドライバーをブラックリストに登録する新しい /etc/modprobe.d/driver_name.conf を作成します
。echo "install driver_name" > /mnt/sysimage/etc/modprobe.d/driver_name.conf
- システムを再起動します。
第34章 ReaR (Relax-and-Recover)
- 新規ハードウェア上でレスキューシステムを起動する
- オリジナルのストレージレイアウトを複製する
- ユーザーおよびシステムファイルの復元
34.1. 基本的な ReaR の使用方法
34.1.1. ReaR のインストール
~]# yum install rear
34.1.2. ReaR の設定
/etc/rear/local.conf
ファイルで設定します。以下の行を追加してレスキューシステムの設定を指定します。
OUTPUT=output format OUTPUT_URL=output location
ISO
、起動可能な USB であれば USB
などにします。
ファイルシステムディレクトリーの file:///mnt/rescue_system/
、SFTP ディレクトリーの場合は sftp://backup:.0.0/
などにします。
例34.1 レスキューシステムの形式および場所の設定
/mnt/rescue_system/
ディレクトリーに出力するように設定するには、以下の行を /etc/rear/local.conf
ファイルに追加します。
OUTPUT=ISO OUTPUT_URL=file:///mnt/rescue_system/
34.1.3. レスキューシステムの作成
~]# rear -v mkrescue Relax-and-Recover 1.17.2 / Git Using log file: /var/log/rear/rear-rhel68.log mkdir: created directory `/var/lib/rear/output' Creating disk layout Creating root filesystem layout TIP: To login as root via ssh you need to set up /root/.ssh/authorized_keys or SSH_ROOT_PASSWORD in your configuration file Copying files and directories Copying binaries and libraries Copying kernel modules Creating initramfs Making ISO image Wrote ISO image: /var/lib/rear/output/rear-rhel68.iso (82M) Copying resulting files to file location
/mnt/rescue_system/
にコピーされていることを確認します。システムのホスト名は rhel-68
であるため、バックアップの場所には、レスキューシステムと補助ファイルが含まれる rhel-68/
ディレクトリーが含まれるようになりました。
~]# ls -lh /mnt/rescue_system/rhel68/
total 82M
-rw-------. 1 root root 202 May 9 11:46 README
-rw-------. 1 root root 160K May 9 11:46 rear.log
-rw-------. 1 root root 82M May 9 11:46 rear-rhel68.iso
-rw-------. 1 root root 275 May 9 11:46 VERSION
34.1.4. ReaR のスケジューリング
/etc/crontab
ファイルに追加します。
minute hour day_of_month month day_of_week root /usr/sbin/rear mkrescue
例34.2 ReaR のスケジューリング
/etc/crontab
ファイルに追加します。
0 22 * * 1-5 root /usr/sbin/rear mkrescue
34.1.5. システムレスキューの実行
- 新しいハードウェア上でレスキューシステムを起動します。たとえば、ISO イメージを DVD に書き込み、その DVD から起動します。
- コンソールのインターフェースで "Recover" オプションを選択します。
- 以下のプロンプトが表示されます。
図34.2 レスキューシステムのプロンプト
警告次のステップでリカバリーを開始すると、元に戻すことができなくなり、システムの物理ディスクに保存されていたものが失われます。 - rear recover コマンドを実行して復元または移行を実行します。するとレスキューシステムがパーティションレイアウトとファイルシステムを再作成します。
図34.3 レスキューシステム: "rear recover" の実行
- バックアップから
/mnt/local/
ディレクトリーにユーザーおよびシステムファイルを復元します。例34.3 ユーザーおよびシステムファイルの復元
この例では、バックアップファイルは 「内部バックアップメソッドの設定」 の説明に従って作成された tar アーカイブになります。まず、アーカイブをストレージからコピーし、ファイルを/mnt/local/
に展開し、アーカイブを削除します。~]# scp root@192.168.122.6:/srv/backup/rhel68/backup.tar.gz /mnt/local/ ~]# tar xf /mnt/local/backup.tar.gz -C /mnt/local/ ~]# rm -f /mnt/local/backup.tar.gz
新規ストレージは、アーカイブと展開ファイルの両方を格納できるサイズである必要があります。 - ファイルが復元されたことを確認します。
~]# ls /mnt/local/
図34.4 レスキューシステム: バックアップからのユーザーおよびシステムファイルの復元
- 次回の起動時に SELinux がファイルに再度ラベル付するようにします。
~]# touch /mnt/local/.autorelabel
そうしないと、/etc/passwd
ファイルの SELinux コンテキストが正しくない可能性があるため、システムにログインできなくなる可能性があります。 - リカバリーを完了してシステムを再起動します。
図34.5 レスキューシステム: リカバリーの終了
その後、ReaRはブートローダーを再インストールします。再起動すると、SELinux がファイルシステム全体に再ラベル付けされます。これでリカバリーしたシステムにログインできるようになります。
34.2. ReaR をバックアップソフトウェアの統合
34.2.1. ビルトインバックアップの場合
- rear mkbackup コマンドを 1 つ使用してレスキューシステムと完全システムバックアップを作成できます。
- レスキューシステムが自動でバックアップからファイルを復元します。
34.2.1.1. 内部バックアップメソッドの設定
/etc/rear/local.conf
に追加します。
BACKUP=NETFS BACKUP_URL=backup location
例34.4 tar バックアップの追加
OUTPUT=ISO OUTPUT_URL=file:///mnt/rescue_system/ BACKUP=NETFS BACKUP_URL=file:///srv/backup/
- 新規バックアップの作成時にこれまでのバックアップアーカイブを維持しておくようにするには、以下の行を追加します。
NETFS_KEEP_OLD_BACKUP_COPY=y
- デフォルトでは、ReaR は実行時に毎回、完全バックアップを作成します。変更分のみをバックアップする増分にするには、以下の行を追加します。
BACKUP_TYPE=incremental
これにより、NETFS_KEEP_OLD_BACKUP_COPY が自動的にy
に設定されます。 - 増分バックアップに加えて、完全バックアップを定期的に実行するには、以下の行を追加します。
FULLBACKUPDAY="Day"
"Day" を "Mon"、"Tue"、"Wed"、"Thu" のいずれかに置き換えます。「金」、「土」、「日」。 - ReaR は、レスキューシステムとバックアップの両方を ISO イメージに含めることもできます。これを行うには、BACKUP_URL ディレクティブを
iso:///backup/
に設定します。BACKUP_URL=iso:///backup/
これはレスキューシステムがリカバリー中にバックアップをフェッチする必要がないことから、完全システムバックアップの一番簡単なメソッドになります。ただし、ストレージに十分なスペースが必要になります。また、単発の ISO バックアップは増分とすることができません。注記現在、ReaR は ISO イメージのコピーを 2 つ作成するため、ストレージをさらに 2 倍消費します。詳細は、『 Red Hat Enterprise Linux 6 リリースノート』 『の「ReaR が ISO イメージを作成』 する点」を参照してください。例34.5 単一 ISO のレスキューシステムおよびバックアップの設定
以下の設定では、単一の ISO イメージとしてレスキューシステムとバックアップファイルが/srv/backup/
ディレクトリーに作成されます。OUTPUT=ISO OUTPUT_URL=file:///srv/backup/ BACKUP=NETFS BACKUP_URL=iso:///backup/
- tar の代わりに rsync を使用するには、以下の行を追加します。
BACKUP_PROG=rsync
増分バックアップは tar 使用時にのみサポートされることに注意してください。
34.2.1.2. 内部バックアップメソッドを使用したバックアップの作成
BACKUP=NETFS
を設定すると、ReaR はレスキューシステム、バックアップファイル、またはその両方を作成できます。
- レスキューシステムのみ を作成するには、以下のコマンドを実行します。
rear mkrescue
- バックアップのみ を作成するには、以下のコマンドを実行します。
rear mkbackuponly
- レスキューシステムとバックアップ を作成するには、以下のコマンドを実行します。
rear mkbackup
~]# rear checklayout ~]# echo $?
例34.6 rear checklayout の使用
~]# rear checklayout || rear mkrescue
34.2.2. サポート対象のバックアップメソッド
34.2.3. サポート対象外のバックアップメソッド
- レスキューシステムでは、ユーザーに手動でファイルを復元するようプロンプトが出ます。このシナリオは、「基本的な ReaR の使用方法」に記載されているものですが、バックアップファイルの形式が tar アーカイブとは異なる場合があります。
- ユーザーが提供するカスタムコマンドを ReaR が実行します。これを設定するには、BACKUP ディレクティブを EXTERNAL に設定します。次に、EXTERNAL_BACKUP および EXTERNAL_RESTORE ディレクティブを使用してバックアップおよび復元中に実行するコマンドを指定します。またオプションで、EXTERNAL_IGNORE_ERRORS と EXTERNAL_CHECK のディレクティブも指定します。設定例は、
/usr/share/rear/conf/default.conf
を参照してください。
付録A ネットワークデバイス命名における一貫性
eth[0123…]
ただし、この名前がシャーシの実際のラベルに対応しているとは限りません。複数のネットワークアダプターを使用する最新のサーバープラットフォームでは、このインターフェースの非決定論的および反直感的な命名が行われています。これは、マザーボードに組み込まれたネットワークアダプター (Lan-on-Motherboard または LOM) とアドイン (シングルおよびマルチのポート) アダプターの両方に影響します。
eth[0123…]
表A.1「新しい命名規則」 に記載の新しい命名規則に対して、以下を行います。
デバイス | 旧式の名前 | 新しい名前 |
---|---|---|
組み込み型ネットワークインターフェース (LOM) | eth[0123…] | em[1234…] [a] |
PCI カードネットワークインターフェース | eth[0123…] | p<slot>p<ethernet port> [b] |
仮想機能 | eth[0123…] | p<slot>p<ethernet port>_<virtual interface> [c] |
[a]
新しい列挙は 1 から始まります。
[b]
以下に例を示します。 p3p4
[c]
以下に例を示します。 p3p4_1
|
/etc/udev/rules.d/70-persistent-net.rules にルール
を書き込むことができます。これは、この物理的な場所の命名規則よりも優先されます。
A.1. 影響を受けるシステム
Dell
、C Series
、および Precision Workstation
システムのセットに対してデフォルトで有効になります。Dell システムへの影響についての詳細は、を参照してください https://access.redhat.com/kb/docs/DOC-47318。
eth[0123…]
命名規則は引き続き使用されます。
A.2. システム要件
ベース
パッケージグループの一部です。最小インストール 除くすべてのインストールオプションには、このパッケージが含まれます。これは、Red Hat Enterprise Linux 6.0 から RHEL 6.1 へのアップグレードにインストールされません。
A.3. 機能の有効化および無効化
biosdevname=0
biosdevname=1
biosdevname
インストールオプションが指定されている場合、システムの有効期間中にブートオプションとして留まる必要があります。
A.4. 管理者向け注意点
ksdevice
パラメーターを介してデバイス名を使用する既存のキックスタートファイルを変更する必要があります。これらのキックスタートファイルは、ネットワークデバイスの MAC アドレスまたはネットワークデバイスの新しい名前を使用するように更新する必要があります。
/etc/udev/rules.d/70-persistent-net.rules
ファイルと HWADDR
行をすべての /etc/sysconfig/network-scripts/ifcfg-*
ファイルから削除します。さらに、この新しい命名規則を使用するように ifcfg-*
ファイルの名前を変更します。再起動後に新しい名前が有効になります。ネットワークインターフェース名が含まれる可能性のあるカスタムスクリプト、iptables ルール、およびサービス設定ファイルを更新するのを忘れないようにしてください。
付録B RPM
x86_64.rpm
で終わります。
.tar.gz
ファイルで実行できないカスタマイズも失われないようにします。
B.1. RPM 設計ゴール
- アップグレード可能性
- RPM を使用すると、完全に再インストールせずにシステムの個別コンポーネントをアップグレードできます。Red Hat Enterprise Linuxnbsp;Hat Enterprise Red Hat Enterprise Linuxnbsp;Linux などの RPM に基づいてオペレーティングシステムの新しいリリースを取得する場合は、マシンのオペレーティングシステムの新規コピーを再インストールする必要はありません(他のパッケージシステムに基づくオペレーティングシステムを使用する必要がある場合があります)。RPM は、システムのインテリジェントな完全自動インプレースアップグレードを可能にします。さらに、パッケージ内の設定ファイルはアップグレード後も保持されるため、カスタマイズは失われません。パッケージのアップグレードに必要な特別なアップグレードファイルはありません。システム上のパッケージのインストールとアップグレードの両方に同じ RPM ファイルが使用されるためです。
- 強力なクエリ
- RPM は、強力なクエリーオプションを提供するように設計されています。パッケージや特定のファイルのみに対してデータベース全体の検索を実行できます。また、ファイルが属するパッケージや、パッケージの出所を簡単に見つけることもできます。RPM パッケージに含まれるファイルは圧縮アーカイブにあり、カスタムバイナリーヘッダーにはパッケージとそのコンテンツに関する有用な情報が含まれており、個々のパッケージを素早く簡単にクエリーできます。
- システムの検証
- もう 1 つの強力な RPM 機能は、パッケージを検証する機能です。一部のパッケージで重要なファイルを削除した場合には、パッケージを確認することができます。その後、必要に応じてパッケージを再インストールできる時点で、異常が通知されます。変更した設定ファイルは再インストール時に保持されます。
- 純粋なソース
- 重要な設計目的は、ソフトウェアの元の作成者によって配布される Pristine ソフトウェアソースを使用できるようにしたことでした。RPM では、元のソースと、使用されたパッチ、完全なビルド命令があります。これは、いくつかの理由で重要な利点です。たとえば、新しいバージョンのプログラムがリリースされると、コンパイルを行うために必ずしもゼロから作業を開始する必要はありません。パッチを確認して、必要 な 内容を確認できます。コンパイルされたすべてのデフォルトと、ソフトウェアが適切にビルドできるように加えられたすべての変更は、この手法を使用して簡単に表示できます。ソースを純粋に保つことの目的は開発者の場合にのみ重要だと思うかもしれませんが、エンドユーザーにとっても品質の高いソフトウェアになります。
B.2. RPM の使用
B.2.1. RPM パッケージの検索
- YUM パッケージマネージャーで提供される初期 RPM リポジトリー公式の Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux パッケージリポジトリーの使用方法は、8章Yum を参照してください。
- Extra Packages for Enterprise Linux(EPEL)は、Red Hat Enterprise Linux 用の高品質アドオンパッケージを提供するコミュニティーの作業です。EPEL RPM パッケージの詳細は を参照 http://fedoraproject.org/wiki/EPEL してください。
- Red Hatnbsp;Hat と互換性のない非公式のリポジトリーでは、RPM パッケージも提供されます。サードパーティーのリポジトリーおよびパッケージの互換性Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux システムで使用するサードパーティーのリポジトリーを検討する場合は、リポジトリーをパッケージソースとして追加する前に、リポジトリーの Web サイトに注意を払ってください。代替パッケージリポジトリーでは、Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux リポジトリーにすでに含まれているパッケージを含め、同じソフトウェアの異なる互換性のないバージョンが提供されることがあります。
- Red Hat エラータページ は から http://www.redhat.com/apps/support/errata/ 入手できます。
B.2.2. インストールおよび設定ガイド
tree-1.5.3-2.el6.x86_64.rpm
などのファイル名があります。ファイル名には、パッケージ名(ツリー
)、バージョン(1.
5.3)、リリース(2
)、オペレーティングシステムのメジャーバージョン(el6
)、および CPU アーキテクチャー(x86_64
)が含まれます。
-U
オプションを使用すると、以下を行います。
- システムの既存の古いパッケージを、新しいバージョンにアップグレードします。
- 古いバージョンがインストールされていなくてもパッケージをインストールします。
tree-1.5.3-2.el6.x86_64.rpm
パッケージが現在のディレクトリーにある場合は、root としてログインし、rpm の決定どおりに tree パッケージをアップグレードまたはインストールします。
rpm -Uvh tree-1.5.3-2.el6.x86_64.rpm
-v
オプションおよび -h
オプション( -U
と組み合わせる)により、rpm はより詳細な出力を出力し、ハッシュ記号を使用して進捗メーターを表示します。
Preparing... ########################################### [100%] 1:tree ########################################### [100%]
-U
オプション)と、-i
オプション( インストール の必要あり)の 2 種類のオプションを利用できます。-U
オプションはインストールおよびアップグレード機能の両方を使用するため、kernel パッケージ 以外 のすべてのパッケージで rpm -Uvh を使用することが推奨されます。
-i
オプションを使用して、アップグレードせずに新しいカーネルパッケージを インストール する必要があります。これは、-U
オプションを使用してカーネルパッケージをアップグレードすると、以前の(以前の)カーネルパッケージが削除され、新しいカーネルに問題がある場合にシステムが起動できなくなる可能性があるためです。したがって、rpm -i < kernel_package> コマンドを 使用して、古い kernel パッケージを置き換え ず に新しいカーネルをインストールします。kernel パッケージのインストールの詳細は、30章カーネルの手動によるアップグレード を参照してください。
error: tree-1.5.3-2.el6.x86_64.rpm: Header V3 RSA/SHA256 signature: BAD, key ID d22e77f2
error: tree-1.5.3-2.el6.x86_64.rpm: Header V3 RSA/SHA256 signature: BAD, key ID d22e77f2
NOKEY
という単語が含まれます。
warning: tree-1.5.3-2.el6.x86_64.rpm: Header V3 RSA/SHA1 signature: NOKEY, key ID 57bbccba
B.2.2.1. インストールされているパッケージ
Preparing... ########################################### [100%] package tree-1.5.3-2.el6.x86_64 is already installed
rpm -Uvh --replacepkgs tree-1.5.3-2.el6.x86_64.rpm
B.2.2.2. 競合するファイル
Preparing... ################################################## file /usr/bin/foobar from install of foo-1.0-1.el6.x86_64 conflicts with file from package bar-3.1.1.el6.x86_64
rpm -Uvh --replacefiles foo-1.0-1.el6.x86_64.rpm
B.2.2.3. 解決できない依存関係
error: Failed dependencies: bar.so.3()(64bit) is needed by foo-1.0-1.el6.x86_64
rpm -Uvh foo-1.0-1.el6.x86_64.rpm bar-3.1.1.el6.x86_64.rpm
Preparing... ########################################### [100%] 1:foo ########################################### [ 50%] 2:bar ########################################### [100%]
--whatprovides
オプションを試して、必要なファイルを含むパッケージを特定します。
rpm -q --whatprovides "bar.so.3"
bar.so.3
が含まれるパッケージが RPM データベースにある場合は、パッケージ名が表示されます。
bar-3.1.1.el6.i586.rpm
Failed dependencies
エラーが表示されるパッケージをインストールするように 強制 することができますが( --nodeps
オプションを使用)、これは推奨され ず、通常はインストールされたパッケージの実行に失敗します。rpm --nodeps でパッケージのインストールまたは削除により、アプリケーションが誤作動したり、クラッシュしたりしてしまう可能性があり、重要なパッケージ管理の問題やシステム障害などの問題が生じる可能性があります。このような警告は、RPM、Yum、PackageKit( RPM、Yum、PackageKit)が認識しているので、これらの警告を確認して、依存関係のアカウンティングが重要であるため、これらの警告を提案してください。Yum パッケージマネージャーは、依存関係の解決と、オンラインリポジトリーから依存関係をフェッチすることができるため、依存関係の解決を考慮せずに rpm によるアクションの実行よりも安全で、より容易かつスマートになります。
B.2.3. 設定ファイルの変更
saving /etc/foo.conf as /etc/foo.conf.rpmsave
foo.conf.rpmnew
などのようにパッケージの 新しい 設定ファイルを保存し、変更されなかった設定ファイルを残すこともできます。通常は、変更した設定ファイルから新しい設定ファイルへの変更をマージすることで、変更した設定ファイルと新しい設定ファイル間で競合を解決する必要が あり ます。
package foo-2.0-1.el6.x86_64.rpm (which is newer than foo-1.0-1) is already installed
rpm -Uvh --oldpackage foo-1.0-1.el6.x86_64.rpm
B.2.4. アンインストール
rpm -e foo
foo
-1.0-1.el6.x86_64 の名前ではなく、パッケージ名 foo
を使用していたことに注意してください。rpm -e コマンドおよび元のフルファイル名を使用してパッケージをアンインストールしようとすると、パッケージ名エラーが発生します。
rpm -e ghostscript
error: Failed dependencies:
libgs.so.8()(64bit) is needed by (installed) libspectre-0.2.2-3.el6.x86_64
libgs.so.8()(64bit) is needed by (installed) foomatic-4.0.3-1.el6.x86_64
libijs-0.35.so()(64bit) is needed by (installed) gutenprint-5.2.4-5.el6.x86_64
ghostscript is needed by (installed) printer-filters-1.1-4.el6.noarch
library_name > .so. <number
> ファイル)を検索する方法と同様に、この正確な構文を使用して 64 ビットの共有オブジェクトライブラリーを検索できます(ファイル名を引用符で囲むようにしてください)。
~]# rpm -q --whatprovides "libgs.so.8()(64bit)"
ghostscript-8.70-1.el6.x86_64
Failed dependencies
エラーが表示されるパッケージを削除するように 強制 することができますが( --nodeps
オプションを使用)、これは推奨され ず、他のインストール済みアプリケーションの影響を引き起こす可能性があります。rpm --nodeps でパッケージのインストールまたは削除により、アプリケーションが誤作動したり、クラッシュしたりしてしまう可能性があり、重要なパッケージ管理の問題やシステム障害などの問題が生じる可能性があります。このような警告は、RPM、Yum、PackageKit( RPM、Yum、PackageKit)が認識しているので、これらの警告を確認して、依存関係のアカウンティングが重要であるため、これらの警告を提案してください。Yum パッケージマネージャーは、依存関係の解決と、オンラインリポジトリーから依存関係をフェッチすることができるため、依存関係の解決を考慮せずに rpm によるアクションの実行よりも安全で、より容易かつスマートになります。
B.2.5. Freshening
rpm -Fvh foo-2.0-1.el6.x86_64.rpm
*.rpm
glob で以下を実行します。
rpm -Fvh *.rpm
B.2.6. クエリ
/var/lib/rpm/
ディレクトリーに保存され、インストールされているパッケージ、各パッケージのバージョン、およびインストール以降のパッケージ内のファイルへの変更の算出に使用されます。
ツリー
をクエリーすると、以下の出力が生成されます。
tree-1.5.2.2-4.el6.x86_64
- -a: 現在インストールされているパッケージをすべてクエリーします。
- -f &
lt;file_name>
; - パッケージを所有する RPM データベースに <file_name> をクエリーし
ます。ファイルの絶対パスを指定します(例: rpm -qf ls ではなく rpm -qf/bin/
ls)。 - -p <
;package_file> -
アンインストールしたパッケージ <package_file> をクエリーし
ます。
- -i は、名前、説明、リリース、サイズ、ビルド日、インストール日、ベンダー、その他のその他の情報など、パッケージ情報を表示します。
- -l は、パッケージに含まれるファイルの一覧を表示します。
- -s は、パッケージ内の全ファイルの状態を表示します。
- -d は、パッケージにドキュメントとしてマークされているファイルの一覧を表示します(man ページ、情報ページ、README など)。
- -c は、設定ファイルとしてマークされているファイルの一覧を表示します。インストール後に編集したファイルで、パッケージをお使いのシステムに適用およびカスタマイズします(例:
sendmail.cf
、passwd
、inittab
など)。
B.2.7. 検証
- 特定のファイルを含むパッケージを確認するには、次のコマンドを実行します。
rpm -Vf /usr/bin/tree
この例では、/usr/bin/tree
は、パッケージのクエリーに使用されるファイルへの絶対パスです。 - システム全体でインストールされたすべてのパッケージ(これには多少時間がかかります)を確認するには、以下のコマンドを実行します。
rpm -Va
- RPM パッケージファイルに対してインストール済みのパッケージを確認するには、次のコマンドを実行します。
rpm -Vp tree-1.5.3-2.el6.x86_64.rpm
このコマンドは、RPM データベースが破損していると思われる場合に便利です。
c
は設定ファイルを示します)、ファイル名です。8 文字はそれぞれ、ファイルの 1 つの属性と RPM データベースに記録された属性の値を比較した結果を示します。1 回の期間(.
)は、テストに合格したことを意味します。以下の文字は、特定の不一致を示しています。
5
- MD5 checksumS
- ファイルサイズL
- シンボリックリンクT
- ファイル変更時間D
- deviceU
- userG
- groupM
- モード(パーミッションおよびファイルタイプを含む)?
- 読み取りできないファイル(ファイルパーミッションエラーなど)
B.3. パッケージの署名の確認
rpm -K --nosignature <rpm_file>
<rpm_file>: rsa sha1 (md5) pgp md5 OK
メッセージ(特に OK 部分)が表示されます。この簡単なメッセージは、ダウンロード中にファイルが破損しなかったことを意味します。より詳細なメッセージを表示するには、コマンドの -K
を -Kvv
に置き換えます。
B.3.1. キーのインポート
rpm --import /usr/share/rhn/RPM-GPG-KEY
rpm -qa gpg-pubkey*
gpg-pubkey-db42a60e-37ea5438
rpm -qi gpg-pubkey-db42a60e-37ea5438
B.3.2. パッケージの署名の確認
rpm -K <rpm-file>
md5 gpg OK
というメッセージが表示されます。つまり、パッケージの署名が破損しないため、安全にインストールして使用することができます。
B.4. RPM の使用方法に関する実例および一般的な例
- 場合によっては、誤って一部のファイルを削除しましたが、削除内容を把握しているわけではありません。システム全体を検証し、足りないものを確認するには、以下のコマンドを実行します。
rpm -Va
一部のファイルが欠落しているか、破損している場合、パッケージを再インストールするか、またはアンインストールしてからパッケージを再インストールします。 - 場合によっては、認識しないファイルが表示される場合があります。パッケージを所有するパッケージを確認するには、次のコマンドを実行します。
rpm -qf /usr/bin/ghostscript
出力は以下のようになります。ghostscript-8.70-1.el6.x86_64
- 以下のシナリオにおいて、上記の 2 つの例を組み合わせることができます。
/usr/bin/paste
に問題があるとします。そのプログラムを所有するパッケージを確認しますが、どのパッケージが 貼り付ける かは分からません。以下のコマンドを入力します。rpm -Vf /usr/bin/paste
また、適切なパッケージが検証されています。 - 特定のプログラムに関する詳細情報を見つけてもよろしいですか?以下のコマンドを試し、そのプログラムを所有するパッケージに含まれるドキュメントを確認できます。
rpm -qdf /usr/bin/free
出力は以下のようになります。/usr/share/doc/procps-3.2.8/BUGS /usr/share/doc/procps-3.2.8/FAQ /usr/share/doc/procps-3.2.8/NEWS /usr/share/doc/procps-3.2.8/TODO /usr/share/man/man1/free.1.gz /usr/share/man/man1/pgrep.1.gz /usr/share/man/man1/pkill.1.gz /usr/share/man/man1/pmap.1.gz /usr/share/man/man1/ps.1.gz /usr/share/man/man1/pwdx.1.gz /usr/share/man/man1/skill.1.gz /usr/share/man/man1/slabtop.1.gz /usr/share/man/man1/snice.1.gz /usr/share/man/man1/tload.1.gz /usr/share/man/man1/top.1.gz /usr/share/man/man1/uptime.1.gz /usr/share/man/man1/w.1.gz /usr/share/man/man1/watch.1.gz /usr/share/man/man5/sysctl.conf.5.gz /usr/share/man/man8/sysctl.8.gz /usr/share/man/man8/vmstat.8.gz
- 新しい RPM が見つかるかもしれませんが、何ができるのかは分かないでしょう。情報を確認するには、以下のコマンドを使用します。
rpm -qip crontabs-1.10-32.1.el6.noarch.rpm
出力は以下のようになります。Name : crontabs Relocations: (not relocatable) Version : 1.10 Vendor: Red Hat, Inc. Release : 32.1.el6 Build Date: Thu 03 Dec 2009 02:17:44 AM CET Install Date: (not installed) Build Host: js20-bc1-11.build.redhat.com Group : System Environment/Base Source RPM: crontabs-1.10-32.1.el6.src.rpm Size : 2486 License: Public Domain and GPLv2 Signature : RSA/8, Wed 24 Feb 2010 08:46:13 PM CET, Key ID 938a80caf21541eb Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla> Summary : Root crontab files used to schedule the execution of programs Description : The crontabs package contains root crontab files and directories. You will need to install cron daemon to run the jobs from the crontabs. The cron daemon such as cronie or fcron checks the crontab files to see when particular commands are scheduled to be executed. If commands are scheduled, it executes them. Crontabs handles a basic system function, so it should be installed on your system.
- 場合によっては、
crontabs
RPM パッケージがどのファイルをインストールするかを見てみましょう。以下を入力します。rpm -qlp crontabs-1.10-32.1.el6.noarch.rpm
出力は以下の例のようになります。/etc/cron.daily /etc/cron.hourly /etc/cron.monthly /etc/cron.weekly /etc/crontab /usr/bin/run-parts /usr/share/man/man4/crontabs.4.gz
B.5. その他のリソース
B.5.1. インストールされているドキュメント
- rpm --help - このコマンドは、RPM パラメーターのクイックリファレンスを表示します。
- man rpm - RPM の man ページには、rpm --help コマンドよりも RPM パラメーターに関する詳細が記載されています。
B.5.2. 便利な Web サイト
- RPM Web サイト - http://www.rpm.org/
- RPM メーリングリストはサブスクライブでき、そのアーカイブはここに読み取られます。 https://lists.rpm.org/mailman/listinfo/rpm-list
付録C X ウィンドウシステム
C.1. X サーバー
evdev
が、カーネルが認識するすべての入力デバイス(ほとんどのマウスやキーボードを含む)に対応しています。
/usr/
ディレクトリー下にあります。/etc/X11/
ディレクトリーには、X クライアントおよびサーバーアプリケーションの設定ファイルが含まれています。これには、X サーバー自体、X ディスプレイマネージャー、その他の多くのベースコンポーネント用の設定ファイルが含まれています。
/etc/fonts/fonts.conf
のままです。フォントの設定および追加の詳細は、「fonts」 を参照してください。
C.2. デスクトップ環境およびウィンドウマネージャー
C.2.1. 同時 GUI セッションの最大数
C.2.2. デスクトップ環境
- GNOME - GTK+ 2 グラフィカルツールキットに基づく Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux のデフォルトデスクトップ環境。
- kde - Qt 4 グラフィカルツールキットに基づく代替デスクトップ環境。
C.2.3. ウィンドウマネージャー
- metacity
- Metacity ウィンドウマネージャーは、GNOME のデフォルトのウィンドウマネージャーです。カスタムテーマをサポートするシンプルで効率的なウィンドウマネージャーです。このウィンドウマネージャーは、GNOME デスクトップをインストールすると、依存関係として自動的にプルされます。
- kwin
- KWin ウィンドウマネージャーは KDE のデフォルトのウィンドウマネージャーです。カスタムテーマをサポートする効率的なウィンドウマネージャーです。このウィンドウマネージャーは、KDE デスクトップのインストール時に自動的に依存関係としてプルされます。
- compiz
- Compiz compositing ウィンドウマネージャーは OpenGL をベースとしており、3D グラフィックハードウェアを使用して、ウィンドウ管理にデスクトップ効果をすばやく作成できます。ワークスペースなどの高度な機能はロード可能なプラグインとして実装されます。このウィンドウマネージャーを実行するには、compiz パッケージをインストールする必要があります。
- mwm
- Motif Window Manager (mwm)は、基本的なスタンドアロンのウィンドウマネージャーです。これはスタンドアロンとして設計されているため、GNOME または KDE と併用しないでください。このウィンドウマネージャーを実行するには、openmotif パッケージをインストールする必要があります。
- twm
- 選択可能なウィンドウマネージャー間で最も基本的なツールセットを提供する minimalist Tab Window Manager (twm)は、スタンドアロンまたはデスクトップ環境で使用できます。このウィンドウマネージャーを実行するには、xorg-x11-twm パッケージをインストールする必要があります。
C.3. X サーバー設定ファイル
/usr/bin/Xorg
です。このファイルを参照するシンボリックリンク X
も提供しています。関連する設定ファイルは、/etc/X11/
ディレクトリーおよび / usr/share/X11/
ディレクトリーに保存されます。
xorg.conf.d
ディレクトリーの設定ファイルには、ベンダーおよびディストリビューションからの事前設定済みの設定が含まれ、これらのファイルは手動で編集しないでください。一方、xorg.conf
ファイルの設定は完全に行われますが、ほとんどのシナリオでは必要ありません。
/etc/X11/xorg.conf
)の設定ファイルは、X Window System の現在のリリースには提供されていません。ファイルを手動で作成して新規ハードウェアを設定したり、複数のビデオカードで環境を設定したり、デバッグを行う場合にも便利です。
/usr/lib/xorg/modules/
(または / usr/lib64/xorg/modules/
)ディレクトリーには、実行時に動的にロードできる X サーバーモジュールが含まれます。デフォルトでは、/usr/lib/xorg/modules/
の一部のモジュールのみが、X サーバーにより自動的に読み込まれます。
xorg.conf
ファイルに設定されている マウス
、kbd
ドライバー、または vmmouse
ドライバーを使用するデバイスは、X サーバーでは無視されます。詳細は、「ServerFlags
セクション」 を参照してください。追加の設定は /etc/X11/xorg.conf.d/
ディレクトリーに提供され、HAL で取得した設定をオーバーライドまたは拡張することができます。
C.3.1. 設定構造
「section-name" 行」
で始まります。ここで、「section-name" はセクションのタイトルであり、EndSection
行で終わります。各セクションには、オプション名と 1 つ以上のオプション値を含む行が含まれます。これらの一部は、二重引用符("
)で囲まれている場合があります。
/etc/X11/xorg.conf
ファイル内の一部のオプションはブール値スイッチを受け入れ、機能をオンまたはオフにします。使用できる値は次のとおりです。
1
、、true
、またはyes
- オプションをオンにします。0
、off
、false
、またはno
- オプションをオフにします。
#
)で始まる行は X サーバーによって読み取られず、人間が判読できるコメントに使用されます。
# This file is autogenerated by system-setup-keyboard. Any # modifications will be lost. Section "InputClass" Identifier "system-setup-keyboard" MatchIsKeyboard "on" Option "XkbModel" "pc105" Option "XkbLayout" "cz,us" # Option "XkbVariant" "(null)" Option "XkbOptions" "terminate:ctrl_alt_bksp,grp:shifts_toggle,grp_led:scroll" EndSection
C.3.2. xorg.conf.d
ディレクトリー
/usr/share/X11/xorg.conf.d/
はベンダーまたはサードパーティーパッケージとは別の設定ファイルを提供します。このディレクトリーのファイルへの変更は、/etc/X11/xorg.conf
ファイルで指定した設定で上書きできます。/etc/X11/xorg.conf.d/
ディレクトリーには、ユーザー固有の設定が保存されます。
.conf
が含まれるファイルは、起動時に X サーバーが解析し、従来の xorg.conf
設定ファイルの一部として処理されます。これらのファイルには 1 つ以上のセクションが含まれる可能性があります。セクションのオプションの説明と設定ファイルの一般的なレイアウトについては、「xorg.conf
ファイル」 または xorg.conf(5)
の man ページを参照してください。X サーバーは基本的に、設定ファイルのコレクションを、最後に xorg.conf
のエントリーを持つ 1 つの大きなファイルとして扱います。カスタムの設定を /etc/xorg.conf
に配置し、ディストリビューションが提供する設定スニペットのディレクトリーを残しておくことを推奨します。
C.3.3. xorg.conf
ファイル
/etc/X11/xorg.conf
ファイルを使用して X の初期設定を保存することができました。X サーバーが管理するモニター、ビデオカード、または他のデバイスで変更が発生した場合は、手動でファイルを編集する必要がありました。Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux では、/etc/X11/xorg.conf
ファイルを手動で作成および編集する必要はほとんどありません。ただし、特に異常なハードウェア構成をトラブルシューティングまたは設定する場合など、利用可能なさまざまなセクションとオプションのパラメーターを理解すると便利です。
/etc/X11/xorg.conf
ファイルに表示される順序で説明されています。X サーバー設定ファイルの詳細は、xorg.conf(5)
man ページを参照してください。このセクションは、一般的な設定シナリオで以下のほとんどの設定オプションが不要であるため、上級ユーザー向けのものです。
C.3.3.1. InputClass
セクション
InputClass
は、ホットプラグされたデバイスを含むデバイスのクラスには適用されません。InputClass
セクションのスコープは指定された一致によって制限されます。入力デバイスに適用するには、以下の例にあるようにすべての一致をデバイスに適用する必要があります。
Section "InputClass" Identifier "touchpad catchall" MatchIsTouchpad "on" Driver "synaptics" EndSection
xorg. conf
.d
ディレクトリーにある場合、システムに存在するすべてのタッチパッドに synaptics
ドライバーが割り当てられます。
xorg.conf.d
の英数字のソートxorg.conf.d
ディレクトリーの設定ファイルの英数字のソートにより、上記の例の Driver
設定は、以前に設定したドライバーオプションを上書きすることに注意してください。より一般的なクラス(以前の)が一覧表示されるはずです。
InputClass
セクションで一般的に使用されます。
MatchIsPointer
、MatchIsKeyboard
、MatchIsTouchpad
、MatchIsTouchscreen
、MatchIsJoystick
- デバイスのタイプを指定するブール値オプション。MatchProduct "product_name"
- このオプションは、デバイスの製品名で product_name サブ文字列が発生した場合に一致します。MatchVendor "vendor_name"
- このオプションは、vendor_name サブ文字列がデバイスのベンダー名で発生する場合に一致します。MatchDevicePath "/path/to/device"
- このオプションは、デバイスパスが「/path/to/device " テンプレート」で指定されたパターンに対応している場合は、任意のデバイスに一致します(例:/dev/input/event*
)。詳細は、man ページの fnmatch(3) を参照してください。MatchTag "tag_pattern"
- このオプションは、HAL 設定バックエンドに割り当てられたタグが 1 つ以上 tag_pattern パターンと一致する場合に一致します。
InputClass
セクションが含まれる可能性があります。これらのセクションはオプションで、自動的に追加されるときに入力デバイスのクラスを設定するために使用されます。入力デバイスは、複数の InputClass
セクションを照合できます。これらのセクションを指定する場合は、各入力クラスは重複が発生した場合に以前の設定を上書きする可能性があるため、一般的な一致を特定の上に配置することが推奨されます。
C.3.3.2. InputDevice
セクション
InputDevice
セクションは、X サーバーの 1 つの入力デバイスを設定します。以前のバージョンでは、システムは通常キーボードに InputDevice
セクションが少なくとも 1 つあり、ほとんどのマウス設定は自動的に検出されていました。
InputDevice
設定が必要で、xorg-x11-drv-* 入力ドライバーパッケージは HAL を使用して自動設定を提供します。キーボードとマウスの両方のデフォルトのドライバーは evdev
です。
InputDevice
セクションを示しています。
Section "InputDevice" Identifier "Keyboard0" Driver "kbd" Option "XkbModel" "pc105" Option "XkbLayout" "us" EndSection
InputDevice
セクションで一般的に使用されます。
identifier
: このInputDevice
セクションの一意の名前を指定します。これは必須エントリーです。driver
: デバイスのデバイスドライバー X を読み込む必要がある名前を指定します。AutoAddDevices
オプションが有効にされている場合(デフォルト設定)、Driver "mouse"
またはDriver "kbd"
のある入力デバイスセクションは無視されます。これは、従来のマウスドライバーとキーボードドライバーと新しいevdev
汎用ドライバーの競合により必要になります。代わりに、サーバーは入力デバイスにバックエンドからの情報を使用します。xorg.conf
のカスタム入力デバイス設定は、バックエンドに移動する必要があります。多くの場合、バックエンドは HAL で、設定場所は/etc/X11/xorg.conf.d
ディレクトリーになります。オプション
: デバイスに必要なオプションを指定します。デバイスの自動検出された値を上書きする場合には、マウスを指定することもできます。通常は、xorg.conf
ファイルにマウスを追加する場合には、以下のオプションが含まれます。protocol
:IMPS/2
などのマウスで使用されるプロトコルを指定します。device
- 物理デバイスの場所を指定します。Emulate3Buttons
: 両方のマウスボタンを同時に押す場合に、ボタンを 3 つのマウスのように動作させるかどうかを指定します。
このセクションの有効なオプションの一覧は、xorg.conf(5)
man ページを参照してください。
C.3.3.3. ServerFlags
セクション
ServerFlags
セクションには、その他のグローバル X サーバーの設定が含まれます。このセクションの設定は、ServerLayout
セクションに配置されているオプションで上書きできます(詳細は 「ServerLayout
セクション」 を参照してください)。
ServerFlags
セクション内の各エントリーは単一行を使用し、オプション
の後に二重引用符("
)で囲まれているオプションで始まります。
ServerFlags
セクションの例です。
Section "ServerFlags" Option "DontZap" "true" EndSection
"DontZap" "boolean"
- < boolean > の値がtrue
に設定されている場合、この設定により Ctrl+Alt+Backspace キーの組み合わせが X サーバーをすぐに終了できなくなります。X キーボード拡張このオプションが有効になっている場合でも、キーの組み合わせは XKB(XKB)マップで設定してから使用する必要があります。マップにキーの組み合わせを追加する方法の 1 つとして、以下のコマンドを実行します。setxkbmap -option "terminate:ctrl_alt_bksp"
"DontZoom" "boolean"
- < boolean > の値がtrue
に設定されている場合、この設定は Ctrl+Alt+Keypad-Plus+Ctrl+Alt+Keypad- キーの組み合わせを使用して、設定されたビデオ解決を循環させます。"AutoAddDevices" "boolean"
- < boolean > の値がfalse
に設定されている場合、サーバーはホットプラグ入力デバイスではなく、xorg.conf
ファイルで設定したデバイスのみに依存します。入力デバイスの詳細は、「InputDevice
セクション」 を参照してください。このオプションはデフォルトで有効にされており、HAL(ハードウェア抽象化レイヤー)はデバイス検出のバックエンドとして使用されます。
C.3.3.4. ServerLayout
セクション
ServerLayout
セクションは、X サーバーが制御する入出力デバイスをバインドします。少なくとも、1 つの入力デバイスと 1 つの出力デバイスを指定する必要があります。デフォルトでは、モニター(出力デバイス)およびキーボード(入力デバイス)が指定されます。
ServerLayout
セクションを示しています。
Section "ServerLayout" Identifier "Default Layout" Screen 0 "Screen0" 0 0 InputDevice "Mouse0" "CorePointer" InputDevice "Keyboard0" "CoreKeyboard" EndSection
ServerLayout
セクションでは、以下のエントリーが使用されます。
identifier
: このServerLayout
セクションの一意の名前を指定します。screen
: X サーバーで使用する画面
セクションの名前を指定します。複数のスクリーン
オプションが存在する可能性があります。以下は、通常のScreen
エントリーの例です。Screen 0 "Screen0" 0 0
この例のScreen
エントリー(0
)の最初の番号は、ビデオカードの最初のモニターコネクターまたは ヘッド が、識別子が「Screen0」の
。Screen
セクションで指定されている設定を使用することを示しています識別子「
を含む Screen セクションの例は、「Screen
0」Screen
セクション」 を参照してください。ビデオカードに複数のヘッドがある場合は、別の番号と異なるScreen
セクション識別子を持つ別のScreen
エントリーが必要です。「Screen0」
の右側にある数字は、画面の左上隅に絶対 X と Y 座標を指定します(デフォルトでは0
)。InputDevice
: X サーバーで使用するInputDevice
セクションの名前を指定します。デフォルトのマウスで、もう 1 つはデフォルトのキーボード用のInputDevice
エントリーが 2 つ以上あることが推奨されます。CorePointer
およびCoreKeyboard
オプションは、これらが主要なマウスとキーボードであることを示しています。AutoAddDevices
オプションが有効になっている場合は、ServerLayout
セクションにこのエントリーを指定する必要はありません。AutoAddDevices
オプションが無効になっていると、マウスとキーボードの両方がデフォルト値で自動検出されます。オプション "option-name"
- セクションの追加パラメーターを指定する任意のエントリー。ここに記載のオプションは、ServerFlags
セクションに記載されているオプションを上書きします。< ;option-name> を、man ページのxorg.conf(5)
のこのセクションに記載されている有効なオプションに置き換えます。
/etc/X11/xorg.conf
ファイルに複数の ServerLayout
セクションを配置することができます。ただし、デフォルトでは、サーバーは最初に発生した最初のサーバーのみを読み取ります。別の ServerLayout
セクションがある場合は、X セッションの開始時にコマンドラインの引数として指定できます( Xorg -layout <layoutname> コマンドと同様 )。
C.3.3.5. Files
セクション
Files
セクションは、フォントのパスなど、X サーバーへの重要なサービスパスを設定します。これらのパスは通常は自動検出されるため、これは任意のセクションです。このセクションを使用して、自動検出した値を上書きできます。
ファイル
セクションを示しています。
Section "Files" RgbPath "/usr/share/X11/rgb.txt" FontPath "unix/:7100" EndSection
Files
セクションで一般的に使用されます。
modulePath
: X サーバーモジュールを格納する代替ディレクトリーを指定する任意のパラメーターです。
C.3.3.6. Monitor
セクション
Monitor
セクションは、システムによって使用されるモニターのタイプを設定します。ほとんどのモニターは自動的に検出されるようになりました。
Monitor
セクションを示しています。
Section "Monitor" Identifier "Monitor0" VendorName "Monitor Vendor" ModelName "DDC Probed Monitor - ViewSonic G773-2" DisplaySize 320 240 HorizSync 30.0 - 70.0 VertRefresh 50.0 - 180.0 EndSection
Monitor
セクションでは、以下のエントリーが使用されます。
identifier
: このMonitor
セクションの一意の名前を指定します。これは必須エントリーです。vendorname
: モニターのベンダーを指定する任意のパラメーター。modelName:
モニターのモデル名を指定する任意のパラメーター。DisplaySize
: モニターの図領域の物理サイズを指定するオプションのパラメーターです。HorizSync
: kHz でモニターと互換性のある水平同期の周波数の範囲を指定します。これらの値は、X サーバーがモニターの組み込みまたは指定のModeline
エントリーの有効性を判断するのに役立ちます。VertRefresh
- kHz で、モニターでサポートされる垂直更新頻度の範囲を指定します。これらの値は、X サーバーがモニターの組み込みまたは指定のModeline
エントリーの有効性を判断するのに役立ちます。modeline: 特定
の解像度でのモニターの追加ビデオモードを指定する任意のパラメーターで、特定の水平同期および垂直更新の解像度がある。Modeline
エントリーの詳細は、xorg.conf(5)
man ページを参照してください。オプション "option-name"
- セクションの追加パラメーターを指定する任意のエントリー。< ;option-name> を、man ページのxorg.conf(5)
のこのセクションに記載されている有効なオプションに置き換えます。
C.3.3.7. デバイス
セクション
Device
セクションには、システムにビデオカードを 1 つ設定します。デバイス
セクションは最小限ですが、マシンにインストールされるビデオカードごとに追加のインスタンスが発生する可能性があります。
Device
セクションを示しています。
Section "Device" Identifier "Videocard0" Driver "mga" VendorName "Videocard vendor" BoardName "Matrox Millennium G200" VideoRam 8192 Option "dpms" EndSection
Device
セクションで一般的に使用されます。
identifier
: このデバイス
セクションの一意の名前を指定します。これは必須エントリーです。Driver
: ビデオカードを使用するために X サーバーが読み込む必要があるドライバーを指定します。ドライバーの一覧は、/usr/share/hwdata/videodrivers
を参照してください。これは、hwdata パッケージでインストールされます。vendorname
- ビデオカードのベンダーを指定する任意のパラメーター。BoardName
: ビデオカードの名前を指定する任意のパラメーター。- video
ram: ビデオ
カードで利用可能な RAM 容量をキロバイト単位で指定するオプションのパラメーターです。この設定は、X サーバーがビデオ RAM の量を検出できるようにプローブできないビデオカードにのみ必要です。 BusID
: ビデオカードのバスの場所を指定するエントリー。ビデオカードが 1 つしかないシステムではBusID
エントリーが任意となり、デフォルトの/etc/X11/xorg.conf
ファイルにない場合があります。ただし、複数のビデオカードが搭載されているシステムでは、BusID
エントリーが必要です。screen
:Device
セクションが設定するビデオカード上のモニターコネクターまたはヘッドを指定する任意のエントリー。このオプションは、複数のヘッドを持つビデオカードにのみ有用です。複数のモニターが同じビデオカード上の異なるヘッドに接続されている場合は、個別のDevice
セクションが存在し、本セクションのそれぞれに異なるScreen
値を指定する必要があります。Screen
エントリーの値は整数である必要があります。ビデオカードの最初のヘッドの値は0
です。それぞれの追加ヘッドの値は、この値を 1 つ増やします。オプション "option-name"
- セクションの追加パラメーターを指定する任意のエントリー。< ;option-name> を、man ページのxorg.conf(5)
のこのセクションに記載されている有効なオプションに置き換えます。より一般的なオプションの 1 つに、「dpms」
(ディスプレイ Power Management Signaling、VESA 標準用)があり、モニター用の「スターバルコンプライアンス」設定を有効にします。
C.3.3.8. Screen
セクション
スクリーン
セクションは、Device
セクションと Monitor
セクションを参照して、1 つのビデオカード(またはビデオカードヘッド)を 1 つのモニターにバインドします。スクリーン
セクションは最小限ですが、マシン上にある各ビデオカードとモニターの組み合わせに追加インスタンスが発生する場合があります。
Screen
セクションを示しています。
Section "Screen" Identifier "Screen0" Device "Videocard0" Monitor "Monitor0" DefaultDepth 16 SubSection "Display" Depth 24 Modes "1280x1024" "1280x960" "1152x864" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 16 Modes "1152x864" "1024x768" "800x600" "640x480" EndSubSection EndSection
Screen
セクションで一般的に使用されます。
identifier
: このスクリーン
セクションに一意の名前を指定します。これは必須エントリーです。device - デバイス
セクションの一意の名前を指定します。これは必須エントリーです。
- monitor:
Monitor
Monitor
セクションがxorg.conf
ファイルに定義されている場合のみ必要です。通常、モニターは自動的に検出されます。 DefaultDepth
: デフォルトの色深度をビット単位で指定します。上記の例では、16
(数千の色を提供する)がデフォルトです。DefaultDepth
エントリーは 1 つだけ許可されますが、Xorg コマンドラインオプション -depth < n > で上書きできます。ここで、< n > は追加の深度を指定します。subsection "Display"
- 特定の色深度で利用可能な画面モードを指定します。Screen
セクションには複数のDisplay
サブセクションを使用できます。これは、画面モードが自動的に検出されるため、完全にオプションになります。通常、このサブセクションは自動検出されたモードを上書きするのに使用します。オプション "option-name"
- セクションの追加パラメーターを指定する任意のエントリー。< ;option-name> を、man ページのxorg.conf(5)
のこのセクションに記載されている有効なオプションに置き換えます。
C.3.3.9. DRI セクション
セクション
は、Direct Rendering Infrastructure (DRI)のパラメーターを指定します。DRI は、3D ソフトウェアアプリケーションが最新のビデオハードウェアに組み込まれた 3D ハードウェアアクセラレーション機能を活用できるようにするインターフェースです。さらに、DRI はビデオカードドライバーでサポートされている場合に、ハードウェアアクセラレーションで 2D パフォーマンスを向上できます。
xorg.conf
ファイルに追加すると、デフォルト値が上書きされます。
DRI
セクションを示しています。
Section "DRI" Group 0 Mode 0666 EndSection
C.4. fonts
Qt 3
または GTK+ 2
のグラフィカルツールキットまたは新しいバージョンを使用してプログラムされるアプリケーションに使用されます。
/etc/fonts/fonts.conf
設定ファイルを使用しますが、これは手動で編集しないでください。
フォント
グループをインストールする必要があります。これは、インストーラーでグループを選択し、インストール後に yum groupinstall fonts コマンドを実行して実行できます。
C.4.1. Fonts の Fontconfig への追加
- 個々のユーザーにフォントを追加するには、新しいフォントをユーザーのホームディレクトリーの
.fonts/
ディレクトリーにコピーします。システム全体でフォントを追加するには、新しいフォントを/usr/share/fonts/
ディレクトリーにコピーします。ユーザーインストールしたデフォルトのフォントを区別するために、local/
や similar などの新しいサブディレクトリーを作成することが推奨されます。 - fc-cache コマンドを root として実行し、フォント情報キャッシュを更新します。
fc-cache <path-to-font-directory>
このコマンドで、< path-to-font-directory > を新しいフォントを含むディレクトリーに置き換えます(/usr/share/fonts/local/
または /home/ <user> /.fonts/
)。
:
/// をnautilus アドレスバーに入力して、そこで新しいフォントファイルをドラッグすることで、フォントを対話的にインストールすることもできます。
C.5. ランレベルおよび X
C.5.1. ランレベル 3
Xorg
)を起動し、X クライアントアプリケーションをこれに接続します。ユーザーがランレベル 3 でシステムにログインしているため、startx はディスプレイマネージャーを起動したり、ユーザーを認証したりしません。ディスプレイマネージャーの詳細は、「ランレベル 5」 を参照してください。
- startx コマンドを実行すると、ユーザーのホームディレクトリーで
.xinitrc
ファイルを検索し、デスクトップ環境と、実行するその他の X クライアントアプリケーションを定義します。.xinitrc
ファイルが存在しない場合は、代わりにシステムのデフォルト/etc/X11/xinit/xinitrc
ファイルを使用します。 - 次に、デフォルトの xinitrc スクリプトは、ユーザーのホームディレクトリー内の
.Xresources
、.Xmodmap
、.Xkbmap
、および/etc/X11/
ディレクトリーのXresources
、Xmodmap
、Xkbmap
などのユーザー定義のファイルおよびデフォルトのシステムファイルを検索します。Xmodmap
ファイルおよびXkbmap
ファイルが存在する場合は、キーボードを設定する xmodmap ユーティリティーにより使用されます。Xresources
ファイルは、特定の設定値をアプリケーションに割り当てるために読み取られます。 - 上記のオプションを設定したら、xinitrc スクリプトは
/etc/X11/xinit/xinitrc.d/
ディレクトリーにあるすべてのスクリプトを実行します。このディレクトリーにある重要なスクリプトの 1 つはxinput.sh
で、デフォルト言語などの設定を行います。 - xinitrc スクリプトは、ユーザーのホームディレクトリーで
.Xclients
の実行を試行し、見つからない場合は/etc/X11/xinit/Xclients
に変更します。Xclients
ファイルの目的は、デスクトップ環境を開始するか、基本ウィンドウマネージャーを起動することです。ユーザーのホームディレクトリーの.Xclients
スクリプトは、.Xclients-default
ファイルでユーザー指定のデスクトップ環境を起動します。ユーザーのホームディレクトリーに.Xclients
が存在しない場合は、標準の/etc/X11/xinit/Xclients
スクリプトは、GNOME を試行して、最初に KDE、その後に twm が続きます。
C.5.2. ランレベル 5
- GDM (GNOME Display Manager): Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux のデフォルトディスプレイマネージャー。GNOME を使用すると、ユーザーは言語の設定、シャットダウン、再起動、またはシステムへのログインを行うことができます。
- KDM: ユーザーがシステムのシャットダウン、再起動、またはログインを可能にする KDE のディスプレイマネージャー。
- XDM( X Window Display Manager): ユーザーがシステムへのログインのみを許可する非常に基本的なディスプレイマネージャー。
/etc/sysconfig/desktop
ファイルを参照して推奨されるディスプレイマネージャーを決定します。このファイルでは、このファイルのオプションの一覧を利用できます。
/usr/share/doc/initscripts-<version-number>/sysconfig.txt
/etc/X11/xdm/Xsetup_0
ファイルを参照してログイン画面を設定します。ユーザーがシステムにログインすると、/etc/X11/xdm/GiveConsole
スクリプトを実行して、コンソールの所有権をユーザーに割り当てます。次に、/etc/X11/xdm/Xsession
スクリプトを実行すると、通常、ランレベル 3 から X を起動し、/etc/X11/xinit/ xinitrc.d/
ディレクトリーでスクリプトを実行する多くのタスクが実行されます。
/etc/X11/xdm/Xsession
スクリプトは、ユーザーのホームディレクトリーの .xsession
ファイルおよび .Xclients
ファイルをチェックして、読み込むデスクトップ環境を決定します。最後の手段として、ランレベル 3 と同じ方法で使用するデスクトップ環境またはウィンドウマネージャーを選択する /etc/X11/xinit/Xclients
ファイルが使用されます。
:0
)で X セッションを終了し、ログアウトすると、/etc/X11/xdm/TakeConsole
スクリプトが実行され、コンソールの所有権を root ユーザーに再割り当てされます。ユーザーがログインした後も実行を継続する元のディスプレイマネージャーが、新しいディスプレイマネージャーを起動して制御します。これにより、X サーバーが再起動され、新しいログインウィンドウが表示され、プロセス全体が再び開始します。
/usr/share/doc/gdm- <version-number> /README
を参照してください。< version-number > は、gdm パッケージのインストールまたは xdm の man ページです。
C.6. リモートでのグラフィカルアプリケーションへのアクセス
- ローカル X サーバーで、別のアプリケーションを SSH セッションから直接起動できます。これには、X11 転送を有効にする必要があります。詳しくは、「X11 転送」 を参照してください。
- VNC を使用してネットワーク上で X セッション全体を実行できます。この方法は、特に Linux 以外のシステムなど、X サーバーなしでワークステーションを使用している場合に役立ちます。詳しくは、15章TigerVNC を参照してください。
C.7. その他のリソース
C.7.1. インストールされているドキュメント
/usr/share/X11/doc/
: X Window System アーキテクチャーに関する詳細情報と、Xorg プロジェクトに関する追加情報を新規ユーザーとして取得する方法が説明されています。/usr/share/doc/gdm- <version-number> /README -
ディスプレイマネージャーによるユーザー認証の制御方法に関する情報が含まれています。- man xorg.conf:
xorg.conf
設定ファイルに関する情報が含まれています。これには、ファイル内のさまざまなセクションの意味と構文が含まれます。 - man Xorg: Xorg ディスプレイサーバーを説明しています。
C.7.2. 便利な Web サイト
- http://www.X.org/: X.Org Foundation のホームページです。Red Hat Enterprise Linuxnbsp;Hat Enterprise Red Hat Enterprise Linuxnbsp;Linux にバンドルされた X Window System のメジャーリリースを生成し、必要なハードウェアを制御し、GUI 環境を提供します。
- http://dri.sourceforge.net/: DRI(Direct Rendering Infrastructure)プロジェクトのホームページです。DRI は、X のコアハードウェア 3D アクセラレーションコンポーネントです。
- http://www.gnome.org/: GNOME プロジェクトのホーム
- http://www.kde.org/: KDE デスクトップ環境のホーム
付録D sysconfig ディレクトリー
/etc/sysconfig/
ディレクトリーにあるファイルおよびディレクトリー、それらの機能、およびそれらのコンテンツの概要を説明します。これらのファイルの多くには非常に特殊な状況やまれな状況でのみ使用されるオプションが多数あるため、この付録の情報は完了することを目的としていません。
/etc/sysconfig/
ディレクトリーの実際の内容は、マシンにインストールされているプログラムによって異なります。設定ファイルが属するパッケージ名を検索するには、シェルプロンプトで以下を入力します。
~]$ yum provides /etc/sysconfig/filename
D.1. /etc/sysconfig/ ディレクトリーのファイル
/etc/sysconfig/
ディレクトリーにあるファイルを説明します。
D.1.1. /etc/sysconfig/arpwatch
/etc/sysconfig/arpwatch
ファイルは、システムの起動時に arpwatch デーモンに引数を渡すために使用されます。デフォルトでは、以下のオプションが含まれます。
-
OPTIONS=value
- arpwatch デーモンに渡す追加のオプション。以下に例を示します。
OPTIONS="-u arpwatch -e root -s 'root (Arpwatch)'"
D.1.2. /etc/sysconfig/authconfig
/etc/sysconfig/authconfig
ファイルは、ホストで使用する認証を設定します。デフォルトでは、以下のオプションが含まれます。
-
USEMKHOMEDIR=boolean
- 初回ログイン時にユーザーのホームディレクトリーを作成(
yes
)または無効(no
)するブール値。以下に例を示します。USEMKHOMEDIR=no
-
USEPAMACCESS=boolean
- PAM 認証を有効(
yes
)または無効(no
)するブール値。以下に例を示します。USEPAMACCESS=no
-
USESSSDAUTH=boolean
- SSSD 認証を有効(
yes
)または無効(no
)するブール値。以下に例を示します。USESSSDAUTH=no
-
USESHADOW=ブール値
- シャドウパスワードを有効(
yes
)または無効(no
)するブール値。以下に例を示します。USESHADOW=yes
-
USEWINBIND=boolean
- ユーザーアカウント設定の Winbind を使用して有効化(
yes
)または無効(no
)するブール値。以下に例を示します。USEWINBIND=no
-
USEDB=boolean
- FAS 認証を有効(
yes
)または無効(no
)するブール値。以下に例を示します。USEDB=no
-
USEFPRINTD=boolean
- フィンガープリント認証を有効(
yes
)または無効(no
)するブール値。以下に例を示します。USEFPRINTD=yes
-
FORCESMARTCARD=boolean
- スマートカード認証を強制するブール値(
yes
)または無効(no
)以下に例を示します。FORCESMARTCARD=no
-
PASSWDALGORITHM=value
- パスワードアルゴリズム。値 は、
bigcrypt
、descrypt
、md5
、sha256
、またはsha512
です。以下に例を示します。PASSWDALGORITHM=sha512
-
USELDAPAUTH=boolean
- LDAP 認証を有効(
yes
)または無効(no
)するブール値。以下に例を示します。USELDAPAUTH=no
-
USELOCAUTHORIZE=boolean
- ローカルユーザーのローカル認可を有効(
yes
)または無効(no
)するブール値。以下に例を示します。USELOCAUTHORIZE=yes
-
USECRACKLIB=ブール値
- CrackLib を使用して有効化(
yes
)または無効(no
)するブール値。以下に例を示します。USECRACKLIB=yes
-
USEWINBINDAUTH=boolean
- Winbind 認証を有効(
yes
)または無効(no
)するブール値。以下に例を示します。USEWINBINDAUTH=no
-
USESMARTCARD=boolean
- スマートカード認証を有効(
yes
)または無効(no
)するブール値。以下に例を示します。USESMARTCARD=no
-
USELDAP=boolean
- ユーザーアカウント設定に LDAP を使用して有効化(
yes
)または無効(no
)するブール値。以下に例を示します。USELDAP=no
-
USENIS=ブール値
- ユーザーアカウント設定に NIS を使用して有効化(
yes
)または無効(no
)するブール値。以下に例を示します。USENIS=no
-
USEKERBEROS=ブール値
- Kerberos 認証を有効(
yes
)または無効(no
)するブール値。以下に例を示します。USEKERBEROS=no
-
USESYSNETAUTH=boolean
- ネットワークサービスでシステムアカウントを認証するブール値(
yes
)または無効(no
)以下に例を示します。USESYSNETAUTH=no
-
USESMBAUTH=ブール値
- SMB 認証を有効(
yes
)または無効(no
)するブール値。以下に例を示します。USESMBAUTH=no
-
USESSSD=ブール値
- SSSD を使用してユーザー情報を取得するブール値(
yes
)または無効(no
)以下に例を示します。USESSSD=no
-
USEHESIOD=boolean
- Hesoid name サービスを使用して有効化(
yes
)または無効(no
)のブール値。以下に例を示します。USEHESIOD=no
D.1.3. /etc/sysconfig/autofs
/etc/sysconfig/autofs
ファイルは、デバイスの自動マウント用のカスタムオプションを定義します。このファイルは、自動マウントデーモンの操作を制御します。これは、ファイルシステムを使用する際に自動的にマウントして、アクティブでないとアンマウントします。ファイルシステムには、ネットワークファイルシステム、CD-ROM ドライブ、ディスクチップなどのメディアを含めることができます。
-
MASTER_MAP_NAME=value
- マスターマップのデフォルト名。以下に例を示します。
MASTER_MAP_NAME="auto.master"
-
TIMEOUT=value
- デフォルトのマウントタイムアウトです。以下に例を示します。
TIMEOUT=300
-
NEGATIVE_TIMEOUT=value
- マウント試行に失敗した場合のデフォルトの負のタイムアウトです。以下に例を示します。
NEGATIVE_TIMEOUT=60
-
MOUNT_WAIT=value
- マウント からの応答を待つ時間。以下に例を示します。
MOUNT_WAIT=-1
-
UMOUNT_WAIT=value
- umount からの応答を待つ時間。以下に例を示します。
UMOUNT_WAIT=12
-
BROWSE_MODE=boolean
- マップを参照するブール値(
yes
)または disable(no
)以下に例を示します。BROWSE_MODE="no"
-
MOUNT_NFS_DEFAULT_PROTOCOL=value
- mount.nfs が使用するデフォルトのプロトコル。以下に例を示します。
MOUNT_NFS_DEFAULT_PROTOCOL=4
-
APPEND_OPTIONS=boolean
- 有効にするブール値(
yes
)または disable(no
)は、グローバルオプションを置き換える代わりに追加します。以下に例を示します。APPEND_OPTIONS="yes"
-
LOGGING=value
- デフォルトのログレベル。値 は
none
、verbose
、またはdebug
のいずれかである必要があります。以下に例を示します。LOGGING="none"
-
LDAP_URI=value
プロトコル:// サーバーの形式におけるサーバー
URI のスペース区切りリスト。以下に例を示します。LDAP_URI="ldaps://ldap.example.com/"
-
LDAP_TIMEOUT=value
- 同期 API 呼び出しのタイムアウト。以下に例を示します。
LDAP_TIMEOUT=-1
-
LDAP_NETWORK_TIMEOUT=value
- ネットワーク応答のタイムアウト。以下に例を示します。
LDAP_NETWORK_TIMEOUT=8
-
SEARCH_BASE=value
- マップ検索のベース識別名(DN)です。以下に例を示します。
SEARCH_BASE=""
-
AUTH_CONF_FILE=value
- SASL 認証設定ファイルのデフォルトの場所。以下に例を示します。
AUTH_CONF_FILE="/etc/autofs_ldap_auth.conf"
-
MAP_HASH_TABLE_SIZE=value
- マップキャッシュのハッシュテーブルサイズ。以下に例を示します。
MAP_HASH_TABLE_SIZE=1024
-
USE_MISC_DEVICE=boolean
- autofs のその他のデバイスを使用して有効化(
yes
)または無効(no
)するブール値。以下に例を示します。USE_MISC_DEVICE="yes"
-
OPTIONS=value
- LDAP デーモンに渡される追加のオプション。以下に例を示します。
OPTIONS=""
D.1.4. /etc/sysconfig/clock
/etc/sysconfig/clock
ファイルは、システムクロックから読み込む値の解釈を制御します。これは Date/Time Properties ツールで使用するため、手動で編集しないでください。デフォルトでは、以下のオプションが含まれます。
-
ZONE=value
/usr/share/zoneinfo
(/etc/localtime
はコピー)の下にあるタイムゾーンファイル。以下に例を示します。ZONE="Europe/Prague"
D.1.5. /etc/sysconfig/dhcpd
/etc/sysconfig/dhcpd
ファイルを使用して、システムの起動時に dhcpd デーモンに引数を渡します。デフォルトでは、以下のオプションが含まれます。
-
DHCPDARGS=value
- dhcpd デーモンに渡す追加のオプション。以下に例を示します。
DHCPDARGS=
D.1.6. /etc/sysconfig/firstboot
/etc/sysconfig/firstboot
ファイルは、firstboot ユーティリティーを実行するかどうかを定義します。デフォルトでは、以下のオプションが含まれます。
-
RUN_FIRSTBOOT=boolean
- firstboot プログラムを実行するブール値(
YES
)または無効(NO
)以下に例を示します。RUN_FIRSTBOOT=NO
/etc/rc.d/init.d/firstboot
スクリプトを呼び出します。これは、/etc/sysconfig/firstboot
ファイルを検索します。このファイルに RUN_FIRSTBOOT=NO
オプションが含まれていない場合は、firstboot プログラムが実行され、システムの初期設定でユーザーが提示されます。
YES
に変更し、シェルプロンプトで以下を入力します。
~]# chkconfig firstboot on
D.1.7. /etc/sysconfig/i18n
/etc/sysconfig/i18n
設定ファイルは、デフォルトの言語、サポートされる言語、およびデフォルトのシステムフォントを定義します。デフォルトでは、以下のオプションが含まれます。
-
pidgin=value
- デフォルトの言語。以下に例を示します。
LANG="en_US.UTF-8"
-
SUPPORTED=値
- サポートされる言語のコロン区切りリスト。以下に例を示します。
SUPPORTED="en_US.UTF-8:en_US:en"
-
SYSFONT=value
- デフォルトのシステムフォントです。以下に例を示します。
SYSFONT="latarcyrheb-sun16"
D.1.8. /etc/sysconfig/init
/etc/sysconfig/init
ファイルは、システムの起動プロセス中にどのように表示され、機能するかを制御します。デフォルトでは、以下のオプションが含まれます。
-
BOOTUP=値
- 起動スタイル。値は色(標準の
色
ブート表示)、verbose
(より多くの情報を提供する古いスタイル表示)、または ANSI フォーマットなしの新しいスタイルの表示にはその他のものである必要があります。以下に例を示します。BOOTUP=color
-
RES_COL=value
- ステータスラベルが開始される列の数。以下に例を示します。
RES_COL=60
-
MOVE_TO_COL=value
- カーソルを
RES_COL
で指定された列に移動するターミナルシーケンス(上記を参照)。以下に例を示します。MOVE_TO_COL="echo -en \\033[${RES_COL}G"
-
SETCOLOR_SUCCESS=value
- 成功の色を設定するターミナルシーケンス。以下に例を示します。
SETCOLOR_SUCCESS="echo -en \\033[0;32m"
-
SETCOLOR_FAILURE=value
- 失敗の色を設定するターミナルシーケンス。以下に例を示します。
SETCOLOR_FAILURE="echo -en \\033[0;31m"
-
SETCOLOR_WARNING=value
- 警告の色を設定するターミナルシーケンス。以下に例を示します。
SETCOLOR_WARNING="echo -en \\033[0;33m"
-
SETCOLOR_NORMAL=value
- デフォルトの色を設定するターミナルシーケンス。以下に例を示します。
SETCOLOR_NORMAL="echo -en \\033[0;39m"
-
LOGLEVEL=value
- コンソールの初期のロギングレベル。値 は
1
(カーネルパニックのみ)から8
(デバッグ情報を含むすべて)の範囲にある必要があります。以下に例を示します。LOGLEVEL=3
-
PROMPT=boolean
- ホットキーの起動を有効(
yes
)または無効(no
)するブール値。以下に例を示します。PROMPT=yes
-
AUTOSWAP=boolean
- スワップ署名のあるデバイスを有効(
yes
)または無効(no
)するブール値。以下に例を示します。AUTOSWAP=no
-
ACTIVE_CONSOLES=value
- アクティブなコンソールの一覧。以下に例を示します。
ACTIVE_CONSOLES=/dev/tty[1-6]
-
SINGLE=value
- シングルユーザーモードのタイプ。値 は
/sbin/sulogin
(ログインするパスワードの入力を求めるプロンプトが出されます)または/sbin/sushell
(ユーザーを直接ログイン)のいずれかにする必要があります。以下に例を示します。SINGLE=/sbin/sushell
D.1.9. /etc/sysconfig/ip6tables-config
/etc/sysconfig/ip6tables-config
ファイルには、システムの起動時に IPv6 パケットフィルタリングを設定する、または ip6tables サービスが開始されるたびに、カーネルが使用する情報を保存します。ip6tables ルールに精通していない限り、変更しないでください。デフォルトでは、以下のオプションが含まれます。
-
IP6TABLES_MODULES=value
- ファイアウォールルールの適用後に読み込まれるヘルパーのスペース区切りリスト。以下に例を示します。
IP6TABLES_MODULES="ip_nat_ftp ip_nat_irc"
-
IP6TABLES_MODULES_UNLOAD=boolean
- ファイアウォールが停止または再起動時にアンロードされる(
yes
)モジュールまたは無効化(no
)モジュールのアンロードを行うブール値。以下に例を示します。IP6TABLES_MODULES_UNLOAD="yes"
-
IP6TABLES_SAVE_ON_STOP=boolean
- ファイアウォールが停止したとき
に
、現在のファイアウォールルールを有効化または無効化(no
)するブール値。以下に例を示します。IP6TABLES_SAVE_ON_STOP="no"
-
IP6TABLES_SAVE_ON_RESTART=boolean
- ファイアウォールが再起動すると
、
現在のファイアウォールルールを有効化または無効化(no
)するブール値。以下に例を示します。IP6TABLES_SAVE_ON_RESTART="no"
-
IP6TABLES_SAVE_COUNTER=boolean
- ルールカウンターとチェーンカウンターを保存するブール値(
yes
)または無効(no
)以下に例を示します。IP6TABLES_SAVE_COUNTER="no"
-
IP6TABLES_STATUS_NUMERIC=boolean
- ステータス出力の IP アドレスおよびポート番号を有効化または無効化(
no
)するブール値。以下に例を示します。
IP6TABLES_STATUS_NUMERIC="yes"
-
IP6TABLES_STATUS_VERBOSE=boolean
- ステータスの出力でパケット数およびバイト数に関する情報を出力するブール値(
yes
)または無効(no
)以下に例を示します。IP6TABLES_STATUS_VERBOSE="no"
-
IP6TABLES_STATUS_LINENUMBERS=boolean
- ステータス出力の行番号を表示(
yes
)または無効(no
)するブール値。以下に例を示します。IP6TABLES_STATUS_LINENUMBERS="yes"
~]# service ip6tables save
/etc/sysconfig/ip6tables
に追加されます。このファイルが存在しても、それに保存されているファイアウォールルールは、システムの再起動やサービスの再起動で維持されます。
D.1.10. /etc/sysconfig/kernel
/etc/sysconfig/kernel
設定ファイルは、以下の 2 つのオプションを使用して、システムの起動時にカーネルの選択を制御します。
UPDATEDEFAULT=yes
- このオプションでは、ブートエントリーの選択で、新たにインストールしたカーネルがデフォルトになります。
DEFAULTKERNEL=kernel
- このオプションは、デフォルトとして使用するパッケージタイプを指定します。
D.1.10.1. 古いカーネルバージョンをデフォルトとして維持
- 以下のように /etc/sysconfig/kernel の UPDATEDEFAULT オプションをコメントアウトします。
# UPDATEDEFAULT=yes
D.1.10.2. カーネルデバッガーをデフォルトカーネルとして設定
- 以下のように /etc/sysconfig/kernel 設定ファイルを編集します。
DEFAULTKERNEL=kernel-debug
D.1.11. /etc/sysconfig/keyboard
/etc/sysconfig/keyboard
ファイルは、キーボードの動作を制御します。デフォルトでは、以下のオプションが含まれます。
-
KEYTABLE=value
- キーテーブルファイルの名前。キーテーブルとして使用できるファイルは
/lib/kbd/keymaps/i386/
ディレクトリーで開始され、そこから異なるキーボードレイアウトにブランチされます
。KEYTABLE
設定に一致する最初のファイル名が使用されます。以下に例を示します。KEYTABLE="us"
-
MODEL=value
- キーボードモデル。以下に例を示します。
MODEL="pc105+inet"
-
LAYOUT=value
- キーボードレイアウト。以下に例を示します。
LAYOUT="us"
-
KEYBOARDTYPE=value
- キーボードタイプ。使用できる値は
pc
(PS/2 キーボード)またはsun
(Sun キーボード)です。以下に例を示します。KEYBOARDTYPE="pc"
D.1.12. /etc/sysconfig/ldap
/etc/sysconfig/ldap
ファイルは、LDAP サーバーの基本設定を保持します。デフォルトでは、以下のオプションが含まれます。
-
SLAPD_OPTIONS=value
- slapd デーモンに渡される追加のオプション。以下に例を示します。
SLAPD_OPTIONS="-4"
-
SLURPD_OPTIONS=value
- slurpd デーモンに渡す追加のオプション。以下に例を示します。
SLURPD_OPTIONS=""
-
SLAPD_LDAP=boolean
- LDAP over TCP(
ldap:///
)を使用して有効化(yes
)または無効(no
)するブール値。以下に例を示します。SLAPD_LDAP="yes"
-
SLAPD_LDAPI=boolean
- LDAP over IPC(ldapi:/
/
/)を使用して有効または無効にするブール値(つまりldapi:///)
。以下に例を示します。
SLAPD_LDAPI="no"
-
SLAPD_LDAPS=boolean
- LDAP over TLS(ldaps:/
/
/)を使用して有効または無効にするブール値(つまりldaps:///)
。以下に例を示します。
SLAPD_LDAPS="no"
-
SLAPD_URLS=value
- URL のスペース区切りの一覧。以下に例を示します。
SLAPD_URLS="ldapi:///var/lib/ldap_root/ldapi ldapi:/// ldaps:///"
-
SLAPD_SHUTDOWN_TIMEOUT=value
- slapd がシャットダウンするのを待つ時間。以下に例を示します。
SLAPD_SHUTDOWN_TIMEOUT=3
-
SLAPD_ULIMIT_SETTINGS=value
- slapd デーモンを起動する前に ulimit に渡されるパラメーター。以下に例を示します。
SLAPD_ULIMIT_SETTINGS=""
D.1.13. /etc/sysconfig/named
/etc/sysconfig/named
ファイルは、システムの起動時に名前 付き デーモンに引数を渡すために使用されます。デフォルトでは、以下のオプションが含まれます。
-
ROOTDIR=value
- 名前付き デーモンが実行される chroot 環境。値 は完全なディレクトリーパスでなければなりません。以下に例を示します。
ROOTDIR="/var/named/chroot"
chroot 環境を先に設定する必要があります(詳細は、シェルプロンプトで info chroot と入力します)。 -
OPTIONS=value
- 名前付き に渡す追加のオプション。以下に例を示します。
OPTIONS="-6"
-t
オプションは使用しないでください。代わりに、上記のようにROOTDIR
を使用します。 -
KEYTAB_FILE=value
- キータブファイル名。以下に例を示します。
KEYTAB_FILE="/etc/named.keytab"
D.1.14. /etc/sysconfig/network
/etc/sysconfig/network
ファイルは、必要なネットワーク設定に関する情報を指定するために使用されます。デフォルトでは、以下のオプションが含まれます。
-
network networkING=boolean
- ネットワークを有効化または無効化するブール値(
yes
)または無効(no
)です。以下に例を示します。NETWORKING=yes
-
HOSTNAME=value
- マシンのホスト名。以下に例を示します。
HOSTNAME=penguin.example.com
-
GATEWAY=値
- ネットワークのゲートウェイの IP アドレス。以下に例を示します。
GATEWAY=192.168.1.1
これは、インターフェースのifcfg
ファイルにGATEWAY
ディレクティブがない場合に、デフォルトゲートウェイとして使用されます。 -
NM_BOND_VLAN_ENABLED=boolean
- ボンディング、ブリッジ、VLAN インターフェースの検出および管理を NetworkManager アプリケーションが許可(
yes
)または禁止(no
)するブール値。以下に例を示します。NM_BOND_VLAN_ENABLED=yes
NM_CONTROLLED
ディレクティブは、このオプションによって異なります。
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
D.1.15. /etc/sysconfig/ntpd
/etc/sysconfig/ntpd
ファイルは、システムの起動時に ntpd デーモンに引数を渡すために使用されます。デフォルトでは、以下のオプションが含まれます。
-
OPTIONS=value
- ntpd に渡される追加のオプション。以下に例を示します。
OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -g"
D.1.16. /etc/sysconfig/quagga
/etc/sysconfig/quagga
ファイルは、Quagga デーモンの基本設定を保持します。デフォルトでは、以下のオプションが含まれます。
-
QCONFDIR=value
- Quagga デーモンの設定ファイルが含まれるディレクトリー。以下に例を示します。
QCONFDIR="/etc/quagga"
-
BGPD_OPTS=value
- bgpd デーモンに渡すその他のオプション。以下に例を示します。
BGPD_OPTS="-A 127.0.0.1 -f ${QCONFDIR}/bgpd.conf"
-
OSPF6D_OPTS=value
- ospf6d デーモンに渡される追加のオプション。以下に例を示します。
OSPF6D_OPTS="-A ::1 -f ${QCONFDIR}/ospf6d.conf"
-
OSPFD_OPTS=value
- ospfd デーモンに渡される追加のオプション。以下に例を示します。
OSPFD_OPTS="-A 127.0.0.1 -f ${QCONFDIR}/ospfd.conf"
-
RIPD_OPTS=value
- ripd デーモンに渡す追加のオプション。以下に例を示します。
RIPD_OPTS="-A 127.0.0.1 -f ${QCONFDIR}/ripd.conf"
-
RIPNGD_OPTS=value
- ripngd デーモンに渡される追加のオプション。以下に例を示します。
RIPNGD_OPTS="-A ::1 -f ${QCONFDIR}/ripngd.conf"
-
ZEBRA_OPTS=value
- zebra デーモンに渡される追加オプション。以下に例を示します。
ZEBRA_OPTS="-A 127.0.0.1 -f ${QCONFDIR}/zebra.conf"
-
ISISD_OPTS=value
- isisd デーモンに渡される追加オプション。以下に例を示します。
ISISD_OPTS="-A ::1 -f ${QCONFDIR}/isisd.conf"
-
WATCH_OPTS=value
- watchquagga デーモンに渡される追加オプション。以下に例を示します。
WATCH_OPTS="-Az -b_ -r/sbin/service_%s_restart -s/sbin/service_%s_start -k/sbin/service_%s_stop"
-
WATCH_DAEMONS=value
- 監視されるデーモンのスペース区切りの一覧。以下に例を示します。
WATCH_DAEMONS="zebra bgpd ospfd ospf6d ripd ripngd"
D.1.17. /etc/sysconfig/radvd
/etc/sysconfig/radvd
ファイルを使用して、システムの起動時に radvd デーモンに引数を渡します。デフォルトでは、以下のオプションが含まれます。
-
OPTIONS=value
- radvd デーモンに渡す追加のオプション。以下に例を示します。
OPTIONS="-u radvd"
D.1.18. /etc/sysconfig/samba
/etc/sysconfig/samba
ファイルを使用して、システムの起動時に Samba デーモンに引数を渡します。デフォルトでは、以下のオプションが含まれます。
-
SMBDOPTIONS=value
- smbd に渡される追加のオプション。以下に例を示します。
SMBDOPTIONS="-D"
-
NMBDOPTIONS=値
- nmbd に渡される追加のオプション。以下に例を示します。
NMBDOPTIONS="-D"
-
WINBINDOPTIONS=値
- winbindd に渡す追加のオプション。以下に例を示します。
WINBINDOPTIONS=""
D.1.19. /etc/sysconfig/saslauthd
/etc/sysconfig/saslauthd
ファイルは、SASL 認証サーバーである saslauthd
に渡される引数を制御するために使用されます。デフォルトでは、以下のオプションが含まれます。
- SOCKETDIR=value
saslauthd
's listening socket のディレクトリー。以下に例を示します。SOCKETDIR=/var/run/saslauthd
- MECH=value
- ユーザーパスワードの検証に使用する認証メカニズム。以下に例を示します。
MECH=pam
- DAEMONOPTS=value
saslauthd
サービスを起動するために/etc/rc.d/init.d/saslauthd
init スクリプトによって使用されるdaemon()
関数に渡されるオプション。以下に例を示します。DAEMONOPTS="--user saslauth"
- FLAGS=value
saslauthd
サービスに渡される追加のオプション。以下に例を示します。FLAGS=
D.1.20. /etc/sysconfig/selinux
/etc/sysconfig/selinux
ファイルには、SELinux の基本設定オプションが含まれます。これは /etc/selinux/config
へのシンボリックリンクで、デフォルトでは以下のオプションが含まれます。
-
SELINUX=value
- セキュリティーポリシー。この 値 には、
Enforcing
(セキュリティーポリシーは常に強制される)、Permissive
(ポリシーの強制、適切な警告が表示される)、またはdisabled
(ポリシーが使用されない)のいずれかを使用できます。以下に例を示します。SELINUX=enforcing
-
SELINUXTYPE=値
- 保護タイプ。この 値 は、
ターゲット(対象
のプロセスが保護されています)またはml(複数レベルの
セキュリティー保護)のいずれかにすることができます。以下に例を示します。SELINUXTYPE=targeted
D.1.21. /etc/sysconfig/sendmail
/etc/sysconfig/sendmail
は、Sendmail アプリケーションのデフォルト値を設定するのに使用されます。デフォルトでは、以下の値が含まれます。
-
DAEMON=boolean
- sendmail をデーモンとして実行させるブール値(
yes
)または無効(no
)以下に例を示します。DAEMON=yes
-
QUEUE=value
- メッセージを処理する間隔。以下に例を示します。
QUEUE=1h
D.1.22. /etc/sysconfig/spamassassin
/etc/sysconfig/spamassassin
ファイルは、システムの起動時に、pam d デーモン(デーモン化されたバージョンの Spamassassin)に引数を渡すために使用されます。デフォルトでは、以下のオプションが含まれます。
-
SPAMDOPTIONS=value
- spamd デーモンに渡される追加のオプション。以下に例を示します。
SPAMDOPTIONS="-d -c -m5 -H"
D.1.23. /etc/sysconfig/squid
/etc/sysconfig/squid
ファイルを使用して、システムの起動時に squid デーモンに引数を渡します。デフォルトでは、以下のオプションが含まれます。
-
SQUID_OPTS=value
- squid デーモンに渡す追加のオプション。以下に例を示します。
SQUID_OPTS=""
-
SQUID_SHUTDOWN_TIMEOUT=value
- squid デーモンがシャットダウンするのを待つ時間。以下に例を示します。
SQUID_SHUTDOWN_TIMEOUT=100
-
SQUID_CONF=value
- デフォルトの設定ファイルです。以下に例を示します。
SQUID_CONF="/etc/squid/squid.conf"
D.1.24. /etc/sysconfig/system-config-users
/etc/sysconfig/system-config-users
ファイルは User Manager ユーティリティーの設定ファイルであるため、手動で編集しないでください。デフォルトでは、以下のオプションが含まれます。
-
FILTER=ブール値
- システムユーザーの有効(
true
)または無効(false
)のフィルターを有効にするブール値。以下に例を示します。FILTER=true
-
ASSIGN_HIGHEST_UID=boolean
- 新しく追加したユーザーに、利用可能な UID の最大数を割り当てるブール値(
true
)または無効(false
)です。以下に例を示します。ASSIGN_HIGHEST_UID=true
-
ASSIGN_HIGHEST_GID=boolean
- 新しく追加したグループに利用可能な最大 GID を割り当てる有効化(
true
)または無効(false
)のブール値。以下に例を示します。ASSIGN_HIGHEST_GID=true
-
PREFER_SAME_UID_GID=boolean
- 可能な場合は、新たに追加したユーザーに同じ UID と GID を使用して有効化(
true
)または無効(false
)するブール値。以下に例を示します。PREFER_SAME_UID_GID=true
D.1.25. /etc/sysconfig/vncservers
/etc/sysconfig/vncservers
ファイルは、仮想ネットワークコンピューティング (VNC)サーバーの起動方法を設定します。デフォルトでは、以下のオプションが含まれます。
-
VNCSERVERS=value
- スペースで区切られた
表示:ユーザー名
のペア以下に例を示します。VNCSERVERS="2:myusername"
-
VNCSERVERARGS[display]=value
- 指定された ディスプレイ で実行している VNC サーバーに渡される追加の引数。以下に例を示します。
VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -localhost"
D.1.26. /etc/sysconfig/xinetd
/etc/sysconfig/xinetd
ファイルは、システムの起動時に xinetd デーモンに引数を渡すために使用されます。デフォルトでは、以下のオプションが含まれます。
-
EXTRAOPTIONS=値
- xinetd に渡される追加オプション。以下に例を示します。
EXTRAOPTIONS=""
-
XINETD_LANG=value
- xinetd が開始するすべてのサービスに渡すロケール情報。xinetd 環境からロケール情報を削除するには、空の文字列(
""
)またはnone
を使用できます。以下に例を示します。XINETD_LANG="en_US"
D.2. /etc/sysconfig/ ディレクトリーのディレクトリー
/etc/sysconfig/
にあります。
-
/etc/sysconfig/cbq/
-
/etc/sysconfig/networking/
- このディレクトリーは、非推奨になった Network Administration Tool (system-config-network)により使用され、その内容は手動で編集しないでください。グラフィカル設定ツールを使用したネットワークインターフェースの設定に関する詳細は、10章NetworkManager を参照してください。
-
/etc/sysconfig/network-scripts/
eth0
イーサネットインターフェースのifcfg-eth0
など、設定済みの各ネットワークインターフェースのネットワーク設定ファイル。- ifup や ifdown などのネットワークインターフェースの稼働/ダウンに使用されるスクリプト。
- ifup-isdn や ifdown-isdn など、ISDN インターフェースを稼働/ダウンさせるのに使用するスクリプト。
- 直接編集すべきでないさまざまな共有ネットワーク機能スクリプト。
/etc/sysconfig/network-scripts/
ディレクトリーの詳細は、11章Network Interfaces を参照してください。-
/etc/sysconfig/rhn/
- このディレクトリーには、Red Hat Network の設定ファイルと GPG キーが含まれます。このディレクトリー内のファイルは手動で編集する必要はありません。Red Hat Network の詳細は、Red Hat Network の Web サイト( https://rhn.redhat.com/ )を参照してください。
D.3. その他のリソース
/etc/sysconfig/
ディレクトリーのファイルの概要としてのみ説明します。以下のソースにはより包括的な情報が記載されています。
D.3.1. インストールされているドキュメント
-
/usr/share/doc/initscripts-version/sysconfig.txt
/etc/sysconfig/
ディレクトリーにあるファイルのさらに権威一覧と、それらで利用できる設定オプション。
付録E proc ファイルシステム
/proc/
ディレクトリー( proc
ファイルシステムとも呼ばれます)には、カーネルの現在の状態を表す特殊なファイルの階層が含まれており、アプリケーションとユーザーがシステムのカーネルビューにピア接続できるようにします。
/proc/
ディレクトリーには、システムハードウェアと実行中のプロセスの詳細情報が記載されています。さらに、/proc/
内のファイルの一部は、ユーザーおよびアプリケーションが設定変更をカーネルと通信できるように操作できます。
/proc/ide/
ディレクトリーおよび /proc/pci/
ディレクトリーが廃止されました。/proc/ide/ ファイルシステムは sysfs のファイルに置き換えられました。PCI デバイスに関する情報を取得するには、代わりに lspci を使用してください。sysfs または lspci の詳細は、それぞれの man ページを参照してください。
E.1. 仮想ファイルシステム
/proc/
ディレクトリーには、仮想 ファイル と呼ばれる別のタイプのファイルが含まれています。したがって、/proc/
は多くの場合、仮想ファイルシステム と呼ばれます。
/proc/interrupts
、/proc/meminfo
、/proc/mounts
、および /proc/partitions
などの仮想ファイルは、システムのハードウェアの最新の状態を保ちます。/proc/filesystems
ファイルや /proc/sys/
ディレクトリーは、システム設定情報とインターフェースを提供します。
E.1.1. 仮想ファイルの表示
/proc/
ファイル内のほとんどのファイルは、テキストファイルと同様に動作し、有用なシステムおよびハードウェアデータを人間が判読できるテキスト形式で保存します。そのため、cat、より 、以下を使用してそれらを表示できます。たとえば、システムの CPU に関する情報を表示するには、cat /proc/cpuinfo を実行します。これにより、以下のような出力が返されます。
processor : 0 vendor_id : AuthenticAMD cpu family : 5 model : 9 model name : AMD-K6(tm) 3D+ Processor stepping : 1 cpu MHz : 400.919 cache size : 256 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 1 wp : yes flags : fpu vme de pse tsc msr mce cx8 pge mmx syscall 3dnow k6_mtrr bogomips : 799.53
/proc/
ディレクトリーにある仮想ファイルの一部は、root ユーザーのみが読み取りできます。
E.1.2. 仮想ファイルの変更
/proc/
ディレクトリー内のほとんどの仮想ファイルは読み取り専用です。ただし、カーネルの設定の調整にも使用できます。これは特に /proc/sys/
サブディレクトリー内のファイルに該当します。
0
(off または false)または 1
(on または true)を返します。0
は、カーネルがネットワークパケットを転送していないことを示します。パケット転送を有効にするには、echo 1 > /proc/sys/net/ipv4/ip_forward を実行します。
/proc/sys/
サブディレクトリーの設定を変更するのに使用される別のコマンドは、/sbin/sysctl です。このコマンドについての詳しい情報は、を参照してください。 「sysctl コマンドの使用」
/proc/sys/
サブディレクトリーで利用可能なカーネル設定ファイルの一覧は、「/proc/sys/」 を参照してください。
E.2. proc
ファイルシステム内のトップレベルのファイル
/proc/
ディレクトリーの最上位のより有用な仮想ファイルの一覧です。
E.2.1. /proc/buddyinfo
/proc/buddyinfo
ファイルは、主にメモリーの断片化問題の診断に使用されます。この出力は、使用するメモリーレイアウトによって異なります。これはアーキテクチャー固有のものです。32 ビットシステムの例を以下に示します。
Node 0, zone DMA 90 6 2 1 1 ... Node 0, zone Normal 1650 310 5 0 0 ... Node 0, zone HighMem 2 0 0 1 1 ...
DMA
行は、システムの最初の 16 MB のメモリーを参照し、HighMem
行はシステムの 896 MB を超えるすべてのメモリーを参照し、Normal
行はメモリーを参照します。
Node 0, zone DMA 0 3 1 2 4 3 1 2 3 3 1 Node 0, zone DMA32 295 25850 7065 1645 835 220 78 6 0 1 0 Node 0, zone Normal 3824 3359 736 159 31 3 1 1 1 1 0
DMA
行は、システムの最初の 16 MB のメモリーを参照します。DMA32
行は、4 GB を超えるメモリーに対応できないデバイスに割り当てられるすべてのメモリーを参照します。また、Normal
行は、システム上に 4 GB を超えるすべてのメモリーが含まれます。DMA32
E.2.2. /proc/cmdline
/proc/cmdline
ファイルのサンプルは以下のようになります。
ro root=/dev/VolGroup00/LogVol00 rhgb quiet 3
(ro)
)にある読み取り専用(LogVol00
で署名)にマウントされていることを示しています。/dev/VolGroup00
LogVol00
は、LVM 以外のシステム(論理ボリューム管理)のディスクパーティションと同等です。/dev/VolGroup00
は、/dev/hda1
の概念と同様ですが、はるかに拡張可能です。
rhgb
は rhgb
パッケージがインストールされ、グラフィカルブートがサポートされていることを伝えます。ここでは、/etc/inittab
に id:5:initdefault: に設定されたデフォルト のランレベルが表示されます。
quiet
は、すべての詳細なカーネルメッセージが起動時に抑制されていることを示します。
E.2.3. /proc/cpuinfo
/proc/cpuinfo
の典型的な出力の例です。
processor : 0 vendor_id : GenuineIntel cpu family : 15 model : 2 model name : Intel(R) Xeon(TM) CPU 2.40GHz stepping : 7 cpu MHz : 2392.371 cache size : 512 KB physical id : 0 siblings : 2 runqueue : 0 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm bogomips : 4771.02
processor
- 各プロセッサーに識別番号を提供します。プロセッサーが 1 つあるシステムでは、0
のみが存在します。cpu family
- 権威的に、システム内のプロセッサーの種類を特定します。Intel ベースのシステムの場合は、「86」の前に数字を配置して値を決定します。これは、586、486、386 などの古いシステムのアーキテクチャーを特定しようとする場合に役立ちます。これらの特定のアーキテクチャーごとに RPM パッケージがコンパイルされているため、この値は、インストールするパッケージを判別するのに役立ちます。model name
- プロセッサーの共通名(プロジェクト名を含む)を表示します。cpu MHz
- プロセッサーから 10 進数の間の正確な速度を megahertz に示します。cache size
- プロセッサーで利用可能なレベル 2 メモリーキャッシュの量を表示します。siblings
- ハイパースレッディングを使用するアーキテクチャーについて、同じ物理 CPU 上のシブリング CPU の合計数を表示します。flags
- 浮動小数点単位(FPU)の存在や MMX 命令の処理機能など、プロセッサーにさまざまな特性を定義します。
E.2.4. /proc/crypto
/proc/crypto
ファイルのサンプルは以下のようになります。
name : sha1 module : kernel type : digest blocksize : 64 digestsize : 20 name : md5 module : md5 type : digest blocksize : 64 digestsize : 16
E.2.5. /proc/devices
Character devices: 1 mem 4 /dev/vc/0 4 tty 4 ttyS 5 /dev/tty 5 /dev/console 5 /dev/ptmx 7 vcs 10 misc 13 input 29 fb 36 netlink 128 ptm 136 pts 180 usb Block devices: 1 ramdisk 3 ide0 9 md 22 ide1 253 device-mapper 254 mdp
/proc/devices
からの出力には、デバイスのメジャー番号と名前が含まれており、Character devices
と Block devices
の 2 つの主要なセクションに分かれています。
- 文字デバイスにはバッファーは必要ありません。ブロックデバイスはバッファーを利用できるため、それに対応する前に要求を順序付けることができます。これは、ハードドライブなどの情報を格納するように設計されたデバイスで重要になります。デバイスに書き込む前に情報を順序付ける機能により、より効率的な順序で配置できるためです。
- 文字デバイスは、事前に設定されたサイズでデータを送信します。ブロックデバイスは、デバイスごとに設定されたサイズのブロックの情報を送信および受信できます。
E.2.6. /proc/dma
/proc/dma
ファイルのサンプルは以下のようになります。
4: cascade
E.2.7. /proc/execdomains
0-0 Linux [kernel]
PER_LINUX
実行ドメインを除き、動的にロード可能なモジュールとして異なるパーソナリティーを実装できます。
E.2.8. /proc/fb
/proc/fb
の典型的な出力は以下のようになります。
0 VESA VGA
E.2.9. /proc/filesystems
/proc/filesystems
ファイルからの出力例を以下に示します。
nodev sysfs nodev rootfs nodev bdev nodev proc nodev sockfs nodev binfmt_misc nodev usbfs nodev usbdevfs nodev futexfs nodev tmpfs nodev pipefs nodev eventpollfs nodev devpts ext2 nodev ramfs nodev hugetlbfs iso9660 nodev mqueue ext3 nodev rpc_pipefs nodev autofs
nodev
で始まるものは、デバイスにマウントされません。2 列目には、サポートされるファイルシステムの名前が一覧表示されます。
E.2.10. /proc/interrupts
/proc/interrupts
は以下のようになります。
CPU0 0: 80448940 XT-PIC timer 1: 174412 XT-PIC keyboard 2: 0 XT-PIC cascade 8: 1 XT-PIC rtc 10: 410964 XT-PIC eth0 12: 60330 XT-PIC PS/2 Mouse 14: 1314121 XT-PIC ide0 15: 5195422 XT-PIC ide1 NMI: 0 ERR: 0
CPU0 CPU1 0: 1366814704 0 XT-PIC timer 1: 128 340 IO-APIC-edge keyboard 2: 0 0 XT-PIC cascade 8: 0 1 IO-APIC-edge rtc 12: 5323 5793 IO-APIC-edge PS/2 Mouse 13: 1 0 XT-PIC fpu 16: 11184294 15940594 IO-APIC-level Intel EtherExpress Pro 10/100 Ethernet 20: 8450043 11120093 IO-APIC-level megaraid 30: 10432 10722 IO-APIC-level aic7xxx 31: 23 22 IO-APIC-level aic7xxx NMI: 0 ERR: 0
XT-PIC
- これは、古い AT コンピューター割り込みです。IO-APIC-edge
- この割り込みの voltage シグナルは low から high に移行し、割り込みが発生し、1 回のみ通知される エッジ を作成します。この種の割り込みやIO-APIC-level
割り込みは、586 ファミリーのプロセッサーが搭載されたシステムでのみ表示されます。IO-APIC-level
- シグナルが再び低いまで voltage シグナルが高いと割り込みを生成します。
E.2.11. /proc/iomem
00000000-0009fbff : System RAM 0009fc00-0009ffff : reserved 000a0000-000bffff : Video RAM area 000c0000-000c7fff : Video ROM 000f0000-000fffff : System ROM 00100000-07ffffff : System RAM 00100000-00291ba8 : Kernel code 00291ba9-002e09cb : Kernel data e0000000-e3ffffff : VIA Technologies, Inc. VT82C597 [Apollo VP3] e4000000-e7ffffff : PCI Bus #01 e4000000-e4003fff : Matrox Graphics, Inc. MGA G200 AGP e5000000-e57fffff : Matrox Graphics, Inc. MGA G200 AGP e8000000-e8ffffff : PCI Bus #01 e8000000-e8ffffff : Matrox Graphics, Inc. MGA G200 AGP ea000000-ea00007f : Digital Equipment Corporation DECchip 21140 [FasterNet] ea000000-ea00007f : tulip ffff0000-ffffffff : reserved
E.2.12. /proc/ioports
/proc/ioports
の出力には、デバイスの入力または出力通信に使用される現在登録されているポートリージョンの一覧が示されます。このファイルは非常に長い場合があります。以下は部分的なリストです。
0000-001f : dma1 0020-003f : pic1 0040-005f : timer 0060-006f : keyboard 0070-007f : rtc 0080-008f : dma page reg 00a0-00bf : pic2 00c0-00df : dma2 00f0-00ff : fpu 0170-0177 : ide1 01f0-01f7 : ide0 02f8-02ff : serial(auto) 0376-0376 : ide1 03c0-03df : vga+ 03f6-03f6 : ide0 03f8-03ff : serial(auto) 0cf8-0cff : PCI conf1 d000-dfff : PCI Bus #01 e000-e00f : VIA Technologies, Inc. Bus Master IDE e000-e007 : ide0 e008-e00f : ide1 e800-e87f : Digital Equipment Corporation DECchip 21140 [FasterNet] e800-e87f : tulip
E.2.13. /proc/kcore
/proc/
ファイルとは異なり、kcore
はサイズを表示します。この値はバイト単位で指定され、使用される物理メモリー(RAM)のサイズと 4 KB を加えたサイズと同じになります。
/proc/kcore
仮想ファイルは表示しないでください。ターミナルでファイルスクラブルテキスト出力の内容。このファイルが誤って表示されていた場合は、Ctrl+C を押してプロセスを停止し、reset と入力してコマンドラインプロンプトに戻ります。
E.2.14. /proc/kmsg
E.2.15. /proc/loadavg
/proc/loadavg
ファイルのサンプルは以下のようになります。
0.20 0.18 0.12 1/80 11206
E.2.16. /proc/locks
/proc/locks
ファイルの例を以下に示します。
1: POSIX ADVISORY WRITE 3568 fd:00:2531452 0 EOF 2: FLOCK ADVISORY WRITE 3517 fd:00:2531448 0 EOF 3: POSIX ADVISORY WRITE 3452 fd:00:2531442 0 EOF 4: POSIX ADVISORY WRITE 3443 fd:00:2531440 0 EOF 5: POSIX ADVISORY WRITE 3326 fd:00:2531430 0 EOF 6: POSIX ADVISORY WRITE 3175 fd:00:2531425 0 EOF 7: POSIX ADVISORY WRITE 3056 fd:00:2548663 0 EOF
FLOCK
は flock システムコールから古いスタイルの UNIX ファイルロックを表し、POSIX
はロックのシステムコールからの新しい POSIX ロックを表します。
ADVISORY
または MANDATORY
の 2 つの値を指定することができます。ADVISORY
つまり、ロックは他のユーザーがデータにアクセスしないようにし、他のユーザーがロックを試みることのみを防ぎます。MANDATORY
ロックが保持される間にデータへの他のアクセスが許可されないことを意味します。4 番目のコラムは、ロックがホルダー READ
または WRITE
のファイルへのアクセスを許可するかどうかを示します。5 列目には、ロックを保持するプロセスの ID が表示されます。6 番目のコラムは、MAJOR-DEVICE:MINOR-DEVICE:INODE-NUMBER
の形式で、ロックされるファイルの ID を表示します。7 番目と 8h 列は、ファイルのロックされたリージョンの開始と終了を示しています。
E.2.17. /proc/mdstat
/proc/mdstat
は以下のようになります。
Personalities : read_ahead not set unused devices: <none>
md
デバイスが存在しない限り、上記と同じ状態になります。その場合は、/proc/mdstat
を表示して、mdX
RAID デバイスの現在の状態を見つけます。
/proc/mdstat
ファイルは、現在ディスクを再同期している間に、md0
が RAID 1 デバイスとして設定されたシステムを示しています。
Personalities : [linear] [raid1] read_ahead 1024 sectors md0: active raid1 sda2[1] sdb2[0] 9940 blocks [2/2] [UU] resync=1% finish=12.3min algorithm 2 [3/3] [UUU] unused devices: <none>
E.2.18. /proc/meminfo
/proc/
ディレクトリー内で一般的に使用されるファイルの 1 つです。
/proc/meminfo
仮想ファイルのサンプルは、2 GB の RAM と 1 GB のスワップ領域が搭載されているシステムです。
MemTotal: 1921988 kB MemFree: 1374408 kB Buffers: 32688 kB Cached: 370540 kB SwapCached: 0 kB Active: 344604 kB Inactive: 80800 kB Active(anon): 22364 kB Inactive(anon): 4 kB Active(file): 322240 kB Inactive(file): 80796 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 1048572 kB SwapFree: 1048572 kB Dirty: 48 kB Writeback: 0 kB AnonPages: 22260 kB Mapped: 13628 kB Shmem: 196 kB Slab: 91648 kB SReclaimable: 34024 kB SUnreclaim: 57624 kB KernelStack: 2880 kB PageTables: 3620 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 2009564 kB Committed_AS: 134216 kB VmallocTotal: 34359738367 kB VmallocUsed: 12276 kB VmallocChunk: 34359712840 kB HardwareCorrupted: 0 kB AnonHugePages: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 8064 kB DirectMap2M: 2088960 kB
/proc/meminfo
におけるこの意図は知られていますが、従来の懸念のために修正されていません。プログラムは /proc/meminfo
に依存して "kB" 文字列でサイズを指定します。
/proc/meminfo
の情報の多くは、free コマンド、top コマンド、および ps コマンドで使用されます。実際、free コマンドの出力は、/proc/meminfo
の内容と構造と似ています。ただし、/proc/meminfo
自体には詳細が記載されています。
MemTotal
- kibibytes 内の使用可能な RAM の合計量。これは、予約済みビットとカーネルバイナリーコードの数を引いた物理 RAM です。MemFree
- kibibytes 内の物理 RAM の容量は、システムが未使用のままです。Buffers
- raw ディスクブロックの一時ストレージの量(kibibytes)。Cached
- キャッシュメモリーとして使用される物理メモリーの容量(kibibytes)。SwapCached
- kibibytes では、swap に移動した後、メインメモリーに戻りますが、引き続き swap ファイル内に残ります。メモリーを再度スワップに移動する必要がないため、I/O が保存されます。Active
- キビバイトで、より最近使用され、絶対に必要でない限り、通常は回収されません。Inactive
- 最近使用されたメモリーの量(kibibytes では使用されず、他の目的で回収可能)。Active(anon)
- 匿名メモリーおよび tmpfs/shmem メモリーの量(kibibytes ではアクティブ、システムが最後に swap に移動された後にアクティブ使用であった)。Inactive(anon)
- エビクションの候補である kibibytes の匿名および tmpfs/shmem メモリーの量。Active(file)
- ファイルキャッシュメモリーの量(kibibytes 内)、またはシステムが最後に回収された後にアクティブ使用であったり、アクティブ使用であったりします。Inactive(file)
- ディスクから新たに読み込まれるファイルキャッシュメモリー、kibibytes の量、または回収を行う候補です。Unevictable
- ユーザープログラムによってメモリーにロックされているため、ページアウトコードによって検出されるメモリーの量をページアウトコードで検出します。Mlocked
- ユーザープログラムによってメモリーにロックされているためにエビクトできないメモリーの合計量(kibibytes)。SwapTotal
- kibibytes 内で利用可能な swap の合計量。SwapFree
- kibibytes 内の空きスワップの合計量。Dirty
- kibibytes 内のメモリーの合計量。ディスクへの書き込みを待機しています。Writeback
- kibibytes 内のメモリーの合計量。これは、ディスクにアクティブに書き戻されます。AnonPages
- ファイルでサポートされておらず、ユーザー空間ページのテーブルにマップされるページで使用されるメモリーの合計量(kibibytes)。Mapped
- ライブラリーなど、mmaped ファイルに使用されるメモリー(kibibytes 単位)。Shmem
- 共有メモリー(shmem)および tmpfs によって使用されるメモリーの合計量(kibibytes)。Slab
- カーネルが独自の使用のためにデータ構造をキャッシュするために使用されるメモリーの合計量(kibibytes 単位)。SReclaimable
- キャッシュなど、回収できる Slab の一部です。SUnreclaim
- メモリーがない場合でも、Slab の一部で回収できません。KernelStack
- システムの各タスクに対して実行されるカーネルスタックの割り当てで使用されるメモリーの量(kibibytes)。PageTables
- 最低ページテーブルレベル専用のメモリーの合計量(kibibytes)。NFS_Unstable
- サーバーに送信される NFS ページの量(kibibytes)は、まだ安定したストレージにコミットされていない。Bounce
- ブロックデバイス「bounce buffer」に使用されるメモリーの量(kibibytes)。WritebackTmp
- FUSE が一時的なライトバックバッファーに使用するメモリーの量(kibibytes)。CommitLimit
- オーバーコミット比(vm.overcommit_ratio
)に基づいてシステムで現在利用可能なメモリーの合計量。この制限は、厳密なオーバーコミットアカウンティングが有効にされている場合にのみ準拠されます(vm.overcommit_memory
のモード 2)。CommitLimit
以下の式で計算されます。([total RAM pages] - [total huge TLB pages]) * overcommit_ratio ───────────────────────────────────────────────────────────────── + [total swap pages] 100
たとえば、1 GB の物理メモリーとvm.overcommit_ratio
が 30 の 7 GB の swap を搭載したシステムでは、7.3 GB がCommitLimit
になります。Committed_AS
- ワークロードを完了すると予測されるメモリーの合計量(kibibytes)。この値は、最悪の場合のシナリオ値を表し、スワップメモリーも含まれます。VMallocTotal
- 割り当てられた仮想アドレス空間の合計メモリー容量(kibibytes 単位)。VMallocUsed
- 使用されている仮想アドレス空間のメモリー合計量(kibibytes)。VMallocChunk
- 利用可能な仮想アドレス空間の最大連続したメモリーブロック(kibibytes)。HardwareCorrupted
- キビバイトのメモリー量(kibibytes)では、ハードウェアによって識別され、カーネルによって外部に設定されたメモリーの量により使用されません。AnonHugePages
- ファイルでサポートされておらず、ユーザー空間ページのテーブルにマップされるヒュージページによって使用されるメモリーの合計量(kibibytes)。HugePages_Total
- システムの Huge Page の合計数。この数字は、/proc/sys/vm/hugetlb_pool
で指定される hugepages とは別のメガバイトセットでHugepagesize
を除算することで派生します。この統計は、x86、gitops、および AMD64 のアーキテクチャーにのみ表示されます。HugePages_Free
- システムで利用可能なヒュージページの合計数この統計は、x86、gitops、および AMD64 のアーキテクチャーにのみ表示されます。HugePages_Rsvd
- hugetlbfs に予約されている未使用の Huge Page の数。HugePages_Surp
: 余分のヒュージページ数。Hugepagesize
- kibibytes の各 hugepages ユニットのサイズ。デフォルトでは、32 ビットアーキテクチャー用の uniprocessor カーネルの 4096 KB です。SMP、Hugemem カーネル、および AMD64 の場合、デフォルトは 2048 KB です。gitops アーキテクチャーの場合、デフォルトは 262144 KB です。この統計は、x86、gitops、および AMD64 のアーキテクチャーにのみ表示されます。DirectMap4k
- 4 kB ページマッピングのあるカーネルアドレス空間にマップされるメモリーの量(kibibytes)。DirectMap2M
- 2 MB ページマッピングを使用してカーネルアドレス空間にマップされるメモリーの量(kibibytes)。
E.2.19. /proc/misc
63 device-mapper 175 agpgart 135 rtc 134 apm_bios
E.2.20. /proc/modules
/proc/modules
ファイル出力のサンプルと同様の方法で整理する必要があります。
nfs 170109 0 - Live 0x129b0000 lockd 51593 1 nfs, Live 0x128b0000 nls_utf8 1729 0 - Live 0x12830000 vfat 12097 0 - Live 0x12823000 fat 38881 1 vfat, Live 0x1287b000 autofs4 20293 2 - Live 0x1284f000 sunrpc 140453 3 nfs,lockd, Live 0x12954000 3c59x 33257 0 - Live 0x12871000 uhci_hcd 28377 0 - Live 0x12869000 md5 3777 1 - Live 0x1282c000 ipv6 211845 16 - Live 0x128de000 ext3 92585 2 - Live 0x12886000 jbd 65625 1 ext3, Live 0x12857000 dm_mod 46677 3 - Live 0x12833000
oprofile
などのプロファイリングツールに役立ちます。
E.2.21. /proc/mounts
rootfs / rootfs rw 0 0 /proc /proc proc rw,nodiratime 0 0 none /dev ramfs rw 0 0 /dev/mapper/VolGroup00-LogVol00 / ext3 rw 0 0 none /dev ramfs rw 0 0 /proc /proc proc rw,nodiratime 0 0 /sys /sys sysfs rw 0 0 none /dev/pts devpts rw 0 0 usbdevfs /proc/bus/usb usbdevfs rw 0 0 /dev/hda1 /boot ext3 rw 0 0 none /dev/shm tmpfs rw 0 0 none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0 sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0
/etc/mtab
の内容と似ていますが、/proc/mounts
が最新のものである点が異なります。
ro
)または読み書き(rw
)をマウントするかどうかを示します。5 列目と 6 列目は、/etc/mtab
で使用される形式に一致するように設計されたダミーの値です。
E.2.22. /proc/mtrr
/proc/mtrr
ファイルは以下のようになります。
reg00: base=0x00000000 ( 0MB), size= 256MB: write-back, count=1 reg01: base=0xe8000000 (3712MB), size= 32MB: write-combining, count=1
/proc/mtrr
ファイルは、150% を超えるパフォーマンスを向上させることができます。
/usr/share/doc/kernel-doc-<kernel_version>/Documentation/<arch>/mtrr.txt
E.2.23. /proc/partitions
major minor #blocks name 3 0 19531250 hda 3 1 104391 hda1 3 2 19422585 hda2 253 0 22708224 dm-0 253 1 524288 dm-1
major
- このパーティションを持つデバイスのメジャー番号。/proc/partitions
,(3
)のメジャー番号は、/proc/devices
のブロックデバイスide0
に対応します。minor
- このパーティションを持つデバイスのマイナー番号。これは、パーティションを異なる物理デバイスに分割し、パーティション名の最後にある番号に関連付けられます。#blocks
- 特定のパーティションに含まれる物理ディスクブロックの数を一覧表示します。name
- パーティションの名前。
E.2.24. /proc/slabinfo
/proc/slabinfo
ファイルを手動で解析する代わりに、/usr/bin/slabtop
プログラムは、カーネルスラブキャッシュ情報をリアルタイムで表示します。このプログラムでは、列のソートや画面の更新など、カスタム設定を行うことができます。
/usr/bin/slabtop
のスクリーンショットの例は通常、以下の例のようになります。
Active / Total Objects (% used) : 133629 / 147300 (90.7%) Active / Total Slabs (% used) : 11492 / 11493 (100.0%) Active / Total Caches (% used) : 77 / 121 (63.6%) Active / Total Size (% used) : 41739.83K / 44081.89K (94.7%) Minimum / Average / Maximum Object : 0.01K / 0.30K / 128.00K OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME 44814 43159 96% 0.62K 7469 6 29876K ext3_inode_cache 36900 34614 93% 0.05K 492 75 1968K buffer_head 35213 33124 94% 0.16K 1531 23 6124K dentry_cache 7364 6463 87% 0.27K 526 14 2104K radix_tree_node 2585 1781 68% 0.08K 55 47 220K vm_area_struct 2263 2116 93% 0.12K 73 31 292K size-128 1904 1125 59% 0.03K 16 119 64K size-32 1666 768 46% 0.03K 14 119 56K anon_vma 1512 1482 98% 0.44K 168 9 672K inode_cache 1464 1040 71% 0.06K 24 61 96K size-64 1320 820 62% 0.19K 66 20 264K filp 678 587 86% 0.02K 3 226 12K dm_io 678 587 86% 0.02K 3 226 12K dm_tio 576 574 99% 0.47K 72 8 288K proc_inode_cache 528 514 97% 0.50K 66 8 264K size-512 492 372 75% 0.09K 12 41 48K bio 465 314 67% 0.25K 31 15 124K size-256 452 331 73% 0.02K 2 226 8K biovec-1 420 420 100% 0.19K 21 20 84K skbuff_head_cache 305 256 83% 0.06K 5 61 20K biovec-4 290 4 1% 0.01K 1 290 4K revoke_table 264 264 100% 4.00K 264 1 1056K size-4096 260 256 98% 0.19K 13 20 52K biovec-16 260 256 98% 0.75K 52 5 208K biovec-64
/usr/bin/slabtop
に含まれる /proc/slabinfo
で一般的に使用されるいくつかの統計には以下が含まれます。
OBJS
- 使用中のオブジェクト(割り当て済み)および使用されていないスペアを含むオブジェクト(メモリーブロック)の合計数。ACTIVE
- 使用中のオブジェクト(メモリーブロック)の数(割り当て済み)USE
- アクティブなオブジェクトの合計(ACTIVE/OBJS)(100)OBJ SIZE
- オブジェクトのサイズSLABS
- スラブの合計数。OBJ/SLAB
- スラブに適合するオブジェクトの数。CACHE SIZE
- スラブのキャッシュサイズ。NAME
- スラブの名前。
/usr/bin/slabtop
プログラムの詳細は、slabtop
man ページを参照してください。
E.2.25. /proc/stat
/proc/stat
の内容は非常に長くなりますが、通常は以下の例のようになります。
cpu 259246 7001 60190 34250993 137517 772 0 cpu0 259246 7001 60190 34250993 137517 772 0 intr 354133732 347209999 2272 0 4 4 0 0 3 1 1249247 0 0 80143 0 422626 5169433 ctxt 12547729 btime 1093631447 processes 130523 procs_running 1 procs_blocked 0 preempt 5651840 cpu 209841 1554 21720 118519346 72939 154 27168 cpu0 42536 798 4841 14790880 14778 124 3117 cpu1 24184 569 3875 14794524 30209 29 3130 cpu2 28616 11 2182 14818198 4020 1 3493 cpu3 35350 6 2942 14811519 3045 0 3659 cpu4 18209 135 2263 14820076 12465 0 3373 cpu5 20795 35 1866 14825701 4508 0 3615 cpu6 21607 0 2201 14827053 2325 0 3334 cpu7 18544 0 1550 14831395 1589 0 3447 intr 15239682 14857833 6 0 6 6 0 5 0 1 0 0 0 29 0 2 0 0 0 0 0 0 0 94982 0 286812 ctxt 4209609 btime 1078711415 processes 21905 procs_running 1 procs_blocked 0
cpu
- システムがユーザーモードにあり、優先度が低いユーザーモード(nice)、システムモード、アイドルタスク、I/O wait、IRQ(hardirq)、および softirq をそれぞれ持つ jiffies (x86 システムの 1 秒の1/100)を測定します。IRQ(hardirq)は、ハードウェアイベントへのダイレクト応答です。IRQ は、softirq が実行する場合の「heavy」作業のキューに対する最小限の作業を取ります。softirq は IRQ よりも優先順位が低いため、頻繁に中断される可能性があります。すべての CPU の合計は一番上にありますが、各 CPU には独自の統計がリストされます。以下の例は、マルチスレッドが有効になっている 4 方向の Intel Pentium Warehouse 設定であるため、合計 4 つの物理プロセッサーと合計 8 つの仮想プロセッサー 4 つの仮想プロセッサーを示しています。page
- システムが書き込んだメモリーページ数。swap
- システムがオンとアウトしたスワップページの数。intr
- システムが発生した割り込みの数。btime
- ブート時間(1970 年 1 月 1 日以降の秒数)で測定され、epoch はエポックとして知られています。
E.2.26. /proc/swaps
/proc/swaps
の出力は以下のようになります。
Filename Type Size Used Priority /dev/mapper/VolGroup00-LogVol01 partition 524280 0 -1
/proc/
ディレクトリーの他のファイルにありますが、/proc/swap
はすべてのスワップファイル名のスナップショット、スワップ領域の種類、合計サイズ、使用領域のサイズ(キロバイト単位)を表します。優先度の列は、複数のスワップファイルが使用されている場合に役に立ちます。優先度が低いほど、スワップファイルが使用される可能性が高くなります。
E.2.27. /proc/sysrq-trigger
/proc/sys/kernel/
gitops を 0
以外の値に設定する必要があります。System Request Key の詳細は、「/proc/sys/kernel/」 を参照してください。
E.2.28. /proc/uptime
/proc/uptime
の出力は非常に最小限です。
350735.47 234388.90
E.2.29. /proc/version
Linux version 2.6.8-1.523 (user@foo.redhat.com) (gcc version 3.4.1 20040714 \ (Red Hat Enterprise Linux 3.4.1-7)) #1 Mon Aug 16 13:27:03 EDT 2004
E.3. /proc/ 内のディレクトリー
/proc/
ディレクトリー内のディレクトリーおよびサブディレクトリーにグループ化されます。
E.3.1. プロセスディレクトリー
/proc/
ディレクトリーには、数値名のディレクトリーが多数含まれます。これらの一覧は以下のようになります。
dr-xr-xr-x 3 root root 0 Feb 13 01:28 1 dr-xr-xr-x 3 root root 0 Feb 13 01:28 1010 dr-xr-xr-x 3 xfs xfs 0 Feb 13 01:28 1087 dr-xr-xr-x 3 daemon daemon 0 Feb 13 01:28 1123 dr-xr-xr-x 3 root root 0 Feb 13 01:28 11307 dr-xr-xr-x 3 apache apache 0 Feb 13 01:28 13660 dr-xr-xr-x 3 rpc rpc 0 Feb 13 01:28 637 dr-xr-xr-x 3 rpcuser rpcuser 0 Feb 13 01:28 666
/proc/
プロセスディレクトリー vanishes になります。
cmdline
- プロセスの起動時に実行したコマンドが含まれます。cwd
- プロセスの現在の作業ディレクトリーへのシンボリックリンク。environ
- プロセスの環境変数一覧。環境変数は大文字で指定され、値は小文字です。exe
- このプロセスの実行可能ファイルへのシンボリックリンク。fd
- 特定のプロセスのすべてのファイル記述子を含むディレクトリー。これらは番号付きのリンクで指定されます。total 0 lrwx------ 1 root root 64 May 8 11:31 0 -> /dev/null lrwx------ 1 root root 64 May 8 11:31 1 -> /dev/null lrwx------ 1 root root 64 May 8 11:31 2 -> /dev/null lrwx------ 1 root root 64 May 8 11:31 3 -> /dev/ptmx lrwx------ 1 root root 64 May 8 11:31 4 -> socket:[7774817] lrwx------ 1 root root 64 May 8 11:31 5 -> /dev/ptmx lrwx------ 1 root root 64 May 8 11:31 6 -> socket:[7774829] lrwx------ 1 root root 64 May 8 11:31 7 -> /dev/ptmx
maps
- このプロセスに関連するさまざまな実行ファイルやライブラリーファイルに対するメモリーマップの一覧。このファイルはプロセスの複雑さに応じて長くなりますが、sshd プロセスからの出力サンプルは以下のようになります。08048000-08086000 r-xp 00000000 03:03 391479 /usr/sbin/sshd 08086000-08088000 rw-p 0003e000 03:03 391479 /usr/sbin/sshd 08088000-08095000 rwxp 00000000 00:00 0 40000000-40013000 r-xp 0000000 03:03 293205 /lib/ld-2.2.5.so 40013000-40014000 rw-p 00013000 03:03 293205 /lib/ld-2.2.5.so 40031000-40038000 r-xp 00000000 03:03 293282 /lib/libpam.so.0.75 40038000-40039000 rw-p 00006000 03:03 293282 /lib/libpam.so.0.75 40039000-4003a000 rw-p 00000000 00:00 0 4003a000-4003c000 r-xp 00000000 03:03 293218 /lib/libdl-2.2.5.so 4003c000-4003d000 rw-p 00001000 03:03 293218 /lib/libdl-2.2.5.so
mem
- プロセスが保持するメモリー。このファイルはユーザーが読み取ることはできません。root
- プロセスのルートディレクトリーへのリンクstat
- プロセスのステータスstatm
- プロセスが使用しているメモリーのステータス以下は、/proc/statm
ファイルのサンプルです。263 210 210 5 0 205 0
7 列は、プロセスのさまざまなメモリー統計に関連します。左から右に、使用されるメモリーの以下の側面を報告します。- プログラム合計サイズ(キロバイト単位)。
- メモリー部分のサイズ(キロバイト単位)。
- 共有されるページ数。
- コードであるページ数。
- データ/スタックのページ数。
- ライブラリーページ数。
- ダーティーページ数。
status
-stat
またはstatm
よりも読み取り可能な形式でプロセスのステータスsshd の出力例を以下に示します。Name: sshd State: S (sleeping) Tgid: 797 Pid: 797 PPid: 1 TracerPid: 0 Uid: 0 0 0 0 Gid: 0 0 0 0 FDSize: 32 Groups: VmSize: 3072 kB VmLck: 0 kB VmRSS: 840 kB VmData: 104 kB VmStk: 12 kB VmExe: 300 kB VmLib: 2528 kB SigPnd: 0000000000000000 SigBlk: 0000000000000000 SigIgn: 8000000000001000 SigCgt: 0000000000014005 CapInh: 0000000000000000 CapPrm: 00000000fffffeff CapEff: 00000000fffffeff
この出力の情報には、プロセス名と ID、状態(S (sleeping)
、R (running)
など)、プロセスを実行するユーザー/グループ ID、メモリー使用量に関する詳細情報が含まれます。
E.3.1.1. /proc/self/
/proc/self/
ディレクトリーは、現在実行中のプロセスへのリンクです。これにより、プロセス ID を把握せずにプロセスが自身を確認できます。
/proc/self/
ディレクトリーの一覧が、そのプロセスのプロセスディレクトリーの一覧表示と同じ内容を生成します。
E.3.2. /proc/bus/
/proc/bus/
pci/
など)内のサブディレクトリー内で利用できます。
/proc/bus/
内のサブディレクトリーとファイルは、システムに接続されているデバイスによって異なります。ただし、各バスタイプには少なくとも 1 つのディレクトリーがあります。これらのバスディレクトリー内では、通常、バイナリーファイルを含む 001
などの数字名のサブディレクトリーがあります。
/proc/bus/usb/
サブディレクトリーには、USB バス上の各種デバイスと、そのデバイスに必要なドライバーを追跡するファイルが含まれます。以下は、/proc/bus/usb/
ディレクトリーの一覧の例です。
total 0 dr-xr-xr-x 1 root root 0 May 3 16:25 001 -r--r--r-- 1 root root 0 May 3 16:25 devices -r--r--r-- 1 root root 0 May 3 16:25 drivers
/proc/bus/usb/001/
ディレクトリーには、最初の USB バス上のすべてのデバイスが含まれ、デバイス
ファイルはマザーボードの USB ルートハブを識別します。
/proc/bus/usb/devices
ファイルの例です。
T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 1.00 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 0.00 S: Product=USB UHCI Root Hub S: SerialNumber=d400 C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=255ms
E.3.3. /proc/bus/pci
/proc/bus/pci
ディレクトリーが優先されるため、/proc/pci
ディレクトリーが廃止されました。cat /proc/bus/pci/devices コマンドを使用して、システムに存在する PCI デバイスの一覧を取得することはできますが、出力の読み取りと解釈は困難です。
~]# /sbin/lspci -vb 00:00.0 Host bridge: Intel Corporation 82X38/X48 Express DRAM Controller Subsystem: Hewlett-Packard Company Device 1308 Flags: bus master, fast devsel, latency 0 Capabilities: [e0] Vendor Specific Information <?> Kernel driver in use: x38_edac Kernel modules: x38_edac 00:01.0 PCI bridge: Intel Corporation 82X38/X48 Express Host-Primary PCI Express Bridge (prog-if 00 [Normal decode]) Flags: bus master, fast devsel, latency 0 Bus: primary=00, secondary=01, subordinate=01, sec-latency=0 I/O behind bridge: 00001000-00001fff Memory behind bridge: f0000000-f2ffffff Capabilities: [88] Subsystem: Hewlett-Packard Company Device 1308 Capabilities: [80] Power Management version 3 Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit- Capabilities: [a0] Express Root Port (Slot+), MSI 00 Capabilities: [100] Virtual Channel <?> Capabilities: [140] Root Complex Link <?> Kernel driver in use: pcieport Kernel modules: shpchp 00:1a.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 02) (prog-if 00 [UHCI]) Subsystem: Hewlett-Packard Company Device 1308 Flags: bus master, medium devsel, latency 0, IRQ 5 I/O ports at 2100 Capabilities: [50] PCI Advanced Features Kernel driver in use: uhci_hcd [output truncated]
E.3.4. /proc/driver/
rtc
です。/proc/driver/rtc
からの出力例を以下に示します。
rtc_time : 16:21:00 rtc_date : 2004-08-31 rtc_epoch : 1900 alarm : 21:16:27 DST_enable : no BCD : yes 24hr : yes square_wave : no alarm_IRQ : no update_IRQ : no periodic_IRQ : no periodic_freq : 1024 batt_status : okay
/usr/share/doc/kernel-doc-<kernel_version>/Documentation/rtc.txt
.
E.3.5. /proc/fs
E.3.6. /proc/irq/
/proc/irq/prof_cpu_mask
ファイルは、IRQ ディレクトリーの smp_affinity
ファイルのデフォルト値が含まれるビットマスクです。smp_affinity
の値は、特定の IRQ を処理する CPU を指定します。
/proc/irq/
ディレクトリーの詳細は、以下のインストール済みドキュメントを参照してください。
/usr/share/doc/kernel-doc-kernel_version/Documentation/filesystems/proc.txt
E.3.7. /proc/net/
/proc/net/
ディレクトリーの一部の一覧です。
arp
: カーネルの ARP テーブルを一覧表示します。このファイルは、ハードウェアアドレスをシステム上の IP アドレスに接続するのに特に便利です。- ATM
/
ディレクトリー: このディレクトリー内のファイルには、ATM(Asynchronous Transfer Mode) 設定および統計が含まれます。このディレクトリーは、主に ATM ネットワークと ADSL カードで使用されます。 dev
- システムに設定したさまざまなネットワークデバイスの一覧を表示し、送受信の統計で完了します。このファイルは、各インターフェースが送受信したバイト数、パケットのインバウンドおよびアウトバウンドの数、発生したエラー数、破棄されたパケット数などを表示します。dev_mcast
- 各デバイスがリッスンしているレイヤー2マルチキャストグループを一覧表示します。IGMP
: このシステムが参加する IP マルチキャストアドレスを一覧表示します。ip_conntrack
: IP 接続の転送を行うマシンの追跡済みネットワーク接続を一覧表示します。ip_tables_names
: 使用中の iptables のタイプを一覧表示します。このファイルは、iptables がシステムでアクティブな場合にのみ存在し、filter
、mangle
、またはnat
のいずれかの値が含まれます。ip_mr_cache
: マルチキャストルーティングキャッシュを一覧表示します。ip_mr_vif
- マルチキャスト仮想インターフェースを一覧表示します。netstat
: TCP タイムアウト、SYN クッキーの送受信など、ネットワーク統計の幅広い詳細なコレクションが含まれます。psched
- グローバルパケットスケジューラーパラメーターを一覧表示します。raw
: raw デバイスの統計を一覧表示します。route
: カーネルのルーティングテーブルを一覧表示します。rt_cache
: 現在のルーティングキャッシュが含まれます。SNMP
- 使用中のさまざまなネットワークプロトコル用の Simple Network Management Protocol(SNMP)データの一覧。sockstat
: ソケット統計を提供します。tcp
: 詳細な TCP ソケット情報が含まれます。tr_rif
: トークンリング RIF ルーティングテーブルを一覧表示します。udp
: 詳細な UDP ソケット情報が含まれます。UNIX
- 現在使用中の UNIX ドメインソケットを一覧表示します。ワイヤレス - ワイヤレス
インターフェースデータを一覧表示します。
E.3.8. /proc/scsi/
/proc/scsi/scsi
で、認識されているすべての SCSI デバイスの一覧が含まれています。この一覧から、デバイスの種類、およびモデル名、ベンダー、SCSI チャネル、および ID データを利用できます。
Attached devices: Host: scsi1 Channel: 00 Id: 05 Lun: 00 Vendor: NEC Model: CD-ROM DRIVE:466 Rev: 1.06 Type: CD-ROM ANSI SCSI revision: 02 Host: scsi1 Channel: 00 Id: 06 Lun: 00 Vendor: ARCHIVE Model: Python 04106-XXX Rev: 7350 Type: Sequential-Access ANSI SCSI revision: 02 Host: scsi2 Channel: 00 Id: 06 Lun: 00 Vendor: DELL Model: 1x6 U2W SCSI BP Rev: 5.35 Type: Processor ANSI SCSI revision: 02 Host: scsi2 Channel: 02 Id: 00 Lun: 00 Vendor: MegaRAID Model: LD0 RAID5 34556R Rev: 1.01 Type: Direct-Access ANSI SCSI revision: 02
/proc/scsi/
内に独自のディレクトリーがあり、このドライバーを使用する各 SCSI コントローラーに固有のファイルが含まれます。上記の例では、2 つのドライバーが使用されているため、aic7xxx/
ディレクトリーおよび megaraid/
ディレクトリーが存在します。各ディレクトリーのファイルには、通常、そのドライバーを使用する SCSI コントローラーの I/O アドレス範囲、IRQ 情報、および統計が含まれます。各コントローラーは、異なるタイプおよび情報量を報告できます。このシステムの例に含まれる Adaptec AIC-7880 Ultra SCSI ホストアダプターは、以下の出力を生成します。
Adaptec AIC7xxx driver version: 5.1.20/3.2.4 Compile Options: TCQ Enabled By Default : Disabled AIC7XXX_PROC_STATS : Enabled AIC7XXX_RESET_DELAY : 5 Adapter Configuration: SCSI Adapter: Adaptec AIC-7880 Ultra SCSI host adapter Ultra Narrow Controller PCI MMAPed I/O Base: 0xfcffe000 Adapter SEEPROM Config: SEEPROM found and used. Adaptec SCSI BIOS: Enabled IRQ: 30 SCBs: Active 0, Max Active 1, Allocated 15, HW 16, Page 255 Interrupts: 33726 BIOS Control Word: 0x18a6 Adapter Control Word: 0x1c5f Extended Translation: Enabled Disconnect Enable Flags: 0x00ff Ultra Enable Flags: 0x0020 Tag Queue Enable Flags: 0x0000 Ordered Queue Tag Flags: 0x0000 Default Tag Queue Depth: 8 Tagged Queue By Device array for aic7xxx host instance 1: {255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255} Actual queue depth per device for aic7xxx host instance 1: {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} Statistics: (scsi1:0:5:0) Device using Narrow/Sync transfers at 20.0 MByte/sec, offset 15 Transinfo settings: current(12/15/0/0), goal(12/15/0/0), user(12/15/0/0) Total transfers 0 (0 reads and 0 writes) < 2K 2K+ 4K+ 8K+ 16K+ 32K+ 64K+ 128K+ Reads: 0 0 0 0 0 0 0 0 Writes: 0 0 0 0 0 0 0 0 (scsi1:0:6:0) Device using Narrow/Sync transfers at 10.0 MByte/sec, offset 15 Transinfo settings: current(25/15/0/0), goal(12/15/0/0), user(12/15/0/0) Total transfers 132 (0 reads and 132 writes) < 2K 2K+ 4K+ 8K+ 16K+ 32K+ 64K+ 128K+ Reads: 0 0 0 0 0 0 0 0 Writes: 0 0 0 1 131 0 0 0
E.3.9. /proc/sys/
/proc/
sys/
ディレクトリーは、システムに関する情報だけでなく、システム管理者がカーネル機能をすぐに有効または無効にすることができるため、/proc/ の他のディレクトリーとは異なります。
/proc/sys/
ディレクトリー内のさまざまなファイルを使用して、実稼働システムの設定を変更する際には注意してください。誤った設定を変更すると、カーネルが不安定になり、システムの再起動が必要になります。
/proc/sys/
の値を変更する前に、このファイルでオプションが有効であることを確認してください。
-l
オプションを使用して一覧表示できます。ファイルが書き込み可能である場合は、カーネルの設定に使用できます。たとえば、/proc/sys/fs
の一部の一覧は以下のようになります。
-r--r--r-- 1 root root 0 May 10 16:14 dentry-state -rw-r--r-- 1 root root 0 May 10 16:14 dir-notify-enable -rw-r--r-- 1 root root 0 May 10 16:14 file-max -r--r--r-- 1 root root 0 May 10 16:14 file-nr
dir-notify-enable
ファイルおよび file-max
ファイルを書き込みできるため、カーネルの設定に使用できます。その他のファイルは、現在の設定に関するフィードバックのみを提供します。
/proc/sys/
ファイル内の値を変更するには、ファイルに新しい値をエコーして実行します。たとえば、実行中のカーネルでシステム要求キーを有効にするには、以下のコマンドを入力します。
echo 1 > /proc/sys/kernel/sysrq
は
0
(off)から 1
(on)に変更します。
/proc/sys/
設定ファイルには、複数の値が含まれます。新しい値を正しく送信するには、以下の例のように、echo コマンドで渡された各値の間にスペース文字を置きます。
echo 4 2 45 > /proc/sys/kernel/acct
/proc/sys/
ディレクトリーには、実行中のカーネルのさまざまな側面を制御するサブディレクトリーが複数含まれています。
E.3.9.1. /proc/sys/dev/
cdrom/
ディレクトリーと raid/
という 2 つ以上のディレクトリーがあります。カスタマイズしたカーネルには、parport/
などの他のディレクトリーを持たせることができます。これにより、複数のデバイスドライバー間で 1 つの並列ポートを共有できます。
cdrom/
ディレクトリーには info
と呼ばれるファイルが含まれており、重要な CD-ROM パラメーターが数多く表示されます。
CD-ROM information, Id: cdrom.c 3.20 2003/12/17 drive name: hdc drive speed: 48 drive # of slots: 1 Can close tray: 1 Can open tray: 1 Can lock tray: 1 Can change speed: 1 Can select disk: 0 Can read multisession: 1 Can read MCN: 1 Reports media changed: 1 Can play audio: 1 Can write CD-R: 0 Can write CD-RW: 0 Can read DVD: 0 Can write DVD-R: 0 Can write DVD-RAM: 0 Can read MRW: 0 Can write MRW: 0 Can write RAM: 0
autoclose
や checkmedia
など、/proc/sys/dev/cdrom
のさまざまなファイルを使用して、システムの CD-ROM を制御できます。これらの機能を有効または無効にするには、echo コマンドを使用します。
/proc/sys/dev/raid/
ディレクトリーは、少なくとも 2 つのファイルで speed_limit_min
および speed_limit_max
で利用できます。この設定により、ディスクの再同期など、I/O 集約型タスク用の RAID デバイスのアクセラレーションが決定されます。
E.3.9.2. /proc/sys/fs/
binfmt_misc/
ディレクトリーは、その他のバイナリー形式のカーネルサポートを提供するために使用されます。
/proc/sys/fs/
の重要なファイルには以下が含まれます。
dentry-state
: ディレクトリーキャッシュのステータスを表示します。ファイルは以下の例のようになります。57411 52939 45 0 0 0
最初の番号はディレクトリーキャッシュエントリーの合計数を示し、2 番目の番号には未使用のエントリーの数が表示されます。3 番目の数字は、ディレクトリーが解放され、回収されるタイミングの間の秒数を示し、4 つ目はシステムで現在要求されているページを測定します。最後の 2 つの数字は使用されず、ゼロのみが表示されます。file-max
: カーネルが割り当てるファイルハンドルの最大数を表示します。このファイルに値を増やすと、利用可能なファイルハンドルがないためにエラーを解決できます。file-nr
: 割り当てられたファイルハンドルの数、使用されるファイルハンドル数、およびファイルハンドルの最大数を表示します。overflowgid
およびoverflowuid
: 16 ビットのグループ ID とユーザー ID のみをサポートするファイルシステムで使用する固定グループ ID とユーザー ID を定義します。
E.3.9.3. /proc/sys/kernel/
Acc
t - ログを含むファイルシステムで利用可能な空き領域の割合に基づいて、プロセスアカウンティングの一時停止を制御します。デフォルトでは、ファイルは以下のようになります。4 2 30
最初の値はロギングを再開するのに必要な空き領域の割合を定め、2 番目の値はロギングが一時停止される際に空き領域のしきい値を設定します。3 番目の値で、カーネルがファイルシステムをポーリングして、ロギングを一時停止または再開するかどうかを確認する間隔を秒単位で設定します。Ctrl-alt-del -
Ctrl+Alt+Delete が init を使用してコンピューターを正常に再起動するか(0
)、ダーティーバッファーをディスクに同期せずに即時に再起動するかを制御します(1
)。domainName:
example.com
などのシステムドメイン名を設定します。exec-shield
: カーネルの Exec Shield 機能を設定します。exec Shield は、特定タイプのバッファーオーバーフロー攻撃に対する保護を提供します。この仮想ファイルには、以下の 2 つの値を使用できます。- 0 - Exec Shield を無効にします。
- 1 - Exec Shield を有効にします。これはデフォルト値になります。
Exec Shield の使用Exec Shield が無効になっている間に起動したセキュリティーの影響を受けるアプリケーションを実行している場合は、Exec Shield を有効にするには、これらのアプリケーションを再起動する必要があります。hostname
-www.example.com
などのシステムのホスト名を設定します。hotplug
: 設定の変更がシステムによって検出される際に使用されるユーティリティーを設定します。これは主に USB および Cardbus PCI で使用されます。このロールを満たす新しいプログラムをテストしない限り、/sbin/hotplug
のデフォルト値は変更しないでください。modprobe
- カーネルモジュールの読み込みに使用するプログラムの場所を設定します。デフォルト値は/sbin/modprobe
です。これは、カーネルスレッドが kmod を呼び出す際にモジュールをロードするために kmod が呼び出しを行うことを意味します。msgmax
: あるプロセスから別のプロセスに送信されるメッセージの最大サイズを設定し、デフォルトで8192
バイトに設定されます。プロセス間でキューに置かれたメッセージがスワップ不可能なカーネルメモリーに保存されるため、この値を引き上げる際には注意してください。msgmax
を増やすと、システムの RAM 要件が増えます。msgmnb
- 単一のメッセージキューに最大バイト数を設定します。デフォルトは16384
です。msgmni
- メッセージキュー識別子の最大数を設定します。デフォルトは4008
です。osrelease
- Linux カーネルリリース番号を一覧表示します。このファイルは、カーネルソースを変更して再コンパイルするとのみ変更できます。OSType
: オペレーティングシステムのタイプを表示します。デフォルトでは、このファイルはLinux
に設定されています。この値は、カーネルソースを変更して再コンパイルするだけでのみ変更できます。overflowgid
およびoverflowuid
: 16 ビットグループとユーザー ID のみをサポートするアーキテクチャー上のシステムコールで使用する固定グループ ID とユーザー ID を定義します。panic
: システムでカーネルパニックが発生したときにカーネルの再起動を延期する秒数を定義します。デフォルトでは、値は0
に設定されています。これは、パニック後の自動再起動を無効にします。printk
: このファイルは、エラーメッセージの印刷やロギングに関連するさまざまな設定を制御します。カーネルが報告する各エラーメッセージには、メッセージの重要性を定義するログレベルが関連付けられています。loglevel 値は、以下の順序で分類されます。0
- カーネルの緊急事態。システムが利用できません。1
- カーネルアラート。すぐに対処する必要があります。2
- 重大な問題があると見なされるカーネルの状態。3
- 一般的なカーネルエラー状態。4
- 一般的なカーネルの警告状態。5
- 正常だが重大な状態のカーネル通知。6
- カーネル情報メッセージ。7
- カーネルのデバッグレベルメッセージ。
printk
ファイルには、以下の 4 つの値があります。6 4 1 7
これらの各値は、エラーメッセージを処理するさまざまなルールを定義します。コンソールログレベル と呼ばれる最初の値は 、コンソール に出力されるメッセージの最も低い優先度を定義します。(優先度が小さいほど、ログレベル番号が高いことに注意してください。) 2 番目の値は、明示的なログレベルが適用されないメッセージのデフォルトのログレベルを設定します。3 つ目の値は、コンソールログレベルの可能な限り低いログレベル設定を設定します。最後の値は、コンソールログレベルのデフォルト値を設定します。random/
ディレクトリー: カーネルの乱数の生成に関連する多くの値を一覧表示します。sem
- カーネル内での semaphore 設定を構成します。semaphore は、特定のプロセスの使用を制御するために使用される System V IPC オブジェクトです。shmall
: システムの一度に使用可能な共有メモリーの合計量をバイト単位で設定します。デフォルトでは、この値は2097152
です。shmmax
: カーネルで許可される最大共有メモリーセグメントサイズを設定します。デフォルトでは、この値は33554432
です。ただし、カーネルはこれよりも大きな値をサポートします。SHMMN
I: システム全体で共有メモリーセグメントの最大数を設定します。デフォルトでは、この値は4096
です。Sys
Rq: この値がゼロ(0
)以外の値に設定されている場合、システム要求キーを有効にします。System Request Key は、単純なキーの組み合わせでカーネルへの即時入力を可能にします。たとえば、System Request Key を使用すると、システムをすぐにシャットダウンまたは再起動したり、マウントされたすべてのファイルシステムを同期したり、重要な情報をコンソールにダンプしたりできます。System Request Key を開始するには、Alt+SysRq+システム要求コード を入力します。システム要求コード を、以下のシステム要求コードのいずれかに置き換えます。- r - キーボードの raw モードを無効にし、XLATE に設定します(すべてのキーに対して Alt、Ctrl、Shift などの修飾子を認識しない制限されたキーボードモード)。
- k - 仮想コンソールでアクティブなプロセスをすべて強制終了します。Secure Access Key (SAK)とも呼ばれます。通常、ログインプロンプトが init から起動され、ユーザー名とパスワードをキャプチャーするように設計された trojan コピーではなく、init から起動されたことを確認するために使用されます。
- b - ファイルシステムのマウントを解除したり、システムに接続されているディスクを同期したりせずにカーネルを再起動します。
- c - ファイルシステムのマウントを解除したり、システムに接続されているディスクを同期したりせずに、システムがクラッシュします。
- O - システムをオフにします。
- s: システムに接続されているディスクの同期を試行します。
- u - すべてのファイルシステムのマウントを解除して再マウントしようとすると、すべてのファイルシステムを読み取り専用として再マウントします。
- p - すべてのフラグを出力し、コンソールに登録します。
- T - プロセス一覧をコンソールに出力します。
- m: メモリー統計をコンソールに出力します。
- 0 から 9 - コンソールのログレベルを設定します。
- e: SIGTERM を使用して init 以外のすべてのプロセスを強制終了します。
- i: SIGKILL を使用して init 以外のすべてのプロセスを強制終了します。
- l: SIGKILL( initを含む)を使用してすべてのプロセスを強制終了します。この System Request Key コードを発行した後には、システムが使用できなくなります。
- h: ヘルプテキストを表示します。
この機能は、開発カーネルを使用する場合や、システムのフリーズが発生した場合に最も有益です。System Request Key 機能を有効にする場合は注意してください。System Request Key 機能は、無人コンソールがシステムへのアクセスを持つ攻撃者を提供するため、セキュリティー上のリスクと見なされます。このため、デフォルトでは無効になっています。システム要求キーの詳細は、/usr/share/doc/kernel-doc-kernel_version/Documentation/gitops.txt
を参照してください。tainted
: 非GPL モジュールが読み込まれているかどうかを示します。0
- GPL 以外のモジュールはロードされません。1
- GPL ライセンスのない少なくとも 1 つのモジュール(ライセンスのないモジュールを含む)が読み込まれます。2
- 1 つ以上のモジュールは、smod -f コマンドで 強制的にロードされました。
threads-max
: カーネルによって使用される最大スレッド数を設定します。デフォルト値は2048
です。version
: カーネルの最終コンパイル日時を表示します。このファイルの最初のフィールド(例:#3
)は、カーネルがソースベースから構築される回数に関連します。
E.3.9.4. /proc/sys/net/
ethernet/
、ipv4/、ipx/
、 ipv6/
など
、ここに異なるディレクトリーが利用可能になります。これらのディレクトリー内のファイルを変更すると、システム管理者は実行中のシステムのネットワーク設定を変更できます。
/proc/sys/net/
ディレクトリーのみを説明します。
/proc/sys/net/core/
ディレクトリーには、カーネルとネットワーク層との間の相互作用を制御するさまざまな設定が含まれています。これらのファイルの最も重要なのは、以下のとおりです。
message_burst
:message_cost
で定義される期間のカーネルログに書き込まれる新しい警告メッセージの最大数を設定します。このファイルのデフォルト値は10
です。message_cost
と組み合わせて、この設定は、ネットワークコードからカーネルログに書き込まれた警告メッセージのレート制限を強制し、サービス 拒否(DoS )攻撃を軽減するために使用されます。DoS 攻撃の考え方は、エラーを生成し、ログファイルでディスクパーティションをいっぱいにするか、エラーロギングを処理するためにすべてのシステムのリソースを必要とするリクエストでターゲットシステムを提供することです。message_burst
およびmessage_cost
の設定は、システムの許容リスクと包括的なロギングのニーズに基づいて変更されるように設計されています。たとえば、message_burst
を 10 に設定し、message_cost
を 5 に設定すると、システムは 5 秒ごとに最大 10 個のメッセージ数を書き込むことができます。message_cost
:message_burst
の期間を定義して、すべての警告メッセージにコストを設定します。値が大きいほど、警告メッセージが無視されます。このファイルのデフォルト値は5
です。netdev_max_backlog
- 特定のインターフェースがパケットを処理できるよりも早く受信した場合に許可されるパケットの最大数を設定します。このファイルのデフォルト値は1000
です。optmem_max
: ソケットごとに許容される最大バッファーサイズを設定します。rmem_default
- 受信ソケットバッファーのデフォルトサイズをバイト単位で設定します。rmem_max
- 受信ソケットバッファーの最大サイズをバイト単位で設定します。wmem_default
: 送信ソケットバッファーのデフォルトサイズをバイト単位で設定します。wmem_max
: 送信ソケットバッファーの最大サイズをバイト単位で設定します。
/proc/sys/net/ipv4/
ディレクトリーには、追加のネットワーク設定が含まれます。これらの設定は、相互と併用されるものの多くは、システムに対する攻撃を防止したり、システムをルーターとして機能させたりする際に役立ちます。
/proc/sys/net/ipv4/
ディレクトリーにある重要なファイルの一部です。
icmp_echo_ignore_all
とicmp_echo_ignore_broadcasts
: カーネルが、すべてのホストからの ICMP ECHO パケットを無視すること、またはブロードキャストアドレスとマルチキャストアドレスから発信元のものだけを無視できるようにします。0
の値はカーネルが応答できますが、1
の値はパケットを無視します。ip_default_ttl
: デフォルトの Time To Live(TTL) を設定します。これにより、宛先に到達する前にパケットが実行できるホップ数が制限されます。この値を増やすと、システムパフォーマンスが低下する可能性があります。ip_forward
: システム上のインターフェースからパケットを転送するのを許可します。デフォルトでは、このファイルは0
に設定されます。このファイルを1
に設定すると、ネットワークパケットの転送が可能になります。ip_local_port_range
: ローカルポートが必要な場合に TCP または UDP が使用するポートの範囲を指定します。最初の番号は使用される最小ポートで、2 番目の番号は最も高いポートを指定します。デフォルト 1024 から 4999 よりも多くのポートを必要とするシステムは、32768 から 61000 の範囲を使用する必要があります。tcp_syn_retries
: 接続の試行時にシステムが SYN パケットを再転送する回数に制限を指定します。tcp_retries1
- 受信接続への応答が許可される再送信の数を設定します。デフォルトは3
です。tcp_retries2
: TCP パケットの許可される再送信の数を設定します。デフォルトは15
です。
/usr/share/doc/kernel-doc-kernel_version/Documentation/networking/ip-sysctl.txt
ファイルには、/proc/sys/net/ipv 4/ ディレクトリーおよび /proc/sys/net/ipv6/
ディレクトリーで利用可能なファイルとオプションの一覧が含まれています。sysctl -a コマンドを使用して、sysctl キー形式でパラメーターを一覧表示します。
/proc/sys/net/ipv4/
ディレクトリーには、ネットワークスタックのさまざまな側面をカバーします。/proc/sys/net/ipv4/conf/
ディレクトリーを使用すると、未設定のデバイス(/proc/sys/net/ipv4/conf/default / サブディレクトリー内)のデフォルト設定の使用や、(/proc/sys/net/ipv4/conf
/all /
サブディレクトリー内)の上書きの設定など、各システムインターフェースを異なる方法で設定できます。
rp_filter
ファイルで設定を変更する前に、『Red Hat Enterprise Linux 6nbsp; Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 Security Guide』の「Reverse Path Forwarding」および「 『Red Hat』 ナレッジベースアーティクル「 rp_filter
」を参照 してください。
/proc/sys/net/ipv4/neigh/
ディレクトリーには、システムに直接接続されたホスト(ネットワーク近い と呼ばれる)と通信する設定が含まれており、複数のホップ離れているシステム用の異なる設定も含まれます。
/proc/sys/net/ipv4/route/
もあります。conf/
および neigh/
とは異なり、/ proc/sys/net/ipv4/route/
ディレクトリーには、システム上の任意のインターフェースとのルーティングに適用される仕様が含まれます。max_size
、max_delay
、min_delay
などの設定の多くは、ルーティングキャッシュのサイズ制御に関連します。ルーティングキャッシュを削除するには、すべての値を フラッシュ
ファイルに書き込みます。
/usr/share/doc/kernel-doc-kernel_version/Documentation/filesystems/proc.txt
E.3.9.5. /proc/sys/vm/
/proc/sys/vm/
ディレクトリーにあります。
block_dump
: 有効な場合はブロック I/O デバッグを設定します。ファイルに実行された読み取り/書き込みおよびブロックのダーティー操作はすべて、それに応じてログに記録されます。これは、ラップトップのバッテリーコンサービス向けに、ディスクのスピンアップとスピンダウンを診断する場合に便利です。block_dump
が有効になっている場合のすべての出力は、dmesg で取得できます。デフォルト値は0
です。klogd デーモンの停止block_dump
がカーネルのデバッグと同時に有効になっている場合は、block_dump
によって発生する間違ったディスクアクティビティーが生成されるため、klogd デーモンを停止するのは困難です。dirty_background_ratio
: pdflush デーモンを介して、合計メモリーの割合でダーティーデータのバックグラウンドライトバックを開始します。デフォルト値は 10 です。dirty_expire_centisecs
: ダーティーインメモリーデータが書き込みアウトの対象となるのに十分な古いタイミングを定義します。この間隔よりもダーティーなインメモリーであったデータは、次に pdflush デーモンがウェイクアップしたときに書き出されます。デフォルト値は 3000 で、1 秒の 100 分の 1 で表されます。dirty_ratio
: pdflush でダーティーデータのジェネレーターの合計メモリーの割合で、ダーティーデータのアクティブなライトバックを開始します。デフォルト値は 20 です。dirty_writeback_centisecs
: pdflush デーモンのウェイクアップの間隔を定義します。これは、ダーティーなインメモリーデータをディスクに定期的に書き込みます。デフォルト値は 500 で、1 秒の 100 分の 1 で表されます。laptop_mode
: できるだけディスクスペースを下げてハードディスクを起動する必要がある回数を最小限に抑えるため、ラップトップでバッテリー電源を確保します。これにより、将来のすべての I/O プロセスを組み合わせてスピンアップする頻度を削減することで、効率性が向上します。デフォルト値は0
ですが、ラップトップ上のバッテリーが使用されている場合に自動的に有効になります。この値は、ユーザーにバッテリー電源が有効になっていると、auid デーモンによって自動的に制御されます。ラップトップが ACPI(Advanced Configuration and Power Interface)仕様をサポートする場合は、ユーザーの変更や対話は必要ありません。詳細は、以下のインストール済みドキュメントを参照してください。/usr/share/doc/kernel-doc-kernel_version/Documentation/laptop-mode.txt
max_map_count
: プロセスが持つことのできるメモリーマップエリアの最大数を設定します。多くの場合、65536
のデフォルト値が適切です。min_free_kbytes
- Linux 仮想マシン(仮想メモリーマネージャー)を強制して、最小キロバイト数をそのまま保持します。仮想マシンはこの数値を使用して、システムのlowmem
ゾーンごとにpages_min
値を計算します。デフォルト値は、マシンの合計メモリーに対応します。nr_hugepages
: カーネルに設定されたhugetlb
ページの現在の数を示します。詳細は、以下のインストール済みドキュメントを参照してください。/usr/share/doc/kernel-doc-kernel_version/Documentation/vm/hugetlbpage.txt
nr_pdflush_threads
: 現在実行している pdflush デーモンの数を指定します。このファイルは読み取り専用であるため、ユーザーが変更することはできません。I/O 負荷が大きい場合、カーネルによってデフォルト値が 2 に増えます。overcommit_memory
: 大規模なメモリー要求が許可または拒否される条件を設定します。以下の 3 つのモードを使用できます。- 0 - カーネルは、利用可能なメモリー量と、フラットな無効なリクエストに見積もって、コミット処理でヒューリスティックなメモリーを実行します。ただし、メモリーは正確なアルゴリズムではなくヒューリスティックで割り当てられるため、この設定により、システムで利用可能なメモリーをオーバーロードできることがあります。これはデフォルトの設定です。
- 1 - カーネルは、コミット処理にメモリーを実行しません。この設定では、メモリーのオーバーロードの可能性は増大するため、メモリー集約されたタスク(一部の標準ソフトウェアによって実行されるタスクなど)に対してパフォーマンスが向上します。
- 2 - カーネルは、割り当てられたスワップ領域の合計と、
/proc/sys/vm/overcommit_ratio
で指定された物理 RAM のパーセンテージを超過するメモリーの要求に障害が発生します。この設定は、メモリーのオーバーコミットのリスクが少なくなるべく最適です。この設定の使用この設定は、物理メモリーよりも大きい swap 領域を持つシステムにのみ推奨されます。
overcommit_ratio
:/proc/sys/vm/overcommit_memory
が 2 に設定されている場合に考慮される物理 RAM のパーセンテージを指定します。デフォルト値は 50 です。page-cluster
: 1 回試行で読み込まれたページ数を設定します。16 ページに実際に関連する3
のデフォルト値は、ほとんどのシステムに適しています。swappiness
: スワップするマシンのサイズを決定します。値が大きいほどスワップが増えます。パーセンテージでデフォルト値は60
に設定されます。
/usr/share/doc/kernel-doc-kernel_version/Documentation/
。これには追加情報が含まれています。
E.3.10. /proc/sysvipc/
msg
)、セmaphores(sem
)、および共有メモリー(shm
)の System V IPC 呼び出しに関連します。
E.3.11. /proc/tty/
ドライバー
ファイルは、以下の例のように、現在使用中の tty デバイスの一覧です。
serial /dev/cua 5 64-127 serial:callout serial /dev/ttyS 4 64-127 serial pty_slave /dev/pts 136 0-255 pty:slave pty_master /dev/ptm 128 0-255 pty:master pty_slave /dev/ttyp 3 0-255 pty:slave pty_master /dev/pty 2 0-255 pty:master /dev/vc/0 /dev/vc/0 4 0 system:vtmaster /dev/ptmx /dev/ptmx 5 2 system /dev/console /dev/console 5 1 system:console /dev/tty /dev/tty 5 0 system:/dev/tty unknown /dev/vc/%d 4 1-63 console
/proc/tty/driver/serial
ファイルには、各シリアル tty 行の使用状況の統計とステータスが表示されます。
E.3.12. /proc/PID/
/proc/sys/vm/panic_on_oom
で OOM の動作を制御するスイッチがあります。1
に設定すると、カーネルは OOM でパニックが生じます。0
の設定は、カーネルに対し、OOM で oom_killer
という名前の関数を呼び出すように指示します。通常、oom_killer
は不正なプロセスを強制終了し、システムは存続します。
/proc/sys/vm/panic_on_oom
にエコーすることです。
# cat /proc/sys/vm/panic_on_oom 1 # echo 0 > /proc/sys/vm/panic_on_oom # cat /proc/sys/vm/panic_on_oom 0
oom_killer
スコアを調整して、プロセスの強制終了を優先することもできます。/proc/PID/
には、oom_adj
と oom_score
という 2 つのツールのラベルがあります。oom_adj
の有効なスコアは、-16 から +15 の範囲にあります。現在の oom_killer
スコアを表示するには、プロセスの oom_score
を表示します。oom_killer
は、スコアが最も高いプロセスを強制終了します。
oom_killer
が強制終了する可能性が低くなります。
# cat /proc/12465/oom_score 79872 # echo -5 > /proc/12465/oom_adj # cat /proc/12465/oom_score 78
oom_killer
が無効になります。以下の例では、oom_score
は 0 の値を返し、このプロセスは強制終了されないことを示します。
# cat /proc/12465/oom_score 78 # echo -17 > /proc/12465/oom_adj # cat /proc/12465/oom_score 0
badness()
と呼ばれる関数を使用して、各プロセスの実際のスコアを決定します。これは、検査された各プロセスに「ポイント」を追加して行います。プロセススコアは以下の方法で行われます。
- 各プロセスのスコアのベースは、メモリーサイズです。
- プロセスの子(カーネルスレッドを含む)のメモリーサイズもスコアに追加されます。
- プロセスのスコアが「niced」プロセスのスコアが引き上げられ、長時間実行中のプロセスの場合は減少します。
CAP_SYS_ADMIN
およびCAP_SYS_RAWIO
機能を持つプロセスにより、スコアが減少します。- 最終的なスコアは、
oom_adj
ファイルに保存されている値によってビットシフトされます。
oom_score
値が最も高いプロセスは、ほとんどの場合権限がなく、その子とともに大量のメモリーを使用し、生の I/O を処理しない可能性があります。
E.4. sysctl コマンドの使用
/proc/sys/
ディレクトリーのカーネル設定を表示、設定、および自動化します。
/proc/sys/
ディレクトリーで設定可能なすべての設定の概要は、root で /sbin/sysctl -a コマンドを入力します。これにより、以下のような小規模な一覧である、大規模で包括的な一覧が作成されます。
net.ipv4.route.min_pmtu = 552 kernel.sysrq = 0 kernel.sem = 250 32000 32 128
/proc/sys/net/ipv4/route/min_pmtu
ファイルは net.ipv4.route.min_pmtu
として一覧表示され、ディレクトリースラッシュはドットと proc.sys
の部分に置き換えられます。
/proc/sys/
ディレクトリーの書き込み可能なファイルに値を割り当てることができます。たとえば、コマンドを使用する代わりに使用されます。
echo 1 > /proc/sys/kernel/sysrq
sysctl -w kernel.sysrq="1" kernel.sysrq = 1
/proc/sys/
でこのような単一の値を設定すると、テスト中に便利ですが、/proc/sys/
内の特別な設定はマシンの再起動時に失われるため、この方法は実稼働システムでは機能しません。カスタム設定を保持するには、/etc/sysctl.conf
ファイルに追加します。
/etc/sysctl.conf
ファイルは、initscripts パッケージでインストールして、一部のカーネルのデフォルト値を上書きするため、使用できるパラメーターは一部だけ含まれます。sysctl -a コマンドを使用して、sysctl キー形式でパラメーターを一覧表示します。設定可能な設定の詳細は、/usr/share/doc/kernel-doc-kernel_version/Documentation/networking/ip-sysctl.txt
ファイルを参照してください。
/etc/rc.d/rc.sysinit
スクリプトを実行します。このスクリプトには、/etc/ sysctl.conf
を使用して sysctl を実行し、カーネルに渡される値を決定するコマンドが含まれます。したがって、/etc/sysctl.conf
に追加した値は、システムが起動するたびに有効になります。sysctl の解析後に読み込まれるモジュールは、この設定を上書きする可能性があることに注意してください。
E.5. その他のリソース
proc
ファイルシステムに関する追加情報の追加ソースです。
インストール可能なドキュメント
/usr/share/doc/kernel-doc-kernel_version/Documentation/
: kernel-doc パッケージが提供するこのディレクトリーには、proc
ファイルシステムに関するドキュメントが含まれています。カーネルのドキュメントにアクセスする前に、root で以下のコマンドを実行する必要があります。~]# yum install kernel-doc
/usr/share/doc/kernel-doc-kernel_version/Documentation/filesystems/proc.txt
:/proc/
ディレクトリーのあらゆる側面に関する情報が含まれます。/usr/share/doc/kernel-doc-kernel_version/Documentation/gitops.txt
: System Request Key オプションの概要/usr/share/doc/kernel-doc-kernel_version/Documentation/sysctl/
: カーネル(kernel.txt
)、ファイルシステムへのアクセス(fs.txt
)、および仮想メモリー使用量(vm.txt
)など、さまざまな sysctl ヒントを含むディレクトリー。/usr/share/doc/kernel-doc-kernel_version/Documentation/networking/ip-sysctl.txt
: IP ネットワークオプションの詳細な概要
付録F 改訂履歴
改訂履歴 | |||
---|---|---|---|
改訂 9-3 | Wed Mar 15 2017 | ||
| |||
改訂 8-3 | Mon May 30 2016 | ||
| |||
改訂 8-2 | Wed May 25 2016 | ||
| |||
改訂 8-1 | Thu May 10 2016 | ||
| |||
改訂 7-1 | Tue Jul 14 2015 | ||
| |||
改訂 7-0 | Fri Apr 17 2015 | ||
| |||
改訂 6-3 | Thu Apr 2 2015 | ||
| |||
改訂 6-2 | Fri Oct 14 2014 | ||
| |||
改訂 6-1 | Fri Aug 22 2014 | ||
| |||
改訂 6-0 | Mon Aug 11 2014 | ||
| |||
改訂 5-1 | Thu Nov 21 2013 | ||
| |||
改訂 5-0 | Thu Oct 3 2013 | ||
| |||
改訂 4-1 | Thu Feb 21 2013 | ||
| |||
改訂 4-0 | Thu Dec 6 2012 | ||
| |||
改訂 3-1 | Wed Jun 20 2012 | ||
| |||
改訂 3-0 | Tue Apr 24 2012 | ||
| |||
改訂 2-1 | Tue Dec 6 2011 | ||
| |||
改訂 2-0 | Mon Oct 3 2011 | ||
| |||
改訂 1-1 | Wed May 19 2011 | ||
| |||
改訂 1-0 | Tue Mar 22 2011 | ||
| |||
改訂 0-1 | Tue Nov 9 2010 | ||
| |||
改訂 0-0 | Mon Nov 16 2009 | ||
|
索引
シンボル
- .fetchmailrc, Fetchmail の設定オプション
- .htaccess , 一般的な httpd.conf ディレクティブ
- (参照 Apache HTTP サーバー )
- .htpasswd , 一般的な httpd.conf ディレクティブ
- (参照 Apache HTTP サーバー )
- .procmailrc, Procmail の設定
- /dev/oprofile/, /dev/oprofile/について
- /etc/named.conf (参照 BIND)
- /etc/sysconfig/ ディレクトリー (参照 sysconfig ディレクトリー)
- /etc/sysconfig/dhcpd, サーバーの起動と停止
- /proc/ ディレクトリー (参照 proc ファイルシステム)
- /var/spool/anacron , Anacron ジョブの設定
- /var/spool/cron , cron ジョブの設定
- アクセス制御
- SSSD での設定, ドメインの作成: アクセス制御
- SSSD ルール, ドメインの作成: アクセス制御
- イーサネット (参照 network)
- ウィンドウマネージャー (参照 X)
- カーネルのアップグレード
- 準備, アップグレードの準備
- カーネルのインストール, カーネルの手動によるアップグレード
- カーネルダンプの設定 (参照 kdump)
- カーネルパッケージ
- kernel
- シングル、マルチプロセッサーシステムの場合, カーネルパッケージの概要
- kernel-devel
- カーネルヘッダーおよび makefiles, カーネルパッケージの概要
- kernel-doc
- ドキュメントファイル, カーネルパッケージの概要
- kernel-firmware
- ファームウェアファイル, カーネルパッケージの概要
- kernel-headers
- C ヘッダーファイル, カーネルパッケージの概要
- perf
- ファームウェアファイル, カーネルパッケージの概要
- カーネルモジュール
- files
- /proc/modules, 現在ロードされているモジュールの一覧表示
- アンロード, モジュールのアンロード
- ディレクトリー
- /etc/sysconfig/modules/, 永続的なモジュールの読み込み
- /lib/modules/<kernel_version>/kernel/drivers/, モジュールの読み込み
- ボンディングモジュール, チャンネルボンディングの使用
- ボンディングインターフェースのパラメーター, ボンディングモジュールのディレクティブ
- 説明, チャンネルボンディングの使用
- モジュールパラメーター
- サプライ, モジュールパラメーターの設定
- ボンディングモジュールパラメーター, ボンディングモジュールのディレクティブ
- ユーティリティー
- insmod, モジュールの読み込み
- lsmod, 現在ロードされているモジュールの一覧表示
- modinfo, モジュール情報の表示
- modprobe, モジュールの読み込み, モジュールのアンロード
- rmmod, モジュールのアンロード
- リスト
- モジュール情報, モジュール情報の表示
- 現在読み込まれているモジュール, 現在ロードされているモジュールの一覧表示
- ロード中
- ブート時, 永続的なモジュールの読み込み
- 現在のセッションの場合, モジュールの読み込み
- 定義, カーネルモジュールの使用
- キャッシュファイルの削除
- SSSD の場合, SSSD キャッシュの管理
- キーボードの設定, キーボードの設定 (参照 キーボードの設定)
- break の入力, 一休みの設定
- キーボードインディケーター アプレット, キーボードレイアウト表示器の追加
- キーボード設定 ユーティリティー, キーボードレイアウトの変更
- レイアウト, キーボードレイアウトの変更
- キーボードインデクシエーター (参照 キーボードの設定)
- グループ設定
- グループプロパティーの変更, グループプロパティーの変更
- サブスクリプション, システム登録およびサブスクリプション管理
- サービス (参照 サービスの設定)
- サービスの設定, サービスおよびデーモン
- chkconfig, chkconfig ユーティリティーの使用
- ntsysv, ntsysv ユーティリティーの使用
- runlevel, デフォルトのランレベルの設定
- system-config-services, Service 設定ユーティリティーの使用
- サービス, サービスの実行
- サービス攻撃の拒否, /proc/sys/net/
- (参照 /proc/sys/net/ ディレクトリー)
- 定義, /proc/sys/net/
- システム
- サブスクリプション管理, システム登録およびサブスクリプション管理
- 登録, システム登録およびサブスクリプション管理
- システムの要求キー
- 有効化, /proc/sys/
- システムモニター, システムモニターツールの使用, システムモニターツールの使用, システムモニターツールの使用, システムモニターツールの使用
- システム分析
- oprofile (参照 OProfile)
- システム情報
- cpu usage, CPU 使用率の表示
- gathering, システムモニタリングツール
- processes, システムプロセスの表示
- 現在実行中の, top コマンドの使用
- ハードウェア, ハードウェア情報の表示
- ファイルシステム, ブロックデバイスとファイルシステムの表示
- メモリー使用量, メモリ使用量の表示
- スラブプール (参照 /proc/slabinfo)
- セカンダリーネームサーバー (参照 BIND)
- セキュリティー プラグイン (参照 セキュリティー)
- セキュリティー関連のパッケージ
- セキュリティー関連パッケージの更新, パッケージの更新
- タイムゾーンの設定, タイムゾーンのプロパティ
- ダウングレード
- および SSSD, SSSD のダウングレード
- チャネルボンディング
- configuration, チャンネルボンディングの使用
- interface
- ボンディングインターフェースのパラメーター, ボンディングモジュールのディレクティブ
- 説明, チャンネルボンディングの使用
- チャネルボンディングインターフェース (参照 カーネルモジュール)
- ツール
- Authentication Configuration Tool, システム認証の設定
- ディスプレイマネージャー (参照 X)
- デスクトップ環境 (参照 X)
- デフォルトゲートウェイ, 静的ルートおよびデフォルトのゲートウェイ
- ドキュメント
- インストール済みの検索, RPM の使用方法に関する実例および一般的な例
- ネットワークタイムプロトコル (参照 NTP)
- ハードウェア
- 表示する, ハードウェア情報の表示
- パッケージグループのインストール
- PackageKit でパッケージグループのインストール, パッケージグループのインストールおよび削除
- パッケージグループの削除
- PackageKit を使用したパッケージグループの削除, パッケージグループのインストールおよび削除
- ファイル、proc ファイルシステム
- 変更, 仮想ファイルの変更, sysctl コマンドの使用
- 表示する, 仮想ファイルの表示, sysctl コマンドの使用
- ファイルシステム, ブロックデバイスとファイルシステムの表示
- virtual (参照 proc ファイルシステム)
- フレームバッファーデバイス, /proc/fb
- (参照 /proc/fb)
- ブロックデバイス, /proc/devices
- (参照 /proc/devices)
- 定義, /proc/devices
- ブートメディア, アップグレードの準備
- ブートローダー
- 検証, ブートローダーの確認
- プライマリーネームサーバー (参照 BIND)
- プリンター (参照 プリンターの設定)
- プリンターの設定
- CUPS, プリンターの設定
- IPP プリンター, IPP プリンターの追加
- LDP/LPR プリンター, LPD/LPR Host or Printer の追加
- Samba プリンター, Samba (SMB) プリンターの追加
- プリンターの共有, プリンターの共有
- ローカルプリンター, ローカルプリンターの追加
- 印刷ジョブ, 印刷ジョブの管理
- 新規プリンター, プリンター設定の開始
- 設定, 設定のページ
- ボンディング (参照 チャネルボンディング)
- メモリー使用量, メモリ使用量の表示
- メールユーザーエージェント, メール転送エージェント (MTA) の設定 (参照 email)
- メール転送エージェント (Mail Transport Agent) (参照 email) (参照 MTA)
- メール転送エージェントスイッチ, メール転送エージェント (MTA) の設定
- メール配信エージェント (MDA) (参照 email)
- モジュールパラメーター (参照 カーネルモジュール)
- リソースレコード (参照 BIND)
- ログファイル, ログファイルの表示と管理
- (参照 ログファイルビューアー)
- description, ログファイルの表示と管理
- monitoring, ログファイルのモニタリング
- rotating, ログファイルの場所の特定
- rsyslogd daemon, ログファイルの表示と管理
- 検索, ログファイルの場所の特定
- 表示する, ログファイルの表示
- ログファイルビューアー, グラフィカル環境でのログファイルの管理
- monitoring, ログファイルのモニタリング
- フィルタリング, ログファイルの表示
- 更新レート, ログファイルの表示
- 検索, ログファイルの表示
- 仮想ファイル (参照 proc ファイルシステム)
- 仮想ファイルシステム (参照 proc ファイルシステム)
- 仮想ホスト (参照 Apache HTTP サーバー )
- 再帰ネームサーバー (参照 BIND)
- 初期 RAM ディスクイメージ
- 検証, 初期 RAM ディスクイメージの確認
- IBM eServer System i, 初期 RAM ディスクイメージの確認
- 初期 RPM リポジトリー
- インストール可能なパッケージ, RPM パッケージの検索
- 動的ホスト設定プロトコル(Pu Dynamic Host Configuration Protocol) (参照 DHCP)
- 完全修飾ドメイン名, ネームサーバーゾーン
- 実行ドメイン, /proc/execdomains
- (参照 /proc/execdomains)
- 定義, /proc/execdomains
- 情報
- システムについて, システムモニタリングツール
- 文字デバイス, /proc/devices
- (参照 /proc/devices)
- 定義, /proc/devices
- 日付 (参照 日付の設定)
- 日付の設定
- system-config-date, 日付と時刻のプロパティ
- 日付, 日付と時刻の設定
- 時間設定
- NTP サーバーとの同期, ネットワーク時刻プロトコルのプロパティ, ネットワーク時刻プロトコルの設定
- system-config-date, 日付と時刻のプロパティ
- 日付, 日付と時刻の設定
- 権威ネームサーバー (参照 BIND)
- 現在インストールされているパッケージの更新
- 利用可能な更新, ソフトウェア更新によるパッケージの更新
- 自動タスク, システムタスクの自動化
- 設定ファイルの変更, 設定ファイルの変更の保存
- 静的ルート, 静的ルートおよびデフォルトのゲートウェイ
- (参照 oprofile)
A
- anacron, cron および Anacron
- anacron 設定ファイル, Anacron ジョブの設定
- ユーザー定義のタスク, Anacron ジョブの設定
- anacrontab , Anacron ジョブの設定
- Apache HTTP サーバー
- files
- .htaccess , 一般的な httpd.conf ディレクティブ
- .htpasswd , 一般的な httpd.conf ディレクティブ
- /etc/httpd/conf.d/nss.conf , mod_nss Module の有効化
- /etc/httpd/conf.d/ssl.conf , 一般的な ssl.conf ディレクティブ, mod_ssl モジュールの有効化
- /etc/httpd/conf/httpd.conf , 設定ファイルの編集, 一般的な httpd.conf ディレクティブ, 一般的な複数プロセスモジュールのディレクティブ
- /etc/httpd/logs/access_log , 一般的な httpd.conf ディレクティブ
- /etc/httpd/logs/error_log , 一般的な httpd.conf ディレクティブ
- /etc/httpd/run/httpd.pid , 一般的な httpd.conf ディレクティブ
- /etc/mime.types , 一般的な httpd.conf ディレクティブ
- modules
- mod_asis, 主な変更点
- mod_cache, 新機能
- mod_cern_meta, 主な変更点
- mod_disk_cache, 新機能
- mod_ext_filter, 主な変更点
- mod_proxy_balancer, 新機能
- mod_rewrite , 一般的な httpd.conf ディレクティブ
- mod_ssl , SSL サーバーの設定
- mod_userdir, 設定の更新
- ロード中, モジュールの読み込み
- 開発, モジュールの作成
- SSL サーバー
- certificate, 証明書およびセキュリティーの概要, 既存の鍵および証明書の使用, 新しい鍵と証明書の生成
- プライベートキー, 証明書およびセキュリティーの概要, 既存の鍵および証明書の使用, 新しい鍵と証明書の生成
- 公開鍵, 証明書およびセキュリティーの概要
- 認証局, 証明書およびセキュリティーの概要
- ディレクティブ
- <Directory> , 一般的な httpd.conf ディレクティブ
- <IfDefine> , 一般的な httpd.conf ディレクティブ
- <IfModule> , 一般的な httpd.conf ディレクティブ
- <location> , 一般的な httpd.conf ディレクティブ
- <Proxy> , 一般的な httpd.conf ディレクティブ
- <VirtualHost> , 一般的な httpd.conf ディレクティブ
- AccessFileName , 一般的な httpd.conf ディレクティブ
- AddDescription , 一般的な httpd.conf ディレクティブ
- AddEncoding , 一般的な httpd.conf ディレクティブ
- AddHandler , 一般的な httpd.conf ディレクティブ
- AddIcon , 一般的な httpd.conf ディレクティブ
- AddIconByEncoding , 一般的な httpd.conf ディレクティブ
- AddIconByType , 一般的な httpd.conf ディレクティブ
- AddLanguage , 一般的な httpd.conf ディレクティブ
- AddType , 一般的な httpd.conf ディレクティブ
- Alias , 一般的な httpd.conf ディレクティブ
- AllowOverride , 一般的な httpd.conf ディレクティブ
- BrowserMatch , 一般的な httpd.conf ディレクティブ
- CacheDefaultExpire , 一般的な httpd.conf ディレクティブ
- CacheDisable , 一般的な httpd.conf ディレクティブ
- CacheEnable , 一般的な httpd.conf ディレクティブ
- CacheLastModifiedFactor , 一般的な httpd.conf ディレクティブ
- CacheMaxExpire , 一般的な httpd.conf ディレクティブ
- CacheNegotiatedDocs , 一般的な httpd.conf ディレクティブ
- CacheRoot , 一般的な httpd.conf ディレクティブ
- CustomLog , 一般的な httpd.conf ディレクティブ
- DefaultIcon , 一般的な httpd.conf ディレクティブ
- DefaultType , 一般的な httpd.conf ディレクティブ
- DirectoryIndex , 一般的な httpd.conf ディレクティブ
- DocumentRoot , 一般的な httpd.conf ディレクティブ
- ErrorDocument , 一般的な httpd.conf ディレクティブ
- ErrorLog , 一般的な httpd.conf ディレクティブ
- ExtendedStatus , 一般的な httpd.conf ディレクティブ
- HeaderName , 一般的な httpd.conf ディレクティブ
- HostnameLookups , 一般的な httpd.conf ディレクティブ
- IndexIgnore , 一般的な httpd.conf ディレクティブ
- IndexOptions , 一般的な httpd.conf ディレクティブ
- KeepAlive , 一般的な httpd.conf ディレクティブ
- KeepAliveTimeout , 一般的な httpd.conf ディレクティブ
- LanguagePriority , 一般的な httpd.conf ディレクティブ
- listen , 一般的な httpd.conf ディレクティブ
- LoadModule , 一般的な httpd.conf ディレクティブ
- LogFormat , 一般的な httpd.conf ディレクティブ
- LogLevel , 一般的な httpd.conf ディレクティブ
- MaxClients , 一般的な複数プロセスモジュールのディレクティブ
- MaxKeepAliveRequests , 一般的な httpd.conf ディレクティブ
- MaxSpareServers , 一般的な複数プロセスモジュールのディレクティブ
- MaxSpareThreads , 一般的な複数プロセスモジュールのディレクティブ
- MinSpareServers , 一般的な複数プロセスモジュールのディレクティブ
- MinSpareThreads , 一般的な複数プロセスモジュールのディレクティブ
- NameVirtualHost , 一般的な httpd.conf ディレクティブ
- PidFile , 一般的な httpd.conf ディレクティブ
- ProxyRequests , 一般的な httpd.conf ディレクティブ
- ReadmeName , 一般的な httpd.conf ディレクティブ
- ScriptAlias , 一般的な httpd.conf ディレクティブ
- ServerAdmin , 一般的な httpd.conf ディレクティブ
- ServerName , 一般的な httpd.conf ディレクティブ
- ServerRoot , 一般的な httpd.conf ディレクティブ
- ServerSignature , 一般的な httpd.conf ディレクティブ
- ServerTokens , 一般的な httpd.conf ディレクティブ
- SetEnvIf , 一般的な ssl.conf ディレクティブ
- StartServers , 一般的な複数プロセスモジュールのディレクティブ
- SuexecUserGroup , 一般的な httpd.conf ディレクティブ
- ThreadsPerChild , 一般的な複数プロセスモジュールのディレクティブ
- TypesConfig , 一般的な httpd.conf ディレクティブ
- UseCanonicalName , 一般的な httpd.conf ディレクティブ
- UserDir , 一般的な httpd.conf ディレクティブ
- アクション , 一般的な httpd.conf ディレクティブ
- オプション , 一般的な httpd.conf ディレクティブ
- グループ , 一般的な httpd.conf ディレクティブ
- タイムアウト , 一般的な httpd.conf ディレクティブ
- ユーザー , 一般的な httpd.conf ディレクティブ
- リダイレクト , 一般的な httpd.conf ディレクティブ
- 包含 , 一般的な httpd.conf ディレクティブ
- 拒否 , 一般的な httpd.conf ディレクティブ
- 許可 , 一般的な httpd.conf ディレクティブ
- 順序 , 一般的な httpd.conf ディレクティブ
- ディレクトリー
- /etc/httpd/ , 一般的な httpd.conf ディレクティブ
- /etc/httpd/conf.d/ , 設定ファイルの編集, 一般的な httpd.conf ディレクティブ
- /usr/lib/httpd/modules/ , 一般的な httpd.conf ディレクティブ, モジュールの使用
- /usr/lib64/httpd/modules/ , 一般的な httpd.conf ディレクティブ, モジュールの使用
- /var/cache/mod_proxy/ , 一般的な httpd.conf ディレクティブ
- /var/www/cgi-bin/ , 一般的な httpd.conf ディレクティブ
- /var/www/html/ , 一般的な httpd.conf ディレクティブ
- /var/www/icons/ , 一般的な httpd.conf ディレクティブ
- ~/public_html/ , 一般的な httpd.conf ディレクティブ
- バージョン 2.2
- 仮想ホスト, 仮想ホストの設定
- 停止, サービスの停止
- 再起動, サービスの再起動
- 状態の確認, サービスステータスの確認
- 設定の確認, 設定ファイルの編集
- 軌道, サービスの起動
- 関連情報
- at , at および Batch
- 関連資料, その他のリソース
- authconfig (参照 Authentication Configuration Tool)
- commands, コマンドラインでの認証設定
- authentication
- Authentication Configuration Tool, システム認証の設定
- スマートカード認証の使用, スマートカード認証の有効化
- フィンガープリントのサポートの使用, フィンガープリント認証の使用
- Authentication Configuration Tool
- および LDAP, LDAP 認証の設定
- および NIS, NIS 認証の設定
- および Winbind, Winbind 認証の設定
- および Winbind 認証, Winbind 認証の設定
- およびKerberos 認証, LDAP または NIS 認証での Kerberos の使用
B
- batch , at および Batch
- 関連資料, その他のリソース
- BIND
- features
- DNSSEC (DNS Security Extensions), DNSSEC (DNS Security Extensions)
- IXFR (インクリメンテーションゾーン転送), IXFR (Incremental Zone Transfers 差分ゾーン転送)
- インターネットプロトコルバージョン 6 (IPv6), インターネットプロトコルバージョン 6 (IPv6)
- トランザクション SIGnature (TSIG), Transaction SIGnatures トランザクション署名 (TSIG)
- 自動ゾーン転送 (AXFR), IXFR (Incremental Zone Transfers 差分ゾーン転送)
- 複数のビュー, 複数表示
- ゾーン
- $INCLUDE ディレクティブ, 一般的なディレクティブ
- $ORIGIN ディレクティブ, 一般的なディレクティブ
- $ttl ディレクティブ, 一般的なディレクティブ
- A (アドレス) リソースレコード, 一般的なリソースレコード
- CNAME (Canonical Name) リソースレコード, 一般的なリソースレコード
- description, ネームサーバーゾーン
- MX (Mail Exchange) リソースレコード, 一般的なリソースレコード
- NS (Nameserver) リソースレコード, 一般的なリソースレコード
- PTR (Pointer) リソースレコード, 一般的なリソースレコード
- SOA (SOver Authority)リソースレコード, 一般的なリソースレコード
- コメントタグ, コメントタグ
- 使用例, 単純なゾーンファイル, 逆引き名前解決ゾーンファイル
- タイプ
- セカンダリー(スレーブ)ネームサーバー, ネームサーバーゾーン, ネームサーバーの種別
- プライマリー(マスター)ネームサーバー, ネームサーバーゾーン, ネームサーバーの種別
- 再帰ネームサーバー, ネームサーバーの種別
- 権威ネームサーバー, ネームサーバーの種別
- ディレクトリー
- /etc/named/ , named サービスの設定
- /var/named/ , ゾーンファイルの編集
- /var/named/data/ , ゾーンファイルの編集
- /var/named/dynamic/ , ゾーンファイルの編集
- /var/named/slaves/ , ゾーンファイルの編集
- ファイル
- /etc/named.conf , named サービスの設定, ユーティリティーの設定
- /etc/rndc.conf , ユーティリティーの設定
- /etc/rndc.key , ユーティリティーの設定
- ユーティリティー
- リソースレコード, ネームサーバーゾーン
- 一般的な間違い, 回避すべき一般的な間違い
- 設定
- ACL ステートメント, 一般的なステートメントのタイプ
- controls ステートメント, その他のステートメントタイプ
- include ステートメント, 一般的なステートメントのタイプ
- key ステートメント, その他のステートメントタイプ
- logging ステートメント, その他のステートメントタイプ
- options ステートメント, 一般的なステートメントのタイプ
- server statement, その他のステートメントタイプ
- trusted-keys ステートメント, その他のステートメントタイプ
- view ステートメント, その他のステートメントタイプ
- zone ステートメント, 一般的なステートメントのタイプ
- コメントタグ, コメントタグ
- 関連資料
- インストールされているドキュメント, インストールされているドキュメント
- 便利な Web サイト, 便利な Web サイト
- 関連書籍, 関連書籍
- BIND (Berkeley Internet Name Domain) (参照 BIND)
- blkid, blkid コマンドの使用
C
- ch-email .fetchmailrc
- グローバルオプション, グローバルオプション
- chkconfig (参照 サービスの設定)
- CPU usage (CPU の使用率), CPU 使用率の表示
- crash
- システム要件, コアダンプの分析
- ダンプの分析
- processes, プロセスステータスの表示
- オープンファイル, オープンファイルの表示
- スタックトレース, バックトレースの表示
- メッセージバッファー, メッセージバッファーの表示
- 仮想メモリー, 仮想メモリー情報の表示
- ダンプイメージを開く, crash ユーティリティーの実行
- createrepo, yum リポジトリーの作成
- cron, cron および Anacron
- cron 設定ファイル, cron ジョブの設定
- ユーザー定義のタスク, cron ジョブの設定
- 関連資料, その他のリソース
- crontab , cron ジョブの設定
- CUPS (参照 プリンターの設定)
D
- df, df コマンドの使用
- DHCP, DHCP サーバー
- client configuration (クライアント設定), DHCPv4 クライアントの設定
- dhcpd.conf, 設定ファイル
- dhcpd.leases, サーバーの起動と停止
- dhcpd6.conf, IPv6 の DHCP (DHCPv6)
- DHCPv6, IPv6 の DHCP (DHCPv6)
- dhcrelay, DHCP リレーエージェント
- shared-network, 設定ファイル
- subnet (サブネット), 設定ファイル
- グループ, 設定ファイル
- グローバルパラメーター, 設定ファイル
- コマンドラインオプション, サーバーの起動と停止
- サーバーの停止, サーバーの起動と停止
- サーバーの起動, サーバーの起動と停止
- リレーエージェント, DHCP リレーエージェント
- 使用する理由, DHCP を使用する理由
- 接続先, DHCPv4 クライアントの設定
- 最後に、ほとんどの, 設定ファイル
- 関連資料, その他のリソース
- dhcpd.conf, 設定ファイル
- dhcpd.leases, サーバーの起動と停止
- DHCPv4
- サーバー設定, DHCPv4 サーバーの設定
- dhcrelay, DHCP リレーエージェント
- dig (参照 BIND)
- Directory Server (参照 OpenLDAP)
- DNS
- 定義, DNS Servers: DNS サーバーの IP アドレス
- (参照 BIND)
- DoS 攻撃 (参照 サービス攻撃の拒否)
- drivers (参照 カーネルモジュール)
- DSA キー
- 生成, 鍵ペアの生成
- du, du コマンドの使用
E
- Fetchmail, Fetchmail
- postfix, postfix
- procmail, メール配信エージェント (MDA)
- security, 通信のセキュリティー保護
- クライアント, セキュアな電子メールクライアント
- サーバー, 電子メールクライアントの通信のセキュリティー保護
- Sendmail, Sendmail
- spam
- フィルタリング, spam フィルター
- タイプ
- メールユーザーエージェント, メールユーザーエージェント
- メール転送エージェント (Mail Transport Agent), メール転送エージェント (Mail Transport Agent)
- メール配信エージェント (MDA), メール配信エージェント (MDA)
- プログラムの分類, 電子メールプログラムの分類
- プロトコル, メールプロトコル
- メールサーバー
- Dovecot, Dovecot
- 関連資料, その他のリソース
- インストールされているドキュメント, インストールされているドキュメント
- オンラインドキュメント, オンラインドキュメント
- 関連書籍, 関連書籍
- Enterprise Linux(EPEL)用の追加パッケージ
- インストール可能なパッケージ, RPM パッケージの検索
- epoch, /proc/stat
- (参照 /proc/stat)
- 定義, /proc/stat
- ethtool
- option
- --advertise , ethtool
- --autoneg , ethtool
- --duplex , ethtool
- --features , ethtool
- --identify , ethtool
- --msglvl , ethtool
- --phyad , ethtool
- --port , ethtool
- --show-features , ethtool
- --show-time-stamping , ethtool
- --sopass , ethtool
- --speed , ethtool
- --statistics , ethtool
- --test , ethtool
- --wol , ethtool
- --xcvr , ethtool
- コマンド
- devname , ethtool
- exec-shield
- 有効化, /proc/sys/kernel/
- 概要, /proc/sys/kernel/
F
- Fetchmail, Fetchmail
- コマンドオプション, Fetchmail のコマンドオプション
- Special, 特殊なオプション
- 情報提供, 情報提供またはデバッグのオプション
- 設定オプション, Fetchmail の設定オプション
- グローバルオプション, グローバルオプション
- サーバーオプション, サーバーオプション
- ユーザーオプション, ユーザーオプション
- 関連資料, その他のリソース
- findmnt, findmnt コマンドの使用
- findsmb, Samba 共有への接続
- findsmb プログラム, Samba ディストリビューションプログラム
- FQDN (参照 完全修飾ドメイン名)
- free, free コマンドの使用
- FTP, FTP
- (参照 vsftpd)
- アクティブモード, ファイル転送プロトコル (FTP)
- コマンドポート, ファイル転送プロトコル (FTP)
- データポート, ファイル転送プロトコル (FTP)
- パッシブモード, ファイル転送プロトコル (FTP)
- 定義, FTP
- 概要, ファイル転送プロトコル (FTP)
G
- gamin, gamin によるファイルおよびディレクトリーの監視
- GNOME, デスクトップ環境
- (参照 X)
- gnome-system-log (参照 ログファイルビューアー)
- gnome-system-monitor, システムモニターツールの使用, システムモニターツールの使用, システムモニターツールの使用, システムモニターツールの使用
- GnuPG
- RPM パッケージ署名の確認, パッケージの署名の確認
- groups
- 関連資料, その他のリソース
- インストールされているドキュメント, インストールされているドキュメント
- GRUB ブートローダー
- 設定, GRUB ブートローダーの設定
- 設定ファイル, GRUB ブートローダーの設定
H
- HTTP サーバー (参照 Apache HTTP サーバー)
- httpd (参照 Apache HTTP サーバー )
- hugepages
- 設定, /proc/sys/vm/
I
- ifdown, インターフェース制御スクリプト
- ifup, インターフェース制御スクリプト
- insmod, モジュールの読み込み
- (参照 カーネルモジュール)
K
- KDE, デスクトップ環境
- (参照 X)
- kdump
- fadump, IBM PowerPC ハードウェアにおける fadump の使用
- sadump, Fujitsu PRIMEQUEST システムにおける sadump の使用
- インストール, kdump サービスのインストール
- サービスの実行, コマンドラインで kdump の設定
- サービスの有効化, 初回起動時での kdump の設定, カーネルダンプ設定ユーティリティーの使用, コマンドラインで kdump の設定
- サービスの設定
- イメージの圧縮のダンプ, カーネルダンプ設定ユーティリティーの使用, コマンドラインで kdump の設定
- カーネルイメージ, カーネルダンプ設定ユーティリティーの使用, コマンドラインで kdump の設定
- カーネルオプション, カーネルダンプ設定ユーティリティーの使用, コマンドラインで kdump の設定
- ターゲットの場所, カーネルダンプ設定ユーティリティーの使用, コマンドラインで kdump の設定
- デフォルトアクション, カーネルダンプ設定ユーティリティーの使用, コマンドラインで kdump の設定
- フィルタリングレベル, カーネルダンプ設定ユーティリティーの使用, コマンドラインで kdump の設定
- メモリー使用量, 初回起動時での kdump の設定, カーネルダンプ設定ユーティリティーの使用, コマンドラインで kdump の設定
- 初期 RAM ディスク, カーネルダンプ設定ユーティリティーの使用, コマンドラインで kdump の設定
- 対応しているターゲット, カーネルダンプ設定ユーティリティーの使用, コマンドラインで kdump の設定
- システム要件, kdump サービスの設定
- ダンプの分析 (参照 crash)
- 設定のテスト, 設定のテスト
- 関連情報
- kernel
- package, カーネルの手動によるアップグレード
- RPM パッケージ, カーネルの手動によるアップグレード
- アップグレード
- 作業用ブートメディア, アップグレードの準備
- 準備, アップグレードの準備
- カーネルのアップグレード, カーネルの手動によるアップグレード
- カーネルアップグレードの実行, アップグレードの実行
- カーネルパッケージ, カーネルパッケージの概要
- カーネルパッケージのインストール, カーネルの手動によるアップグレード
- ダウンロード中, アップグレードされたカーネルのダウンロード
- 利用可能なアップグレードカーネル, アップグレードされたカーネルのダウンロード
- Red Hat ネットワーク, アップグレードされたカーネルのダウンロード
- セキュリティーエラータ, アップグレードされたカーネルのダウンロード
- kwin, ウィンドウマネージャー
- (参照 X)
L
- LDAP (参照 OpenLDAP)
- logrotate, ログファイルの場所の特定
- lsblk, lsblk コマンドの使用
- lscpu, lscpu コマンドの使用
- lsmod, 現在ロードされているモジュールの一覧表示
- (参照 カーネルモジュール)
- lspci, lspci コマンドの使用, /proc/bus/pci
- lspcmcia, lspcmcia コマンドの使用
- lsusb, lsusb コマンドの使用
M
- MDA (参照 メール配信エージェント (MDA))
- metacity, ウィンドウマネージャー
- (参照 X)
- modinfo, モジュール情報の表示
- (参照 カーネルモジュール)
- modprobe, モジュールの読み込み, モジュールのアンロード
- (参照 カーネルモジュール)
- module (参照 カーネルモジュール)
- MTA (参照 メール転送エージェント (Mail Transport Agent))
- デフォルトの設定, メール転送エージェント (MTA) の設定
- メール転送エージェントスイッチスイッチによる切り替え, メール転送エージェント (MTA) の設定
- MUA, メール転送エージェント (MTA) の設定 (参照 メールユーザーエージェント)
- Multihomed DHCP
- サーバー設定, マルチホーム DHCP サーバーの設定
- ホストの設定, ホストの設定
- mwm, ウィンドウマネージャー
- (参照 X)
N
- named (参照 BIND)
- nameserver (参照 DNS)
- Net プログラム, Samba ディストリビューションプログラム
- network
- bridge
- ブリッジ, ネットワークブリッジ
- commands
- /sbin/ifdown, インターフェース制御スクリプト
- /sbin/ifup, インターフェース制御スクリプト
- /sbin/service network, インターフェース制御スクリプト
- configuration, インターフェース設定ファイル
- interfaces
- 802.1Q, 802.1Q VLAN タグの設定
- alias, エイリアスとクローンファイル
- clone, エイリアスとクローンファイル
- Dialup, 診断インターフェース
- ethtool, ethtool
- VLAN, 802.1Q VLAN タグの設定
- イーサネット, イーサネットインターフェース
- チャネルボンディング, チャンネルボンディングインターフェース
- インターフェース設定ファイル, インターフェース設定ファイル
- スクリプト, Network Interfaces
- 設定ファイル, ネットワーク設定ファイル
- 関数, ネットワーク機能ファイル
- 関連資料, その他のリソース
- NIC
- 単一チャネルへのバインディング, チャンネルボンディングの使用
- nmblookup program, Samba ディストリビューションプログラム
- NSCD
- および SSSD, SSSD での NSCD の使用
- NTP
- ntpd, ネットワーク時刻プロトコルのプロパティ, ネットワーク時刻プロトコルの設定
- ntpdate, ネットワーク時刻プロトコルの設定
- 設定, ネットワーク時刻プロトコルのプロパティ, ネットワーク時刻プロトコルの設定
- ntpd (参照 NTP)
- ntpdate (参照 NTP)
- ntsysv (参照 サービスの設定)
O
- opannotate (参照 oprofile)
- opcontrol (参照 oprofile)
- OpenLDAP
- client application (クライアントアプリケーション), 共通 LDAP クライアントアプリケーションの概要
- configuration
- database, データベース固有の設定の変更
- グローバル, グローバル設定の変更
- 概要, OpenLDAP サーバーの設定
- features, OpenLDAP の機能
- files
- /etc/openldap/ldap.conf, OpenLDAP サーバーの設定
- /etc/openldap/slapd.d/cn=config.ldif, グローバル設定の変更
- /etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif, データベース固有の設定の変更
- packages, OpenLDAP スイートのインストール
- schema, スキーマの拡張
- インストール, OpenLDAP スイートのインストール
- ディレクティブ
- olcAllows, グローバル設定の変更
- olcConnMaxPending, グローバル設定の変更
- olcConnMaxPendingAuth, グローバル設定の変更
- olcDisallows, グローバル設定の変更
- olcIdleTimeout, グローバル設定の変更
- olcLogFile, グローバル設定の変更
- olcReadOnly, データベース固有の設定の変更
- olcReferral, グローバル設定の変更
- olcRootDN, データベース固有の設定の変更
- olcRootPW, データベース固有の設定の変更
- olcSuffix, データベース固有の設定の変更
- olcWriteTimeout, グローバル設定の変更
- ディレクトリー
- /etc/openldap/slapd.d/, OpenLDAP サーバーの設定
- /etc/openldap/slapd.d/cn=config/cn=schema/, スキーマの拡張
- ユーティリティー, OpenLDAP サーバーユーティリティーの概要, OpenLDAP クライアントユーティリティーの概要
- 停止, サービスの停止
- 再起動, サービスの再起動
- 実行中, サービスの起動
- 状態の確認, サービスステータスの確認
- 用語
- 認証情報の移行, 以前の認証情報の LDAP 形式への移行
- OpenSSH, OpenSSH, 主な特長
- (参照 SSH)
- DSA キー
- 生成, 鍵ペアの生成
- RSA バージョン 1 鍵
- 生成, 鍵ペアの生成
- RSA 鍵
- 生成, 鍵ペアの生成
- server, OpenSSH サーバーの起動
- 停止, OpenSSH サーバーの起動
- 軌道, OpenSSH サーバーの起動
- ssh-add, ssh-agent の設定
- ssh-agent, ssh-agent の設定
- ssh-keygen
- クライアント, OpenSSH クライアント
- scp, scp ユーティリティーの使用
- sftp, sftp ユーティリティーの使用
- ssh, ssh ユーティリティーの使用
- 鍵ベースの認証の使用, キーベースの認証の使用
- 関連資料, その他のリソース
- OpenSSL
- SSL (参照 SSL )
- TLS (参照 TLS )
- 関連資料, その他のリソース
- ophelp, 監視するイベントの設定
- opreport (参照 oprofile)
- oprofile, oprofile
- /dev/oprofile/, /dev/oprofile/について
- events
- setting, 監視するイベントの設定
- サンプリングレート, サンプリングレート
- Java, Java の OProfile サポート
- opannotate, opannotateの使用
- opcontrol, OProfile の設定
- --no-vmlinux, カーネルの指定
- --start, OProfile の起動および停止
- --vmlinux=, カーネルの指定
- ophelp, 監視するイベントの設定
- opreport, opreportの使用, モジュールでの詳細な出力の取得
- 1 つの実行可能ファイルで, 単一の実行可能ファイルでの opreport の使用
- oprofiled, OProfile の起動および停止
- ログファイル, OProfile の起動および停止
- SystemTap, OProfile および SystemTap
- カーネルの監視, カーネルの指定
- ツールの概要, ツールの概要
- データの保存, データの保存
- データの読み取り, データの分析
- ユニットマスク, ユニットマスク
- 設定, OProfile の設定
- プロファイルの分離, カーネルとユーザー空間プロファイルの分離
- 軌道, OProfile の起動および停止
- 関連資料, その他のリソース
- oprofiled (参照 oprofile)
- oprof_start, グラフィカルインターフェース
- OS/400 ブートローダー
- 設定, OS/400 ブートローダーの設定
- 設定ファイル, OS/400 ブートローダーの設定
P
- package
- kernel RPM, カーネルの手動によるアップグレード
- PackageKit, PackageKit
- PolicyKit
- authentication, ソフトウェア更新によるパッケージの更新
- アーキテクチャー, PackageKit Architecture
- トランザクションログの表示, トランザクションログの表示
- パッケージのアンインストール, PackageKit
- パッケージのインストール, PackageKit
- パッケージの更新, PackageKit
- パッケージの管理, PackageKit
- パッケージの表示, PackageKit
- パッケージグループのインストールおよび削除, パッケージグループのインストールおよび削除
- 追加および削除, ソフトウェアの追加/削除
- PackageKit でパッケージの更新
- PolicyKit, ソフトウェア更新によるパッケージの更新
- packages
- dependencies, 解決できない依存関係
- Enterprise Linux(EPEL)用の追加パッケージ, RPM パッケージの検索
- iRedRed Hat Enterprise Linuxnbsp;Hat EnterpriseRed Hat Enterprise Linuxnbsp;Linux installation media, RPM パッケージの検索
- kernel
- シングル、マルチプロセッサーシステムの場合, カーネルパッケージの概要
- kernel-devel
- カーネルヘッダーおよび makefiles, カーネルパッケージの概要
- kernel-doc
- ドキュメントファイル, カーネルパッケージの概要
- kernel-firmware
- ファームウェアファイル, カーネルパッケージの概要
- kernel-headers
- C ヘッダーファイル, カーネルパッケージの概要
- PackageKit でパッケージのインストール, PackageKit, パッケージ(および依存関係)のインストールおよび削除
- dependencies, パッケージ(および依存関係)のインストールおよび削除
- PackageKit でパッケージの削除, パッケージ(および依存関係)のインストールおよび削除
- PackageKit でパッケージの更新, PackageKit
- PolicyKit, ソフトウェア更新によるパッケージの更新
- ソフトウェアの更新, ソフトウェア更新によるパッケージの更新
- PackageKit でパッケージの表示, PackageKit
- PackageKit でパッケージの設定
- チェック間隔, ソフトウェア更新によるパッケージの更新
- PackageKit を使用した Yum リポジトリーの表示, ソフトウェアソースの更新(Yum リポジトリー)
- PackageKit を使用したパッケージのアンインストール, PackageKit
- PackageKit を使用したパッケージの管理, PackageKit
- PackageKit を使用したフィルタリング, フィルターを使用したパッケージの検索
- Free, フィルターを使用したパッケージの検索
- インストール, フィルターを使用したパッケージの検索
- インストールされているのみ, フィルターを使用したパッケージの検索
- エンドユーザーファイルのみ, フィルターを使用したパッケージの検索
- グラフィカルのみ, フィルターを使用したパッケージの検索
- サブパッケージの非表示, フィルターを使用したパッケージの検索
- ネイティブパッケージのみ, フィルターを使用したパッケージの検索
- フィルターなし, フィルターを使用したパッケージの検索
- 利用可能, フィルターを使用したパッケージの検索
- 最新のパッケージのみ, フィルターを使用したパッケージの検索
- 開発, フィルターを使用したパッケージの検索
- 開発のみ, フィルターを使用したパッケージの検索
- PackageKit を使用した追加および削除, ソフトウェアの追加/削除
- perf
- ファームウェアファイル, カーネルパッケージの概要
- RPM, RPM
- freshening, Freshening
- すでにインストールされています。, インストールされているパッケージ
- アンインストール, アンインストール
- クエリー, クエリ
- ソースパッケージおよびバイナリーパッケージ, RPM
- ヒント, RPM の使用方法に関する実例および一般的な例
- 削除中, アンインストール
- 失敗した依存関係, 解決できない依存関係
- 検証, 検証
- 競合, 競合するファイル
- 純粋なソース, RPM 設計ゴール
- 設定ファイルの変更, 設定ファイルの変更
- RPM ではなく yum, RPM
- RPM のアップグレード, インストールおよび設定ガイド
- RPM のインストール, インストールおよび設定ガイド
- RPM パッケージの検索, RPM パッケージの検索
- yum を使用したインストール, パッケージのインストール
- Yum を使用したパッケージのアンインストール, パッケージの削除
- yum remove package_name, パッケージの削除
- Yum を使用したパッケージの一覧表示
- glob 表現, パッケージの一覧表示
- yum grouplist, パッケージの一覧表示
- yum list all, パッケージの一覧表示
- yum list available, パッケージの一覧表示
- yum list installed, パッケージの一覧表示
- yum repolist, パッケージの一覧表示
- yum search, パッケージの一覧表示
- yum を使用したパッケージの検索
- yum search, パッケージの検索
- yum を使用したパッケージの表示
- yum info, パッケージ情報の表示
- Yum を使用したパッケージグループのインストール, パッケージのインストール
- yum を使用したパッケージグループの削除, パッケージの削除
- を使用したファイル所有権の決定, RPM の使用方法に関する実例および一般的な例
- アンインストールされたクエリー, RPM の使用方法に関する実例および一般的な例
- トランザクションログの表示, トランザクションログの表示
- ドキュメントの検索, RPM の使用方法に関する実例および一般的な例
- パッケージおよびパッケージグループ, パッケージおよびパッケージグループ
- パッケージの PackageKit を使用したフィルタリング, フィルターを使用したパッケージの検索
- パッケージの表示
- yum info, パッケージ情報の表示
- パッケージグループのインストールおよび削除, パッケージグループのインストールおよび削除
- ファイル一覧の取得, RPM の使用方法に関する実例および一般的な例
- 初期 RPM リポジトリー, RPM パッケージの検索
- 削除されたファイルの検索, RPM の使用方法に関する実例および一般的な例
- 削除中, アンインストール
- 現在インストールされているパッケージの更新
- 利用可能な更新, ソフトウェア更新によるパッケージの更新
- pdbedit プログラム, Samba ディストリビューションプログラム
- PolicyKit, ソフトウェア更新によるパッケージの更新
- postfix, postfix, メール転送エージェント (MTA) の設定
- デフォルトのインストール, Postfix のデフォルトインストール
- prefdm (参照 X)
- proc ファイルシステム
- /proc/buddyinfo, /proc/buddyinfo
- /proc/bus/ ディレクトリー, /proc/bus/
- /proc/bus/pci
- viewing using lspci, /proc/bus/pci
- /proc/cmdline, /proc/cmdline
- /proc/cpuinfo, /proc/cpuinfo
- /proc/crypto, /proc/crypto
- /proc/devices
- ブロックデバイス, /proc/devices
- 文字デバイス, /proc/devices
- /proc/dma, /proc/dma
- /proc/driver/ ディレクトリー, /proc/driver/
- /proc/execdomains, /proc/execdomains
- /proc/fb, /proc/fb
- /proc/filesystems, /proc/filesystems
- /proc/fs/ ディレクトリー, /proc/fs
- /proc/interrupts, /proc/interrupts
- /proc/iomem, /proc/iomem
- /proc/ioports, /proc/ioports
- /proc/irq/ ディレクトリー, /proc/irq/
- /proc/kcore, /proc/kcore
- /proc/kmsg, /proc/kmsg
- /proc/loadavg, /proc/loadavg
- /proc/locks, /proc/locks
- /proc/mdstat, /proc/mdstat
- /proc/meminfo, /proc/meminfo
- /proc/misc, /proc/misc
- /proc/modules, /proc/modules
- /proc/mounts, /proc/mounts
- /proc/mtrr, /proc/mtrr
- /proc/net/ ディレクトリー, /proc/net/
- /proc/partitions, /proc/partitions
- /proc/PID/ ディレクトリー, /proc/PID/
- /proc/scsi/ ディレクトリー, /proc/scsi/
- /proc/self/ ディレクトリー, /proc/self/
- /proc/slabinfo, /proc/slabinfo
- /proc/stat, /proc/stat
- /proc/swaps, /proc/swaps
- /proc/sys/ ディレクトリー, /proc/sys/, sysctl コマンドの使用
- (参照 sysctl)
- /proc/sys/dev/ ディレクトリー, /proc/sys/dev/
- /proc/sys/fs/ ディレクトリー, /proc/sys/fs/
- /proc/sys/kernel/ ディレクトリー, /proc/sys/kernel/
- /proc/sys/kernel/exec-shield, /proc/sys/kernel/
- /proc/sys/kernel/sysrq (参照 システムの要求キー)
- /proc/sys/net/ ディレクトリー, /proc/sys/net/
- /proc/sys/vm/ ディレクトリー, /proc/sys/vm/
- /proc/sysrq-trigger, /proc/sysrq-trigger
- /proc/sysvipc/ ディレクトリー, /proc/sysvipc/
- /proc/tty/ ディレクトリー, /proc/tty/
- /proc/uptime, /proc/uptime
- /proc/version, /proc/version
- トップレベル内のファイル, proc ファイルシステム内のトップレベルのファイル
- プロセスディレクトリー, プロセスディレクトリー
- 内でのファイルの変更, 仮想ファイルの変更, /proc/sys/, sysctl コマンドの使用
- 内のサブディレクトリー, /proc/ 内のディレクトリー
- 内部のファイルの表示, 仮想ファイルの表示
- 導入, proc ファイルシステム
- 関連情報, その他のリソース
- インストールされているドキュメント, その他のリソース
- processes, システムプロセスの表示
- procmail, メール配信エージェント (MDA)
- configuration, Procmail の設定
- recipes, Procmail レシピ
- flags, フラグ
- SpamAssassin, spam フィルター
- ローカルのロックファイル, ローカルロックファイルの指定
- 例, レシピの例
- 特別なアクション, 特別な条件とアクション
- 特殊な条件, 特別な条件とアクション
- 配信, 配信と非配信レシピ
- 非配信, 配信と非配信レシピ
- 関連資料, その他のリソース
- ps, ps コマンドの使用
R
- RAM, メモリ使用量の表示
- rcp, scp ユーティリティーの使用
- ReaR
- 基本的な使用方法, 基本的な ReaR の使用方法
- Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux インストールメディア
- インストール可能なパッケージ, RPM パッケージの検索
- Red Hat Subscription Management
- subscription, システム登録およびサブスクリプションの割り当て
- Red Hat Support Tool
- コマンドラインでのサポートの利用, Red Hat Support Tool を使用したサポートへのアクセス
- rmmod, モジュールのアンロード
- (参照 カーネルモジュール)
- rndc (参照 BIND)
- root ネームサーバー (参照 BIND)
- rpcclient プログラム, Samba ディストリビューションプログラム
- RPM, RPM
- conflicts, 競合するファイル
- dependencies, 解決できない依存関係
- freshening, Freshening
- GnuPG, パッケージの署名の確認
- md5sum, パッケージの署名の確認
- RPM パッケージの検索, RPM パッケージの検索
- website, 便利な Web サイト
- すでにインストールされています。, インストールされているパッケージ
- で削除されたファイルの検索, RPM の使用方法に関する実例および一般的な例
- を使用したファイル所有権の決定, RPM の使用方法に関する実例および一般的な例
- アップグレード, インストールおよび設定ガイド
- アンインストール, アンインストール
- アンインストールされたパッケージのクエリー, RPM の使用方法に関する実例および一般的な例
- インストール, インストールおよび設定ガイド
- クエリー, クエリ
- パッケージ署名の確認, パッケージの署名の確認
- ヒント, RPM の使用方法に関する実例および一般的な例
- ファイルの競合
- resolving, 競合するファイル
- ファイル一覧のクエリー, RPM の使用方法に関する実例および一般的な例
- ファイル名, インストールおよび設定ガイド
- 基本モード, RPM の使用
- 失敗した依存関係, 解決できない依存関係
- 検証, 検証
- 設定ファイルの変更, 設定ファイルの変更
- conf.rpmsave, 設定ファイルの変更
- 設計ゴール, RPM 設計ゴール
- 関連ドキュメント, RPM の使用方法に関する実例および一般的な例
- 関連資料, その他のリソース
- RPM パッケージマネージャー (参照 RPM)
- RSA バージョン 1 鍵
- 生成, 鍵ペアの生成
- RSA 鍵
- 生成, 鍵ペアの生成
- rsyslog, ログファイルの表示と管理
- configuration, Rsyslog の基本設定
- filters, フィルター
- modules, Rsyslog モジュールの使用
- queues, Rsyslog でのキュー (Queue) を使った操作
- templates, テンプレート
- アクション, アクション
- グローバルディレクティブ, グローバルディレクティブ
- デバッグ, Rsyslog のデバッグ
- ルールセット, ルールセット
- ログローテーション, ログローテーション
- 新たな設定形式, 新規設定フォーマットの使用
- runlevel (参照 サービスの設定)
S
- sadump
- 関連情報
- インストールされているドキュメント, その他のリソース
- Samba (参照 Samba)
- configuration, Samba サーバーの設定, コマンドライン設定
- default, Samba サーバーの設定
- CUPS 印刷のサポート, Samba と CUPS 印刷サポート
- cups smb.conf, 簡易 smb.conf の設定
- daemon
- nmbd, Samba デーモンと関連サービス
- smbd, Samba デーモンと関連サービス
- winbindd, Samba デーモンと関連サービス
- 概要, Samba デーモンと関連サービス
- findsmb, Samba 共有への接続
- Samba プリンター, Samba (SMB) プリンターの追加
- share
- nautilus を使用した接続, Samba 共有への接続
- コマンドラインでの接続, Samba 共有への接続
- マウントする, 共有のマウント
- smb.conf, Samba サーバータイプおよび smb.conf ファイル
- Active Directory Member Server の例, ドメインメンバーサーバー
- Active Directory を使用した PDC, ドメインコントローラー
- Anonymous Print Server の例, スタンドアロンサーバー
- Anonymous Read Only の例, スタンドアロンサーバー
- Anonymous Read/Write の例, スタンドアロンサーバー
- NT4-style ドメインメンバーの例, ドメインメンバーサーバー
- tdbsamを使用した PDC, ドメインコントローラー
- セキュアなファイルおよびプリントサーバーの例, スタンドアロンサーバー
- smbclient, Samba 共有への接続
- WINS, WINS(Windows インターネットネームサーバー)
- その他のリソース, その他のリソース
- はじめに, Samba の概要
- アカウント情報データベース, Samba アカウント情報データベース
- ldapsam, Samba アカウント情報データベース
- ldapsam_compat, Samba アカウント情報データベース
- mysqlsam, Samba アカウント情報データベース
- smbpasswd, Samba アカウント情報データベース
- tdbsam, Samba アカウント情報データベース
- xmlsam, Samba アカウント情報データベース
- プレインテキスト, Samba アカウント情報データベース
- グラフィカル設定, グラフィカル設定
- サーバータイプ, Samba サーバータイプおよび smb.conf ファイル
- スタンドアロン, スタンドアロンサーバー
- ドメインコントローラー, ドメインコントローラー
- ドメインメンバー, ドメインメンバーサーバー
- サービス
- 停止, Samba の起動および停止
- 再読み込み, Samba の起動および停止
- 再起動, Samba の起動および停止
- 条件の再起動, Samba の起動および停止
- 軌道, Samba の起動および停止
- セキュリティーモード, Samba セキュリティーモード, ユーザーレベルのセキュリティー
- Active Directory セキュリティーモード, ユーザーレベルのセキュリティー
- ドメインセキュリティーモード, ユーザーレベルのセキュリティー
- ユーザーレベルのセキュリティー, ユーザーレベルのセキュリティー
- 共有レベルのセキュリティー, 共有レベルのセキュリティー
- ネットワークのブラウズ, Samba Network Browsing
- WINS, WINS(Windows インターネットネームサーバー)
- ドメインの参照, ドメインの参照
- プログラム, Samba ディストリビューションプログラム
- findsmb, Samba ディストリビューションプログラム
- net, Samba ディストリビューションプログラム
- nmblookup, Samba ディストリビューションプログラム
- pdbedit, Samba ディストリビューションプログラム
- rpcclient, Samba ディストリビューションプログラム
- smbcacls, Samba ディストリビューションプログラム
- smbclient, Samba ディストリビューションプログラム
- smbcontrol, Samba ディストリビューションプログラム
- smbpasswd, Samba ディストリビューションプログラム
- smbspool, Samba ディストリビューションプログラム
- smbstatus, Samba ディストリビューションプログラム
- smbtar, Samba ディストリビューションプログラム
- testparm, Samba ディストリビューションプログラム
- wbinfo, Samba ディストリビューションプログラム
- 参照, Samba, Samba Network Browsing
- 後方互換性のあるデータベースバックエンド, Samba アカウント情報データベース
- 新規データベースバックエンド, Samba アカウント情報データベース
- 暗号化されたパスワード, 暗号化パスワード
- 機能, Samba の概要
- scp (参照 OpenSSH)
- Sendmail, Sendmail
- aliases, マスカレーディング
- LDAP および, LDAP での Sendmail の使用
- spam, Spam の停止
- UUCP の使用, Sendmail の一般的な設定変更
- デフォルトのインストール, Sendmail のデフォルトのインストール
- マスカレード, マスカレーディング
- 一般的な設定変更, Sendmail の一般的な設定変更
- 制限, 用途と制約
- 目的, 用途と制約
- 関連資料, その他のリソース
- sendmail, メール転送エージェント (MTA) の設定
- sftp (参照 OpenSSH)
- slapd (参照 OpenLDAP)
- smbcacls プログラム, Samba ディストリビューションプログラム
- smbclient, Samba 共有への接続
- smbclient プログラム, Samba ディストリビューションプログラム
- smbcontrol プログラム, Samba ディストリビューションプログラム
- smbpasswd program, Samba ディストリビューションプログラム
- smbspool プログラム, Samba ディストリビューションプログラム
- smbstatus プログラム, Samba ディストリビューションプログラム
- smbtar プログラム, Samba ディストリビューションプログラム
- SpamAssassin
- Procmail での使用, spam フィルター
- ssh (参照 OpenSSH)
- SSH プロトコル
- authentication, 認証
- features, 主な特長
- layers
- X11 転送, X11 転送
- セキュリティーリスク, SSH を使用する理由
- バージョン 1, プロトコルのバージョン
- バージョン 2, プロトコルのバージョン
- ポート転送, ポート転送
- リモートログインに要求, リモート接続に必要な SSH
- 安全ではないプロトコル, リモート接続に必要な SSH
- 接続シーケンス, SSH 接続のイベントシーケンス
- 設定ファイル, 設定ファイル
- ssh-add, ssh-agent の設定
- SSL , SSL サーバーの設定
- (参照 Apache HTTP サーバー )
- SSL サーバー (参照 Apache HTTP サーバー )
- SSSD
- Kerberos 認証, ドメインの作成: Kerberos 認証
- LDAP ドメイン, ドメインの作成: LDAP
- サポート対象の LDAP ディレクトリー, ドメインの作成: LDAP
- Microsoft Active Directory ドメイン, ドメインの作成: Active Directory, ドメインの設定: LDAP プロバイダーとしての Active Directory(Alternative)
- sudo ルール
- ホストごとに保存されるルール, サービスの設定: sudo
- および NSCD, SSSD での NSCD の使用
- アイデンティティープロバイダー
- local, sssd.conf ファイルの作成
- ダウングレード, SSSD のダウングレード
- プロキシードメイン, ドメインの作成: プロキシー
- 設定ファイル
- location, カスタム設定ファイルの使用
- sections, sssd.conf ファイルの作成
- 作成, sssd.conf ファイルの設定
- startx, ランレベル 3 (参照 X)
- (参照 X)
- stunnel, 電子メールクライアントの通信のセキュリティー保護
- sysconfig ディレクトリー
- /etc/sysconfig/apm-scripts/ directory, /etc/sysconfig/ ディレクトリーのディレクトリー
- /etc/sysconfig/arpwatch, /etc/sysconfig/arpwatch
- /etc/sysconfig/authconfig, /etc/sysconfig/authconfig
- /etc/sysconfig/autofs, /etc/sysconfig/autofs
- /etc/sysconfig/cbq/ ディレクトリー, /etc/sysconfig/ ディレクトリーのディレクトリー
- /etc/sysconfig/clock, /etc/sysconfig/clock
- /etc/sysconfig/dhcpd, /etc/sysconfig/dhcpd
- /etc/sysconfig/firstboot, /etc/sysconfig/firstboot
- /etc/sysconfig/init, /etc/sysconfig/init
- /etc/sysconfig/ip6tables-config, /etc/sysconfig/ip6tables-config
- /etc/sysconfig/kernel, /etc/sysconfig/kernel
- /etc/sysconfig/keyboard, /etc/sysconfig/keyboard
- /etc/sysconfig/ldap, /etc/sysconfig/ldap
- /etc/sysconfig/named, /etc/sysconfig/named
- /etc/sysconfig/network, /etc/sysconfig/network
- /etc/sysconfig/network-scripts/ ディレクトリー, Network Interfaces, /etc/sysconfig/ ディレクトリーのディレクトリー
- (参照 network)
- /etc/sysconfig/networking/ ディレクトリー, /etc/sysconfig/ ディレクトリーのディレクトリー
- /etc/sysconfig/ntpd, /etc/sysconfig/ntpd
- /etc/sysconfig/quagga, /etc/sysconfig/quagga
- /etc/sysconfig/radvd, /etc/sysconfig/radvd
- /etc/sysconfig/rhn/ ディレクトリー, /etc/sysconfig/ ディレクトリーのディレクトリー
- /etc/sysconfig/samba, /etc/sysconfig/samba
- /etc/sysconfig/saslauthd, /etc/sysconfig/saslauthd
- /etc/sysconfig/selinux, /etc/sysconfig/selinux
- /etc/sysconfig/sendmail, /etc/sysconfig/sendmail
- /etc/sysconfig/spamassassin, /etc/sysconfig/spamassassin
- /etc/sysconfig/squid, /etc/sysconfig/squid
- /etc/sysconfig/system-config-users, /etc/sysconfig/system-config-users
- /etc/sysconfig/vncservers, /etc/sysconfig/vncservers
- /etc/sysconfig/xinetd, /etc/sysconfig/xinetd
- にあるディレクトリー, /etc/sysconfig/ ディレクトリーのディレクトリー
- にあるファイル, /etc/sysconfig/ ディレクトリーのファイル
- 追加情報, sysconfig ディレクトリー
- 関連情報, その他のリソース
- インストールされているドキュメント, インストールされているドキュメント
- sysctl
- /proc/sys/の制御, sysctl コマンドの使用
- configuring with /etc/sysctl.conf, sysctl コマンドの使用
- SysRq (参照 システムの要求キー)
- System Request Key
- タイミングの設定, /proc/sys/kernel/
- 定義, /proc/sys/
- system-config-authentication (参照 Authentication Configuration Tool)
- system-config-date (参照 時間設定、日付設定)
- system-config-kdump (参照 kdump)
- system-config-services (参照 サービスの設定)
T
- testparm プログラム, Samba ディストリビューションプログラム
- TLB キャッシュ (参照 hugepages)
- TLS , SSL サーバーの設定
- (参照 Apache HTTP サーバー )
- top, top コマンドの使用
- twm, ウィンドウマネージャー
- (参照 X)
U
- users
- 関連資料, その他のリソース
- インストールされているドキュメント, インストールされているドキュメント
V
- vsftpd
- condrestart, vsftpd の起動と停止
- RPM
- インストールしたファイル, vsftpd でインストールされたファイル
- SELinux, vsftpd 用の SELinux ポリシー
- status, vsftpd の起動と停止
- TLS, TLS を使用した vsftpd 接続の暗号化
- の複数コピーの開始, vsftpd の複数コピーの起動
- マルチホームの設定, vsftpd の複数コピーの起動
- 保護, TLS を使用した vsftpd 接続の暗号化, vsftpd 用の SELinux ポリシー
- 停止, vsftpd の起動と停止
- 再起動, vsftpd の起動と停止
- 暗号化, TLS を使用した vsftpd 接続の暗号化
- 設定ファイル
- /etc/vsftpd/vsftpd.conf, vsftpd 設定オプション
- Anonymous user options, Anonymous User Options
- local-user オプション, local-User オプション
- アクセス制御, ログインオプションおよびアクセス制御
- セキュリティーオプション, セキュリティーオプション
- ディレクトリーのオプション, ディレクトリーオプション
- デーモンオプション, デーモンオプション
- ネットワークオプション, ネットワークオプション
- ファイル転送オプション, ファイル転送オプション
- フォーマット, vsftpd 設定オプション
- ロギングのオプション, ロギングのオプション
- ログインオプション, ログインオプションおよびアクセス制御
- 軌道, vsftpd の起動と停止
- 関連情報, その他のリソース
- インストールされているドキュメント, インストールされているドキュメント
- オンラインドキュメント, オンラインドキュメント
W
- wbinfo プログラム, Samba ディストリビューションプログラム
- Web サーバー (参照 Apache HTTP サーバー)
X
- X
- /etc/X11/xorg.conf
- DRI, DRI セクション
- Files セクション, Files セクション
- InputDevice セクション, InputDevice セクション
- Serverflags セクション, ServerFlags セクション
- ServerLayout セクション, ServerLayout セクション
- スクリーン, Screen セクション
- セクション タグ, 設定構造
- デバイス, デバイス セクション
- ブール値, 設定構造
- 概要, xorg.conf.d ディレクトリー, xorg.conf ファイル
- 構造, 設定構造
- 監視, Monitor セクション
- fonts
- fontconfig, fonts
- fontconfig、フォントの追加, Fonts の Fontconfig への追加
- FreeType, fonts
- Xft, fonts
- 概要, fonts
- X クライアント, X ウィンドウシステム, デスクトップ環境およびウィンドウマネージャー
- startx コマンド, ランレベル 3
- xinit コマンド, ランレベル 3
- ウィンドウマネージャー, ウィンドウマネージャー
- デスクトップ環境, デスクトップ環境
- X サーバー, X ウィンドウシステム
- の機能, X サーバー
- ウィンドウマネージャー
- kwin, ウィンドウマネージャー
- metacity, ウィンドウマネージャー
- mwm, ウィンドウマネージャー
- twm, ウィンドウマネージャー
- ディスプレイマネージャー
- デスクトップ環境
- ランレベル
- ランレベルおよび, ランレベルおよび X
- 概要, X ウィンドウシステム
- 設定ディレクトリー
- /etc/X11/xorg.conf.d, xorg.conf.d ディレクトリー
- 設定ファイル
- /etc/X11/ ディレクトリー, X サーバー設定ファイル
- /etc/X11/xorg.conf, xorg.conf ファイル
- サーバーオプション, xorg.conf.d ディレクトリー, xorg.conf ファイル
- 内でのオプション, X サーバー設定ファイル
- 関連資料, その他のリソース
- インストールされているドキュメント, インストールされているドキュメント
- 便利な Web サイト, 便利な Web サイト
- X Window System (参照 X)
- X.500 (参照 OpenLDAP)
- X.500 Lite (参照 OpenLDAP)
- xinit (参照 X)
- Xorg (参照 Xorg)
Y
- Yum
- repository, yum リポジトリーの追加、有効化、および無効化, yum リポジトリーの作成
- yum cache, yum キャッシュの使用
- yum clean, yum キャッシュの使用
- yum update, ISO と Yum を使用してシステムをオフラインでアップグレード
- yum を使用したインストール, パッケージのインストール
- Yum を使用したパッケージのアンインストール, パッケージの削除
- yum remove package_name, パッケージの削除
- Yum を使用したパッケージの一覧表示
- glob 表現, パッケージの一覧表示
- yum grouplist, パッケージの一覧表示
- yum list, パッケージの一覧表示
- yum list all, パッケージの一覧表示
- yum list available, パッケージの一覧表示
- yum list installed, パッケージの一覧表示
- yum repolist, パッケージの一覧表示
- yum を使用したパッケージの検索
- yum search, パッケージの検索
- yum を使用したパッケージの表示
- yum info, パッケージ情報の表示
- Yum を使用したパッケージグループのアンインストール, パッケージの削除
- Yum を使用したパッケージグループのインストール, パッケージのインストール
- yum プラグイン, yum のプラグイン
- yum リポジトリー
- yum リポジトリーおよび Yum リポジトリーの設定, Yum と Yum リポジトリーの設定
- yum リポジトリーおよび Yum リポジトリーの設定, Yum と Yum リポジトリーの設定
- [main] オプションの設定, [main] オプションの設定
- [repository] オプションの設定, [repository] オプションの設定
- パッケージおよびパッケージグループ, パッケージおよびパッケージグループ
- パッケージの表示
- yum info, パッケージ情報の表示
- プラグイン
- プラグインの有効化, yum プラグインを有効、設定、および無効にする方法
- プラグインの無効化, yum プラグインを有効、設定、および無効にする方法
- プラグインの設定, yum プラグインを有効、設定、および無効にする方法
- 変数, yum 変数の使用
- yum update
- yum リポジトリー
- PackageKit を使用した Yum リポジトリーの表示, ソフトウェアソースの更新(Yum リポジトリー)