デプロイメントガイド
Red Hat Enterprise Linux 5 の導入、設定、および管理
概要
はじめに
- ネットワークインターフェイスカード(NIC)の設定
- 仮想プライベートネットワーク(VPN)の設定
- Samba 共有の設定
- RPM によるソフトウェアの管理
- システムに関する情報の決定
- カーネルのアップグレード
- ファイルシステム
- パッケージ管理
- ネットワーク関連の設定
- システムの設定
- システム監視
- カーネルおよびドライバーの設定
- セキュリティーおよび認証
- Red Hat のお客様および認定
1. 本書の表記慣例
- command
- Linux コマンド(およびその他のオペレーティングシステムコマンドを使用する場合)はこの方法になります。このスタイルは、コマンドラインで単語またはフレーズを 入力 し、Enter を押してコマンドを呼び出すことができることを示します。コマンドには、独自の(ファイル名など)の異なるスタイルで表示される単語が含まれる場合があります。このような場合は、コマンドの一部とみなされるため、フレーズ全体がコマンドとして表示されます。以下に例を示します。cat testfile コマンドを使用して、現在の作業ディレクトリーにある
testfile
という名前のファイルの内容を表示します。 ファイル名
- ファイル名、ディレクトリー名、パス、および RPM パッケージ名はこのように表されます。このスタイルは、特定のファイルまたはディレクトリーに、システム上にその名前が存在することを示します。例 :ホームディレクトリーの
.bashrc
ファイルには、bash シェル定義と独自の使用のエイリアスが含まれます。/etc/fstab
ファイルには、さまざまなシステムデバイスとファイルシステムに関する情報が含まれます。Web サーバーのログファイル分析プログラムを使用する場合は、webalizer
RPM をインストールします。 - application
- このスタイルは、プログラムが(システムソフトウェアではなく)エンドユーザーアプリケーションであることを示します。以下に例を示します。Mozilla を使用して Web を参照します。
- key
- このスタイルにはキーボードのキーが表示されます。以下に例を示します。Tab 補完を使用してディレクトリー内の特定のファイルを一覧表示するには、ls と入力してから 文字を入力し、最後に Tab キーを押します。ターミナルは、その文字で始まる作業ディレクトリー内のファイルの一覧を表示します。
- キー+組み合わせ
- このようにキーストロークの組み合わせを表現します。以下に例を示します。Ctrl+Alt+Backspace キーの組み合わせはグラフィカルセッションを終了し、グラフィカルログイン画面またはコンソールに戻ります。
- GUI インターフェイスにあるテキスト
- GUI インターフェイス画面またはウィンドウのタイトル、単語、またはフレーズがこのスタイルに表示されます。このスタイルに表示されるテキストは、特定の GUI 画面または GUI 画面の要素(チェックボックスまたはフィールドに関連付けられたテキストなど)を示します。以下に例を示します。スクリーンセーバーにパスワードを必要とする場合は、Require Password のチェックボックスを選択します。
- このスタイルの単語は、単語がプルダウンメニューのトップレベルであることを示します。GUI 画面で単語をクリックすると、メニューの残りの部分が表示されます。以下に例を示します。GNOME 端末ので、 オプションでは、同じウィンドウで複数のシェルプロンプトを開くことができます。GUI メニューから一連のコマンドを入力する手順は、以下の例のようになります。Emacs テキストエディターを起動します。(パネルのメインメニュー)> > に移動して、
- このスタイルは、GUI 画面のクリック可能なボタンでテキストが見つかることを示しています。以下に例を示します。
コンピューターの出力
- このスタイルのテキストは、エラーメッセージやコマンドへの応答などのシェルプロンプトに表示されるテキストを示します。以下に例を示します。ls コマンドはディレクトリーの内容を表示します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Desktop about.html logs paulwesterberg.png Mail backupfiles mail reports
Desktop about.html logs paulwesterberg.png Mail backupfiles mail reports
このスタイルでは、コマンド(この場合は ディレクトリーの内容)に応じて返される出力が表示されます。 prompt
- このスタイルには、コンピューターに入力できることを示すプロンプトが表示されます。例 :
$
#
[stephen@maturin stephen]$
leopard login:
user input
- このスタイルには、コマンドラインまたは GUI 画面のテキストボックスにユーザーが入力するテキストが表示されます。以下の例では、
text
がこのスタイルに表示されます。テキストベースのインストールプログラムでシステムを起動するには、boot:
プロンプトでtext
コマンドを入力する必要があります。 - <replaceable>
- このスタイルには、ユーザーが提供するデータに置き換えることが意図されている例で使用されるテキストが表示されます。以下の例では、< ;version-number> がこのスタイルに表示されます。カーネルソースのディレクトリーは
/usr/src/kernels/ <version-number> /
です。< version-number > は、このシステムにインストールされているカーネルのバージョンとタイプです。
/usr/share/doc/
ディレクトリーには、システムにインストールされているパッケージの追加ドキュメントが含まれています。
2. フィードバックをお寄せください
Deployment_Guide
に対して
Bugzilla ()でレポートを送信します。
パート I. ファイルシステム
第1章 ファイルシステム構造
1.1. 共通の構造を共有する理由
- 共有可能ファイルと非共有ファイル
- 変数ファイルと静的ファイル
1.2. ファイルシステム階層標準(FHS)の概要
/usr/
パーティションを読み取り専用としてマウントする機能です。ディレクトリーには共通の実行ファイルが含まれており、ユーザーが変更すべきではないため、この 2 番目の点は重要です。また、/usr/
ディレクトリーは読み取り専用としてマウントされているため、CD-ROM または読み取り専用 NFS マウントを介して別のマシンからマウントできます。
1.2.1. FHS 組織
1.2.1.1. /boot/
ディレクトリー
/boot/
ディレクトリーには、Linux カーネルなどのシステムの起動に必要な静的ファイルが含まれます。これらのファイルは、システムが正しく起動するためには不可欠です。
/boot/
ディレクトリーを削除しないでください。削除すると、システムが起動できなくなります。
1.2.1.2. /dev/
ディレクトリー
/dev/
ディレクトリーには、システムに接続されているデバイス、またはカーネルが提供する仮想デバイスを表すデバイスノードが含まれます。これらのデバイスノードは、システムが適切に機能するために不可欠です。udev デーモンは、/dev/
にあるこれらのデバイスノードをすべて作成し、削除します。
/dev
ディレクトリーおよびサブディレクトリー内のデバイスは、文字(入出力のシリアルストリームのみを提供)または block (ランダムにアクセス可能)のいずれかです。キャラクターデバイスにはマウス、キーボード、モデムが含まれ、ブロックデバイスにはハードディスク、フロッピードライブなどが含まれます。システムに GNOME または KDE がインストールされている場合は、外部ドライブや cd などのデバイスが接続時(例:usb など)または挿入(CD または DVD ドライブなど)時に自動的に検出され、コンテンツを表示するポップアップウィンドウが自動的に表示されます。/dev
ディレクトリー内のファイルは、システムが適切に機能するために不可欠です。
File | 説明 |
---|---|
/dev/hda | プライマリー IDE チャネル上のマスターデバイス。 |
/dev/hdb | プライマリー IDE チャネルのスレーブデバイス。 |
/dev/tty0 | 最初の仮想コンソール。 |
/dev/tty1 | 2 番目の仮想コンソール |
/dev/sda | プライマリー SCSI または SATA チャネルの最初のデバイス。 |
/dev/lp0 | 最初の並列ポート。 |
1.2.1.3. /etc/
ディレクトリー
/etc/
ディレクトリーは、マシンのローカルとなる設定ファイル用に予約されています。/etc/
に配置されるバイナリーはありません。/etc/
に置かれたバイナリーは、/sbin/
または /bin/
に配置する必要があります。
/etc
内のディレクトリーの例は、X11/
および skel/
です。
/etc |- X11/ |- skel/
/etc
|- X11/
|- skel/
/etc/X11/
ディレクトリーは、xorg.conf
などの X Window System 設定ファイル用です。/etc/skel/
ディレクトリーは、ユーザーの初回作成時にホームディレクトリーを設定するために使用されるスケルトンユーザーファイル用です。また、アプリケーションはこのディレクトリーに設定ファイルを保存し、実行時にそれらを参照する可能性があります。
1.2.1.4. /lib/
ディレクトリー
/lib/
ディレクトリーには、/bin/
および /sbin/
でバイナリーを実行するために必要なライブラリーのみが含まれている必要があります。これらの共有ライブラリーイメージは、システムを起動し、root ファイルシステム内でコマンドを実行する場合に特に重要です。
1.2.1.5. /media/
ディレクトリー
/media/
ディレクトリーには、usb ストレージメディア、DVD、CD-ROM、Zip ディスクなどのリムーバブルメディアのマウントポイントとして使用されるサブディレクトリーが含まれます。
1.2.1.6. /mnt/
ディレクトリー
/mnt/
ディレクトリーは、NFS ファイルシステムのマウントなどの、一時的にマウントされたファイルシステム用に予約されています。すべてのリムーバブルメディアには、/media/
ディレクトリーを使用してください。自動的に検出されたリムーバブルメディアは、/media
ディレクトリーにマウントされます。
/mnt
ディレクトリーは、インストールプログラムでは使用しないでください。
1.2.1.7. /opt/
ディレクトリー
/opt/
ディレクトリーは、ほとんどのアプリケーションソフトウェアパッケージのストレージを提供します。
/opt/
ディレクトリーにファイルを配置するパッケージにより、パッケージと同じ名前を持つディレクトリーが作成されます。次に、このディレクトリーはファイルシステム全体に分散されるファイルを保持し、システム管理者は特定のパッケージ内の各ファイルのロールを簡単に判別できるようにします。
sample
が /opt/
ディレクトリーにある特定のソフトウェアパッケージの名前である場合、そのファイルはすべて /opt/sample/
bin/(バイナリーの場合は /opt/sample/bin/
、man ページの場合は /opt/sample/bin/
など)に配置されます。
/opt/
ディレクトリーに置かれ、その大きなパッケージ自体を整理する方法を提供します。このようにして、サンプルパッケージには、それぞれが /opt/ sample
/tool 1/ や /opt/sample/tool 2/
などの独自のサブディレクトリーに配置されるツール
があり、各パッケージは独自の bin/
、man/
、およびその他の同様のディレクトリーを持つことができます。
1.2.1.8. /proc/
ディレクトリー
/proc/
ディレクトリーには、カーネルから情報を抽出するか、カーネルへの情報送信を行う特別なファイルが含まれます。たとえば、システムメモリー、CPU 情報、ハードウェア設定などが挙げられます。
/proc/
で利用できる大量のデータや、このディレクトリーを使用してカーネルと通信する方法が多数あるため、章全体がサブジェクトに展開されています。詳細は、5章proc
ファイルシステム を参照してください。
1.2.1.9. /sbin/
ディレクトリー
/sbin/
ディレクトリーには、root ユーザーが使用する実行ファイルが保存されます。/sbin/
の実行可能ファイルは、システム管理とシステム復旧操作を実行するために、システムの起動時に使用されます。このディレクトリーでは、FHS は以下を示しています。
/sbin
には、/bin
のバイナリーに加えて、システムの起動、復元、リカバリー、および修復に不可欠なバイナリーが含まれています。/usr/
の後に実行されるプログラムは(問題がない場合に)マウントすることがわかっています。通常、/usr/sbin
に配置されます。ローカルにインストールされたシステム管理プログラムは、/usr/local/sbin
に配置する必要があります。
/sbin/
になければなりません。
arp, clock, halt, init, fsck.*, grub, ifconfig, mingetty, mkfs.*, mkswap, reboot, route, shutdown, swapoff, swapon
arp, clock,
halt, init,
fsck.*, grub,
ifconfig, mingetty,
mkfs.*, mkswap,
reboot, route,
shutdown, swapoff,
swapon
1.2.1.10. /srv/
ディレクトリー
/srv/
ディレクトリーには、Red Hat Enterprise Linux を実行しているシステムが提供するサイト固有のデータが含まれます。このディレクトリーは、FTP、WWW、または CVS などの特定サービスのデータファイルの場所をユーザーに提供します。特定のユーザーにのみ関連するデータは、/home/
ディレクトリー内になければなりません。
1.2.1.11. /sys/
ディレクトリー
/sys/
ディレクトリーは、2.6 カーネルに固有の新しい sysfs
仮想ファイルシステムを使用します。2.6 カーネルのホットプラグハードウェアデバイスのサポートが増えると、/sys/
ディレクトリーには同様の情報が /proc/
に保持されますが、ホットプラグデバイスに関する特定のデバイス情報の階層ビューが表示されます。
1.2.1.12. /usr/
ディレクトリー
/usr/
ディレクトリーは、複数のマシンにまたがって共有できるファイル用です。多くの場合、/usr/
ディレクトリーは独自のパーティションにあり、読み取り専用でマウントされます。少なくとも、以下のディレクトリーは /usr/
のサブディレクトリーである必要があります。
/usr |- bin/ |- etc/ |- games/ |- include/ |- kerberos/ |- lib/ |- libexec/ |- local/ |- sbin/ |- share/ |- src/ |- tmp -> ../var/tmp/
/usr
|- bin/
|- etc/
|- games/
|- include/
|- kerberos/
|- lib/
|- libexec/
|- local/
|- sbin/
|- share/
|- src/
|- tmp -> ../var/tmp/
/usr/
ディレクトリーの bin/
サブディレクトリーには実行ファイルが含まれ、etc/
にはシステム全体の設定ファイル、games
is for games、include/
には C ヘッダーファイルが含まれ、kerberos/
にはバイナリーやその他の Kerberos 関連のファイルが含まれます。lib/
には、ユーザーまたはシェルスクリプトが直接使用されないように設計されていないオブジェクトファイルとライブラリーが含まれます。libexec/
ディレクトリーには、他のプログラムによって呼び出される小さなヘルパープログラムが含まれています。sbin/
はシステム管理バイナリー( /sbin/
ディレクトリーに属さないもの)用です。share/
には、アーキテクチャー固有ではないファイル、src/
はソースコード用です。
1.2.1.13. /usr/local/
ディレクトリー
/usr/local
階層は、ソフトウェアをローカルでインストールする場合にシステム管理者が使用します。システムソフトウェアの更新時に上書きされないようにする必要があります。これは、ホストのグループ間で共有できるが、/usr
にないプログラムやデータに使用できます。
/usr/
local/
ディレクトリーは、/usr/ ディレクトリーの構造に似ています。これには、/usr/
ディレクトリー内のサブディレクトリーと似た以下のサブディレクトリーがあります。
/usr/local |- bin/ |- etc/ |- games/ |- include/ |- lib/ |- libexec/ |- sbin/ |- share/ |- src/
/usr/local
|- bin/
|- etc/
|- games/
|- include/
|- lib/
|- libexec/
|- sbin/
|- share/
|- src/
/usr/local/
ディレクトリーに使用することが、FHS で指定されたものと若干異なります。FHS は、/usr/local/
が、システムソフトウェアのアップグレードで安全を確保できるソフトウェアが保存されている場所である必要があることを示しています。ソフトウェアアップグレードは RPM Package Manager (RPM)を使用して安全に実行できるため、ファイルを /usr/local/
に配置してファイルを保護する必要はありません。代わりに、/usr/local/
ディレクトリーは、マシンのローカルにあるソフトウェアに使用されます。
/usr/
ディレクトリーがリモートホストから読み取り専用の NFS 共有としてマウントされている場合でも、/usr/local/
ディレクトリーの下にパッケージまたはプログラムをインストールすることができます。
1.2.1.14. /var/
ディレクトリー
/usr/
を読み取り専用としてマウントする必要があるため、ログファイルを書き込むプログラムや、spool/
または lock/
ディレクトリーが必要なプログラムは、それらを /var/
ディレクトリーに書き込む必要があります。FHS の状態 /var/
は以下を対象にしています。
...変数データファイル。これには、スプールディレクトリーおよびファイル、管理およびロギングデータ、および一時および一時ファイルが含まれます。
/var/
ディレクトリーにあるディレクトリーの一部です。
/var |- account/ |- arpwatch/ |- cache/ |- crash/ |- db/ |- empty/ |- ftp/ |- gdm/ |- kerberos/ |- lib/ |- local/ |- lock/ |- log/ |- mail -> spool/mail/ |- mailman/ |- named/ |- nis/ |- opt/ |- preserve/ |- run/ +- spool/ |- at/ |- clientmqueue/ |- cron/ |- cups/ |- exim/ |- lpd/ |- mail/ |- mailman/ |- mqueue/ |- news/ |- postfix/ |- repackage/ |- rwho/ |- samba/ |- squid/ |- squirrelmail/ |- up2date/ |- uucp |- uucppublic/ |- vbox/ |- tmp/ |- tux/ |- www/ |- yp/
/var
|- account/
|- arpwatch/
|- cache/
|- crash/
|- db/
|- empty/
|- ftp/
|- gdm/
|- kerberos/
|- lib/
|- local/
|- lock/
|- log/
|- mail -> spool/mail/
|- mailman/
|- named/
|- nis/
|- opt/
|- preserve/
|- run/
+- spool/
|- at/
|- clientmqueue/
|- cron/
|- cups/
|- exim/
|- lpd/
|- mail/
|- mailman/
|- mqueue/
|- news/
|- postfix/
|- repackage/
|- rwho/
|- samba/
|- squid/
|- squirrelmail/
|- up2date/
|- uucp
|- uucppublic/
|- vbox/
|- tmp/
|- tux/
|- www/
|- yp/
messages
および lastlog
などのシステムログファイルは、/var/log/
ディレクトリーに移動します。/var/lib/rpm/
ディレクトリーには、RPM システムデータベースが含まれます。ロックファイルは、通常はファイルを使用するプログラムのディレクトリーにある /var/lock/
ディレクトリーに移動します。/var/spool/
ディレクトリーには、データファイルが保存されるプログラムのサブディレクトリーがあります。
1.3. Red Hat Enterprise Linux の特別なファイルの場所
/var/lib/rpm/
ディレクトリーに保持されます。RPM の詳細は、12章RPM でのパッケージ管理 を参照してください。
/var/cache/yum/
ディレクトリーには、システムの RPM ヘッダー情報を含む Package Updater が使用するファイルが含まれます。この場所は、システムの更新中にダウンロードされた RPM を一時的に保存するためにも使用できます。Red Hat Network の詳細は、15章システムの登録およびサブスクリプション管理 を参照してください。
/etc/sysconfig/
ディレクトリーです。このディレクトリーには、さまざまな設定情報が格納されています。システムの起動時に実行されるスクリプトの多くは、このディレクトリー内のファイルを使用します。このディレクトリー内の内容や、起動プロセスでこれらのファイルがプレイするロールの詳細は、32章sysconfig
ディレクトリー を参照してください。
第2章 mount コマンドの使い方
2.1. 現在マウントされているファイルシステムの一覧表示
mount
mount
device on directory type type (options)
sysfs
やtmpfs
などのさまざまな仮想ファイルシステムが含まれます。特定のファイルシステムタイプのデバイスのみを表示するには、コマンドラインで -t
オプションを指定します。
mount -t type
mount -t type
ext3
ファイルシステムの一覧表示」 を参照してください。
例2.1 現在マウントされている ext3
ファイルシステムの一覧表示
/
boot
パーティションはいずれも ext3
を使用するようにフォーマットされます。このファイルシステムを使用するマウントポイントのみを表示するには、シェルプロンプトで次のように入力します。
~]$ mount -t ext3 /dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw) /dev/vda1 on /boot type ext3 (rw)
~]$ mount -t ext3
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
/dev/vda1 on /boot type ext3 (rw)
2.2. ファイルシステムのマウント
mount [option…] device directory
mount [option…] device directory
/etc/fstab
設定ファイルの内容を読み取り、指定したファイルシステムが一覧表示されているかどうかを確認します。このファイルには、デバイス名の一覧と、選択したファイルシステムがマウントされるディレクトリー、ファイルシステムタイプおよびマウントオプションが含まれます。このため、このファイルで指定されているファイルシステムをマウントする場合は、以下のいずれかのコマンドのバリアントを使用できます。
mount [option…] directory mount [option…] device
mount [option…] directory
mount [option…] device
root
としてログインしていない限り、ファイルシステムをマウントするパーミッションが必要です( 「マウントオプションの指定」を参照してください)。
2.2.1. ファイルシステムタイプの指定
NFS
(Network File System) や CIFS
(Common Internet File System) などの認識できないファイルシステムがあるため、こうしたファイルシステムの場合は手動で指定しなければなりません。ファイルシステムのタイプを指定するには、以下の形式で mount コマンドを使用します。
mount -t type device directory
mount -t type device directory
型 | 説明 |
---|---|
ext2 | ext2 ファイルシステム。 |
ext3 | ext3 ファイルシステム。 |
ext4 | ext4 ファイルシステム。 |
iso9660 | ISO 9660 ファイルシステム。通常、これは光学メディア (通常は CD) で使用されます。 |
jfs | IBM が作成した JFS ファイルシステム。 |
nfs | NFS ファイルシステム。通常、これはネットワーク経由でファイルにアクセスするために使用されます。 |
nfs4 | NFSv4 ファイルシステム。通常、これはネットワーク経由でファイルにアクセスするために使用されます。 |
ntfs | NTFS ファイルシステム。これは通常、Windows オペレーティングシステムを実行しているマシンで使用されます。 |
udf | UDF ファイルシステム。通常、これは光学メディア (通常は DVD) で使用されます。 |
vfat | FAT ファイルシステム。通常、これは Windows オペレーティングシステムを実行しているマシンや、USB フラッシュドライブやフロッピーディスクなどの特定のデジタルメディアで使用されます。 |
例2.2 USB フラッシドライブのマウント
/dev/sdc1
デバイスを使用し、/media/flashdisk/
ディレクトリーが存在すると仮定すると、root
で次のコマンドを実行します。
~]# mount -t vfat /dev/sdc1 /media/flashdisk
~]# mount -t vfat /dev/sdc1 /media/flashdisk
2.2.2. マウントオプションの指定
mount -o options
mount -o options
オプション | 説明 |
---|---|
async | ファイルシステム上での非同期の入/出力を許可します。 |
auto | mount -a コマンドを使用したファイルシステムの自動マウントを許可します。 |
defaults | async,auto,dev,exec,nouser,rw,suid のエイリアスを指定します。 |
exec | 特定のファイルシステムでのバイナリーファイルの実行を許可します。 |
loop | イメージをループデバイスとしてマウントします。 |
noauto | mount -a コマンドを使用したファイルシステムの自動マウントを無効にします。 |
noexec | 特定のファイルシステムでのバイナリーファイルの実行は許可しません。 |
nouser | 普通のユーザー (つまり root 以外のユーザー) によるファイルシステムのマウントおよびアンマウントは許可しません。 |
remount | ファイルシステムがすでにマウントされている場合は再度マウントを行います。 |
ro | 読み取り専用でファイルシステムをマウントします。 |
rw | ファイルシステムを読み取りと書き込み両方でマウントします。 |
user | 普通のユーザー (つまり root 以外のユーザー) によるファイルシステムのマウントおよびアンマウントを許可します。 |
例2.3 ISO イメージのマウント
/media/cdrom/
ディレクトリーが存在すると仮定すると、root
で以下のコマンドを実行してイメージをこのディレクトリーにマウントできます。
~]# mount -o ro,loop Fedora-14-x86_64-Live-Desktop.iso /media/cdrom
~]# mount -o ro,loop Fedora-14-x86_64-Live-Desktop.iso /media/cdrom
2.2.3. マウントの共有
--bind
オプションを実装します。以下のような使用法になります。
mount --bind old_directory new_directory
mount --bind old_directory new_directory
mount --rbind old_directory new_directory
mount --rbind old_directory new_directory
- 共有マウント
- 共有マウントを使用すると、特定のマウントポイントの正確なレプリカを作成できます。共有マウントが作成されると、元のマウントポイント内のすべてのマウントがそれに反映され、その逆も同様です。共有マウントを作成するには、シェルプロンプトで以下を入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mount --make-shared mount_point
mount --make-shared mount_point
または、選択したマウントポイントとその下のすべてのマウントポイントのマウントタイプを変更できます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow mount --make-rshared mount_point
mount --make-rshared mount_point
使用例は、例2.4「共有マウントポイントの作成」 を参照してください。 - スレーブマウント
- スレーブマウントを使用すると、指定したマウントポイントの限定的な複製を作成できます。スレーブマウントが作成されると、元のマウントポイント内のすべてのマウントがそれに反映されますが、スレーブマウント内のマウントは元のマウントに反映されません。スレーブマウントを作成するには、シェルプロンプトで以下を入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mount --make-slave mount_point
mount --make-slave mount_point
または、選択したマウントポイントとその下のすべてのマウントポイントのマウントタイプを変更できます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow mount --make-rslave mount_point
mount --make-rslave mount_point
使用例は、例2.5「スレーブマウントポイントの作成」 を参照してください。例2.5 スレーブマウントポイントの作成
/media
ディレクトリーのコンテンツが/mnt
にも表示されるようにし、/mnt
ディレクトリーのマウントを/media
に反映させないようにするとします。これを実行するには、root
で、最初に/media
ディレクトリーを 「共有」 としてマークします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ~]# mount --bind /media /media ~]# mount --make-shared /media
~]# mount --bind /media /media ~]# mount --make-shared /media
次に、その複製を/mnt
で作成します。ただし、「slave」 としてマークします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ~]# mount --bind /media /mnt ~]# mount --make-slave /mnt
~]# mount --bind /media /mnt ~]# mount --make-slave /mnt
これで、/media
内のマウントが/mnt
にも表示されることを確認できます。たとえば、CD-ROM ドライブに空でないメディアがあり、/media/cdrom/
ディレクトリーが存在する場合は、以下のコマンドを実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ~]# mount /dev/cdrom /media/cdrom ~]# ls /media/cdrom EFI GPL isolinux LiveOS ~]# ls /mnt/cdrom EFI GPL isolinux LiveOS
~]# mount /dev/cdrom /media/cdrom ~]# ls /media/cdrom EFI GPL isolinux LiveOS ~]# ls /mnt/cdrom EFI GPL isolinux LiveOS
また、/mnt
ディレクトリーにマウントされているファイルシステムが/media
に反映されて いない ことを確認することもできます。たとえば、/dev/sdc1
デバイスを使用する空でない USB フラッシュドライブがあり、/mnt/flashdisk/
ディレクトリーが存在する場合は、以下を入力します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ~]# mount /dev/sdc1 /mnt/flashdisk ~]# ls /media/flashdisk ~]# ls /mnt/flashdisk en-US publican.cfg
~]# mount /dev/sdc1 /mnt/flashdisk ~]# ls /media/flashdisk ~]# ls /mnt/flashdisk en-US publican.cfg
- プライベートマウント
- プライベートマウントを使用すると、通常のマウントを作成できます。プライベートマウントが作成されると、元のマウントポイント内の後続のマウントがそれに反映されず、プライベートマウント内のマウントは元のマウントに反映されません。プライベートマウントを作成するには、シェルプロンプトで以下を入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mount --make-private mount_point
mount --make-private mount_point
または、選択したマウントポイントとその下のすべてのマウントポイントのマウントタイプを変更できます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow mount --make-rprivate mount_point
mount --make-rprivate mount_point
使用例は、例2.6「プライベートマウントポイントの作成」 を参照してください。例2.6 プライベートマウントポイントの作成
例2.4「共有マウントポイントの作成」 でシナリオを考慮に入れて、root
で以下のコマンドを使用して共有マウントポイントを作成していることを前提としています。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ~]# mount --bind /media /media ~]# mount --make-shared /media ~]# mount --bind /media /mnt
~]# mount --bind /media /media ~]# mount --make-shared /media ~]# mount --bind /media /mnt
/mnt
ディレクトリーに 「private」 のマークを付けるには、次のように入力します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ~]# mount --make-private /mnt
~]# mount --make-private /mnt
これで、/media
内のマウントが/mnt
に表示されないことを確認できます。たとえば、CD-ROM ドライブに空でないメディアがあり、/media/cdrom/
ディレクトリーが存在する場合は、以下のコマンドを実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ~]# mount /dev/cdrom /media/cdrom ~]# ls /media/cdrom EFI GPL isolinux LiveOS ~]# ls /mnt/cdrom ~]#
~]# mount /dev/cdrom /media/cdrom ~]# ls /media/cdrom EFI GPL isolinux LiveOS ~]# ls /mnt/cdrom ~]#
また、/mnt
ディレクトリーにマウントされているファイルシステムが/media
に反映されていないことを確認することもできます。たとえば、/dev/sdc1
デバイスを使用する空でない USB フラッシュドライブがあり、/mnt/flashdisk/
ディレクトリーが存在する場合は、以下を入力します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ~]# mount /dev/sdc1 /mnt/flashdisk ~]# ls /media/flashdisk ~]# ls /mnt/flashdisk en-US publican.cfg
~]# mount /dev/sdc1 /mnt/flashdisk ~]# ls /media/flashdisk ~]# ls /mnt/flashdisk en-US publican.cfg
- バインド不可能なマウント
- バインド不可能なマウントを使用すると、特定のマウントポイントが重複しないようにすることができます。バインド不可能なマウントを作成するには、シェルプロンプトで以下を入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mount --make-unbindable mount_point
mount --make-unbindable mount_point
または、選択したマウントポイントとその下のすべてのマウントポイントのマウントタイプを変更できます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow mount --make-runbindable mount_point
mount --make-runbindable mount_point
使用例は、例2.7「バインド不可能なマウントポイントの作成」 を参照してください。例2.7 バインド不可能なマウントポイントの作成
/media
ディレクトリーが共有されないようにするには、root
として、シェルプロンプトで次のように入力します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ~]# mount --bind /media /media ~]# mount --make-unbindable /media
~]# mount --bind /media /media ~]# mount --make-unbindable /media
こうすることで、これ以降、このマウントの複製を作成しようとすると、以下のエラーが出て失敗します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ~]# mount --bind /media /mnt mount: wrong fs type, bad option, bad superblock on /media/, missing code page or other error In some cases useful info is found in syslog - try dmesg | tail or so
~]# mount --bind /media /mnt mount: wrong fs type, bad option, bad superblock on /media/, missing code page or other error In some cases useful info is found in syslog - try dmesg | tail or so
2.2.4. マウントポイントの移動
mount --move old_directory new_directory
mount --move old_directory new_directory
例2.8 既存の NFS マウントポイントの移動
/mnt/userdirs/
にマウントされている場合、root
として次のコマンドを使用して、このマウントポイントを /home
に移動できます。
~]# mount --move /mnt/userdirs /home
~]# mount --move /mnt/userdirs /home
~]# ls /mnt/userdirs ~]# ls /home jill joe
~]# ls /mnt/userdirs
~]# ls /home
jill joe
2.3. ファイルシステムのアンマウント
umount directory umount device
umount directory
umount device
root
としてログインしていない限り、ファイルシステムのマウントを解除する権限が必要であることに注意してください( 「マウントオプションの指定」を参照してください)。使用例は、例2.9「CD のアンマウント」 を参照してください。
fuser -m directory
fuser -m directory
/media/cdrom/
ディレクトリーにマウントされているファイルシステムにアクセスしているプロセスの一覧を表示するには、次のコマンドを入力します。
~]$ fuser -m /media/cdrom /media/cdrom: 1793 2013 2022 2435 10532c 10672c
~]$ fuser -m /media/cdrom
/media/cdrom: 1793 2013 2022 2435 10532c 10672c
例2.9 CD のアンマウント
/media/cdrom/
ディレクトリーにマウントされた CD をアンマウントするには、シェルプロンプトで次のように入力します。
~]$ umount /media/cdrom
~]$ umount /media/cdrom
2.4. 関連情報
2.4.1. インストールされているドキュメント
- man 8 mount: mount コマンドの man ページです。使い方などに関する詳細が記載されています。
- man 8 umount: umount コマンドの man ページです。使い方などに関する詳細が記載されています。
- man 5 fstab:
/etc/fstab
ファイル形式に関する詳細が記載されている man ページです。
2.4.2. 便利な Web サイト
- 『Shared subtrees』 — 共有サブツリーの概念について解説されている LWN の記事です。
- 『sharedsubtree.txt』: 共有サブツリーパッチに同梱されている拡張ドキュメント。
第3章 Ext3 ファイルシステム。
3.1. ext3 の機能
- 可用性
- 予期しない停電やシステムクラッシュ (クリーンでないシステムシャットダウン とも言われる) が発生すると、マシンにマウントしている各 ext2 ファイルシステムは、e2fsck プログラムで整合性をチェックする必要があります。これは時間を浪費するプロセスであり、大量のファイルを含む大型ボリュームでは、システムの起動時間を著しく遅らせます。このプロセスの間、そのボリュームにあるデータは使用できません。ext3 ファイルシステムで提供されるジャーナリングは、クリーンでないシステムシャットダウンが発生してもこの種のファイルシステムのチェックが不要であることを意味します。ext3 の使用していても整合性チェックが必要になる唯一の場面は、ハードドライブの障害が発生した場合など、ごく稀なハードウェア障害のケースのみです。クリーンでないシャットダウンの発生後に ext3 ファイルシステムを復元する時間は、ファイルシステムのサイズやファイルの数量ではなく、一貫性を維持するために使用される ジャーナル のサイズに依存します。デフォルトのジャーナルサイズは、ハードウェアの速度に応じて、復旧するのに約 1 秒かかります
- データの整合性
- ext3 ファイルシステムは、クリーンでないシステムシャットダウンが発生した際にデータの整合性が失われることを防止します。ext3 ファイルシステムにより、データが受けることのできる保護のタイプとレベルを選択できるようになります。デフォルトでは、ext3 ボリュームは、ファイルシステムの状態に関して高いレベルのデータの整合性を維持するように設定されています。
- 速度
- 一部のデータを複数回書き込みますが、ext3 のジャーナリングにより、ハードドライブのヘッドモーションが最適化されるため、ほとんどの場合、ext3 のスループットは ext2 よりも高くなります。速度を最適化するために 3 つのジャーナリングモードから選択できますが、システムに障害が発生する可能性のある状況では、モードの選択はデータの整合性がトレードオフの関係になることがあります。
- 簡単なトランジション
- ext2 から ext3 に簡単に移行でき、再フォーマットをせずに、堅牢なジャーナリングファイルシステムの恩恵を受けることができます。このタスクの実行方法は、「ext3 ファイルシステムへの変換」 を参照してください。
3.2. Ext3 ファイルシステムの作成
- mkfs を使用して、ext3 ファイルシステムでパーティションをフォーマットします。
- e2label を使用してパーティションにラベルを付けます。
3.3. ext3 ファイルシステムへの変換
ext2
ファイルシステムを ext3
に変換できます。
ext2
ファイルシステムを ext3
に変換するには、root としてログインし、ターミナルで以下のコマンドを入力します。
tune2fs -j <block_device>
tune2fs -j <block_device>
- マップされたデバイス - ボリュームグループの論理ボリューム(例: /dev/mapper/VolGroup00-LogVol02 )。
- 静的デバイス - 従来のストレージボリューム(例: /dev/hdbX )。hdb はストレージデバイス名で、X はパーティション番号です。
/dev/mapper/VolGroup00-LogVol02
/dev/mapper/VolGroup00-LogVol02
initrd
を読み込んでいることを確認してください。
3.4. ext2 ファイルシステムへの復元
umount /dev/mapper/VolGroup00-LogVol02
umount /dev/mapper/VolGroup00-LogVol02
tune2fs -O ^has_journal /dev/mapper/VolGroup00-LogVol02
tune2fs -O ^has_journal /dev/mapper/VolGroup00-LogVol02
e2fsck -y /dev/mapper/VolGroup00-LogVol02
e2fsck -y /dev/mapper/VolGroup00-LogVol02
mount -t ext2 /dev/mapper/VolGroup00-LogVol02 /mount/point
mount -t ext2 /dev/mapper/VolGroup00-LogVol02 /mount/point
.journal
ファイルを削除します。
rm -f .journal
rm -f .journal
/etc/fstab
ファイルを更新するようにしてください。
第4章 ext4 ファイルシステム
4.1. ext4 の機能
- 主な特長
- ext4 ファイルシステムはエクステントを使用します (ext2 および ext3 で使用される従来のブロックマッピングスキームとは異なります)。これにより、大きなファイルを使用する際のパフォーマンスが向上し、大きなファイルのメタデータオーバーヘッドが低減します。また、ext4 では、未使用のブロックグループと inode テーブルのセクションにそれぞれラベル付けが行なわれます。これにより、ファイルシステムのチェック時にこれらを省略することができます。また、ファイルシステムチェックの速度が上がるため、ファイルシステムが大きくなるほどその便宜性は顕著になります。
- 割り当て機能
- Ext4 ファイルシステムには、以下のような割り当てスキームが備わっています。
- 永続的な事前割り当て
- 遅延割り当て
- マルチブロック割り当て
- ストライプ認識割り当て
遅延割り当てや他のパフォーマンスが最適化されるため、ext4 のディスクへのファイル書き込み動作は ext3 の場合とは異なります。ext4 では、プログラムが後で fsync () 呼び出しを発行しない限り、ファイルシステムへの書き込みがオンディスクになる保証はありません。ext3 では、fsync() の呼び出しがなくても、ファイルが新たに作成されると、そのほぼ直後にデフォルトでディスクへの書き込みが強制されます。この動作により、書き込まれたデータがオンディスクにあることを、fsync() を使用して確認しないというプログラムのバグが表面化しませんでした。一方、ext4 ファイルシステムは、ディスクへの変更書き込みの前に数秒間待機することが多く、書き込みを結合して再度順序付けを行うことにより、ext3 を上回るディスクパフォーマンスを実現しています。警告ext3 とは異なり、ext4 ファイルシステムでは、トランザクションコミット時にディスクへのデータの書き込みを強制しません。このため、バッファーされた書き込みがディスクにフラッシュされるまでに時間がかかります。他のファイルシステムと同様、永続的なストレージにデータが書き込まれたことを確認するには、fsync() などのデータ整合性チェックの呼び出しを使用してください。 - Ext4 のその他の機能
- ext4 ファイルシステムでは次の機能にも対応しています。
- 拡張属性 (
xattr
)。これにより、システムはファイルごとに追加の名前と値のペアを関連付けることができます。 - クォータジャーナリング により、クラッシュ後の時間がかかるクォータの整合性チェックが不要になります。注記ext4 で対応しているジャーナリングモードは data=ordered (デフォルト) のみです。
- サブセカンドのタイムスタンプ: inode タイムスタンプフィールドをナノ秒で指定できるようにします。
4.2. ext4 ファイルシステムの管理
~]# yum install e4fsprogs
~]# yum install e4fsprogs
- mke4fs - ext4 ファイルシステムの作成に使用するユーティリティー。
- mkfs.ext4 - ext4 ファイルシステムの作成に使用するもう 1 つのコマンドです。
- e4fsck - ext4 ファイルシステムの不整合を修復するために使用されるユーティリティー。
- tune4fs - ext4 ファイルシステムの属性を変更するために使用されるユーティリティー。
- resize4fs - ext4 ファイルシステムのサイズを変更するのに使用するユーティリティー。
- e4label - ext4 ファイルシステムのラベルを表示または変更するために使用されるユーティリティー。
- dumpe4fs - ext4 ファイルシステムのスーパーブロックおよびブロックグループ情報を表示するのに使用するユーティリティー。
- debuge4fs - インタラクティブなファイルシステムデバッガーで、ext4 ファイルシステムを調べ、破損したファイルシステムを手動で修復し、e4fsck のテストケースを作成するために使用されます。
4.3. Ext4 ファイルシステムの作成
/etc/mke4fs.conf
の設定ファイルを調べて変更することもできます。
- mkfs.ext4 または mke4fs コマンドを使用して、ext4 ファイルシステムでパーティションをフォーマットします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ~]# mkfs.ext4 block_device
~]# mkfs.ext4 block_device
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ~]# mke4fs -t ext4 block_device
~]# mke4fs -t ext4 block_device
block_device は、作成する ext4 ファイルシステムを含むパーティションです。 - e4label コマンドを使用して、パーティションにラベルを付けます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ~]# e4label <block_device> new-label
~]# e4label <block_device> new-label
- マウントポイントを作成し、新しいファイルシステムをそのマウントポイントにマウントします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ~]# mkdir /mount/point ~]# mount block_device /mount/point
~]# mkdir /mount/point ~]# mount block_device /mount/point
- マップされたデバイス - ボリュームグループの論理ボリューム(例: /dev/mapper/VolGroup00-LogVol02 )。
- 静的デバイス - 従来のストレージボリューム(例: /dev/hdbX )。hdb はストレージデバイス名で、X はパーティション番号です。
- stride=value
- RAID チャンクサイズを指定します。
- stripe-width=value
- RAID デバイス内のデータディスク数、または 1 ストライプ内のストライプユニット数を指定します。
~]# mkfs.ext4 -E stride=16,stripe-width=64 block_device
~]# mkfs.ext4 -E stride=16,stripe-width=64 block_device
4.4. ext4 ファイルシステムのマウント
~]# mount block_device /mount/point
~]# mount block_device /mount/point
no acl
、data
、quota、noquota
、user_xattr、nouser_xattr
などのオプション、ext2 および ext3 ファイルシステムですでに使用されているものの多くは後方互換性があり、同じ使用方法や機能を持ちます。また、ext4 ファイルシステムでは、ext4 固有のマウントオプションが複数追加されました。以下に例を示します。
- barrier / nobarrier
- 書き込みキャッシュが有効になっているデバイスへの電力供給が停止した場合でも、ファイルシステムの整合性を確保できるようにするため、ext4 ではデフォルトで書き込みバリアを使用します。書き込みキャッシュのないデバイス、またはバッテリーでバックアップされた書き込みキャッシュがあるデバイスの場合、nobarrier オプションを使用してバリアを無効にします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ~]# mount -o nobarrier block_device /mount/point
~]# mount -o nobarrier block_device /mount/point
- stripe=value
- このオプションを使用すると、1 つのファイル操作に割り当てられるファイルシステムブロックの数を指定できます。RAID5 の場合、この数はディスク数で乗算した RAID チャンクサイズと同じでなければなりません。
- journal_ioprio=value
- このオプションを使用すると、コミット操作中に送信された I/O 操作の優先度を設定できます。オプションには、7 から 0 までの値を指定でき(0 が最も高い優先度)、はデフォルトでは 3 に設定されます。これは、デフォルトの I/O 優先度よりも若干高いです。
/dev/mapper/VolGroup00-LogVol02
デバイスのファイルシステムをマウントするように設定します。
~]# tune4fs -o ^debug,user_xattr,acl /dev/mapper/VolGroup00-LogVol02
~]# tune4fs -o ^debug,user_xattr,acl /dev/mapper/VolGroup00-LogVol02
~]# mount -t ext4 block_device /mount/point
~]# mount -t ext4 block_device /mount/point
遅延割り当て
と マルチブロックの割り当て
、エクステントマッピング
などの除外機能が含まれます。
/etc/fstab
ファイルを更新するようにしてください。以下に例を示します。
/dev/mapper/VolGroup00-LogVol02 /test ext4 defaults 0 0
/dev/mapper/VolGroup00-LogVol02 /test ext4 defaults 0 0
4.5. ext4 ファイルシステムのサイズ変更
~]# resize4fs block_devicenew_size
~]# resize4fs block_devicenew_size
- s — 512 バイトのセクター
- K — キロバイト
- M — メガバイト
- G — ギガバイト
size
パラメーターは任意(多くの場合冗長)です。resize4fs は、コンテナーで利用可能な領域(通常は論理ボリュームまたはパーティション)をすべて埋めるように自動的に拡張します。ext4 ファイルシステムのサイズ変更に関する詳細は、resize4fs(8) man ページを参照してください。
第5章 proc
ファイルシステム
/proc/
ディレクトリー( proc
ファイルシステムとも呼ばれます)には、カーネルの現在の状態を表す特別なファイルの階層が含まれており、アプリケーションとユーザーがシステムのカーネルビューにピア接続できるようにします。
/proc/
ディレクトリー内で、システムのハードウェアと現在実行しているプロセスの詳細情報を見つけることができます。さらに、/proc/
ディレクトリーツリー内のファイルの一部をユーザーおよびアプリケーションが操作して、設定の変更をカーネルに通信できます。
5.1. 仮想ファイルシステム
/proc/
ディレクトリーには、仮想 ファイル と呼ばれる別のタイプのファイルが含まれます。このため、/proc/
は 仮想ファイルシステム と呼ばれることがよくあります。
/proc/interrupts
、/proc/meminfo
、/proc/mounts
、および /proc/partitions
などの仮想ファイルは、システムのハードウェアを最大から移動できます。/proc/filesystems
ファイルや /proc/sys/
ディレクトリーなどの他の場合は、システム設定情報とインターフェイスを提供します。
/proc/ide/
には、すべての物理 IDE デバイスの情報が含まれます。同様に、プロセスディレクトリーには、システムで実行している各プロセスに関する情報が含まれます。
5.1.1. 仮想ファイルの表示
/proc/
ディレクトリー内のファイルで cat コマンド、より多く の、または less コマンドを使用すると、ユーザーはシステムに関する膨大な量の情報にすぐにアクセスできます。たとえば、コンピューターが持つ 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
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/
ファイルシステムでさまざまな仮想ファイルを表示すると、人間が判読できないものの、一部の情報を簡単に理解できます。これは、仮想ファイルからデータを取得し、それを便利な方法で表示するユーティリティーが存在する理由の一部です。このユーティリティーの例には、lspci、apm、free、および top が含まれます。
/proc/
ディレクトリー内の仮想ファイルの一部は、root ユーザーのみが読み取り可能です。
5.1.2. 仮想ファイルの変更
/proc/
ディレクトリー内のほとんどの仮想ファイルは読み取り専用です。ただし、一部の を使用してカーネルの設定を調整することができます。これは、/proc/sys/
サブディレクトリー内のファイルに対して特に当てはまります。
echo www.example.com > /proc/sys/kernel/hostname
echo www.example.com > /proc/sys/kernel/hostname
0
または 1
のいずれかが返されます。0
は、カーネルがネットワークパケットを転送していないことを示します。echo コマンドを使用して ip_forward
ファイルの値を 1
に変更すると、すぐにパケット転送が有効になります。
/proc/sys/
サブディレクトリーで設定を変更するために使用されるもう 1 つのコマンドは、/sbin/sysctl です。このコマンドの詳細については、を参照してください。 「sysctl コマンドの使用」
/proc/sys/
サブディレクトリーで利用可能なカーネル設定ファイルの一部の一覧は、「 /proc/sys/
」 を参照してください。
5.1.3. プロセスディレクトリーへのアクセス制限
/proc/
に保存されているプロセスディレクトリーを保護し、root
ユーザーのみが表示できるようにすることが便利なことがよくあります。hidepid
オプションを使用すると、これらのディレクトリーへのアクセスを制限できます。
-o remount
オプションを指定して実行します。root
で以下のコマンドを実行します。
mount -o remount,hidepid=value /proc
mount -o remount,hidepid=value /proc
hidepid
に渡される 値 は以下のいずれかになります。
0
(デフォルト): すべてのユーザーが、プロセスディレクトリーに保存されている全ユーザーが読み取り可能なファイルを読み取ることができます。1
- ユーザーは自分のプロセスディレクトリーにのみアクセスできます。これにより、cmdline
、sched
、またはstatus
などの機密ファイルが root 以外のユーザーによるアクセスから保護されます。この設定は、実際のファイルパーミッションには影響しません。2
- プロセスファイルは、root 以外のユーザーには表示されません。プロセスの存在は他の手段で学習できますが、有効な UID と GID は非表示になっています。これらの ID を非表示にすると、侵入者が実行中のプロセスに関する情報を収集するタスクが複雑になります。
例5.1 プロセスディレクトリーへのアクセス制限
root
ユーザーのみがプロセスファイルにアクセスできるようにするには、以下を入力します。
~]# mount -o remount,hidepid=1 /proc
~]# mount -o remount,hidepid=1 /proc
hidepid
=1
を使用すると、root 以外のユーザーはプロセスディレクトリーのコンテンツにアクセスできません。これを試みると、以下のメッセージで失敗します。
~]$ ls /proc/1/ ls: /proc/1/: Operation not permitted
~]$ ls /proc/1/
ls: /proc/1/: Operation not permitted
hidepid
=2
を有効にすると、root 以外のユーザーにプロセスディレクトリーが非表示になります。
~]$ ls /proc/1/ ls: /proc/1/: No such file or directory
~]$ ls /proc/1/
ls: /proc/1/: No such file or directory
hidepid
が 1 または 2 に設定されている場合でも、ファイルを処理するユーザーグループを指定できます。これを行うには、gid
オプションを使用します。root
で以下のコマンドを実行します。
mount -o remount,hidepid=value,gid=gid /proc
mount -o remount,hidepid=value,gid=gid /proc
hidepid
が 0 に設定されているかのように動作します。ただし、システム全体のタスクを監視しないユーザーは、グループに追加しないでください。ユーザーおよびグループの管理に関する詳細は、37章ユーザーとグループ を参照してください。
5.2. proc
ファイルシステム内のトップレベルファイル
/proc/
ディレクトリーの最上位にある、より有用な仮想ファイルの一覧です。
5.2.1. /proc/apm
1.16 1.2 0x07 0x01 0xff 0x80 -1% -1 ?
1.16 1.2 0x07 0x01 0xff 0x80 -1% -1 ?
APM BIOS 1.2 (kernel driver 1.16ac) AC on-line, no system battery
APM BIOS 1.2 (kernel driver 1.16ac) AC on-line, no system battery
1.16 1.2 0x03 0x01 0x03 0x09 100% -1 ?
1.16 1.2 0x03 0x01 0x03 0x09 100% -1 ?
apm
ファイルの内容は以下のように変更されます。
1.16 1.2 0x03 0x00 0x00 0x01 99% 1792 min
1.16 1.2 0x03 0x00 0x00 0x01 99% 1792 min
APM BIOS 1.2 (kernel driver 1.16) AC off-line, battery status high: 99% (1 day, 5:52)
APM BIOS 1.2 (kernel driver 1.16) AC off-line, battery status high: 99% (1 day, 5:52)
5.2.2. /proc/buddyinfo
DMA
行は、システムの最初の 16 MB を参照し、HighMem
行はシステム上の 4 GB を超えるすべてのメモリーを参照し、Normal
行は の間のすべてのメモリーを参照します。
/proc/buddyinfo
の出力例です。
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 ...
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 ...
5.2.3. /proc/cmdline
/proc/cmdline
ファイルの例を以下に示します。
ro root=/dev/VolGroup00/LogVol00 rhgb quiet 3
ro root=/dev/VolGroup00/LogVol00 rhgb quiet 3
- ro
- ルートデバイスは、システムの起動時に読み取り専用でマウントされます。カーネルブート行に
ro
が存在すると、rw
のインスタンスが上書きされます。 - root=/dev/VolGroup00/LogVol00
- これは、どのディスクデバイスを使用するか、この場合は論理ボリューム(root ファイルシステムイメージがある)を指示します。
/proc/cmdline
の出力例では、root ファイルシステムイメージは、最初の LVM ボリュームグループ(VolGroup00
)の最初の論理ボリューム(LogVol00
)にあります。論理ボリューム管理を使用しないシステムでは、root ファイルシステムが/dev/sda1
または/dev/sda2
に置かれている可能性があります。つまり、そのドライブ上で別の(事前の)起動パーティションまたは swap パーティションがあるかどうかによって、最初の SCSI ディスクドライブまたは SATA ディスクドライブの最初のパーティションまたは 2 番目のパーティションのいずれかになります。Red Hat Enterprise Linux で使用される LVM の詳細は、http://www.tldp.org/HOWTO/LVM-HOWTO/index.html を参照してください。 - rhgb
- Red Hat グラフィカル ブートを表す短い小文字の acronym で、カーネルコマンドラインで "rhgb" を指定すると、
/etc/inittab
でデフォルトのランレベルが 5 に設定されていることが前提となります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow id:5:initdefault:
id:5:initdefault:
- quiet
- 起動時に非常に深刻なカーネルメッセージ以外のすべての詳細なカーネルメッセージを表示しないことを示します。
5.2.4. /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 : 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
プロセッサー
: 各プロセッサーに識別番号を提供します。プロセッサーが 1 つあるシステムでは、0
のみが存在します。CPU ファミリー
: 作成者はシステム内のプロセッサーのタイプを識別します。Intel ベースのシステムの場合は、値を決定するために、86 の前に番号を付けます。これは、586、486、386 などの古いシステムのアーキテクチャーを特定しようとする場合に特に役立ちます。特定のアーキテクチャーごとに RPM パッケージがコンパイルされているので、この値はユーザーがインストールするパッケージを決定するのに役立ちます。モデル名
: プロジェクト名を含むプロセッサーの共通名を表示します。CPU MHz
- プロセッサーの megahertz の正確な速度を数十小数点に表示します。キャッシュサイズ
: プロセッサーで利用可能なレベル 2 のメモリーキャッシュの量を表示します。siblings
: ハイパースレッディングを使用するアーキテクチャーの同じ物理 CPU 上のシブリング CPU の数を表示します。フラグ
: 浮動小数点ユニット(FPU)の存在や MMX 命令を処理する機能など、プロセッサーに関するさまざまな特性を定義します。
5.2.5. /proc/crypto
/proc/crypto
ファイルは以下のようになります。
name : sha1 module : kernel type : digest blocksize : 64 digestsize : 20 name : md5 module : md5 type : digest blocksize : 64 digestsize : 16
name : sha1
module : kernel
type : digest
blocksize : 64
digestsize : 20
name : md5
module : md5
type : digest
blocksize : 64
digestsize : 16
5.2.6. /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
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 つの主要なセクションに分かれています。
- キャラクターデバイスにはバッファーは必要ありません。ブロックデバイスには利用可能なバッファーがあり、要求に対応する前にそれらを順序付けできます。これは、ハードドライブなどの情報を保存するために設計されたデバイスにとって重要です。デバイスに書き込む前に情報を順序付ける機能により、より効率的な順序で情報を配置することができるためです。
- キャラクターデバイスは、サイズが事前設定されていないデータを送信します。ブロックデバイスは、デバイスごとに設定されたサイズのブロック内の情報を送受信できます。
/usr/share/doc/kernel-doc-<version>/Documentation/devices.txt
/usr/share/doc/kernel-doc-<version>/Documentation/devices.txt
5.2.7. /proc/dma
/proc/dma
ファイルは以下のようになります。
4: cascade
4: cascade
5.2.8. /proc/execdomains
0-0 Linux [kernel]
0-0 Linux [kernel]
PER_LINUX
実行ドメインを除き、さまざまなパーソナリティーを動的にロード可能なモジュールとして実装できます。
5.2.9. /proc/fb
/proc/fb
の一般的な出力は以下のようになります。
0 VESA VGA
0 VESA VGA
5.2.10. /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 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 番目のコラムには、サポートされているファイルシステムの名前が記載されています。
5.2.11. /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
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
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
- この割り込みの電圧シグナルは低から高に移行され、割り込みが発生して 1 回だけシグナルを受ける エッジ が作成されます。この種の割り込みとIO-APIC レベル
の割り込みは、586 ファミリー以降のプロセッサーを持つシステムでのみ表示されます。IO-APIC-level
- シグナルが再び低いまで電圧シグナルが高い場合に割り込みを生成します。
5.2.12. /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
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
5.2.13. /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
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
5.2.14. /proc/kcore
/proc/
ファイルとは異なり、kcore
はサイズを表示します。この値はバイト単位で指定され、使用される物理メモリー(RAM)のサイズに 4 KB を加えたサイズと同じです。
/proc/kcore
仮想ファイルは表示しないでください。端末上のファイルの Sramble テキスト出力の内容。このファイルが誤って表示されたら、Ctrl+C を押してプロセスを停止し、reset と入力してコマンドラインプロンプトを元に戻します。
5.2.15. /proc/kmsg
5.2.16. /proc/loadavg
/proc/loadavg
ファイルの例を以下に示します。
0.20 0.18 0.12 1/80 11206
0.20 0.18 0.12 1/80 11206
5.2.17. /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
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 ファイルロックを示し、lockf システムコールから新しい POSIX
ロックを表します。
ADVISORY
または MANDATORY
の 2 つの値を指定できます。ADVISORY
は、ロックが他のユーザーがデータにアクセスできないことを意味します。他のユーザーがロックするのを防ぐだけです。MANDATORY
は、ロックが保持される間、データへの他のアクセスが許可されないことを意味します。4 番目のコラムは、ロックが所有者の READ
または WRITE
アクセスを許可するかどうかを示します。5 番目のコラムには、ロックを保持するプロセスの ID が表示されます。6 番目のコラムには、ロックされているファイルの ID が MAJOR-DEVICE:MINOR-DEVICE:INODE-NUMBER
の形式で表示されます。7 番目と 8 番目のコラムは、ファイルのロックされたリージョンの開始と終了を示しています。
5.2.18. /proc/mdstat
/proc/mdstat
は以下のようになります。
Personalities : read_ahead not set unused devices: <none>
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>
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>
5.2.19. /proc/meminfo
/proc/
ディレクトリーで一般的に使用されるファイルの 1 つです。
/proc/meminfo
仮想ファイルの例は、256 MB の RAM と 512 MB のスワップ領域があるシステムのものです。
MemTotal: 255908 kB MemFree: 69936 kB Buffers: 15812 kB Cached: 115124 kB SwapCached: 0 kB Active: 92700 kB Inactive: 63792 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 255908 kB LowFree: 69936 kB SwapTotal: 524280 kB SwapFree: 524280 kB Dirty: 4 kB Writeback: 0 kB Mapped: 42236 kB Slab: 25912 kB Committed_AS: 118680 kB PageTables: 1236 kB VmallocTotal: 3874808 kB VmallocUsed: 1416 kB VmallocChunk: 3872908 kB HugePages_Total: 0 HugePages_Free: 0 Hugepagesize: 4096 kB
MemTotal: 255908 kB
MemFree: 69936 kB
Buffers: 15812 kB
Cached: 115124 kB
SwapCached: 0 kB
Active: 92700 kB
Inactive: 63792 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 255908 kB
LowFree: 69936 kB
SwapTotal: 524280 kB
SwapFree: 524280 kB
Dirty: 4 kB
Writeback: 0 kB
Mapped: 42236 kB
Slab: 25912 kB
Committed_AS: 118680 kB
PageTables: 1236 kB
VmallocTotal: 3874808 kB
VmallocUsed: 1416 kB
VmallocChunk: 3872908 kB
HugePages_Total: 0
HugePages_Free: 0
Hugepagesize: 4096 kB
/proc/meminfo
の内容と構造と同様のものです。ただし、/proc/meminfo
で直接確認すると、詳細が表示されます。
MemTotal
: 物理 RAM の合計容量(キロバイト単位)。MemFree
- システムが使用していない物理メモリーの量(キロバイト単位)。バッファー
- ファイルバッファーに使用される物理 RAM の容量(キロバイト単位)。cached
- キャッシュメモリーとして使用される物理メモリーの量(キロバイト単位)。SwapCached
: キャッシュメモリーとして使用されるスワップの量(キロバイト単位)。Active
- アクティブな使用時のバッファーまたはページキャッシュメモリーの合計量(キロバイト単位)。これは最近使用されたメモリーであり、通常は他の目的で回収されません。inactive
- 空きかつ利用可能なバッファーまたはページキャッシュメモリーの合計量(キロバイト単位)。これは最近使用されていないメモリーであり、他の目的で回収できます。HighTotal
andHighFree
: カーネル領域に直接マッピングされないメモリーの合計および空き容量(キロバイト単位)。HighTotal
値は、使用されるカーネルのタイプによって異なります。LowTotal
andLowFree
: カーネル領域に直接マップされるメモリーの合計および空き容量(キロバイト単位)。LowTotal
値は、使用されるカーネルのタイプによって異なります。SwapTotal
- 利用可能なスワップの合計量(キロバイト単位)。swapfree
- 空きスワップの合計量(キロバイト単位)。dirty
: ディスクに書き戻されるのを待つメモリーの合計量(キロバイト単位)。writeback -
ディスクにアクティブに書き込むメモリーの合計量(キロバイト単位)。mapped
- mmap コマンドを使用してデバイス、ファイル、またはライブラリーをマッピングするために使用されたメモリーの合計量(キロバイト単位)。slab -
カーネルが独自の使用のためにデータ構造をキャッシュするために使用するメモリーの合計量(キロバイト単位)。Committed_AS
: ワークロードの完了に推定されるメモリーの合計量(キロバイト単位)。この値は最も悪いケースのシナリオ値を表し、スワップメモリーも含まれます。pagetables
- 最小のページテーブルレベル専用のメモリーの合計量(キロバイト単位)。VMallocTotal
- 割り当てられた仮想アドレス空間の合計量(キロバイト単位)。VMallocUsed
- 使用されている仮想アドレス空間の合計量(キロバイト単位)。VMallocChunk
: 利用可能な仮想アドレス空間の最大連続するメモリーブロック(キロバイト単位)。HugePages_Total
: システムのヒュージページの合計数この数は、/proc/sys/vm/hugetlb_pool
で指定されたヒュージページ用に確保されるメガバイト単位で dividing----------|-----size
によって派生します。この統計は、x86、Itanium、および AMD64 アーキテクチャーにのみ表示されます。HugePages_Free
: システムで利用可能なヒュージページの合計数この統計は、x86、Itanium、および AMD64 アーキテクチャーにのみ表示されます。ubuntusize
- 各ヒュージページユニットのサイズ(キロバイト単位)。デフォルトでは、32 ビットアーキテクチャーの uniprocessor カーネルでは、値は 4096 KB です。SMP、hugemem カーネル、および AMD64 の場合、デフォルトは 2048 KB です。Itanium アーキテクチャーの場合、デフォルトは 262144 KB です。この統計は、x86、Itanium、および AMD64 アーキテクチャーにのみ表示されます。
5.2.20. /proc/misc
63 device-mapper 175 agpgart 135 rtc 134 apm_bios
63 device-mapper 175 agpgart 135 rtc 134 apm_bios
5.2.21. /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
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
などのプロファイリングツールに役立ちます。
5.2.22. /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
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/mount
が最新です。
ro
)または読み取り/書き込み(rw
)がマウントされているかどうかを示します。5 番目と 6 番目の列は、/etc/mtab
で使用される形式に一致するように設計されたダミー値です。
5.2.23. /proc/mtrr
/proc/mtrr
ファイルは以下のようになります。
reg00: base=0x00000000 ( 0MB), size= 256MB: write-back, count=1 reg01: base=0xe8000000 (3712MB), size= 32MB: write-combining, count=1
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-<version>/Documentation/mtrr.txt
/usr/share/doc/kernel-doc-<version>/Documentation/mtrr.txt
5.2.24. /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 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
- 特定のパーティションに含まれる物理ディスクブロックの数を一覧表示します。名前
- パーティションの名前。
5.2.25. /proc/pci
/proc/pci
が長くなる可能性があります。基本的なシステムからのこのファイルのサンプリングは以下のようになります。
Bus 0, device 0, function 0: Host bridge: Intel Corporation 440BX/ZX - 82443BX/ZX Host bridge (rev 3). Master Capable. Latency=64. Prefetchable 32 bit memory at 0xe4000000 [0xe7ffffff]. Bus 0, device 1, function 0: PCI bridge: Intel Corporation 440BX/ZX - 82443BX/ZX AGP bridge (rev 3). Master Capable. Latency=64. Min Gnt=128. Bus 0, device 4, function 0: ISA bridge: Intel Corporation 82371AB PIIX4 ISA (rev 2). Bus 0, device 4, function 1: IDE interface: Intel Corporation 82371AB PIIX4 IDE (rev 1). Master Capable. Latency=32. I/O at 0xd800 [0xd80f]. Bus 0, device 4, function 2: USB Controller: Intel Corporation 82371AB PIIX4 USB (rev 1). IRQ 5. Master Capable. Latency=32. I/O at 0xd400 [0xd41f]. Bus 0, device 4, function 3: Bridge: Intel Corporation 82371AB PIIX4 ACPI (rev 2). IRQ 9. Bus 0, device 9, function 0: Ethernet controller: Lite-On Communications Inc LNE100TX (rev 33). IRQ 5. Master Capable. Latency=32. I/O at 0xd000 [0xd0ff]. Bus 0, device 12, function 0: VGA compatible controller: S3 Inc. ViRGE/DX or /GX (rev 1). IRQ 11. Master Capable. Latency=32. Min Gnt=4.Max Lat=255.
Bus 0, device 0, function 0: Host bridge: Intel Corporation 440BX/ZX - 82443BX/ZX Host bridge (rev 3). Master Capable. Latency=64. Prefetchable 32 bit memory at 0xe4000000 [0xe7ffffff].
Bus 0, device 1, function 0: PCI bridge: Intel Corporation 440BX/ZX - 82443BX/ZX AGP bridge (rev 3). Master Capable. Latency=64. Min Gnt=128.
Bus 0, device 4, function 0: ISA bridge: Intel Corporation 82371AB PIIX4 ISA (rev 2).
Bus 0, device 4, function 1: IDE interface: Intel Corporation 82371AB PIIX4 IDE (rev 1). Master Capable. Latency=32. I/O at 0xd800 [0xd80f].
Bus 0, device 4, function 2: USB Controller: Intel Corporation 82371AB PIIX4 USB (rev 1). IRQ 5. Master Capable. Latency=32. I/O at 0xd400 [0xd41f].
Bus 0, device 4, function 3: Bridge: Intel Corporation 82371AB PIIX4 ACPI (rev 2). IRQ 9.
Bus 0, device 9, function 0: Ethernet controller: Lite-On Communications Inc LNE100TX (rev 33). IRQ 5. Master Capable. Latency=32. I/O at 0xd000 [0xd0ff].
Bus 0, device 12, function 0: VGA compatible controller: S3 Inc. ViRGE/DX or /GX (rev 1). IRQ 11. Master Capable. Latency=32. Min Gnt=4.Max Lat=255.
lspci -vb
lspci -vb
5.2.26. /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
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
- slab の名前。
/usr/bin/slabtop
プログラムの詳細は、slabtop
の man ページを参照してください。
5.2.27. /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 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 待機、IRQ (hardirq)、softirq になっている jiffies の数(1/100)を表します。IRQ (hardirq)は、ハードウェアイベントへの直接応答です。IRQ は、softirq の実行で大きさの作業をキューに入れるには最小限の作業を行います。softirq は IRQ よりも優先度が低いため、頻繁に中断される可能性があります。すべての CPU の合計は上部に表示され、各 CPU は以下の独自の統計と共に一覧表示されます。以下の例は、マルチスレッドが有効な 4 方向の Intel Pentium Xeon 設定であるため、4 つの物理プロセッサーと、合計 8 つのプロセッサー 4 つの仮想プロセッサーを表示します。ページ
- システムがディスクに書き込んだメモリーページ数。swap
: システムが送受信したスワップページの数。intr
- システムが経験した割り込みの数。btime
- 起動時間(1970 年 1 月 1 日からの秒数で測定)で、それ以外は エポック と呼ばれています。
5.2.28. /proc/swaps
/proc/swaps
の出力は以下のようになります。
Filename Type Size Used Priority /dev/mapper/VolGroup00-LogVol01 partition 524280 0 -1
Filename Type Size Used Priority
/dev/mapper/VolGroup00-LogVol01 partition 524280 0 -1
/proc/
ディレクトリー内の他のファイルにありますが、/proc/swaps
は各スワップファイル名のスナップショット、スワップ領域のタイプ、合計サイズ、および使用中の領域のサイズ(キロバイト単位)を提供します。優先度の列は、複数のスワップファイルが使用されている場合に役立ちます。優先度が低いほど、スワップファイルが使用される可能性が高くなります。
5.2.29. /proc/sysrq-trigger
/proc/sys/kernel/sysrq
を 0
以外の値に設定する必要があります。システム要求キーの詳細は、「 /proc/sys/kernel/
」 を参照してください。
5.2.30. /proc/uptime
/proc/uptime
の出力は非常に最小限です。
350735.47 234388.90
350735.47 234388.90
5.2.31. /proc/version
gcc
のバージョンと、システムにインストールされている Red Hat Enterprise Linux のバージョンを指定します。
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
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
5.3. /proc/
内のディレクトリー
/proc/
ディレクトリー内のディレクトリーおよびサブディレクトリーにグループ化されます。
5.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
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/
プロセスディレクトリーが消失します。
cmdline
- プロセスの起動時に発行されたコマンドが含まれます。CWD
: プロセスの現在の作業ディレクトリーへのシンボリックリンク。environ
: プロセスの環境変数の一覧。環境変数はすべての大文字で指定され、値は小文字です。exe
: このプロセスの実行ファイルへのシンボリックリンクです。fd
: 特定のプロセスのファイル記述子をすべて含むディレクトリー。番号付きのリンクには、以下のものがあります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
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 プロセスからの出力例は以下のように始まります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
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
ファイルの例です。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 263 210 210 5 0 205 0
263 210 210 5 0 205 0
7 列は、プロセスの異なるメモリー統計に関連します。左から右に、使用されているメモリーの次の側面を報告します。- プログラムの合計サイズ(キロバイト単位)。
- メモリー部分のサイズ(キロバイト単位)。
- 共有されるページ数。
- コードであるページ数。
- データ/スタックページ数。
- ライブラリーページ数。
- ダーティーページの数。
status
-stat
またはstatm
よりも読み取り可能な形式のプロセスのステータス。sshd の出力例を以下に示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
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 (実行中)、プロセスを実行しているユーザー/グループ ID、メモリー使用量に関する詳細なデータ)
が含まれます。
5.3.1.1. /proc/self/
/proc/self/
ディレクトリーは、現在実行中のプロセスへのリンクです。これにより、プロセスはプロセス ID を把握せずに自身を確認することができます。
/proc/self/
ディレクトリーを一覧表示すると、そのプロセスのプロセスディレクトリーを一覧表示するのと同じコンテンツが生成されます。
5.3.2. /proc/bus/
/proc/bus/
pci/ などの同じ名前の /proc/bus/
サブディレクトリー内で利用できます。
/proc/bus/
内で使用できるサブディレクトリーとファイルは、システムに接続されているデバイスによって異なります。ただし、各バスタイプには少なくとも 1 つのディレクトリーがあります。これらのバスディレクトリー内には通常、バイナリーファイルを含む 001
などの数値名の少なくとも 1 つのサブディレクトリーがあります。
/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
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
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
5.3.3. /proc/driver/
rtc
で、システムの Real Time Clock (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
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-<version>/Documentation/rtc.txt
.
5.3.4. /proc/fs
5.3.5. /proc/ide/
/proc/ide/ide0
や /proc/ide/ide1
などの個別のディレクトリーとして表されます。さらに、ドライバー
ファイルを利用できます。これにより、IDE チャネルで使用されるさまざまなドライバーのバージョン番号が提供されます。
ide-floppy version 0.99. newide ide-cdrom version 4.61 ide-disk version 1.18
ide-floppy version 0.99.
newide ide-cdrom version 4.61
ide-disk version 1.18
/proc/ide/piix
ファイルを生成し、IDE チャネルのデバイスに対して DMA または UDMA が有効になっているかどうかを示します。
Intel PIIX4 Ultra 33 Chipset. ------------- Primary Channel ---------------- Secondary Channel ------------- enabled enabled ------------- drive0 --------- drive1 -------- drive0 ---------- drive1 ------ DMA enabled: yes no yes no UDMA enabled: yes no no no UDMA enabled: 2 X X X UDMA DMA PIO
Intel PIIX4 Ultra 33 Chipset.
------------- Primary Channel ---------------- Secondary Channel -------------
enabled enabled
------------- drive0 --------- drive1 -------- drive0 ---------- drive1 ------
DMA enabled: yes no yes no
UDMA enabled: yes no no no
UDMA enabled: 2 X X X
UDMA DMA PIO
ide0
などの IDE チャネルのディレクトリーに移動すると、追加情報が提供されます。チャネルファイルはチャネル
番号を提供し、モデル
はチャネルのバスタイプを特定します( pci
など)。
5.3.5.1. デバイスディレクトリー
/dev/
ディレクトリーのドライブ文字に対応します。たとえば、ide0
の最初の IDE ドライブは hda
になります。
/proc/ide/
ディレクトリーには、これらの各デバイスディレクトリーへのシンボリックリンクがあります。
cache
- デバイスキャッシュ。容量
- デバイスの容量(512 バイトブロック)。driver
- デバイスの制御に使用するドライバーおよびバージョンジオメトリー
- デバイスの物理的および論理ジオメトリー。メディア
-ディスク
などのデバイスのタイプ。model
- デバイスのモデル名または数。設定
- 現在のデバイスパラメーターのコレクション。通常、このファイルには非常に便利な技術情報が含まれています。標準 IDE ハードディスクの設定
ファイルのサンプルは以下のようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow name value min max mode ---- ----- --- --- ---- acoustic 0 0 254 rw address 0 0 2 rw bios_cyl 38752 0 65535 rw bios_head 16 0 255 rw bios_sect 63 0 63 rw bswap 0 0 1 r current_speed 68 0 70 rw failures 0 0 65535 rw init_speed 68 0 70 rw io_32bit 0 0 3 rw keepsettings 0 0 1 rw lun 0 0 7 rw max_failures 1 0 65535 rw multcount 16 0 16 rw nice1 1 0 1 rw nowerr 0 0 1 rw number 0 0 3 rw pio_mode write-only 0 255 w unmaskirq 0 0 1 rw using_dma 1 0 1 rw wcache 1 0 1 rw
name value min max mode ---- ----- --- --- ---- acoustic 0 0 254 rw address 0 0 2 rw bios_cyl 38752 0 65535 rw bios_head 16 0 255 rw bios_sect 63 0 63 rw bswap 0 0 1 r current_speed 68 0 70 rw failures 0 0 65535 rw init_speed 68 0 70 rw io_32bit 0 0 3 rw keepsettings 0 0 1 rw lun 0 0 7 rw max_failures 1 0 65535 rw multcount 16 0 16 rw nice1 1 0 1 rw nowerr 0 0 1 rw number 0 0 3 rw pio_mode write-only 0 255 w unmaskirq 0 0 1 rw using_dma 1 0 1 rw wcache 1 0 1 rw
5.3.6. /proc/irq/
/proc/irq/prof_cpu_mask
ファイルは、IRQ ディレクトリー内の smp_affinity
ファイルのデフォルト値が含まれるビットマスクです。smp_affinity
の値は、その特定の IRQ を処理する CPU を指定します。
/proc/irq/
ディレクトリーの詳細は、以下のインストール済みドキュメントを参照してください。
/usr/share/doc/kernel-doc-<version>/Documentation/filesystems/proc.txt
/usr/share/doc/kernel-doc-<version>/Documentation/filesystems/proc.txt
5.3.7. /proc/net/
/proc/net/
ディレクトリーの部分的なリストです。
arp
: カーネルの ARP テーブルを一覧表示します。このファイルは、ハードウェアアドレスをシステムの IP アドレスに接続する際に特に便利です。- ATM
/
ディレクトリー - このディレクトリー内のファイルには Asynchronous Transfer Mode (ATM) の設定と統計が含まれます。このディレクトリーは、主に ATM ネットワークおよび ADSL カードで使用されます。 dev
: システムに設定したさまざまなネットワークデバイスの一覧を表示し、統計の送受信を完了します。このファイルは、各インターフェイスが送受信したバイト数、インバウンドおよびアウトバウンドのパケット数、発生したエラーの数、ドロップされたパケット数などを表示します。dev_mcast
- 各デバイスがリッスンしている Layer2 マルチキャストグループを一覧表示します。IGMP
: このシステムが参加する IP マルチキャストアドレスを一覧表示します。ip_conntrack
- IP 接続を転送するマシンの追跡されたネットワーク接続を一覧表示します。ip_tables_names
- 使用中の iptables のタイプを一覧表示します。このファイルは、iptables がシステムでアクティブで、1 つ以上の値(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 ドメインソケットを一覧表示します。 ワイヤレス - ワイヤレス
インターフェイスデータを一覧表示します。
5.3.8. /proc/scsi/
/proc/ide/
ディレクトリーに似ていますが、接続 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
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
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
5.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 -r--r--r-- 1 root root 0 May 10 16:14 dquot-nr -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
-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
-r--r--r-- 1 root root 0 May 10 16:14 dquot-nr
-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 します。たとえば、実行中のカーネルで System Request Key を有効にするには、以下のコマンドを入力します。
echo 1 > /proc/sys/kernel/sysrq
echo 1 > /proc/sys/kernel/sysrq
sysrq
の値が 0
(off)から 1
(on)に変わります。
/proc/sys/
設定ファイルには、複数の値が含まれています。新しい値を正しく送信するには、echo コマンドで渡される各値の間に空白文字を配置します。以下に例を示します。
echo 4 2 45 > /proc/sys/kernel/acct
echo 4 2 45 > /proc/sys/kernel/acct
/proc/sys/
ディレクトリーには、実行中のカーネルのさまざまな側面を制御するサブディレクトリーが複数含まれています。
5.3.9.1. /proc/sys/dev/
cdrom/
と raid/
の少なくとも 2 つのディレクトリーがあります。カスタマイズされたカーネルには、parport/
などの他のディレクトリーを設定できます。これにより、複数のデバイスドライバー間で 1 つの並列ポートを共有できます。
cdrom/
ディレクトリーには、いくつかの重要な CD-ROM パラメーターを示す info
というファイルが含まれます。
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
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
/proc/sys/dev/cdrom
内のさまざまなファイル( autoclose
や checkmedia
など)を使用して、システムの CD-ROM を制御できます。これらの機能を有効または無効にするには、echo コマンドを使用します。
/proc/sys/dev/raid/
ディレクトリーが少なくとも 2 つのファイル( speed_limit_min
および speed_limit_max
)で利用できます。この設定により、ディスクの再同期など、I/O 集約タスク用の RAID デバイスのアクセラレーションを決定します。
5.3.9.2. /proc/sys/fs/
binfmt_misc/
ディレクトリーは、その他のバイナリー形式のカーネルサポートを提供するために使用されます。
/proc/sys/fs/
の重要なファイルには、以下が含まれます。
dentry-state
: ディレクトリーキャッシュのステータスを指定します。ファイルは以下のようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 57411 52939 45 0 0 0
57411 52939 45 0 0 0
最初の番号は、ディレクトリーキャッシュエントリーの合計数を示し、2 番目の番号には未使用のエントリーの数が表示されます。3 番目の番号は、ディレクトリーが解放された場合と回収可能な時点までの秒数を示し、システムによって現在要求されたページを 4 番目に測定します。最後の 2 つの数字は使用されず、ゼロのみを表示します。- D
quot-nr
: キャッシュされたディスククォータエントリーの最大数を一覧表示します。 file-max
: カーネルが割り当てるファイルハンドルの最大数を一覧表示します。このファイルの値を増やすと、利用可能なファイルハンドルがないためにエラーを解決できます。file-nr
: 割り当てファイルハンドルの数、使用済みファイルハンドル、およびファイルハンドルの最大数を一覧表示します。overflowgid
およびoverflowuid
: 16 ビットグループとユーザー ID のみをサポートするファイルシステムで使用するために、それぞれ固定グループ ID とユーザー ID を定義します。super-max
: 利用可能なスーパーブロックの最大数を制御します。super-nr
: 現在使用中のスーパーブロックの数を表示します。
5.3.9.3. /proc/sys/kernel/
acct
- ログを含むファイルシステムで利用可能な空き領域の割合に基づいて、プロセスアカウンティングの一時停止を制御します。デフォルトでは、ファイルは以下のようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 4 2 30
4 2 30
最初の値は、ロギングの再開に必要な空き容量の割合を決定し、2 番目の値はロギングが一時停止されたときの空き領域のしきい値パーセンテージを設定します。3 番目の値は、カーネルがファイルシステムをポーリングして、ロギングを一時停止または再開する必要があるかどうかを確認する間隔を秒単位で設定します。cap-bound
: システム上のプロセス の機能 一覧を提供する機能バウンディング設定を制御します。機能がここに一覧表示されていない場合は、特権の種類に関係なく、プロセスが実行できません。これは、ブートプロセスの特定地点を超えた特定の事態を確実に行わないようにすることで、システムをよりセキュアにすることです。この仮想ファイルの有効な値の一覧については、以下のインストール済みドキュメントを参照してください。/lib/modules/<kernel-version>/build/include/linux/capability.h
.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 が有効な場合にこれらのアプリケーションを再起動する必要があります。exec-shield-randomize
- メモリー内のさまざまな項目の場所のランダム化を有効にします。これにより、潜在的な攻撃者がメモリー内のプログラムやデーモンを見つけるのを防ぐことができます。プログラムまたはデーモンが起動するたびに、静的メモリーまたは絶対メモリーアドレスで決して、毎回異なるメモリーの場所に配置されます。この仮想ファイルには、以下の 2 つの値を使用できます。- 0 - Exec Shield のランダム化を無効にします。これは、アプリケーションのデバッグに役立ちます。
- 1 - Exec Shield のランダム化を有効にします。これはデフォルト値です。注記:
exec-shield
-randomize を有効にするには、exec-shield
ファイルも 1 に設定する必要があります。
hostname
-www.example.com
などのシステムホスト名を設定します。ホットプラグ
: システムによって設定の変更が検出されたときに使用されるユーティリティーを設定します。これは主に USB および Cardbus PCI で使用されます。このロールを実行するために新しいプログラムをテストしない限り、デフォルト値の/sbin/hotplug
は変更しないでください。modprobe
- カーネルモジュールの読み込みに使用するプログラムの場所を設定します。デフォルト値は/sbin/modprobe
で、カーネルスレッドが kmod を呼び出すときにモジュールをロードするために kmod を呼び出すことを意味します。msgmax
: あるプロセスから別のプロセスに送信されるメッセージの最大サイズを設定し、デフォルトでは8192
バイトに設定されます。プロセス間のキューに置かれたメッセージはスワップ不可能なカーネルメモリーに保存されるため、この値を引き上げる際には注意してください。msgmax
を増やすと、システムの RAM 要件が増えます。msgmnb
- 1 つのメッセージキューに最大バイト数を設定します。デフォルトは16384
です。MSGMNI
: メッセージキュー識別子の最大数を設定します。デフォルトは16
です。osrelease
: Linux カーネルのリリース番号を一覧表示します。このファイルは、カーネルソースを変更して再コンパイルするだけで変更できます。OSType
: オペレーティングシステムの種類を表示します。デフォルトでは、このファイルはLinux
に設定されています。この値は、カーネルソースを変更して再コンパイルするだけで変更できます。overflowgid
およびoverflowuid
: 16 ビットグループとユーザー ID のみをサポートするアーキテクチャーのシステムコールで使用するために、それぞれ固定グループ ID とユーザー ID を定義します。panic
- システムがカーネルパニックが発生したときにカーネルが再起動を延期する秒数を定義します。デフォルトでは、値は0
に設定されています。これにより、パニック後の自動再起動が無効になります。printk
: このファイルは、エラーメッセージの出力またはロギングに関連するさまざまな設定を制御します。カーネルによって報告される各エラーメッセージには、メッセージ の重要性を定義するログレベルが関連付けられています。ログレベルの値は、以下の順序で分類されます。0
- カーネル緊急。システムが利用できません。1
- カーネルアラート。すぐに対処する必要があります。2
- 重大な問題があると見なされるカーネルの状態。3
- 一般的なカーネルエラー状態。4
- 一般的なカーネルの警告状態。5
- 正常だが重大な状態のカーネル通知。6
: カーネル情報メッセージ。7
- カーネルのデバッグレベルのメッセージ。
printk
ファイルには 4 つの値があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 6 4 1 7
6 4 1 7
これらの値はそれぞれ、エラーメッセージを処理するための異なるルールを定義します。コンソールログレベル と呼ばれる最初の値は 、コンソール に出力されるメッセージの最も低い優先度を定義します。(優先順位が低いほど、ログレベル番号が高いことに注意してください。) 2 番目の値は、明示的なログレベルが付いていないメッセージのデフォルトログレベルを設定します。3 番目の値は、コンソールログレベルに可能な限り低いログレベル設定を設定します。最後の値は、コンソールログレベルのデフォルト値を設定します。random/
ディレクトリー:カーネルの乱数の生成に関連する多数の値を一覧表示します。rtsig-max
- いつでもシステムがキューに置かれた可能性のある POSIX リアルタイムシグナルの最大数を設定します。デフォルト値は1024
です。rtsig-nr
- カーネルによってキューに入れられた POSIX リアルタイムシグナルの現在の数を一覧表示します。sem
- カーネル内でセ マフォ を設定します。セマフォとは、特定のプロセスの使用状況を制御するために使用される System V IPC オブジェクトです。shmall
: システム全体で使用できる共有メモリーページの合計量を設定します。デフォルトでは、この値は2097152
です。shmmax
- カーネルで許可される最大共有メモリーセグメントサイズを設定します。デフォルトでは、この値は33554432
です。ただし、カーネルは、これよりもはるかに大きな値をサポートします。SHMMN
I: システム全体で共有メモリーセグメントの最大数を設定します。デフォルトでは、この値は4096
です。ubuntu
: この値がゼロ(0
)以外の値に設定されている場合は、システム要求キーを有効にします。System Request Key を使用すると、単純なキーの組み合わせでカーネルに即時入力できます。たとえば、System Request Key を使用すると、システムを直ちにシャットダウンまたは再起動したり、マウントされたすべてのファイルシステムを同期したり、コンソールに重要な情報をダンプしたりできます。System Request Key を開始するには、Alt+ system request code> と入力します 。< ;system request code> を、以下のシステム要求コードのいずれかに置き換えます。- r - キーボードの raw モードを無効にし、これを XLATE に設定します(すべてのキーで Alt、Ctrl、または Shift など、Alt、Ctrl、Shift など)は認識しません。
- k - 仮想コンソールでアクティブなすべてのプロセスを強制終了します。SAK( Secure Access Key )とも呼ばれ、ユーザー名とパスワードを取得するように設計された 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 機能はセキュリティーリスクとみなされます。このため、デフォルトでは無効になっています。システム要求キーの詳細は、/usr/share/doc/kernel-doc- <version> /Documentation/sysrq.txt
を参照してください。ubuntu-key
: System Request Key のキーコードを定義します(84
がデフォルトです)。ubuntu-sticky
: システム要求キーが予約されたキーの組み合わせかどうかを定義します。許可される値は以下のとおりです。0
: Alt+とシステム 要求コードを同時に押す必要があります。これはデフォルト値です。1
- Alt+0 -9] は同時に押す必要がありますが、/proc/sys/kernel/sysrq-timer
elapses で指定する秒数の前に、システム要求コードはいつでも押します。
ubuntu-timer
- システムリクエストコードをスキップするまでに許可される秒数を指定します。デフォルト値は 10 です。tainted
: GPL 以外のモジュールが読み込まれているかどうかを示します。0
- GPL 以外のモジュールがロードされません。1
- GPL ライセンスのない少なくとも 1 つのモジュール(ライセンスのないモジュールを含む)が読み込まれます。2
- 少なくとも 1 つのモジュールが insmod -f コマンドで強制的に読み込まれました。
threads-max
: デフォルト値の2048
で、カーネルが使用するスレッドの最大数を設定します。version
- カーネルが最後にコンパイルされた日時を表示します。#3
など、このファイルの最初のフィールドは、カーネルがソースベースからビルドされた回数に関連しています。
5.3.9.4. /proc/sys/net/
イーサネット/、ipv 4/、ipx/
、ipv
6/
などの異なるディレクトリーがここで利用可能になります。これらのディレクトリー内のファイルを変更することで、システム管理者は実行中のシステムでネットワーク設定を調整できます。
/proc/sys/net/
ディレクトリーのみについて説明します。
/proc/sys/net/core/
ディレクトリーには、カーネルとネットワーク層間の相互作用を制御するさまざまな設定が含まれています。これらのファイルの最も重要なものは以下のとおりです。
message_burst
: 新しい警告メッセージを書き込むために必要な 10 秒の時間を設定します。この設定は、サービス 拒否(DoS )攻撃を軽減するために使用されます。デフォルト設定は50
です。message_cost
- すべての警告メッセージにコストを設定します。このファイルの値が高い(デフォルトは5
)、警告メッセージが無視される可能性が高くなります。この設定は、DoS 攻撃を軽減するために使用されます。DoS 攻撃の概念は、ターゲットシステムにエラーを生成し、ログファイルでディスクパーティションを埋めるか、またはエラーログを処理するためにシステムのリソースをすべて要求する要求で調整することです。message_burst
およびmessage_cost
の設定は、システムの許容リスクと包括的なロギングの必要性に基づいて変更されるように設計されています。netdev_max_backlog
- 特定のインターフェイスがパケットを処理できるよりも早く受信した場合にキューに入れることができるパケットの最大数を設定します。このファイルのデフォルト値は300
です。optmem_max
: ソケットごとに許可される最大補助バッファーサイズを設定します。rmem_default
: 受信ソケットバッファーのデフォルトサイズをバイト単位で設定します。rmem_max
: 受信ソケットバッファーの最大サイズをバイト単位で設定します。wmem_default
: 送信ソケットバッファーのデフォルトサイズをバイト単位で設定します。wmem_max
: 送信ソケットバッファーサイズをバイト単位で設定します。
/proc/sys/net/ipv4/
ディレクトリーには、追加のネットワーク設定が含まれます。この設定の多くは、システムに対する攻撃を防止したり、システムをルーターとして機能させるために使用する場合に便利です。
/proc/sys/net/ipv4/
ディレクトリー内の重要なファイルの一部の一覧です。
icmp_destunreach_rate
、icmp_echoreply_rate
、icmp_paramprob_rate
、およびicmp_timeexeed_rate
- 特定の条件下でホストに最大 ICMP 送信パケットレートを設定します。設定0
は遅延を取り除くため、適切ではありません。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-<version>/Documentation/networking/ ip-sysctl.txt
/usr/share/doc/kernel-doc-<version>/Documentation/networking/ ip-sysctl.txt
/proc/sys/net/ipv4/
ディレクトリーで利用可能なファイルおよびオプションの完全な一覧が含まれます。
/proc/sys/net/ipv4/
ディレクトリー内に他の多数のディレクトリーが存在し、各ディレクトリーはネットワークスタックのさまざまな側面に対応します。/proc/sys/net/ipv4/conf/
ディレクトリーを使用すると、未設定のデバイス(/proc/sys/net/ipv4/conf/default / サブディレクトリー内)のデフォルト設定や、すべての特別な設定(/proc/sys/net/ipv4/conf
/ all/
サブディレクトリー)を上書きする設定など、各システムインターフェイスをさまざまな方法で設定できます。
/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-<version>/Documentation/filesystems/proc.txt
/usr/share/doc/kernel-doc-<version>/Documentation/filesystems/proc.txt
5.3.9.5. /proc/sys/vm/
/proc/sys/vm/
ディレクトリーにあります。
block_dump
: ブロック I/O デバッグが有効な場合を設定します。ファイルに実行される読み取り/書き込みおよびブロックのダーティー操作はすべて、それに応じてログに記録されます。これは、ディスクスピンアップおよびラップトップのバッテリー消費のためにスピンダウンする場合に役立ちます。block_dump
が有効な場合には、dmesg からすべての出力を取得できます。デフォルト値は0
です。ヒントblock_dump
がカーネルのデバッグと同時に有効になっている場合は、block_dump
によって生じる誤ったディスクアクティビティーが生成されるため、klogd デーモンを停止するのが prudent になります。dirty_background_ratio
: pdflush デーモンを介して、合計メモリーのこのパーセンテージでダーティーデータのバックグラウンドライトバックを開始します。デフォルト値は 10 です。dirty_expire_centisecs
: ダーティーインメモリーデータが書き込みの対象となるのに十分な古いかどうかを定義します。この間隔よりも長いダーティーインメモリーデータは、次に pdflush デーモンがウェイクアップしたときに書き込まれます。デフォルト値は 3000 で、1 秒の 100 番目の値で表されます。dirty_ratio
: pdflush を使用して、ダーティーデータのジェネレーターの合計メモリーの割合で、ダーティーデータのライトバックを開始します。デフォルト値は 40 です。dirty_writeback_centisecs
: pdflush デーモンのウェイクアップの間隔を定義します。これは、ダーティーインメモリーデータをディスクに定期的に書き込みます。デフォルト値は 500 で、1 秒の 100 番目の値で表されます。laptop_mode
: ディスクを可能な限り停止したままにすることで、ハードディスクをスピンアップする回数を最小限に抑えるため、ノートパソコンのバッテリー電源を節約します。これにより、将来のすべての I/O プロセスを組み合わせてスピンアップの頻度が削減され、効率が向上します。デフォルト値は0
ですが、ラップトップでバッテリーが使用される場合には自動的に有効になります。この値は、ユーザーにバッテリー電源が有効になると、acpid デーモンによって自動的に制御されます。ラップトップが ACPI (Advanced Configuration and Power Interface)仕様をサポートする場合は、ユーザーの変更や対話は必要ありません。詳細は、以下のインストール済みドキュメントを参照してください。/usr/share/doc/kernel-doc-<version>/Documentation/laptop-mode.txt
lower_zone_protection
: カーネルがメモリー割り当ての少ないゾーンを定める方法を決定します。これは、highmem
メモリー領域が有効なマシンで使用される場合に有効です。デフォルト値は0
で、保護はまったくありません。他のすべての整数値はメガバイト単位であるため、低メモリーは
ユーザーによって割り当てられないように保護されます。詳細は、以下のインストール済みドキュメントを参照してください。/usr/share/doc/kernel-doc-<version>/Documentation/filesystems/proc.txt
max_map_count
: プロセスが持つことができるメモリーマップ領域の最大数を設定します。ほとんどの場合、65536
のデフォルト値が適切です。min_free_kbytes
- Linux 仮想マシン(仮想メモリーマネージャー)が最小キロバイト数を解放するように強制します。仮想マシンは、この数を使用して、システム内の低mem
ゾーンごとにpages_min
の値を計算します。デフォルト値は、マシンの合計メモリーに関するものです。nr_hugepages
: カーネルで現在設定されているhugetlb
ページの数を示します。詳細は、以下のインストール済みドキュメントを参照してください。/usr/share/doc/kernel-doc-<version>/Documentation/vm/hugetlbpage.txt
nr_pdflush_threads
: 現在実行している pdflush デーモンの数を示します。このファイルは読み取り専用であるため、ユーザーが変更しないでください。I/O 負荷が大きい場合、カーネルによりデフォルト値の 2 が増加します。overcommit_memory
: 大規模なメモリー要求が許可または拒否される条件を設定します。以下の 3 つのモードを使用できます。- 0: カーネルは、利用可能なメモリー量と無効な要求の失敗要求の量を見積もることで、コミット処理でヒューリスティックメモリーを実行します。ただし、メモリーは正確なアルゴリズムではなくヒューリスティックを使用して割り当てられるため、この設定は、システムで利用可能なメモリーをオーバーロードできることがあります。これはデフォルト設定です。
- 1 - カーネルは、コミット処理でメモリーを実行しません。この設定では、メモリーのオーバーロードの可能性が高まりますが、メモリー集約型タスク(一部のサイエンティックソフトウェアによって実行されるタスクなど)のパフォーマンスになります。
- 2 - すべての swap を追加するメモリーに対する要求に失敗し、
/proc/sys/vm/overcommit_ratio
で指定した物理 RAM のパーセント。この設定は、メモリーのオーバーコミットのリスクが低いユーザーにとって最適です。注記この設定は、物理メモリーよりも大きいスワップ領域があるシステムにのみ推奨されます。
overcommit_ratio
:/proc/sys/vm/overcommit_memory
が 2 に設定されている場合に考慮される物理 RAM の割合を指定します。デフォルト値は 50 です。page-cluster
: 1 回の試行で読み取られるページ数を設定します。実際には 16 ページに関連するデフォルト値の3
は、ほとんどのシステムに適しています。swappiness
: マシンをスワップする容量を決定します。値が高いほど、スワップがより多くなります。パーセンテージとしてデフォルト値が60
に設定されています。
/usr/share/doc/kernel-doc- <version> /Documentation/
を追加情報が含まれています。
5.3.10. /proc/sysvipc/
msg
)、セマフォ(sem
)、共有メモリー(shm
)に対する System V IPC 呼び出しに関連します。
5.3.11. /proc/tty/
drivers
ファイルは、以下の例のように、使用中の現在の 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
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 行の使用状況の統計とステータスを一覧表示します。
ldiscs
ファイルに保存され、より詳細な情報は ldisc/
ディレクトリー内にあります。
5.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
~]# 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
~]# 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
~]# cat /proc/12465/oom_score
78
~]# echo -17 > /proc/12465/oom_adj
~]# cat /proc/12465/oom_score
0
badness ()
と呼ばれる関数は、各プロセスの実際のスコアを決定するために使用されます。これには、確認した各プロセスに 'points' を追加します。プロセススコアは以下の方法で行われます。
- 各プロセスのスコアは、メモリーサイズになります。
- (カーネルスレッドを含まない)プロセスの子のメモリーサイズもスコアに追加されます。
- プロセススコアは 'niced' プロセスのスコアを増やし、長時間実行されるプロセスの場合に減少します。
CAP_SYS_ADMIN
およびCAP_SYS_RAWIO
機能を持つプロセスのスコアは減少します。- 最後のスコアは、
oom_adj
ファイルに保存されている値でビットシフトされます。
oom_score
値が最も高いプロセスは、おそらく特権のない、最近起動したプロセスであり、その子とともに大量のメモリーを使用し、'niced' があり、生の I/O を処理しません。
5.4. sysctl コマンドの使用
/proc/sys/
ディレクトリーでカーネル設定を表示、設定、および自動化するために使用されます。
/proc/sys/
ディレクトリーで設定可能なすべての設定の概要については、root で /sbin/sysctl -a コマンドを入力します。これにより、以下のような小さな部分で大きな包括的なリストが作成されます。
net.ipv4.route.min_delay = 2 kernel.sysrq = 0 kernel.sem = 250 32000 32 128
net.ipv4.route.min_delay = 2 kernel.sysrq = 0 kernel.sem = 250 32000 32 128
/proc/sys/net/ipv4/route/min_delay
ファイルは net.ipv4.route.min_delay
として一覧表示され、ディレクトリーのスラッシュはドットに置き換えられ、proc.sys
部分が想定されます。
/proc/sys/
ディレクトリー内の書き込み可能なファイルに値を割り当てることができます。たとえば、コマンドを使用する代わりに、以下を実行します。
echo 1 > /proc/sys/kernel/sysrq
echo 1 > /proc/sys/kernel/sysrq
~]# sysctl -w kernel.sysrq="1" kernel.sysrq = 1
~]# sysctl -w kernel.sysrq="1"
kernel.sysrq = 1
/proc/sys/
でこのような単一の値をすばやく設定するとテスト時に役立ちますが、この方法は実稼働システムではマシンを再起動すると /proc/sys/
内の特別な設定が失われるためです。カスタム設定を保持するには、/etc/sysctl.conf
ファイルに追加します。
/etc/rc.d/rc.sysinit
スクリプトを実行します。このスクリプトには、/etc/ sysctl.conf
を使用して sysctl を実行し、カーネルに渡される値を判断するコマンドが含まれています。したがって、/etc/sysctl.conf
に追加した値は、システムが起動するたびに有効になります。
5.5. 関連情報
proc
ファイルシステムに関する追加情報の追加ソースです。
5.5.1. インストールされているドキュメント
proc
ファイルシステムに関する最適なドキュメントの一部がシステムにインストールされている。
/usr/share/doc/kernel-doc- <version> /Documentation/filesystems/proc.txt:
ディレクトリーのすべての側面に関する情報が含まれていますが、これらに限定されています。/proc/
/usr/share/doc/kernel-doc- <version> /Documentation/sysrq.txt
- システム要求キーオプションの概要。/usr/share/doc/kernel-doc- <version> /Documentation/sysctl/
- さまざまな sysctl のヒントを含むディレクトリー。これには、カーネルに関する値の変更(kernel.txt
)、ファイルシステムへのアクセス(fs.txt
)、および仮想メモリーの使用(vm.txt
)が含まれます。/usr/share/doc/kernel-doc- <version> /Documentation/networking/ip-sysctl.txt
: IP ネットワークオプションの詳細な概要
5.5.2. 便利な Web サイト
- http://www.linuxhq.com/: この Web サイトでは、Linux カーネルのさまざまなバージョンに関するソース、パッチ、およびドキュメントの完全なデータベースを維持します。
第6章 RAID (Redundant Array of Independent Disks)
6.1. RAID とは
6.1.1. RAID を使用する理由
- 速度を高める
- 1 台の仮想ディスクを使用してストレージ容量を増加する
- ディスク障害を最小限に抑える
6.1.2. ハードウェア RAID とソフトウェア RAID
- ハードウェア RAID
- ハードウェアベースのアレイは、RAID サブシステムをホストとは別に管理します。ホストに対して、1 RAID アレイごとに 1 つのディスクを表します。ハードウェア RAID デバイスは SCSI コントローラーに接続し、RAID アレイを 1 つの SCSI ドライブとして表示します。外部 RAID システムは、すべての RAID 処理 「インテリジェンス」 を、外部ディスクサブシステムにあるコントローラーに移動します。サブシステム全体が通常の SCSI コントローラーを介してホストに接続され、ホストには単一のディスクとして表示されます。RAID コントローラーカードは、オペレーティングシステムへの SCSI コントローラーのように動作し、実際のドライブ通信をすべて処理します。ユーザーはドライブを RAID コントローラー(通常の SCSI コントローラーと同様)にプラグインし、RAID コントローラー設定に追加し、オペレーティングシステムで違いを認識しません。
- ソフトウェア RAID
- ソフトウェア RAID では、カーネルディスク (ブロックデバイス) コード内に各種の RAID レベルを実装しています。高価ディスクコントローラーカードやホットスワップシャーシなど、最優先的な解決策を提供します。[1] 必須ではありません。ソフトウェア RAID は、SCSI ディスクだけでなく安価な IDE ディスクでも機能します。現代の高速な CPU により、ソフトウェア RAID はハードウェア RAID を上回ります。Linux カーネルには MD ドライバーが含まれており、RAID ソリューションは完全にハードウェアに依存しないようにすることができます。ソフトウェアベースのアレイのパフォーマンスは、サーバーの CPU パフォーマンスと負荷によって異なります。ソフトウェア RAID の詳細は、以下の主要な機能を参照してください。
- スレッド再構築プロセス
- カーネルベースの設定
- 再構築なしで Linux マシン間でのアレイの移植性
- アイドルシステムリソースを使用したバックグラウンドのアレイ再構築
- ホットスワップ可能なドライブのサポート
- 特定の CPU 最適化を活用するための自動 CPU 検出
6.1.3. RAID レベルとリニアサポート
- レベル 0
- RAID レベル 0 は、多くの場合 「ストライピング」 と呼ばれ、パフォーマンス指向のストライプ化データマッピング手法です。これは、アレイに書き込まれるデータがストライプに分割され、アレイのメンバーディスク全体に書き込まれることを意味します。これにより低い固有コストで高い I/O パフォーマンスを実現できますが、冗長性は提供されません。レベル 0 アレイのストレージ容量は、ハードウェア RAID のメンバーディスクの合計容量またはソフトウェア RAID のメンバーパーティションの合計容量と等しくなります。
- レベル 1
- RAID レベル 1、または 「ミラーリング」 は、他の RAID 形式よりも長く使用されています。レベル 1 は、アレイ内の各メンバーディスクに同一データを書き込むことで冗長性を提供し、各ディスクに 「ミラーリングされた」 コピーを残します。ミラーリングは、データの可用性の単純化と高レベルにより、いまでも人気があります。レベル 1 は、読み取り時にデータ転送レートに並列アクセスを使用する可能性のある 2 つ以上のディスクで動作しますが、より一般的に I/O トランザクションレートを提供するために独立して動作します。レベル 1 は、非常に優れたデータの信頼性を提供し、読み取り集約型アプリケーションのパフォーマンスを向上させますが、比較的コストが高くなります。レベル 1 アレイのストレージ容量は、ハードウェア RAID 内のミラーリングされたハードディスクの 1 つまたはソフトウェア RAID 内のミラーリングされたパーティションの 1 つの容量と同じです。注記RAID レベル 1 は、ドライブ領域を無駄にしたアレイ内のすべてのディスクに同じ情報を書き込むため、コストが高くなります。たとえば、ルート(
/
)パーティションが 2 つの 40G ドライブに存在するように RAID レベル 1 を設定している場合は、合計 80G ですが、その 80G の 40G のみにアクセスできます。もう 1 つの 40G は、最初の 40G のミラーのように動作します。 - レベル 4
- RAID レベル 4 でパリティーを使用[2] データを保護するため、1 つのディスクドライブで連結します。大規模なファイル転送ではなく、トランザクション I/O に適しています。専用パリティーディスクは固有のボトルネックを表すため、レベル 4 は、ライトバックキャッシュなどの付随する技術なしではほとんど使用されません。RAID レベル 4 は、一部の RAID パーティションスキームのオプションですが、Red Hat Enterprise Linux RAID インストールで許可されるオプションではありません。ハードウェア RAID レベル 4 のストレージ容量は、メンバーディスクの容量と同じで、1 つのメンバーディスクの容量を引いたものになります。ソフトウェア RAID レベル 4 のストレージ容量は、メンバーパーティションの容量と同じで、パーティションのサイズが等しい場合は、パーティションの 1 つを引いたサイズになります。注記RAID レベル 4 は、RAID レベル 5 と同じ領域を使用しますが、レベル 5 にはより多くの利点があります。このため、レベル 4 はサポートされません。
- レベル 5
- RAID レベル 5 は RAID の最も一般的なタイプです。RAID レベル 5 は、アレイのメンバーディスクドライブの一部またはすべてにパリティーを分散することにより、レベル 4 に固有の書き込みボトルネックを排除します。パリティー計算プロセスは、パフォーマンスのボトルネックのみです。最新の CPU とソフトウェア RAID では、通常は非常に大きな問題ではありません。レベル 4 と同様に、結果は非対称パフォーマンスであり、読み取りは書き込みを大幅に上回ります。レベル 5 は多くの場合、非対称を減らすためにライトバックキャッシュで使用されます。ハードウェア RAID レベル 5 のストレージ容量は、メンバーディスクの容量と同じで、1 つのメンバーディスクの容量を引いたものになります。ソフトウェア RAID レベル 5 のストレージ容量は、メンバーパーティションの容量と同じで、パーティションのサイズが等しい場合は、パーティションの 1 つを引いたサイズになります。
- リニア RAID
- リニア RAID は、より大きな仮想ドライブを作成するドライブの簡易グループ化です。リニア RAID では、あるメンバードライブからチャンクが順次割り当てられます。最初のドライブが完全に満杯になったときにのみ次のドライブに移動します。これにより、メンバードライブ間の I/O 操作が分割される可能性はないため、パフォーマンスの向上は見られません。リニア RAID には冗長性がなく、実際に、信頼性は低下します。いずれかのメンバードライブに障害が発生した場合は、アレイ全体を使用することができません。容量はすべてのメンバーディスクの合計になります。
6.2. ソフトウェア RAID の設定
- 物理ハードドライブでの ソフトウェア RAID パーティション の作成
- ソフトウェア RAID パーティションからの RAID デバイス の作成
- (オプション)RAID デバイスからの LVM の設定
- RAID デバイスから ファイルシステム を作成する。
/dev/hda
および /dev/hdb
)を使用して、単純な RAID 1 および RAID 0 設定の作成について説明し、複数の RAID デバイスを実装して簡単な RAID 設定を作成する方法について詳しく説明します。
6.2.1. RAID パーティションの作成
図6.1 2 つの空白ドライブ(準備完了)

[D]
- Disk Druid で ボタンをクリックして、ソフトウェア RAID 作成画面を入力します。
- 図6.2「RAID パーティションオプション」 に示されるよう 選択して RAID パーティションを作成します。RAID パーティションや RAID デバイスが作成されるまで、他の RAID オプション(マウントポイントの入力など)は利用できないことに注意してください。 をクリックして選択を確定します。
図6.2 RAID パーティションオプション
[D] - ソフトウェア RAID パーティションは、1 つのドライブに制限する必要があります。には、RAID に使用するドライブを選択します。複数のドライブがある場合は、デフォルトですべてのドライブが選択されるため、不要なドライブの選択を解除する必要があります。
図6.3 RAID パーティションの追加
[D] - サイズ (MB) フィールドを編集し、パーティションのサイズ(MB 単位)を入力します。
- Fixed Size を選択して、パーティションサイズを指定します。Fill all space up (MB)を選択し、値(MB 単位)を入力してパーティションサイズの範囲を指定します。ハードディスクの 最大使用可能容量を確保するために、最大許容サイズ を選択します。複数の領域を増やすと、ディスクで利用可能な空き領域が共有されることに注意してください。
- パーティションをプライマリーパーティションにする場合は、Force to be a primary partition を選択します。プライマリーパーティションは、ハードドライブの最初の 4 つのパーティションの 1 つです。選択されていない場合は、パーティションが論理パーティションとして作成されます。他のオペレーティングシステムがすでにシステム上にある場合は、このオプションの選択を解除する必要があります。プライマリーパーティションと論理/拡張パーティションの詳細は、『Red Hat Enterprise Linux インストールガイド』 の付録セクションを参照してください。
/boot
パーティションのみをソフトウェア RAID デバイスとして設定し、root パーティション(/
)、/home
、および swap
を通常のファイルシステムとして残すことができます。図6.4「RAID 1 パーティションの準備が Ready、Pre-Device、およびマウントポイントの作成」 RAID 1 設定( /boot
用)に正常に割り当てられた領域を表示します。これは、RAID デバイスおよびマウントポイントの作成の準備ができています。
図6.4 RAID 1 パーティションの準備が Ready、Pre-Device、およびマウントポイントの作成

[D]
6.2.2. RAID デバイスとマウントポイントの作成
- メインのパーティション設定画面で、RAID Options ダイアログが 図6.5「RAID オプション」 に示すように表示されます。ボタンをクリックします。
図6.5 RAID オプション
[D] - RAID デバイスの作成 オプションを選択し、 をクリックします。図6.6「RAID デバイスの作成およびマウントポイントの割り当て」 に示すように、Make RAID Device ダイアログが表示されます。これにより、RAID デバイスを作成してマウントポイントを割り当てることができます。
図6.6 RAID デバイスの作成およびマウントポイントの割り当て
[D] - マウントポイント プルダウン リストから マウント ポイントを選択します。
- File System Type プルダウンリストからパーティションのファイルシステムタイプを選択します。この時点で、動的 LVM ファイルシステムまたは従来の静的 ext2/ext3 ファイルシステムのいずれかを設定できます。インストールプロセス中に LVM とその設定の詳細は、11章LVM (論理ボリュームマネージャー) を参照してください。LVM が必要ない場合は、次の手順に進みます。
- RAID Device pulldown リストから、md0 などのデバイス名を選択します。
- RAID レベル から、必要 な RAID レベルを選択します。注記
/boot
の RAID パーティションを作成する場合は、RAID レベル 1 を選択し、最初の 2 つのドライブ(IDE first、SCSI 秒)のいずれかを使用する必要があります。/boot
の個別の RAID パーティションを作成しておらず、ルートファイルシステム(つまり/
)に RAID パーティションを作成する場合は、RAID レベル 1 で、最初の 2 つのドライブ(IDE first、SCSI second)のいずれかを使用する必要があります。 - 作成した RAID パーティションが RAID Members 一覧に表示されます。RAID デバイスの作成に使用するパーティションを選択します。
- RAID 1 または RAID 5 を設定する場合は、スペアの数 フィールドに 予備のパーティションの数 を指定します。ソフトウェア RAID パーティションに障害が発生した場合、スペアは自動的に代替として使用されます。指定するスペアごとに、(RAID デバイスのパーティションに加えて)追加のソフトウェア RAID パーティションを作成する必要があります。RAID デバイスのパーティションと、スペアのパーティションを選択します。
- 概要一覧に表示 されます。をクリックして設定を確定します。RAID デバイスがドライブの
- root パーティション(/)、ホームディレクトリー(
/
)、swap
などの追加のパーティション、デバイス、マウントポイントを設定するには、この章全体を繰り返します。
図6.7 RAID 設定の例

[D]
図6.8 LVM 設定を使用した RAID の例

[D]
6.3. ソフトウェア RAID の管理
- 既存のソフトウェア RAID 設定の確認
- 新しい RAID デバイスの作成
- アレイ内の障害のあるデバイスの置き換え
- 既存のアレイに新しいデバイスを追加する。
- 既存の RAID デバイスの非アクティブ化および削除
- 設定を保存します。
6.3.1. RAID 設定の確認
/proc/mdstat
特殊ファイルに保存されます。これらのデバイスを一覧表示するには、シェルプロンプトで以下を入力して、このファイルの内容を表示します。
cat /proc/mdstat
cat /proc/mdstat
root
で以下の形式で コマンドを実行します。
mdadm --query device…
mdadm --query device…
mdadm --detail raid_device…
mdadm --detail raid_device…
mdadm --examine component_device…
mdadm --examine component_device…
例6.1 RAID 設定の確認
/dev/md0
が RAID デバイスであることを確認できます。
~]# mdadm --query /dev/md0 /dev/md0: 125.38MiB raid1 2 devices, 0 spares. Use mdadm --detail for more detail. /dev/md0: No md super block found, not an md component.
~]# mdadm --query /dev/md0
/dev/md0: 125.38MiB raid1 2 devices, 0 spares. Use mdadm --detail for more detail.
/dev/md0: No md super block found, not an md component.
~]# mdadm --detail /dev/md0 /dev/md0: Version : 0.90 Creation Time : Tue Jun 28 16:05:49 2011 Raid Level : raid1 Array Size : 128384 (125.40 MiB 131.47 MB) Used Dev Size : 128384 (125.40 MiB 131.47 MB) Raid Devices : 2 Total Devices : 2 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Thu Jun 30 17:06:34 2011 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 UUID : 49c5ac74:c2b79501:5c28cb9c:16a6dd9f Events : 0.6 Number Major Minor RaidDevice State 0 3 1 0 active sync /dev/hda1 1 3 65 1 active sync /dev/hdb1
~]# mdadm --detail /dev/md0
/dev/md0:
Version : 0.90
Creation Time : Tue Jun 28 16:05:49 2011
Raid Level : raid1
Array Size : 128384 (125.40 MiB 131.47 MB)
Used Dev Size : 128384 (125.40 MiB 131.47 MB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Thu Jun 30 17:06:34 2011
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
UUID : 49c5ac74:c2b79501:5c28cb9c:16a6dd9f
Events : 0.6
Number Major Minor RaidDevice State
0 3 1 0 active sync /dev/hda1
1 3 65 1 active sync /dev/hdb1
~]$ cat /proc/mdstat Personalities : [raid0] [raid1] md0 : active raid1 hdb1[1] hda1[0] 128384 blocks [2/2] [UU] md1 : active raid0 hdb2[1] hda2[0] 1573888 blocks 256k chunks md2 : active raid0 hdb3[1] hda3[0] 19132928 blocks 256k chunks unused devices: <none>
~]$ cat /proc/mdstat
Personalities : [raid0] [raid1]
md0 : active raid1 hdb1[1] hda1[0]
128384 blocks [2/2] [UU]
md1 : active raid0 hdb2[1] hda2[0]
1573888 blocks 256k chunks
md2 : active raid0 hdb3[1] hda3[0]
19132928 blocks 256k chunks
unused devices: <none>
6.3.2. 新しい RAID デバイスの作成
root
で以下の形式の コマンドを使用します。
mdadm --create raid_device --level=level --raid-devices=number component_device…
mdadm --create raid_device --level=level --raid-devices=number component_device…
mdadm
(8)の 『CREATE MODE』 セクションを参照してください。
例6.2 新しい RAID デバイスの作成
~]# ls /dev/sd* /dev/sda /dev/sda1 /dev/sdb /dev/sdb1
~]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1
/dev/sda1
および /dev/sdb1
から新しい RAID レベル 1 アレイとして /dev/md3
を作成するには、次のコマンドを実行します。
~]# mdadm --create /dev/md3 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1 mdadm: array /dev/md3 started.
~]# mdadm --create /dev/md3 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
mdadm: array /dev/md3 started.
6.3.3. 障害のあるデバイスの置き換え
root
で以下のコマンドを実行して、最初に faulty とマークされていることを確認します。
mdadm raid_device --fail component_device
mdadm raid_device --fail component_device
mdadm raid_device --remove component_device
mdadm raid_device --remove component_device
mdadm raid_device --add component_device
mdadm raid_device --add component_device
例6.3 障害のあるデバイスの置き換え
/dev/md3
があり、以下のレイアウト(つまり、例6.2「新しい RAID デバイスの作成」で作成した RAID デバイス)があるとします。
~]# mdadm --detail /dev/md3 | tail -n 3 Number Major Minor RaidDevice State 0 8 1 0 active sync /dev/sda1 1 8 17 1 active sync /dev/sdb1
~]# mdadm --detail /dev/md3 | tail -n 3
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1
/dev/sdb1
デバイスを faulty とマークします。
~]# mdadm /dev/md3 --fail /dev/sdb1 mdadm: set /dev/sdb1 faulty in /dev/md3
~]# mdadm /dev/md3 --fail /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md3
~]# mdadm /dev/md3 --remove /dev/sdb1 mdadm: hot removed /dev/sdb1
~]# mdadm /dev/md3 --remove /dev/sdb1
mdadm: hot removed /dev/sdb1
~]# mdadm /dev/md3 --add /dev/sdb1 mdadm: added /dev/sdb1
~]# mdadm /dev/md3 --add /dev/sdb1
mdadm: added /dev/sdb1
6.3.4. RAID デバイスの拡張
root
で以下の形式のコマンドを使用します。
mdadm raid_device --add component_device
mdadm raid_device --add component_device
mdadm --grow raid_device --raid-devices=number
mdadm --grow raid_device --raid-devices=number
例6.4 RAID デバイスの拡張
/dev/md3
があり、以下のレイアウト(つまり、例6.2「新しい RAID デバイスの作成」で作成した RAID デバイス)があるとします。
~]# mdadm --detail /dev/md3 | tail -n 3 Number Major Minor RaidDevice State 0 8 1 0 active sync /dev/sda1 1 8 17 1 active sync /dev/sdb1
~]# mdadm --detail /dev/md3 | tail -n 3
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1
/dev/sdc
が追加され、パーティションが 1 つだけあることを前提としています。/dev/md3
アレイに追加するには、シェルプロンプトで以下を入力します。
~]# mdadm /dev/md3 --add /dev/sdc1 mdadm: added /dev/sdc1
~]# mdadm /dev/md3 --add /dev/sdc1
mdadm: added /dev/sdc1
/dev/sdc1
が予備デバイスとして追加されます。アレイのサイズを実際に使用するように変更するには、以下を入力します。
~]# mdadm --grow /dev/md3 --raid-devices=3
~]# mdadm --grow /dev/md3 --raid-devices=3
6.3.5. RAID デバイスの削除
root
で以下のコマンドを実行して無効にします。
mdadm --stop raid_device
mdadm --stop raid_device
mdadm --remove raid_device
mdadm --remove raid_device
mdadm --zero-superblock component_device…
mdadm --zero-superblock component_device…
例6.5 RAID デバイスの削除
/dev/md3
があり、以下のレイアウト(つまり、例6.4「RAID デバイスの拡張」で作成した RAID デバイス)があるとします。
~]# mdadm --detail /dev/md3 | tail -n 4 Number Major Minor RaidDevice State 0 8 1 0 active sync /dev/sda1 1 8 17 1 active sync /dev/sdb1 2 8 33 2 active sync /dev/sdc1
~]# mdadm --detail /dev/md3 | tail -n 4
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1
2 8 33 2 active sync /dev/sdc1
~]# mdadm --stop /dev/md3 mdadm: stopped /dev/md3
~]# mdadm --stop /dev/md3
mdadm: stopped /dev/md3
/dev/md3
デバイスを削除できます。
~]# mdadm --remove /dev/md3
~]# mdadm --remove /dev/md3
~]# mdadm --zero-superblock /dev/sda1 /dev/sdb1 /dev/sdc1
~]# mdadm --zero-superblock /dev/sda1 /dev/sdb1 /dev/sdc1
6.3.6. 設定の保持
mdmonitor
サービスは /etc/mdadm.conf
設定ファイルの内容を読み取り、起動する RAID デバイスを確認します。ソフトウェア RAID がグラフィカルインストールプロセス中に設定されている場合、このファイルには、デフォルトで 表6.1「一般的な mdadm.conf ディレクティブ」 に記載されているディレクティブが含まれています。
オプション | 説明 |
---|---|
ARRAY |
特定のアレイを特定できます。
|
デバイス |
RAID コンポーネントをスキャンするデバイスの一覧を指定できます(例: 「/dev/hda1」)。キーワード partitions を使用して、
/proc/ にリストされているすべてのパーティションを使用するか、またはコンテナーを使用してアレイコンテナーを指定することもできます。
|
MAILADDR | アラートの場合に、使用するメールアドレスを指定できます。 |
ARRAY
行を一覧表示するには、root
で以下のコマンドを実行します。
mdadm --detail --scan
mdadm --detail --scan
/etc/mdadm.conf
ファイルに追加する行を確認します。特定のデバイスの ARRAY
行を表示することもできます。
mdadm --detail --brief raid_device
mdadm --detail --brief raid_device
mdadm --detail --brief raid_device >> /etc/mdadm.conf
mdadm --detail --brief raid_device >> /etc/mdadm.conf
例6.6 設定の保持
/etc/mdadm.conf
には、システムのインストール時に作成されたソフトウェア RAID 設定が含まれます。
mdadm.conf written out by anaconda
# mdadm.conf written out by anaconda
DEVICE partitions
MAILADDR root
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=49c5ac74:c2b79501:5c28cb9c:16a6dd9f
ARRAY /dev/md1 level=raid0 num-devices=2 UUID=76914c11:5bfa2c00:dc6097d1:a1f4506d
ARRAY /dev/md2 level=raid0 num-devices=2 UUID=2b5d38d0:aea898bf:92be20e2:f9d893c5
/dev/md3
デバイスを作成した場合は、以下のコマンドを実行してこれを永続化できます。
~]# mdadm --detail --brief /dev/md3 >> /etc/mdadm.conf
~]# mdadm --detail --brief /dev/md3 >> /etc/mdadm.conf
6.4. 関連情報
6.4.1. インストールされているドキュメント
mdadm
man ページ: mdadm ユーティリティーの man ページです。mdadm.conf
の man ページ:利用可能な/etc/mdadm.conf
設定オプションの包括的なリストを提供する man ページです。
第7章 swap 領域
7.1. スワップ領域とは
システム内の RAM の容量 | 推奨されるスワップ領域 |
---|---|
4GB 以下の RAM | 最小 2GB のスワップ領域 |
4GB から 16GB の RAM | 最小 4GB のスワップ領域 |
16GB から 64GB の RAM | 最小 8GB のスワップ領域 |
64GB から 256GB の RAM | 最小 16GB のスワップ領域 |
256GB から 512GB の RAM | 最小 32GB のスワップ領域 |
7.2. スワップ領域の追加
7.2.1. LVM2 論理ボリュームでのスワップ領域の拡張
/dev/VolGroup00/LogVol01
が拡張するボリュームであるとします)。
- 関連付けられている論理ボリュームのスワップ機能を無効にします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow swapoff -v /dev/VolGroup00/LogVol01
swapoff -v /dev/VolGroup00/LogVol01
- LVM2 論理ボリュームのサイズを 256 MB 増やします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow lvm lvresize /dev/VolGroup00/LogVol01 -L +256M
lvm lvresize /dev/VolGroup00/LogVol01 -L +256M
- 新しいスワップ領域をフォーマットします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mkswap /dev/VolGroup00/LogVol01
mkswap /dev/VolGroup00/LogVol01
- 拡張論理ボリュームを有効にします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow swapon -va
swapon -va
- 論理ボリュームが適切に拡張されていることを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cat /proc/swaps free
cat /proc/swaps free
7.2.2. スワップの LVM2 論理ボリュームの作成
/dev/VolGroup00/LogVol02
が追加するスワップボリュームであると想定)、以下を実行します。
- サイズが 256 MB の LVM2 論理ボリュームを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow lvm lvcreate VolGroup00 -n LogVol02 -L 256M
lvm lvcreate VolGroup00 -n LogVol02 -L 256M
- 新しいスワップ領域をフォーマットします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mkswap /dev/VolGroup00/LogVol02
mkswap /dev/VolGroup00/LogVol02
- 次のエントリーを
/etc/fstab
ファイルに追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow /dev/VolGroup00/LogVol02 swap swap defaults 0 0
/dev/VolGroup00/LogVol02 swap swap defaults 0 0
- 拡張論理ボリュームを有効にします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow swapon -va
swapon -va
- 論理ボリュームが適切に拡張されていることを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cat /proc/swaps free
cat /proc/swaps free
7.2.3. スワップファイルの作成
- 新しいスワップファイルのサイズをメガバイト単位で指定してから、そのサイズに 1024 をかけてブロック数を指定します。たとえばスワップファイルのサイズが 64 MB の場合は、ブロック数が 65536 になります。
- root でシェルプロンプトで、count を目的のブロックサイズと同じにして以下のコマンドを入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow dd if=/dev/zero of=/swapfile bs=1024 count=65536
dd if=/dev/zero of=/swapfile bs=1024 count=65536
- 新規に作成されたファイルの送信を変更します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow chmod 0600 /swapfile
chmod 0600 /swapfile
- 次のコマンドでスワップファイルをセットアップします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mkswap /swapfile
mkswap /swapfile
- スワップファイルを起動時に自動的にではなく、すぐに有効にする場合は、以下を実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow swapon /swapfile
swapon /swapfile
- 起動時に有効にするには、
/etc/fstab
を編集して以下のエントリーを含めます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow /swapfile swap swap defaults 0 0
/swapfile swap swap defaults 0 0
次にシステムが起動すると、新しいスワップファイルが有効になります。 - 新しいスワップファイルを追加して有効にしたら、cat /proc/swaps コマンドまたは free コマンドの出力を表示して、そのファイルが有効であることを確認します。
7.3. スワップ領域の削除
7.3.1. LVM2 論理ボリュームでのスワップ領域の縮小
/dev/VolGroup00/LogVol01
が縮小するボリュームであるとします)。
- 関連付けられている論理ボリュームのスワップ機能を無効にします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow swapoff -v /dev/VolGroup00/LogVol01
swapoff -v /dev/VolGroup00/LogVol01
- LVM2 論理ボリュームのサイズを変更して 512 MB 削減します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow lvm lvreduce /dev/VolGroup00/LogVol01 -L -512M
lvm lvreduce /dev/VolGroup00/LogVol01 -L -512M
- 新しいスワップ領域をフォーマットします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mkswap /dev/VolGroup00/LogVol01
mkswap /dev/VolGroup00/LogVol01
- 拡張論理ボリュームを有効にします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow swapon -va
swapon -va
- 論理ボリュームが正しく縮小されたことをテストします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cat /proc/swaps free
cat /proc/swaps free
7.3.2. スワップの LVM2 論理ボリュームの削除
/dev/VolGroup00/LogVol02
が削除するボリュームであるとします)。
- 関連付けられている論理ボリュームのスワップ機能を無効にします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow swapoff -v /dev/VolGroup00/LogVol02
swapoff -v /dev/VolGroup00/LogVol02
- サイズ 512MB の LVM2 論理ボリュームを削除します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow lvm lvremove /dev/VolGroup00/LogVol02
lvm lvremove /dev/VolGroup00/LogVol02
/etc/fstab
ファイルから次のエントリーを削除します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow /dev/VolGroup00/LogVol02 swap swap defaults 0 0
/dev/VolGroup00/LogVol02 swap swap defaults 0 0
- 論理ボリュームが削除されていることをテストします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cat /proc/swaps free
cat /proc/swaps free
7.3.3. スワップファイルの削除
- root としてシェルプロンプトで、以下のコマンドを実行してスワップファイルを無効にします(
/swapfile
は swap ファイル)。Copy to Clipboard Copied! Toggle word wrap Toggle overflow swapoff -v /swapfile
swapoff -v /swapfile
/etc/fstab
ファイルから該当するエントリーを削除します。- 実際のファイルを削除します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rm /swapfile
rm /swapfile
7.4. Swap 領域の移動
第8章 ディスクストレージの管理
8.1. partedを使用した標準パーティション
- 既存パーティションテーブルの表示
- 既存パーティションのサイズ変更
- 空き領域または他のハードドライブからの、パーティションの追加
parted
パッケージが含まれています。parted を開始するには、root としてログインし、シェルプロンプトで parted /dev/sda コマンドを入力します (/dev/sda は、設定するドライブのデバイス名です)。
コマンド | 説明 |
---|---|
check minor-num | ファイルシステムの簡単なチェックを実行します。 |
cp from to | ファイルシステムをあるパーティションから別のパーティションにコピーします。from と to はパーティションのマイナー番号です。 |
help | 利用可能なコマンドの一覧を表示します。 |
mklabel label | パーティションテーブル用のディスクラベルを作成します。 |
mkfs minor-num file-system-type | タイプ file-system-type のファイルシステムを作成します。 |
mkpart part-type fs-type start-mb end-mb | 新しいファイルシステムを作成せずに、パーティションを作成します。 |
mkpartfs part-type fs-type start-mb end-mb | パーティションを作成し、指定されたファイルシステムを作成します。 |
move minor-num start-mb end-mb | パーティションを移動します。 |
name minor-num name | Mac と PC98 のディスクラベル用のみのパーティションに名前を付けます。 |
パーティションテーブルを表示します。 | |
quit | parted を終了します。 |
rescue start-mb end-mb | start-mb から end-mb へ、消失したパーティションを復旧します。 |
resize minor-num start-mb end-mb | パーティションのサイズを start-mb から end-mb に変更します。 |
rm minor-num | パーティションを削除します。 |
select device | 設定する別のデバイスを選択します。 |
set minor-num flag state | パーティションにフラグを設定します。state はオンまたはオフのいずれかになります。 |
toggle [NUMBER [FLAG] | パーティション NUMBER 上の FLAG の状態を切り替えます。 |
unit UNIT | デフォルトのユニットを UNIT に設定します。 |
8.1.1. パーティションテーブルの表示
Model: ATA ST3160812AS (scsi) Disk /dev/sda: 160GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 32.3kB 107MB 107MB primary ext3 boot 2 107MB 105GB 105GB primary ext3 3 105GB 107GB 2147MB primary linux-swap 4 107GB 160GB 52.9GB extended root 5 107GB 133GB 26.2GB logical ext3 6 133GB 133GB 107MB logical ext3 7 133GB 160GB 26.6GB logical lvm
Model: ATA ST3160812AS (scsi)
Disk /dev/sda: 160GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 32.3kB 107MB 107MB primary ext3 boot
2 107MB 105GB 105GB primary ext3
3 105GB 107GB 2147MB primary linux-swap
4 107GB 160GB 52.9GB extended root
5 107GB 133GB 26.2GB logical ext3
6 133GB 133GB 107MB logical ext3
7 133GB 160GB 26.6GB logical lvm
番号
です。たとえば、マイナー番号 1 のパーティションは、/dev/sda1
に対応します。Start
および End
の値はメガバイト単位です。有効な タイプ
は、metadata、free、primary、extended、または logical です。Filesystem
はファイルシステムタイプで、次のいずれかになります。
- ext2
- ext3
- fat16
- fat32
- hfs
- jfs
- linux-swap
- ntfs
- reiserfs
- hp-ufs
- sun-ufs
- xfs
Filesystem
の値が表示されない場合は、ファイルシステムのタイプが不明であることを意味します。
8.1.2. パーティションの作成
parted /dev/sda
parted /dev/sda
print
8.1.2.1. パーティションの作成
mkpart primary ext3 1024 2048
mkpart primary ext3 1024 2048
cat /proc/partitions
cat /proc/partitions
8.1.2.2. パーティションのフォーマット
mkfs -t ext3 /dev/sda6
mkfs -t ext3 /dev/sda6
8.1.2.3. パーティションのラベル付け
/dev/sda6
で、/work
のラベルを付けたいとします。
e2label /dev/sda6 /work
e2label /dev/sda6 /work
8.1.2.4. マウントポイントの作成
mkdir /work
mkdir /work
8.1.2.5. /etc/fstab
への追加
/etc/fstab
ファイルを編集して新しいパーティションを含めます。新しい行は、以下のようになります。
LABEL=/work /work ext3 defaults 1 2
LABEL=/work /work ext3 defaults 1 2
LABEL=
の後にパーティションを付けたラベルが含まれている必要があります。2 番目の列には、新しいパーティションのマウントポイントが含まれている必要があり、その次の列はファイルシステムタイプ (たとえば、ext3 または swap) である必要があります。フォーマットの詳細が必要な場合は、コマンド man fstab を使用して man ページを参照してください。
defaults
という単語の場合、パーティションは起動時にマウントされます。再起動せずにパーティションをマウントするには、root で次のコマンドを入力します。
mount /work
mount /work
8.1.3. パーティションの削除
parted /dev/sda
parted /dev/sda
print
rm 3
rm 3
cat /proc/partitions
cat /proc/partitions
/etc/fstab
ファイルからそれを削除することです。削除したパーティションを宣言している行を見つけ、ファイルから削除します。
8.1.4. パーティションのサイズ変更
parted /dev/sda
parted /dev/sda
print
resize 3 1024 2048
resize 3 1024 2048
8.2. LVM パーティションの管理
コマンド | 説明 |
---|---|
dumpconfig | アクティブな設定をダンプします。 |
形式 | 利用可能なメタデータ形式の一覧表示 |
help | ヘルプコマンドの表示 |
lvchange | 論理ボリュームの属性を変更します。 |
lvcreate | 論理ボリュームを作成します。 |
lvdisplay | 論理ボリュームに関する情報を表示します。 |
lvextend | 論理ボリュームに領域を追加 |
lvmchange | デバイスマッパーの使用により、このコマンドは非推奨になりました。 |
lvmdiskscan | 物理ボリュームとして使用するデバイスを一覧表示します。 |
lvmsadc | アクティビティーデータの収集 |
lvmsar | アクティビティーレポートの作成 |
lvreduce | 論理ボリュームのサイズを縮小する |
lvremove | システムから論理ボリュームを削除する |
lvrename | 論理ボリュームの名前変更 |
lvresize | 論理ボリュームのサイズ変更 |
lvs | 論理ボリュームに関する情報を表示します。 |
lvscan | すべてのボリュームグループにある論理ボリュームの一覧を表示します。 |
pvchange | 物理ボリュームの属性の変更 |
pvcreate | LVM で使用する物理ボリュームの初期化 |
pvdata | 物理ボリュームのディスク上のメタデータを表示します。 |
pvdisplay | 物理ボリュームのさまざまな属性を表示します。 |
pvmove | エクステントをある物理ボリュームから別の物理ボリュームに移動する |
pvremove | 物理ボリュームから LVM ラベルを削除します。 |
pvresize | ボリュームグループが使用する物理ボリュームのサイズ |
pvs | 物理ボリュームに関する情報を表示します。 |
pvscan | 物理ボリュームの一覧を表示します。 |
segtypes | 利用可能なセグメントタイプを一覧表示します。 |
vgcfgbackup | バックアップボリュームグループの設定 |
vgcfgrestore | ボリュームグループ設定の復元 |
vgchange | ボリュームグループ属性の変更 |
vgck | ボリュームグループの整合性の確認 |
vgconvert | ボリュームグループのメタデータ形式の変更 |
vgcreate | ボリュームグループの作成 |
vgdisplay | ボリュームグループ情報の表示 |
vgexport | システムからボリュームグループの登録を解除します。 |
vgextend | ボリュームグループへの物理ボリュームの追加 |
vgimport | エクスポートしたボリュームグループをシステムに登録します。 |
vgmerge | ボリュームグループのマージ |
vgmknodes | /dev/ にボリュームグループデバイスの特別なファイルを作成します。 |
vgreduce | ボリュームグループからの物理ボリュームの削除 |
vgremove | ボリュームグループの削除 |
vgrename | ボリュームグループの名前変更 |
vgs | ボリュームグループに関する情報を表示します。 |
vgscan | すべてのボリュームグループの検索 |
vgsplit | 新しいボリュームグループへの物理ボリュームの移動 |
version | ソフトウェアおよびドライバーのバージョン情報を表示します。 |
第9章 ディスククォータの実装
9.1. ディスククォータの設定
/etc/fstab
を修正することで、ファイルシステムごとのクォータを有効にします。- ファイルシステムを再マウントします。
- クォータデータベースファイルを作成して、ディスク使用状況テーブルを生成します。
- クォータポリシーを割り当てます。
9.1.1. クォータの有効化
/etc/fstab
ファイルを編集します。クォータを必要とするファイルシステムに usrquota オプションや grpquota オプションを追加します。
/dev/VolGroup00/LogVol00 / ext3 defaults 1 1 LABEL=/boot /boot ext3 defaults 1 2 none /dev/pts devpts gid=5,mode=620 0 0 none /dev/shm tmpfs defaults 0 0 none /proc proc defaults 0 0 none /sys sysfs defaults 0 0 /dev/VolGroup00/LogVol02 /home ext3 defaults,usrquota,grpquota 1 2 /dev/VolGroup00/LogVol01 swap swap defaults 0 0 . . .
/dev/VolGroup00/LogVol00 / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
/dev/VolGroup00/LogVol02 /home ext3 defaults,usrquota,grpquota 1 2
/dev/VolGroup00/LogVol01 swap swap defaults 0 0 . . .
/home
ファイルシステムがユーザーとグループの両方のクォータを有効にしています。
/etc/fstab
ファイル内でクォータポリシーを設定するために使用できます。
9.1.2. ファイルシステムの再マウント
fstab
エントリーが変更された各ファイルシステムを再マウントします。ファイルシステムがどのプロセスでも使用されていない場合は、以下のいずれかの方法を使用します。
- umount コマンドを発行してから mount コマンドを実行してファイルシステムを再マウントします(さまざまなファイルシステムタイプをマウントおよびアンマウントするための特定の構文については、umount および mount の両方の man ページを参照してください)。
- mount -o remount < file-system > コマンド(< file-system > はファイルシステムの名前)を発行して、ファイルシステムを再マウントします。たとえば、
/home
ファイルシステムを再マウントする場合、発行するコマンドは mount -o remount /home です。
9.1.3. クォータデータベースファイルの作成
aquota.user
および aquota.group
) を作成するには、quotacheck コマンドの -c
オプションを使用します。たとえば、/home
ファイルシステムでユーザーとグループのクォータが有効になっている場合は、/home
ディレクトリーにファイルを作成します。
quotacheck -cug /home
quotacheck -cug /home
-c
オプションは、クォータが有効になっているファイルシステムごとにクォータファイルを作成することを指定し、-u
オプションは、ユーザークォータをチェックすることを指定し、-g
オプションは、グループクォータをチェックすることを指定します。
-u
オプションまたは -g
オプションのいずれも指定しない場合は、ユーザークォータファイルのみが作成されます。-g
のみを指定すると、グループクォータファイルのみが作成されます。
quotacheck -avug
quotacheck -avug
- A: クォータが有効
な
ローカルマウントのファイルシステムをすべてチェックします。 v
: クォータチェックの進行時に詳細なステータス情報を表示します。u
- ユーザーディスククォータ情報の確認g
- グループディスククォータ情報の確認
/home
などの、クォータが有効になっているローカルにマウントされた各ファイルシステムのデータが取り込まれます。
9.1.4. ユーザーごとのクォータ割り当て
edquota username
edquota username
/home
パーティションの /etc/fstab
(以下の例では /dev/VolGroup00/LogVol02
) に対して有効であり、コマンド edquota testuser を実行すると、システムでデフォルトとして設定されたエディターで以下のような出力が表示されます。
Disk quotas for user testuser (uid 501): Filesystem blocks soft hard inodes soft hard /dev/VolGroup00/LogVol02 440436 0 0 37418 0 0
Disk quotas for user testuser (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/VolGroup00/LogVol02 440436 0 0 37418 0 0
EDITOR
環境変数により定義されたテキストエディターは、edquota により使用されます。エディターを変更するには、~/.bash_profile
ファイルの EDITOR
環境変数を、使用するエディターのフルパスに設定します。
inodes
列は、ユーザーが現在使用している inode の数を示します。最後の 2 列は、ファイルシステムのユーザーに対するソフトおよびハードの inode 制限を設定するのに使用されます。
Disk quotas for user testuser (uid 501): Filesystem blocks soft hard inodes soft hard /dev/VolGroup00/LogVol02 440436 500000 550000 37418 0 0
Disk quotas for user testuser (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/VolGroup00/LogVol02 440436 500000 550000 37418 0 0
quota testuser
quota testuser
9.1.5. グループごとのクォータ割り当て
devel
グループのグループクォータを設定するには(グループはグループクォータを設定する前に存在している必要があります)、次のコマンドを使用します。
edquota -g devel
edquota -g devel
Disk quotas for group devel (gid 505): Filesystem blocks soft hard inodes soft hard /dev/VolGroup00/LogVol02 440400 0 0 37418 0 0
Disk quotas for group devel (gid 505):
Filesystem blocks soft hard inodes soft hard
/dev/VolGroup00/LogVol02 440400 0 0 37418 0 0
quota -g devel
quota -g devel
9.1.6. ソフト制限の猶予期間の設定
edquota -t
edquota -t
9.2. ディスククォータの管理
9.2.1. 有効化と無効化
quotaoff -vaug
quotaoff -vaug
-u
オプションまたは -g
オプションのいずれも指定しない場合は、ユーザークォータのみが無効になります。-g
のみを指定すると、グループクォータのみが無効になります。-v スイッチにより、コマンドの実行時に詳細なステータス情報が表示されます。
quotaon -vaug
quotaon -vaug
/home
などの特定のファイルシステムにクォータを有効にするには、以下のコマンドを使用します。
quotaon -vug /home
quotaon -vug /home
-u
オプションまたは -g
オプションのいずれも指定しない場合は、ユーザークォータのみが有効になります。-g
のみが指定されている場合は、グループのクォータのみが有効になります。
9.2.2. ディスククォータに関するレポート
*** Report for user quotas on device /dev/mapper/VolGroup00-LogVol02 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------------- root -- 36 0 0 4 0 0 kristin -- 540 0 0 125 0 0 testuser -- 440400 500000 550000 37418 0 0
*** Report for user quotas on device /dev/mapper/VolGroup00-LogVol02
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 36 0 0 4 0 0
kristin -- 540 0 0 125 0 0
testuser -- 440400 500000 550000 37418 0 0
-a
) のディスク使用状況レポートを表示するには、次のコマンドを使用します。
repquota -a
repquota -a
--
を利用すると、ブロック制限または inode 制限を超えたかどうかをすばやく判断できます。いずれかのソフト制限を超えると、対応する -
の代わりに +
が表示されます。最初の -
はブロックの制限を表し、2 つ目は inode の制限を表します。
grace
列は通常空白です。ソフト制限が超過した場合、その列には猶予期間に残り時間量に相当する時間指定が含まれます。猶予期間が過ぎると、代わりに none
が表示されます。
9.2.3. クォータの精度維持
- 次回の再起動時に quotacheck を確実に実行する
- ほとんどのシステムで最適な方法この方法は、定期的に再起動する (ビジーな) 複数ユーザーシステムに最も適しています。root で、シェルスクリプトを touch /forcequotacheck コマンドを含む
/etc/cron.daily/
または/etc/cron.weekly/
ディレクトリーに置くか、crontab -e コマンドを使ってスケジュールを設定します。このスクリプトは root ディレクトリーに空のforcequotacheck
ファイルを作成するため、起動時にシステムの init スクリプトがこれを検索します。このディレクトリーが検出されると、init スクリプトは quotacheck を実行します。その後、init スクリプトは/forcequotacheck
ファイルを削除します。このように、cron
でこのファイルが定期的に作成されるようにスケジュールすることにより、次回の再起動時に quotacheck を確実に実行することができます。cron
の設定に関する詳細は、39章自動タスク を参照してください。 - シングルユーザーモードで quotacheck を実行
- quotacheck を安全に実行する別の方法として、クォータファイルのデータ破損の可能性を防ぐために、システムをシングルユーザーモードで再起動(再)する方法があります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ~]# quotaoff -vaug /<file_system> ~]# quotacheck -vaug /<file_system> ~]# quotaon -vaug /<file_system>
~]# quotaoff -vaug /<file_system> ~]# quotacheck -vaug /<file_system> ~]# quotaon -vaug /<file_system>
- 実行中のシステムで quotacheck を実行
- 必要な場合には、いずれのユーザーもログインしておらず、チェックされているファイルシステムに開いているファイルがない状態のマシン上で quotacheck を実行することができます。quotacheck -vaug < file_system > コマンドを実行します。このコマンドは、quotacheck が指定された < file_system > を読み取り専用として再マウントできない場合に失敗します。チェックの後には、ファイルシステムは読み込み/書き込みとして再マウントされることに注意してください。ライブファイルシステムで quotacheck を実行しない読み込み/書き込みでマウントされているライブのファイルシステム上での quotacheck の実行は、quota ファイルが破損する可能性があるため、推奨されません。
9.3. 関連情報
9.3.1. インストールされているドキュメント
- quotacheck、edquota、repquota、quota on、および quotaoff の man ページ
第10章 アクセス制御リスト
acl
パッケージが必要になります。このパッケージには、ACL 情報の追加、修正、削除および、取得のためのユーティリティーが同梱されています。
10.1. ファイルシステムのマウント
mount -t ext3 -o acl <device-name> <partition>
mount -t ext3 -o acl <device-name> <partition>
mount -t ext3 -o acl /dev/VolGroup00/LogVol02 /work
mount -t ext3 -o acl /dev/VolGroup00/LogVol02 /work
/etc/fstab
ファイルにリストされている場合は、パーティションのエントリーに acl
オプションを含めることができます。
LABEL=/work /work ext3 acl 1 2
LABEL=/work /work ext3 acl 1 2
--with-acl-support
オプションでコンパイルされているためです。Samba 共有のアクセス時またはマウント時に特別なフラグは必要ありません。
10.1.1. NFS
/etc/exports
ファイルに no_acl
オプションを追加します。クライアントに NFS 共有をマウントする際に ACL を無効にするには、コマンドラインまたは /etc/fstab
ファイルで no_acl
オプションでマウントします。
10.2. アクセス ACL の設定
- 各ユーザー
- 各グループ
- 実効権マスクを使用して
- ファイルのユーザーグループに属さないユーザーに対して
-m
オプションを使用して、ファイルまたはディレクトリーの ACL を追加または変更します。
setfacl -m <rules> <files>
setfacl -m <rules> <files>
u:<uid>:<perms>
- ユーザーにアクセス ACL を設定します。ユーザー名または UID を指定できます。システムで有効な任意のユーザーを指定できます。
g:<gid>:<perms>
- グループにアクセス ACL を設定します。グループ名または GID を指定できます。システムで有効な任意のグループを指定できます。
m:<perms>
- 実効権マスクを設定します。このマスクは、所有グループの全権限と、ユーザーおよびグループの全エントリーを結合したものです。
o:<perms>
- ファイルのグループに属さないユーザーにアクセス ACL を設定します。
r
、w
、x
の文字の組み合わせでなければなりません。
setfacl -m u:andrius:rw /project/somefile
setfacl -m u:andrius:rw /project/somefile
-x
オプションを使用して権限を指定しません。
setfacl -x <rules> <files>
setfacl -x <rules> <files>
setfacl -x u:500 /project/somefile
setfacl -x u:500 /project/somefile
10.3. デフォルト ACL の設定
d:
を追加して、ファイル名ではなくディレクトリーを指定します。
/share/
ディレクトリーにデフォルト ACL を設定し、ユーザーグループに属さないユーザーの読み取りと実行を設定するには、以下のコマンドを実行します (これにより、個別ファイルのアクセス ACL が上書きされます)。
setfacl -m d:o:rx /share
setfacl -m d:o:rx /share
10.4. ACL の取り込み
getfacl home/john/picture.png
getfacl home/john/picture.png
file: home/john/picture.png owner: john group: john
# file: home/john/picture.png
# owner: john
# group: john
user::rw-
group::r--
other::r--
getfacl home/sales/
[john@main /]$ getfacl home/sales/
# file: home/sales/
# owner: john
# group: john
user::rw-
user:barryg:r--
group::r--
mask::r--
other::r--
default:user::rwx
default:user:john:rwx
default:group::r-x
default:mask::rwx
default:other::r-x
10.5. ACL が設定されているファイルシステムのアーカイブ作成
star
パッケージが必要になります。
オプション | 説明 |
---|---|
-c | アーカイブファイルを作成します。 |
-n | ファイルを抽出しません。-x と併用すると、ファイルが行う抽出を表示します。 |
-r | アーカイブ内のファイルを入れ替えます。パスとファイル名が同じファイルが置き換えられ、アーカイブファイルの末尾に書き込まれます。 |
-t | アーカイブファイルのコンテンツを表示します。 |
-u | アーカイブファイルを更新します。アーカイブにファイルが存在しない場合や、アーカイブ内の同じ名前のファイルよりも新しい場合は、ファイルはアーカイブの最後に書き込まれます。このオプションは、アーカイブがファイルであるか、またはバックスペースがあるブロックされていないテープの場合にのみ機能します。 |
-x | アーカイブからファイルを抽出します。-U と併用すると、アーカイブ内のファイルがファイルシステムにあるファイルよりも古い場合、そのファイルは抽出されません。 |
-help | 最も重要なオプションを表示します。 |
-xhelp | 最も重要ではないオプションを表示します。 |
-/ | アーカイブからファイルを抽出する際に、ファイル名から先頭のスラッシュを削除します。デフォルトでは、ファイルの抽出時にストライプ化されます。 |
-acl | 作成時または抽出時に、ファイルおよびディレクトリーに関連する ACL をアーカイブまたは復元します。 |
10.6. 旧システムとの互換性
tune2fs -l <filesystem-device>
tune2fs -l <filesystem-device>
e2fsprogs
パッケージ (Red Hat Enterprise Linux 2.1 および 4 のバージョンも含む) に含まれている e2fsck ユーティリティーのバージョンは、ext_attr 属性を使用してファイルシステムを確認できます。古いバージョンではこの確認が拒否されます。
10.7. 関連情報
10.7.1. インストールされているドキュメント
- ACL の man ページ - ACL の説明
- gedit の man ページ:ファイルアクセス制御リストの取得方法
- setfacl の man ページ:ファイルアクセス制御リストの設定方法
- star の man ページ: star ユーティリティーとそのオプションの詳細を説明します。
10.7.2. 便利な Web サイト
- http://acl.bestbits.at/ - ACL の Web サイト
第11章 LVM (論理ボリュームマネージャー)
11.1. LVM とは
/boot
パーティションを除き、物理 ボリュームは論理ボリューム に結合されます。/boot
パーティションは、ブートローダーが読み取ることができないため、論理ボリュームグループでは配置できません。root (/
)パーティションが論理ボリュームにある場合は、ボリュームグループの一部ではない別の /boot
パーティションを作成します。
図11.1 論理ボリューム

[D]
/home
や /
などのマウントポイント、ext2 や ext3 などのファイルシステムタイプが割り当てられます。パーティションが最大容量に達すると、ボリュームグループの空き領域を論理ボリュームに追加して、パーティションのサイズを増やすことができます。新しいハードドライブをシステムに追加すると、それをボリュームグループに追加したり、論理ボリュームであるパーティションのサイズを大きくしたりできます。
図11.2 論理ボリューム

[D]
11.1.1. LVM2 とは
11.2. LVM 設定
system-config-lvm
ユーティリティーを使用して、インストール後に独自の LVM 設定を作成できます。次の 2 つのセクションでは、インストール時に ディスク Druid を使用してこのタスクを完了することに重点を置いています。3 番目のセクションでは、LVM ユーティリティー(system-config-lvm
)を紹介します。これにより、X ウィンドウまたはグラフィカルに LVM ボリュームを管理できます。
- ハードドライブからの 物理ボリューム の作成
- 物理 ボリュームからのボリュームグループ の作成
- ボリュームグループから 論理ボリューム を作成し、論理ボリュームのマウントポイントを割り当てます。
11.3. 自動パーティション設定
- /boot パーティションは、LVM 以外のパーティションにあります。以下の例では、最初のドライブ(/dev/sda1)の最初のパーティションになります。ブート可能なパーティションは、LVM 論理ボリュームには存在 できません。
- 1 つの LVM ボリュームグループ(VolGroup00)が作成されます。これは、選択したすべてのドライブと、残りのすべての領域にまたがるものです。以下の例では、最初のドライブの残り(/dev/sda2)と、2 番目のドライブ全体(/dev/sdb1)がボリュームグループに割り当てられます。
- 2 つの LVM 論理ボリューム(LogVol00 および LogVol01)が、新たに作成したスパンのボリュームグループから作成されます。以下の例では、推奨されるスワップ領域は自動的に計算され LogVol01 に割り当てられ、残りはルートファイルシステム LogVol00 に割り当てられます。
図11.3 2 つの SCSI ドライブを使用した自動 LVM 設定

[D]
11.4. 手動 LVM パーティション設定
11.4.1. /boot パーティションの作成
図11.4 空白ドライブを 2 つ(準備完了)

[D]
/boot
パーティションは LVM ボリュームには存在できません。
- Mount Point プルダウンメニューから /boot を選択します。
- File System Type プルダウンメニューから ext3 を選択します。
- Allowable Drives エリアから sda チェックボックスを選択します。
- Size (MB) メニューの 100 (デフォルト)のままにします。
- Additional Size Options エリアで Fixed size (デフォルトの)ラジオボタンを選択したままにします。
- パーティションをプライマリーパーティションにするには、Force to be a primary partition を選択します。プライマリーパーティションは、ハードドライブの最初の 4 つのパーティションの 1 つです。選択されていない場合は、パーティションが論理パーティションとして作成されます。他のオペレーティングシステムがすでにシステム上にある場合は、このオプションの選択を解除する必要があります。プライマリーパーティションと論理/拡張パーティションの詳細は、『Red Hat Enterprise Linux インストールガイド』 の付録セクションを参照してください。
図11.5 ブートパーティションの作成

[D]
図11.6 表示される /boot パーティション

[D]
11.4.2. LVM 物理ボリュームの作成
図11.7 物理ボリュームの作成
[D]- マウントポイントは入力できません(すべての物理ボリュームを作成してから、すべてのボリュームグループを作成したら)。
- 物理ボリュームを 1 つのドライブに制限する必要があります。には、物理ボリュームを作成するドライブを選択します。複数のドライブがある場合は、すべてのドライブが選択されるため、1 つのドライブ以外のすべてのドライブの選択を解除する必要があります。
- 物理ボリュームのサイズを入力します。
- Fixed size を選択して、指定したサイズに物理ボリュームを設定し、Fill all space up (MB) を選択し、物理ボリュームサイズの範囲を割り当てるサイズを MB 単位で入力するか、Fill to maximum allowable size を選択して拡張し、ハードディスクで利用可能な領域をすべて埋めます。複数の拡張可能がある場合には、ディスクで利用可能な空き領域を共有します。
- パーティションをプライマリーパーティションにする場合は、Force to be a primary partition を選択します。
図11.8 2 つの物理ボリュームが作成されている

[D]
11.4.3. LVM ボリュームグループの作成
- 注記ボリュームグループには、オーバーヘッドのディスク領域があります。ボリュームグループのサイズは、物理ボリュームサイズの合計よりもわずかに小さくなります。
図11.9 LVM ボリュームグループの作成
[D] - 必要に応じて 、ボリュームグループ名 を変更します。
- ボリュームグループに使用する物理ボリュームを選択します。
11.4.4. LVM 論理ボリュームの作成
/
、/home
、swap 領域などのマウントポイントを使用して論理ボリュームを作成します。/boot
は論理ボリュームにすることはできません。論理ボリュームを追加するには、Logical Volumes セクションの ボタンをクリックします。図11.10「論理ボリュームの作成」 に示されるようにダイアログウィンドウが表示されます。
図11.10 論理ボリュームの作成

[D]
図11.11 保留中の論理ボリューム

[D]
図11.12 最終的な手動設定

[D]
11.5. LVM ユーティリティー system-config-lvm
の使用
/boot - (Ext3) file system. Displayed under 'Uninitialized Entities'. (DO NOT initialize this partition). LogVol00 - (LVM) contains the (/) directory (312 extents). LogVol02 - (LVM) contains the (/home) directory (128 extents). LogVol03 - (LVM) swap (28 extents).
/boot - (Ext3) file system. Displayed under 'Uninitialized Entities'. (DO NOT initialize this partition).
LogVol00 - (LVM) contains the (/) directory (312 extents).
LogVol02 - (LVM) contains the (/home) directory (128 extents).
LogVol03 - (LVM) swap (28 extents).
/dev/hda2
に作成され、/boot
は /dev/hda1
に作成されました。このシステムは、初期化されていないエンティティーも設定されており、図11.17「初期化されていないエンティティー」 で説明されています。次の図は、LVM ユーティリティーのメインウィンドウを示しています。上記の設定の論理ビューと物理ビューを以下に示します。3 つの論理ボリュームは、同じ物理ボリューム (hda2) に存在します。
図11.13 メイン LVM ウィンドウ

[D]
図11.14 物理ビューウィンドウ

[D]
図11.15 論理ビューウィンドウ

[D]
/
(root)ディレクトリーで使用されている場合、ボリュームのアンマウントはできないため、このタスクは成功しません。
図11.16 論理ボリュームの編集

[D]
11.5.1. 初期化されていないエンティティーの使用
/boot
であるため初期化できません。初期化されていないエンティティーを以下に示します。
図11.17 初期化されていないエンティティー

[D]
11.5.2. 未割り当てボリュームのボリュームグループへの追加
- 新しいボリュームグループの作成
- 未割り当てのボリュームの既存のボリュームグループへの追加
- LVM からのボリュームの削除
図11.18 未割り当てのボリューム

[D]
図11.19 ボリュームグループへの物理ボリュームの追加

[D]
- 新しい論理ボリュームを作成します(ボタンをクリックします。
- 既存の論理ボリュームの 1 つを選択し、エクステントを増やす (「ボリュームグループの拡張」 を参照)
- 既存の論理ボリュームを選択し、ボタンをクリックして、ボリュームグループから削除する。この操作を実行するために未使用のスペースを選択できないことに注意してください。
図11.20 ボリュームグループの論理ビュー

[D]
図11.21 ボリュームグループの論理ビュー

[D]
11.5.3. エクステントの移行
図11.22 エクステントの移行

[D]
図11.23 進行中のエクステントの移行

[D]
図11.24 ボリュームグループの論理的および物理的ビュー

[D]
11.5.4. LVM を使用した新しいハードディスクの追加
図11.25 初期化されていないハードディスク

[D]
11.5.5. 新しいボリュームグループの追加
図11.26 新しいボリュームグループの作成

[D]
図11.27 新しい論理ボリュームを作成する

[D]
図11.28 新しいボリュームグループの物理ビュー

[D]
11.5.6. ボリュームグループの拡張
/dev/hda6
が選択されています。
図11.29 ディスクエンティティーの選択

[D]
図11.30 拡張ボリュームグループの論理的および物理的ビュー

[D]
11.5.7. 論理ボリュームの編集
図11.31 論理ボリュームの編集

[D]
/mnt/backups
にマウントされます。これを以下の図に示します。
図11.32 論理ボリュームの編集 - マウントオプションの指定

[D]
図11.33 論理ボリュームの編集

[D]
11.6. 関連情報
11.6.1. インストールされているドキュメント
- rpm -qd lvm2 —このコマンドは、man ページを含む lvm パッケージから入手可能なすべてのドキュメントを表示します。
- lvm help —このコマンドは、使用可能なすべての LVM コマンドを表示します。
11.6.2. 便利な Web サイト
- http://sources.redhat.com/lvm2 — LVM2 Web ページ。概要、メーリングリストへのリンクなどが含まれています。
- http://tldp.org/HOWTO/LVM-HOWTO/ — Linux ドキュメントプロジェクトの LVM HOWTO ページ。
パート II. パッケージ管理
第12章 RPM でのパッケージ管理
rpm
パッケージによって処理されるように構築されたパッケージでのみ機能します。エンドユーザーの場合、RPM によりシステムの更新が容易になります。RPM パッケージのインストール、アンインストール、およびアップグレードは、短いコマンドで実行できます。RPM は、インストールされたパッケージとそのファイルのデータベースを維持するため、システム上で強力なクエリーと検証を呼び出すことができます。グラフィカルインターフェイスを使用する場合は、Package Management Tool を使用して多くの RPM コマンドを実行できます。詳細は、13章パッケージ管理ツール を参照してください。
.tar.gz
ファイルで実行できないもの)。
12.1. RPM 設計ゴール
- アップグレード可能性
- RPM を使用すると、完全に再インストールしなくても、システムの個別コンポーネントをアップグレードすることができます。RPM (Red Hat Enterprise Linux など)に基づくオペレーティングシステムの新しいリリースを取得する場合は、(他のパッケージシステムに基づくオペレーティングシステムと同様に)マシンに を再インストールする必要はありません。RPM を使用すると、システムのインテリジェントな完全自動化のインプレースアップグレードが可能になります。パッケージの設定ファイルはアップグレード後も保持されるため、カスタマイズを失うことはありません。パッケージをアップグレードするのに特別なアップグレードファイルは必要ありません。これは、同じ RPM ファイルを使用してシステムにパッケージをインストールおよびアップグレードするためです。
- 強力なクエリー
- RPM は、強力なクエリーオプションを提供するように設計されています。データベース全体からパッケージの検索や、特定のファイルの検索が可能です。また、どのパッケージがパッケージに属しているかを簡単に確認することもできます。また、パッケージが存在する場所から簡単に確認することができます。RPM パッケージに含まれるファイルは圧縮アーカイブにあり、パッケージとそのコンテンツに関する有用な情報が含まれるカスタムのバイナリーヘッダーとともに、個々のパッケージにすばやく簡単にクエリーできます。
- システムの検証
- もう 1 つの強力な RPM 機能は、パッケージを検証する機能です。一部のパッケージで重要なファイルを削除した場合は、パッケージを確認できます。その後、異常が通知されます。その時点では、必要に応じてパッケージを再インストールできます。変更した設定ファイルは、再インストール時に保持されます。
- 純粋なソース
- 重要な設計目標は、ソフトウェアの元の作成者が配布する 初期 ソフトウェアソースを使用できるようにすることでした。RPM では、元のソースと、使用されたパッチ、完全なビルド命令があります。これは、いくつかの理由で重要な利点です。たとえば、新しいバージョンのプログラムがリリースされた場合は、コンパイルするためにゼロから開始する必要はありません。パッチを確認して、必要 な 操作を確認できます。コンパイル済みのデフォルトと、適切に構築するためにソフトウェアを正しく構築するために行われたすべての変更については、この手法を使用して簡単に確認できます。ソースを保持する目的は、開発者にとってのみ重要であると思われるかもしれませんが、エンドユーザー向けの品質の高いソフトウェアも向上します。
12.2. RPM の使用
12.2.1. RPM パッケージの検索
- Red Hat Enterprise Linux CD-ROM
- http://www.redhat.com/apps/support/errata/から入手できる Red Hat エラータページ
- Red Hat Network: Red Hat Network の詳細は、15章システムの登録およびサブスクリプション管理 を参照してください。
12.2.2. インストール
foo-1.0-1.i386.rpm
などのファイル名があります。ファイル名には、パッケージ名(foo
)、バージョン(1.0
)、リリース(1
)、およびアーキテクチャー(i386
)が含まれます。パッケージをインストールするには、root でログインして、シェルプロンプトで以下のコマンドを入力します。
rpm -ivh foo-1.0-1.i386.rpm
rpm -ivh foo-1.0-1.i386.rpm
rpm -Uvh foo-1.0-1.i386.rpm
rpm -Uvh foo-1.0-1.i386.rpm
Preparing... ########################################### [100%] 1:foo ########################################### [100%]
Preparing... ########################################### [100%]
1:foo ########################################### [100%]
error: V3 DSA signature: BAD, key ID 0352860f
error: V3 DSA signature: BAD, key ID 0352860f
error: Header V3 DSA signature: BAD, key ID 0352860f
error: Header V3 DSA signature: BAD, key ID 0352860f
NOKEY
という単語が含まれます。
warning: V3 DSA signature: NOKEY, key ID 0352860f
warning: V3 DSA signature: NOKEY, key ID 0352860f
12.2.2.1. インストール済みパッケージの準備
Preparing... ########################################### [100%] package foo-1.0-1 is already installed
Preparing... ########################################### [100%]
package foo-1.0-1 is already installed
rpm -ivh --replacepkgs foo-1.0-1.i386.rpm
rpm -ivh --replacepkgs foo-1.0-1.i386.rpm
12.2.2.2. 競合するファイル
Preparing... ########################################### [100%] file /usr/bin/foo from install of foo-1.0-1 conflicts with file from package bar-2.0.20
Preparing... ########################################### [100%]
file /usr/bin/foo from install of foo-1.0-1 conflicts with file from package bar-2.0.20
rpm -ivh --replacefiles foo-1.0-1.i386.rpm
rpm -ivh --replacefiles foo-1.0-1.i386.rpm
12.2.2.3. 解決できない依存関係
error: Failed dependencies: bar.so.2 is needed by foo-1.0-1 Suggested resolutions: bar-2.0.20-3.i386.rpm
error: Failed dependencies:
bar.so.2 is needed by foo-1.0-1
Suggested resolutions:
bar-2.0.20-3.i386.rpm
rpm -ivh foo-1.0-1.i386.rpm bar-2.0.20-3.i386.rpm
rpm -ivh foo-1.0-1.i386.rpm bar-2.0.20-3.i386.rpm
Preparing... ########################################### [100%] 1:foo ########################################### [ 50%] 2:bar ########################################### [100%]
Preparing... ########################################### [100%]
1:foo ########################################### [ 50%]
2:bar ########################################### [100%]
-q --whatprovides
オプションの組み合わせを試して、必要なファイルが含まれているパッケージを判断できます。
rpm -q --whatprovides bar.so.2
rpm -q --whatprovides bar.so.2
--nodeps
オプションを使用します。
12.2.3. アンインストール
rpm -e foo
rpm -e foo
foo
-1.0-1.i386.rpm ではなく、パッケージ名 foo
を使用していた点に注意してください。パッケージをアンインストールするには、foo
を元のパッケージの実際のパッケージ名に置き換えます。
error: Failed dependencies: foo is needed by (installed) bar-2.0.20-3.i386.rpm
error: Failed dependencies:
foo is needed by (installed) bar-2.0.20-3.i386.rpm
--nodeps
オプションを使用します。
12.2.4. アップグレード
rpm -Uvh foo-2.0-1.i386.rpm
rpm -Uvh foo-2.0-1.i386.rpm
foo
パッケージの古いバージョンを自動的にアンインストールします。-U
は、以前のバージョンの パッケージがインストールされていなくても、パッケージをインストールするため注意してください。
-U
オプションを使用することは推奨されません。これは実行中のシステムに影響を与えませんが、次回の再起動時に新しいカーネルが起動できない場合は、他のカーネルが起動できなくなります。
-i
オプションを使用すると、GRUB ブートメニュー(/etc/grub.conf
)にカーネルが追加されます。同様に、古い不要なカーネルを削除すると、GRUB からカーネルが削除されます。
saving /etc/foo.conf as /etc/foo.conf.rpmsave
saving /etc/foo.conf as /etc/foo.conf.rpmsave
package foo-2.0-1 (which is newer than foo-1.0-1) is already installed
package foo-2.0-1 (which is newer than foo-1.0-1) is already installed
rpm -Uvh --oldpackage foo-1.0-1.i386.rpm
rpm -Uvh --oldpackage foo-1.0-1.i386.rpm
12.2.5. Freshening
rpm -Fvh foo-1.2-1.i386.rpm
rpm -Fvh foo-1.2-1.i386.rpm
rpm -Fvh *.rpm
rpm -Fvh *.rpm
12.2.6. クエリー
/var/lib/rpm/
ディレクトリーに保存され、インストールされているパッケージ、各パッケージのバージョン、およびその他からパッケージ内のファイルへの変更をクエリーするために使用されます。
foo
をクエリーすると、以下のような出力が生成される可能性があります。
foo-2.0-1
foo-2.0-1
- -a - 現在インストールされているすべてのパッケージをクエリーします。
- -f <
;filename>
; - パッケージがf <filename> を所有する RPM データベースを照会し
ます。ファイルを指定する場合は、ファイルの絶対パスを指定します(例: rpm -qf/bin/ls
)。 - -p <
packagefile> - アン
インストールされたパッケージ <packagefile> にクエリーを実行し
ます。
- -i は、名前、説明、リリース、サイズ、ビルド日、インストール日、ベンダーなどのパッケージ情報を表示します。
- -l は、パッケージに含まれるファイルの一覧を表示します。
- -s は、パッケージ内のすべてのファイルの状態を表示します。
- -d は、ドキュメントとしてマークされたファイル(man ページ、情報ページ、README など)を表示します。
- -c は、設定ファイルとしてマークされているファイルの一覧を表示します。インストール後に編集してシステムにパッケージ(
sendmail.cf
、passwd
、inittab
など)に合わせて編集するファイルです。
12.2.7. 検証中
- 特定のファイルを含むパッケージを確認するには、次のコマンドを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rpm -Vf /usr/bin/foo
rpm -Vf /usr/bin/foo
この例では、/usr/bin/foo
は、パッケージのクエリーに使用されるファイルへの絶対パスです。 - システム全体にインストールされているパッケージをすべて確認するには、次のコマンドを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rpm -Va
rpm -Va
- RPM パッケージファイルに対してインストールされたパッケージを確認するには、次のコマンドを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rpm -Vp foo-1.0-1.i386.rpm
rpm -Vp foo-1.0-1.i386.rpm
このコマンドは、RPM データベースが破損していると思われる場合に役立ちます。
c
は設定ファイルを表す)の文字列で、ファイル名になります。8 文字は、ファイルの 1 つの属性を、RPM データベースで記録した属性の値と比較した結果を示します。シングルピリオド(.
)は、テストに合格することを意味します。以下の文字は、特定の不一致を示しています。
5
- MD5 チェックサムs
- ファイルサイズl
- シンボリックリンクt
- ファイルの変更時間d
- deviceu
- userg
- グループm
- モード(パーミッションとファイルタイプを含む)?
: 読み取りできないファイル
12.3. パッケージの署名の確認
rpm -K --nosignature <rpm-file>
rpm -K --nosignature <rpm-file>
;rpm-file>: md5 OK
が表示されます。この簡単なメッセージは、ダウンロードによってファイルが破損していないことを意味します。詳細なメッセージを表示するには、コマンドで -K
を -Kvv
に置き換えます。
12.3.1. キーのインポート
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
rpm -qa gpg-pubkey*
rpm -qa gpg-pubkey*
gpg-pubkey-37017186-45761324
gpg-pubkey-37017186-45761324
rpm -qi gpg-pubkey-37017186-45761324
rpm -qi gpg-pubkey-37017186-45761324
12.3.2. パッケージの署名の確認
rpm -K <rpm-file>
rpm -K <rpm-file>
md5 gpg OK
というメッセージが表示されます。これは、パッケージの署名が検証され、破損していないことを意味します。
12.4. RPM 使用率の実用的な例および一般的な例
- 誤って一部のファイルを削除したが、削除したものは確認されていない可能性があります。システム全体を確認し、何が欠落しているかを確認するには、次のコマンドを試してください。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rpm -Va
rpm -Va
一部のファイルが見つからないか、破損しているように見える場合は、パッケージを再インストールするか、アンインストールしてから、パッケージを再インストールする必要があります。 - 場合によっては、認識していないファイルが表示される場合があります。所有しているパッケージを検索するには、次のコマンドを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rpm -qf /usr/bin/ggv
rpm -qf /usr/bin/ggv
出力は以下のようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ggv-2.6.0-2
ggv-2.6.0-2
- 以下のシナリオで、上記の 2 つの例を組み合わせることができます。
/usr/bin/paste
に問題があるとします。そのプログラムを所有するパッケージを確認しますが、どのパッケージを所有するかを確認して ください。以下のコマンドを入力します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow rpm -Vf /usr/bin/paste
rpm -Vf /usr/bin/paste
さらに、適切なパッケージが検証されます。 - 特定のプログラムの詳細情報を調べるか ?以下のコマンドを試して、そのプログラムを所有するパッケージに含まれるドキュメントを見つけることができます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rpm -qdf /usr/bin/free
rpm -qdf /usr/bin/free
出力は以下のようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow /usr/share/doc/procps-3.2.3/BUGS /usr/share/doc/procps-3.2.3/FAQ /usr/share/doc/procps-3.2.3/NEWS /usr/share/doc/procps-3.2.3/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/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
/usr/share/doc/procps-3.2.3/BUGS /usr/share/doc/procps-3.2.3/FAQ /usr/share/doc/procps-3.2.3/NEWS /usr/share/doc/procps-3.2.3/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/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 が見つかる場合もありますが、何が起こっているかは分からません。その情報を見つけるには、次のコマンドを使用します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rpm -qip crontabs-1.10-7.noarch.rpm
rpm -qip crontabs-1.10-7.noarch.rpm
出力は以下のようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Name : crontabs Relocations: (not relocatable) Version : 1.10 Vendor: Red Hat, Inc. Release : 7 Build Date: Mon 20 Sep 2004 05:58:10 PM EDT Install Date: (not installed) Build Host: tweety.build.redhat.com Group : System Environment/Base Source RPM: crontabs-1.10-7.src.rpm Size : 1004 License: Public Domain Signature : DSA/SHA1, Wed 05 Jan 2005 06:05:25 PM EST, Key ID 219180cddb42a60e 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. Crontab is the program used to install, uninstall, or list the tables used to drive the cron daemon. The cron daemon checks the crontab files to see when particular commands are scheduled to be executed. If commands are scheduled, then it executes them.
Name : crontabs Relocations: (not relocatable) Version : 1.10 Vendor: Red Hat, Inc. Release : 7 Build Date: Mon 20 Sep 2004 05:58:10 PM EDT Install Date: (not installed) Build Host: tweety.build.redhat.com Group : System Environment/Base Source RPM: crontabs-1.10-7.src.rpm Size : 1004 License: Public Domain Signature : DSA/SHA1, Wed 05 Jan 2005 06:05:25 PM EST, Key ID 219180cddb42a60e 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. Crontab is the program used to install, uninstall, or list the tables used to drive the cron daemon. The cron daemon checks the crontab files to see when particular commands are scheduled to be executed. If commands are scheduled, then it executes them.
- おそらく、
crontabs
RPM によってインストールされるファイルを確認します。以下を入力します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow rpm -qlp crontabs-1.10-5.noarch.rpm
rpm -qlp crontabs-1.10-5.noarch.rpm
出力は以下の例のようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/cron.daily /etc/cron.hourly /etc/cron.monthly /etc/cron.weekly /etc/crontab /usr/bin/run-parts
/etc/cron.daily /etc/cron.hourly /etc/cron.monthly /etc/cron.weekly /etc/crontab /usr/bin/run-parts
12.5. 関連情報
12.5.1. インストールされているドキュメント
- rpm --help - このコマンドは、RPM パラメーターのクイックリファレンスを表示します。
- man rpm: RPM の man ページには、rpm --help コマンドよりも RPM パラメーターに関する詳細が記載されています。
12.5.2. 便利な Web サイト
- http://www.rpm.org/ - RPM の Web サイトです。
- https://lists.rpm.org/mailman/listinfo/rpm-list - このリンクにアクセスして、アーカイブされた RPM メーリングリストにサブスクライブします。
第13章 パッケージ管理ツール
図13.1 パッケージ管理ツール

[D]
13.1. パッケージの一覧表示および分析
図13.2 オプションパッケージ

[D]

13.2. パッケージのインストールと削除

図13.3 パッケージのインストール

[D]
図13.4 パッケージの依存関係:インストール

[D]

図13.5 パッケージの削除

[D]
図13.6 パッケージの依存関係:削除

[D]
図13.7 パッケージの同時インストールと削除

[D]
第14章 YUM (Yellowdog Updater Modified)
14.1. Yum リポジトリーの設定
createrepo
パッケージをインストールします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ~]# yum install createrepo
~]# yum install createrepo
- リポジトリーに指定するすべてのパッケージを 1 つのディレクトリー(例:
/mnt/local_repo
)にコピーします。 - そのディレクトリー(例: createrepo /mnt/local_repo)で createrepo を実行します。これにより、Yum リポジトリーに必要なメタデータが作成されます。
14.2. yum コマンド
- yum install & lt;package name/s>
- パッケージまたはパッケージグループの最新バージョンをインストールするために使用されます。指定したパッケージ名に一致するパッケージがない場合は、シェルグロブであると想定され、一致するものがインストールされます。
- yum update & lt;package name/s>
- 指定したパッケージを利用可能な最新バージョンに更新するために使用されます。パッケージ名や指定がない場合は、yum はインストール済みパッケージの更新を試みます。--obsoletes オプションが使用されている場合(つまり、yum --obsoletes < package name/s >)、yum は廃止されたパッケージを処理します。そのため、更新間で廃止されるパッケージは削除され、それに応じて置き換えられます。
- yum check-update
- このコマンドを使用すると、インストール済みパッケージで利用可能な更新を確認できます。yum は、すべてのリポジトリーからパッケージの更新が利用可能な場合に一覧を返します。
- yum remove & lt;package name/s>
- 指定したパッケージと、削除されるパッケージに依存するその他のパッケージを削除するために使用されます。
- yum provides < ;file name>
- 特定のファイルまたは機能を提供するパッケージを決定するために使用されます。
- yum search <keyword>
- このコマンドは、すべてのリポジトリーの RPM の説明、要約、パッケージャー、およびパッケージ名フィールドで指定されたキーワードを含むパッケージを見つけるために使用されます。
- yum localinstall & lt;absolute path to package name/s>
- yum を使用して、マシン内にローカルにあるパッケージをインストールする場合に使用されます。
14.3. yum オプション
- -y
- トランザクションのすべての質問に yes と回答します。
- -t
- トランザクションで指定されたパッケージに関するエラーに対するエラーの許容性が yum に設定します。たとえば、yum update package1 package2 を実行し、
package2
がすでにインストールされている場合は、yum は引き続き package1 をインストールします。 - --exclude=<package name>
- 特定のトランザクションで、名前または glob で特定のパッケージを除外します。
14.4. yumの設定
/etc/yum.conf
で設定されます。一般的な /etc/yum.conf
ファイルの例を以下に示します。
[main] cachedir=/var/cache/yum keepcache=0 debuglevel=2 logfile=/var/log/yum.log distroverpkg=redhat-release tolerant=1 exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 metadata_expire=1800 [myrepo] name=RHEL 5 $releasever - $basearch baseurl=http://local/path/to/yum/repository/ enabled=1
[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
distroverpkg=redhat-release
tolerant=1
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
metadata_expire=1800
[myrepo]
name=RHEL 5 $releasever - $basearch
baseurl=http://local/path/to/yum/repository/
enabled=1
/etc/yum.conf
ファイルは、[main] セクションとリポジトリーセクションという 2 種類のセクションで設定されています。[main] セクションは 1 つだけ指定できますが、1 つの /etc/yum.conf
内に複数のリポジトリーを指定できます。
14.4.1. [main] オプション
- cachedir
- このオプションは、yum がキャッシュとデータベースファイルを保存するディレクトリーを指定します。デフォルトでは、yum のキャッシュディレクトリーは
/var/cache/yum
です。 - keepcache= <1 or 0>
- keepcache=1 を設定すると、インストールの成功後もヘッダーとパッケージのキャッシュを維持するように yum に指示します。keepcache=1 がデフォルトです。
- reposdir= <absolute path to directory of .repo files>
- このオプションを使用すると、
.repo
ファイルが置かれているディレクトリーを指定できます。.repo
ファイルには、リポジトリー情報が含まれます(/etc/yum.conf
の [repository] セクションと同様)。yum は、.repo
ファイルおよび/etc/yum.conf
ファイルの [repository] セクションからすべてのリポジトリー情報を収集して、各トランザクションに使用するリポジトリーのマスターリストを作成します。[repository] セクションと.repo
ファイルの両方に使用できるオプションの詳細は、「 [repository] Options」 を参照してください。reposdir が設定されていない場合、yum はデフォルトのディレクトリー/etc/yum.repos.d
を使用します。 - gpgcheck=<1 or 0>
- これにより、ローカルパッケージのインストールなど、全リポジトリーのパッケージで GPG 署名の確認を無効または有効にします。デフォルトは gpgcheck=0 で、GPG チェックを無効にします。このオプションが
/etc/yum.conf
ファイルの [main] セクションで設定されている場合は、すべてのリポジトリーの GPG チェックルールが設定されます。ただし、これを個別のリポジトリーに設定することもできます。つまり、あるリポジトリーで GPG チェックを有効にしつつ、別のリポジトリーで無効にすることもできます。 - assumeyes= <1 or 0>
- これにより、yum が重要なアクションの確認を要求するかどうかを決定します。assumeyes=0 の場合のデフォルト。これは、yum により確認を求めるプロンプトが表示されることを意味します。assumeyes=1 を設定すると、yum はコマンドラインオプション -y と同じように動作します。
- tolerant= <1 または 0>
- 有効にすると(tolerant=1)、yum はパッケージに関してコマンドラインでエラーを許容します。これは、yum コマンドラインオプション -t と似ています。このデフォルト値は tolerant=0 (トレラントではありません)です。
- exclude=<package name/s>
- このオプションを使用すると、インストール/更新時にキーワードでパッケージを除外できます。複数のパッケージを指定する場合は、スペースで区切られたリストになります。ワイルドカードを使用したシェル glob (* や ? など)を使用できます。
- retries= <number of retries>
- これにより、エラーを返す前に yum がファイルの取得を試行する回数が設定されます。これを 0 に設定すると、yum は永久に再試行されます。デフォルト値は 6 です。
14.4.2. [repository] Options
/etc/yum.conf
ファイルの [repository] セクションには、yum がパッケージのインストール、更新、および依存関係の解決時にパッケージを検索するために使用できるリポジトリーに関する情報が含まれます。リポジトリーエントリーは以下の形式になります。
[repository ID] name=repository name baseurl=url, file or ftp://path to repository
[repository ID]
name=repository name
baseurl=url, file or ftp://path to repository
.repo
ファイルにリポジトリー情報を指定することもできます(例: rhel5.repo
)。.repo
ファイルに置かれたリポジトリー情報の形式は、/etc/yum.conf
の [repository] と同じです。
.repo
ファイルは、reposdir= を使用して /etc/yum.conf
の [main] セクションで別のリポジトリーパスを指定しない限り、通常は /etc/yum.repos.d
に配置されます。.repo
ファイルと /etc/yum.conf
ファイルには、複数のリポジトリーエントリーを含めることができます。
- [repository ID]
- リポジトリー ID は、リポジトリー識別子として機能する一意の 1 単語の文字列です。
- name=repository name
- これは、人間が判読可能な、リポジトリーを記述する文字列です。
- baseurl=http、file、または ftp://path
- これは、リポジトリーの
repodata
ディレクトリーが置かれているディレクトリーへの URL です。リポジトリーがマシンのローカルにある場合は、ローカルリポジトリー への baseurl=file:// パスを 使用します。HTTP を使用してリポジトリーがオンラインにある場合は、baseurl=http://リンク を使用します。リポジトリーがオンラインで FTP を使用する場合は、baseurl=ftp://リンク を使用します。特定のオンラインリポジトリーで基本的な HTTP 認証が必要な場合は、username: password @link として追加して、baseurl 行でユーザー名とパスワードを指定できます。たとえば、のリポジトリーで http://www.example.com/repo/ user というユーザー名とパスワード os password が必要な場合、baseurl リンクは baseurl=http://user:/repo/ として指定できます。
- gpgcheck=<1 or 0>
- これにより、特定のリポジトリーの確認を GPG 署名を無効化/有効にします。デフォルトは gpgcheck=0 で、GPG チェックを無効にします。
- gpgkey=URL
- このオプションを使用すると、リポジトリーの ASCII アラームされた GPG キーファイルの URL を参照できます。このオプションは、通常、yum がパッケージの検証に公開鍵を必要とし、必要な鍵が RPM データベースにインポートされていない場合に使用されます。このオプションを設定すると、yum は指定された URL からキーを自動的にインポートします。assumeyes=1 (
/etc/yum.conf
の [main] セクションに)または -y ( yum トランザクション)を設定しない限り、キーをインストールする前にプロンプトが表示されます。 - exclude=<package name/s>
- このオプションは、
/etc/yum.conf
の [main] セクションの exclude オプションと似ています。ただし、指定したリポジトリーにのみ適用されます。 - includepkgs=<package name/s>
- このオプションは、除外の とは異なり ます。このオプションをリポジトリーに設定すると、yum はそのリポジトリーで指定されたパッケージのみを表示できます。デフォルトでは、リポジトリー内の全パッケージが yum に表示されます。
14.5. ISO と Yum を使用してシステムをオフラインでアップグレード
- ISO イメージをマウントするターゲットディレクトリーを作成します。このディレクトリーはマウント時に自動的に作成されないため、
root
で次の手順に進む前に作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow mkdir mount_dir
mkdir mount_dir
mount_dir をマウントディレクトリーへのパスに置き換えます。Typicaly は、/media/
ディレクトリーにサブディレクトリーとして作成します。 - Red Hat Enterprise Linux 5 インストール ISO イメージを、以前に作成したターゲットディレクトリーにマウントします。
root
で以下のコマンドを実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow mount -o loop iso_name mount_dir
mount -o loop iso_name mount_dir
iso_name を ISO イメージへのパスに置き換え、mount_dir をターゲットディレクトリーへのパスに置き換えます。ブロックデバイスとしてファイルをマウントするには、-o
loop
オプションが必要です。 - マウントディレクトリーから、
.discinfo
ファイルの最初の行にある数値を確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow head -n1 mount_dir/.discinfo
head -n1 mount_dir/.discinfo
このコマンドの出力は ISO イメージの ID 番号で、以下の手順を実行するのに知っておく必要があります。 /etc/yum.repos.d/
ディレクトリーに新しいファイル(例: new.repo )を作成し、以下の形式でコンテンツを追加します。正常に機能するために、このディレクトリーの設定ファイルの拡張子は .repo である必要があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow [repository] mediaid=media_id name=repository_name baseurl=repository_url gpgkey=gpg_key enabled=1 gpgcheck=1
[repository] mediaid=media_id name=repository_name baseurl=repository_url gpgkey=gpg_key enabled=1 gpgcheck=1
media_id を、mount_dir/.discinfo
にある数値に置き換えます。repository_name の代わりにリポジトリー名を設定します。repository_url はマウントポイント内のリポジトリーディレクトリーへのパスに、gpg_key は GPG キーへのパスに置き換えます。たとえば、Red Hat Enterprise Linux 5 Server ISO のリポジトリー設定は以下のようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow [rhel5-Server] mediaid=1354216429.587870 name=RHEL5-Server baseurl=file:///media/rhel5/Server gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release enabled=1 gpgcheck=1
[rhel5-Server] mediaid=1354216429.587870 name=RHEL5-Server baseurl=file:///media/rhel5/Server gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release enabled=1 gpgcheck=1
- 前の手順で作成した
/etc/yum.repos.d/new.repo
を含むすべての yum リポジトリーを更新します。root
で以下のコマンドを実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow yum update
yum update
これにより、システムはマウントされた ISO イメージで提供されたバージョンにアップグレードされます。 - アップグレードに成功したら、
root
権限で ISO イメージをアンマウントできます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow umount mount_dir
umount mount_dir
ここで、mount_dir はマウントディレクトリーへのパスです。また、最初の手順で作成されたマウントディレクトリーを削除することもできます。root
で以下のコマンドを実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow rmdir mount_dir
rmdir mount_dir
- 以前に作成された設定ファイルを別のインストールまたは更新に使用しない場合は、その設定ファイルを削除できます。
root
で以下のコマンドを実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow rm /etc/yum.repos.d/new.repo
rm /etc/yum.repos.d/new.repo
例14.1 Red Hat Enterprise Linux 5.8 から 5.9 へのアップグレード
RHEL5.9-Server-20121129.0-x86_64-DVD1.iso
)。ターゲットディレクトリー /media/rhel5/
を複製している。root
で ISO イメージがあるディレクトリーに移動し、以下のコマンドを入力します。
~]# mount -o loop RHEL5.9-Server-20121129.0-x86_64-DVD1.iso /media/rhel5/
~]# mount -o loop RHEL5.9-Server-20121129.0-x86_64-DVD1.iso /media/rhel5/
~]# head -n1 /media/rhel5/.discinfo 1354216429.587870
~]# head -n1 /media/rhel5/.discinfo
1354216429.587870
/etc/yum.repos.d/rhel5.repo ファイルを作成し、以下のテキストを挿入します
。
[rhel5-Server] mediaid=1354216429.587870 name=RHEL5-Server baseurl=file:///media/rhel5/Server gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release enabled=1 gpgcheck=1
[rhel5-Server]
mediaid=1354216429.587870
name=RHEL5-Server
baseurl=file:///media/rhel5/Server
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
enabled=1
gpgcheck=1
RHEL5.9-Server-20121129.0-x86_64-DVD1.iso
が提供するバージョンに効果的にアップグレードされます。root
で以下のコマンドを実行します。
~]# yum update
~]# yum update
~]# umount /media/rhel5/
~]# umount /media/rhel5/
~]# rmdir /media/rhel5/
~]# rmdir /media/rhel5/
~]# rm /etc/yum.repos.d/rhel5.repo
~]# rm /etc/yum.repos.d/rhel5.repo
14.6. 便利な yum 変数
/etc/ yum.conf
ファイルおよび .repo
ファイル)の両方に使用できる変数の一覧です。
- $releasever
- これは、distroverpkg に記載されているように、パッケージのバージョンに置き換えられます。デフォルトは redhat-release パッケージのバージョンです。
- $arch
- これは、Python の os.uname () に記載されているように、システムのアーキテクチャーに置き換えられます。
- $basearch
- これは、ベースアーキテクチャーに置き換えられます。たとえば、$arch=i686 の場合は、$basearch=i386 となります。
- $YUM0-9
- これは、同じ名前のシェル環境変数の値に置き換えられます。シェル環境変数が存在しない場合は、設定ファイルの変数は置き換えられません。
第15章 システムの登録およびサブスクリプション管理
15.1. Red Hat Subscription Manager ツールの使用
15.1.1. Red Hat Subscription Manager GUI の起動
subscription-manager-gui
[root@server1 ~]# subscription-manager-gui
15.1.2. subscription-manager コマンドラインツールの実行
subscription-manager command [options]
[root@server1 ~]# subscription-manager command [options]
コマンド | 説明 |
---|---|
register | サブスクリプションサービスに新しいシステムを登録するか、または識別します。 |
unregister | マシンの登録を解除します。これにより、そのサブスクリプションが削除され、サブスクリプションサービスからマシンが削除されます。 |
subscribe | 特定のサブスクリプションをマシンにアタッチします。 |
redeem | ハードウェアおよび BIOS 情報に基づいて、マシンをベンダーから購入した事前に指定したサブスクリプションに自動的にアタッチします。 |
unsubscribe | 特定のサブスクリプションまたはマシンからすべてのサブスクリプションを削除します。 |
list | マシンと互換性があるすべてのサブスクリプションを一覧表示します。マシンに実際にアタッチされているサブスクリプション、またはマシンで利用可能な未使用のサブスクリプションを一覧表示します。 |
15.2. システムの登録と登録解除
15.2.1. GUI からの登録
- Subscription Manager を起動します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow subscription-manager-gui
[root@server ~]# subscription-manager-gui
- システムがまだ登録されていない場合は、My Installed Products タブの右上にあるウィンドウの上部に ボタンがあります。
- 登録に使用するサブスクリプションサーバーを特定するには、サービスのホスト名を入力します。デフォルトのサービスは、カスタマーポータルの Subscription Management で、ホスト名が subscription.rhn.redhat.com になります。Subscription Asset Manager などの別のサブスクリプションサービスを使用するには、ローカルサーバーのホスト名を入力します。証明書ベースのサブスクリプションを使用し、認識するサブスクリプションサービスがあり、システムは初回起動時にそれらのいずれかに登録できます。
- カスタマーポータルの Subscription Management。Red Hat がホストしているサービスです (デフォルト)。
- Subscription Asset Manager。オンプレミスのサブスクリプションサーバーです。プロキシーとして動作し、コンテンツ配信をカスタマーポータルのサービスに送信します。
- CloudForms System Engine。オンプレミスのサービスです。サブスクリプションサービスとコンテンツ配信の両方を処理します。
- ログインする サブスクリプションサービスの ユーザー認証情報を入力します。使用するユーザーの認証情報は、サブスクリプションサービスによって異なります。カスタマーポータルに登録する場合は、管理者または企業アカウントに Red Hat Network の認証情報を使用します。ただし、Subscription Asset Manager または CloudForms System エンジンの場合、使用するユーザーアカウントはオンプレミスサービス内に作成され、おそらくカスタマーポータルのユーザーアカウントと同じではありません。
- 必要に応じて、Manually assign subscriptions after registration チェックボックスを選択します。デフォルトでは、登録プロセスは自動的に最適なサブスクリプションをシステムに割り当てます。「サブスクリプションのアタッチと削除」 にあるように、サブスクリプションを手動で選択できるようにオフにできます。
- 登録が開始されると、Subscription Manager はシステムを登録する組織および環境 (組織内のサブドメイン) をスキャンします。カスタマーポータルのサブスクリプション管理を使用する IT 環境には 1 つの組織しかないため、追加設定は必要ありません。Subscription Asset Manager などのローカルのサブスクリプションサービスを使用する IT インフラストラクチャーには複数の組織が設定されている場合があり、それらの組織内に複数の環境が設定されている場合があります。複数の組織が検出されると、Subscription Manager は参加する組織を選択するよう要求します。
- デフォルト設定では、サブスクリプションが自動的に選択され、システムにアタッチされます。システムにアタッチするサブスクリプションを確認し、確定します。
- 要求されたら、検出されたサブスクリプションに使用するサービスレベルを選択します。
- Subscription Manager は、選択したサブスクリプションを表示します。ウィザードを完了するには、ボタンをクリックして、このサブスクリプションの選択を確認する必要があります。
15.2.2. コマンドラインからの登録
例15.1 カスタマーポータルへのシステムの登録
subscription-manager register --username admin-example --password secret
[root@server1 ~]# subscription-manager register --username admin-example --password secret
The system has been registered with id: 7d133d55-876f-4f47-83eb-0ee931cb0a97
例15.2 登録時の自動サブスクライブ
--autosubscribe
オプションがあります。これにより、システムをサブスクリプションサービスに登録し、1 回のステップでシステムのアーキテクチャーに最適なサブスクリプションを即座にアタッチします。
subscription-manager register --username admin-example --password secret --autosubscribe
[root@server1 ~]# subscription-manager register --username admin-example --password secret --autosubscribe
例15.3 Subscription Asset Manager へのシステムの登録
--org
オプションを使用して行います。指定のユーザーには、その組織にシステムを追加するためのアクセス権限も必要です。
- サブスクリプションサービス自体を持つユーザーアカウントのユーザー名およびパスワード
--serverURL -
サブスクリプションサービスのホスト名を指定します。--baseurl
- コンテンツ配信サービスのホスト名を指定します(CloudForms System Engine のみ)。--org
- システムを登録する組織の名前を指定します。--environment
- システムを追加する組織内の環境(グループ)の名前を指定します。デフォルトの環境がどの組織にも設定されているため、これはオプションです。システムは、登録時にのみ環境に追加できます。
subscription-manager register --username=admin-example --password=secret --org="IT Department" --environment="dev" --serverurl=sam-server.example.com
[root@server1 ~]# subscription-manager register --username=admin-example --password=secret --org="IT Department" --environment="dev" --serverurl=sam-server.example.com
The system has been registered with id: 7d133d55-876f-4f47-83eb-0ee931cb0a97
オプション | 説明 | 必須 |
---|---|---|
--username=name | コンテンツサーバーのユーザーアカウント名を指定します。 | 必須 |
--password=password | ユーザーアカウントのパスワードを指定します。 | 必須 |
--serverurl=hostname | 使用するサブスクリプションサービスのホスト名を指定します。デフォルトはカスタマーポータルのサブスクライブ管理 subscription.rhn.redhat.com です。このオプションを使用しない場合、システムはカスタマーポータルのサブスクリプション管理に登録されます。 | Subscription Asset Manager または CloudForms System Engine で必須 |
--baseurl=URL | 更新を受け取るのに使用するコンテンツ配信サーバーのホスト名を指定します。カスタマーポータルのサブスクリプション管理および Subscription Asset Manager はいずれも、URL https://cdn.redhat.com で Red Hat がホストするコンテンツ配信サービスを使用します。CloudForms System Engine は独自のコンテンツをホストするため、この URL は System Engine に登録されているシステムに使用する必要があります。 | CloudForms System Engine で必須 |
--org=name | システムに参加する組織を指定します。 | 必須 (ホスト型環境を除く) |
--environment=name | システムを組織内の環境に登録します。 | 任意 |
--name=machine_name | 登録するシステムの名前を設定します。デフォルトは hostname と同じです。 | 任意 |
--autosubscribe | 最適な互換性のあるサブスクリプションを自動的に実施します。システムは 1 つのステップで設定できるため、自動セットアップ操作に適しています。 | 任意 |
--activationkey=key | 登録プロセスの一環として既存のサブスクリプションをアタッチします。サブスクリプションは、ベンダーまたはシステム管理者によって、Subscription Asset Manager を使用して事前に割り当てられます。 | 任意 |
--servicelevel=None|Standard|Premium | そのマシンのサブスクリプションに使用するサービスレベルを設定します。これは、--autosubscribe オプションとのみ使用されます。 | 任意 |
--release=NUMBER | システムのサブスクリプションに使用するオペレーティングシステムのマイナーリリースを設定します。製品および更新は、その特定のマイナーリリースバージョンに限定されます。これは、--autosubscribe オプションとのみ使用されます。 | 任意 |
--force | すでに登録済みでもシステムを登録します。通常、マシンがすでに登録されている場合は、レジスター操作は失敗します。 | 任意 |
15.2.3. 登録解除
例15.4 システムの登録解除
subscription-manager unregister
[root@server1 ~]# subscription-manager unregister
- Subscription Manager UI を開きます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow subscription-manager-gui
[root@server ~]# subscription-manager-gui
- System メニューを開き、 項目を選択します。
- システムの登録解除を確認します。
15.3. サブスクリプションのアタッチと削除
15.3.1. GUI によるサブスクリプションのアタッチと削除
15.3.1.1. サブスクリプションのアタッチ
- Subscription Manager を起動します。以下は例になります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow subscription-manager-gui
[root@server ~]# subscription-manager-gui
- All Available Subscriptions タブを開きます。
- 必要に応じて、日付の範囲を設定してボタンをクリックし、利用可能なサブスクリプションの検索に使用するフィルターを設定します。サブスクリプションは、アクティブ化の日付と名前でフィルターリングできます。このチェックボックスで、より細かなフィルターリングが可能です。
- match my systemを選択すると、システムのアーキテクチャーに適合するサブスクリプションのみが表示されます。
- match my installed products を選択すると、システムに現在インストールされている製品で機能するサブスクリプションが表示されます。
- have no overlap with existing subscriptionsを選択すると、重複した製品を持つサブスクリプションが除外されます。特定の製品について、サブスクリプションがすでにのシステムにアタッチされている場合や、複数のサブスクリプションが同じ製品を提供する場合は、サブスクリプションサービスがこれらのサブスクリプションをフィルターし、最適なもののみを表示します。
- contain the textは、サブスクリプションまたはプール内の製品名などの文字列を検索します。
日付およびフィルターの設定後に、ボタンをクリックしてそれらを適用します。 - 利用可能なサブスクリプションの中から 1 つ選択します。
15.3.1.2. サブスクリプションの削除
- Subscription Manager を起動します。以下は例になります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow subscription-manager-gui
[root@server ~]# subscription-manager-gui
- My Subscriptions タブを開きます。システムが現在アタッチされているアクティブなサブスクリプションがすべて表示されます。(サブスクリプションで利用可能な製品は、インストールされている場合とされていない場合があります。)
- 削除するサブスクリプションを選択します。
- ウィンドウ右下にあるボタンをクリックします。
15.3.2. コマンドラインでのサブスクリプションのアタッチと削除
15.3.2.1. サブスクリプションのアタッチ
--pool
オプションを使用して、個別の製品またはアタッチするサブスクリプションを指定する必要があります。
subscription-manager subscribe --pool=XYZ01234567
[root@server1 ~]# subscription-manager subscribe --pool=XYZ01234567
subscription-manager list --available
[root@server1 ~]# subscription-manager list --available
+-------------------------------------------+
Available Subscriptions
+-------------------------------------------+
ProductName: RHEL for Physical Servers
ProductId: MKT-rhel-server
PoolId: ff8080812bc382e3012bc3845ca000cb
Quantity: 10
Expires: 2011-09-20
--auto
オプションを使用してシステムにアタッチすることができます( register コマンドの --autosubscribe
オプションと類似しています)。
subscription-manager subscribe --auto
[root@server1 ~]# subscription-manager subscribe --auto
オプション | 説明 | 必須 |
---|---|---|
--pool=pool-id | システムにアタッチするサブスクリプションの ID を指定します。 | --auto が使用されていない限り必須 |
--auto | システムを最も適するサブスクリプションに自動的にアタッチします。 | 任意 |
--quantity=number | 複数のサブスクリプションをシステムにアタッチします。これは、数の上限が定義されるサブスクリプションに対応するのに使用されます (例 : 2 ソケットサーバー用のサブスクリプションを 2 つ使用して 4 ソケットマシンに対応する)。 | 任意 |
--servicelevel=None|Standard|Premium | そのマシンのサブスクリプションに使用するサービスレベルを設定します。これは、--auto オプションとだけ併用されます。 | 任意 |
15.3.2.2. コマンドラインからのサブスクリプションの削除
--all
オプションを指定して unsubscribe コマンドを実行すると、システムに現在アタッチされているすべての製品サブスクリプションとサブスクリプションプールが削除されます。
subscription-manager unsubscribe --all
[root@server1 ~]# subscription-manager unsubscribe --all
- 1 つの製品サブスクリプションを削除する場合は、製品証明書のシリアル番号を取得します。シリアル番号は、subscription#
.pem
ファイル (例 :392729555585697907.pem
) から、または list コマンドを使用して取得できます。以下は例になります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow subscription-manager list --consumed
[root@server1 ~]# subscription-manager list --consumed +-------------------------------------------+ Consumed Product Subscriptions +-------------------------------------------+ ProductName: High availability (cluster suite) ContractNumber: 0 SerialNumber: 11287514358600162 Active: True Begins: 2010-09-18 Expires: 2011-11-18
--serial
オプションを指定して subscription-manager ツールを実行し、証明書を指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow subscription-manager unsubscribe --serial=11287514358600162
[root@server1 ~]# subscription-manager unsubscribe --serial=11287514358600162
15.4. ベンダーサブスクリプションの引き換え
15.4.1. GUI によるサブスクリプションの引き換え
- Subscription Manager を起動します。以下は例になります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow subscription-manager-gui
[root@server ~]# subscription-manager-gui
- 必要に応じて、「GUI からの登録」の説明に従ってシステムを登録します。
- ウィンドウ左上にあるメニューを開き、 項目をクリックします。
- ダイアログウィンドウで、引き換えが完了した時に通知を送信するメールアドレスを入力します。引き換えプロセスでは、ベンダーに連絡して事前設定されたサブスクリプションに関する情報を受信するのに数分かかる可能性があるため、通知メッセージは Subscription Manager のダイアログウィンドウではなくメールで送信されます。
15.4.2. コマンドラインを使用したサブスクリプションの引き換え
subscription-manager redeem --email=jsmith@example.com
# subscription-manager redeem --email=jsmith@example.com
15.5. Subscription Asset Manager のアクティベーションキーからのサブスクリプションのアタッチ
subscription-manager register --username=jsmith --password=secret --org="IT Dept" --activationkey=abcd1234
# subscription-manager register --username=jsmith --password=secret --org="IT Dept" --activationkey=abcd1234
15.6. システムの優先条件の設定
- サブスクリプションのサービスレベル
- 使用するオペレーティングシステムのマイナーバージョン (X.Y)
15.6.1. UI での優先条件の設定
- Subscription Manager を開きます。
- System メニューを開きます。
- System Preferences メニュー項目を選択します。
- ドロップダウンメニューから、希望のサービスレベルアグリーメントの優先条件を選択します。すべてのアクティブなサブスクリプション基づいて、Red Hat アカウントで利用可能なサービスレベルのみが一覧表示されます。
- Release version ドロップダウンメニューで、オペレーティングシステムのリリースの優先条件を選択します。一覧表示されているバージョンだけが、アカウントにアクティブなサブスクリプションがある Red Hat Enterprise Linux バージョンです。
- 優先条件は保存され、今後のサブスクリプション操作に適用されます。ダイアログを閉じるには、をクリックします。
15.6.2. コマンドラインでのサービスレベルの設定
例15.5 サービスレベルの優先条件の設定
--list
オプションを使用して、システムで利用可能なサービスレベルを一覧表示します。
subscription-manager service-level --list
[root@server ~]# subscription-manager service-level --list
+-------------------------------------------+
Available Service Levels
+-------------------------------------------+
Standard
None
Premium
Self-Support
subscription-manager service-level --set=self-support
[root@server ~]# subscription-manager service-level --set=self-support
Service level set to: self-support
--show
オプションで表示されます。
[root#server ~]# subscription-manager service-level --show Current service level: self-support
[root#server ~]# subscription-manager service-level --show
Current service level: self-support
--servicelevel
オプションがあり、そのアクションの優先度を設定します。
例15.6 プレミアムサービスレベルのサブスクリプションの自動アタッチ
[root#server ~]# subscription-manager subscribe --auto --servicelevel Premium Service level set to: Premium Installed Product Current Status: ProductName: Red Hat Enterprise Linux 5 Server Status: Subscribed
[root#server ~]# subscription-manager subscribe --auto --servicelevel Premium
Service level set to: Premium
Installed Product Current Status:
ProductName: Red Hat Enterprise Linux 5 Server
Status: Subscribed
--servicelevel
オプションには、--autosubscribe
オプション(register 用)または --auto
オプション(サブスクライブ用)が必要です。指定したプールをアタッチする場合や、サブスクリプションをインポートする場合には使用できません。
15.6.3. コマンドラインでの優先オペレーティングシステムリリースバージョンの設定
例15.7 登録時のオペレーティングシステムリリースの設定
--release
オプションを使用して、システムの登録時に設定できます。これにより、リリースの優先条件が、登録時にシステムに選択されたサブスクリプションおよび自動アタッチされたサブスクリプションに適用されます。
--autosubscribe
オプションが必要です。これは、自動アタッチするサブスクリプションを選択するために使用される基準の 1 つであるためです。
[root#server ~]# subscription-manager register --autosubscribe --release=5.9 --username=admin@example.com...
[root#server ~]# subscription-manager register --autosubscribe --release=5.9 --username=admin@example.com...
例15.8 オペレーティングシステムリリースの優先条件の設定
[root#server ~]# subscription-manager release --list +-------------------------------------------+ Available Releases +-------------------------------------------+ 5.8 5.9 5Server
[root#server ~]# subscription-manager release --list
+-------------------------------------------+
Available Releases
+-------------------------------------------+
5.8
5.9
5Server
--set
は、利用可能なリリースバージョンの 1 つに優先条件を設定します。
[root#server ~]# subscription-manager release --set=5.9 Release version set to: 5.9
[root#server ~]# subscription-manager release --set=5.9
Release version set to: 5.9
15.6.4. Preference の削除
--unset
を使用します。たとえば、リリースバージョンの設定を解除するには、以下を実行します。
[root#server ~]# subscription-manager release --unset Release version set to:
[root#server ~]# subscription-manager release --unset
Release version set to:
- Subscription Manager を開きます。
- System メニューを開きます。
- System Preferences メニュー項目を選択します。
- 対応するドロップダウンメニューで、サービスレベルまたはリリースバージョンの値を空白行に設定します。
15.7. サブスクリプションの有効期限および通知の管理
図15.2 有効期限

図15.3 色分けされステータスビュー

subscription-manager list
[root@server ~]# subscription-manager list
+-------------------------------------------+
Installed Product Status
+-------------------------------------------+
ProductName: Red Hat Enterprise Linux Server
Status: Not Subscribed
Expires:
SerialNumber:
ContractNumber:
AccountNumber:
図15.4 サブスクリプション通知アイコン

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

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

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

パート IV. システム設定
第31章 コンソールアクセス
- このプログラムは、実行できない特定のプログラムを実行できます。
- これらは、ディスクへのアクセスに使用される特定のファイル(通常は特殊なデバイスファイル)にアクセスでき、ディスクにはアクセスできなくなります。
31.1. Ctrl+Alt+Delでのシャットダウンの無効化
/etc/inittab
は、コンソールで使用される Ctrl+Alt+Del キーの組み合わせに対して、システムがシャットダウンされるように設定され、再起動します。この機能を完全に無効にするには、/etc/inittab
の前にハッシュマーク(#
)を配置することで、以下の行をコメントアウトします。
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
- 上記の
/etc/inittab
行に -a オプションを追加して、以下のようにします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ca::ctrlaltdel:/sbin/shutdown -a -t3 -r now
ca::ctrlaltdel:/sbin/shutdown -a -t3 -r now
-a フラグはシャットダウンに対し、/etc/ shutdown.allow
ファイルを検索するように指示します。 /etc
にshutdown.allow
という名前のファイルを作成します。shutdown.allow
ファイルには、Ctrl+Alt+Del を使用してシステムをシャットダウンできるユーザーのユーザー名が一覧表示されます。shutdown.allow
ファイルのフォーマットは、以下のように 1 行に 1 つずつユーザー名の一覧です。Copy to Clipboard Copied! Toggle word wrap Toggle overflow stephen jack sophie
stephen jack sophie
shutdown.allow
ファイルの例では 、 ユーザーは Ctrl+Alt+Del を使用して コンソールからシステムをシャットダウンできます。鍵の組み合わせが使用されると、/etc/inittab
の shutdown -a
コマンドは、/etc/shutdown.allow
(または root)のユーザーが仮想コンソールにログインしているかどうかを確認します。ある場合は、システムのシャットダウンが続行されます。シャットダウンされていない場合は、エラーメッセージがシステムコンソールに書き込まれます。
shutdown.allow
の詳細は、man ページの shutdown を参照してください。
31.2. コンソールプログラムアクセスの無効化
rm -f /etc/security/console.apps/*
rm -f /etc/security/console.apps/*
rm -f /etc/security/console.apps/poweroff rm -f /etc/security/console.apps/halt rm -f /etc/security/console.apps/reboot
rm -f /etc/security/console.apps/poweroff
rm -f /etc/security/console.apps/halt
rm -f /etc/security/console.apps/reboot
31.3. コンソールの定義
pam_console.so
モジュールは、/etc/security/console.perms
ファイルを使用して、システムコンソールのユーザーのパーミッションを決定します。ファイルの構文は非常に柔軟です。これらの命令が適用されないようにファイルを編集できます。ただし、デフォルトの ファイルには以下のような行があります。
<console>=tty[0-9][0-9]* vc/[0-9][0-9]* :[0-9]\.[0-9] :[0-9]
<console>=tty[0-9][0-9]* vc/[0-9][0-9]* :[0-9]\.[0-9] :[0-9]
/dev/ttyS0
や /dev/ pts/2 などのデバイスのいずれかになります
。デフォルトでは、ローカルの仮想コンソールとローカル X サーバーがローカルとみなされることを定義しますが、ポート /dev/ttyS1
で隣のシリアルターミナルを local にみなす場合は、その行を変更して読み込むことができます。
<console>=tty[0-9][0-9]* vc/[0-9][0-9]* :[0-9]\.[0-9] :[0-9] /dev/ttyS1
<console>=tty[0-9][0-9]* vc/[0-9][0-9]* :[0-9]\.[0-9] :[0-9] /dev/ttyS1
31.4. コンソールからファイルにアクセスできるようにする
/etc/security/console.perms.d/50-default.perms
で定義されます。ファイルおよびデバイスのパーミッションを編集するには、/etc/security/console.perms.d/
に、指定したファイルセットに対する希望の設定を含む新しいデフォルトファイルを作成することが推奨されます。50-default. perms
を上書きするには、新しいデフォルトファイルの名前を 50 より大きい数で開始する必要があります(例:51
-default.perms)。
/etc/security/console. perms.d/
に 51-default
.perms という名前の新しいファイルを作成します。
touch /etc/security/console.perms.d/51-default.perms
touch /etc/security/console.perms.d/51-default.perms
perms
ファイル( 50-default.perms
)を開きます。最初のセクションでは、以下のような行を持つ デバイスクラス を定義します。
<floppy>=/dev/fd[0-1]* \ /dev/floppy/* /mnt/floppy* <sound>=/dev/dsp* /dev/audio* /dev/midi* \ /dev/mixer* /dev/sequencer \ /dev/sound/* /dev/beep \ /dev/snd/* <cdrom>=/dev/cdrom* /dev/cdroms/* /dev/cdwriter* /mnt/cdrom*
<floppy>=/dev/fd[0-1]* \
/dev/floppy/* /mnt/floppy*
<sound>=/dev/dsp* /dev/audio* /dev/midi* \
/dev/mixer* /dev/sequencer \
/dev/sound/* /dev/beep \
/dev/snd/*
<cdrom>=/dev/cdrom* /dev/cdroms/* /dev/cdwriter* /mnt/cdrom*
cdrom>
は CD-ROM ドライブを参照します。新しいデバイスを追加するには、デフォルトの 50-default.perms
ファイルで定義しないでください。代わりに、51-default.perms
に定義します。たとえば、スキャナーを定義するには、以下の行を 51-default.perms に追加します。
<scanner>=/dev/scanner /dev/usb/scanner*
<scanner>=/dev/scanner /dev/usb/scanner*
/dev/scanner
が実際にはスキャナーであり、ハードドライブなどの他のデバイスではないことを確認します。
/etc/security/console.perms.d/50-default.perms
の 2 番目のセクションで、以下のような行を定義します。
<console> 0660 <floppy> 0660 root.floppy <console> 0600 <sound> 0640 root <console> 0600 <cdrom> 0600 root.disk
<console> 0660 <floppy> 0660 root.floppy
<console> 0600 <sound> 0640 root
<console> 0600 <cdrom> 0600 root.disk
51-default.perms で以下のような行を追加します。
<console> 0600 <scanner> 0600 root
<console> 0600 <scanner> 0600 root
/dev/scanner
デバイスの所有権が 0600 になります(読み取り、書き込みのみ)。ログアウトすると、デバイスは root によって所有され、パーミッションは 0600 のままです(root のみが読み取り可能、書き込み可能)。
50-default.perms
ファイルを編集する こと はできません。50-default.perms
にすでに定義されているデバイスのパーミッションを編集するには、51
-default.perms にそのデバイスの必要なパーミッション定義を追加します。これにより、50-default.perms
で定義されているすべてのパーミッションが上書きされます。
31.5. 他のアプリケーションのコンソールアクセスの有効化
/usr /sbin/
にあるアプリケーションに対して のみ 機能するので、実行するアプリケーションが必要です。これを確認した後に、以下の手順を実行します。
- サンプル
foo
プログラムなどのアプリケーションの名前から、/usr/bin/consolehelper アプリケーションへのリンクを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow cd /usr/bin ln -s consolehelper foo
cd /usr/bin ln -s consolehelper foo
/etc/security/console.apps/foo
ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow touch /etc/security/console.apps/foo
touch /etc/security/console.apps/foo
/etc/pam.d/
に、foo
サービスの PAM 設定ファイルを作成します。これを行う簡単な方法は、halt サービスの PAM 設定ファイルをコピーしてから、動作を変更する場合はコピーを変更することです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow cp /etc/pam.d/halt /etc/pam.d/foo
cp /etc/pam.d/halt /etc/pam.d/foo
/etc/pam.d/foo
が /etc/pam.d/halt
のコピーである場合に、consolehelper はユーザーのパスワードを要求します。それ以外の場合は、/etc/pam.d/foo
で指定されている内容を正確に実行し、root 権限で /usr/sbin/foo
を実行します。
pam_timestamp
を使用して同じセッションから実行するように設定された他のアプリケーションは、そのユーザーに対して自動的に認証されます。ユーザーは root パスワードを再度入力する必要はありません。
pam
パッケージに含まれています。この機能を有効にするには、etc/pam.d/
の PAM 設定ファイルに以下の行を追加します。
auth include config-util account include config-util session include config-util
auth include config-util
account include config-util
session include config-util
/etc/pam.d/system-config-*
設定ファイルからコピーできます。これらの行は、PAM 設定ファイルの他の auth sufficient
session optional
行の 下 に追加する必要があります。
pam_timestamp
を使用するよう設定されたアプリケーションが Applications (パネルのメインメニュー)から正常に認証されると、GNOME または KDE デスクトップ環境を実行している場合は、パネルの通知エリアに

31.6. フロッピー
グループ
フロッピー
グループを使用して実行できます。選択したツールを使用して フロッピー
グループにユーザーを追加します。たとえば、gpasswd コマンドを使用して、フロッピー
グループにユーザー fred を追加できます。
gpasswd -a fred floppy
gpasswd -a fred floppy
第32章 sysconfig
ディレクトリー
/etc/sysconfig/
ディレクトリーには、Red Hat Enterprise Linux のさまざまなシステム設定ファイルが含まれています。
/etc/sysconfig/
ディレクトリーにあるファイル、それらの機能、およびそれらのコンテンツの概要を説明します。本章の情報を完了することは意図されていません。これらのファイルの多くには、非常に具体的な状況またはまれな状況でのみ使用されるさまざまなオプションがあるためです。
32.1. /etc/sysconfig/
ディレクトリーのファイル
/etc/sysconfig/
ディレクトリーにある ファイルについて説明します。ここに記載されていないファイルと追加のファイルオプションは、/usr/share/doc/initscripts- <version-number> /sysconfig.txt
ファイルにあります(< version-number > を initscripts
パッケージのバージョンに置き換えます)。または、/etc/rc.d/
ディレクトリーで initscripts を調べると役に立つことが証明されます。
/etc/sysconfig/
ディレクトリーに存在しない場合は、対応するプログラムがインストールされていない可能性があります。
32.1.1. /etc/sysconfig/amd
/etc/sysconfig/amd
ファイルには、amd が使用するさまざまなパラメーターが含まれています。これらのパラメーターを使用すると、ファイルシステムの自動マウントとアンマウントが可能になります。
32.1.2. /etc/sysconfig/apmd
/etc/sysconfig/apmd
ファイルは、pmd により使用され、中断または再開時に起動/停止/変更する電源設定を行います。このファイルは、ハードウェアが Advanced Power Management (APM)に対応しているかどうか、またはユーザーがシステムを設定してシステムを設定した場合に応じて、システムの起動時に apmd がどのように機能するかを設定します。apm デーモンは、Linux カーネル内の電源管理コードで動作する監視プログラムです。ノートパソコンやその他の電源関連の設定でバッテリーの電力を下げるようユーザーに警告することができます。
32.1.3. /etc/sysconfig/arpwatch
/etc/sysconfig/arpwatch
ファイルは、起動時に arpwatch デーモンに引数を渡すために使用されます。arpwatch デーモンは、イーサネット MAC アドレスと IP アドレスのペアのテーブルを維持します。デフォルトでは、このファイルは arpwatch プロセスの所有者をユーザー pcap
に設定し、すべてのメッセージを root メールキューに送信します。このファイルで利用可能なパラメーターの詳細は、arpwatch の man ページを参照してください。
32.1.4. /etc/sysconfig/authconfig
/etc/sysconfig/authconfig
ファイルは、ホストで使用される認証を設定します。これには、以下の行が 1 つ以上含まれます。
- USEMD5= <value& gt;。ここで、& lt;value> は以下のいずれかになります。
- はい - MD5 が認証に使用されます。
- 認証に MD5 は使用されません。
- USEKERBEROS= <value >。ここで、& lt;value& gt; は以下のいずれかになります。
- はい: Kerberos が認証に使用されます。
- いいえ: Kerberos は認証には使用されません。
- USELDAPAUTH= <value& gt;。ここで、& lt;value> は以下のいずれかになります。
- はい: LDAP が認証に使用されます。
- いいえ: 認証に LDAP は使用されません。
32.1.5. /etc/sysconfig/autofs
/etc/sysconfig/autofs
ファイルは、デバイスの自動マウントのカスタムオプションを定義します。このファイルは、自動マウントデーモンの動作を制御します。このデーモンは、ファイルシステムを使用する際に自動的にマウントし、非アクティブになってからアンマウントします。ファイルシステムには、ネットワークファイルシステム、CD-ROM、ディスケット、およびその他のメディアを含めることができます。
/etc/sysconfig/autofs
ファイルには以下が含まれる場合があります。
- LOCALOPTIONS=" <value> ", where & lt;value& gt; はマシン固有の自動マウントルールを定義する文字列です。デフォルト値は空の文字列("")です。
- DAEMONOPTIONS=" <value> "。ここで、< value > はデバイスをアンマウントしる前のタイムアウトの長さ(秒単位)です。デフォルト値は 60 秒("--timeout=60")です。
- UNDERSCORETODOT= <value > です。ここで、< value > は、ファイル名のアンダースコアをドットに変換するかどうかを制御するバイナリー値です。たとえば、auto_home を auto.home に、auto_mnt を auto.mnt に、それぞれ設定します。デフォルト値は 1 (true)です。
- DISABLE_DIRECT= <value > です。ここで、< value > は、直接マウントサポートを無効にするかどうかを制御するバイナリー値です。Linux 実装は Sun Microsystems の自動マウント機能に準拠しないためです。デフォルト値は 1 (true)で、Sun 自動マウント機能オプションの仕様構文との互換性を許可します。
32.1.6. /etc/sysconfig/clock
/etc/sysconfig/clock
ファイルは、システムハードウェアクロックから読み取られる値の解釈を制御します。
- utc = <value>。ここで、<value& gt; は以下のブール値のいずれかになります。
- true または yes: ハードウェアクロックは Universal Time に設定されます。
- false または no: ハードウェアクロックはローカルタイムに設定されます。
- ARC= <value>。ここで、& lt;value> は以下になります。
- false または no - この値は、通常の UNIX エポックが使用されていることを示します。その他の値は、Red Hat Enterprise Linux でサポートされていないシステムで使用されます。
- sm = <value& gt;。ここで、< ;value> は以下になります。
- false または no - この値は、通常の UNIX エポックが使用されていることを示します。その他の値は、Red Hat Enterprise Linux でサポートされていないシステムで使用されます。
- ZONE= &
lt;filename
> -/etc/localtime
がコピーされている/usr/share/zoneinfo
の下にあるタイムゾーンファイルです。ファイルには、以下のような情報が含まれています。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ZONE="America/New York"
ZONE="America/New York"
ZONE パラメーターは Time and Date Properties Tool (system-config-date)によって読み取られ、手動で編集してもシステムのタイムゾーンは変更されません。
- CLOCKMODE= <value >。ここで、& lt;value& gt; は以下のいずれかになります。
- GMT - クロックは Universal Time (グリニッジ標準時)に設定されます。
- ARC - ARC コンソールの 42-year 時間オフセットが有効(Alpha ベースのシステムのみ)。
32.1.7. /etc/sysconfig/desktop
/etc/sysconfig/desktop
ファイルは、新しいユーザーのデスクトップと、ランレベル 5 に入る際に実行するディスプレイマネージャーを指定します。
- DESKTOP=" <value> "。" <value>" は以下のいずれかになります。
- GNOME - GNOME デスクトップ環境を選択します。
- kde: KDE デスクトップ環境を選択します。
- DISPLAYMANAGER=" <value> "。" <value>" は以下のいずれかになります。
- GNOME - GNOME Display Manager を選択します。
- kde: KDE Display Manager を選択します。
- XDM - X Display Manager を選択します。
32.1.8. /etc/sysconfig/dhcpd
/etc/sysconfig/dhcpd
ファイルは、システムの起動時に dhcpd デーモンに引数を渡すために使用されます。dhcpd デーモンは、DHCP (Dynamic Host Configuration Protocol)および Internet Bootstrap Protocol (BOOTP)を実装します。DHCP および BOOTP は、ネットワーク上のマシンにホスト名を割り当てます。このファイルで利用可能なパラメーターの詳細は、dhcpd の man ページを参照してください。
32.1.9. /etc/sysconfig/exim
/etc/sysconfig/exim
ファイルを使用すると、メッセージを 1 つ以上のクライアントに送信し、必要なネットワーク上でメッセージをルーティングできます。ファイルは、exim の実行のデフォルト値を設定します。デフォルト値は、バックグラウンドデーモンとして実行され、何かがバックアップされている場合に 1 時間ごとにキューを確認するように設定されています。
- DAEMON= <value>。ここで、<value& gt; は以下のいずれかになります。
- はい: 受信メール
で
ポート 25 をリッスンするように設定する必要があります。yes は、Exim's -bd オプションの使用を意味します。 - no: 受信メールのポート 25 をリッスンするように設定しないでください。
- QUEUE=1h は -q$
QUEUE
の ように指定されます。-q オプションは、/etc/sysconfig/exim
が存在し、QUEUE
が空または定義されているかを示すように指定されません。
32.1.10. /etc/sysconfig/firstboot
etc/rc.d/init.d/firstboot
スクリプトを呼び出して、 セットアップエージェント を起動します。このアプリケーションを使用すると、ユーザーは最新の更新や追加のアプリケーションおよびドキュメントをインストールできます。
/etc/sysconfig/firstboot
ファイルは、 設定エージェント アプリケーションが後続の再起動では実行されないようにします。次回システムを起動したときに実行するには、/etc/sysconfig/firstboot
を削除し、で chkconfig --level 5 firstboot を実行します。
32.1.11. /etc/sysconfig/gpm
/etc/sysconfig/gpm
ファイルは、起動時に gpm デーモンに引数を渡すために使用されます。gpm デーモンはマウスサーバーであり、マウスアクセラレーションとマウスの途中クリックの貼り付けを可能にします。このファイルで利用可能なパラメーターの詳細は、glock の man ページを 参照し てください。デフォルトでは、DEVICE ディレクティブは /dev/input/mice
に設定されます。
32.1.12. /etc/sysconfig/hwconf
/etc/sysconfig/hwconf
ファイルには、kudzu がシステムで検出されたすべてのハードウェアと、使用されているドライバー、ベンダー ID、およびデバイス ID 情報が一覧表示されます。kudzu プログラムは、システム上の新しいハードウェアや変更されたハードウェアを検出し、設定します。/etc/sysconfig/hwconf
ファイルは手動で編集することは意図されていません。編集されると、デバイスは追加または削除中と突然表示される可能性があります。
32.1.13. /etc/sysconfig/i18n
/etc/sysconfig/i18n
ファイルは、デフォルトの言語、サポートされている言語、およびデフォルトのシステムフォントを設定します。以下に例を示します。
LANG="en_US.UTF-8" SUPPORTED="en_US.UTF-8:en_US:en" SYSFONT="latarcyrheb-sun16"
LANG="en_US.UTF-8"
SUPPORTED="en_US.UTF-8:en_US:en"
SYSFONT="latarcyrheb-sun16"
32.1.14. /etc/sysconfig/init
/etc/sysconfig/init
ファイルは、システムの起動プロセス中にシステムがどのように表示され、機能するかを制御します。
- BOOTUP= <value >。ここで、& lt;value& gt; は以下のいずれかになります。
- COL: 標準の色ブート表示で、デバイスおよびサービスの起動の成功または失敗が色分けされます。
- verbose: 正常または失敗のメッセージよりも、より多くの情報を提供する古いスタイル表示。
- それ以外のものは新しい表示を意味しますが、ANSI 形式はありません。
- RES_COL= <value >。ここで、< value > はステータスラベルを開始する画面のコラムの数に置き換えます。デフォルトでは 60 に設定されます。
- MOVE_TO_COL= <value > です。ここで、< value > は echo -en コマンドを使用して、カーソルを
RES_COL
行の値に移動します。 - SE --------|-----LOR_SUCCESS= <value > です。ここで、< value > は echo -en コマンドを使用して成功の色を設定します。デフォルトの色は green に設定されています。
- SE ----------|-----LOR_FAILURE= <value > です。ここで、< value > は echo -en コマンドを使用して障害の色を設定します。デフォルトの色は red に設定されます。
- SE --------|-----LOR_WARNING= <value > です。< value > は echo -en コマンドを使用して警告の色を設定します。デフォルトの色は yellow に設定されます。
- SENORMALLOR_NORMAL= <value& gt; です。ここで、< value > は echo -en で色を標準にリセットします。
- LOGLEVEL= <value>。ここで、< ;value > はカーネルの初期コンソールロギングレベルを設定します。デフォルトは 3 です。8 はすべての(デバッグを含む)を意味します。1 はカーネルパニックのみを意味します。syslogd デーモンは、この設定が開始されたら上書きされます。
- KeepAlive = <value>。ここで、<value& gt; は以下のブール値のいずれかになります。
- yes: インタラクティブモードのキーチェックを有効にします。
- no: インタラクティブモードのキーチェックを無効にします。
32.1.15. /etc/sysconfig/ip6tables-config
/etc/sysconfig/ip6tables-config
ファイルは、カーネルが起動時に IPv6 パケットフィルターリングを設定するのに使用する情報、または ip6tables サービスが起動するたびに保存されます。
/etc/sysconfig/ip6tables
ファイルに追加します。
service ip6tables save
service ip6tables save
32.1.16. /etc/sysconfig/iptables-config
/etc/sysconfig/iptables-config
ファイルは、ブート時またはサービスが起動するたびに、カーネルがパケットフィルターリングサービスを設定するのに使用される情報を保存します。
/etc/sysconfig/iptables
ファイルに追加します。
service iptables save
service iptables save
32.1.17. /etc/sysconfig/irda
/etc/sysconfig/irda
ファイルは、起動時にシステム上のインフラストラクチャーデバイスを設定する方法を制御します。
- IRDA= <value >。ここで、& lt;value& gt; は以下のブール値のいずれかになります。
- はい - 無 線は 実行され、ネットワーク接続を試みる別のノートブックコンピューターなど、インフラストラクチャーポートへの接続を試みているかどうかを確認するために定期的にチェックします。インフラストラクチャーデバイスがシステムで機能するには、この行を yes に設定する必要があります。
- no - irattach は実行されず、infrad デバイス通信を防ぎます。
- DEVICE= <value& gt;。ここで、<value > はインフラストラクチャー接続を処理するデバイス(通常はシリアルポート)です。シリアルデバイスエントリーの例は、
/dev/ttyS2
です。 - DON GLE= <value> です。ここで、< value > は、infrared 通信に使用されるドバルのタイプを指定します。この設定は、実際のインフラポートではなくシリアルドアグラムを使用するユーザーに存在します。dongle は、従来のシリアルポートに接続され、infrared 経由で通信するデバイスです。実際のインフラポートを持つノートブックは、アドオンのドロングを持つコンピューターよりもはるかに一般的であるため、この行はデフォルトではコメントアウトされています。サンプル dongle エントリーは
actisys+
です。 - DISCOVERY= <value>。ここで、<value& gt; は以下のブール値のいずれかになります。
- Yes: 検出モードで irattach を開始します。つまり、他のインフラされたデバイスをアクティブにチェックします。マシンが infrared 接続をアクティブに検索するには、これを有効にする必要があります(つまり、接続を開始しないピア)。
- no: 検出モードで irattach を開始しません。
32.1.18. /etc/sysconfig/kernel
/etc/sysconfig/kernel
設定ファイルは、システムの起動時にカーネルの選択を制御します。以下のデフォルト値を持つ 2 つのオプションがあります。
UPDATEDEFAULT=yes
- このオプションを使用すると、新規インストールしたカーネルがブートエントリーのデフォルトとして選択されます。
DEFAULTKERNEL=kernel
- このオプションは、デフォルトとして使用するパッケージタイプを指定します。
32.1.18.1. 古いカーネルバージョンをデフォルトとして維持する
- 以下のように、/etc/sysconfig/kernel の UPDATEDEFAULT オプションをコメントアウトします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow UPDATEDEFAULT=yes
# UPDATEDEFAULT=yes
32.1.18.2. カーネルデバッガーのデフォルトカーネルとしての設定
- 以下のように /etc/sysconfig/kernel 設定ファイルを編集します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow DEFAULTKERNEL=kernel-debug
DEFAULTKERNEL=kernel-debug
32.1.19. /etc/sysconfig/keyboard
/etc/sysconfig/keyboard
ファイルはキーボードの動作を制御します。以下の値を使用できます。
- KEYBOARDTYPE="sun|pc" の場合、sun は Sun キーボードが
/dev/kbd
にアタッチされ、pc は PS/2 ポートに接続された PS/2 キーボードを意味します。 - KEYTABLE=" <file> "。ここ で、<file > はキー割ファイルの名前です。例: KEYTABLE="us"キーテーブルとして使用できるファイルは、
/lib/kbd/keymaps/i386
で始まり、そこから異なるキーボードレイアウトにまとめられるので、<file > .kmap.gz
というラベルが付いています。KEYTABLE 設定に一致する/lib/kbd/keymaps/i386
の下にある最初のファイルが使用されます。
32.1.20. /etc/sysconfig/kudzu
/etc/sysconfig/kuzdu
ファイルは、システムの起動時に kudzu によってシステムハードウェアの安全なプローブをトリガーします。安全なプローブは、シリアルポートプロービングを無効にする 1 つです。
- SAFE= <value >。ここで、& lt;value& gt; は以下のいずれかになります。
- はい - kuzdu は安全なプローブを実行します。
- no: kuzdu は通常のプローブを実行します。
32.1.21. /etc/sysconfig/named
/etc/sysconfig/ named
ファイルは、起動時に名前付きデーモンに引数を渡すために使用されます。名前付き デーモンは、BIND バージョン 9 ディストリビューションである Berkeley Internet Name Domain (BIND)を実装する Domain Name System (DNS)サーバーです。このサーバーは、ネットワーク上の IP アドレスに関連付けられたホスト名の表を維持します。
- ROOTDIR="</some/where>" で、</ some/where > は、named が実行される設定済みの chroot 環境のフルディレクトリーパスを指します。最初に、この chroot 環境を設定する必要があります。詳細は、info chroot と入力します。
- OPTIONS="<value>"。ここで、< value > は named except
-t
の man ページに記載されているオプションです。-t
の代わりに、上記の ROOTDIR 行を使用します。
32.1.22. /etc/sysconfig/network
/etc/sysconfig/network
ファイルは、必要なネットワーク設定に関する情報を指定するために使用されます。以下の値を使用できます。
- NETWORKING= <value>。ここで、<value& gt; は以下のブール値のいずれかになります。
- はい: ネットワークを設定する必要があります。
- いいえ: ネットワークを設定しないでください。
- HOSTNAME= <value >。ここで、< value > は 完全修飾ドメイン 名(FQDN)である必要があります(例:
hostname.expample.com
)。必要なホスト名を指定できます。 - GATEWAY= <value>。ここ で、<value > はネットワークのゲートウェイの IP アドレスになります。
- GATEWAYDEV= <value>。ここ で、<value > は
eth0
などのゲートウェイデバイスです。同じサブネットに複数のインターフェイスがあり、それらのインターフェイスの 1 つがデフォルトゲートウェイへの優先ルートに必要な場合に、このオプションを設定します。 - NISDOMAIN= <value>。ここで、<value& gt; は NIS ドメイン名に置き換えます。
- NOZEROCONF= <value> です。< value> を true に設定すると、zeroconf ルートが無効になります。デフォルトでは、zeroconf ルート(169.254.0.0)はシステムの起動時に有効になります。zeroconf の詳細は、を参照して http://www.zeroconf.org/ ください。
32.1.23. /etc/sysconfig/nfs
/etc/sysconfig/nfs
ファイルを使用して、必要な RPC サービスを実行するポートを制御します。
/etc/sysconfig/nfs
は、デフォルトですべてのシステムに存在するわけではありません。存在しない場合は、これを作成して以下の変数を追加します(または、ファイルが存在する場合は、コメントを解除し、必要に応じてデフォルトのエントリーを変更します)。
MOUNTD_PORT=x
- mountd (rpc.mountd)が使用する TCP および UDP ポートを制御します。x を未使用のポート番号に置き換えます。
STATD_PORT=x
- ステータス(rpc.statd)が使用する TCP および UDP ポートを制御します。x を未使用のポート番号に置き換えます。
LOCKD_TCPPORT=x
- nlockmgr (rpc.lockd)が使用する TCP ポートを制御します。x を未使用のポート番号に置き換えます。
LOCKD_UDPPORT=x
- nlockmgr (rpc.lockd)が使用する UDP ポートを制御します。x を未使用のポート番号に置き換えます。
/var/log/messages
を確認してください。通常、すでに使用されているポート番号を指定すると、NFS は起動に失敗します。/etc/sysconfig/nfs
を編集した後、service nfs restart コマンドを実行して NFS サービスを再起動します。rpcinfo -p コマンドを実行して、変更を確認します。
- NFS 用に TCP および UDP ポート 2049 を許可します。
- TCP および UDP ポート 111 (portmap/sunrpc)を許可します。
MOUNTD_PORT="x"
で指定した TCP および UDP ポートを許可します。STATD_PORT="x"
で指定した TCP および UDP ポートを許可します。LOCKD_TCPPORT="x"
で指定した TCP ポートを許可します。LOCKD_UDPPORT="x"
で指定した UDP ポートを許可します。
32.1.24. /etc/sysconfig/ntpd
/etc/sysconfig/ntpd
ファイルは、起動時に ntpd デーモンに引数を渡すために使用されます。ntpd デーモンは、システムクロックを設定して維持し、インターネット標準タイムサーバーと同期します。Network Time Protocol (NTP)のバージョン 4 を実装します。このファイルで利用可能なパラメーターの詳細は、Web ブラウザーを使用して /usr/share/doc/ntp- <version> /ntpd.htm (ここでの <version
> は ntpdのバージョン番号)を表示します。デフォルトでは、このファイルは ntpd プロセスの所有者をユーザー ntp
に設定します。
32.1.25. /etc/sysconfig/radvd
/etc/sysconfig/radvd
ファイルは、システムの起動時に radvd デーモンに引数を渡すために使用されます。radvd デーモンは、ルーターの要求をリッスンし、IP バージョン 6 プロトコルのルーター広告を送信します。このサービスは、ネットワーク上のホストがこれらのルーター通知に基づいてデフォルトのルーターを動的に変更できるようにします。このファイルで利用可能なパラメーターの詳細は、radvd の man ページを参照してください。デフォルトでは、このファイルは radvd プロセスの所有者をユーザー radvd
に設定します。
32.1.26. /etc/sysconfig/samba
/etc/sysconfig/samba
ファイルは、起動時に smbd および nmbd デーモンに引数を渡すために使用されます。smbd デーモンは、ネットワーク上の Windows クライアントのファイル共有接続を提供します。nmbd デーモンは、IP 命名サービス上で NetBIOS を提供します。このファイルで利用可能なパラメーターの詳細は、smbd の man ページを参照してください。デフォルトでは、このファイルは smbd および nmbd をデーモンモードで実行するように設定します。
32.1.27. /etc/sysconfig/selinux
/etc/sysconfig/selinux
ファイルには、SELinux の基本的な設定オプションが含まれています。このファイルは、/etc/selinux/config
へのシンボリックリンクです。
32.1.28. /etc/sysconfig/sendmail
/etc/sysconfig/sendmail
ファイルを使用すると、1 つ以上のクライアントにメッセージを送信し、必要なネットワーク上でメッセージをルーティングできます。ファイルは、Sendmail アプリケーションを実行するデフォルト値を設定します。デフォルト値は、バックグラウンドデーモンとして実行され、何かがバックアップされている場合に 1 時間ごとにキューを確認するように設定されています。
- DAEMON= <value>。ここで、<value& gt; は以下のいずれかになります。
- はい: Sendmail は、受信メールのポート 25 をリッスンするように設定する必要があります。yes は、Sendmail の-bd オプションを使用することを意味します。
- no: Sendmail は、受信メールのポート 25 をリッスンするように設定しないでください。
- Sendmail に -q$ QUEUE として提供される QUEUE=1h。
/etc/sysconfig/sendmail
が存在し、QUEUE
が空または未定義の場合、-q オプションは Sendmail に指定されません。
32.1.29. /etc/sysconfig/spamassassin
/etc/sysconfig/spamassassin
ファイルは、システムの起動時に spamd デーモン(デーモン化されたバージョンの Spamassassin)に引数を渡すために使用されます。SpamAssassin は、電子メールのスパムフィルターアプリケーションです。利用可能なオプションの一覧は、spamd の man ページを参照してください。デフォルトでは、spamd がデーモンモードで実行し、ユーザー設定を作成し、自動作成ホワイトリスト(一括送信者を許可)を設定します。
32.1.30. /etc/sysconfig/squid
/etc/sysconfig/squid
ファイルは、起動時に squid デーモンに引数を渡すために使用されます。squid デーモンは、Web クライアントアプリケーションのプロキシーキャッシュサーバーです。squid プロキシーサーバーの設定に関する詳細は、Web ブラウザーを使用して /usr/share/doc/squid- <version> / ディレクトリーを開きます。<version
> は、システムにインストールされている squid バージョン番号に置き換えてください。デフォルトでは、このファイルは squid がデーモンモードで起動するように設定し、それ自体をシャットダウンするまでの時間を設定します。
32.1.31. /etc/sysconfig/system-config-securitylevel
/etc/sysconfig/system-config-securitylevel
ファイルには、ユーザーが選択したすべてのオプションが含まれます(system-config-securitylevel)。ユーザーは手動でこのファイルを変更しないでください。Security Level Configuration Tool の詳細は、「ファイアウォールの基本設定」 を参照してください。
32.1.32. /etc/sysconfig/system-config-selinux
/etc/sysconfig/system-config-selinux
ファイルには、SELinux Administration Tool (system-config-selinux)が最後に実行されたときにユーザーが選択するすべてのオプションが含まれます。ユーザーは手動でこのファイルを変更しないでください。SELinux 管理ツールと SELinux 全般に関する詳細情報は、「SELinux の概要」 を参照してください。
32.1.33. /etc/sysconfig/system-config-users
/etc/sysconfig/system-config-users
ファイルは、グラフィカルアプリケーション User Manager の設定ファイルです。このファイルは、root、デーモン、lp などのシステムユーザーを除外するために使用されます。このファイルは、 User Manager アプリケーションの > プルダウンメニューによって編集されるため、手動で編集することはできません。このアプリケーションの使用に関する詳細は、「」 を参照してください。
32.1.34. /etc/sysconfig/system-logviewer
/etc/sysconfig/system-logviewer
ファイルは、グラフィカル、インタラクティブなログ表示アプリケーション Log Viewer の設定ファイルです。このファイルは、ログビューアー アプリケーションの > プルダウンメニューによって編集されるため、手動で編集しないでください。このアプリケーションの使用に関する詳細は、40章ログファイル を参照してください。
32.1.35. /etc/sysconfig/tux
/etc/sysconfig/tux
ファイルは、カーネルベースの Web サーバーである Red Hat Content Accelerator (以前は TUXと呼ばれていました)の設定ファイルです。Red Hat Content Accelerator の設定に関する詳細は、Web ブラウザーを使用して /usr/share/doc/tux- <version> /tux/index.html ファイルを開きます。
< version > は、システムにインストールされている TUX のバージョン番号に置き換えてください。このファイルで利用可能なパラメーターは、/usr/share/doc/tux- <version> /tux/parameters.html
に一覧表示されます。
32.1.36. /etc/sysconfig/vncservers
/etc/sysconfig/vncservers
ファイルは、仮想ネットワークコンピューティング (VNC)サーバーを起動する方法を設定します。
- VNCSERVERS= <value >。ここで、< value > は "1 :fred" のように設定され、ディスプレイ :1 でユーザー fred に対して VNC サーバーを起動する必要があることを示します。リモート VNC サーバーへの接続を試みる前に、ユーザー fred が vncpasswd コマンドを使用して VNC パスワードを設定する必要があります。
32.1.37. /etc/sysconfig/xinetd
/etc/sysconfig/xinetd
ファイルは、起動時に xinetd デーモンに引数を渡すために使用されます。xinetd デーモンは、そのサービスのポートへのリクエストを受け取ると、インターネットサービスを提供するプログラムを起動します。このファイルで利用可能なパラメーターの詳細は、xinetd の man ページを参照してください。xinetd サービスの詳細は、「xinetd」 を参照してください。
32.2. /etc/sysconfig/
ディレクトリーのディレクトリー
/etc/sysconfig/
にあります。
apm-scripts/
- このディレクトリーには、APM suspend/resume スクリプトが含まれます。ファイルを直接編集しないでください。カスタマイズが必要な場合は、スクリプトの最後に呼び出される
/etc/sysconfig/apm-scripts/apmcontinue
という名前のファイルを作成します。/etc/sysconfig/apmd
を編集してスクリプトを制御することもできます。 cbq/
networking/
- このディレクトリーは Network Administration Tool (system-config-network)によって使用され、その内容は手動で編集しないでください。Network Administration Tool を使用したネットワークインターフェイスの設定に関する詳細は、17章Network Configuration を参照してください。
network-scripts/
eth0
イーサネットインターフェイスのifcfg-eth0
など、設定済みの各ネットワークインターフェイスのネットワーク設定ファイル。- ifup や ifdown などのネットワークインターフェイスをアップまたはダウンするために使用されるスクリプト。
- ifup-isdn や ifdown-isdn などの ISDN インターフェイスを起動するために使用されるスクリプト。
- 直接編集してはならないさまざまな共有ネットワーク機能スクリプト。
network-scripts
ディレクトリーの詳細は、16章Network Interfaces を参照してください。rhn/
- このディレクトリーは、RHN Classic によって管理されているレガシーシステムで利用できます。証明書ベースの Red Hat Network に対して登録されたシステムは、このディレクトリーを使用しません。
32.3. 関連情報
/etc/sysconfig/
ディレクトリー内のファイルの概要のみを目的としています。以下のソースには、より包括的な情報が含まれます。
32.3.1. インストールされているドキュメント
/usr/share/doc/initscripts- <version-number> /sysconfig.txt
: このファイルには、/etc/sysconfig/
ディレクトリーにあるファイルのより信頼できる一覧と、それらに使用できる設定オプションが含まれています。このファイル のパスにある <version-number > は、インストールされている initscripts パッケージのバージョンに対応します。
第33章 日付と時刻の設定
- デスクトップから アプリケーション(パネルのメインメニュー)>に移動します。
- デスクトップからツールバーで時間を右クリックし、を選択します。
- コマンド system-config-date、system-config-time、または dateconfig をシェルプロンプト( XTerm や GNOME ターミナルなど)に入力します。
33.1. 日時のプロパティー
図33.1 日時のプロパティー

[D]
33.2. ネットワークタイムプロトコル(NTP)プロパティー
図33.2 NTP プロパティー

[D]
33.3. タイムゾーンの設定
第34章 キーボードの設定
図34.1 キーボード設定ツール

[D]
第35章 X Window System
35.1. X11R7.1 リリース
/usr/
X11R6 ではなく /usr/
下に置かれるようになりました。/etc/X11/ ディレクトリーに
は、X クライアントおよびサーバーアプリケーションの設定ファイルが含まれます。これには、X サーバー自体、xfs フォントサーバー、X ディスプレイマネージャー、およびその他の多くのベースコンポーネントの設定ファイルが含まれます。
/etc/fonts/fonts.conf
です。フォントの設定および追加に関する詳細は、「fonts」 を参照してください。
/etc/X11/xorg.conf
)を手動で編集する必要がある場合があります。このファイルの構造に関する詳細は、「X サーバー設定ファイル」 を参照してください。
35.2. デスクトップ環境およびウィンドウマネージャー
35.2.1. デスクトップ環境
- GNOME - GTK+ 2 グラフィカルツールキットをベースとする Red Hat Enterprise Linux のデフォルトのデスクトップ環境。
- kde: Qt 3 グラフィカルツールキットに基づく代替デスクトップ環境。
35.2.2. ウィンドウマネージャー
- kwin
- KWin ウィンドウマネージャーは、KDE のデフォルトのウィンドウマネージャーです。これは、カスタムテーマをサポートする効率的なウィンドウマネージャーです。
- metacity
- Metacity ウィンドウマネージャーは、GNOME のデフォルトのウィンドウマネージャーです。これは、カスタムテーマもサポートするシンプルで効率的なウィンドウマネージャーです。このウィンドウマネージャーを実行するには、
metacity
パッケージをインストールする必要があります。 - mwm
- Motif Window Manager (mwm)は、基本的なスタンドアロンウィンドウマネージャーです。これはスタンドアロンのウィンドウマネージャーとなるように設計されているため、GNOME または KDE と併用しないでください。このウィンドウマネージャーを実行するには、
openmotif
パッケージをインストールする必要があります。 - twm
- 最小 タブウィンドウマネージャー (すべてのウィンドウマネージャーの最も基本的なツールセットを提供するtwm )は、スタンドアロンまたはデスクトップ環境で使用できます。X11R7.1 リリースの一部としてインストールされます。
~]# which twm /usr/bin/twm ~]# xinit -e /usr/bin/twm
~]# which twm
/usr/bin/twm
~]# xinit -e /usr/bin/twm
35.3. X サーバー設定ファイル
/usr/bin/Xorg
)です。関連する設定ファイルは /etc/X11/ ディレクトリーに
保存されます(シンボリックリンクである X - /usr/bin/Xorg
を参照)。X サーバーの設定ファイルは /etc/X11/xorg.conf
です。
/usr/lib/xorg/modules/
ディレクトリーには、実行時に動的にロードできる X サーバーモジュールが含まれます。デフォルトでは、/usr/lib/xorg/modules/
内の一部のモジュールのみが X サーバーによって自動的に読み込まれます。
/etc/X11/xorg.conf
で指定する必要があります。モジュールの読み込みの詳細は、「モジュール」 を参照してください。
35.3.1. xorg.conf
/etc/X11/xorg.conf ファイルを手動で編集する必要はほとんどありません
が、特にトラブルシューティングを行うときに、さまざまなセクションや任意のパラメーターを理解しておくと便利です。
35.3.1.1. 構造
/etc/X11/xorg.conf
ファイルは、システムハードウェアの特定の側面に対応するさまざまなセクションで設定されています。
/etc/X11/xorg.conf
ファイル内の一部のオプションはブール値スイッチを受け入れ、機能をオンまたはオフにします。許可されるブール値は以下のとおりです。
- 1、on、true、または yes - オプションをオンにします。
- 0、off、false、または no - オプションをオフにします。
/etc/X11/xorg.conf
ファイルに表示される順序で、より重要なセクションの一部になります。X サーバー設定ファイルの詳細は、xorg.conf
の man ページを参照してください。
35.3.1.2. Serverflags
Section "ServerFlags" Option "DontZap" "true" EndSection
Section "ServerFlags"
Option "DontZap" "true"
EndSection
- "DontZap" " <boolean> ": < boolean > の値が true に設定されている場合、この設定は Ctrl+Alt+Backspace キーの組み合わせを使用して X サーバーをすぐに終了しないようにします。
- "DontZoom" " <boolean> ": < boolean > の値が true に設定されている場合、この設定は Ctrl+Alt+Keypad-Plus+Ctrl+Alt+Keypad- キーの組み合わせを使用して設定されたビデオ解像度を循環しないようにします。
35.3.1.3. ServerLayout
Section "ServerLayout" Identifier "Default Layout" Screen 0 "Screen0" 0 0 InputDevice "Mouse0" "CorePointer" InputDevice "Keyboard0" "CoreKeyboard" EndSection
Section "ServerLayout"
Identifier "Default Layout"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
- identifier - この ServerLayout セクションに一意の名前を指定します。
- screen: X サーバーで使用する スクリーン セクションの名前を指定します。複数の スクリーン オプションが存在する場合があります。一般的な Screen エントリーの例を以下に示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Screen 0 "Screen0" 0 0
Screen 0 "Screen0" 0 0
この例の Screen エントリーの最初の番号(0)は、ビデオカードの最初のモニターコネクターまたは ヘッド が、識別子が Screen 0 の Screen セクションで指定されている設定を使用していること を示しています。Screen 0 の識別子を持つスクリーンセクションの例は、「スクリーン」 を参照してください。ビデオカードに複数のヘッドがある場合は、別の画面 エントリーと、異なる 画面セクション識別 子が必要です。Screen0 の右側にある 数字は、画面左上隅の絶対 X および Y コーディネートを指定します(デフォルトでは0 )。 - InputDevice: X サーバーで使用する InputDevice セクションの名前を指定します。少なくとも 2 つの InputDevice エントリーがあることが推奨されます。1 つはデフォルトのマウス用で、もう 1 つはデフォルトのキーボード用です。CorePointer オプションおよび CoreKeyboard オプションは、それらがプライマリーマウスとキーボードであることを示します。
- オプション " <option-name> " - セクションの追加パラメーターを指定するオプションのエントリー。ここで一覧表示されるオプションは ServerFlags セクションに記載されているオプションを上書きします。< ;option-name> を、
xorg.conf
の man ページのこのセクションに記載されている有効なオプションに置き換えます。
/etc/X11/xorg.conf
ファイルに複数の ServerLayout セクションを配置することができます。ただし、デフォルトでは、サーバーは最初に見つかったもののみを読み取ります。
35.3.1.4. ファイル
Section "Files" RgbPath "/usr/share/X11/rgb.txt" FontPath "unix/:7100" EndSection
Section "Files"
RgbPath "/usr/share/X11/rgb.txt"
FontPath "unix/:7100"
EndSection
- r gbPath: R GB の色データベースの場所を指定します。このデータベースは、X で有効な色名をすべて定義し、それらを特定の RGB 値に関連付けます。
- font Path: X サーバーが xfs フォントサーバーからフォントを取得するために接続する場所を指定します。デフォルトでは、FontPath は unix/:7100 です。これは、ポート 7100 のプロセス間通信(IPC)の UNIX ドメインソケットを使用してフォント情報を取得するように X サーバーに指示します。X およびフォントの詳細は、「fonts」 を参照してください。
- ModulePath: X サーバーモジュールを格納する代替ディレクトリーを指定するオプションのパラメーター。
35.3.1.5. モジュール
/usr/lib/xorg/modules/
ディレクトリーから以下のモジュールを自動的に読み込みます。
extmod
dbe
glx
freetype
type1
record
dri
/etc/X11/xorg.conf
に追加すると、X サーバーがデフォルトのモジュールでは なく、このセクションに記載されているモジュールを読み込むように指示します。
Section "Module" Load "fbdevhw" EndSection
Section "Module"
Load "fbdevhw"
EndSection
fbdevhw
を読み込むように X サーバーに指示します。
/etc/X11/xorg.conf
に追加する場合は、読み込むデフォルトモジュールと追加のモジュールを指定する必要があります。
35.3.1.6. inputDevice
Section "InputDevice" Identifier "Keyboard0" Driver "kbd" Option "XkbModel" "pc105" Option "XkbLayout" "us" EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pc105"
Option "XkbLayout" "us"
EndSection
- Identifier - この InputDevice セクションの一意の名前を指定します。これは必須のエントリーです。
- driver - デバイスに対して読み込むデバイスドライバー X の名前を指定します。
- option - デバイスに関する必要なオプションを指定します。マウスを指定して、デバイスに対して自動検出したデフォルトを上書きすることもできます。通常、
xorg.conf
にマウスを追加する際に、以下のオプションが含まれます。- protocol - IMPS/2 など、マウスで使用されるプロトコルを指定します。
- device - 物理デバイスの場所を指定します。
- Emulate3Buttons - 両方のマウスボタンを同時に押したときに、2 ボタンボタンを 3 ボタンのマウスのように動作させるかどうかを指定します。
このセクションの有効なオプションの一覧については、xorg.conf
の man ページを参照してください。
35.3.1.7. 監視
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
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
/etc/X11/xorg.conf
の Monitor セクションで値を手動で編集する場合は注意してください。不適切な値は、モニターを破損または破棄する可能性があります。安全な動作パラメーターの一覧は、モニターのドキュメントを参照してください。
- identifier - この Monitor セクションの一意の名前を指定します。これは必須のエントリーです。
- vendorName: モニターのベンダーを指定するオプションのパラメーター。
- modelName - モニターのモデル名を指定するオプションのパラメーターです。
- DisplaySize: モニターのイメージ領域の物理サイズ(ミリ秒単位)を指定するオプションのパラメーター。
- HorizSync: kHz のモニターと互換性のある水平同期頻度の範囲を指定します。これらの値は、X サーバーがモニターの組み込みまたは指定された モードライン エントリーの有効性を判断するのに役立ちます。
- VertRefresh - kHz でモニターによってサポートされる垂直更新頻度の範囲を指定します。これらの値は、X サーバーがモニターの組み込みモードまたは指定された モードライン エントリーの有効性を判断するのに役立ちます。
- モードライン: 特定の解像度でモニターの追加のビデオモードを指定するオプションのパラメーターで、特定の水平同期および垂直更新の解像度を使用します。モードライン エントリーの詳細は、
xorg.conf
の man ページを参照してください。 - オプション " <option-name> " - セクションの追加パラメーターを指定するオプションのエントリー。< ;option-name> を、
xorg.conf
の man ページのこのセクションに記載されている有効なオプションに置き換えます。
35.3.1.8. Device
Section "Device" Identifier "Videocard0" Driver "mga" VendorName "Videocard vendor" BoardName "Matrox Millennium G200" VideoRam 8192 Option "dpms" EndSection
Section "Device"
Identifier "Videocard0"
Driver "mga"
VendorName "Videocard vendor"
BoardName "Matrox Millennium G200"
VideoRam 8192
Option "dpms"
EndSection
- identifier - この デバイス セクションに一意の名前を指定します。これは必須のエントリーです。
- driver: ビデオカードを使用するために X サーバーが読み込む必要があるドライバーを指定します。ドライバーの一覧は、
hwdata
パッケージでインストールされる/usr/share/hwdata/videodrivers
を参照してください。 - vendorName: ビデオカードのベンダーを指定するオプションのパラメーター。
- BoardName - ビデオカードの名前を指定するオプションのパラメーターです。
- video ram: ビデオカードで利用可能な RAM の容量をキロバイトで指定する任意のパラメーター。この設定はビデオカードにのみ必要です。X サーバーはビデオ RAM の量を検出するためにプローブできません。
- Busid: ビデオカードのバスの場所を指定するエントリー。1 つのビデオカードしかないシステムでは BusID エントリーは任意であり、デフォルトの
/etc/X11/xorg.conf
ファイルに存在しない場合もあります。ただし、複数のビデオカードが搭載されているシステムでは、BusID エントリーが存在する必要があります。 - screen: Device セクションが設定するビデオカード上のモニターコネクターまたはヘッドを指定するオプションのエントリー。このオプションは、複数のヘッドを持つビデオカードにのみ役立ちます。複数のモニターが同じビデオカード上の異なるヘッドに接続されている場合は、個別の デバイス セクションが存在する必要があり、これらのセクションはそれぞれ異なる 画面 値を持っている必要があります。Screen エントリーの値は整数である必要があります。ビデオカードの最初のヘッドの値は 0 です。各ヘッドの値はこの値を 1 つ増やします。
- オプション " <option-name> " - セクションの追加パラメーターを指定するオプションのエントリー。< ;option-name> を、
xorg.conf
の man ページのこのセクションに記載されている有効なオプションに置き換えます。より一般的なオプションの 1 つが "dpms" (Power Management Signaling の VESA 標準の表示)で、モニターの Service Star エネルギーコンプライアンス設定を有効にします。
35.3.1.9. スクリーン
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
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
- Identifier - この スクリーン セクションの一意の名前を指定します。これは必須のエントリーです。
- device - デバイス セクションの一意名を指定します。これは必須のエントリーです。
- monitor - Monitor セクションの一意の名前を指定します。これは、
xorg.conf
ファイルで特定の Monitor セクションが定義されている場合にのみ必要になります。通常、モニターは自動的に検出されます。 - DefaultDepth: デフォルトの色深度をビットで指定します。上記の例では、16 (数千の色が提供される)がデフォルトです。承認できる DefaultDepth は 1 つだけですが、これは Xorg コマンドラインオプション -depth < n > を使用して上書きできます。< n > は追加の深さになります。
- サブセクション Display: 特定の色深度で利用可能な画面モードを指定します。Screen セクションには複数の Display サブセクションを含めることができます。これは、画面モードが自動的に検出されるため、完全にオプションです。このサブセクションは通常、自動検出モードを上書きするために使用されます。
- オプション " <option-name> " - セクションの追加パラメーターを指定するオプションのエントリー。< ;option-name> を、
xorg.conf
の man ページのこのセクションに記載されている有効なオプションに置き換えます。
35.3.1.10. DRI
xorg.conf
ファイルにこのセクションを追加すると、これらのデフォルトが上書きされます。
Section "DRI" Group 0 Mode 0666 EndSection
Section "DRI"
Group 0
Mode 0666
EndSection
35.4. fonts
35.4.1. fontconfig
/etc/fonts/fonts.conf
設定ファイルを使用することに注意してください。
~/.gtkrc.mine
に追加してフォントを設定できます。
style "user-font" { fontset = "<font-specification>" } widget_class "*" style "user-font"
style "user-font" {
fontset = "<font-specification>"
}
widget_class "*" style "user-font"
35.4.1.1. Fontconfig へのフォントの追加
- システム全体のフォントを追加するには、新しいフォントを
/usr/share/fonts/
ディレクトリーにコピーします。ユーザーインストールとデフォルトのフォントを区別するために、local/
などの新規サブディレクトリーを作成することが推奨されます。個別ユーザーのフォントを追加するには、新規フォントをユーザーのホームディレクトリーの.fonts/
ディレクトリーにコピーします。 - 以下の例のように、fc-cache コマンドを使用してフォント情報キャッシュを更新します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow fc-cache <path-to-font-directory>
fc-cache <path-to-font-directory>
このコマンドで、< path-to-font-directory > を新規フォント(/usr/share/fonts/local/
または /home/ <user> /.fonts/)を含むディレクトリーに置き換えます。
:
/// を Nautilus アドレスバーに入力し、そこに新しいフォントファイルをドラッグすることで、フォントをグラフィカルにインストールすることもできます。
.gz
拡張子で終わる場合、これは圧縮され、圧縮解除されるまで使用できません。これを行うには、gunzip コマンドを使用するか、ファイルをダブルクリックしてフォントを Nautilus のディレクトリーにドラッグします。
35.4.2. コア X フォントシステム
/etc/X11/xorg.conf
設定ファイルの Files セクション内の FontPath ディレクティブで指定されたフォントサーバーを検索します。FontPath エントリーの詳細は、「ファイル」 を参照してください。
35.4.2.1. XFS 設定
/etc/rc.d/init.d/xfs
スクリプトは、xfs サーバーを起動します。設定ファイル内で複数のオプションを設定できます( /etc/X11/fs/config
)。
- alternate-servers: このフォントサーバーが利用できない場合に使用する別のフォントサーバーの一覧を指定します。コンマ区切りは、一覧で各フォントサーバーを区切ります。
- catalogue: 使用するフォントパスの順序付きリストを指定します。コンマ区切りは、一覧の各フォントパスを区切ります。文字列 :unscaled を使用して、フォントパスの直後に :unscaled を使用して、そのパスのスケーリングされていないフォントを最初に読み込みます。次に、パス全体を再度指定して、他のスケーリングされたフォントもロードされるようにします。
- client-limit: フォントサーバーサービスのクライアントの最大数を指定します。デフォルトは 10 です。
- clone-self: クライアント制限 に達すると、フォントサーバーが新規バージョンのクローンを作成できるようにします。デフォルトでは、このオプションは on です。
- default-point-size: この値を指定しないフォントのデフォルトポイントサイズを指定します。このオプションの値は decipoints で設定されます。デフォルトの 120 は 12 ポイントフォントに対応します。
- ヒント
35.4.2.2.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mkdir /usr/share/fonts/local/
mkdir /usr/share/fonts/local/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow chkfontpath --add /usr/share/fonts/local/
chkfontpath --add /usr/share/fonts/local/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ttmkfdir -d /usr/share/fonts/local/ -o /usr/share/fonts/local/fonts.scale
ttmkfdir -d /usr/share/fonts/local/ -o /usr/share/fonts/local/fonts.scale
Copy to Clipboard Copied! Toggle word wrap Toggle overflow service xfs reload
service xfs reload
35.5.
35.5.1.
35.5.2.
/usr/share/doc/initscripts-<version-number>/sysconfig.txt
/usr/share/doc/initscripts-<version-number>/sysconfig.txt
35.6. 関連情報
35.6.1. インストールされているドキュメント
35.6.2. 便利な Web サイト
第36章
36.1.
図36.1

[D]
36.2.
図36.2

[D]
36.3.
図36.3

[D]
第37章 ユーザーとグループ
37.1.
図37.1 User Manager

[D]
37.1.1. 新規ユーザーの追加
図37.2

[D]
37.1.2.
図37.3 ユーザープロパティー

[D]
37.1.3. 新規グループの追加
図37.4 新規グループ

[D]
37.1.4.
図37.5

[D]
37.2.
37.2.1. コマンドラインからの設定
37.2.2. ユーザーの追加
Copy to Clipboard Copied! Toggle word wrap Toggle overflow useradd <username>
useradd <username>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow passwd <username>
passwd <username>
オプション | 説明 |
---|---|
-c '<comment>' | このオプションは、通常、ユーザーの氏名を指定するのに使用されます。 |
-d <home-dir> | |
-e <date> | |
-f <days> | パスワードが失効してからアカウントが無効になるまでの日数です。 |
-g <group-name> | グループは、ここで指定するよりも前に作成されている必要があります。 |
-G <group-list> | グループは、ここで指定する前に作成しておく必要があります。 |
-m | ホームディレクトリーがない場合は、これを作成します。 |
-M | ホームディレクトリーを作成しません。 |
-n | ユーザー用のユーザープライベートグループを作成しません。 |
-r | |
-p <password> | |
-s | |
-u <uid> |
37.2.3.
groupadd <group-name>
groupadd <group-name>
オプション | 説明 |
---|---|
-g <gid> | |
-r | |
-f |
37.2.4.
オプション | 説明 |
---|---|
-m <days> | |
-M <days> | このオプションで指定した日数と、-d オプションで指定した日数を足した日数が、現在の日数より少ない場合、ユーザーはアカウントを使用する前にパスワードを変更する必要があります。 |
-d <days> | |
-I <days> | パスワードの有効期限後、アカウントをロックするまでの非アクティブ日数を指定します。 |
-E <date> | アカウントがロックされる日付を YYYY-MM-DD のフォーマットで指定します。日付の代わりに、1970 年 1 月 1 日からの日数を使うこともできます。 |
-W <days> | パスワードの有効期限の何日前にユーザーに警告を発するかを指定します。 |
-l | 現在のアカウントエージングの設定を一覧表示します。 |
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Python 2.4.3 (#1, Jul 21 2006, 08:46:09) [GCC 4.1.1 20060718 (Red Hat 4.1.1-9)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>
Python 2.4.3 (#1, Jul 21 2006, 08:46:09) [GCC 4.1.1 20060718 (Red Hat 4.1.1-9)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow import crypt print crypt.crypt("<password>","<salt>")
import crypt print crypt.crypt("<password>","<salt>")
Copy to Clipboard Copied! Toggle word wrap Toggle overflow usermod -p "<encrypted-password>" <username>
usermod -p "<encrypted-password>" <username>
これを行うには、以下のコマンドを使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow usermod -p "" username
usermod -p "" username
Copy to Clipboard Copied! Toggle word wrap Toggle overflow chage -d 0 username
chage -d 0 username
このコマンドは、パスワードが最後に変更された日付の値をエポック (1970 年 1 月 1 日) に設定します。この値は、パスワードエージングポリシーがある場合、それに関係なく、パスワードの即時期限切れを強制します。
37.2.5. プロセスの説明
- この行には以下の特徴があります。
- この行には以下の特徴があります。
- 注記
- パスワードは有効期限なしで設定されています。
juan
という名前のグループ用の新しい行が/etc/gshadow
に作成されます。この行には以下の特徴があります。- グループ名
juan
で始まります。 - 感嘆符(
!
)が、グループをロックする/etc/gshadow
ファイルのパスワードフィールドに表示されます。 - その他のフィールドはすべて空白です。
- ユーザー
juan
のディレクトリーが/home/
ディレクトリー内に作成されます。このディレクトリーは、ユーザーjuan
およびグループjuan
が所有しています。ただし、ユーザーjuan
に対して のみ 読み取り、書き込み、実行権限があります。その他のパーミッションは拒否されます。 - (デフォルトユーザー設定を含む)
/etc/skel/
ディレクトリー内のファイルは、新しい/home/juan/
ディレクトリーにコピーされます。
juan
という名前のロックされたアカウントがシステム上に存在します。このアカウントをアクティブにするには、管理者が passwd コマンドを使用して、アカウントにパスワードを割り当てる必要があります。また、必要に応じて、パスワードのエージングガイドラインを設定します。
37.3. 標準ユーザー
/etc/passwd
ファイルで設定されている標準ユーザーを、すべて のインストールで一覧表示します。この表の groupid (GID)は、ユーザーの プライマリーグループ です。標準グループの一覧は、「標準グループ」 を参照してください。
User | UID | GID | ホームディレクトリー | シェル |
---|---|---|---|---|
root | 0 | 0 | /root | /bin/bash |
bin | 1 | 1 | /bin | /sbin/nologin |
daemon | 2 | 2 | /sbin | /sbin/nologin |
adm | 3 | 4 | /var/adm | /sbin/nologin |
lp | 4 | 7 | /var/spool/lpd | /sbin/nologin |
sync | 5 | 0 | /sbin | /bin/sync |
shutdown | 6 | 0 | /sbin | /sbin/shutdown |
halt | 7 | 0 | /sbin | /sbin/halt |
8 | 12 | /var/spool/mail | /sbin/nologin | |
news | 9 | 13 | /etc/news | |
ucp | 10 | 14 | /var/spool/uucp | /sbin/nologin |
operator | 11 | 0 | /root | /sbin/nologin |
games | 12 | 100 | /usr/games | /sbin/nologin |
Gopher | 13 | 30 | /var/gopher | /sbin/nologin |
ftp | 14 | 50 | /var/ftp | /sbin/nologin |
nobody | 99 | 99 | / | /sbin/nologin |
rpm | 37 | 37 | /var/lib/rpm | /sbin/nologin |
vcsa | 69 | 69 | /dev | /sbin/nologin |
dbus | 81 | 81 | / | /sbin/nologin |
ntp | 38 | 38 | /etc/ntp | /sbin/nologin |
カナナ | 39 | 39 | /var/lib/canna | /sbin/nologin |
nscd | 28 | 28 | / | /sbin/nologin |
rpc | 32 | 32 | / | /sbin/nologin |
postfix | 89 | 89 | /var/spool/postfix | /sbin/nologin |
mailman | 41 | 41 | /var/mailman | /sbin/nologin |
named | 25 | 25 | /var/named | /bin/false |
amanda | 33 | 6 | var/lib/amanda/ | /bin/bash |
postgres | 26 | 26 | /var/lib/pgsql | /bin/bash |
exim | 93 | 93 | /var/spool/exim | /sbin/nologin |
sshd | 74 | 74 | /var/empty/sshd | /sbin/nologin |
rpcuser | 29 | 29 | /var/lib/nfs | /sbin/nologin |
nsfnobody | 65534 | 65534 | /var/lib/nfs | /sbin/nologin |
pvm | 24 | 24 | /usr/share/pvm3 | /bin/bash |
apache | 48 | 48 | /var/www | /sbin/nologin |
xfs | 43 | 43 | /etc/X11/fs | /sbin/nologin |
gdm | 42 | 42 | /var/gdm | /sbin/nologin |
HTT | 100 | 101 | /usr/lib/im | /sbin/nologin |
mysql | 27 | 27 | /var/lib/mysql | /bin/bash |
webalizer | 67 | 67 | /var/www/usage | /sbin/nologin |
mailnull | 47 | 47 | /var/spool/mqueue | /sbin/nologin |
smmsp | 51 | 51 | /var/spool/mqueue | /sbin/nologin |
squid | 23 | 23 | /var/spool/squid | /sbin/nologin |
ldap | 55 | 55 | /var/lib/ldap | /bin/false |
netdump | 34 | 34 | /var/crash/ | /bin/bash |
pcap | 77 | 77 | /var/arpwatch | /sbin/nologin |
radiusd | 95 | 95 | / | /bin/false |
radvd | 75 | 75 | / | /sbin/nologin |
quagga | 92 | 92 | /var/run/quagga | /sbin/login |
wnn | 49 | 49 | /var/lib/wnn | /sbin/nologin |
dovecot | 97 | 97 | /usr/libexec/dovecot | /sbin/nologin |
37.4. 標準グループ
Group | GID | Members |
---|---|---|
root | 0 | root |
bin | 1 | root、bin、daemon |
daemon | 2 | root、bin、daemon |
sys | 3 | root、bin、adm |
adm | 4 | root, adm, daemon |
tty | 5 | |
disk | 6 | root |
lp | 7 | daemon、lp |
mem | 8 | |
kmem | 9 | |
ホイール | 10 | root |
12 | mail、postfix、exim | |
news | 13 | news |
ucp | 14 | ucp |
man | 15 | |
games | 20 | |
Gopher | 30 | |
dip | 40 | |
ftp | 50 | |
lock | 54 | |
nobody | 99 | |
users | 100 | |
rpm | 37 | |
utmp | 22 | |
floppy | 19 | |
vcsa | 69 | |
dbus | 81 | |
ntp | 38 | |
カナナ | 39 | |
nscd | 28 | |
rpc | 32 | |
postdrop | 90 | |
postfix | 89 | |
mailman | 41 | |
exim | 93 | |
named | 25 | |
postgres | 26 | |
sshd | 74 | |
rpcuser | 29 | |
nfsnobody | 65534 | |
pvm | 24 | |
apache | 48 | |
xfs | 43 | |
gdm | 42 | |
HTT | 101 | |
mysql | 27 | |
webalizer | 67 | |
mailnull | 47 | |
smmsp | 51 | |
squid | 23 | |
ldap | 55 | |
netdump | 34 | |
pcap | 77 | |
quaggavt | 102 | |
quagga | 92 | |
radvd | 75 | |
slocate | 21 | |
wnn | 49 | |
dovecot | 97 | |
radiusd | 95 |
37.5. ユーザープライベートグループ
/etc/bashrc
ファイルで設定します。従来の UNIX システムでは、umask は 022 に設定されています。これにより、ファイルまたはディレクトリーを作成したユーザーのみが変更できるようになりました。このスキームでは、作成者のグループ のメンバーなど、他のすべての ユーザーは変更を加えることはできません。ただし、UPG スキームでは、すべてのユーザーがそれぞれプライベートグループを持つため、このグループ保護は必須ではなくなりました。
37.5.1. グループディレクトリー
/usr/share/emacs/site-lisp/
ディレクトリーのファイルを作業する必要があるとします。ディレクトリーの変更に信頼されているユーザーもいますが、誰でも信頼されているとは限りません。以下のコマンドのように、emacs
グループを作成します。
groupadd emacs
groupadd emacs
emacs
グループに関連付けるには、以下を入力します。
chown -R root.emacs /usr/share/emacs/site-lisp
chown -R root.emacs /usr/share/emacs/site-lisp
gpasswd -a <username> emacs
gpasswd -a <username> emacs
chmod 775 /usr/share/emacs/site-lisp
chmod 775 /usr/share/emacs/site-lisp
emacs
)。以下のコマンドを使用します。
chmod 2775 /usr/share/emacs/site-lisp
chmod 2775 /usr/share/emacs/site-lisp
emacs
グループのすべてのメンバーが /usr/share/emacs/site-lisp/
ディレクトリーにファイルを作成および編集できます。
37.6. シャドウパスワード
shadow-utils
パッケージで提供) シャドウパスワード を使用することが重要です。これにより、システム認証ファイルのセキュリティーが強化されます。このため、インストールプログラムでは、デフォルト設定でシャドウパスワードを有効にしています。
- 暗号化されたパスワードハッシュを、誰でも読み取り可能な
/etc/passwd
ファイルから、root ユーザーのみが読み取り可能な/etc/shadow
に移動することで、システムのセキュリティーを向上させます。 - パスワードのエージングに関する情報を保存します。
/etc/login.defs
ファイルを使用してセキュリティーポリシーを適用できます。
shadow-utils
パッケージが提供するほとんどのユーティリティーは、シャドウパスワードが有効になっているかどうかに関係なく適切に機能します。ただし、パスワードエージングの情報は /etc/shadow
ファイルに排他的に保存されるため、パスワードのエージング情報を作成または変更するコマンドは動作しません。
- chage
- gpasswd
- /usr/sbin/usermod
-e
オプションまたは-f
オプション - /usr/sbin/useradd
-e
オプションまたは-f
オプション
37.7. 関連情報
37.7.1. インストールされているドキュメント
- 関連する man ページ:ユーザーおよびグループの管理に関連するさまざまなアプリケーションおよび設定ファイルに関する man ページが多数あります。より重要な man ページの一部を以下に示します。
- ユーザーおよびグループの管理アプリケーション
- man chage - パスワードのエージングポリシーとアカウントの有効期限を変更するコマンドです。
- man gpasswd:
/etc/group
ファイルを管理するコマンドです。 - man groupadd - グループを追加するコマンドです。
- man grpck:
/etc/group
ファイルを検証するコマンドです。 - man groupdel - グループを削除するコマンドです。
- man groupmod - グループメンバーシップを修正するコマンドです。
- man pwck -
/etc/passwd
ファイルおよび/etc/shadow
ファイルを検証するコマンドです。 - man pwconv - 標準パスワードをシャドウパスワードに変換するツールです。
- man pwunconv - シャドウパスワードを標準パスワードに変換するツールです。
- man useradd: ユーザーを追加するコマンドです。
- man userdel: ユーザーを削除するコマンドです。
- man usermod - ユーザーを修正するコマンドです。
- 設定ファイル
- man 5 group - システムのグループ情報を含むファイルです。
- man 5 passwd - システムのユーザー情報を含むファイルです。
- man 5 shadow - システムのパスワードおよびアカウントの有効期限情報を含むファイルです。
第38章 プリンターの設定
cupsd.conf
の man ページには、CUPS サーバーの設定が記載されています。これには、SSL
サポートを有効にするためのディレクティブが含まれます。ただし、CUPS では使用されるプロトコルバージョンのコントロールが許可されません。『Resolution for POODLE SSLv3.0 vulnerability (CVE-2014-3566) for components that do not allow SSLv3 to be disabled via configuration settings (設定設定で SSLv3 を無効にできないコンポーネントの POODLE SSLv3』.0 脆弱性(CVE-2014-3566)の解決)で説明されている脆弱性により、Red Hat はセキュリティーのためにこれに依存しないことを推奨します。stunnel を使用してセキュアなトンネルを提供し、SSLv3
を無効にすることが推奨されます。
図38.1 プリンター設定ツール

[D]
- Windows™ マシンに接続されているプリンターなど)。: SMB ネットワーク上でプリンターを共有する別のシステムに接続されているプリンター(Microsoft
38.1. ローカルプリンターの追加
図38.2 プリンターの追加

[D]
図38.3 ローカルプリンターの追加

[D]
38.2. IPP プリンターの追加
図38.4 IPP プリンターの追加

[D]
38.3. Samba (SMB)プリンターの追加
図38.5 SMB プリンターの追加

[D]

guest
で、Samba サーバーの場合は nobody
です。
38.4. JetDirect プリンターの追加
図38.6 JetDirect プリンターの追加

[D]
- hostname - JetDirect プリンターのホスト名または IP アドレス。
- ポート 番号 - 印刷ジョブをリッスンする JetDirect プリンターのポート。デフォルトのポートは 9100 です。
38.5. プリンターモデルの選択と完了
- データベースからプリンターを選択 - このオプションを選択した場合は、メーカー の一覧からプリンターの 製造元 を選択します。プリンターの製造元が一覧にない場合は、Generic を選択します。
- PPD ファイルの提供 - PPD (PostScript Printer Description)ファイルもプリンターで提供できます。このファイルは通常、製造元によって提供されます。PPD ファイルで提供される場合は、このオプションを選択し、オプションの説明の下にあるブラウザーバーを使用して PPD ファイルを選択できます。
図38.7 プリンターモデルの選択

[D]
38.5.1. プリンター設定の確認
38.6. テストページの印刷
38.7. 既存プリンターの修正
38.7.1. 設定 タブ
図38.8 設定タブ

[D]
38.7.2. ポリシー タブ
図38.9 ポリシータブ

[D]
38.7.3. アクセス制御 タブ
図38.10 アクセス制御タブ

[D]
38.7.4. プリンター および ジョブオプションタブ
図38.11 プリンターオプションタブ

[D]
- ページサイズ: ペーパーのサイズを選択できます。オプションには、US Letter、US Legal、A3、および A4 が含まれます。
- メディアソース: デフォルトでは Automatic に設定されます。別のトレイからの書籍を使用するように、このオプションを変更します。
- メディアタイプ - 文書タイプを変更できます。オプションには、Plain、thick、bond、および transparent が含まれます。
- Resolution - 印刷の品質と詳細を設定します。デフォルトは、inch (dpi)ごとに 300 のドットです。
- Toner Saving - プリンターがリソースを節約するために少ないトナーを使用してリソースを節約するかどうかを選択します。
38.8. 印刷ジョブの管理
図38.12 GNOME 印刷の状態

[D]
例38.1 lpq 出力の例
Rank Owner/ID Class Job Files Size Time active user@localhost+902 A 902 sample.txt 2050 01:20:46
Rank Owner/ID Class Job Files Size Time
active user@localhost+902 A 902 sample.txt 2050 01:20:46
sample.txt
を出力します。印刷フィルターはファイルのタイプを決定し、プリンターが理解できる形式に変換します。
38.9. 関連情報
38.9.1. インストールされているドキュメント
- マップ lpr: コマンドラインからのファイルの印刷を可能にする lpr コマンドの man ページです。
- man lprm: プリントキューから印刷ジョブを削除するためのコマンドラインユーティリティーの man ページです。
- man mpage - 1 つのドキュメントで複数のページを印刷するためのコマンドラインユーティリティーの man ページです。
- man cupsd: CUPS プリンターデーモンの man ページです。
- man cupsd.conf: CUPS プリンターデーモン設定ファイルの man ページです。
- man classes.conf: CUPS のクラス設定ファイルの man ページです。
38.9.2. 便利な Web サイト
- http://www.linuxprinting.org: 『GNU/Linux Printing』 には、Linux での印刷に関する多くの情報が含まれています。
- http://www.cups.org/ - CUPS のドキュメント、FAQ、および newsgroups。
第39章 自動タスク
39.1. Cron
vixie-cron
RPM パッケージがインストールされ、crond サービスが実行されている必要があります。パッケージがインストールされているかを確認するには、rpm -q vixie-cron コマンドを使用します。サービスが実行されているかどうかを確認するには、コマンド /sbin/service crond status を使用します。
39.1.1. Cron ジョブの設定
/etc/crontab
の主な設定ファイルには、以下の行が含まれます。
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
SHELL
変数は、使用するシェル環境(この例では bash シェル)をシステムに指示しますが、PATH
変数はコマンドの実行に使用するパスを定義します。cron ジョブの出力は、MAILTO
変数で定義されたユーザー名に電子メールで送信されます。MAILTO
変数が空の文字列(MAILTO="")
として定義されている場合、電子メールは送信されません。HOME
変数を使用すると、コマンドまたはスクリプトの実行時に使用するホームディレクトリーを設定できます。
/etc/crontab
ファイルの各行はジョブを表し、以下の形式になります。
minute hour day month dayofweek command
minute hour day month dayofweek command
minute
- 0 から 59 までの整数時間
- 0 から 23 までの整数day
: 1 から 31 までの整数(月を指定する場合は有効な日である必要があります)month
- 1 から 12 までの任意の整数(または jan や feb などの月の短縮名)dayOfWeek - 0 から 7 までの
整数。0 または 7 は日曜日(sun または mon などの曜日の短縮名)を表します。command
- 実行するコマンド(コマンドは ls /proc >> /tmp/proc などのコマンド、またはカスタムスクリプトを実行するコマンドのいずれかになります)
1-4
は整数 1、2、3、および 4 を意味します。
3, 4, 6, 8
は、これらの 4 つの特定の整数を示します。
/<integer>
で範囲に従うと、整数値は範囲内でスキップできます。たとえば、0-59/2
を使用して、分フィールドで他のすべての分を定義できます。ステップ値はアスタリスクと併用することもできます。たとえば、月のフィールドに */3
の値を使用して、3 カ月ごとにジョブを実行できます。
/etc/crontab
ファイルにあるように、run-parts スクリプトは、/etc/cron.hourly/
、/etc/cron.daily/
、/etc/ cron.weekly/、および /
etc/cron.monthly/
ディレクトリーのスクリプトを、時、毎日、毎週、毎月ごとに実行します。これらのディレクトリーのファイルはシェルスクリプトである必要があります。
/etc/cron.d/
ディレクトリーに追加できます。このディレクトリーのすべてのファイルは、/etc/crontab
と同じ構文を使用します。例については、例39.1「/etc/crontab の例」 を参照してください。
例39.1 /etc/crontab の例
record the memory usage of the system every monday at 3:30AM in the file /tmp/meminfo run custom script the first day of every month at 4:10AM
# record the memory usage of the system every monday
# at 3:30AM in the file /tmp/meminfo
30 3 * * mon cat /proc/meminfo >> /tmp/meminfo
# run custom script the first day of every month at 4:10AM
10 4 1 * * /root/scripts/backup.sh
/var/spool/cron/
ディレクトリーに保存され、作成したユーザーのユーザー名を使用して実行されます。crontab をユーザーとして作成するには、そのユーザーとしてログインし、コマンド crontab -e を入力して VISUAL
または EDITOR
環境変数で指定されたエディターを使用してユーザーの crontab を編集します。このファイルは、/etc/crontab
と同じ形式を使用します。crontab への変更が保存されると、crontab はユーザー名に従って保存され、ファイル /var/spool/cron/ユーザー名 に書き込まれます
。
/etc/crontab
ファイル、/etc/cron.d/
ディレクトリー、および /var/spool/cron/
ディレクトリーをチェックします。変更が見つかった場合は、メモリーに読み込まれます。そのため、crontab ファイルを変更した場合は、デーモンを再起動する必要はありません。
/etc/sysconfig/run-parts
ファイルで設定することができます。
RANDOMIZE
:1
に設定すると、ランダム化機能が有効になります。0
に設定すると、cron ジョブのランダム化は無効になります。RANDOM
- 初期ランダムシードを指定します。1
以上の整数値に設定する必要があります。RANDOMTIME
:1
以上の整数値に設定すると、追加のランダム化レベルが提供されます。
例39.2 /etc/sysconfig/run-parts の例 - Job Randomization の設定
RANDOMIZE=1 RANDOM=4 RANDOMTIME=8
RANDOMIZE=1
RANDOM=4
RANDOMTIME=8
39.1.2. Cron へのアクセスの制御
/etc/cron.allow
ファイルおよび /etc/cron.deny
ファイルは、cron へのアクセスを制限するために使用されます。両方のアクセス制御ファイルの形式は、各行の 1 つのユーザー名です。空白はいずれのファイルでも許可されません。アクセス制御ファイルが変更された場合、cron デーモン(crond)を再起動する必要はありません。アクセス制御ファイルは、ユーザーが cron ジョブの追加または削除を試みるたびに読み込まれます。
cron.allow
ファイルが存在する場合は、そこに記載されているユーザーのみが cron を使用でき、cron.deny
ファイルは無視されます。
cron.allow
が存在しない場合は、cron.deny
に記載されているユーザーは cron を使用できません。
39.1.3. サービスの起動と停止
39.2. at および Batch
at
RPM パッケージがインストールされ、atd サービスが実行されている必要があります。パッケージがインストールされているかを確認するには、rpm -q at コマンドを使用します。サービスが実行されているかどうかを確認するには、コマンド /sbin/service atd status を使用します。
39.2.1. at ジョブの設定
- hh:MM 形式:たとえば、04:00 は 4:00 a.m を指定します。時間がすでに経過している場合は、指定した日に実行されます。
- midnight - 12:00 a.m を指定します。
- noon - 12:00 p.m を指定します。
- teatime - 4:00 p.m を指定します。
- 月名日の形式:たとえば、2002 年 1 月 15 日は 2002 年 1 月 15 日を指定します。年は任意です。
- MMDDYY、MM/DD/YY、または MM.DD.YY 形式:たとえば、2002 年 1 月 15 日の場合は 011502 になります。
- now + time: 時間は分単位、時間、日、または週単位です。たとえば、now + 5 days では、コマンド を 5 日間同時に実行するように指定します。
/usr/share/doc/at- <version> /timespec
テキストファイルを参照してください。
at>
プロンプトが表示されます。実行するコマンドを入力し、Enter を押して Ctrl+D を入力します。複数のコマンドを指定するには、各コマンドの後に Enter キーを押します。すべてのコマンドを入力したら、Enter を押して空の行に移動し、Ctrl+D と入力します。または、プロンプトでシェルスクリプトを入力し、スクリプトの各行の後に Enter を押してから、空白行で Ctrl+D を入力して終了します。スクリプトを入力すると、使用されるシェルはユーザーの SHELL
環境、ユーザーのログインシェル、または /bin/sh (いずれか最初に見つかった方)で設定されたシェルです。
39.2.2. batch ジョブの設定
at>
プロンプトが表示されます。実行するコマンドを入力し、Enter を押して Ctrl+D を入力します。複数のコマンドを指定するには、各コマンドの後に Enter キーを押します。すべてのコマンドを入力したら、Enter を押して空の行に移動し、Ctrl+D と入力します。または、プロンプトでシェルスクリプトを入力し、スクリプトの各行の後に Enter を押してから、空白行で Ctrl+D を入力して終了します。スクリプトを入力すると、使用されるシェルはユーザーの SHELL
環境、ユーザーのログインシェル、または /bin/sh (いずれか最初に見つかった方)で設定されたシェルです。負荷平均が 0.8 未満になると、コマンドまたはスクリプトのセットが実行されます。
39.2.3. 保留中のジョブの表示
39.2.4. その他のコマンドラインオプション
オプション | 説明 |
---|---|
-f | プロンプトでコマンドまたはシェルスクリプトを指定する代わりに、ファイルからコマンドまたはシェルスクリプトを読み取ります。 |
-m | ジョブの完了時にユーザーにメールを送信します。 |
-v | ジョブが実行される時間を表示します。 |
39.2.5. at と batch へのアクセスの制御
/etc/at.allow
ファイルおよび /etc/at.deny
ファイルを使用して、at コマンドおよび batch コマンドへのアクセスを制限できます。両方のアクセス制御ファイルの形式は、各行の 1 つのユーザー名です。空白はいずれのファイルでも許可されません。アクセス制御ファイルが変更された場合、at デーモン(atd)を再起動する必要はありません。アクセス制御ファイルは、ユーザーが at または batch コマンドの実行を試みるたびに読み込まれます。
at.allow
ファイルが存在する場合、そのファイルにリストされているユーザーのみが at または batch を使用できます。また、at.deny
ファイルは無視されます。
at.allow
が存在しない場合は、at.deny
に記載されているユーザーは at または batch を使用できません。
39.2.6. サービスの起動と停止
39.3. 関連情報
39.3.1. インストールされているドキュメント
cron
の man ページ - cron の概要- セクション 1 および 5 の
crontab
man ページ:セクション 1 の man ページには、crontab
ファイルの概要が記載されています。セクション 5 の man ページには、ファイルの形式と、エントリーの例が含まれています。 /usr/share/doc/at- <version> /timespec
には、cron ジョブに指定できる時間の詳細情報が含まれます。at
の man ページ: at と batch およびそのコマンドラインオプションの説明。
第40章 ログファイル
/etc/syslog.conf
設定ファイルにあります。
40.1. ログファイルの場所の特定
/var/log/
ディレクトリーにあります。httpd や samba などの一部のアプリケーションでは、ログファイル用のディレクトリーが /var/log/
内にあります。
logrotate
パッケージには cron タスクが含まれており、/etc/logrotate.conf
設定ファイルと /etc/logrotate.d/
ディレクトリー内の設定ファイルに従ってログファイルを自動的にローテーションします。デフォルトでは、毎週ローテーションし、以前のログファイルを 4 週間保持するように設定されています。
40.2. ログファイルの表示
図40.1 システムログビューアー

[D]
図40.2 システムログビューアー - メニューの表示

[D]
図40.3 システムログビューアー - フィルター

[D]
40.3. ログファイルの追加
図40.4 ログファイルの追加

[D]
40.4. ログファイルのモニターリング
図40.5 ログファイルのアラート

[D]
図40.6 ログファイルの内容

[D]
図40.7 5 秒後のログファイルの内容

[D]
パート V. システムモニターリング
第41章 SystemTap
41.1. はじめに
41.2. 実装
図41.1 SystemTap でのデータの流れ

[D]
41.3. SystemTap の使用
41.3.1. トレーシング
41.3.1.1. プローブの場所
イベント | 説明 |
---|---|
begin | systemtap セッションの開始。 |
end | systemtap セッションの終了 |
kernel.function("sys_open") | カーネル内の sys_open という名前の関数へのエントリー。 |
syscall.close.return | close システムコールから返されます。 |
module("ext3").statement(0xdeadbeef) | ext3 ファイルシステムドライバーで対処された命令。 |
timer.ms(200) | 200 ミリ秒ごとに実行されるタイマー。 |
41.3.1.2. 印刷する内容
第42章 システム情報の収集
42.1. システムプロセス
ps aux | less
ps aux | less
ps ax | grep emacs
ps ax | grep emacs
top - 15:02:46 up 35 min, 4 users, load average: 0.17, 0.65, 1.00 Tasks: 110 total, 1 running, 107 sleeping, 0 stopped, 2 zombie Cpu(s): 41.1% us, 2.0% sy, 0.0% ni, 56.6% id, 0.0% wa, 0.3% hi, 0.0% si Mem: 775024k total, 772028k used, 2996k free, 68468k buffers Swap: 1048568k total, 176k used, 1048392k free, 441172k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 4624 root 15 0 40192 18m 7228 S 28.4 2.4 1:23.21 X 4926 mhideo 15 0 55564 33m 9784 S 13.5 4.4 0:25.96 gnome-terminal 6475 mhideo 16 0 3612 968 760 R 0.7 0.1 0:00.11 top 4920 mhideo 15 0 20872 10m 7808 S 0.3 1.4 0:01.61 wnck-applet 1 root 16 0 1732 548 472 S 0.0 0.1 0:00.23 init 2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0 3 root 5 -10 0 0 0 S 0.0 0.0 0:00.03 events/0 4 root 6 -10 0 0 0 S 0.0 0.0 0:00.02 khelper 5 root 5 -10 0 0 0 S 0.0 0.0 0:00.00 kacpid 29 root 5 -10 0 0 0 S 0.0 0.0 0:00.00 kblockd/0 47 root 16 0 0 0 0 S 0.0 0.0 0:01.74 pdflush 50 root 11 -10 0 0 0 S 0.0 0.0 0:00.00 aio/0 30 root 15 0 0 0 0 S 0.0 0.0 0:00.05 khubd 49 root 16 0 0 0 0 S 0.0 0.0 0:01.44 kswapd0
top - 15:02:46 up 35 min, 4 users, load average: 0.17, 0.65, 1.00
Tasks: 110 total, 1 running, 107 sleeping, 0 stopped, 2 zombie
Cpu(s): 41.1% us, 2.0% sy, 0.0% ni, 56.6% id, 0.0% wa, 0.3% hi, 0.0% si
Mem: 775024k total, 772028k used, 2996k free, 68468k buffers
Swap: 1048568k total, 176k used, 1048392k free, 441172k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4624 root 15 0 40192 18m 7228 S 28.4 2.4 1:23.21 X
4926 mhideo 15 0 55564 33m 9784 S 13.5 4.4 0:25.96 gnome-terminal
6475 mhideo 16 0 3612 968 760 R 0.7 0.1 0:00.11 top
4920 mhideo 15 0 20872 10m 7808 S 0.3 1.4 0:01.61 wnck-applet
1 root 16 0 1732 548 472 S 0.0 0.1 0:00.23 init
2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
3 root 5 -10 0 0 0 S 0.0 0.0 0:00.03 events/0
4 root 6 -10 0 0 0 S 0.0 0.0 0:00.02 khelper
5 root 5 -10 0 0 0 S 0.0 0.0 0:00.00 kacpid
29 root 5 -10 0 0 0 S 0.0 0.0 0:00.00 kblockd/0
47 root 16 0 0 0 0 S 0.0 0.0 0:01.74 pdflush
50 root 11 -10 0 0 0 S 0.0 0.0 0:00.00 aio/0
30 root 15 0 0 0 0 S 0.0 0.0 0:00.05 khubd
49 root 16 0 0 0 0 S 0.0 0.0 0:01.44 kswapd0
コマンド | 説明 |
---|---|
スペース | ディスプレイを直ちに更新します。 |
h | ヘルプ画面の表示 |
k | プロセスを強制終了します。プロセス ID およびプロセスに送信するシグナルがプロンプトされます。 |
n | 表示されるプロセス数を変更します。番号を入力するようプロンプトされます。 |
u | ユーザー別に並べ替えます。 |
M | メモリー使用量で並べ替えます。 |
P | CPU 使用率で並べ替えます。 |
- プロセスを停止します。
- プロセスを続行または開始します。
- プロセスを終了します。
- プロセスを強制終了します。
- 選択したプロセスの優先度を変更します。
- システムモニター設定を編集します。これには、リストを更新し、System Monitor ウィンドウに表示されるプロセスフィールドを選択する間隔の秒数を変更することが含まれます。
- アクティブなプロセスのみを表示します。
- すべてのプロセスを表示します。
- プロセスを表示します。
- プロセスの依存関係を表示します。
- プロセスを非表示にします。
- 非表示のプロセスを表示します。
- メモリーマップを表示します。
- 選択したプロセスで開いているファイルを表示します。
図42.1 GNOME システムモニター

[D]
42.2. Memory Usage
total used free shared buffers cached Mem: 645712 549720 95992 0 176248 224452 -/+ buffers/cache: 149020 496692 Swap: 1310712 0 1310712
total used free shared buffers cached
Mem: 645712 549720 95992 0 176248 224452
-/+ buffers/cache: 149020 496692
Swap: 1310712 0 1310712
total used free shared buffers cached Mem: 630 536 93 0 172 219 -/+ buffers/cache: 145 485 Swap: 1279 0 1279
total used free shared buffers cached
Mem: 630 536 93 0 172 219
-/+ buffers/cache: 145 485
Swap: 1279 0 1279
図42.2 GNOME システムモニター - リソースタブ

[D]
42.3. ファイルシステム
Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 11675568 6272120 4810348 57% / /dev/sda1 100691 9281 86211 10% /boot none 322856 0 322856 0% /dev/shm
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
11675568 6272120 4810348 57% / /dev/sda1
100691 9281 86211 10% /boot
none 322856 0 322856 0% /dev/shm
Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 12G 6.0G 4.6G 57% / /dev/sda1 99M 9.1M 85M 10% /boot none 316M 0 316M 0% /dev/shm
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
12G 6.0G 4.6G 57% / /dev/sda1
99M 9.1M 85M 10% /boot
none 316M 0 316M 0% /dev/shm
/dev/shm
のエントリーがあります。このエントリーは、システムの仮想メモリーファイルシステムを表します。
図42.3 GNOME システムモニター - ファイルシステム

[D]
42.4. ハードウェア
図42.4 ハードウェアブラウザー

[D]
図42.5 デバイスマネージャー

[D]
00:00.0 Host bridge: ServerWorks CNB20LE Host Bridge (rev 06) 00:00.1 Host bridge: ServerWorks CNB20LE Host Bridge (rev 06) 00:01.0 VGA compatible controller: S3 Inc. Savage 4 (rev 04) 00:02.0 Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100] (rev 08) 00:0f.0 ISA bridge: ServerWorks OSB4 South Bridge (rev 50) 00:0f.1 IDE interface: ServerWorks OSB4 IDE Controller 00:0f.2 USB Controller: ServerWorks OSB4/CSB5 OHCI USB Controller (rev 04) 01:03.0 SCSI storage controller: Adaptec AIC-7892P U160/m (rev 02) 01:05.0 RAID bus controller: IBM ServeRAID Controller
00:00.0 Host bridge: ServerWorks CNB20LE Host Bridge (rev 06)
00:00.1 Host bridge: ServerWorks CNB20LE Host Bridge (rev 06)
00:01.0 VGA compatible controller: S3 Inc. Savage 4 (rev 04)
00:02.0 Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100] (rev 08)
00:0f.0 ISA bridge: ServerWorks OSB4 South Bridge (rev 50)
00:0f.1 IDE interface: ServerWorks OSB4 IDE Controller
00:0f.2 USB Controller: ServerWorks OSB4/CSB5 OHCI USB Controller (rev 04)
01:03.0 SCSI storage controller: Adaptec AIC-7892P U160/m (rev 02)
01:05.0 RAID bus controller: IBM ServeRAID Controller
42.5. 関連情報
42.5.1. インストールされているドキュメント
- ps --help - ps で使用できるオプションの一覧を表示します。
- トップ man ページ: top とそのオプションの詳細を確認するには、man top と入力します。
- 無料 の man ページ: man free と入力し、多くのオプションを確認できます。
- df man ページ: man df と入力して、df コマンドと、その多くのオプションの詳細を確認します。
- DU man ページ: man du と入力して、du コマンドとそのオプションの詳細を確認します。
- lspci man ページ:lspci コマンドと、その多くのオプションの詳細を確認するには、man lspci と入力します。
第43章 OProfile
oprofile
RPM パッケージをインストールする必要があります。
- 共有ライブラリー の使用:共有ライブラリー 内のコード用のサンプルは、
--separate=library
オプションが使用されない限り、特定のアプリケーションには含まれません。 - パフォーマンスモニターリングのサンプル:パフォーマンス監視レジスターがサンプルをトリガーすると、割り込み処理はゼロ例外で除算さ れるのと正確ではありません。プロセッサーによる命令の順序外実行により、サンプルは近くの命令に記録される場合があります。
- opreport はインライン関数のサンプルを適切に関連付けません。opreport は単純なアドレス範囲メカニズムを使用してアドレスがどの機能にあるかを判断します。インライン関数サンプルは inline 関数には属性されず、inline 関数が挿入された関数には含まれません。
- OProfile は複数の実行からのデータの蓄積 を行います。OProfile はシステム全体のプロファイラーで、プロセスが複数回起動およびシャットダウンすることを期待します。そのため、複数の実行からのサンプルは累積されます。コマンド opcontrol --reset を使用して、以前の実行からのサンプルを消去します。
- CPU の制限のないパフォーマンスの問題: OProfile は、CPU の制限プロセスの問題を検索することを目的としています。OProfile は、ロックを待機しているため、または他のイベントが発生する(I/O デバイスが操作を完了するなど)、sleep のプロセスを特定しません。
43.1. ツールの概要
oprofile
パッケージで提供されるツールの概要を説明します。
コマンド | 説明 |
---|---|
ophelp |
システムのプロセッサーで利用可能なイベントと、それぞれの簡単な説明を表示します。
|
opimport |
サンプルデータベースファイルをシステム用に外部のバイナリー形式からネイティブの形式に変換します。異なるアーキテクチャーからのサンプルデータベースを解析する場合にのみこのオプションを使用してください。
|
opannotate | アプリケーションがデバッグシンボルでコンパイルされている場合は、実行可能ファイルのアノテーション付きのソースを作成します。詳細は、「opannotateの使用」 を参照してください。 |
opcontrol |
収集されるデータを設定します。詳細は、「OProfile の設定」 を参照してください。
|
opreport |
プロファイリングデータを取得します。詳細は、「opreportの使用」 を参照してください。
|
oprofiled |
デーモンとして実行して定期的にサンプルデータをディスクに書き込みます。
|
43.2. OProfile の設定
/root/.oprofile/daemonrc
ファイルに保存されます。
43.2.1. カーネルの指定
opcontrol --setup --vmlinux=/usr/lib/debug/lib/modules/`uname -r`/vmlinux
opcontrol --setup --vmlinux=/usr/lib/debug/lib/modules/`uname -r`/vmlinux
opcontrol --setup --no-vmlinux
opcontrol --setup --no-vmlinux
oprofile
カーネルモジュールもロードされていない場合は読み込み、/dev/oprofile/
ディレクトリーを作成します。このディレクトリーの詳細は、「/dev/oprofile/
について」 を参照してください。
43.2.2. イベントのモニターへの設定
プロセッサー | cpu_type | カウンターの数 |
---|---|---|
Pentium Pro | i386/ppro | 2 |
Pentium II | i386/pii | 2 |
Pentium-24 | i386/piii | 2 |
Pentium 4 (非スレッド) | i386/p4 | 8 |
Pentium 4 (ハイパースレッディング) | i386/p4-ht | 4 |
Athlon | i386/athlon | 4 |
AMD64 | x86-64/hammer | 4 |
Itanium | ia64/itanium | 4 |
Itanium 2 | ia64/itanium2 | 4 |
TIMER_INT | timer | 1 |
IBM eServer iSeries および pSeries | timer | 1 |
ppc64/power4 | 8 | |
ppc64/power5 | 6 | |
ppc64/970 | 8 | |
IBM eServer S/390 および S/390x | timer | 1 |
IBM eServer zSeries | timer | 1 |
タイマー
がプロセッサータイプとして使用されます。
timer
を使用すると、ハードウェアがハードウェアパフォーマンスカウンターをサポートしないため、イベントをプロセッサーに設定できません。代わりに、タイマー割り込みがプロファイリングに使用されます。
タイマー
がプロセッサータイプとして使用されていない場合は、監視されるイベントを変更できます。また、プロセッサーのカウンター 0 はデフォルトで時間ベースのイベントに設定されます。プロセッサーに複数のカウンターが存在する場合は、カウンター 0 以外のカウンターはデフォルトでイベントに設定されていません。監視されるデフォルトイベントは 表43.3「デフォルトのイベント」 に表示されます。
プロセッサー | カウンターのデフォルトイベント | 説明 |
---|---|---|
Pentium Pro、Pentium II、Pentium II、Athlon、AMD64 | CPU_CLK_UNHALTED | プロセッサーのクロックは停止しません。 |
Pentium 4 (HT および非 HT) | GLOBAL_POWER_EVENTS | プロセッサーが停止されない時間 |
Itanium 2 | CPU_CYCLES | CPU サイクル |
TIMER_INT | (なし) | 各タイマー割り込みの例 |
ppc64/power4 | サイクル | プロセッサーサイクル |
ppc64/power5 | サイクル | プロセッサーサイクル |
ppc64/970 | サイクル | プロセッサーサイクル |
ls -d /dev/oprofile/[0-9]*
ls -d /dev/oprofile/[0-9]*
ophelp
ophelp
opcontrol --event=<event-name>:<sample-rate>
opcontrol --event=<event-name>:<sample-rate>
43.2.2.1. サンプリングレート
cpu_type
が timer
でない場合、各イベントには サンプリングレート を設定できます。サンプリングレートは、各サンプルスナップショット間のイベント数です。
opcontrol --event=<event-name>:<sample-rate>
opcontrol --event=<event-name>:<sample-rate>
43.2.2.2. ユニットマスク
opcontrol --event=<event-name>:<sample-rate>:<unit-mask>
opcontrol --event=<event-name>:<sample-rate>:<unit-mask>
43.2.3. カーネルおよびユーザー空間プロファイルの分離
opcontrol --event=<event-name>:<sample-rate>:<unit-mask>:0
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>:1
opcontrol --event=<event-name>:<sample-rate>:<unit-mask>:<kernel>:0
opcontrol --event=<event-name>:<sample-rate>:<unit-mask>:<kernel>:0
opcontrol --event=<event-name>:<sample-rate>:<unit-mask>:<kernel>:1
opcontrol --event=<event-name>:<sample-rate>:<unit-mask>:<kernel>:1
opcontrol --separate=<choice>
opcontrol --separate=<choice>
none
- プロファイルを分離しません(デフォルト)。- ライブラリー - ライブラリー のアプリケーションごとのプロファイルを生成します
- kernel - カーネルおよびカーネルモジュールのアプリケーションごとのプロファイルを生成します。
- all - ライブラリーのアプリケーションごとのプロファイルと、カーネルおよびカーネルモジュールのアプリケーションごとのプロファイルを生成します
--separate=library
を使用すると、サンプルファイル名には、実行可能ファイルの名前とライブラリーの名前が含まれます。
43.3. OProfile の開始および停止
opcontrol --start
opcontrol --start
Using log file /var/lib/oprofile/oprofiled.log Daemon started. Profiler running.
Using log file /var/lib/oprofile/oprofiled.log Daemon started. Profiler running.
/root/.oprofile/daemonrc
の設定が使用されます。
/var/lib/oprofile/samples/
ディレクトリーに定期的に書き込みます。デーモンのログファイルは /var/lib/oprofile/oprofiled.log
にあります。
opcontrol --shutdown
opcontrol --shutdown
43.4. データの保存
opcontrol --save=<name>
opcontrol --save=<name>
/var/lib/oprofile/samples/
が作成され、現在のサンプルファイルがコピーされます。
43.5. データの分析
/var/lib/oprofile/samples/
ディレクトリーに書き込みます。データを読み取る前に、root で以下のコマンドを実行して、すべてのデータがこのディレクトリーに書き込まれることを確認します。
opcontrol --dump
opcontrol --dump
\{root\}/bin/bash/\{dep\}/\{root\}/bin/bash/CPU_CLK_UNHALTED.100000
\{root\}/bin/bash/\{dep\}/\{root\}/bin/bash/CPU_CLK_UNHALTED.100000
- opreport
- opannotate
43.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
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
オプションなどです。
43.5.2. 単一実行可能ファイルでの opreport の使用
opreport <mode> <executable>
opreport <mode> <executable>
-l
- シンボルでサンプルデータを一覧表示します。たとえば、以下は、コマンド opreport -l /lib/tls/libc- <version > .so の実行からの出力の一部になります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
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 コマンドからの ものです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow samples % symbol name 12 100.000 __gconv_transform_utf8_internal
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 からの ものです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
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/
ディレクトリーに対するセッションまたはディレクトリーへの完全パスを指定します。
43.5.3. モジュールの詳細な出力の取得
~]$ opreport /ext3 CPU: AMD64 processors, speed 797.948 MHz (estimated) Counted DATA_CACHE_ACCESSES events (Data cache accesses) with a unit mask of 0x00 (No unit mask) count 500000 Counted DATA_CACHE_MISSES events (Data cache misses) with a unit mask of 0x00 (No unit mask) count 500000 DATA_CACHE_ACC...|DATA_CACHE_MIS...| samples| %| samples| %| ------------------------------------ 148721 100.000 1493 100.000 ext3
~]$ opreport /ext3
CPU: AMD64 processors, speed 797.948 MHz (estimated)
Counted DATA_CACHE_ACCESSES events (Data cache accesses) with a unit mask of 0x00 (No unit mask) count 500000
Counted DATA_CACHE_MISSES events (Data cache misses) with a unit mask of 0x00 (No unit mask) count 500000
DATA_CACHE_ACC...|DATA_CACHE_MIS...|
samples| %| samples| %|
------------------------------------
148721 100.000 1493 100.000 ext3
~]# ln -s /lib/modules/`uname -r`/kernel/fs/ext3/ext3.ko /ext3
~]# ln -s /lib/modules/`uname -r`/kernel/fs/ext3/ext3.ko /ext3
~]# opreport image:/ext3 -l|more warning: could not check that the binary file /ext3 has not been modified since the profile was taken. Results may be inaccurate. CPU: AMD64 processors, speed 797.948 MHz (estimated) Counted DATA_CACHE_ACCESSES events (Data cache accesses) with a unit mask of 0x00 (No unit mask) count 500000 Counted DATA_CACHE_MISSES events (Data cache misses) with a unit mask of 0x00 (No unit mask) count 500000 samples % samples % symbol name 16728 11.2479 7 0.4689 ext3_group_sparse 16454 11.0637 4 0.2679 ext3_count_free_blocks 14583 9.8056 51 3.4159 ext3_fill_super 8281 5.5681 129 8.6403 ext3_ioctl 7810 5.2514 62 4.1527 ext3_write_info 7286 4.8991 67 4.4876 ext3_ordered_writepage 6509 4.3767 130 8.7073 ext3_new_inode 6378 4.2886 156 10.4488 ext3_new_block 5932 3.9887 87 5.8272 ext3_xattr_block_list ...
~]# opreport image:/ext3 -l|more
warning: could not check that the binary file /ext3 has not been modified since the profile was taken. Results may be inaccurate.
CPU: AMD64 processors, speed 797.948 MHz (estimated)
Counted DATA_CACHE_ACCESSES events (Data cache accesses) with a unit mask of 0x00 (No unit mask) count 500000
Counted DATA_CACHE_MISSES events (Data cache misses) with a unit mask of 0x00 (No unit mask) count 500000
samples % samples % symbol name
16728 11.2479 7 0.4689 ext3_group_sparse
16454 11.0637 4 0.2679 ext3_count_free_blocks
14583 9.8056 51 3.4159 ext3_fill_super
8281 5.5681 129 8.6403 ext3_ioctl
7810 5.2514 62 4.1527 ext3_write_info
7286 4.8991 67 4.4876 ext3_ordered_writepage
6509 4.3767 130 8.7073 ext3_new_inode
6378 4.2886 156 10.4488 ext3_new_block
5932 3.9887 87 5.8272 ext3_xattr_block_list
...
43.5.4. opannotateの使用
-g
オプションでコンパイルする必要があります。デフォルトでは、Red Hat Enterprise Linux パッケージはこのオプションでコンパイルされていません。
opannotate --search-dirs <src-dir> --source <executable>
opannotate --search-dirs <src-dir> --source <executable>
43.6. /dev/oprofile/
について
/dev/oprofile/
ディレクトリーには、OProfile のファイルシステムが含まれます。cat コマンドを使用して、このファイルシステムの仮想ファイルの値を表示します。たとえば、以下のコマンドは検出されたプロセッサー OProfile のタイプを表示します。
cat /dev/oprofile/cpu_type
cat /dev/oprofile/cpu_type
/dev/oprofile/
にディレクトリーが存在する。たとえば、2 つのカウンターがある場合は、/dev/oprofile/0/ ディレクトリーと dev/oprofile
/1/ ディレクトリーが存在
します。
count
: サンプルの間隔。enabled
- 0 の場合、カウンターはオフになり、サンプルは収集されません。1 の場合は、カウンターがオンになり、サンプルが収集されます。event
: 監視するイベント。kernel
- 0 の場合、プロセッサーがカーネルスペースにある場合、このカウンターイベントのサンプルは収集されません。1 の場合、プロセッサーがカーネルスペースにある場合でもサンプルが収集されます。unit_mask
: カウンターに対して有効なユニットマスクを定義します。- user: 0 の場合、プロセッサーが
ユーザー
空間にある場合、カウンターイベントのサンプルは収集されません。1 の場合、プロセッサーがユーザー空間にある場合でもサンプルが収集されます。
cat /dev/oprofile/0/count
cat /dev/oprofile/0/count
43.7. 使用例
- システムで最も多く使用されているアプリケーションやサービスの特定 - opreport を使用して、アプリケーションやサービスが使用するプロセッサー時間を判断できます。システムが複数のサービスに使用されるが、実行中である場合、最も多くのプロセッサー時間を消費するサービスは専用システムに移動できます。
- プロセッサーの使用状況を決定 する -
CPU_CLK_UNHALTED
イベントを監視して、特定の期間におけるプロセッサー負荷を判断できます。その後、このデータを使用して、追加のプロセッサーまたは高速なプロセッサーがシステムパフォーマンスを向上させる可能性があるかどうかを判断できます。
43.8. グラフィカルインターフェイス
oprofile-gui
パッケージをインストールする必要があります。
/root/.oprofile/daemonrc
に書き込まれ、アプリケーションは終了します。アプリケーションを終了しても、OProfile のサンプリングは停止しません。
図43.1 OProfile の設定

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

[D]
43.9. 関連情報
43.9.1. インストールされている Docs
/usr/share/doc/oprofile-<version>/oprofile.html
— 『OProfile Manual』- OProfile の man ページ: opcontrol、opreport、opannotate、および ophelpについて説明します。
43.9.2. 便利な Web サイト
- http://oprofile.sourceforge.net/ - 最新のドキュメント、メーリングリスト、IRC チャンネルなどが含まれています。
パート VI. カーネルおよびドライバーの設定
第44章 カーネルの手動アップグレード
44.1. カーネルパッケージの概要
kernel
: マルチプロセッサーシステムのカーネルが含まれます。x86 システムの場合は、最初の 4GB の RAM のみが使用されます。そのため、RAM が 4GB を超える x86 システムは、kernel-PAE
を使用する必要があります。kernel-devel
- kernel パッケージに対してモジュールを構築するのに十分な カーネル ヘッダーと makefiles が含まれます。kernel-PAE
(i686 システム専用)- このパッケージは、(カーネル
パッケージに対してすでに有効になっているオプションに加えて)以下の主要な設定オプションを提供します。- RAM が 4GB を超えるシステムに対する PAE (物理アドレス拡張)のサポート、および最大 16GB までの信頼性が高いシステムに対する PAE (Physical Address Extension)のサポート。重要な影響物理アドレス拡張により、x86 プロセッサーは最大 64GB の物理 RAM に対応しますが、Red Hat Enterprise Linux 4 と 5 カーネルの違いにより、Red Hat Enterprise Linux 4 (
kernel-hugemem
パッケージを含む)のみが 64GB のメモリーをすべて確実に対処できます。また、Red Hat Enterprise Linux 5 の PAE バリアントでは、Red Hat Enterprise Linux 4kernel-hugemem
バリアントなど、プロセスごとに 4GB のメモリーは許可されません。ただし、x86_64 カーネルはこれらの制限を受けず、大規模なメモリーシステムで使用する推奨 Red Hat Enterprise Linux 5 アーキテクチャーです。
kernel-PAE
-develkernel-doc
: カーネルソースからのドキュメントファイルが含まれます。これらのファイルには、同梱で配布される Linux カーネルとデバイスドライバーのさまざまな部分が文書化されています。このパッケージをインストールすると、オプションへの参照が提供され、読み込み時に Linux カーネルモジュールに渡すことができます。デフォルトでは、これらのファイルは/usr/share/doc/kernel-doc- <version> /
ディレクトリーに配置されます。kernel-headers
: Linux カーネルとユーザー空間ライブラリーおよびプログラムとの間のインターフェイスを指定する C ヘッダーファイルが含まれます。ヘッダーファイルは、ほとんどの標準プログラムを構築するのに必要な構造と定数を定義します。kernel-xen
: 仮想化の実行に必要な Linux カーネルのバージョンが含まれます。kernel-xen-devel
-kernel-xen
パッケージに対してモジュールを構築するのに必要なカーネルヘッダーと makefiles が含まれます。
kernel-source
パッケージが削除され、Red Hat Network からのみ取得できる RPM に置き換えられました。その後、この *.src.rpm
パッケージは、rpmbuild コマンドを使用してローカルに再構築する必要があります。カーネルソースパッケージの取得およびインストールの詳細については、最新の更新リリースノート(すべての更新を含む)を参照してください。 http://www.redhat.com/docs/manuals/enterprise/
44.2. アップグレードの準備
kernel-2.6.9-5.EL kernel-devel-2.6.9-5.EL kernel-utils-2.6.9-5.EL kernel-doc-2.6.9-5.EL kernel-smp-2.6.9-5.EL kernel-smp-devel-2.6.9-5.EL kernel-hugemem-devel-2.6.9-5.EL
kernel-2.6.9-5.EL
kernel-devel-2.6.9-5.EL
kernel-utils-2.6.9-5.EL
kernel-doc-2.6.9-5.EL
kernel-smp-2.6.9-5.EL
kernel-smp-devel-2.6.9-5.EL
kernel-hugemem-devel-2.6.9-5.EL
kernel
パッケージのみです。異なるパッケージの説明は、「カーネルパッケージの概要」 を参照してください。
PAE
、xen
などのいずれかになります。< ;arch> は以下のいずれかになります。
- AMD64 および Intel EM64T アーキテクチャー用
x86_
64 ia64
( Intel® Itanium™ アーキテクチャーの場合)- IBM® eServer™ pSeries™ アーキテクチャーの場合は
ppc64
- IBM® S/390® アーキテクチャーの
s390
- IBM® eServer™ System z® アーキテクチャーの
s390x
i686
( Intel® Pentium® II、Intel® Pentium® II、Intel® Pentium® 4、AMD Athlon®、および AMD Duron® システム用)
44.3. アップグレードしたカーネルのダウンロード
- セキュリティーエラータ:セキュリティーの問題を修正するカーネルアップグレードを含むセキュリティーエラータに http://www.redhat.com/security/updates/ ついての詳細は、を参照してください。
- Red Hat Network 経由 - カーネル RPM パッケージをダウンロードしてインストールします。Red Hat Network は、最新のカーネルをダウンロードし、システムでカーネルをアップグレードして、必要に応じて初期 RAM ディスクイメージを作成し、ブートローダーが新しいカーネルをブートするように設定できます。詳細は、 http://www.redhat.com/docs/manuals/RHNetwork/ を参照してください。
44.4. アップグレードの実行
-i
引数を使用して、古いカーネルを保持します。-U
オプションは、現在インストールされているカーネルを上書きするため、使用し ない でください。これにより、ブートローダーの問題が生じます。以下に例を示します。
44.5. 初期 RAM ディスクイメージの確認
/etc/fstab
内のパーティションを参照する場合は、初期 RAM ディスクが必要です。初期 RAM ディスクにより、モジュラーカーネルは、通常モジュールが存在するデバイスにアクセスする前に起動する必要がある可能性のあるモジュールにアクセスできます。
initrd- <version > .img
ファイルが作成されていることを確認します(バージョンは、インストールしたカーネルのバージョンと一致する必要があります)。
vmlinux
ファイルが 1 つのファイルに統合されます。このファイルは addRamDisk コマンドで作成されます。この手順は、カーネルとその関連パッケージが Red Hat, Inc. によって配布される RPM パッケージからインストールまたはアップグレードされると自動的に実行されるため、手動で実行する必要はありません。作成したことを確認するには、ls -l /boot コマンドを使用して、/ boot/vmlinitrd- <kernel-version
> ファイルが既に存在することを確認します(< kernel-version
> は、インストールしたカーネルのバージョンと一致する必要があります)。
44.6. ブートローダーの確認
カーネル
RPM パッケージは、新たにインストールしたカーネルを起動するようにブートローダーを設定します(IBM eServer iSeries システムを除く)。ただし、デフォルトで新しいカーネルをブートするようにブートローダーを設定しません。
44.6.1. x86 システム
44.6.1.1. GRUB
/boot/grub/grub.conf
ファイルに、以前インストールした カーネル
パッケージと同じバージョンの title
セクションが含まれていることを確認します。
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/hda2 initrd /initrd-version.img
# 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/hda2
# initrd /initrd-version.img
#boot=/dev/hda
default=1 timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Enterprise Linux (2.6.9-5.EL)
root (hd0,0)
kernel /vmlinuz-2.6.9-5.EL ro root=LABEL=/
initrd /initrd-2.6.9-5.EL.img
title Red Hat Enterprise Linux (2.6.9-1.906_EL)
root (hd0,0)
kernel /vmlinuz-2.6.9-1.906_EL ro root=LABEL=/
initrd /initrd-2.6.9-1.906_EL.img
/boot/
パーティションが作成された場合、カーネルと initrd
イメージへのパスは /boot/
と相対的になります。
0
に設定します。
44.6.2. Itanium システム
/boot/efi/EFI/redhat/elilo.conf
を使用する ELILO を使用します。このファイルには、インストールした カーネル
パッケージと同じバージョンの イメージ
セクションが含まれていることを確認します。
prompt timeout=50 default=old image=vmlinuz-2.6.9-5.EL label=linux initrd=initrd-2.6.9-5.EL.img read-only append="root=LABEL=/" image=vmlinuz-2.6.9-1.906_EL label=old initrd=initrd-2.6.9-1.906.img read-only append="root=LABEL=/"
prompt timeout=50 default=old image=vmlinuz-2.6.9-5.EL
label=linux
initrd=initrd-2.6.9-5.EL.img read-only
append="root=LABEL=/" image=vmlinuz-2.6.9-1.906_EL
label=old
initrd=initrd-2.6.9-1.906.img read-only
append="root=LABEL=/"
default
変数の値を、新しいカーネルを含む image
セクションの ラベル
の値に変更します。
44.6.3. IBM S/390 および IBM System z Systems
/etc/zipl.conf
を使用する z/IPL を使用します。以前にインストールした kernel パッケージと同じバージョンの セクションが ファイルに含まれていることを確認します。
[defaultboot] default=old target=/boot/ [linux] image=/boot/vmlinuz-2.6.9-5.EL ramdisk=/boot/initrd-2.6.9-5.EL.img parameters="root=LABEL=/" [old] image=/boot/vmlinuz-2.6.9-1.906_EL ramdisk=/boot/initrd-2.6.9-1.906_EL.img parameters="root=LABEL=/"
[defaultboot] default=old target=/boot/
[linux]
image=/boot/vmlinuz-2.6.9-5.EL
ramdisk=/boot/initrd-2.6.9-5.EL.img
parameters="root=LABEL=/"
[old]
image=/boot/vmlinuz-2.6.9-1.906_EL
ramdisk=/boot/initrd-2.6.9-1.906_EL.img
parameters="root=LABEL=/"
default
変数の値を新規カーネルを含むセクションの名前に変更します。各セクションの最初の行には、括弧内の名前が含まれます。
44.6.4. IBM eServer iSeries Systems
カーネルをアップグレードすると、/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
44.6.5. IBM eServer pSeries Systems
/etc/aboot.conf
を使用する YABOOT を使用します。以前にインストールした kernel
パッケージと同じバージョンの イメージ
セクションが ファイルに含まれていることを確認します。
boot=/dev/sda1 init-message=Welcome to Red Hat Enterprise Linux! Hit <TAB> for boot options partition=2 timeout=30 install=/usr/lib/yaboot/yaboot delay=10 nonvram image=/vmlinux--2.6.9-5.EL label=old read-only initrd=/initrd--2.6.9-5.EL.img append="root=LABEL=/" image=/vmlinux-2.6.9-5.EL label=linux read-only initrd=/initrd-2.6.9-5.EL.img append="root=LABEL=/"
boot=/dev/sda1 init-message=Welcome to Red Hat Enterprise Linux! Hit <TAB> for boot options
partition=2 timeout=30 install=/usr/lib/yaboot/yaboot delay=10 nonvram
image=/vmlinux--2.6.9-5.EL
label=old
read-only
initrd=/initrd--2.6.9-5.EL.img
append="root=LABEL=/"
image=/vmlinux-2.6.9-5.EL
label=linux
read-only
initrd=/initrd-2.6.9-5.EL.img
append="root=LABEL=/"
default
を追加して、新しいカーネルを含むイメージスタンザの ラベル
に設定します。
第45章 一般的なパラメーターおよびモジュール
-smp-unsupported- <kernel-version> および kernel- hugemem-unsupported- <kernel-version
> と呼ばれるパッケージのグループに、多数の対応対応デバイスドライバーを提供しています
。< ;kernel-version> を、システムにインストールされているカーネルのバージョンに置き換えます。これらのパッケージは Red Hat Enterprise Linux インストールプログラムによってインストールされず、提供されるモジュールは Red Hat, Inc ではサポートされません。
45.1. カーネルモジュールユーティリティー
module-init-tools
パッケージがインストールされている場合は、カーネルモジュールを管理するコマンドのグループが利用できます。これらのコマンドを使用して、モジュールが正常に読み込まれているかどうか、または新しいハードウェアで異なるモジュールを試行するときに確認します。
Module Size Used by tun 11585 1 autofs4 21573 1 hidp 16193 2 rfcomm 37849 0 l2cap 23873 10 hidp,rfcomm bluetooth 50085 5 hidp,rfcomm,l2cap sunrpc 153725 1 dm_mirror 29073 0 dm_mod 57433 1 dm_mirror video 17221 0 sbs 16257 0 i2c_ec 5569 1 sbs container 4801 0 button 7249 0 battery 10565 0 asus_acpi 16857 0 ac 5701 0 ipv6 246113 12 lp 13065 0 parport_pc 27493 1 parport 37001 2 lp,parport_pc uhci_hcd 23885 0 floppy 57317 1 sg 34653 0 snd_ens1371 26721 1 gameport 16073 1 snd_ens1371 snd_rawmidi 24897 1 snd_ens1371 snd_ac97_codec 91360 1 snd_ens1371 snd_ac97_bus 2753 1 snd_ac97_codec snd_seq_dummy 4293 0 snd_seq_oss 32705 0 serio_raw 7493 0 snd_seq_midi_event 8001 1 snd_seq_oss snd_seq 51633 5 snd_seq_dummy,snd_seq_oss,snd_seq_midi_event snd_seq_device 8781 4 snd_rawmidi,snd_seq_dummy,snd_seq_oss,snd_seq snd_pcm_oss 42849 0 snd_mixer_oss 16833 1 snd_pcm_oss snd_pcm 76485 3 snd_ens1371,snd_ac97_codec,snd_pcm_oss snd_timer 23237 2 snd_seq,snd_pcm snd 52933 12 snd_ens1371,snd_rawmidi,snd_ac97_codec,snd_seq_oss,snd_seq,snd_seq_device,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer soundcore 10145 1 snd i2c_piix4 8909 0 ide_cd 38625 3 snd_page_alloc 10569 1 snd_pcm i2c_core 21697 2 i2c_ec,i2c_piix4 pcnet32 34117 0 cdrom 34913 1 ide_cd mii 5825 1 pcnet32 pcspkr 3521 0 ext3 129737 2 jbd 58473 1 ext3 mptspi 17353 3 scsi_transport_spi 25025 1 mptspi mptscsih 23361 1 mptspi sd_mod 20929 16 scsi_mod 134121 5 sg,mptspi,scsi_transport_spi,mptscsih,sd_mod mptbase 52193 2 mptspi,mptscsih
Module Size Used by
tun 11585 1
autofs4 21573 1
hidp 16193 2
rfcomm 37849 0
l2cap 23873 10 hidp,rfcomm
bluetooth 50085 5 hidp,rfcomm,l2cap
sunrpc 153725 1
dm_mirror 29073 0
dm_mod 57433 1 dm_mirror
video 17221 0
sbs 16257 0
i2c_ec 5569 1 sbs
container 4801 0
button 7249 0
battery 10565 0
asus_acpi 16857 0
ac 5701 0
ipv6 246113 12
lp 13065 0
parport_pc 27493 1
parport 37001 2 lp,parport_pc
uhci_hcd 23885 0
floppy 57317 1
sg 34653 0
snd_ens1371 26721 1
gameport 16073 1 snd_ens1371
snd_rawmidi 24897 1 snd_ens1371
snd_ac97_codec 91360 1 snd_ens1371
snd_ac97_bus 2753 1 snd_ac97_codec
snd_seq_dummy 4293 0
snd_seq_oss 32705 0
serio_raw 7493 0
snd_seq_midi_event 8001 1 snd_seq_oss
snd_seq 51633 5 snd_seq_dummy,snd_seq_oss,snd_seq_midi_event
snd_seq_device 8781 4 snd_rawmidi,snd_seq_dummy,snd_seq_oss,snd_seq
snd_pcm_oss 42849 0
snd_mixer_oss 16833 1 snd_pcm_oss
snd_pcm 76485 3 snd_ens1371,snd_ac97_codec,snd_pcm_oss
snd_timer 23237 2 snd_seq,snd_pcm
snd 52933 12 snd_ens1371,snd_rawmidi,snd_ac97_codec,snd_seq_oss,snd_seq,snd_seq_device,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer
soundcore 10145 1 snd
i2c_piix4 8909 0
ide_cd 38625 3
snd_page_alloc 10569 1 snd_pcm
i2c_core 21697 2 i2c_ec,i2c_piix4
pcnet32 34117 0
cdrom 34913 1 ide_cd
mii 5825 1 pcnet32
pcspkr 3521 0
ext3 129737 2
jbd 58473 1 ext3
mptspi 17353 3
scsi_transport_spi 25025 1 mptspi
mptscsih 23361 1 mptspi
sd_mod 20929 16
scsi_mod 134121 5 sg,mptspi,scsi_transport_spi,mptscsih,sd_mod
mptbase 52193 2 mptspi,mptscsih
/proc/modules
の出力よりも詳細で読みやすいものになります。
/lib/modules/ <kernel-version> /kernel/drivers/ サブ
ディレクトリーからモジュールの読み込みを試みます。ネットワークインターフェイスドライバーの net/
サブディレクトリーなど、各タイプのモジュールにはサブディレクトリーがあります。カーネルモジュールの中にはモジュールの依存関係があるものがあります。つまり、読み込むには他のモジュールを最初に読み込む必要があります。/sbin/modprobe コマンドは、これらの依存関係をチェックし、指定されたモジュールを読み込む前にモジュールの依存関係を読み込みます。
modprobe e100
modprobe e100
e100
モジュールをロードします。
-v
オプションを使用します。以下に例を示します。
modprobe -v e100
modprobe -v e100
insmod /lib/modules/2.6.9-5.EL/kernel/drivers/net/e100.ko Using /lib/modules/2.6.9-5.EL/kernel/drivers/net/e100.ko Symbol version prefix 'smp_'
insmod /lib/modules/2.6.9-5.EL/kernel/drivers/net/e100.ko
Using /lib/modules/2.6.9-5.EL/kernel/drivers/net/e100.ko
Symbol version prefix 'smp_'
rmmod e100
rmmod e100
e100
カーネルモジュールをアンロードします。
modinfo [options] <module>
modinfo [options] <module>
45.2. 永続モジュールの読み込み
/etc/modprobe.conf
ファイルの正しい設定が指定されているファシリティーにより直接読み込まれます。ただし、システムの起動時にモジュールの読み込みを明示的に強制する必要がある場合があります。
/etc/rc.modules
ファイルの存在をチェックします。このファイルには、モジュールを読み込むさまざまなコマンドが含まれています。rc.modules
はブートプロセスで先に実行されるため、rc.local
では なく rc.modules
を使用する必要があります。
foo
モジュールの読み込みを設定します(root として)。
echo modprobe foo >> /etc/rc.modules chmod +x /etc/rc.modules
echo modprobe foo >> /etc/rc.modules
chmod +x /etc/rc.modules
45.3. モジュールパラメーターの指定
e100
_speed_duplex=4 オプションで e100
ドライバーを読み込みます。
45.4. ストレージパラメーター
ハードウェア | モジュール | パラメーター |
---|---|---|
3ware Storage Controller および 9000 シリーズ | 3w-xxxx.ko、3w-9xxx.ko | |
Adaptec Advanced Raid 製品、Dell PERC2、2/Si、3/Si、3/Di、HP NetRAID-4M、IBM ServeRAID、および ICP SCSI ドライバー | aacraid.ko | nondasd - 非dasd デバイスに対する hba のスキャンを制御します。0=off, 1=on
dacmode - dma アドレス指定が 64 ビット DAC を使用しているかどうかを制御します。0=off, 1=on
commit : 外部アレイのアダプターに COMMIT_CONFIG を発行するかどうかを制御します。これは通常、BIOS を持たないシステムに必要です。0=off, 1=on
startup_timeout - アダプターがカーネルを起動して実行しているのを待機する時間(秒単位)。通常、これは BIOS を持たない大規模なシステムで調整されます。
aif_timeout - アプリケーションが AIF を取得するのを待機する時間(秒単位)。通常、これは負荷の高いシステム向けに調整されます。
numacb : 割り当てたアダプター制御ブロック(FIB)の数に制限を要求します。有効な値は 512 および down です。デフォルトでは、ファームウェアからの提案を使用します。
acbsize - 特定のアダプター制御ブロック(FIB)サイズを要求します。有効な値は 512、2048、4096、および 8192 です。デフォルトでは、ファームウェアからの提案を使用します。
|
Adaptec 28xx、R9xx、39xx AHA-284x、AHA-29xx、AHA-394x、AHA-398x、AHA-274x、AHA-274x、AHA-2842、AHA-2910B、AHA-2920C、AHA-2930/U/U2 aHA-2940/w/u/uW/AU/、u2W/u2/U2B/、u2BOEM、aHA-2944d/wd/UD/uWD、aHA-2950u2/W/b、aHA-3940/u/w/uW/、auW/u2W/u2B、 AHA-3950U2D, AHA-3985/U/W/UW, AIC-777x, AIC-785x, AIC-786x, AIC-787x, AIC-788x , AIC-789x, AIC-3860 | aic7xxx.ko | 詳細 : 詳細/診断ロギングの有効化
allow_memio - デバイスレジスターをメモリーマップを許可します。
debug - 有効にするデバッグ値のビットマスク
no_probe : EISA/VLB コントローラーのプロービングを切り替え
probe_eisa_vl - EISA/VLB コントローラープロービングを切り替え
no_reset - 初期バスのリセットをスプレッシャル
extended - すべてのコントローラーで拡張されたジオメトリーの有効化
periodic_otag : タグ不足を防ぐために、順序付けされたタグ付けされたトランザクションを定期的に送信します。これは、古いディスクドライブまたは RAID アレイで必要になる場合があります。
tag_info:<tag_str >: ターゲットごとのタグの深さを設定します。
global_tag_depth:<int> - すべてのバス上のすべてのターゲットに対するグローバルタグの深さ
seltime:<int& gt; - Selection Timeout (0/256ms,1/128ms,2/64ms,3/32ms)
|
IBM ServeRAID | ips.ko | |
LSI Logic MegaRAID Mailbox Driver | megaraid_mbox.ko | unconf_disks - 未設定のディスクをカーネルに公開するように設定します(default=0)。
busy_wait - ビジー時にメールボックスの最大待機時間(デフォルトは 100)
max_sectors : IO コマンドごとのセクターの最大数(デフォルトは 128)
cmd_per_lun : 論理ユニットごとのコマンドの最大数(デフォルトは 64)
fast_load - ドライバーの高速読み込み、物理デバイスをスキップします。(デフォルト=0)
debug_level - ドライバーのデバッグレベル(デフォルトは 0)
|
Emulex LightPulse Fibre Channel SCSI ドライバー | lpfc.ko | lpfc_poll - FCP リングポーリングモードの制御:0 - none、1 - 割り込みが有効なポーリング 3 - FCP リング割り込みのポーリングと無効化
lpfc_log_verbose — Verbose logging bit-mask
lpfc_lun_queue_depth - 特定の LUN にキューに入れることができる FCP コマンドの最大数
lpfc_hba_queue_depth : lpfc HBA にキューに入れることができる FCP コマンドの最大数
lpfc_scan_down - デバイスのスキャンを最も高い ALPA から最小にスキャンを開始します。
lpfc_nodev_tmo - Seconds ドライバーは、デバイスが戻るのを待つ I/O を保持します
lpfc_topology - ファイバーチャネルトポロジーの選択
lpfc_link_speed - リンク速度の選択
lpfc_fcp_class - FCP シーケンスに対してファイバーチャネルクラスを選択します。
lpfc_use_adisc - 再検出時に ADISC を使用して FCP デバイスを認証します。
lpfc_ack0 - ACK0 サポートの有効化
lpfc_cr_delay : 割り込み応答が生成されるまでのミリ秒数
lpfc_cr_count - 割り込み応答が生成されるまでの I/O 完了数
lpfc_multi_ring_support - IOCB エントリーを分散させるプライマリー SLI リングの数を決定します。
lpfc_fdmi_on - FDMI サポートの有効化
lpfc_discovery_threads : 検出時の ELS コマンドの最大数
lpfc_max_luns : 許可される最大 LUN
lpfc_poll_tmo - Milliseconds ドライバーが FCP リングをポーリングするまで待機する
|
HP Smart Array | cciss.ko | |
LSI Logic MPT Fusion | mptbase.ko mptctl.ko mptfc.ko mptlan.ko mptsas.ko mptscsih.ko mptspi.ko | mpt_msi_enable - MSI サポートの有効化
mptfc_dev_loss_tmo - ドライバープログラムが、デバイス損失イベントに従って rport が返されるのを待つ初期時間。
mpt_pt_clear - Clear persistency table
mpt_saf_te : SEP プロセッサーを強制的に有効にする
|
QLogic Fibre Channel Driver | qla2xxx.ko | ql2xlogintimeout - ログインのタイムアウト値(秒単位)
qlport_down_retry : PORT-DOWN ステータスを返すポートへのコマンドの最大再試行回数
ql2xplogiabsentdevice - Fabric スキャン後に存在しないデバイスに PLOGI を有効にするオプション。
ql2xloginretrycount - NVRAM ログイン再試行回数の代替値を指定します。
ql2xallocfwdump - HBA の初期化中にファームウェアダンプのメモリー割り当てを有効にするオプション。デフォルトは 1 で、メモリーを割り当てます。
extended_error_logging - 拡張エラーログを有効にするオプション。
ql2xfdmienable - FDMI 登録を有効にします。
|
NCR、Symbios、LSI 8xx、および 1010 | sym53c8xx | cmd_per_lun - デフォルトで使用するタグの最大数
tag_ctrl : LUN ごとのタグの詳細な制御
Burst : 最大バースト0: 無効にするには 255、レジスターから読み取る場合は 255
led - 1 に設定して、LED サポートを有効にします。
diff - 0 (差分モードなし)、BIOS の場合は 1、常に 2、GPIO3 ではなく 3
irqm - open drain の場合は 0、totem pole をそのまま残す 1
buschk - 確認しない場合は 0、エラーの割り当て解除は 1、エラーの警告は 2 になります。
hostid - ホストアダプターに使用する SCSI ID
verb - 最小の詳細度は 0、通常の場合は 1、過剰の場合は 2
debug - デバッグを有効にするビットを設定します。
settle - 秒単位の遅延を設定します。デフォルト 3
NVRAM - 現在使用されていないオプション
excl : コントローラーが接続されないように、ここに ioport アドレスを一覧表示します。
safe - その他の設定をセーフモードに設定します。
|
45.5. イーサネットパラメーター
ハードウェア | モジュール | パラメーター |
---|---|---|
3com EtherLink PCIvideo/XL Vortex (3c590, 3c592, 3c597) Boomerang (3c900, 3c905, 3c595) | 3c59x.ko | debug - 3c59x デバッグレベル(0-6)
オプション - 3c59x: Bits 0-3: メディアタイプ、ビット 4: バスマスター、ビット 9: 完全なデュプレックス
global_options - 3c59x: オプションと同じですが、オプションが設定されていないとすべての NIC に適用されます。
full_duplex - 3c59x full duplex setting (s) (1)
global_full_duplex - 3c59x: full_duplex と同じですが、full_duplex が設定されていない場合にはすべての NIC に適用されます。
hw_checksums - アダプターによる 3c59x ハードウェアチェックサムチェック(0-1)
flow_ctrl - 3c59x 802.3x フロー制御の使用(PAUSE のみ) (0-1)
enable_wol - 3c59x: アダプターの Wake-on-LAN をオンにする(0-1)
global_enable_wol - 3c59x: enable_wol と同じですが、enable_wol が設定されていない場合にはすべての NIC に適用されます。
rx_copybreak - 3c59x copy breakpoint for copy-only-tiny-frames
max_interrupt_work - 割り込みごとに処理される 3c59x の最大イベント
compaq_ioaddr - 3c59x PCI I/O ベースアドレス(Compaq BIOS の問題回避策)
compaq_irq - 3c59x PCI IRQ 番号(Compaq BIOS の問題回避策)
compaq_device_id - 3c59x PCI デバイス ID (Compaq BIOS の問題回避策)
watchdog - 3c59x 送信タイムアウト(ミリ秒単位)
global_use_mmio - 3c59x: use_mmio と同じですが、オプションが設定されていないとすべての NIC に適用されます。
use_mmio - 3c59x: メモリーマッピング PCI I/O リソース(0-1)を使用します。
|
RTL8139、SMC EZ Card Fast Ethernet、RTL8129 を使用する RealTek カード、または RTL8139 Fast Ethernet チップセット | 8139too.ko | |
Broadcom 4400 10/100 PCI ethernet ドライバー | b44.ko | b44_debug - B44 ビットマッピングのデバッグメッセージの有効化値
|
Broadcom NetXtreme II BCM5706/5708 Driver | bnx2.ko | disable_msi - メッセージシグナル割り込み(MSI)の無効化
|
Intel Ether Express/100 ドライバー | e100.ko | debug - デバッグレベル(0=none,...,16=all)
eeprom_bad_csum_allow - 不正な eeprom チェックサムを許可します。
|
Intel EtherExpress/1000 ギガビット | e1000.ko | TxDescriptors - 送信記述子の数
RxDescriptors - 受信記述子の数
speed - Speed 設定
duplex -
Duplex 設定
AutoNeg - アドバタイズされたオートネゴシエーション設定
flowcontrol : フロー制御の設定
XsumRX - Receive Checksum オフロードを無効または有効にします。
TxIntDelay - 送信割り込みの遅延
TxAbsIntDelay - mit Absolute Interrupt Delay
RxIntDelay : Receive Interrupt Delay
RxAbsIntDelay - Receive Absolute Interrupt Delay
InterruptThrottleRate - Interrupt Throttling Rate
SmartPowerDownEnable - Enable PHY smart power down
KumeranLockLoss - Kumeran ロック損失回避策を有効にする
|
Myricom 10G driver (10GbE) | myri10ge.ko | myri10ge_fw_name - ファームウェアイメージ名
myri10ge_ecrc_enable - PCI-E で Extended CRC を有効にする
myri10ge_max_intr_slots - 割り込みキュースロット
myri10ge_small_bytes - 小さいパケットのしきい値
myri10ge_msi - メッセージ署名割り込みの有効化
myri10ge_intr_coal_delay - Interrupt coalescing delay
myri10ge_flow_control - Pause パラメーター
myri10ge_deassert_wait - レガシー割り込みを破棄する際に待機する
myri10ge_force_firmware : ファームウェアがアライメントされた完了を想定するように強制する
myri10ge_skb_cross_4k - 4KB の境界を超える小規模な skb 可能性
myri10ge_initial_mtu - 初期 MTU
myri10ge_napi_weight — Set NAPI weight
myri10ge_watchdog_timeout - ウォッチドッグのタイムアウトを設定します。
myri10ge_max_irq_loops - スタックしたレガシー IRQ 検出しきい値を設定します
|
NatSemi DP83815 Fast Ethernet | natsemi.ko | MTU : DP8381x MTU (すべてのボード)
debug - DP8381x のデフォルトデバッグレベル
rx_copybreak - DP8381x copy breakpoint for copy-only-tiny-frames
オプション - DP8381x: Bits 0-3: メディアタイプ、ビット 17: full duplex
full_duplex - DP8381x full duplex setting (s) (1)
|
AMD PCnet32 and AMD PCnetPCI | pcnet32.ko | |
PCnet32 および PCnetPCI | pcnet32.ko | debug - pcnet32 デバッグレベル
max_interrupt_work - pcnet32 割り込みごとに処理される最大イベント
rx_copybreak - pcnet32 copy breakpoint for copy-only-tiny-frames
tx_start_pt - pcnet32 送信開始ポイント(0-3)
pcnet32vlb - pcnet32 Vesa local bus (VLB)サポート(0/1)
オプション - pcnet32 初期オプション設定(0-15)
full_duplex - pcnet32 full duplex setting (s) (1)
homepna - 79C978 カードの pcnet32 モード(HomePNA の場合は 1、イーサネットの場合は 0、デフォルトイーサネット)
|
Realtek RTL-8169 Gigabit Ethernet driver | r8169.ko | メディア : phy 操作を強制します。ethtool (8)で非推奨になりました。
rx_copybreak - copy-only-tiny-frames のブレークポイントをコピー
use_dac - PCI DAC を有効にします。32 ビットの PCI スロットでは安全ではありません。
debug - デバッグの詳細レベル(0=none, ..., 16=all)
|
Neterion Xframe 10GbE サーバーアダプター | s2io.ko | |
SIS 900/701G PCI Fast Ethernet | sis900.ko | multicast_filter_limit - SiS 900/7016 フィルターリングされたマルチキャストアドレスの最大数
max_interrupt_work - SiS 900/7016 割り込みごとに処理される最大イベント
sis900_debug - SiS 900/7016 ビットマッピングのデバッグメッセージレベル
|
Adaptec Starfire イーサネットドライバー | starfire.ko | max_interrupt_work : 割り込みごとに処理される最大イベント
MTU : MTU (全ボード)
debug - デバッグレベル(0-6)
rx_copybreak - copy-only-tiny-frames のブレークポイントをコピー
intr_latency : 最大割り込みレイテンシー(マイクロ秒単位)
small_frames : 割り込みレイテンシーをバイパスする受信フレームの最大サイズ(0,64,128,256,512)
オプション - 非推奨:Bits 0-3: メディアタイプ、ビット 17: 完全なデュプレックス
full_duplex - 非推奨:完全なデュプレックス設定を強制(0/1)
enable_hw_cksum - ハードウェアcksum サポートを有効/無効にします(0/1)
|
Broadcom Tigon3 | tg3.ko | tg3_debug - Tigon3 ビットマッピングのデバッグメッセージの有効化値
|
ThunderLAN PCI | tlan.ko | aui - ThunderLAN は AUI ポート(0-1)を使用します。
duplex - ThunderLAN デュプレックス設定(0-default、1-half、2-full)
速度 - ThunderLAN ポートスペンデン設定(0,10,100)
debug - ThunderLAN デバッグマスク
bbuf - ThunderLAN は big buffer (0-1)を使用します。
|
digital 21x4x Tulip PCI Ethernet cards SMC EtherPower 10 PCI (8432T/8432BT) SMC EtherPower 10/100 PCI (9332DST) DEC EtherWorks 100/10 PCI (DE500-XA) DEC EtherWorks 10 PCI (DE450) DEC QSILVER's, Znyx 312 etherarray Allied Telesis LA100PCI-T Danpex EN-9400, Cogent EM110 | tulip.ko | io io_port |
VIA VT86c100A Rhine-II PCI または 3043 Rhine-I D-Link DFE-930-TX PCI 10/100 のいずれかを使用した VIA Rhine PCI Fast Ethernet カード | via-rhine.ko | max_interrupt_work - VIA Rhine 割り込みごとに処理される最大イベント
debug - VIA Rhine デバッグレベル(0-7)
rx_copybreak - copy-only-tiny-frames の VIA Rhine copy breakpoints
avoid_D3 - 電源状態 D3 を回避(破損した BIOS の回避策)
|
45.5.1. Channel Bonding モジュール
ボンディングカーネルモジュールと、チャンネルボンディング
インターフェイス と呼ばれる特別なネットワークインターフェイスを使用して、NIC を 1 つの チャンネル にバインドできます。このチャンネルボンディングにより、複数のネットワークインターフェイスが 1 つとして機能できるようになり、また同時に帯域幅が増加し、冗長性を提供します。
- 以下の行を
/etc/modprobe.conf
に追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow alias bond<N> bonding
alias bond<N> bonding
< ;N& gt; を 0 などのインターフェイス番号に置き換えます。設定したチャンネルボンディングインターフェイスごとに、/etc/modprobe.conf
に対応するエントリーが必要です。 - 「チャンネルボンディングインターフェイス」 で説明されているように、チャンネルボンディングインターフェイスを設定します。
- パフォーマンスを強化するには、利用可能なモジュールオプションを調節して、最適な組み合わせを確認します。特に miimon、arp_interval、arp_ip_target パラメーターに注意してください。利用可能なオプション一覧と、ボンディングされたインターフェイスに最適なオプションを迅速に判別する方法については、「ボンディングモジュールのディレクティブ」 を参照してください。
45.5.1.1. ボンディングモジュールのディレクティブ
ifcfg-bond0
など)の BONDING_OPTS=" <bonding parameters> " ディレクティブに追加する前に、ボンディングされたインターフェイスにどのチャンネルボンディングモジュールパラメーター
が最適かをテストすることが推奨されます。ボンディングされたインターフェイスのパラメーターは、sysfs
ファイルシステム内のファイルを操作することで、ボンディングモジュールをアンロード (およびリロード) することなく設定できます。
sysfs
は、カーネルオブジェクトをディレクトリー、ファイル、シンボリックリンクとして表す仮想ファイルシステムです。sysfs
を使用すると、カーネルオブジェクトに関する情報のクエリーや、通常のファイルシステムコマンドを使用することでこれらのオブジェクトを操作することもできます。sysfs
仮想ファイルシステムには /etc/fstab
の行があり、/sys
の下にマウントされます。ボンディングされたインターフェイスはすべて、/sys/class/net/
ディレクトリー配下のファイルと対話して動的に設定できます。
ifcfg-bond0
などのチャンネルボンディングインターフェイスファイルを作成し、「チャンネルボンディングインターフェイス」 の手順に従ってボンディングされたインターフェイスに SLAVE=yes
ディレクティブおよび MASTER=bond0
ディレクティブを挿入した後に、ボンディングされたインターフェイスに最適なパラメーターのテストと判断に進むことができます。
N> を root として実行して、作成した ボンディング
を起動
します。
ifconfig bond0 up
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]
~]# 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
~]# cat /sys/class/net/bonding_masters
bond0
/sys/class/net/bond <N> /bonding/ ディレクトリーにあるファイルを操作することで、各ボンドを
個別に設定できます。まず、設定するボンドをダウンにします。
ifconfig bond0 down
ifconfig bond0 down
echo 1000 > /sys/class/net/bond0/bonding/miimon
echo 1000 > /sys/class/net/bond0/bonding/miimon
balance-alb
モードに設定するには、以下のいずれかを実行できます。
echo 6 > /sys/class/net/bond0/bonding/mode
echo 6 > /sys/class/net/bond0/bonding/mode
echo balance-alb > /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
)の設定に関する詳細は、「チャンネルボンディングインターフェイス」 を参照してください。
チャンネルボンディングの設定に関する詳細とボンディングモジュールパラメーターの完全リストの詳細は、kernel-doc パッケージをインストールし、含まれている bonding.txt
ファイルを見つけて開きます。
yum -y install kernel-doc nano -w $(rpm -ql kernel-doc | grep bonding.txt)
yum -y install kernel-doc
nano -w $(rpm -ql kernel-doc | grep bonding.txt)
ボンディングインターフェイスパラメーター
-
arp_interval=<time_in_milliseconds>
- ARP 監視が発生する頻度を指定します(ミリ秒単位)。重要な影響
arp_interval
およびarp_ip_target
の両パラメーター、あるいはmiimon
パラメーターの指定は不可欠です。指定されないと、リンクが失敗した場合にネットワークパフォーマンスが低下する恐れがあります。mode=0 または mode
=1
(2 つの負荷分散モード)でこの設定を使用する場合は、NIC 全体に均等にパケットを分散するようにネットワークスイッチを設定する必要があります。これを実行する方法の詳細については、/usr/share/doc/kernel-doc- <kernel_version> /Documentation/networking/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
です。 -
debug=<number>
- デバッグメッセージを有効にします。以下の値が使用できます。
0
: デバッグメッセージが無効になります。これがデフォルトです。1
: デバッグメッセージが有効になっています。
-
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 で以下のコマンドを入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ethtool <interface_name> | grep "Link detected:"
ethtool <interface_name> | grep "Link detected:"
このコマンドで、< ;interface_name> をボンディングインターフェイスではなく、eth0
などのデバイスインターフェイスの名前に置き換えます。MII が対応している場合は、コマンドは以下を返します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Link detected: yes
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 (排他的または)ポリシーを設定します。この方法では、インターフェイスは、スレーブ NIC のいずれかに対して、受信要求の MAC アドレスと MAC アドレスが照合されます。このリンクが確立されると、最初に利用可能なインターフェイスから順番に送信が送信されます。broadcast
または3
: 耐障害性にブロードキャストポリシーを設定します。すべての送信は、すべてのスレーブインターフェイスで行われます。802.3ad
または4
: IEEE 802.3ad 動的リンクアグリゲーションのポリシーを設定します。同一の速度とデュプレックス設定を共有するアグリゲーショングループを作成します。アクティブなアグリゲーターのすべてのスレーブで送受信を行います。802.3ad に対応するスイッチが必要です。balance-tlb
または5
: 耐障害性とロードバランシングのための送信ロードバランシング (TLB) ポリシーを設定します。発信トラフィックは、各スレーブインターフェイスの現在の負荷に従って分散されます。受信トラフィックは、現在のスレーブにより受信されます。受信しているスレーブが失敗すると、別のスレーブが失敗したスレーブの MAC アドレスを引き継ぎます。balance-alb
または6
: 耐障害性とロードバランシングに Active Load Balancing (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
モードの場合にのみ有効です。詳細は、/usr/share/doc/kernel-doc- <kernel-version> /Documentation/networking/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 を使用してハッシュを生成します。使用する式は以下のとおりです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow (<source_MAC_address> XOR <destination_MAC>) MODULO <slave_count>
(<source_MAC_address> XOR <destination_MAC>) MODULO <slave_count>
このアルゴリズムは、すべてのトラフィックを同じスレーブの特定のネットワークピアに割り振り、802.3ad に対応します。1
またはlayer3+4
: 上位レイヤープロトコルの情報を (利用可能な場合は) 使用して、ハッシュを生成します。これにより、特定のネットワークピアへのトラフィックが複数のスレーブに及ぶようにできますが、単一の接続では複数のスレーブに及びません。断片化された TCP および UDP パケットに使用される公式は、以下のとおりです:Copy to Clipboard Copied! Toggle word wrap Toggle overflow ((<source_port> XOR <dest_port>) XOR ((<source_IP> XOR <dest_IP>) AND 0xffff) MODULO <slave_count>
((<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 プロトコル情報の組み合わせを使用して、ハッシュを生成します。ハードウェア MAC アドレスと IP アドレスの XOR を使用してハッシュを生成します。式は以下のとおりです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow (((<source_IP> XOR <dest_IP>) AND 0xffff) XOR ( <source_MAC> XOR <destination_MAC> )) MODULO <slave_count>
(((<source_IP> XOR <dest_IP>) AND 0xffff) XOR ( <source_MAC> XOR <destination_MAC> )) MODULO <slave_count>
このアルゴリズムは、すべてのトラフィックを同じスレーブの特定のネットワークピアに割り振ります。非 IP トラフィックの場合、式は layer2 送信ハッシュポリシーと同じです。このポリシーの目的は、特に layer3 ゲートウェイデバイスが大半の宛先に到達する必要がある環境において、layer2 単独の場合より分散されたトラフィックを提供することです。このアルゴリズムは、802.3ad に対応しています。
45.6. 関連情報
45.6.1. インストールされているドキュメント
- lsmod の man ページ - 出力の説明と説明。
- insmod の man ページ - コマンドラインオプションの説明とリスト。
- modprobe の man ページ - コマンドラインオプションの説明と一覧
- rmmod の man ページ - コマンドラインオプションの説明とリスト。
- modinfo の man ページ - コマンドラインオプションの説明とリスト。
/usr/share/doc/kernel-doc- <version> /Documentation/kbuild/modules.txt
- カーネルモジュールをコンパイルし、使用する方法。このファイルを読み取るには、kernel-doc
パッケージがインストールされている必要があります。
45.6.2. 便利な Web サイト
- http://tldp.org/HOWTO/Module-HOWTO/: 『Linux ドキュメントプロジェクトの Linux Loadable カーネルモジュール HOWTO』
第46章 kdump クラッシュリカバリーサービス
kdump
は高度なクラッシュダンプメカニズムです。有効にすると、システムは別のカーネルのコンテキストから起動します。この 2 番目のカーネルは少量のメモリーを予約し、その唯一の目的は、システムがクラッシュした場合にコアダンプイメージを取得することです。コアダンプを分析する機能は、システム障害の正確な原因を特定するのに役立ちます。そのため、この機能を有効にすることが強く推奨されます。
kdump
サービスの設定、テスト、および使用方法を説明します。また、crash デバッグユーティリティーを使用して、作成されるコアダンプを分析する方法の概要を説明します。
46.1. kdump
サービスのインストール
kdump
サービスを使用するには、kexec-tools パッケージがインストールされていることを確認します。これを行うには、root
で次のコマンドを実行します。
~]# yum install kexec-tools
~]# yum install kexec-tools
46.2. kdump
サービスの設定
kdump
サービスの設定には、一般的な 3 つの方法があります。初回起動時に有効にして設定するか、グラフィカルユーザーインターフェイスに Kernel Dump Configuration ユーティリティーを使用するか、コマンドラインで手動で行います。
Intel IOMMU
ドライバーの現在の実装の制限により、kdump
サービスがコアダンプイメージをキャプチャーできないことがあります。Intel アーキテクチャーで kdump
を確実に使用するには、IOMMU サポートを無効にすることが推奨されます。
kdump
サービスが確実に機能しないことが知られています。このため、ユーザーは本番環境で使用する前に設定をテストすることを強く推奨します。必要に応じて、ネットワーク経由でカーネルクラッシュダンプをリモートマシンに保存するように kdump
を設定することを強くお勧めします。kdump
設定のテスト方法は、「設定のテスト」 を参照してください。
46.2.1. 初回起動時の kdump の設定
kdump
を設定するには、Kdump ページに移動し、以下の手順に従います。
kdump
クラッシュリカバリーを有効にすると、最小メモリー要件が予約されたメモリー量によって増加します。この値は、ユーザーおよび x86 アーキテクチャー、AMD64 アーキテクチャー、および Intel 64 アーキテクチャーでは、物理メモリーの TB ごとに 128 MB と 64 MB (つまり、物理メモリーが 1 TB のシステムの合計 192 MB)にデフォルト設定されます。
図46.1 kdump 設定画面

[D]
46.2.1.1. サービスの有効化
kdump
デーモンを起動するには、kdump を有効 にする チェックボックスを選択します。これにより、ランレベル 2
、3
、4
、および 5
の サービスが有効になり、現行セッションで起動されます。同様に、チェックボックスを消去すると、すべてのランレベルでそのチェックボックスが無効になり、サービスがすぐに停止されます。
46.2.1.2. メモリー使用量の設定
kdump
カーネル用に予約されているメモリー量を設定するには、Kdump Memory フィールドの横にある上下の矢印ボタンをクリックして値を増減します。システムメモリー フィールドはそれに応じて変更され、システムで 使用 できる残りのメモリーが表示されます。
46.2.2. カーネルダンプ設定ユーティリティーの使用
root
パスワードを入力するように求められます。
図46.2 Kernel Dump 設定ユーティリティー

[D]
kdump
を設定し、システムの起動時にサービスを有効または無効にすることができます。完了したら、 をクリックして変更を保存します。システムの再起動が要求されます。
kdump
クラッシュリカバリーを有効にすると、最小メモリー要件が予約されたメモリー量によって増加します。この値は、ユーザーおよび x86 アーキテクチャー、AMD64 アーキテクチャー、および Intel 64 アーキテクチャーでは、物理メモリーの TB ごとに 128 MB と 64 MB (つまり、物理メモリーが 1 TB のシステムの合計 192 MB)にデフォルト設定されます。
46.2.2.1. サービスの有効化
kdump
デーモンを起動するには、kdump を有効 にする チェックボックスを選択します。これにより、ランレベル 2
、3
、4
、および 5
の サービスが有効になり、現行セッションで起動されます。同様に、チェックボックスを消去すると、すべてのランレベルでそのチェックボックスが無効になり、サービスがすぐに停止されます。
46.2.2.2. メモリー使用量の設定
kdump
カーネル用に予約されているメモリー容量を設定するには、New kdump Memory フィールドの横にある上下の矢印ボタンをクリックして値を増減します。システムで使用できるメモリーの残量に応じて Usable Memory フィールドが変わることに注意してください。
46.2.2.3. ターゲットタイプの設定
図46.3 Edit Location ダイアログ

[D]
/dev/sdb1
)を入力します。完了したら、 をクリックして選択を確定します。
penguin.example.com:/export
)。 ボタンをクリックすると、変更が確定します。最後に、Path フィールドの値を編集して、宛先ディレクトリー(例: cores
)をカスタマイズします。
ボタンをクリックすると、変更が確定します。最後に、Path フィールドの値を編集して、宛先ディレクトリー(例: /export/cores
)をカスタマイズします。
46.2.2.4. コアコレクターの設定
vmcore
ダンプファイルのサイズを縮小するために、kdump
では外部アプリケーション(つまりコアコレクター)を指定してデータを圧縮し、必要に応じて関連性のない情報をすべて除外できます。現在、完全にサポートされている唯一のコアコレクターは makedumpfile です。
-c
パラメーターがリストされていることを確認します(例: makedumpfile -c
)。
-d value
パラメーターを追加します。この 値 は、表46.1「サポートされるフィルターレベル」 で説明されているように、省略するページの値の合計です。たとえば、ゼロページと空きページの両方を削除するには、makedumpfile -d 17
を使用します。
46.2.2.5. デフォルトの動作の変更
kdump
がコアダンプの作成に失敗した場合に実行するアクションを選択するには、デフォルトのアクション プルダウン リストから適切なオプションを選択します。使用可能なオプションは、 (デフォルトの動作)、 (システムの再起動)、 (対話式シェルプロンプトを持つユーザーの表示)、および (システムを停止するため)です。
46.2.3. コマンドラインで kdump
の設定
46.2.3.1. メモリー使用量の設定
kdump
カーネル用に予約されるメモリー容量を設定するには、root
で /boot/grub/grub.conf
ファイルを開き、crashkernel= <size> M@16M
パラメーターをカーネルオプションの一覧に追加します( 例46.1「/boot/grub/grub.conf
ファイルのサンプル」 を参照)。
kdump
クラッシュリカバリーサービスは動作しません。最小メモリー要件については、Red Hat Enterprise Linux の比較チャート を参照してください。kdump
を有効にすると、最小メモリー要件は、予約されているメモリー量を増やします。この値は、ユーザーおよび x86 アーキテクチャー、AMD64 アーキテクチャー、および Intel 64 アーキテクチャーでは、物理メモリーの TB ごとに 128 MB と 64 MB (つまり、物理メモリーが 1 TB のシステムの合計 192 MB)にデフォルト設定されます。
例46.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-version.img
# 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-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-274.3.1.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-274.3.1.el5 ro root=/dev/sda3 crashkernel=128M@16M
initrd /initrd-2.6.18-274.3.1.el5.img
46.2.3.2. ターゲットタイプの設定
vmcore
ファイルをローカルファイルシステムの /var/crash/
ディレクトリーに保存します。これを変更するには、root
で /etc/kdump.conf
設定ファイルを開き、以下のようにオプションを編集します。
「#」path /var/crash
の行頭にあるハッシュ記号(#)を取り除き、値を希望のディレクトリーパスに置き換えます。必要に応じて、ファイルを別のパーティションに書き込む場合は、#ext3 /dev/sda3
行でも同じ手順に従い、ファイルシステムタイプとデバイス(デバイス名、ファイルシステムのラベル、UUID がすべてサポートされる)を変更します。以下に例を示します。
ext3 /dev/sda4 path /usr/local/cores
ext3 /dev/sda4
path /usr/local/cores
「#」raw /dev/sda5
の行頭にあるハッシュ記号(#)を取り除き、値を任意のデバイス名に置き換えます。以下に例を示します。
raw /dev/sdb1
raw /dev/sdb1
「#」net my.server.com:/export/tmp
の行頭にあるハッシュ記号(#)を取り除き、値を有効なホスト名とディレクトリーパスに置き換えます。以下に例を示します。
net penguin.example.com:/export/cores
net penguin.example.com:/export/cores
「#」net user@my.server.com
の行頭にあるハッシュ記号(#)を取り除き、値を有効なユーザー名およびホスト名に置き換えてください。以下に例を示します。
net john@penguin.example.com
net john@penguin.example.com
46.2.3.3. コアコレクターの設定
vmcore
ダンプファイルのサイズを縮小するために、kdump
では外部アプリケーション(つまりコアコレクター)を指定してデータを圧縮し、必要に応じて関連性のない情報をすべて除外できます。現在、完全にサポートされている唯一のコアコレクターは makedumpfile です。
/etc/kdump.conf
設定ファイルを root
として開き、「#」core_collector makedumpfile -c --message-level 1
の行頭にあるハッシュ記号(#)を取り除き、以下のようにコマンドラインオプションを編集します。
-c
パラメーターを追加します。以下に例を示します。
core_collector makedumpfile -c
core_collector makedumpfile -c
-d
valueパラメーターを追加します。value は、表46.1「サポートされるフィルターレベル」 で説明されているように、省略するページの値の合計になります。ゼロと未使用ページを除外する場合は次のようになります。
core_collector makedumpfile -d 17 -c
core_collector makedumpfile -d 17 -c
オプション | 説明 |
---|---|
1 | ゼロページ |
2 | キャッシュページ |
4 | キャッシュプライベート |
8 | ユーザーページ |
16 | フリーページ |
46.2.3.4. デフォルトの動作の変更
kdump
がコアダンプの作成に失敗すると、root ファイルシステムがマウントされ、/sbin/init が実行されます。この動作を変更するには、root
として /etc/kdump.conf
設定ファイルを開き、#default shell
の行頭にあるハッシュ記号(「#」)を取り除き、表46.2「サポートされるアクション」 で説明されているように、値を目的のアクションに置き換えます。以下に例を示します。
default halt
default halt
オプション | アクション |
---|---|
reboot | システムを再起動します。プロセスのコアが失われます。 |
halt | コアの取得に失敗した後に、システムを停止します。 |
shell | initramfs 内から msh セッションを実行し、ユーザーが手動でコアを記録できるようにします。 |
46.2.3.5. サービスの有効化
kdump
デーモンを起動するには、シェルプロンプトで root
として以下を入力します。
~]# chkconfig kdump on
~]# chkconfig kdump on
2
、3
、4
、および 5
の サービスが有効になります。同様に、chkconfig kdump off と入力すると、すべてのランレベルで無効になります。現行セッションでサービスを起動するには、root
で以下のコマンドを使用します。
~]# service kdump start No kdump initial ramdisk found. [WARNING] Rebuilding /boot/initrd-2.6.18-194.8.1.el5kdump.img Starting kdump: [ OK ]
~]# service kdump start
No kdump initial ramdisk found. [WARNING]
Rebuilding /boot/initrd-2.6.18-194.8.1.el5kdump.img
Starting kdump: [ OK ]
46.2.4. 設定のテスト
kdump
を有効にしてシステムを再起動し、root
でサービスが実行中であることを確認します。
~]# service kdump status Kdump is operational
~]# service kdump status
Kdump is operational
root
で次のコマンドを実行します。
~]# echo 1 > /proc/sys/kernel/sysrq ~]# echo c > /proc/sysrq-trigger
~]# echo 1 > /proc/sys/kernel/sysrq
~]# echo c > /proc/sysrq-trigger
YYYY-MM-DD-HH:MM/vmcore
ファイルが設定で選択した場所(デフォルトでは /var/crash/
)にコピーされます。
46.3. コアダンプの分析
vmcore
ダンプファイルを分析するには、crash パッケージおよび kernel-debuginfo パッケージがインストールされている必要があります。これを行うには、root
で次のコマンドを実行します。
~]# yum install --enablerepo=rhel-debuginfo crash kernel-debuginfo
~]# yum install --enablerepo=rhel-debuginfo crash kernel-debuginfo
netdump
、diskdump
、xendump
、または kdump
によって作成されたコアダンプを対話的に分析できます。開始すると、GNU Debugger (GDB)と非常に似ている対話式のプロンプトが表示されます。
crash /var/crash/timestamp/vmcore /usr/lib/debug/lib/modules/kernel/vmlinux
crash /var/crash/timestamp/vmcore /usr/lib/debug/lib/modules/kernel/vmlinux
kdump
が取得したバージョンと同じである必要があることに注意してください。現在実行中のカーネルを確認するには、uname -r コマンドを使用します。
例46.2 crash ユーティリティーの実行
~]# crash /var/crash/2010-08-04-17\:55/vmcore \ /usr/lib/debug/lib/modules/2.6.18-194.8.1.el5/vmlinux crash 4.1.2-4.el5_5.1 Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 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 6.1 Copyright 2004 Free Software Foundation, Inc. GDB 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. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i686-pc-linux-gnu"... KERNEL: /usr/lib/debug/lib/modules/2.6.18-194.8.1.el5/vmlinux DUMPFILE: /var/crash/2010-08-04-17:55/vmcore CPUS: 1 DATE: Wed Aug 4 17:50:41 2010 UPTIME: 00:56:53 LOAD AVERAGE: 0.47, 0.47, 0.55 TASKS: 128 NODENAME: localhost.localdomain RELEASE: 2.6.18-194.el5 VERSION: #1 SMP Tue Mar 16 21:52:43 EDT 2010 MACHINE: i686 (2702 Mhz) MEMORY: 1 GB PANIC: "SysRq : Trigger a crashdump" PID: 6042 COMMAND: "bash" TASK: f09c7000 [THREAD_INFO: e1ba9000] CPU: 0 STATE: TASK_RUNNING (SYSRQ) crash>
~]# crash /var/crash/2010-08-04-17\:55/vmcore \
/usr/lib/debug/lib/modules/2.6.18-194.8.1.el5/vmlinux
crash 4.1.2-4.el5_5.1
Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 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 6.1
Copyright 2004 Free Software Foundation, Inc.
GDB 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.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...
KERNEL: /usr/lib/debug/lib/modules/2.6.18-194.8.1.el5/vmlinux
DUMPFILE: /var/crash/2010-08-04-17:55/vmcore
CPUS: 1
DATE: Wed Aug 4 17:50:41 2010
UPTIME: 00:56:53
LOAD AVERAGE: 0.47, 0.47, 0.55
TASKS: 128
NODENAME: localhost.localdomain
RELEASE: 2.6.18-194.el5
VERSION: #1 SMP Tue Mar 16 21:52:43 EDT 2010
MACHINE: i686 (2702 Mhz)
MEMORY: 1 GB
PANIC: "SysRq : Trigger a crashdump"
PID: 6042
COMMAND: "bash"
TASK: f09c7000 [THREAD_INFO: e1ba9000]
CPU: 0
STATE: TASK_RUNNING (SYSRQ)
crash>
46.3.1. メッセージバッファーの表示
例46.3 カーネルメッセージバッファーの表示
crash> log Linux version 2.6.18-194.el5 (mockbuild@x86-007.build.bos.redhat.com) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Tue Mar 16 21:52:43 EDT 2010 BIOS-provided physical RAM map: BIOS-e820: 0000000000010000 - 000000000009fc00 (usable) BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved) BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved) BIOS-e820: 0000000000100000 - 000000003fff0000 (usable) BIOS-e820: 000000003fff0000 - 0000000040000000 (ACPI data) BIOS-e820: 00000000fffc0000 - 0000000100000000 (reserved) 127MB HIGHMEM available. 896MB LOWMEM available. Using x86 segment limits to approximate NX protection On node 0 totalpages: 262128 DMA zone: 4096 pages, LIFO batch:0 Normal zone: 225280 pages, LIFO batch:31 HighMem zone: 32752 pages, LIFO batch:7 DMI 2.5 present. Using APIC driver default ... several lines omitted ... SysRq : Trigger a crashdump
crash> log
Linux version 2.6.18-194.el5 (mockbuild@x86-007.build.bos.redhat.com) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Tue Mar 16 21:52:43 EDT 2010
BIOS-provided physical RAM map:
BIOS-e820: 0000000000010000 - 000000000009fc00 (usable)
BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000003fff0000 (usable)
BIOS-e820: 000000003fff0000 - 0000000040000000 (ACPI data)
BIOS-e820: 00000000fffc0000 - 0000000100000000 (reserved)
127MB HIGHMEM available.
896MB LOWMEM available.
Using x86 segment limits to approximate NX protection
On node 0 totalpages: 262128
DMA zone: 4096 pages, LIFO batch:0
Normal zone: 225280 pages, LIFO batch:31
HighMem zone: 32752 pages, LIFO batch:7
DMI 2.5 present.
Using APIC driver default
... several lines omitted ...
SysRq : Trigger a crashdump
46.3.2. バックトレースの表示
例46.4 カーネルスタックトレースの表示
crash> bt PID: 6042 TASK: f09c7000 CPU: 0 COMMAND: "bash" #0 [e1ba9d10] schedule at c061c738 #1 [e1ba9d28] netlink_getsockopt at c05d50bb #2 [e1ba9d34] netlink_queue_skip at c05d40d5 #3 [e1ba9d40] netlink_sock_destruct at c05d506d #4 [e1ba9d84] sock_recvmsg at c05b6cc8 #5 [e1ba9dd4] enqueue_task at c041eed5 #6 [e1ba9dec] try_to_wake_up at c041f798 #7 [e1ba9e10] vsnprintf at c04efef2 #8 [e1ba9ec0] machine_kexec at c0419bf0 #9 [e1ba9f04] sys_kexec_load at c04448a1 #10 [e1ba9f4c] tty_audit_exit at c0549f06 #11 [e1ba9f50] tty_audit_add_data at c0549d5d #12 [e1ba9f84] do_readv_writev at c0476055 #13 [e1ba9fb8] system_call at c0404f10 EAX: ffffffda EBX: 00000001 ECX: b7f7f000 EDX: 00000002 DS: 007b ESI: 00000002 ES: 007b EDI: b7f7f000 SS: 007b ESP: bf83f478 EBP: bf83f498 CS: 0073 EIP: 009ac402 ERR: 00000004 EFLAGS: 00000246
crash> bt
PID: 6042 TASK: f09c7000 CPU: 0 COMMAND: "bash"
#0 [e1ba9d10] schedule at c061c738
#1 [e1ba9d28] netlink_getsockopt at c05d50bb
#2 [e1ba9d34] netlink_queue_skip at c05d40d5
#3 [e1ba9d40] netlink_sock_destruct at c05d506d
#4 [e1ba9d84] sock_recvmsg at c05b6cc8
#5 [e1ba9dd4] enqueue_task at c041eed5
#6 [e1ba9dec] try_to_wake_up at c041f798
#7 [e1ba9e10] vsnprintf at c04efef2
#8 [e1ba9ec0] machine_kexec at c0419bf0
#9 [e1ba9f04] sys_kexec_load at c04448a1
#10 [e1ba9f4c] tty_audit_exit at c0549f06
#11 [e1ba9f50] tty_audit_add_data at c0549d5d
#12 [e1ba9f84] do_readv_writev at c0476055
#13 [e1ba9fb8] system_call at c0404f10
EAX: ffffffda EBX: 00000001 ECX: b7f7f000 EDX: 00000002
DS: 007b ESI: 00000002 ES: 007b EDI: b7f7f000
SS: 007b ESP: bf83f478 EBP: bf83f498
CS: 0073 EIP: 009ac402 ERR: 00000004 EFLAGS: 00000246
46.3.3. プロセスステータスの表示
例46.5 システム内のプロセスの状態の表示
crash> ps PID PPID CPU TASK ST %MEM VSZ RSS COMM 0 0 0 c068a3c0 RU 0.0 0 0 [swapper] 1 0 0 f7c81aa0 IN 0.1 2152 616 init ... several lines omitted ... 6017 1 0 e39f6550 IN 1.2 40200 13000 gnome-terminal 6019 6017 0 e39f6000 IN 0.1 2568 708 gnome-pty-helpe 6020 6017 0 f0421550 IN 0.1 4620 1480 bash 6021 1 0 f7f69aa0 ?? 1.2 40200 13000 gnome-terminal 6039 6020 0 e7e84aa0 IN 0.1 5004 1300 su > 6042 6039 0 f09c7000 RU 0.1 4620 1464 bash
crash> ps
PID PPID CPU TASK ST %MEM VSZ RSS COMM
0 0 0 c068a3c0 RU 0.0 0 0 [swapper]
1 0 0 f7c81aa0 IN 0.1 2152 616 init
... several lines omitted ...
6017 1 0 e39f6550 IN 1.2 40200 13000 gnome-terminal
6019 6017 0 e39f6000 IN 0.1 2568 708 gnome-pty-helpe
6020 6017 0 f0421550 IN 0.1 4620 1480 bash
6021 1 0 f7f69aa0 ?? 1.2 40200 13000 gnome-terminal
6039 6020 0 e7e84aa0 IN 0.1 5004 1300 su
> 6042 6039 0 f09c7000 RU 0.1 4620 1464 bash
46.3.4. 仮想メモリー情報の表示
例46.6 現在のコンテキストの仮想メモリー情報の表示
crash> vm PID: 6042 TASK: f09c7000 CPU: 0 COMMAND: "bash" MM PGD RSS TOTAL_VM e275ee40 e2b08000 1464k 4620k VMA START END FLAGS FILE e315d764 1fe000 201000 75 /lib/libtermcap.so.2.0.8 e315de9c 201000 202000 100073 /lib/libtermcap.so.2.0.8 c9b040d4 318000 46a000 75 /lib/libc-2.5.so e315da04 46a000 46c000 100071 /lib/libc-2.5.so e315d7b8 46c000 46d000 100073 /lib/libc-2.5.so e315de48 46d000 470000 100073 e315dba8 9ac000 9ad000 8040075 c9b04a04 a2f000 a4a000 875 /lib/ld-2.5.so c9b04374 a4a000 a4b000 100871 /lib/ld-2.5.so e315d6bc a4b000 a4c000 100873 /lib/ld-2.5.so e315d908 fa1000 fa4000 75 /lib/libdl-2.5.so e315db00 fa4000 fa5000 100071 /lib/libdl-2.5.so e315df44 fa5000 fa6000 100073 /lib/libdl-2.5.so e315d320 ff0000 ffa000 75 /lib/libnss_files-2.5.so e315d668 ffa000 ffb000 100071 /lib/libnss_files-2.5.so e315def0 ffb000 ffc000 100073 /lib/libnss_files-2.5.so e315d374 8048000 80f5000 1875 /bin/bash c9b045c0 80f5000 80fa000 101873 /bin/bash ... several lines omitted ...
crash> vm
PID: 6042 TASK: f09c7000 CPU: 0 COMMAND: "bash"
MM PGD RSS TOTAL_VM
e275ee40 e2b08000 1464k 4620k
VMA START END FLAGS FILE
e315d764 1fe000 201000 75 /lib/libtermcap.so.2.0.8
e315de9c 201000 202000 100073 /lib/libtermcap.so.2.0.8
c9b040d4 318000 46a000 75 /lib/libc-2.5.so
e315da04 46a000 46c000 100071 /lib/libc-2.5.so
e315d7b8 46c000 46d000 100073 /lib/libc-2.5.so
e315de48 46d000 470000 100073
e315dba8 9ac000 9ad000 8040075
c9b04a04 a2f000 a4a000 875 /lib/ld-2.5.so
c9b04374 a4a000 a4b000 100871 /lib/ld-2.5.so
e315d6bc a4b000 a4c000 100873 /lib/ld-2.5.so
e315d908 fa1000 fa4000 75 /lib/libdl-2.5.so
e315db00 fa4000 fa5000 100071 /lib/libdl-2.5.so
e315df44 fa5000 fa6000 100073 /lib/libdl-2.5.so
e315d320 ff0000 ffa000 75 /lib/libnss_files-2.5.so
e315d668 ffa000 ffb000 100071 /lib/libnss_files-2.5.so
e315def0 ffb000 ffc000 100073 /lib/libnss_files-2.5.so
e315d374 8048000 80f5000 1875 /bin/bash
c9b045c0 80f5000 80fa000 101873 /bin/bash
... several lines omitted ...
46.3.5. 開いているファイルの表示
例46.7 現在のコンテキストのオープンファイルについての情報の表示
crash> files PID: 6042 TASK: f09c7000 CPU: 0 COMMAND: "bash" ROOT: / CWD: /root FD FILE DENTRY INODE TYPE PATH 0 e33be480 e609bf70 f0e1d880 CHR /dev/pts/1 1 e424d8c0 d637add8 f7809b78 REG /proc/sysrq-trigger 2 e33be480 e609bf70 f0e1d880 CHR /dev/pts/1 10 e33be480 e609bf70 f0e1d880 CHR /dev/pts/1 255 e33be480 e609bf70 f0e1d880 CHR /dev/pts/1
crash> files
PID: 6042 TASK: f09c7000 CPU: 0 COMMAND: "bash"
ROOT: / CWD: /root
FD FILE DENTRY INODE TYPE PATH
0 e33be480 e609bf70 f0e1d880 CHR /dev/pts/1
1 e424d8c0 d637add8 f7809b78 REG /proc/sysrq-trigger
2 e33be480 e609bf70 f0e1d880 CHR /dev/pts/1
10 e33be480 e609bf70 f0e1d880 CHR /dev/pts/1
255 e33be480 e609bf70 f0e1d880 CHR /dev/pts/1
46.4. 関連情報
46.4.1. インストールされているドキュメント
- man kdump.conf
- 利用可能なオプションの詳細なドキュメントを含む
/etc/kdump.conf
設定ファイルの man ページです。 - man kexec
- kexec の man ページには、その使用方法に関する詳細なドキュメントが含まれています。
- man クラッシュ
- crash ユーティリティーの man ページには、その使用方法に関する完全なドキュメントが含まれています。
/usr/share/doc/kexec-tools-version/kexec-kdump-howto.txt
kdump
および kexec のインストールと使用の概要。
46.4.2. 便利な Web サイト
- https://access.redhat.com/kb/docs/DOC-6039
- kexec および
kdump
設定に関する Red Hat ナレッジベースアーティクルです。 - http://people.redhat.com/anderson/
- crash ユーティリティーのホームページです。
パート VII. セキュリティーおよび認証
第47章 セキュリティーの概要
47.1. セキュリティーの概要
47.1.1. コンピューターセキュリティーとは
47.1.1.1. How did Computer Security Come about?
47.1.1.2. Security Today
47.1.1.3. セキュリティーの標準化
- 機密性 - 機密情報は、事前に定義された個人だけが利用できるようにする必要があります。許可されていない情報の送信や使用は、制限する必要があります。たとえば、情報に機密性があれば、権限のない個人が顧客情報や財務情報を悪意のある目的 (ID 盗難やクレジット詐欺など) で入手できません。
- 保全性 - 情報は、改ざんして不完全または不正確なものにすべきではありません。承認されていないユーザーが、機密情報を変更したり破壊したりする機能を使用できないように制限する必要があります。
- 可用性 - 情報は、認証されたユーザーが必要な時にいつでもアクセスできるようにする必要があります。可用性は、合意した頻度とタイミングで情報を入手できることを保証します。これは、パーセンテージで表されることが多く、ネットワークサービスプロバイダーやその企業顧客が使用するサービスレベルアグリーメント (SLA) で正式に合意となります。
47.1.2. セキュリティーコントロール
- 物理的
- 技術的
- 管理的
47.1.2.1. 物理的コントロール
- 有線監視カメラ
- 動作または温度の感知アラームシステム
- 警備員
- 写真付き身分証明書
- 施錠された、デッドボルト付きのスチールドア
- バイオメトリクス (本人確認を行うための指紋、声、顔、虹彩、筆跡などの自動認識方法が含まれます)
47.1.2.2. 技術的コントロール
- 暗号化
- スマートカード
- ネットワーク認証
- アクセス制御リスト (ACL)
- ファイルの完全性監査ソフトウェア
47.1.2.3. 管理的コントロール
- トレーニングおよび認識の向上
- 災害準備および復旧計画
- 人員採用と分離の戦略
- 人員登録とアカウンティング
47.1.3. まとめ
47.2. 脆弱性のアセスメント
- 技術の設定、監視、および保守を行うスタッフの専門知識
- サービスとカーネルのパッチ、および更新を迅速かつ効率的に行う能力
- ネットワーク上での警戒を常に怠らない担当者の能力
47.2.1. 不利な点を考える
47.2.2. アセスメントとテストの定義
- 情報セキュリティーにプロアクティブなフォーカスを作成
- クラッカーが発見する前に潜在的な不正使用を見つける
- システムを最新の状態に保ち、パッチを当てる
- スタッフの専門知識開発における成長と支援
- Abates Financial loss and negative publicity
47.2.2.1. メソッドの確立
- http://www.isecom.org/projects/osstmm.htm 『Open Source Security Testing Methodology Manual』 (OSSTMM)
- http://www.owasp.org/ 『Open Web Application Security プロジェクト』
47.2.3. ツールの評価
47.2.3.1. Nmap を使用したホストのスキャン
47.2.3.1.1. Nmap の使用
nmap foo.example.com
nmap foo.example.com
Starting nmap V. 3.50 ( www.insecure.org/nmap/ ) Interesting ports on localhost.localdomain (127.0.0.1): (The 1591 ports scanned but not shown below are in state: closed) Port State Service 22/tcp open ssh 25/tcp open smtp 111/tcp open sunrpc 443/tcp open https 515/tcp open printer 950/tcp open oftep-rpc 6000/tcp open X11 Nmap run completed -- 1 IP address (1 host up) scanned in 71.825 seconds
Starting nmap V. 3.50 ( www.insecure.org/nmap/ )
Interesting ports on localhost.localdomain (127.0.0.1):
(The 1591 ports scanned but not shown below are in state: closed)
Port State Service
22/tcp open ssh
25/tcp open smtp
111/tcp open sunrpc
443/tcp open https
515/tcp open printer
950/tcp open oftep-rpc
6000/tcp open X11
Nmap run completed -- 1 IP address (1 host up) scanned in 71.825 seconds
47.2.3.2. Nessus
47.2.3.3. Nikto
47.2.3.4. VLAD the Scanner
47.2.3.5. 将来のニーズの予測
47.3. 攻撃者および脆弱性
47.3.1. ハッカーのクイック履歴
47.3.1.1. Gray の shades
47.3.2. ネットワークセキュリティーへの脅威
47.3.2.1. セキュリティーが十分ではないアーキテクチャー
47.3.2.1.1. ブロードキャストネットワーク
47.3.2.1.2. 集中化サーバー
47.3.3. サーバーセキュリティーへの脅威
47.3.3.1. 未使用のサービスと開かれたポート
47.3.3.2. パッチが適用されないサービス
47.3.3.3. 管理における不注意
47.3.3.4. 本質的に安全ではないサービス
47.3.4. ワークステーションおよび家庭用 PC のセキュリティーに対する脅威
47.3.4.1. 不適切なパスワード
47.3.4.2. 脆弱なクライアントアプリケーション
47.4. 一般的な不正使用と攻撃
不正使用 | 説明 | 注記 | |||
---|---|---|---|---|---|
空またはデフォルトのパスワード | 管理パスワードを空白のままにしたり、製品ベンダーが設定したデフォルトのパスワードをそのまま使用します。これは、ルーターやファイアウォールなどのハードウェアで最もよく見られますが、Linux で実行されるサービスにはデフォルトの管理者パスワードを含めることができます(ただし、Red Hat Enterprise Linux 5 には同梱されません)。 |
| |||
デフォルトの共有鍵 | セキュアなサービスでは、開発や評価テスト向けにデフォルトのセキュリティー鍵がパッケージ化されていることがあります。この鍵を変更せずにインターネットの実稼働環境に置いた場合は、同じデフォルトの鍵を持つ すべての ユーザーがその共有鍵のリソースや、そこにあるすべての機密情報にアクセスできるようになります。 |
| |||
IP スプーフィング | リモートマシンがローカルネットワークのノードのように動作し、サーバーに脆弱性を見つけるとバックドアプログラムまたはトロイの木馬をインストールして、ネットワークリソース全体へのコントロールを得ようとします。 |
| |||
盗聴 | 2 つのノード間の接続を盗聴することにより、ネットワーク上のアクティブなノード間を行き交うデータを収集します。 |
| |||
サービスの脆弱性 | 攻撃者はインターネットで実行しているサービスの欠陥や抜け穴を見つけます。攻撃者がこの脆弱性を利用する場合は、システム全体と格納されているデータを攻撃するだけでなく、ネットワーク上の他のシステムも攻撃する可能性があります。 |
| |||
アプリケーションの脆弱性 | 攻撃者はデスクトップおよびワークステーションのアプリケーション(メールクライアントなど)で障害を見つけ、任意コードを実行し、今後の不正使用のために Trojan Horses を引き継ぎ、システムをクラッシュさせます。攻撃を受けたワークステーションがネットワークの残りの部分に対して管理特権を持っている場合は、さらなる不正使用が起こる可能性があります。 |
| |||
サービス拒否攻撃 (DoS: Denial of Service) | 単独の攻撃者または攻撃者のグループは、目標のホスト (サーバー、ルーター、ワークステーションのいずれか) に認証されていないパケットを送り、組織のネットワークまたはサーバーのリソースに対して攻撃を仕掛けます。これにより、正当なユーザーがリソースを使用できなくなります。 |
|
47.5. セキュリティー更新
47.5.1. パッケージの更新
- 一覧表示され、Red Hat Network でダウンロードできます。
- Red Hat エラータ Web サイトで一覧表示およびリンク解除
47.5.1.1. RHN Classic での自動更新の使用
47.5.1.2. Red Hat エラータ Web サイトの使用
/tmp/updates
などの新しいディレクトリーを作成し、ダウンロードしたパッケージをすべて保存することを強く推奨します。
47.5.1.3. 署名パッケージの検証
/mnt/cdrom
にマウントされている場合は、以下のコマンドを使用してキー リング (システム上の信頼できるキーのデータベース)にインポートします。
rpm --import /mnt/cdrom/RPM-GPG-KEY-redhat-release
rpm --import /mnt/cdrom/RPM-GPG-KEY-redhat-release
rpm -qa gpg-pubkey*
rpm -qa gpg-pubkey*
gpg-pubkey-37017186-45761324
gpg-pubkey-37017186-45761324
rpm -qi gpg-pubkey-37017186-45761324
rpm -qi gpg-pubkey-37017186-45761324
rpm -K /tmp/updates/*.rpm
rpm -K /tmp/updates/*.rpm
gpg OK
を返します。そうでない場合は、正しい Red Hat 公開鍵を使用していることと、コンテンツのソースを確認してください。GPG 検証に合格しないパッケージは、サードパーティーによって変更されている可能性があるため、インストールしないでください。
47.5.1.4. 署名パッケージのインストール
rpm -Uvh /tmp/updates/*.rpm
rpm -Uvh /tmp/updates/*.rpm
rpm -ivh /tmp/updates/<kernel-package>
rpm -ivh /tmp/updates/<kernel-package>
rpm -e <old-kernel-package>
rpm -e <old-kernel-package>
47.5.1.5. 変更の適用
- アプリケーション
- ユーザー空間アプリケーションは、システムユーザーが開始できるプログラムです。通常、このようなアプリケーションは、ユーザー、スクリプト、または自動タスクユーティリティーがそれらを起動し、長期間維持されない場合にのみ使用されます。このようなユーザー空間アプリケーションが更新されたら、システム上のアプリケーションのインスタンスをすべて停止し、プログラムを再度起動し、更新されたバージョンを使用します。
- カーネル
- カーネルは、Red Hat Enterprise Linux オペレーティングシステムのコアソフトウェアコンポーネントです。メモリー、プロセッサー、および周辺機器へのアクセスを管理し、すべてのタスクをスケジュールします。その中心的なロールがあるため、コンピューターを停止せずにカーネルを再起動することはできません。そのため、システムを再起動するまで、更新されたバージョンのカーネルを使用することはできません。
- 共有ライブラリー
- 共有ライブラリーは、多くのアプリケーションやサービスによって使用される
glibc
などのコードの単位です。共有ライブラリーを使用するアプリケーションは、通常、アプリケーションの初期化時に共有コードを読み込むため、更新されたライブラリーを使用するアプリケーションはすべて停止および再起動する必要があります。実行中のどのアプリケーションが特定のライブラリーに対してリンクしているかを確認するには、以下の例のように lsof コマンドを使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow lsof /usr/lib/libwrap.so*
lsof /usr/lib/libwrap.so*
このコマンドは、ホストアクセス制御に TCP ラッパーを使用する実行中のすべてのプログラム一覧を返します。したがって、tcp_wrappers
パッケージが更新されると、リストされているプログラムは停止して再起動する必要があります。 - SysV Services
- SysV サービスは、システムの起動プロセス中に起動する永続的なサーバープログラムです。SysV サービスの例としては、sshd、vsftpd、xinetd などがあります。これらのプログラムは通常マシンが起動されている限りメモリーに保持されるため、更新された各 SysV サービスは、パッケージのアップグレード後に停止して再起動する必要があります。これは、Services Configuration Tool を使用するか、root シェルプロンプトにログインして、/sbin/service コマンドを以下の例のように実行して実行できます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow service <service-name> restart
service <service-name> restart
前の例で、< ;service-name& gt; を sshd などのサービスの名前に置き換えます。Services Configuration Tool の詳細は、17章Network Configuration を参照してください。 - xinetd サービス
- xinetd スーパーサービスが制御するサービスは、アクティブな接続がある場合にのみ実行されます。xinetd が制御するサービスの例には、Telnet、IMAP、および POP3 が含まれます。これらのサービスの新しいインスタンスは新しいリクエストを受け取るたびに xinetd によって起動されるため、アップグレード後に発生する接続は更新されたソフトウェアによって処理されます。ただし、xinetd が制御するサービスのアップグレード時にアクティブな接続がある場合は、ソフトウェアの古いバージョンによって提供されます。特定の xinetd 制御サービスの古いインスタンスを強制終了するには、そのサービスの パッケージをアップグレードしてから、現在実行中のプロセスをすべて停止します。プロセスが実行されているかどうかを確認するには、ps コマンドを使用して kill または killall コマンドを使用して、サービスの現在のインスタンスを停止します。たとえば、セキュリティーエラータ
imap
パッケージがリリースされている場合は、パッケージをアップグレードし、root でシェルプロンプトに以下のコマンドを入力します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ps -aux | grep imap
ps -aux | grep imap
このコマンドは、アクティブな IMAP セッションをすべて返します。以下のコマンドを実行すると、個々のセッションを終了できます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow kill <PID>
kill <PID>
セッションの終了に失敗した場合は、代わりに以下のコマンドを使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow kill -9 <PID>
kill -9 <PID>
前の例では、& lt;PID > を IMAP セッションのプロセス ID 番号( ps コマンドの 2 列目にある)に置き換えます。アクティブな IMAP セッションをすべて強制終了するには、以下のコマンドを実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow killall imapd
killall imapd
第48章 ネットワークのセキュリティー保護
48.1. ワークステーションのセキュリティー
48.1.1. ワークステーションのセキュリティーの評価
- BIOS およびブートローダーセキュリティー:承認されていないユーザーがマシンに物理的にアクセスし、パスワードなしで単一ユーザーまたはレスキューモードで起動 できますか ?
- パスワードセキュリティー - マシン上のユーザーアカウントのパスワードのセキュリティーはどのように安全ですか ?
- 管理コントロール - システム上にアカウントがあり、管理者の制御はどの程度ありますか ?
- 利用可能なネットワーク サービス - ネットワークからの要求をリッスンしているサービスや、それらを全く実行すべきサービス
- パーソナル ファイアウォール - 必要なファイアウォールのタイプ。
- Security Enhanced Communication Tools - ワークステーションと、避けるべきなワークステーション間の通信に使用する必要があるツールは何ですか ?
48.1.2. BIOS およびブートローダーのセキュリティー
48.1.2.1. BIOS パスワード
- BIOS 設定の変更を防止する - 侵入者が BIOS にアクセスできる場合は、ディスケットまたは CD-ROM から起動するように設定できます。このようにすると、侵入者がレスキューモードやシングルユーザーモードに入ることが可能になり、システムで任意のプロセスを開始したり、機密性の高いデータをコピーできるようになってしまいます。
- システムの起動を防止する - BIOS の中には起動プロセスをパスワードで保護できるものもあります。これを有効にすると、攻撃者は BIOS がブートローダーを開始する前にパスワード入力を求められます。
48.1.2.1.1. x86 以外のプラットフォームのセキュリティー保護
48.1.2.2. ブートローダーのパスワード
- シングルユーザーモードへのアクセスの防止 - 攻撃者がシステムをシングルユーザーモードで起動できる場合、root パスワードを求められることなく、root として自動的にログインします。
- GRUB コンソールへのアクセスの防止 - マシンがブートローダーとして GRUB を使用している場合、攻撃者は GRUB エディターインターフェイスを使用して設定を変更したり、cat コマンドを使用して情報を収集したりできます。
- 安全でないオペレーティングシステムへのアクセスの防止 - デュアルブートシステムの場合、攻撃者はアクセス制御やファイルパーミッションを無視するオペレーティングシステムを起動時に選択することができます(DOS など)。
48.1.2.2.1. GRUB が保護するパスワード
grub-md5-crypt
grub-md5-crypt
/boot/grub/grub.conf
を編集します。ファイルを開き、ドキュメントのメインセクションにある timeout 行の下に、以下の行を追加します。
password --md5 <password-hash>
password --md5 <password-hash>
/boot/grub/grub.conf
ファイルの別の部分を編集する必要があります。
title
行を探し、その下の lock ディレクティブの行を追加します。
title DOS lock
title DOS lock
/boot/grub/grub.conf
ファイルのメインセクションに password
行が存在する必要があります。そうしないと、攻撃者は GRUB エディターインターフェイスにアクセスし、ロックラインを削除できます。
title DOS lock password --md5 <password-hash>
title DOS lock password --md5 <password-hash>
48.1.3. パスワードセキュリティー
/etc/passwd
ファイルに保存されるため、システムはオフラインでのパスワードクラッキング攻撃に対して脆弱になります。侵入者が通常のユーザーとしてマシンにアクセスできる場合は、/etc/passwd
ファイルを自分のマシンにコピーし、それに対して任意の数のパスワードクラッキングプログラムを実行できます。ファイル内に安全でないパスワードがあれば、パスワードクラッカーに発見されるのは時間の問題です。
/etc/shadow
に保存することで、このタイプの攻撃を排除します。
48.1.3.1. 強固なパスワードの作成
- Words または Numbers のみは使用しないでください。パスワードには数字または単語のみを使用しないでください。非セキュアな例には、以下が含まれます。
- 8675309
- juan
- hackme
- Recogniz able Words は使用しないでください。適切な名前、辞書の単語、またはテレビター の用語や、数字で予約されている場合でも、回避すべきです。非セキュアな例には、以下が含まれます。
- john1
- DS-9
- mentat123
- Foreign Languages で Words を使用しないでください。パスワードクラッキングプログラムは、多くの言語のディクショナリーを含む単語リストに対してチェックを行う ことがよくあります。安全なパスワードに外部言語を使用することは安全ではありません。非セキュアな例には、以下が含まれます。
- cheguevara
- bienvenido1
- 1dumbKopf
- do not use Hacker Terminology: ハッカーの用語(l337 (LEET)マクターとも呼ばれる)を使用する場合には、パスワードについて再度考えてください。多くの単語リストには、LEET マクターが含まれます。非セキュアな例には、以下が含まれます。
- H4X0R
- 1337
- do not use Personal Information - パスワードに個人情報を使用 しないでください。攻撃者がアイデンティティーを知らせると、パスワードを減らすタスクが簡単になります。以下は、パスワードの作成時に回避する情報の種類の一覧です。非セキュアな例には、以下が含まれます。
- 自分の名前
- ペットの名前
- ファミリーメンバーの名前
- 生年月日
- 電話番号または zip コード
- Not Invert Recognizable Words - Good password checkers always reverse common words, so inverting a bad password does not any more secure.非セキュアな例には、以下が含まれます。
- R0X4H
- nauj
- 9-DS
- Do not Write Down Your Password: 文書にパスワードを保存しないでください。覚えておく方がはるかに安全です。
- すべてのマシンに同じパスワードを使用しないでください。各マシンに個別のパスワードを作成することが重要です。これにより、1 つのシステムが危険にさらされると、すべてのマシンが危険にさらされることはありません。
- パスワード を Least Eight Characters Long にする - パスワードが より長くなります。MD5 パスワードを使用する場合は、15 文字以上である必要があります。DES パスワードでは、最大長(8 文字)を使用します。
- 大文字の組み合わせと小文字の組み合わせ - Red Hat Enterprise Linux は大文字と小文字を区別するため、組み合わせてパスワードの強度を強化します。
- 英数字と番号の組み合わせ - 特に(最初または末尾だけでなく)中間者に追加する場合はパスワードの強度を強化できます。
- Include Non-Alphanumeric Characters - &, $, > などの特殊文字を使用すると、パスワードの強度が大幅に向上します(DES パスワードを使用する場合は不可能です)。
- パスワード を覚えておくことができない場合、パスワードの選択 - 世界で最善な パスワードはほとんど役に立ちません。パスワードを記憶するには、頭文字などのデバイスを使用してください。
48.1.3.1.1. 安全なパスワード作成方法
- 以下のような簡単に覚えているフレーズについて考えてみましょう。"Randm through the river and through the woods, to grandmother's house we go."
- 次に、頭字語(句読点を含む)に変換します。
otrattw,tghwg.
- 略語の文字の番号と記号を置き換えて、複雑さを追加します。たとえば、
7
をt
に、at 記号(@
)をa
に置き換えます。o7r@77w,7ghwg.
H
など、少なくとも 1 文字を大文字にして、複雑さをさらに追加します。o7r@77w,7gHwg.
- 最後に、システムには上記のサンプルパスワードを使用しないでください。
48.1.3.2. 組織内でのユーザーパスワードの作成
48.1.3.2.1. 強固なパスワードの強制
pam_NORMAL.so
PAM モジュールを使用して実行されます。PAM はカスタマイズ可能であるため、pam_passwdqc
( http://www.openwall.com/passwdqc/から利用可能)や新しいモジュールを書き込むなど、パスワード整合性チェッカーをさらに追加することができます。利用可能な PAM モジュールの一覧は、http://www.kernel.org/pub/linux/libs/pam/modules.html を参照してください。PAM の詳細は、「PAM (プラグ可能な認証モジュール)」 を参照してください。
- John The Ripper - 高速で柔軟なパスワードクラッキングプログラム。複数の単語リストを使用でき、ブルートフォースのパスワードクラッキングが可能です。http://www.openwall.com/john/ からオンラインで使用できます。
- crack - 最もよく知られているパスワードクラッキングソフトウェアも非常 に 高速ですが、John The Ripper として簡単に使用できません。オンラインについては http://www.openwall.com/john/ を参照してください。
- Slurpie - Slurpie は John The Ripper and Crack と似ていますが、複数のコンピューターで同時に実行するように設計されており、分散パスワードクラッキング攻撃を作成します。これは、http://www.ussrback.com/distributed.htm でオンラインの他の多くの分散攻撃セキュリティー評価ツールと共に確認できます。
48.1.3.2.2. パスワードのエージング
-M
オプションは、パスワードの最大有効日数を指定します。たとえば、ユーザーのパスワードを 90 日間で期限切れになるように設定するには、以下のコマンドを使用します。
chage -M 90 <username>
chage -M 90 <username>
-M
オプションの後に 99999 の値を使用することは従来の 273 年以上に相当します。
chage <username>
chage <username>
~]# chage davido Changing the aging information for davido Enter the new value, or press ENTER for the default Minimum Password Age [0]: 10 Maximum Password Age [99999]: 90 Last Password Change (YYYY-MM-DD) [2006-08-18]: Password Expiration Warning [7]: Password Inactive [-1]: Account Expiration Date (YYYY-MM-DD) [1969-12-31]: ~]#
~]# chage davido
Changing the aging information for davido
Enter the new value, or press ENTER for the default
Minimum Password Age [0]: 10
Maximum Password Age [99999]: 90
Last Password Change (YYYY-MM-DD) [2006-08-18]:
Password Expiration Warning [7]:
Password Inactive [-1]:
Account Expiration Date (YYYY-MM-DD) [1969-12-31]:
~]#
- パネル上の system-config-users を入力します。メニューをクリックして から をクリックして User Manager を表示させます。または、シェルプロンプトでコマンド
- ユーザー タブをクリックして、ユーザーリストの中から必要なユーザーを選択します。
- ツールバーのをクリックして、ユーザー設定のダイアログボックスを表示させます (または メニューで を選択します) 。
- Password Info タブをクリックし、Enable password expiration のチェックボックスを選択します。
- Days before change required フィールドに必要な値を入力して、 をクリックします。
図48.1 パスワードのエージングオプションの指定

[D]
48.1.4. 管理的コントロール
s
で示されます。
-rwsr-xr-x 1 root root 47324 May 1 08:09 /bin/su
-rwsr-xr-x 1 root root 47324 May 1 08:09 /bin/su
s
は大文字または小文字の場合があります。大文字で表示されている場合は、基になる許可ビットが設定されていないことを意味します。
pam_console.so
と呼ばれる PAM モジュールを介して、リムーバブルメディアの再起動やマウントなど、通常は root ユーザー専用に予約されている一部のアクティビティーは、物理コンソールでログインする最初のユーザーに許可されます( pam_console.so
モジュールの詳細は、「PAM (プラグ可能な認証モジュール)」 を参照してください)。 ただし、ネットワーク設定の変更、新しいマウスの設定、ネットワークデバイスのマウントなど、その他の重要なシステム管理タスクは、管理者権限なしではできません。その結果、システム管理者は、ネットワーク上のユーザーがどの程度のアクセスを受けるべきかを決定する必要があります。
48.1.4.1. Root アクセスの許可
- マシン の設定ミス - root アクセス権を持つユーザーは、マシンの設定を誤設定し、問題の解決にサポートが必要になる場合があります。さらに悪いことに、知らずにセキュリティーホールを発生させてしまう可能性があります。
- 安全で ないサービス の実行 - root アクセスを持つユーザーは、マシン上で FTP や Telnet などのセキュアでないサーバーを実行し、ユーザー名とパスワードを危険にさらす可能性があります。これらのサービスは、この情報をプレーンテキストでネットワーク経由で送信します。
- 電子メールの添付ファイルを root で実行 — まれにですが、Linux に影響を与える電子メールウィルスが存在します。ただし、脅威となるのは、root ユーザーが実行する時だけです。
48.1.4.2. Root アクセスの拒否
- root シェルの変更
- ユーザーが root として直接ログインできないように、システム管理者は、
/etc/passwd
ファイルで root アカウントのシェルを /sbin/nologin に設定します。表48.1 Root シェルの無効化 影響あり 影響なし root シェルへのアクセスを阻止し、そのような試行をログに記録します。以下のプログラムは root アカウントにアクセスできません。- login
- gdm
- kdm
- xdm
- su
- ssh
- scp
- sftp
FTP クライアント、メールクライアント、多くの setuid プログラムなど、シェルを必要としないプログラム。以下のプログラムは root アカウントにアクセスでき ません。- sudo
- FTP クライアント
- Email クライアント
- 任意のコンソールデバイス(tty)を介した root アクセスの無効化
- root アカウントへのアクセスをさらに制限するために、管理者は
/etc/securetty
ファイルを編集してコンソールで root ログインを無効にすることができます。このファイルは、root ユーザーがログインできるすべてのデバイスを一覧表示します。ファイルが存在しない場合は、コンソールまたは raw ネットワークインターフェイスを介して、root ユーザーはシステム上の任意の通信デバイス経由でログインできます。これは危険です。これは、ユーザーが Telnet を介して root としてマシンにログインできるためです。これにより、パスワードがプレーンテキストでネットワークを介して送信されます。デフォルトでは、Red Hat Enterprise Linux の/etc/securetty
ファイルでは、マシンに物理的に接続されているコンソールで root ユーザーしかログインできません。root ユーザーがログインできないようにするには、root でシェルプロンプトで以下のコマンドを入力して、このファイルの内容を削除します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow echo > /etc/securetty
echo > /etc/securetty
KDM、GDM、XDM のログインマネージャーでsecuretty
サポートを有効にするには、次の行を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
追加対象のファイルは以下のとおりです。/etc/pam.d/gdm
/etc/pam.d/gdm-autologin
/etc/pam.d/gdm-fingerprint
/etc/pam.d/gdm-password
/etc/pam.d/gdm-smartcard
/etc/pam.d/kdm
/etc/pam.d/kdm-np
/etc/pam.d/xdm
Warning空の/etc/securetty
ファイルは、root ユーザーが OpenSSH スイートを使用してリモートでログインすることを阻止し ませ ん。これは、認証後までコンソールが開かないためです。表48.2 Root ログインの無効化 影響あり 影響なし コンソールまたはネットワークを介して root アカウントにアクセスできないようにします。以下のプログラムは root アカウントにアクセスできません。- login
- gdm
- kdm
- xdm
- tty を開くその他のネットワークサービス
root としてログインしないが、setuid またはその他のメカニズムを使用して管理タスクを実行するプログラム。以下のプログラムは root アカウントにアクセスでき ません。- su
- sudo
- ssh
- scp
- sftp
- Root SSH ログインの無効化
- SSH プロトコルを介した root ログインを防ぐには、SSH デーモンの設定ファイル
/etc/ssh/sshd_config
を編集し、以下の行を変更します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow #PermitRootLogin yes
#PermitRootLogin yes
の行を以下のように変更します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow PermitRootLogin no
PermitRootLogin no
表48.3 Root SSH ログインの無効化 影響あり 影響なし ツールの OpenSSH スイートを介した root アクセスを防ぎます。以下のプログラムは root アカウントにアクセスできません。- ssh
- scp
- sftp
OpenSSH のツール群に含まれないプログラム。 - PAM を使用して、サービスへの root アクセスを制限する
- PAM は、
/lib/security/pam_listfile.so
モジュールを通じて、特定のアカウントを非常に柔軟に拒否することができます。管理者は、このモジュールを使用して、ログインを許可されていないユーザーのリストを参照できます。システムサービスへの root アクセスを制限するには、/etc/pam.d/
ディレクトリーのターゲットサービスの ファイルを編集し、pam_listfile.so
モジュールが認証に必要であることを確認します。以下は、/etc/pam.d/vsftpd
PAM 設定ファイルの vsftpd FTP サーバーに対するモジュールの使用例です (ディレクティブが 1 行の場合、最初の行の最後の\
文字は 不要 です)。Copy to Clipboard Copied! Toggle word wrap Toggle overflow auth required /lib/security/pam_listfile.so item=user \ sense=deny file=/etc/vsftpd.ftpusers onerr=succeed
auth required /lib/security/pam_listfile.so item=user \ sense=deny file=/etc/vsftpd.ftpusers onerr=succeed
これにより、PAM は/etc/vsftpd.ftpusers
ファイルを参照し、記載されているユーザーのサービスへのアクセスを拒否するように指示されます。管理者はこのファイルの名前を変更することができ、各サービスごとに個別のリストを保持することも、1 つの中央リストを使用して複数のサービスへのアクセスを拒否することもできます。管理者が複数のサービスへのアクセスを拒否したい場合、同様の行を PAM 設定ファイル (メールクライアントの場合は/etc/pam.d/pop
と/etc/pam.d/imap
、SSH クライアントの場合は/etc/pam.d/ssh
) に追加することができます。PAM の詳細は、「PAM (プラグ可能な認証モジュール)」 を参照してください。表48.4 PAM を使用した root の無効化 影響あり 影響なし PAM が認識するネットワークサービスへの root アクセスを防ぎます。以下のサービスは、root アカウントにアクセスできません。- login
- gdm
- kdm
- xdm
- ssh
- scp
- sftp
- FTP クライアント
- Email クライアント
- すべての PAM 対応サービス
PAM を意識していないプログラム、サービス。
48.1.4.3. Root アクセスの制限
48.1.4.3.1. su コマンド
usermod -G wheel <username>
usermod -G wheel <username>
- パネル上の system-config-users を入力します。メニューをクリックして から をクリックして User Manager を表示させます。または、シェルプロンプトでコマンド
- ユーザー タブをクリックして、ユーザーリストの中から必要なユーザーを選択します。
- ツールバーのをクリックして、ユーザー設定のダイアログボックスを表示させます (または メニューで を選択します) 。
- グループ タブをクリックし、wheel グループのチェックボックスにチェックマークを付けて をクリックします。図48.2「wheel グループにユーザーを追加します。」 を参照してください。
- テキストエディターで su (
/etc/pam.d/su
)の PAM 設定ファイルを開き、以下の行からコメント # を削除します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow auth required pam_wheel.so use_uid
auth required pam_wheel.so use_uid
この変更により、wheel
の管理グループメンバーのみが、su コマンドを使用して別のユーザーに切り替えることができます。
図48.2 wheel グループにユーザーを追加します。

[D]
wheel
グループに含まれます。
48.1.4.3.2. sudo コマンド
sudo <command>
sudo <command>
/etc/sudoers
を使用して変更できます。
/etc/sudoers
設定ファイルに記載されているユーザーのみが sudo コマンドの使用が許可され、root シェルではなく、ユーザーの シェルでコマンドが実行されます。これは、「Root アクセスの拒否」 に示されるように、root シェルを完全に無効にできることを意味します。
/var/log/messages
ファイルに記録され、発行者のユーザー名とともに発行されたコマンドは /var/log/secure
ファイルに記録されます。
/etc/sudoers
を編集する場合は、visudo コマンドを使用する必要があります。
juan ALL=(ALL) ALL
juan ALL=(ALL) ALL
juan
が任意のホストから sudo を使用し、任意のコマンドを実行できます。
%users localhost=/sbin/shutdown -h now
%users localhost=/sbin/shutdown -h now
sudoers
の man ページには、このファイルのオプションの詳細なリストがあります。
48.1.5. 利用可能なネットワークサービス
48.1.5.1. サービスへのリスク
- サービス拒否攻撃 (DoS) — サービスにリクエストをフラッディングさせると、サービスは各リクエストをログに記録して応答しようとするため、サービス拒否攻撃はシステムを使用不能にすることができます。
- Script Vulnerability Attacks - サーバーが、Web サーバーが一般的に行うようにサーバー側のアクションを実行するスクリプトを使用している場合、クラッカーが不適切に記述されたスクリプトを攻撃する可能性があります。これらのスクリプトの脆弱性攻撃により、バッファーオーバーフロー状態が発生したり、攻撃者がシステム上のファイルを変更したりできます。
- バッファーオーバーフロー攻撃 - 0 から 1023 までのポート番号が付いたポートに接続するサービスは、管理ユーザーとして実行する必要があります。アプリケーションに悪用可能なバッファーオーバーフローがある場合、攻撃者はデーモンを実行しているユーザーとしてシステムにアクセスできます。悪用可能なバッファーオーバーフローが存在するため、クラッカーは自動化ツールを使って脆弱性のあるシステムを特定し、アクセス権を獲得した後は、自動化ルートキットを使ってシステムへのアクセス権を維持します。
48.1.5.2. サービスの識別と設定
- cupsd: Red Hat Enterprise Linux のデフォルトのプリントサーバー。
- L PD: 代替プリントサーバー。
- xinetd — gssftp や telnet などのさまざまな下位サーバーへの接続を制御するスーパーサーバー。
- Sendmail - Sendmail Mail Transport Agent (MTA)はデフォルトで有効になっていますが、からの接続はリッスンしません。 localhostをクリックします。
- sshd — OpenSSH サーバー。Telnet に代わる安全なサーバー。
図48.3 サービス設定ツール

[D]
48.1.5.3. 安全でないサービス
- 暗号化されていないネットワーク上でのユーザー名とパスワードの送信 — Telnet や FTP などの多くの古いプロトコルは、認証セッションを暗号化しないため、可能な限り避ける必要があります。
- 暗号化されていないネットワーク上での機密データの送信 — 多くのプロトコルは、暗号化されていないネットワーク上でデータを送信します。これらのプロトコルには、Telnet、FTP、HTTP、および SMTP が含まれます。NFS や SMB などの多くのネットワークファイルシステムも、暗号化されていないネットワークを介して情報を送信します。これらのプロトコルを使用する場合、ユーザーの責任において、送信されるデータの種類を制限する必要があります。netdump などのリモートメモリーダンプサービスは、暗号化されていないネットワーク上でメモリーの内容を送信します。メモリーダンプにはパスワードや、さらに悪いデータベースエントリーやその他の機密情報を含めることができます。finger や rwhod などの他のサービスは、システムのユーザーに関する情報を表示します。
- finger
- authd (これは以前の Red Hat Enterprise Linux リリースで identd と呼ばれていました)
- netdump
- netdump-server
- nfs
- rwhod
- sendmail
- SMB (Samba)
- yppasswdd
- ypserv
- ypxfrd
48.1.6. 個人ファイアウォール
48.1.7. セキュリティー強化通信ツール
- OpenSSH: ネットワーク通信を暗号化する SSH プロトコルのフリー実装。
- GNU Privacy Guard (GPG): データを暗号化する PGP (Pretty Good Privacy)暗号化アプリケーションの無料実装。
- ssh: セキュアなリモートコンソールアクセスクライアント。
- scp: セキュアなリモートコピーコマンド。
- SFTP: インタラクティブなファイル転送セッションを可能にするセキュアな擬似ftpクライアント。
48.2. サーバーセキュリティー
- 最新の脅威から保護するために、すべてのサービスを最新の状態に保ちます。
- 可能な限りセキュアなプロトコルを使用します。
- 可能な場合は、マシンごとに 1 つのタイプのネットワークサービスのみを提供します。
- 疑わしいアクティビティーのために、すべてのサーバーを慎重に監視します。
48.2.1. TCP Wrapper と xinetd を使用したサービスの保護
48.2.1.1. TCP Wrapper を使用したセキュリティーの強化
hosts_options
の man ページを参照してください。
48.2.1.1.1. TCP Wrapper と接続バナー
banner
オプションを使用します。
/etc/banners/vsftpd
と呼ばれ、以下の行が含まれます。
220-Hello, %c 220-All activity on ftp.example.com is logged. 220-Inappropriate use will result in your access privileges being removed.
220-Hello, %c
220-All activity on ftp.example.com is logged.
220-Inappropriate use will result in your access privileges being removed.
/etc/hosts.allow
ファイルに次の行を追加します。
vsftpd : ALL : banners /etc/banners/
vsftpd : ALL : banners /etc/banners/
48.2.1.1.2. TCP Wrapper と攻撃警告
/etc/hosts.deny
ファイルに次の行を配置して、そのネットワークからの接続試行を拒否し、その試行を特別なファイルに記録します。
ALL : 206.182.68.0 : spawn /bin/ 'date' %c %d >> /var/log/intruder_alert
ALL : 206.182.68.0 : spawn /bin/ 'date' %c %d >> /var/log/intruder_alert
/etc/hosts.allow
ファイルに配置します。
48.2.1.1.3. TCP Wrapper とロギングの強化
/etc/hosts.deny
に配置します。
in.telnetd : ALL : severity emerg
in.telnetd : ALL : severity emerg
48.2.1.2. xinetd でのセキュリティーの強化
xinetd.conf
の man ページを参照してください。
48.2.1.2.1. トレイトの設定
no_access
リストに追加する機能です。このリストのホストは、指定された期間、または xinetd が再起動するまで、xinetd が管理するサービスへの後続の接続を拒否します。これは、SENSOR 属性を使用して実行できます。これは、サーバー上のポートをスキャンしようとするホストを簡単にブロックする方法です。
/etc/xinetd.d/telnet
ファイルを編集し、フラグ
の行を次のように変更します。
flags = SENSOR
flags = SENSOR
deny_time = 30
deny_time = 30
disable = no
disable = no
SENSOR
の使用は、望ましくないホストからの接続を検出および停止するのに適した方法として、2 つの欠点があります。
- Stealth スキャンでは機能しません。
SENSOR
が実行されていることがわかっている攻撃者は、IP アドレスを改ざんし、禁止されたポートに接続することで、特定のホストに対してサービス拒否攻撃をマウントすることができます。
48.2.1.2.2. サーバーリソースの制御
CPs = <number_of_connections> <wait_period>
; - 受信接続のレートを制限します。このディレクティブは 2 つの引数を取ります。<number_of_connections
>: 処理する 1 秒あたりの接続数。受信接続のレートがこれよりも大きい場合、サービスは一時的に無効になります。デフォルト値は 15 (50)です。<wait_period
>: 無効にした後にサービスを再度有効にするまで待機する秒数。デフォルトの間隔は 10 秒です。
instances = <number_of_connections>
- サービスに対して許可される接続の総数を指定します。このディレクティブは、整数値または UNLIMITED を受け入れます。per_source = <number_of_connections>:
各ホストがサービスに対して許可される接続の数を指定します。このディレクティブは、整数値または UNLIMITED を受け入れます。rlimit_as = <number[K|M]>
;: サービスがキロバイトまたはメガバイトで占有できるメモリーアドレス空間の量を指定します。このディレクティブは、整数値または UNLIMITED を受け入れます。rlimit_cpu = <number_of_seconds&
gt;: サービスが CPU を占有する時間を秒単位で指定します。このディレクティブは、整数値または UNLIMITED を受け入れます。
48.2.2. ポートマップのセキュリティー保護
48.2.2.1. TCP Wrapper によるポートマップの保護
48.2.2.2. iptables によるポートマップの保護
iptables -A INPUT -p tcp -s! 192.168.0.0/24 --dport 111 -j DROP iptables -A INPUT -p tcp -s 127.0.0.1 --dport 111 -j ACCEPT
iptables -A INPUT -p tcp -s! 192.168.0.0/24 --dport 111 -j DROP
iptables -A INPUT -p tcp -s 127.0.0.1 --dport 111 -j ACCEPT
iptables -A INPUT -p udp -s! 192.168.0.0/24 --dport 111 -j DROP
iptables -A INPUT -p udp -s! 192.168.0.0/24 --dport 111 -j DROP
48.2.3. NIS のセキュア化
- /usr/sbin/rpc.yppasswdd — yppasswdd サービスとも呼ばれるこのデーモンを使用すると、ユーザーは NIS パスワードを変更できます。
- /usr/sbin/rpc.ypxfrd — ypxfrd サービスとも呼ばれるこのデーモンは、ネットワークを介した NIS マップ転送を担当します。
- /usr/sbin/yppush: このアプリケーションは、変更した NIS データベースを複数の NIS サーバーに伝播します。
- /usr/sbin/ypserv — これは、NIS サーバーデーモンです。
48.2.3.1. ネットワークの注意深いプランニング
48.2.3.2. パスワードのような NIS ドメイン名とホスト名の使用
ypcat -d <NIS_domain> -h <DNS_hostname> passwd
ypcat -d <NIS_domain> -h <DNS_hostname> passwd
ypcat -d <NIS_domain> -h <DNS_hostname> shadow
ypcat -d <NIS_domain> -h <DNS_hostname> shadow
o7hfawtgmhwg.domain.com
などのランダムな文字列を作成します。同様に、異なるランダムな NIS ドメイン名を作成します。これにより、攻撃者が NIS サーバーにアクセスすることがより困難になります。
48.2.3.3. /var/yp/securenets
ファイルを編集する
/var/yp/securenets
ファイルが空白または存在しない場合 (デフォルトのインストール後の場合)、NIS はすべてのネットワークをリッスンします。まず最初にすべきことは、ネットマスクとネットワークのペアをファイルに記述し、ypservが適切なネットワークからのリクエストにのみ反応するようにすることです。
/var/yp/securenets
ファイルからのエントリーの例です。
255.255.255.0 192.168.0.0
255.255.255.0 192.168.0.0
/var/yp/securenets
ファイルを作成せずに、NIS サーバーを初めて起動しないでください。
48.2.3.4. 静的ポートの割り当てと iptables ルールの使用
/etc/sysconfig/network
に以下の行を追加します。
YPSERV_ARGS="-p 834" YPXFRD_ARGS="-p 835"
YPSERV_ARGS="-p 834" YPXFRD_ARGS="-p 835"
iptables -A INPUT -p tcp -s! 192.168.0.0/24 --dport 834 -j DROP iptables -A INPUT -p tcp -s! 192.168.0.0/24 --dport 835 -j DROP iptables -A INPUT -p udp -s! 192.168.0.0/24 --dport 834 -j DROP iptables -A INPUT -p udp -s! 192.168.0.0/24 --dport 835 -j DROP
iptables -A INPUT -p tcp -s! 192.168.0.0/24 --dport 834 -j DROP
iptables -A INPUT -p tcp -s! 192.168.0.0/24 --dport 835 -j DROP
iptables -A INPUT -p udp -s! 192.168.0.0/24 --dport 834 -j DROP
iptables -A INPUT -p udp -s! 192.168.0.0/24 --dport 835 -j DROP
48.2.3.5. Kerberos 認証の使用
/etc/shadow
マップからのパスワードハッシュがネットワーク経由で送信されることです。侵入者が NIS ドメインにアクセスしてネットワークトラフィックを盗んだ場合は、ユーザー名とパスワードのハッシュを収集できます。十分な時間があれば、パスワードクラッキングプログラムは弱いパスワードを推測することができ、攻撃者はネットワーク上の有効なアカウントにアクセスすることができます。
48.2.4. NFS のセキュア化
RPCSEC_GSS
カーネルモジュールの一部として、Kerberos ユーザーおよびグループ認証が含まれるようになりました。Red Hat Enterprise Linux は NFSv2 および NFSv3 をサポートしているため、portmap に関する情報は引き続き含まれています。いずれも portmap を使用します。
48.2.4.1. ネットワークの注意深いプランニング
48.2.4.2. 構文エラーに注意
/etc/exports
ファイルを参照して、エクスポートするファイルシステムとこれらのディレクトリーをエクスポートするホストを決定します。このファイルを編集する際には、余計なスペースを加えないように注意してください。
/etc/exports
ファイルの次の行は、ディレクトリー /tmp/nfs/ を読み取り/書き込みパーミッションを持つホスト bob.example.com と共有しています。
/tmp/nfs/ bob.example.com(rw)
/tmp/nfs/ bob.example.com(rw)
/etc/exports
ファイルの以下の行は、同じディレクトリーを読み取り専用パーミッションでホスト bob.example.com
と共有し、ホスト名の後の 1 つのスペース文字が原因で、読み取り/書き込み権限で すべてのユーザー と共有します。
/tmp/nfs/ bob.example.com (rw)
/tmp/nfs/ bob.example.com (rw)
showmount -e <hostname>
showmount -e <hostname>
48.2.4.3. no_root_squash オプションは使用しないでください。
48.2.5. Apache HTTP Server のセキュリティー保護
48.2.5.1. FollowSymLinks
/
へシンボリックリンクを提供することはお勧めできません。
48.2.5.2. インデックス のディレクティブ
48.2.5.3. UserDir ディレクティブ
UserDir enabled UserDir disabled root
UserDir enabled
UserDir disabled root
/root/
以外のすべてのユーザーディレクトリーの閲覧を有効にします。無効化されたアカウントの一覧にユーザーを追加するには、UserDir disabled 行にスペースで区切られたユーザーの一覧を追加します。
48.2.5.4. IncludesNoExec ディレクティブを削除しないでください。
48.2.5.5. 実行可能なディレクトリーのパーミッションの制限
chown root <directory_name> chmod 755 <directory_name>
chown root <directory_name>
chmod 755 <directory_name>
48.2.6. FTP のセキュア化
- gssftpd - Kerberos 対応の xinetd- ネットワーク経由で認証情報を送信しない ベースの FTP デーモン。
- Red Hat Content Accelerator (tux) — FTP 機能を持つカーネルスペースの Web サーバー。
- vsftpd — スタンドアロンの、セキュリティー指向の FTP サービスの実装。
48.2.6.1. FTP グリーティングバナー
/etc/vsftpd/vsftpd.conf
ファイルに次のディレクティブを追加します。
ftpd_banner=<insert_greeting_here>
ftpd_banner=<insert_greeting_here>
/etc/banners/
という新しいディレクトリーに配置します。この例の FTP 接続のバナーファイルは /etc/banners/ftp.msg
です。以下は、このようなファイルの例です。
######### # Hello, all activity on ftp.example.com is logged. #########
######### # Hello, all activity on ftp.example.com is logged. #########
/etc/vsftpd/vsftpd.conf
ファイルに追加します。
banner_file=/etc/banners/ftp.msg
banner_file=/etc/banners/ftp.msg
/etc/vsftpd/vsftpd.conf
でバナーファイルへのパスを正しく指定しないと、vsftpd に接続しようとすると接続が即座に閉じられ、500 OOPS: cannot open banner < path_to_banner_file
> エラーメッセージが表示されます。
/etc/vsftpd/vfsftpd.conf
の banner_file
ディレクティブは、設定ファイルの ftpd_banner
ディレクティブよりも優先されることに注意してください。banner_file
が指定されている場合は、ftpd_banner
は無視されます。
48.2.6.2. Anonymous Access
/var/ftp/
ディレクトリーが存在すると、匿名アカウントが有効になります。
vsftpd
パッケージをインストールすることです。本パッケージは、匿名ユーザーのためのディレクトリーツリーを構築し、匿名ユーザーのためにディレクトリーのパーミッションを読み取り専用に設定します。
48.2.6.2.1. 匿名のアップロード
/var/ftp/pub/
内に書き込み専用のディレクトリーを作成することを推奨します。
mkdir /var/ftp/pub/upload
mkdir /var/ftp/pub/upload
chmod 730 /var/ftp/pub/upload
chmod 730 /var/ftp/pub/upload
drwx-wx--- 2 root ftp 4096 Feb 13 20:05 upload
drwx-wx--- 2 root ftp 4096 Feb 13 20:05 upload
/etc/vsftpd/vsftpd.conf
ファイルに追加します。
anon_upload_enable=YES
anon_upload_enable=YES
48.2.6.3. ユーザーアカウント
/etc/vsftpd/vsftpd.conf
に追加します。
local_enable=NO
local_enable=NO
48.2.6.3.1. ユーザーアカウントの制限
/etc/pam.d/vsftpd
です。
/etc/vsftpd.ftpusers
に追加します。
48.2.6.4. TCP Wrapper を使用してアクセスを制御する
48.2.7. Sendmail のセキュア化
/etc/mail/sendmail.mc
を編集し、m4 コマンドを使用して、有効な /etc/mail/sendmail.cf
を生成する基本的な知識を想定しています。
48.2.7.1. サービス拒否攻撃を制限する
/etc/mail/sendmail.mc
で以下のディレクティブに制限を設定することで、このような攻撃の効果は制限されます。
- confCONNECTION_RATE_THROTTLE: サーバーが 1 秒あたり受信できる接続の数。デフォルトでは、Sendmail は接続の数を制限しません。制限が設定され、到達すると、追加の接続が遅延します。
- confMAX_DAEMON_CHILDREN: サーバーが生成できる子プロセスの最大数。デフォルトでは、Sendmail は子プロセスの数に制限を割り当てません。制限が設定され、到達すると、追加の接続が遅延します。
- confMIN_FREE_BLOCKS: サーバーがメールを受け入れるために使用できる空きブロックの最小数。デフォルトは 100 ブロックです。
- confMAX_HEADERS_LENGTH: メッセージヘッダーの最大許容サイズ(バイト単位)。
- confMAX_MESSAGE_SIZE: 1 つのメッセージの最大許容サイズ(バイト単位)。
48.2.7.2. NFS および Sendmail
/var/spool/mail/
を NFS 共有ボリュームに置かないでください。
SECRPC_GSS
カーネルモジュールは UID ベースの認証を利用しないため、これは当てはまりません。ただし、メールスプールディレクトリーを NFS 共有ボリュームに配置し ない ことが推奨されます。
48.2.7.3. メール専用ユーザー
/etc/passwd
ファイル内のすべてのユーザーシェルは /sbin/nologin に設定されている必要があります (root ユーザーを除く可能性があります)。
48.2.8. リッスンしているポートの確認
nmap -sT -O localhost
nmap -sT -O localhost
Starting nmap 3.55 ( http://www.insecure.org/nmap/ ) at 2004-09-24 13:49 EDT Interesting ports on localhost.localdomain (127.0.0.1): (The 1653 ports scanned but not shown below are in state: closed) PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 111/tcp open rpcbind 113/tcp open auth 631/tcp open ipp 834/tcp open unknown 2601/tcp open zebra 32774/tcp open sometimes-rpc11 Device type: general purpose Running: Linux 2.4.X|2.5.X|2.6.X OS details: Linux 2.5.25 - 2.6.3 or Gentoo 1.2 Linux 2.4.19 rc1-rc7) Uptime 12.857 days (since Sat Sep 11 17:16:20 2004) Nmap run completed -- 1 IP address (1 host up) scanned in 5.190 seconds
Starting nmap 3.55 ( http://www.insecure.org/nmap/ ) at 2004-09-24 13:49 EDT
Interesting ports on localhost.localdomain (127.0.0.1):
(The 1653 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
111/tcp open rpcbind
113/tcp open auth
631/tcp open ipp
834/tcp open unknown
2601/tcp open zebra
32774/tcp open sometimes-rpc11
Device type: general purpose
Running: Linux 2.4.X|2.5.X|2.6.X OS details: Linux 2.5.25 - 2.6.3 or Gentoo 1.2 Linux 2.4.19 rc1-rc7)
Uptime 12.857 days (since Sat Sep 11 17:16:20 2004)
Nmap run completed -- 1 IP address (1 host up) scanned in 5.190 seconds
sunrpc
サービスが存在するため、システムが portmap を実行していることを示しています。ただし、ポート 834 には mystery サービスもあります。ポートが既知のサービスの公式リストに関連付けられているかどうかを確認するには、以下を入力します。
cat /etc/services | grep 834
cat /etc/services | grep 834
netstat -anp | grep 834
netstat -anp | grep 834
tcp 0 0 0.0.0.0:834 0.0.0.0:* LISTEN 653/ypbind
tcp 0 0 0.0.0.0:834 0.0.0.0:* LISTEN 653/ypbind
[p]
オプションは、ポートを開いたサービスのプロセス ID (PID)を表示します。この場合、オープンポートは ypbind (NIS)に属します。これは、portmap サービスとともに処理される RPC サービスです。
lsof -i | grep 834
lsof -i | grep 834
ypbind 653 0 7u IPv4 1319 TCP *:834 (LISTEN) ypbind 655 0 7u IPv4 1319 TCP *:834 (LISTEN) ypbind 656 0 7u IPv4 1319 TCP *:834 (LISTEN) ypbind 657 0 7u IPv4 1319 TCP *:834 (LISTEN)
ypbind 653 0 7u IPv4 1319 TCP *:834 (LISTEN)
ypbind 655 0 7u IPv4 1319 TCP *:834 (LISTEN)
ypbind 656 0 7u IPv4 1319 TCP *:834 (LISTEN)
ypbind 657 0 7u IPv4 1319 TCP *:834 (LISTEN)
services
の man ページを参照してください。
48.3. シングルサインオン(SSO)
48.3.1. はじめに
48.3.1.1. サポート対象のアプリケーション
- Login
- screensaver
- Firefox および Thunderbird
48.3.1.2. サポートされる認証メカニズム
- Kerberos 名/パスワードログイン
- スマートカード/PIN ログイン
48.3.1.3. 対応するスマートカード
48.3.1.4. Red Hat Enterprise Linux Single Sign-on の利点
- 各オペレーティングシステム上の NSS 暗号ライブラリーの共有インスタンス 1 つを提供します。
- Certificate System の Enterprise Security Client (ESC)をベースオペレーティングシステムで出荷します。ESC アプリケーションは、スマートカード挿入イベントを監視します。ユーザーが Red Hat Enterprise Linux Certificate System サーバー製品で使用するために設計されたスマートカードを挿入したことを検知すると、そのスマートカードの登録方法をユーザーに指示するユーザーインターフェイスが表示されます。
- スマートカードを使用してオペレーティングシステムにログインするユーザーが Kerberos 認証情報(ファイルサーバーなどにログインできる)も取得できるように Kerberos と NSS を統合する。
48.3.2. 新しいスマートカードの使用
- Kerberos 名とパスワードでログインします。
nss-tools
パッケージが読み込まれていることを確認します。- 企業固有のルート証明書をダウンロードしてインストールします。以下のコマンドを使用して、ルート CA 証明書をインストールします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow certutil -A -d /etc/pki/nssdb -n "root ca cert" -t "CT,C,C" \ -i ./ca_cert_in_base64_format.crt
certutil -A -d /etc/pki/nssdb -n "root ca cert" -t "CT,C,C" \ -i ./ca_cert_in_base64_format.crt
- 次の RPM がシステムにインストールされていることを確認します。esc、pam_pkcs11、coolkey、ifd-egate、ccid、gdm、authconfig、authconfig-gtk。
- スマートカードログインサポートの有効化
- Gnome Title Bar で、System->Administration->Authentication を選択します。
- 必要に応じて、マシンの root パスワードを入力します。
- Authentication Configuration ダイアログで、Authentication タブをクリックします。
- Enable Smart Card Support チェックボックスを選択します。
- ログインにはスマートカードが 必要 - このチェックボックスをオフにします。スマートカードで正常にログインしたら、このオプションを選択して、ユーザーがスマートカードなしでログインできないようにします。
- Card Removal Action - ログイン後にスマートカードを削除するときに何が起こるかを制御します。利用可能なオプションは以下のとおりです。
- lock - スマートカードを削除すると、X 画面がロックされます。
- ignore - スマートカードを削除しても効果はありません。
- OCSP(Online Certificate Status Protocol)を有効にする必要がある場合は、
/etc/pam_pkcs11/pam_pkcs11.conf
ファイルを開き、以下の行を見つけます。enable_ocsp = false;以下のようにこの値を true に変更します。enable_ocsp = true; - スマートカードの登録
- CAC カードを使用している場合は、以下の手順も実行する必要があります。
- root アカウントに切り替え、
/etc/pam_pkcs11/cn_map
という名前のファイルを作成します。 - 以下のエントリーを
cn_map
ファイルに追加します。MY.CAC_CN.123454 -> myloginidここで、MY.CAC_CN.123454 は CAC のコモンネームで、myloginid は UNIX ログイン ID です。
- ログアウト
48.3.2.1. トラブルシューティング
pklogin_finder debug
pklogin_finder debug
48.3.3. スマートカードの登録の仕組み
- ユーザーは、スマートカードをワークステーションのスマートカードリーダーに挿入します。このイベントは、Enterprise Security Client (ESC)によって認識されます。
- 登録ページがユーザーのデスクトップに表示されます。ユーザーは必要な情報を完了し、ユーザーのシステムは Token Processing System (TPS)および CA に接続します。
- TPS は、CA によって署名された証明書を使用してスマートカードを登録します。
図48.4 スマートカードの登録の仕組み

[D]
48.3.4. スマートカードログインの仕組み
- ユーザーがスマートカードリーダーにスマートカードを挿入すると、このイベントは PAM 機能によって認識され、ユーザーの PIN の入力が求められます。
- 次に、システムはユーザーの現在の証明書を検索し、その有効性を検証します。証明書はユーザーの UID にマッピングされます。
- これは KDC に対して検証され、ログインに付与されます。
図48.5 スマートカードログインの仕組み

[D]
48.3.5. Firefox で SSO に Kerberos を使用する設定
- Firefox のアドレスバーに、
about:config
と入力して現在の設定オプションの一覧を表示します。 - Filter フィールドに、オプションのリストを制限するために
negotiate
と入力します。 - network.negotiate-auth.trusted-uris エントリーをダブルクリックして、Enter string value ダイアログボックスを表示します。
- 認証に使用するドメイン名( .example.com など)を入力します。
- 同じドメインを使用して、network.negotiate-auth.delegation-uris エントリーに対して上記の手順を繰り返します。注記この値は空白のままにすることができます。これは、Kerberos チケットのパススルーを可能にするためですが、必須ではありません。これら 2 つの設定オプションが一覧にない場合は、お使いの Firefox のバージョンが Negotiate 認証をサポートするのに古くなる可能性があるため、アップグレードを検討してください。
図48.6 Kerberos での SSO 用の Firefox の設定

[D]
~]$ kinit Password for user@EXAMPLE.COM: ~]$ klist Ticket cache: FILE:/tmp/krb5cc_10920 Default principal: user@EXAMPLE.COM Valid starting Expires Service principal 10/26/06 23:47:54 10/27/06 09:47:54 krbtgt/USER.COM@USER.COM renew until 10/26/06 23:47:54 Kerberos 4 ticket cache: /tmp/tkt10920 klist: You have no tickets cached
~]$ kinit
Password for user@EXAMPLE.COM:
~]$ klist
Ticket cache: FILE:/tmp/krb5cc_10920
Default principal: user@EXAMPLE.COM
Valid starting Expires Service principal
10/26/06 23:47:54 10/27/06 09:47:54 krbtgt/USER.COM@USER.COM
renew until 10/26/06 23:47:54
Kerberos 4 ticket cache: /tmp/tkt10920
klist: You have no tickets cached
48.3.5.1. トラブルシューティング
- Firefox のすべてのインスタンスを閉じます。
- コマンドシェルを開き、以下のコマンドを入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow export NSPR_LOG_MODULES=negotiateauth:5 export NSPR_LOG_FILE=/tmp/moz.log
export NSPR_LOG_MODULES=negotiateauth:5 export NSPR_LOG_FILE=/tmp/moz.log
- そのシェルから Firefox を再起動し、以前に認証できなかった Web サイトにアクセスします。情報は
/tmp/moz.log
に記録され、問題が解消される可能性があります。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -1208550944[90039d0]: entering nsNegotiateAuth::GetNextToken() -1208550944[90039d0]: gss_init_sec_context() failed: Miscellaneous failure No credentials cache found
-1208550944[90039d0]: entering nsNegotiateAuth::GetNextToken() -1208550944[90039d0]: gss_init_sec_context() failed: Miscellaneous failure No credentials cache found
これは、Kerberos チケットがなく、kinit を実行する必要があることを示しています。
-1208994096[8d683d8]: entering nsAuthGSSAPI::GetNextToken() -1208994096[8d683d8]: gss_init_sec_context() failed: Miscellaneous failure Server not found in Kerberos database
-1208994096[8d683d8]: entering nsAuthGSSAPI::GetNextToken()
-1208994096[8d683d8]: gss_init_sec_context() failed: Miscellaneous failure
Server not found in Kerberos database
/etc/krb5.conf
ファイルの [domain_realm] セクションに正しいエントリーがあることを確認します。以下に例を示します。
.example.com = EXAMPLE.COM example.com = EXAMPLE.COM
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM
48.4. PAM (プラグ可能な認証モジュール)
48.4.1. PAM の利点
- さまざまなアプリケーションで使用できる一般的な認証スキーム。
- システム管理者とアプリケーション開発者の両方に対する優れた柔軟性と制御性。
- 単一の完全に文書化されたライブラリー。開発者は独自の認証スキームを作成せずにプログラムを作成できます。
48.4.2. PAM 設定ファイル
/etc/pam.d/
ディレクトリーには、PAM 対応アプリケーションごとに PAM 設定ファイルが含まれます。以前のバージョンの PAM では、/etc/pam.conf
ファイルが使用されていましたが、このファイルは非推奨となり、/etc/pam.d/
ディレクトリーが存在しない場合にのみ使用されます。
48.4.2.1. PAM サービスファイル
/etc/pam.d/
ディレクトリーにファイルがあります。このディレクトリーの各ファイルは、アクセスを制御するサービスと同じ名前を持ちます。
/etc/pam.d/
ディレクトリーにインストールします。たとえば、login プログラムは、login としてサービス名を定義し、/etc/pam.d/login
の PAM 設定ファイルをインストールします。
48.4.3. PAM 設定ファイル形式
<module interface> <control flag> <module name> <module arguments>
<module interface> <control flag> <module name> <module arguments>
48.4.3.1. モジュールインターフェイス
- auth: このモジュールインターフェイスは使用を認証します。たとえば、パスワードの有効性を要求し、検証します。このインターフェイスのあるモジュールは、グループメンバーシップや Kerberos チケットなどの認証情報を設定することもできます。
- account: このモジュールインターフェイスは、アクセスが許可されることを確認します。たとえば、ユーザーアカウントの有効期限が切れたか、または特定の時刻にユーザーがログインできるかどうかを確認できます。
- password: このモジュールインターフェイスは、ユーザーパスワードの変更に使用されます。
- session: このモジュールインターフェイスは、ユーザーセッションを設定および管理します。このインターフェイスのあるモジュールは、ユーザーのホームディレクトリーをマウントしたり、ユーザーのメールボックスを利用可能にするなど、アクセスを許可するために必要な追加のタスクも実行できます。
pam_unix.so
は 4 つのモジュールインターフェイスをすべて提供します。
auth required pam_unix.so
auth required pam_unix.so
pam_unix.so
モジュールの認証インターフェイスを使用するように指示します。
48.4.3.1.1. モジュールインターフェイスのスタッキング
~]# cat /etc/pam.d/reboot #%PAM-1.0 auth sufficient pam_rootok.so auth required pam_console.so #auth include system-auth account required pam_permit.so
~]# cat /etc/pam.d/reboot
#%PAM-1.0
auth sufficient pam_rootok.so
auth required pam_console.so
#auth include system-auth
account required pam_permit.so
- 最初の行はコメントで、処理されません。
- auth sufficient pam_rootok.so - この行は、UID が 0 であることを確認して、
pam_rootok.so
モジュールを使用して、現在のユーザーが root かどうかを確認します。このテストに成功すると、他のモジュールは参照されず、コマンドが実行されます。このテストが失敗すると、次のモジュールが参照されます。 - auth required pam_console.so - この行は、
pam_console.so
モジュールを使用してユーザーを認証しようとします。このユーザーがすでにコンソールにログインしている場合、pam_console.so
はサービス名(reboot)と同じ名前を持つ/etc/security/console.apps/
ディレクトリーにファイルが存在するかどうかを確認します。そのようなファイルが存在する場合は、認証が成功し、制御が次のモジュールに渡されます。 - #auth include system-auth - この行はコメント化され、処理されません。
- account required pam_permit.so - この行は、
pam_permit.so
モジュールを使用して、root ユーザーまたはコンソールにログインしているすべてのユーザーがシステムを再起動します。
48.4.3.2. 制御フラグ
- required: 認証を継続するには、モジュール結果が成功する必要があります。この時点でテストが失敗すると、そのインターフェイスを参照するすべてのモジュールテストの結果が完了するまでユーザーには通知されません。
- requisite: 認証を継続するには、モジュール結果が成功する必要があります。ただし、この時点でテストが失敗すると、最初に失敗した required または requisite モジュールテストを反映したメッセージとともに、すぐにユーザーに通知されます。
- sufficient: モジュール結果は、失敗すると無視されます。ただし、モジュールフラグ付きの sufficient の結果が成功で、かつ、以前のモジュールフラグ付きの required が失敗していない場合、その他の結果は不要で、ユーザーはサービスに認証されます。
- optional: モジュール結果は無視されます。その他のモジュールがインターフェイスを参照しない場合に認証成功に必要となるのは、optional としてフラグが付いたモジュールです。
/usr/share/doc/pam- <version-number> / ディレクトリーにある pam.d
の man ページと PAM ドキュメントです。ここで、< version-number > はシステム上の PAM のバージョン番号で、この新しい構文の詳細を説明します。
48.4.3.3. モジュール名
security/ ディレクトリーに保存する multilib システムについては、アプリケーションが適切なバージョンの lib
pam
にリンクされているため、ディレクトリー名は省略されます。これにより、モジュールの正しいバージョンを見つけることができます。
48.4.3.4. モジュール引数
pam_userdb.so
モジュールは Berkeley DB ファイルに保存されている情報を使用してユーザーを認証します。Berkeley DB は、多くのアプリケーションに埋め込まれたオープンソースデータベースシステムです。モジュールは db
引数を取り、リクエストされたサービスに使用するデータベースを認識できるようにします。
pam_userdb.so
行です。& lt;path-to-file> は、Berkeley DB データベースファイルへの完全パスです。
auth required pam_userdb.so db=<path-to-file>
auth required pam_userdb.so db=<path-to-file>
/var/log/secure
ファイルに報告します。
48.4.4. PAM 設定ファイルのサンプルについて
#%PAM-1.0 auth required pam_securetty.so auth required pam_unix.so nullok auth required pam_nologin.so account required pam_unix.so password required pam_cracklib.so retry=3 password required pam_unix.so shadow nullok use_authtok session required pam_unix.so
#%PAM-1.0
auth required pam_securetty.so
auth required pam_unix.so nullok
auth required pam_nologin.so
account required pam_unix.so
password required pam_cracklib.so retry=3
password required pam_unix.so shadow nullok use_authtok
session required pam_unix.so
- 最初の行は、行頭のハッシュ記号 (#) が示すように、コメントになります。
- 2 行目から 4 行目は、ログイン認証用に 3 つのモジュールをスタックしています。auth required pam_securetty.so - このモジュールは、ユーザーが root としてログインしようとすると、そのファイルが存在する 場合 は、ユーザーがログインする tty が
/etc/securetty
ファイルに一覧表示されて いる ことを確認します。tty がファイルに記載されていない場合は、root でログインしようとするとLogin incorrect
メッセージで失敗します。auth required pam_unix.so nullok — このモジュールはユーザーにパスワードを要求し、/etc/passwd
に保存された情報を使用してパスワードをチェックしします。存在する場合は/etc/shadow
。認証フェーズでは、pam_unix.so
モジュールは、ユーザーのパスワードがpasswd
ファイルかシャドウ
ファイルにあるかを自動的に検出します。詳細は、「シャドウパスワード」 を参照してください。 - auth required pam_nologin.so — これは、認証の最終ステップです。これは、
/etc/nologin
ファイルが存在するかどうかを確認します。ユーザーが存在して root でない場合は、認証に失敗します。注記この例では、最初の auth モジュールが失敗しても、3 つの auth モジュールがすべてチェックされます。これにより、ユーザーは認証に失敗したステージを把握できません。攻撃者のこのような知識により、システムのクラッキング方法がより簡単に推測される可能性があります。 - account required pam_unix.so — このモジュールは、必要なアカウントの検証を実行します。たとえば、シャドウパスワードが有効になっていると、
pam_unix.so
モジュールのアカウントインターフェイスが、アカウントの有効期限が切れたかどうか、または許可された猶予期間内にユーザーがパスワードを変更していないかどうかを確認します。 - password required pam_NORMAL.so retry=3 - パスワードの有効期限が切れると、
pam_NORMAL.so
モジュールのパスワードコンポーネントは新しいパスワードを要求します。その後、新たに作成されたパスワードをテストして、辞書ベースのパスワードクラッキングプログラムで簡単に判別できるかどうかを確認します。- 引数 retry=3 は、テストに 1 回失敗しても、ユーザーは強固なパスワードを作成する機会があと 2 回あることを示しています。
- password required pam_unix.so shadow nullok use_authtok - この行は、プログラムがユーザーのパスワードを変更した場合、
pam_unix.so
モジュールの パスワード インターフェイスを使用してそれを行う必要があることを指定します。- 引数 shadow は、ユーザーのパスワード更新の際にシャドウパスワードを作成するようモジュールに指示します。
- この引数 nullok は、ユーザーが空のパスワード から パスワードを変更できるようにするようにモジュールに指示します。それ以外の場合は、null パスワードはアカウントロックとして扱われます。
- この行の最後の引数 use_authtok は、PAM モジュールをスタックする際に順序の重要性を示す優れた引数を提供します。この引数は、ユーザーに新しいパスワードを要求しないようにモジュールに指示します。代わりに、以前のパスワードモジュールで記録されたパスワードを受け入れます。これにより、新しいパスワードはすべて、受け入れられる前に安全なパスワードの
pam_NORMAL.so
テストを渡す必要があります。
- session required pam_unix.so — 最後の行は、
pam_unix.so
モジュールのセッションインターフェイスにセッションを管理するよう指示します。このモジュールは、各セッションの開始と最後で、ユーザー名とサービスタイプを/var/log/secure
に記録します。このモジュールは、追加機能のために他のセッションモジュールとスタックすることで補足できます。
48.4.5. PAM モジュールの作成
/usr/share/doc/pam- <version-number> /
ディレクトリーに含まれています。< version-number > は、システムの PAM のバージョン番号になります。
48.4.6. PAM と管理認証情報のキャッシング
pam_timestamp.so
モジュールを使用して最大 5 分間、ユーザーに昇格した特権を提供します。このメカニズムの仕組みを理解することが重要です。これは、pam_timestamp.so
が有効なときににターミナルから出るユーザーが、コンソールに物理的にアクセスできるユーザーすべてがマシンを変更できる状態のままにするためです。
pam_timestamp.so
モジュールはタイムスタンプファイルを作成します。デフォルトでは、これは /var/run/sudo/
ディレクトリーに作成されます。タイムスタンプファイルがすでに存在する場合は、グラフィカル管理プログラムではパスワードの入力が求められません。代わりに、pam_timestamp.so
モジュールはタイムスタンプファイルを最新の状態にし、ユーザーの不完全な管理アクセスを 5 分追加で保持します。
/var/run/sudo/<user> ファイルを確認して、タイムスタンプファイルの実際の状態を確認
できます。デスクトップでは、関連するファイルは unknown:root
です。これが存在し、タイムスタンプが 5 分未満の場合は、認証情報が有効です。
図48.7 認証アイコン

[D]
48.4.6.1. タイムスタンプファイルの削除
図48.8 認証ダイアログを閉じる

[D]
- ssh を使用してシステムにリモートでログインしている場合は、/sbin/pam_timestamp_check -k root コマンドを使用してタイムスタンプファイルを破棄します。
- 特権アプリケーションを起動したのと同じターミナルウィンドウから /sbin/pam_timestamp_check -k root コマンドを実行する必要があります。
- /sbin/pam_timestamp_check -k コマンドを使用するには、
pam_timestamp.so
モジュールを起動したユーザーとしてログインしている必要があります。このコマンドを使用するには、root でログインしないでください。 - デスクトップで認証情報を強制終了する場合は(アイコンのアクションを使用せずに)、以下のコマンドを使用します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pam_timestamp_check -k root </dev/null >/dev/null 2>/dev/null
pam_timestamp_check -k root </dev/null >/dev/null 2>/dev/null
このコマンドを使用しないと、コマンドを実行する pty から認証情報(存在する場合)のみが削除されます。
pam_timestamp_check
の man ページを参照してください。
48.4.6.2. 一般的な pam_timestamp ディレクティブ
pam_timestamp.so
モジュールは複数のディレクティブを受け入れます。最も一般的に使用される 2 つのオプションを以下に示します。
- timestamp_timeout - タイムスタンプファイルが有効な期間(秒単位)を指定します。デフォルト値は 300 (5 分) です。
- timestampdir - タイムスタンプファイルを保存するディレクトリーを指定します。デフォルト値は /var/run/sudo/ です。
pam_timestamp.so
モジュールの制御に関する詳細は、「インストールされているドキュメント」 を参照してください。
48.4.7. PAM とデバイスの所有者
pam_console.so
と呼ばれる PAM モジュールによって制御されます。
48.4.7.1. デバイスの所有者
pam_console.so
モジュールはログ イン またはグラフィカルログインプログラムである gdm、kdm、および xdm によって呼び出されます。このユーザーが、コンソールユーザー と呼ばれる物理コンソールにログインする最初の ユーザー である場合、モジュールは通常 root が所有するさまざまなデバイスのユーザー所有権を付与します。コンソールユーザーは、そのユーザーの最後のローカルセッションが終了するまでこれらのデバイスを所有します。このユーザーがログアウトした後、デバイスの所有権は root ユーザーに戻ります。
pam_console.so
が制御するデバイスの一覧を変更するには、以下のファイルを編集します。
/etc/security/console.perms
/etc/security/console.perms.d/50-default.perms
50-default.perms
ファイルを変更するのではなく、新しいファイル( xx-name.perms
など)を作成し、必要な変更を入力する必要があります。新しいデフォルトファイルの名前は、50 を超える数字で開始する必要があります(例: 51-default.perms
)。これにより、50-default.perms
ファイルでデフォルト値が上書きされます。
/etc/security/console.perms
の < console > と {} ディレクティブを次の値に変更することを推奨します。
<console>=tty[0-9][0-9]* vc/[0-9][0-9]* :0\.[0-9] :0 <xconsole>=:0\.[0-9] :0
<console>=tty[0-9][0-9]* vc/[0-9][0-9]* :0\.[0-9] :0
<xconsole>=:0\.[0-9] :0
<console>=tty[0-9][0-9]* vc/[0-9][0-9]*
<console>=tty[0-9][0-9]* vc/[0-9][0-9]*
48.4.7.2. アプリケーションアクセス
/etc/security/console.apps/
ディレクトリーで使用するために設定された特定のプログラムにもアクセスできます。
/sbin
および /usr/sbin
で特定のアプリケーションを実行できるようにする設定ファイルが含まれています。
- /sbin/halt
- /sbin/reboot
- /sbin/poweroff
pam_console.so
モジュールを使用要件として呼び出します。
48.4.8. 関連情報
48.4.8.1. インストールされているドキュメント
- PAM 関連の man ページ:PAM に関連するさまざまなアプリケーションや設定ファイルには、いくつかの man ページが存在します。以下は、より重要な man ページの一部の一覧です。
- 設定ファイル
- PAM - PAM 設定ファイルの構造や目的など、PAM に関する理解情報。この man ページでは、
/etc/pam.conf
と個々の設定ファイルの両方が、/etc/pam.d/
ディレクトリーにある説明にご留意ください。デフォルトでは、Red Hat Enterprise Linux は/etc/pam.d/
ディレクトリーの個々の設定ファイルを使用し、/etc/pam.conf
が存在しても無視します。 - pam_console -
pam_console.so
モジュールの目的を説明しています。また、PAM 設定ファイル内のエントリーに適した構文も説明します。 - console.apps:
/etc/security/console.apps
設定ファイルで利用可能な形式およびオプションを説明します。これは、PAM が割り当てたコンソールユーザーがアクセス可能なアプリケーションを定義します。 - console.perms -
/etc/security/console.perms
設定ファイルで利用可能な形式およびオプションを説明します。これは、PAM によって割り当てられるコンソールユーザーパーミッションを指定します。 - pam_timestamp:
pam_timestamp.so
モジュールを説明しています。
/usr/share/doc/pam- <version-number
>: 『System Administrators' Guide』、『Module Writers' Manual』、および 『Application Developers' Manual』、および PAM 標準 DCE-RFC 86.0 のコピーが含まれます。< version-number > は PAM のバージョン番号です。/usr/share/doc/pam- <version- <version-number> /txts/README.pam_timestamp
-pam_timestamp.so
PAM モジュールに関する情報が含まれます。< version-number > は PAM のバージョン番号になります。
48.4.8.2. 便利な Web サイト
- http://www.kernel.org/pub/linux/libs/pam/ - Linux-PAM プロジェクトの主要なディストリビューション Web サイト。さまざまな PAM モジュール、FAQ、および追加の PAM ドキュメントに関する情報が含まれます。注記上記の Web サイトのドキュメントは、最後にリリースされた PAM のアップストリームバージョン用で、Red Hat Enterprise Linux に含まれる PAM バージョンについては 100% 正確ではない可能性があります。
48.5. TCP Wrapper および xinetd
xinetd
スーパーサーバー です。このサービスは、ネットワークサービスのサブセットへの接続を制御し、アクセス制御をさらに絞り込むため、スーパーサーバーと呼ばれます。
図48.9 ネットワークサービスへのアクセス制御

[D]
xinetd
のロールと、ロギングと使用状況管理の両方を強化するためにこれらのツールがどのように使用されるかを確認することに重点を置いています。iptables でファイアウォールを使用する方法は、「iptables」 を参照してください。
48.5.1. TCP Wrapper
tcp_wrappers
)はデフォルトでインストールされ、ホストベースのアクセス制御にホストベースのアクセス制御が提供されます。パッケージ内の最も重要なコンポーネントは、/usr/lib/libwrap.a
ライブラリーです。一般的に、TCP-wrapped サービスは、libwrap.a
ライブラリーに対してコンパイルされているサービスです。
/etc/hosts.allow
および /etc/hosts.deny
)を参照して、クライアントが接続できるかどうかを判断します。ほとんどの場合、syslog デーモン(syslogd
)を使用して要求元のクライアントの名前と要求されたサービスを /var/log/secure
または /var/log/messages
に書き込みます。
libwrap.a
ライブラリーにリンクされています。このようなアプリケーションには、/usr/sbin/sshd
、/usr/sbin/sendmail、および /usr/sbin/xinetd
が含まれます。
libwrap.a
にリンクされているかどうかを確認するには、root で以下のコマンドを入力します。
ldd <binary-name> | grep libwrap
ldd <binary-name> | grep libwrap
libwrap.a
にリンクされて いません。
/usr/sbin/sshd
が libwrap.a
にリンクされていることを示しています。
~]# ldd /usr/sbin/sshd | grep libwrap libwrap.so.0 => /usr/lib/libwrap.so.0 (0x00655000) ~]#
~]# ldd /usr/sbin/sshd | grep libwrap
libwrap.so.0 => /usr/lib/libwrap.so.0 (0x00655000)
~]#
48.5.1.1. TCP Wrapper の利点
- クライアントとラップされたネットワークサービスの両方に対する透過性:接続クライアントとラップ されたネットワークサービスの両方が、TCP Wrapper が使用されていることを認識しません。正当なユーザーは、禁止されたクライアントからの接続中にログに記録され、要求されたサービスに接続されます。
- 複数のプロトコルの一元管理: TCP Wrapper は、保護するネットワークサービスとは別に動作し、多くのサーバーアプリケーションが共通のアクセス制御設定ファイルのセットを共有できるため、管理が容易になります。
48.5.2. TCP Wrapper 設定ファイル
/etc/hosts.allow
/etc/hosts.deny
- これは
/etc/hosts.allow
を参照します。: TCP ラップされたサービスは/etc/hosts.allow
ファイルを順番に解析し、そのサービスに指定された最初のルールを適用します。マッチングルールを見つけると、接続が許可されます。そうでない場合は、次のステップに移動します。 - これは、
/etc/hosts.deny
を参照します。: TCP ラップされたサービスは、/etc/hosts.deny
ファイルを順番に解析します。マッチングルールを見つけると、接続を拒否します。そうでない場合は、サービスへのアクセスを付与します。
hosts.allow
のアクセスルールは最初に適用されるため、hosts.deny
で指定されたルールよりも優先されます。したがって、hosts.allow
でサービスへのアクセスが許可されると、hosts.deny
内の同じサービスへのアクセスを拒否するルールは無視されます。- 各ファイルのルールは上から読み取られ、指定されたサービスの最初のマッチングルールのみが適用されます。ルールの順序は極めて重要です。
- いずれかのファイルにサービスのルールがない場合、またはファイルが存在しない場合には、サービスへのアクセスが許可されます。
- TCP ラップされたサービスは、ホストのアクセスファイルのルールをキャッシュしないため、ネットワークサービスを再起動しなくても
hosts.allow
またはhosts.deny
への変更は即座に有効になります。
/var/log/messages
または /var/log/secure
のいずれかに記録されます。これは、バックスラッシュ文字を使用せずに複数の行にまたがるルールにも当てはまります。以下の例は、これらの状況のいずれかによるルール失敗に関するログメッセージの関連部分を示しています。
warning: /etc/hosts.allow, line 20: missing newline or line too long
warning: /etc/hosts.allow, line 20: missing newline or line too long
48.5.2.1. アクセスルールのフォーマット
/etc/hosts.allow
と /etc/hosts.deny
の両方の形式は同じです。各ルールはそれぞれの行に指定する必要があります。ハッシュ(#)で始まる空白行または行は無視されます。
<daemon list>: <client list> [: <option>: <option>: ...]
<daemon list>: <client list> [: <option>: <option>: ...]
- <daemon list >: プロセス名(サービス名ではない )またはすべてのワイルドカードのコンマ区切りリスト。
デーモンリストは、柔軟性を高めるために演算子( 「Operator」を参照)も受け入れます。
- <client list >: ルールの影響を受けるホストを識別するホスト名、ホスト IP アドレス、特別なパターン、またはワイルドカードのコンマ区切りリスト。クライアントリストは、「Operator」 に記載されている演算子も受け入れ、柔軟性を高めることができます。
- <option>: ルールがトリガーされたときに実行されるアクションのオプション のアクションまたはコロン区切りの一覧。オプションフィールドは、拡張、シェルコマンドの起動、アクセスを許可または拒否、およびロギング動作の変更をサポートします。
vsftpd : .example.com
vsftpd : .example.com
example.com
ドメインのホストから FTP デーモン(vsftpd
)への接続を監視するように TCP Wrapper に指示します。このルールが hosts.allow
に表示されると、接続は受け入れられます。このルールが hosts.deny
に表示されると、接続は拒否されます。
sshd : .example.com \ : spawn /bin/echo `/bin/date` access denied>>/var/log/sshd.log \ : deny
sshd : .example.com \ : spawn /bin/echo `/bin/date` access denied>>/var/log/sshd.log \ : deny
example.com
ドメインのホストから SSH デーモン(sshd
)への接続を試行する場合は、echo コマンドを実行して特別なログファイルに試行を追加し、接続を拒否します。オプションの deny ディレクティブが使用されるため、この行は hosts.allow
ファイルに表示された場合でもアクセスを拒否します。利用可能なオプションの詳細は、「オプションフィールド」 を参照してください。
48.5.2.1.1. ワイルドカード
all
: すべてに一致します。これは、デーモンリストとクライアント一覧の両方に使用できます。LOCAL
- localhost などのピリオド(.)を含まないホストに一致します。KNOWN
- ホスト名およびホストアドレスが分かっているホスト、またはユーザーが認識されているホストと一致します。UNKNOWN
: ホスト名またはホストアドレスが不明なホスト、またはユーザーが不明なホストと一致します。PARANOID
: ホスト名がホストアドレスに一致しないホストと一致します。
N、
UNKNOWN
、および PARANOID
ワイルドカードは、正しい操作のために機能する DNS サーバーに依存するため、注意して使用する必要があります。名前解決が中断されると、正当なユーザーがサービスへのアクセスを取得できなくなる可能性があります。
48.5.2.1.2. パターン
- ピリオド(.)で始まるホスト名 - ホスト名の先頭にピリオドを配置すると、その名のリストされた コンポーネントを共有するすべてのホストと一致します。以下の例は、
example.com
ドメイン内のホストに適用されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ALL : .example.com
ALL : .example.com
- ピリオド(.)で終わる IP アドレス は、IP アドレスの最後にピリオドを配置すると、IP アドレスの最初の数値グループを共有するすべてのホストと一致します。以下の例では、
192.168.x.x ネットワーク内の任意のホストに適用されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ALL : 192.168.
ALL : 192.168.
- IP アドレス/ネットマスクのペア - ネットマスク式は、特定の IP アドレスのグループへのアクセスを制御するパターンとして使用することもできます。以下の例は、アドレス範囲が 192.168.0.
0
から192.168.1.255
までのホストに適用されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ALL : 192.168.0.0/255.255.254.0
ALL : 192.168.0.0/255.255.254.0
重要な影響IPv4 アドレス空間で作業する場合、アドレス/接頭辞長(prefixlen)ペア宣言(CIDR 表記)はサポートされません。この形式を使用できるのは、IPv6 ルールのみです。 - [IPv6 address]/prefixlen ペア - [net]/prefixlen ペアを、特定の IPv6 アドレスのグループへのアクセスを制御するパターンとして使用することもできます。以下の例では、3ffe:505:2:1: through
3ffe:505:2:1: through
のアドレス範囲を持つホストに適用されます。3ffe:505:
2:1:ffff:ffff:ffff :Copy to Clipboard Copied! Toggle word wrap Toggle overflow ALL : [3ffe:505:2:1::]/64
ALL : [3ffe:505:2:1::]/64
- アスタリスク(*): Asterisks を使用して、他のタイプのパターンを含むクライアントリストで混在しない限り、ホスト名または IP アドレスのグループ全体を照合できます。以下の例では、
example.com
ドメイン内の任意のホストに適用されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ALL : *.example.com
ALL : *.example.com
- スラッシュ(/): クライアントリストがスラッシュで始まる場合は、ファイル名として処理されます。これは、多数のホストを指定するルールが必要な場合に役立ちます。以下の例では、すべての Telnet 接続の
/etc/telnet.hosts
ファイルに TCP Wrapper を参照します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow in.telnetd : /etc/telnet.hosts
in.telnetd : /etc/telnet.hosts
hosts_access
の man 5 ページを参照してください。
48.5.2.1.3. portmap および TCP Wrapper
hosts.allow
または hosts.deny
の portmap のアクセス制御ルールは、ホストの指定に IP アドレスまたはキーワード ALL
を使用する必要があります。
48.5.2.1.4. Operator
EXCEPT
)を受け入れます。これは、デーモンリストとルールのクライアントリストの両方で使用できます。
EXCEPT
演算子を使用すると、同じルール内のより幅広い一致に対して特定の例外を許可します。
hosts.allow
ファイルからの例では、example.com
ホストはすべて cracker.example.com
以外のすべてのサービスに接続できます。
ALL: .example.com EXCEPT cracker.example.com
ALL: .example.com EXCEPT cracker.example.com
hosts.allow
ファイルの別の例では、192.168.0.
X ネットワークのクライアントは FTP 以外のすべてのサービスを使用できます。
ALL EXCEPT vsftpd: 192.168.0.
ALL EXCEPT vsftpd: 192.168.0.
EXCEPT
演算子の使用は避けやすくなります。これにより、EXCEPT
オペレーターでソートせずに、適切なファイルをすばやくスキャンして、サービスへのアクセスが許可または拒否されるホストを確認できます。
48.5.2.2. オプションフィールド
48.5.2.2.1. ロギング
severity
ディレクティブを使用してルールのログファシリティと優先度レベルを簡単に変更できます。
example.com
ドメイン内のホストから SSH デーモンへの接続が、優先度が emerg
のデフォルトの authpriv
syslog
ファシリティーに記録されます(ファシリティー値が指定されていないため)。
sshd : .example.com : severity emerg
sshd : .example.com : severity emerg
severity
オプションを使用してファシリティーを指定することもできます。以下の例では、ホストによる SSH 接続の試行を example.com
ドメインの local0
機能に記録し、優先度が alert
にします。
sshd : .example.com : severity local0.alert
sshd : .example.com : severity local0.alert
syslogd
)が local0 ファシリティーにログを記録するように設定されるまで動作しません。カスタムログ機能の設定に関する詳細は、syslog.conf
の man ページを参照してください。
48.5.2.2.2. アクセス制御
許可
または 拒否
することもできます。
client-1.example.com からの SSH 接続を許可します
が、client-2.example.com からの接続を拒否します。
sshd : client-1.example.com : allow sshd : client-2.example.com : deny
sshd : client-1.example.com : allow
sshd : client-2.example.com : deny
hosts.allow
または hosts.deny
のいずれかのすべてのアクセス制御ルールを単一のファイルに統合できます。一部の管理者は、これをより簡単にアクセスルールを整理する方法を検討します。
48.5.2.2.3. シェルコマンド
- Launchs: シェルコマンドを子プロセスとして起動します。このディレクティブは、/usr/sbin/safe_finger を使用して、要求しているクライアントに関する詳細情報を取得したり、echo コマンドを使用して特別なログファイルを作成したりできます。以下の例では、
example.com
ドメインから Telnet サービスにアクセスしようとするクライアントは、特別なファイルに記録されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow in.telnetd : .example.com \ : spawn /bin/echo `/bin/date` from %h>>/var/log/telnet.log \ : allow
in.telnetd : .example.com \ : spawn /bin/echo `/bin/date` from %h>>/var/log/telnet.log \ : allow
- twist: 要求されたサービスを、指定したコマンドに置き換えます。このディレクティブは、多くの場合、侵入者(honey pots とも呼ばれる)のトラップを設定するために使用されます。また、接続しているクライアントへのメッセージ送信にも使用できます。twist ディレクティブは、ルール行の最後に行われる必要があります。以下の例では、
example.com
ドメインから FTP サービスにアクセスしようとするクライアントには、echo コマンドを使用してメッセージを送信します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow vsftpd : .example.com \ : twist /bin/echo "421 This domain has been black-listed. Access denied!"
vsftpd : .example.com \ : twist /bin/echo "421 This domain has been black-listed. Access denied!"
hosts_options
を参照してください。
48.5.2.2.4. 拡張
%a
- クライアントの IP アドレスを返します。%
a - サーバーの IP アドレスを返します。%c
: ユーザー名、ホスト名、ユーザー名および IP アドレスなどのさまざまなクライアント情報を返します。%d
: デーモンプロセス名を返します。%h
- クライアントのホスト名(またはホスト名が利用できない場合は IP アドレス)を返します。%h
- サーバーのホスト名(またはホスト名が利用できない場合は IP アドレス)を返します。%n
- クライアントのホスト名を返します。利用できない場合は、unknown
が出力されます。クライアントのホスト名とホストアドレスが一致しない場合は、paranoid
が出力されます。%n
- サーバーのホスト名を返します。利用できない場合は、unknown
が出力されます。サーバーのホスト名とホストアドレスが一致しない場合は、paranoid
が出力されます。%p
- デーモンのプロセス ID を返します。%s
- デーモンプロセス、サーバーのホストまたは IP アドレスなどのさまざまな種類のサーバー情報を返します。%u
- クライアントのユーザー名を返します。利用できない場合は、unknown
が出力されます。
example.com
ドメインのホストから SSH デーモン(sshd
)への接続を試行する場合は、echo コマンドを実行して、クライアントのホスト名( %h
拡張を使用)を含む試行を特別なファイルに記録します。
sshd : .example.com \ : spawn /bin/echo `/bin/date` access denied to %h>>/var/log/sshd.log \ : deny
sshd : .example.com \
: spawn /bin/echo `/bin/date` access denied to %h>>/var/log/sshd.log \
: deny
example.com
ドメインから FTP サービスにアクセスしようとすると、サーバーから禁止されていることが通知されます。
vsftpd : .example.com \ : twist /bin/echo "421 %h has been banned from this server!"
vsftpd : .example.com \
: twist /bin/echo "421 %h has been banned from this server!"
hosts_access
の man ページの 5 セクション5 および hosts_
optionsの man ページを参照してください。
48.5.3. xinetd
xinetd
デーモンは TCP ラップされた スーパーサービス で、FTP、IMAP、Telnet などの一般的なネットワークサービスのサブセットへのアクセスを制御します。また、アクセス制御、強化されたロギング、バインディング、リダイレクト、およびリソース使用状況制御のためのサービス固有の設定オプションも提供します。
xinetd
によって制御されるネットワークサービスへの接続を試みると、スーパーサービスは要求を受け取り、TCP Wrappers アクセス制御ルールを確認します。
xinetd
は、そのサービスの独自のアクセスルールで接続が許可されることを確認します。また、サービスがより多くのリソースを割り当てることができるかどうかや、定義されたルールに違反するかどうかをチェックします。
xinetd
は要求されたサービスのインスタンスを起動し、接続の制御を渡します。接続が確立されると、xinetd
はクライアントとサーバー間の通信の一部を取りません。
48.5.4. xinetd 設定ファイル
xinetd
の設定ファイルは、以下のとおりです。
/etc/xinetd.conf
: グローバルxinetd
設定ファイル。/etc/xinetd.d/
: サービス固有のファイルをすべて含むディレクトリー。
48.5.4.1. /etc/xinetd.conf ファイル
/etc/xinetd.conf
ファイルには、xinetd
のコントロール下にあるすべてのサービスに影響する一般的な設定が含まれています。xinetd
サービスが最初に起動されると読み取られるため、設定の変更を有効にするには、xinetd
サービスを再起動する必要があります。以下は、/etc/xinetd.conf
ファイルの例です。
defaults { instances = 60 log_type = SYSLOG authpriv log_on_success = HOST PID log_on_failure = HOST cps = 25 30 } includedir /etc/xinetd.d
defaults
{
instances = 60
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
cps = 25 30
}
includedir /etc/xinetd.d
xinetd
の以下の側面を制御します。
instances
-xinetd
が処理できる同時要求の最大数を指定します。log_type
: ログエントリーを/var/log/secure
ファイルに書き込む authpriv ログファシリティーを使用するようにxinetd
を設定します。FILE /var/log/xinetdlog
などのディレクティブを追加すると、/var/log/
ディレクトリーにxinetdlog
という名前のカスタムログファイルが作成されます。log_on_success
- 正常な接続試行をログに記録するようにxinetd
を設定します。デフォルトでは、リモートホストの IP アドレスと、要求を処理するサーバーのプロセス ID が記録されます。log_on_failure
:xinetd
が、失敗した接続試行をログに記録するか、接続が拒否されたかどうかを設定します。CP:
サービスに対する 1 秒あたり 25 を超える接続を許可するように設定します。この制限を超えると、サービスは 30 秒間廃止されます。xinetd
を、特定のincludedir
/etc/xinetd.d/
-/etc/xinetd.d/
ディレクトリーにあるサービス固有の設定ファイルに宣言されたオプションを含めます。詳細は、「/etc/xinetd.d/ ディレクトリー」 を参照してください。
/etc/xinetd.conf
の log_on_success
設定および log_on_failure
設定は、サービス固有の設定ファイルでさらに変更されます。したがって、/etc/xinetd.conf
ファイルよりも、指定のサービスのログファイルにより多くの情報が表示される可能性があります。詳細は、「ロギングのオプション」 を参照してください。
48.5.4.2. /etc/xinetd.d/ ディレクトリー
/etc/xinetd.d/
ディレクトリーには、xinetd
が管理する各サービスの設定ファイルと、ファイルの名前がサービスに関連付けられます。xinetd.conf
と同様に、このディレクトリーは xinetd
サービスが起動したときにのみ読み取られます。変更を有効にするには、管理者は xinetd
サービスを再起動する必要があります。
/etc/xinetd.d/
ディレクトリーのファイルの形式は、/etc/xinetd.conf
と同じ規則を使用します。各サービスの設定が個別のファイルに保存される主な理由は、カスタマイズを容易にし、他のサービスに影響を与える可能性を減らすことです。
/etc/xinetd.d/krb5-telnet
ファイルを検討してください。
service telnet { flags = REUSE socket_type = stream wait = no user = root server = /usr/kerberos/sbin/telnetd log_on_failure += USERID disable = yes }
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/kerberos/sbin/telnetd
log_on_failure += USERID
disable = yes
}
- service:
サービス
名を指定します(通常は/etc/services
ファイルに記載されているもののいずれか)。 flags
: 接続の属性を複数設定します。REUSE
は、Telnet 接続のソケットを再利用するようにxinetd
に指示します。注記REUSE
フラグは非推奨になりました。すべてのサービスは、暗黙的にREUSE
フラグを使用するようになりました。socket_type
: ネットワークソケットの種別をストリーム
に設定します。wait
: サービスがシングルスレッド(yes
)またはマルチスレッド(no
)であるかを指定します。user
: プロセスを実行するユーザー ID を指定します。server
- 起動するバイナリー実行ファイルを指定します。log_on_failure
:xinetd.conf
にすでに定義されているものに加えて、log_on_failure
のログパラメーターを指定します。disable
: サービスを無効にする(はい)か有効にするか
を指定します(は
無効)。
xinetd.conf
の man ページを参照してください。
48.5.4.3. xinetd 設定ファイルの変更
xinetd
が保護するサービスには、さまざまなディレクティブを使用できます。本セクションでは、一般的に使用されるオプションの一部を説明します。
48.5.4.3.1. ロギングのオプション
/etc/xinetd.conf
と /etc/xinetd.d/
ディレクトリー内のサービス固有の設定ファイルの両方で利用できます。
ATTEMPT
- 試行に失敗したファクトをログに記録します(log_on_failure
)。DURATION
- サービスがリモートシステムで使用される期間をログに記録します(log_on_success
)。EXIT
- サービスの終了ステータスまたは終了シグナルをログに記録します(log_on_success
)。HOST
: リモートホストの IP アドレスをログに記録します(log_on_failure
およびlog_on_success
)。PID
- 要求を受信するサーバーのプロセス ID をログに記録します(log_on_success
)。USERID
: 全マルチスレッドストリームサービスに対して RFC 1413 で定義された方法を使用してリモートユーザーをログに記録します(log_on_failure
およびlog_on_success
)。
xinetd.conf
の man ページを参照してください。
48.5.4.3.2. アクセス制御オプション
xinetd
サービスのユーザーは、TCP Wrapper のホストアクセスルールの使用、xinetd
設定ファイルを介したアクセス制御の提供、またはその両方の組み合わせを選択できます。TCP Wrappers ホストアクセス制御ファイルの詳細は、「TCP Wrapper 設定ファイル」 を参照してください。
xinetd
を使用してサービスへのアクセスを制御する方法を説明します。
xinetd
管理者が xinetd
サービスを再起動する場合にのみ有効になります。
xinetd
を介したアクセス制御は xinetd
によって制御されるサービスにのみ影響します。
xinetd
のホストアクセス制御は、TCP Wrapper で使用される方法とは異なります。TCP Wrapper は、すべてのアクセス設定を /etc/hosts.allow
と /etc/hosts.deny
の 2 つのファイルに配置しますが、xinetd
のアクセス制御は /etc/xinetd.d/
ディレクトリーの各サービスの設定ファイルにあります。
xinetd
でサポートされています。
only_from
: 指定されたホストのみがサービスを使用できるようにします。no_access
: サービスの使用から一覧表示されるホストをブロックします。access_times
: 特定のサービスを使用できる時間の範囲を指定します。時間の範囲は、24 時間形式の表記(HH:MM-HH:MM)で記述する必要があります。
only_from
オプションおよび no_access
オプションは、IP アドレスまたはホスト名の一覧を使用するか、ネットワーク全体を指定できます。TCP Wrapper と同様に、xinetd
のアクセス制御と強化されたロギング設定を組み合わせると、禁止ホストからの要求をブロックし、各接続試行を詳細に記録することでセキュリティーを強化できます。
/etc/xinetd.d/telnet
ファイルを使用して、特定のネットワークグループからの Telnet アクセスをブロックし、ユーザーがログインできる全体的な時間範囲を制限できます。
service telnet { disable = no flags = REUSE socket_type = stream wait = no user = root server = /usr/kerberos/sbin/telnetd log_on_failure += USERID no_access = 172.16.45.0/24 log_on_success += PID HOST EXIT access_times = 09:45-16:15 }
service telnet
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/kerberos/sbin/telnetd
log_on_failure += USERID
no_access = 172.16.45.0/24
log_on_success += PID HOST EXIT
access_times = 09:45-16:15
}
10.0.1 .2
などの 10.0.1.0/24
ネットワークのクライアントシステムが Telnet サービスにアクセスしようとすると、以下のメッセージが表示されます。
Connection closed by foreign host.
Connection closed by foreign host.
/var/log/messages
に記録されます。
Sep 7 14:58:33 localhost xinetd[5285]: FAIL: telnet address from=172.16.45.107 Sep 7 14:58:33 localhost xinetd[5283]: START: telnet pid=5285 from=172.16.45.107 Sep 7 14:58:33 localhost xinetd[5283]: EXIT: telnet status=0 pid=5285 duration=0(sec)
Sep 7 14:58:33 localhost xinetd[5285]: FAIL: telnet address from=172.16.45.107
Sep 7 14:58:33 localhost xinetd[5283]: START: telnet pid=5285 from=172.16.45.107
Sep 7 14:58:33 localhost xinetd[5283]: EXIT: telnet status=0 pid=5285 duration=0(sec)
xinetd
アクセス制御と併用する場合は、2 つのアクセス制御メカニズム間の関係を理解することが重要です。
xinetd
が続くイベントシーケンスになります。
xinetd
デーモンは、libwrap.a
ライブラリー呼び出しを使用して、ホストアクセスルールにアクセスします。deny ルールがクライアントと一致する場合、接続は破棄されます。allow ルールがクライアントと一致する場合、接続はxinetd
に渡されます。xinetd
デーモンは、xinetd
サービスと要求されたサービスの両方について、独自のアクセス制御ルールをチェックします。deny ルールがクライアントと一致する場合、接続は破棄されます。それ以外の場合は、xinetd
は要求されたサービスのインスタンスを開始し、そのサービスへの接続の制御を渡します。
xinetd
アクセス制御とともに TCP Wrapper のアクセス制御を使用する場合は注意が必要です。設定が間違っていると、望ましくない結果が生じる可能性があります。
48.5.4.3.3. バインディングおよびリダイレクトオプション
xinetd
のサービス設定ファイルは、サービスを IP アドレスにバインドし、そのサービスの受信要求を別の IP アドレス、ホスト名、またはポートにリダイレクトすることをサポートしています。
bind
オプションで制御され、そのサービスをシステム上の 1 つの IP アドレスにリンクします。これを設定すると、bind
オプションは、正しい IP アドレスへの要求のみがサービスにアクセスできるようにします。この方法を使用して、要件に基づいて異なるサービスを異なるネットワークインターフェイスにバインドできます。
redirect
オプションは、IP アドレスまたはホスト名の後にポート番号を受け入れます。このサービスの要求を指定されたホストおよびポート番号にリダイレクトするようにサービスを設定します。この機能は、同じシステム上の別のポート番号を参照したり、要求を同じマシン上の別の IP アドレスにリダイレクトしたり、完全に異なるシステムとポート番号に要求したり、これらのオプションの組み合わせを移行したりできます。したがって、システムで特定のサービスに接続するユーザーは、中断することなく別のシステムに再ルーティングされる可能性があります。
xinetd
デーモンは、要求元のクライアントマシンと実際には 2 つのシステム間でデータを転送して、接続期間中に有効なプロセスを生成することで、このリダイレクトを実行できます。
bind
および redirect
オプションの利点は、一緒に使用されると最も明確になります。サービスをシステム上の特定の IP アドレスにバインドし、このサービスの要求を最初のマシンのみが確認できる 2 つ目のマシンにリダイレクトすることで、内部システムを使用して、完全に異なるネットワークのサービスを提供できます。または、これらのオプションを使用して、マルチホームマシン上の特定のサービスの公開を既知の IP アドレスに制限したり、そのために特に設定された別のマシンにサービスの要求をリダイレクトしたりできます。
service telnet { socket_type = stream wait = no server = /usr/kerberos/sbin/telnetd log_on_success += DURATION USERID log_on_failure += USERID bind = 123.123.123.123 redirect = 10.0.1.13 23 }
service telnet
{
socket_type = stream
wait = no
server = /usr/kerberos/sbin/telnetd
log_on_success += DURATION USERID
log_on_failure += USERID
bind = 123.123.123.123
redirect = 10.0.1.13 23
}
bind
および redirect
オプションは、マシンの Telnet サービスが、インターネットに接続されている外部 IP アドレス(123.123.123.123
)にバインドされていることを確認します。さらに、123.123. 123.123
に送信された Telnet サービスの要求は、2 番目のネットワークアダプターを介して、ファイアウォールおよび内部システムのみがアクセスできる内部 IP アドレス(10.0.1.13
)にリダイレクトされます。次に、ファイアウォールは 2 つのシステム間の通信を送信し、接続システムは、実際に別のマシンに接続されているときに 123.123
.123.123 に接続していると見なします。
xinetd
が制御する特定のサービスが bind
および redirect
オプションで設定されている場合、ゲートウェイマシンは外部システムと、そのサービスを提供するように設定された特定の内部マシンとの間のプロキシーとして機能します。さらに、追加の保護には、xinetd
のさまざまなアクセス制御とロギングオプションも利用できます。
48.5.4.3.4. リソース管理オプション
xinetd
デーモンは、DoS (Denial of Service)攻撃からの基本的な保護レベルを追加できます。以下は、このような攻撃の効果を制限するのに役立つディレクティブの一覧です。
per_source
: ソース IP アドレスあたりのサービスの最大インスタンス数を定義します。これは整数を引数としてのみ使用でき、xinetd.conf
と、xinetd.d/
ディレクトリーのサービス固有の設定ファイルの両方で使用できます。CP
: 1 秒あたりの接続の最大数を定義します。このディレクティブは、空白で区切られた 2 つの整数引数を取ります。最初の引数は、1 秒あたりのサービスに対して許可される接続の最大数です。2 つ目の引数は、サービスを再度有効にする前にxinetd
が待機する必要のある秒数です。これは整数としてのみ使用でき、xinetd.conf
ファイルまたはxinetd.d/
ディレクトリー内のサービス固有の設定ファイルで使用できます。max_load
: サービスの CPU 使用率または負荷平均しきい値を定義します。浮動小数点数の引数を受け入れます。平均負荷は、特定の時点でアクティブなプロセス数に関する大まかな測定値です。平均負荷の詳細は、uptime コマンド、who コマンド、および procinfo コマンドを参照してください。
xinetd
では、より多くのリソース管理オプションを利用できます。詳細は、xinetd.conf
の man ページを参照してください。
48.5.5. 関連情報
xinetd
の詳細は、システムドキュメントおよびインターネットを参照してください。
48.5.5.1. インストールされているドキュメント
xinetd
、および アクセス制御の追加設定オプションの検索を開始するのに適した場所です。
/usr/share/doc/tcp_wrappers- <version> /
- このディレクトリーには、TCP Wrapper の仕組みと、存在するさまざまなホスト名およびホストアドレスのスプーフィングリスクを説明するREADME
ファイルが含まれています。/usr/share/doc/xinetd- <version> /
- このディレクトリーには、アクセス制御の側面を説明するREADME
ファイルと、/etc/xinetd.d/
ディレクトリーのサービス固有の設定ファイルを変更するさまざまな概念を持つsample.conf
ファイルが含まれています。- TCP Wrapper と
xinetd
関連の man ページ:TCP Wrapper とxinetd
に関連するさまざまなアプリケーションおよび設定ファイル用の man ページが多数あります。以下は、より重要な man ページの一部です。- サーバーアプリケーション
- man xinetd:
xinetd
の man ページ
- 設定ファイル
- man 5 hosts_access: TCP Wrapper の man ページは、アクセス制御ファイルをホストします。
- man hosts_options: TCP Wrappers オプションフィールドの man ページです。
- man xinetd.conf:
xinetd
設定オプションを一覧表示する man ページです。
48.5.5.2. 便利な Web サイト
- http://www.xinetd.org/ - サンプル設定ファイル、機能の完全なリスト、および情報 FAQ を含む
xinetd
のホーム。 - http://www.macsecurity.org/resources/xinetd/tutorial.shtml: 特定のセキュリティー目標を達成するためにデフォルトの
xinetd
設定ファイルを最適化するさまざまな方法を説明する詳細なチュートリアルです。
48.6. Kerberos
48.6.1. Kerberos とは
48.6.1.1. Kerberos の利点
48.6.1.2. Kerberos の欠点
- このタスクを実行する自動メカニズムがないため、
/etc/passwd
や/etc/shadow
などの標準の UNIX パスワードデータベースから Kerberos パスワードデータベースにユーザーパスワードを移行することはできます。オンラインの Kerberos FAQ で質問 2.23 を参照してください。 - Kerberos は、ほとんどの Red Hat Enterprise Linux サーバーが使用する PAM (Pluggable Authentication Modules)システムとの部分的な互換性しかありません。この問題の詳細は、「Kerberos および PAM」 を参照してください。
- Kerberos は、各ユーザーが信頼されていて、信頼できないネットワーク上で信頼できないホストを使用していることを前提としています。その主な目的は、暗号化されていないパスワードがそのネットワーク上で送信されないようにすることです。ただし、適切なユーザー以外のユーザーが、認証に使用されるチケットを発行するホスト( キー配布センター (KDC)と呼ばれる)にアクセスできる場合、Kerberos 認証システム全体が危険にさらされます。
- アプリケーションが Kerberos を使用するには、そのソースを変更して Kerberos ライブラリーに適切な呼び出しを行う必要があります。この方法で変更したアプリケーションは、Kerberos 対応 または Kerberized として考慮されます。アプリケーションによっては、アプリケーションのサイズや設計により、非常に問題になる場合があります。その他の互換性のないアプリケーションでは、サーバーとクライアントが通信する方法に変更を加える必要があります。ここでも、詳細なプログラミングが必要になる場合があります。デフォルトでは Kerberos サポートのないクローズソースアプリケーションは、多くの場合最も問題となります。
- Kerberos は、すべてまたはなしのソリューションです。ネットワークで Kerberos を使用する場合は、Kerberos 以外の対応サービスに転送される暗号化されていないパスワードはすべて危険にさらされます。したがって、このネットワークは Kerberos を使用する利点はありません。Kerberos でネットワークを保護するには、暗号化されていないパスワードを送信する すべて のクライアント/サーバーアプリケーションの Kerberos 対応バージョンを使用するか、そのようなクライアント/サーバーアプリケーションをまったく使用しない必要があります。
48.6.2. Kerberos の用語
- 認証サーバー(AS)
- ユーザーがサービスにアクセスできるようになる目的のサービスのチケットを発行するサーバー。AS は、要求でクレデンシャルを送信しない、または送信していないクライアントから要求に応答します。通常、TGT (Ticket-granting Ticket)を発行することで、TGS (Ticket-granting Server)サービスへのアクセスを取得するために使用されます。AS は通常、キー配布センター(KDC)と同じホストで実行されます。
- ciphertext
- 暗号化されたデータ。
- クライアント
- Kerberos からチケットを取得できるネットワーク上のエンティティー(ユーザー、ホスト、またはアプリケーション)。
- credentials
- 特定のサービスのクライアントの ID を確認する電子クレデンシャルの一時的なセット。チケットとも呼ばれます。
- 認証情報キャッシュまたはチケットファイル
- ユーザーとさまざまなネットワークサービス間の通信を暗号化する鍵を含むファイル。Kerberos 5 は、共有メモリーなどの他のキャッシュタイプを使用するためのフレームワークをサポートしますが、ファイルはより詳細にサポートされます。
- 暗号化ハッシュ
- ユーザーの認証に使用される一方向ハッシュ。暗号化されていないデータを使用するよりも安全性が高くなりますが、経験のあるクラッカーの暗号は比較的簡単です。
- GSS-API
- Generic Security Service Application Program Interface (RFC-2743 で定義)は、The Internet Engineering Task Force (Internet Engineering Task Force)によって公開される一連の関数です。この API は、基盤となるメカニズムに関する特定の知識がなくても、クライアントおよびサービスによって相互の認証に使用されます。ネットワークサービス(cyrus-IMAP など)が GSS-API を使用する場合は、Kerberos を使用して認証できます。
- ハッシュ
- ハッシュ値 とも呼ばれます。ハッシュ関数 で文字列を渡すことで生成された値。これらの値は、通常、送信データが改ざんされないようにするために使用されます。
- ハッシュ関数
- 入力データからデジタルフィンガープリントを生成する方法。これらの関数は、ハッシュ値 を生成するためにデータを再編成、変換、または変更します。
- key
- 他のデータの暗号化または復号化時に使用されるデータ。暗号化されたデータは、適切なキーなしで復号できず、クラッカーの一部で調整が非常に良くなります。
- キー配布センター(KDC)
- Kerberos チケットを発行し、通常は ticket-granting サーバー(TGS)と同じホストで実行されるサービス。
- keytab (またはキーテーブル)
- プリンシパルとそのキーの暗号化されていないリストが含まれるファイル。サーバーは、kinit を使用する代わりにキータブファイルから必要なキーを取得します。デフォルトのキータブファイルは
/etc/krb5.keytab
です。KDC 管理サーバー /usr/kerberos/sbin/kadmind は、他のファイルを使用する唯一のサービスです(/var/kerberos/krb5kdc/kadm5.keytab
を使用します)。 - kinit
- kinit コマンドを使用すると、すでにログインしているプリンシパルが、最初の TGT (Ticket-granting Ticket)を取得してキャッシュできます。詳細は、kinit の man ページを参照してください。
- プリンシパル(またはプリンシパル名)
- プリンシパルは、Kerberos を使用した認証が許可されるユーザーまたはサービスの一意の名前です。プリンシパルの形式は
root[/instance]@REALM
に従います。一般的なユーザーの場合、root はログイン ID と同じです。インスタンス
はオプションです。プリンシパルにインスタンスがある場合、これはスラッシュ("/")でルートから分離されます。空の文字列("")は有効なインスタンス(デフォルトのNULL
インスタンスとは異なる)とみなされますが、これを使用すると混乱が生じる可能性があります。レルムのすべてのプリンシパルには独自のキーがあり、ユーザーはパスワードから派生するか、またはサービスにランダムに設定されます。 - realm
- KDC と呼ばれる 1 つ以上のサーバーと、潜在的に多数のクライアントで設定される Kerberos を使用するネットワーク。
- サービス
- ネットワーク経由でアクセスするプログラム。
- ticket
- 特定のサービスのクライアントの ID を確認する電子クレデンシャルの一時的なセット。credentials とも呼ばれます。
- Ticket-Granting サーバー(TGS)
- ユーザーがサービスにアクセスできるようになる目的のサービスのチケットを発行するサーバー。通常、TGS は KDC と同じホストで実行されます。
- TGT (Ticket-Granting Ticket)
- KDC から適用せずにクライアントが追加のチケットを取得できるようにする特別なチケット。
- 暗号化されていないパスワード
- プレーンテキストの人間が判読できるパスワード。
48.6.3. Kerberos の仕組み
- ネットワーク上のマシン間のクロック同期の概算。クロック同期プログラムは、ntpd などのネットワークに設定する必要があります。ネットワークタイムプロトコルサーバーのセットアップに関する詳細は、
/usr/share/doc/ntp- <version-number> /index.html
を参照してください。< version-number > は、システムにインストールされているntp
パッケージのバージョン番号に置き換えます。 - DNS (Domain Name Service)ネットワーク上の DNS エントリーとホストがすべて適切に設定されていることを確認する必要があります。詳細は、
/usr/share/doc/krb5-server- <version-number
> の 『Kerberos V5 System Administrator's Guide』 を参照してください。< version-number > は、システムにインストールされているkrb5-server
パッケージのバージョン番号に置き換えてください。
48.6.4. Kerberos および PAM
pam_krb5
モジュール( pam_krb5
パッケージで提供)がインストールされていると、PAM を使用するアプリケーションは認証に Kerberos を使用できます。pam_krb5
パッケージには、ログイン や gdm などのサービスがユーザーを認証し、パスワードを使用して初期認証情報を取得できるようにする設定ファイルのサンプルが含まれています。ネットワークサーバーへのアクセスが常に、IMAP などの GSS-API を使用する Kerberos 対応のサービスまたはサービスを使用して実行される場合、ネットワークは適度に安全であると見なされます。
48.6.5. Kerberos 5 サーバーの設定
- Kerberos を設定する前に、時刻同期と DNS がすべてのクライアントおよびサーバーマシンで正しく機能していることを確認します。Kerberos サーバーとそのクライアント間の時刻同期に特に注意してください。サーバーとクライアント間の時間差が 5 分を超える場合(これは Kerberos 5 で設定可能)、Kerberos クライアントはサーバーに認証できません。この時間同期は、攻撃者が古い Kerberos チケットを使用して有効なユーザーとしてマスカレードしないようにするために必要です。Kerberos が使用されていない場合でも、NTP (Network Time Protocol)と互換性のあるクライアント/サーバーネットワークを設定することが推奨されます。Red Hat Enterprise Linux には、この目的のために
ntp
パッケージが含まれています。ネットワークタイムプロトコルサーバーの設定方法は/usr/share/doc/ntp-< version-number > /index.html
(<version-number> はシステムにインストールされているntp
パッケージのバージョン番号)、および NTP の詳細は http://www.ntp.org を参照してください。 - KDC を実行する専用マシンに
krb5-
パッケージをインストールします。このマシンは非常に安全である必要があります。可能な場合は、KDC 以外のサービスを実行しないでください。libs
、krb5-server
、および krb5-workstation - レルム名と、ドメインからレルムへのマッピングを反映するように
/etc/krb5.conf
と/var/kerberos/krb5kdc/kdc.conf
設定ファイルを編集します。シンプルなレルムは、EXAMPLE.COM と example.com のインスタンスを正しいドメイン名で置き換えることで設定できます。これは、正しい形式で大文字と小文字の名前を維持することが確実にでき、KDC を kerberos.example.com から Kerberos サーバーの名前に変更することで設定できます。通常、レルム名はすべて大文字で、DNS ホスト名およびドメイン名はすべて小文字になります。これらの設定ファイルの形式に関する詳細は、それぞれの man ページを参照してください。 - シェルプロンプトから kdb5_util ユーティリティーを使用してデータベースを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /usr/kerberos/sbin/kdb5_util create -s
/usr/kerberos/sbin/kdb5_util create -s
この create コマンドは、Kerberos レルムのキーを保存するデータベースを作成します。-s スイッチは、マスターサーバーキーが保存される stash ファイルの作成を強制します。キーの読み取り元となる stash ファイルがない場合、Kerberos サーバー (krb5kdc) は起動時に毎回マスターサーバーのパスワード (このパスワードを使って鍵を再生成できる) を要求します。 /var/kerberos/krb5kdc/kadm5.acl
ファイルを編集します。このファイルは、Kerberos データベースへの管理アクセス権限およびそのアクセスレベルを決定するために kadmind によって使用されます。ほとんどの組織は、次の 1 行で取得できます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow */admin@EXAMPLE.COM *
*/admin@EXAMPLE.COM *
多くのユーザーは、データベース内で単一のプリンシパルで表されます (joe@EXAMPLE.COM などの NULL または空のインスタンス)。この設定では、admin (例: joe/admin@EXAMPLE.COM)のインスタンスを持つ 2 番目のプリンシパルを持つユーザーは、レルムの Kerberos データベース全体のフルパワーをワイドできます。kadmind がサーバーで起動した後、ユーザーはレルム内のいずれかのクライアントまたはサーバーで kadmin を実行することで、そのサービスにアクセスできます。ただし、kadm5.acl
ファイルにリストされているユーザーのみが、自身のパスワードを変更することを除いて、データベースを編集できます。注記この kadmin ユーティリティーはネットワーク経由で kadmind サーバーと通信し、Kerberos を使用して認証を処理します。したがって、ネットワーク経由でサーバーに接続してサーバーを管理するには、最初のプリンシパルがすでに存在している必要があります。kadmin.local コマンドを使用して最初のプリンシパルを作成します。これは、KDC と同じホストで使用するように特別に設計されており、認証に Kerberos を使用しません。KDC ターミナルに以下の kadmin.local コマンドを入力して、最初のプリンシパルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow /usr/kerberos/sbin/kadmin.local -q "addprinc username/admin"
/usr/kerberos/sbin/kadmin.local -q "addprinc username/admin"
- 以下のコマンドを使用して Kerberos を起動します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow service krb5kdc start service kadmin start service krb524 start
service krb5kdc start service kadmin start service krb524 start
- kadmin 内で addprinc コマンドを使用してユーザーのプリンシパルを追加します。kadmin および kadmin.local は、KDC へのコマンドラインインターフェイスです。そのため、addprinc などのコマンドの多くは、kadmin プログラムの起動後に利用できます。詳細については kadmin の man ページを参照してください。
- KDC がチケットを発行していることを確認します。まず、kinit を実行してチケットを取得し、認証情報キャッシュファイルに保存します。次に、klist を使用してキャッシュ内の認証情報の一覧を表示し、kdestroy を使用して、キャッシュと含まれる認証情報を破棄します。注記デフォルトでは、kinit は、(Kerberos サーバーではなく)同じシステムログインユーザー名を使用して認証を試みます。ユーザー名が Kerberos データベースのプリンシパルに対応しない場合は、kinit がエラーメッセージを発行します。その場合は、コマンドライン( kinit <principal>)の引数として、正しいプリンシパルの名前とともにkinit を提供します。
48.6.6. Kerberos 5 クライアントの設定
krb5.conf
設定ファイルを提供します。クライアントシステムにリモートでログインする方法として、ssh と slogin が推奨されていますが、Kerberos 化されたバージョンの rsh と rlogin は引き続き利用できますが、それらをデプロイするにはさらに多くの設定変更を行う必要があります。
- Kerberos クライアントと KDC の間で時刻同期が行われていることを確認します。詳細は、「Kerberos 5 サーバーの設定」 を参照してください。さらに、Kerberos クライアントプログラムを設定する前に、DNS が Kerberos クライアントで適切に機能していることを確認します。
- すべてのクライアントマシンに
krb5-libs
およびkrb5-workstation
パッケージをインストールします。各クライアントに有効な/etc/krb5.conf
ファイルを指定します(通常は、KDC で使用される同じkrb5.conf
ファイルになります)。 - レルムのワークステーションが Kerberos を使用して、ssh または Kerberized rsh または rlogin を使用して接続するユーザーを認証する前に、Kerberos データベースに独自のホストプリンシパルが必要になります。sshd、kshd、および klogind サーバープログラムはすべて、ホスト サービスのプリンシパルのキーへのアクセスが必要になります。さらに、kerberized rsh および rlogin サービスを使用するには、そのワークステーションに
xinetd
パッケージがインストールされている必要があります。kadmin を使用して、KDC 上のワークステーション用のホストプリンシパルを追加します。この場合のインスタンスはワークステーションのホスト名です。kadmin の addprinc コマンドに -randkey オプションを指定してプリンシパルを作成し、それをランダムな鍵に割り当てます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow addprinc -randkey host/blah.example.com
addprinc -randkey host/blah.example.com
プリンシパルが作成されたので、ワークステーション 自体で kadmin を実行し、 kadmin 内で ktadd コマンドを使用すると、ワークステーション 用の鍵を抽出できるようになりました。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ktadd -k /etc/krb5.keytab host/blah.example.com
ktadd -k /etc/krb5.keytab host/blah.example.com
- その他の Kerberos ネットワークサービスを使用するには、まずそれらを起動する必要があります。以下は、一般的な Kerberos サービスの一覧と、そのサービスを有効にする手順です。
- SSH - クライアントとサーバーの設定で
GSSAPIAuthentication
が有効になっている場合、OpenSSH は GSS-API を使用してサーバーにユーザーを認証します。クライアントでもGSSAPIDelegateCredentials
が有効な場合は、ユーザーの認証情報がリモートシステムで利用可能になります。 - rsh および rlogin: kerberized バージョンの rsh および rlogin を使用するには、klogin、eklogin、および kshell を有効にします。
- telnet - kerberized Telnet を使用するには、krb5-telnet を 有効にする必要があります。
- FTP: FTP アクセスを提供するには、
ftp
のルートでプリンシパルのキーを作成して展開します。インスタンスを FTP サーバーの完全修飾ホスト名に設定し、gssftp を有効にするようにしてください。 - IMAP - kerberized IMAP サーバーを使用するには、
cyrus-sasl-gssapi
パッケージがインストールされている場合は、cyrus-imap
パッケージも Kerberos 5 を使用します。cyrus-sasl-gssapi
パッケージには、GSS-API 認証をサポートする Cyrus SASL プラグインが含まれます。Cyrus IMAP は、cyrus ユーザーが/etc/krb5.keytab
で適切な鍵を見つけ、プリンシパルのルートが imap ( kadminで作成された)に設定されている限り Kerberos で適切に機能します。cyrus-imap
の代替は、dovecot パッケージにあります。これは、Red Hat Enterprise Linux にも含まれています。このパッケージには IMAP サーバーが含まれていますが、現在のところ GSS-API および Kerberos には対応していません。 - CVS - kerberized CVS サーバーを使用するには、gserver は root が
cvs
のプリンシパルを使用し、それ以外の場合は CVS pserver と同じです。
サービスを有効にする方法は、18章 を参照してください。
48.6.7. ドメインからレルムへのマッピング
foo.example.org → EXAMPLE.ORG
foo.example.com → EXAMPLE.COM
foo.hq.example.com → HQ.EXAMPLE.COM
krb5.conf
の domain_realm セクションで指定する必要があります。以下に例を示します。
[domain_realm] .example.com = EXAMPLE.COM example.com = EXAMPLE.COM
[domain_realm]
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM
48.6.8. セカンダリー KDC の設定
krb5.conf および kdc.conf
ファイルがスレーブ KDC にコピーされていることを確認します。
~]# kadmin.local -r EXAMPLE.COM Authenticating as principal root/admin@EXAMPLE.COM with password. kadmin: add_principal -randkey host/masterkdc.example.com Principal "host/host/masterkdc.example.com@EXAMPLE.COM" created. kadmin: ktadd host/masterkdc.example.com Entry for principal host/masterkdc.example.com with kvno 3, encryption type Triple DES cbc mode with \ HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab. Entry for principal host/masterkdc.example.com with kvno 3, encryption type ArcFour with HMAC/md5 \ added to keytab WRFILE:/etc/krb5.keytab. Entry for principal host/masterkdc.example.com with kvno 3, encryption type DES with HMAC/sha1 added \ to keytab WRFILE:/etc/krb5.keytab. Entry for principal host/masterkdc.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 \ added to keytab WRFILE:/etc/krb5.keytab. kadmin: quit
~]# kadmin.local -r EXAMPLE.COM
Authenticating as principal root/admin@EXAMPLE.COM with password.
kadmin: add_principal -randkey host/masterkdc.example.com
Principal "host/host/masterkdc.example.com@EXAMPLE.COM" created.
kadmin: ktadd host/masterkdc.example.com
Entry for principal host/masterkdc.example.com with kvno 3, encryption type Triple DES cbc mode with \
HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/masterkdc.example.com with kvno 3, encryption type ArcFour with HMAC/md5 \
added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/masterkdc.example.com with kvno 3, encryption type DES with HMAC/sha1 added \
to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/masterkdc.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 \
added to keytab WRFILE:/etc/krb5.keytab.
kadmin: quit
~]# kadmin -p jimbo/admin@EXAMPLE.COM -r EXAMPLE.COM Authenticating as principal jimbo/admin@EXAMPLE.COM with password. Password for jimbo/admin@EXAMPLE.COM: kadmin: add_principal -randkey host/slavekdc.example.com Principal "host/slavekdc.example.com@EXAMPLE.COM" created. kadmin: ktadd host/slavekdc.example.com@EXAMPLE.COM Entry for principal host/slavekdc.example.com with kvno 3, encryption type Triple DES cbc mode with \ HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab. Entry for principal host/slavekdc.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added \ to keytab WRFILE:/etc/krb5.keytab. Entry for principal host/slavekdc.example.com with kvno 3, encryption type DES with HMAC/sha1 added \ to keytab WRFILE:/etc/krb5.keytab. Entry for principal host/slavekdc.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added \ to keytab WRFILE:/etc/krb5.keytab. kadmin: quit
~]# kadmin -p jimbo/admin@EXAMPLE.COM -r EXAMPLE.COM
Authenticating as principal jimbo/admin@EXAMPLE.COM with password.
Password for jimbo/admin@EXAMPLE.COM:
kadmin: add_principal -randkey host/slavekdc.example.com
Principal "host/slavekdc.example.com@EXAMPLE.COM" created.
kadmin: ktadd host/slavekdc.example.com@EXAMPLE.COM
Entry for principal host/slavekdc.example.com with kvno 3, encryption type Triple DES cbc mode with \
HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/slavekdc.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added \
to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/slavekdc.example.com with kvno 3, encryption type DES with HMAC/sha1 added \
to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/slavekdc.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added \
to keytab WRFILE:/etc/krb5.keytab.
kadmin: quit
/var/kerberos/krb5kdc/kpropd.acl
に記載されているクライアントからの更新のみを受け入れます。マスター KDC のホストサービス名をこのファイルに追加します。
~]# echo host/masterkdc.example.com@EXAMPLE.COM > /var/kerberos/krb5kdc/kpropd.acl
~]# echo host/masterkdc.example.com@EXAMPLE.COM > /var/kerberos/krb5kdc/kpropd.acl
/var/kerberos/krb5kdc/.k5.REALM
という名前)、利用可能なセキュアな方法を使用してこれをスレーブ KDC にコピーするか、kdb5_util create -s を実行して、スレーブ KDC で同一の stash ファイルを作成します。
/var/kerberos/krb5kdc/slave_datatrans
)、kprop コマンドを使用してその内容をスレーブ KDC に送信します。
~]# /usr/kerberos/sbin/kdb5_util dump /var/kerberos/krb5kdc/slave_datatrans ~]# kprop slavekdc.example.com
~]# /usr/kerberos/sbin/kdb5_util dump /var/kerberos/krb5kdc/slave_datatrans
~]# kprop slavekdc.example.com
krb5.conf
がレルムの KDC 一覧にあるスレーブ KDC のみを一覧表示することを確認します。これにより、スレーブ KDC から初期認証情報を正しく取得できるようになりました。
48.6.9. レルム間の認証の設定
A.EXAMPLE.COM
という名前のレルムのクライアントが B.EXAMPLE.COM
レルムのサービスにアクセスするには、両方のレルムが krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM
という名前のプリンシパルの鍵を共有し、両方のキーに同じキーバージョン番号が関連付けられている必要があります。
~]# kadmin -r A.EXAMPLE.COM kadmin: add_principal krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM Enter password for principal "krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM": Re-enter password for principal "krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM": Principal "krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM" created. kadmin: quit ~]# kadmin -r B.EXAMPLE.COM kadmin: add_principal krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM Enter password for principal "krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM": Re-enter password for principal "krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM": Principal "krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM" created. kadmin: quit
~]# kadmin -r A.EXAMPLE.COM
kadmin: add_principal krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM
Enter password for principal "krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM":
Re-enter password for principal "krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM":
Principal "krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM" created.
kadmin: quit
~]# kadmin -r B.EXAMPLE.COM
kadmin: add_principal krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM
Enter password for principal "krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM":
Re-enter password for principal "krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM":
Principal "krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM" created.
kadmin: quit
kvno
の値) と暗号化タイプの両方が一致することを確認します。
-randkey
オプションを使用し、最初のレルムのデータベースから新しいエントリーをダンプして、2 番目のレルムにインポートすることができます。データベースダンプに含まれる鍵自体がマスターキーを使用して暗号化されるため、レルムデータベースのマスターキーが同一でない限り動作しません。
A.EXAMPLE.COM
レルムのクライアントは、B.EXAMPLE.COM
レルムのサービスに対して認証できるようになりました。別の方法では、B.EXAMPLE.COM
レルムが A.EXAMPLE.COM
レルムを 信頼 するか、またはより簡単にフレーズされた B.EXAMPLE.COM
が A.EXAMPLE.COM を 信頼 するようになりました。
B.EXAMPLE.COM
レルムの KDC は、B.EXAMPLE.COM
レルムのサービスに対して認証するために A.EXAMPLE.COM
からのクライアントを信頼する可能性がありますが、B.EXAMPLE.COM
レルムのクライアントが A.EXAMPLE.COM
レルムのサービスに対して認証するために信頼されているかどうかには影響しません。反対方向の信頼を確立するには、両方のレルムが krbtgt/A.EXAMPLE.COM@B.EXAMPLE.COM
サービスの鍵を共有する必要があります(上記の例と比較した 2 つのレルムの順番で逆順で注意します)。
A.EXAMPLE.COM
のクライアントが B.EXAMPLE.COM
のサービスに対して認証でき、B.EXAMPLE.COM
のクライアントが C.EXAMPLE.COM
のサービスに対して認証できる場合、C.EXAMPLE.COM のクライアントは、C.EXAMPLE.COM
で直接 A.EXAMPLE.COM
の サービスに対して認証することもできます。つまり、相互に信頼する必要がある複数のレルムがあるネットワークでは、セットアップする信頼関係に適切な選択を行うことで、必要な作業量を大幅に削減できる可能性があることを意味します。
service/server.example.com@EXAMPLE.COM
service/server.example.com@EXAMPLE.COM
EXAMPLE.COM
はレルムの名前です。
/etc/krb5.conf
の DNS または domain_realm
セクションを参照して、ホスト名(server.example.com)または DNS ドメイン名(.example.com)をレルム名(EXAMPLE.COM)にマッピングします。
A.EXAMPLE.COM
、B.EXAMPLE.COM
、および EXAMPLE.COM
という名前のレルムを想定します。A.EXAMPLE.COM
レルムのクライアントが B.EXAMPLE.COM
のサービスに対して認証を試みると、デフォルトでは、最初に EXAMPLE.COM
レルムの認証情報を取得しようとし、これらの認証情報を使用して B.EXAMPLE.COM
レルムで使用する認証情報を取得します。
A.EXAMPLE.COM
で認証情報を使用し、B.EXAMPLE.COM
のサービスに対して認証します。
A.EXAMPLE.COM → EXAMPLE.COM → B.EXAMPLE.COM
A.EXAMPLE.COM
およびEXAMPLE.COM
がkrbtgt/EXAMPLE.COM@A.EXAMPLE.COM
の鍵を共有EXAMPLE.COM
およびB.EXAMPLE.COM
がkrbtgt/B.EXAMPLE.COM@EXAMPLE.COM
の鍵を共有
SITE1.SALES.EXAMPLE.COM
で認証情報を使用して EVERYWHERE.EXAMPLE.COM
のサービスに対して認証を行います。
SITE1.SALES.EXAMPLE.COM → SALES.EXAMPLE.COM → EXAMPLE.COM → EVERYWHERE.EXAMPLE.COM
SITE1.SALES.EXAMPLE.COM
とSALES.EXAMPLE.COM
がkrbtgt/SALES.EXAMPLE.COM@SITE1.SALES.EXAMPLE.COM
の鍵を共有SALES.EXAMPLE.COM
とEXAMPLE.COM
がkrbtgt/EXAMPLE.COM@SALES.EXAMPLE.COM
の鍵を共有EXAMPLE.COM
とEVERYWHERE.EXAMPLE.COM
がkrbtgt/EVERYWHERE.EXAMPLE.COM@EXAMPLE.COM
の鍵を共有
DEVEL.EXAMPLE.COM
および PROD.EXAMPLE.ORG
)を共有しているレルム名を使用します。
DEVEL.EXAMPLE.COM → EXAMPLE.COM → COM → ORG → EXAMPLE.ORG → PROD.EXAMPLE.ORG
DEVEL.EXAMPLE.COM
とEXAMPLE.COM
がkrbtgt/EXAMPLE.COM@DEVEL.EXAMPLE.COM
の鍵を共有EXAMPLE.COM
とCOM
がkrbtgt/COM@EXAMPLE.COM
の鍵を共有COM
およびORG
がkrbtgt/ORG@COM
の鍵を共有ORG
とEXAMPLE.ORG
がkrbtgt/EXAMPLE.ORG@ORG
を共有EXAMPLE.ORG
およびPROD.EXAMPLE.ORG
がkrbtgt/PROD.EXAMPLE.ORG@EXAMPLE.ORG
の鍵を共有
/etc/krb5.conf
の capaths
セクションを設定することです。これにより、1 つのレルムのクレデンシャルを持つクライアントは、チェーン内で次にあるレルムを検索し、最終的にサーバーに認証できるようになります。
capaths
セクションの形式は比較的簡単です。セクションの各エントリーは、クライアントが存在する可能性があるレルムの後に名前が付けられます。そのサブセクション内では、クライアントが認証情報を取得する必要のある中間レルムのセットが、サービスが置かれるレルムに対応するキーの値として一覧表示されます。中間レルムがない場合は、.が使用されます。
[capaths] A.EXAMPLE.COM = { B.EXAMPLE.COM = . C.EXAMPLE.COM = B.EXAMPLE.COM D.EXAMPLE.COM = B.EXAMPLE.COM D.EXAMPLE.COM = C.EXAMPLE.COM }
[capaths]
A.EXAMPLE.COM = {
B.EXAMPLE.COM = .
C.EXAMPLE.COM = B.EXAMPLE.COM
D.EXAMPLE.COM = B.EXAMPLE.COM
D.EXAMPLE.COM = C.EXAMPLE.COM
}
A.EXAMPLE.COM
レルムのクライアントは、A.EXAMPLE.COM KDC から直接 B.EXAMPLE.COM
のレルム間の認証情報を取得できます。
C.EXAMPLE.COM
レルムでサービスに問い合わせたい場合は、最初に B.EXAMPLE.COM
レルムから必要な認証情報を取得する必要があります(これには krbtgt
/B.EXAMPLE.COM@A.EXAMPLE.COM が必要です)。次に、これら
の認証情報を使用して C.EXAMPLE.COM
レルムで使用する認証情報を取得する必要があります( krbtgt/C.EXAMPLE.COM@B.EXAMPLE.COM
を使用)。
D.EXAMPLE.COM
レルムのサービスに問い合わせたい場合は、最初に B.EXAMPLE.COM
レルムから必要な認証情報を取得し、次に C.EXAMPLE.COM
レルムから認証情報を取得して D.EXAMPLE.COM レルムで使用する認証情報を取得する必要があります。
A.EXAMPLE.COM
レルムのクライアントは、B.EXAMPLE.COM
レルムから直接レルム間の認証情報を取得できます。.を指定しないと、クライアントは代わりに階層パスを使用しようとします。この場合は以下のようになります。
A.EXAMPLE.COM → EXAMPLE.COM → B.EXAMPLE.COM
48.6.10. 関連情報
48.6.10.1. インストールされているドキュメント
- 『Kerberos V5 インストールガイド』 および PostScript および HTML 形式 『の Kerberos V5 システム管理者のガイド』。これらは、
/usr/share/doc/krb5-server- <version-number> /
ディレクトリー(< version-number > は、システムにインストールされている krb5-server パッケージのバージョン番号)にあります。 - PostScript および HTML 形式の 『Kerberos V5 UNIX ユーザーガイド』これらは、
/usr/share/doc/krb5-workstation- <version-number> /
ディレクトリー(< version-number > は、システムにインストールされている krb5-workstation パッケージのバージョン番号)にあります。 - Kerberos の man ページ:Kerberos 実装に関連するさまざまなアプリケーションおよび設定ファイルに関する man ページが多数あります。以下は、より重要な man ページの一部の一覧です。
- クライアントアプリケーション
- man kerberos - Kerberos システムの紹介で、認証情報の仕組みを説明し、Kerberos チケットの取得および破棄に関する推奨事項を提供します。man ページの下部では、関連する man ページが多数参照されています。
- man kinit: このコマンドを使用してチケット保証チケットを取得し、キャッシュする方法が説明されています。
- man kdestroy: このコマンドを使用して Kerberos 認証情報を破棄する方法が説明されています。
- man klist - このコマンドを使用して、キャッシュされた Kerberos 認証情報を一覧表示する方法が説明されています。
- 管理アプリケーション
- man kadmin - このコマンドを使用して Kerberos V5 データベースを管理する方法が説明されています。
- man kdb5_util - このコマンドを使用して Kerberos V5 データベース上で低レベルの管理機能を作成して実行する方法を説明します。
- サーバーアプリケーション
- man krb5kdc: Kerberos V5 KDC で利用可能なコマンドラインオプションを説明しています。
- man kadmind: Kerberos V5 管理サーバーで利用可能なコマンドラインオプションを説明しています。
- 設定ファイル
- man krb5.conf - Kerberos V5 ライブラリーの設定ファイル内で使用できる形式とオプションを説明しています。
- man kdc.conf: Kerberos V5 AS および KDC の設定ファイル内で利用可能な形式およびオプションを説明しています。
48.6.10.2. 便利な Web サイト
- http://web.mit.edu/kerberos/www/ - 『Kerberos: MIT のネットワーク認証プロトコル(Network Authentication Protocol』 )の Web ページ
- http://www.nrl.navy.mil/CCS/people/kenh/kerberos-faq.html - Kerberos Frequently Asked Questions (FAQ)
- ftp://athena-dist.mit.edu/pub/kerberos/doc/usenix.PS - PostScript バージョンの 『Kerberos: Jennifer G. Steiner による Open Network Systems の認証サービス』。Steiner、Clifford Neuman、Jeffrey I. Schiller。この文書は、Kerberos を説明するオリジナルの資料です。
- http://web.mit.edu/kerberos/www/dialogue.html - 『Designing an Authentication System: a Dialogue in Four Scenes』 from Bill Bryant in 1988, modified by Theodore Ts'o in 1997.本書は、Kerberos スタイルの認証システムの作成を考慮している 2 人の開発者の会話を表しています。会話スタイルは、Kerberos に精通していないユーザーにとって適切な開始場所となります。
- http://www.ornl.gov/~jar/HowToKerb.html - 『Kerberize your site』 is a good reference for kerberizing a network.
- http://www.networkcomputing.com/netdesign/kerb1.html: 『Kerberos ネットワーク設計マニュアル』 は、Kerberos システムの詳細な概要です。
48.7. 仮想プライベートネットワーク(VPN)
48.7.1. VPN の仕組み
48.7.2. VPN および Red Hat Enterprise Linux
48.7.3. IPsec
48.7.4. IPsec 接続の作成
48.7.5. IPsec のインストール
ipsec-tools
RPM パッケージがすべての IPsec ホスト(ホスト間設定を使用している場合)またはルーター(ネットワーク間設定を使用する場合)にインストールする必要があります。RPM パッケージには、IPsec 接続を設定するための必須ライブラリー、デーモン、および設定ファイルが含まれます。
- /sbin/setkey - カーネルの IPsec のキー管理およびセキュリティー属性を操作します。この実行可能ファイルは、racoon キー管理デーモンによって制御されます。詳細は、setkey(8) man ページを参照してください。
- /usr/sbin/racoon - IPsec に接続されたシステム間のセキュリティー関連付けと鍵共有を管理および制御するために使用される IKE 鍵管理デーモン。
/etc/racoon/racoon.conf
: 接続で使用される認証方法や暗号化アルゴリズムなど、IPsec 接続のさまざまな側面の設定に使用される racoon デーモン設定ファイル。利用可能なディレクティブの完全なリストは、racoon.conf
(5) man ページを参照してください。
- IPsec 経由でネットワーク接続された 2 つのホストを接続するには、「IPsec Host-to-Host の設定」 を参照してください。
- IPsec 経由で 1 つの LAN/WAN を接続するには、「IPsec Network-to-Network の設定」 を参照してください。
48.7.6. IPsec Host-to-Host の設定
48.7.6.1. ホスト間接続
- コマンドシェルで、system-config-network と入力して Network Administration Tool を起動します。
- IPsec タブで、 をクリックして IPsec 設定ウィザードを起動します。
- 接続の一意の名前を入力します(例:
ipsec0
必要に応じて、チェックボックスを選択して、コンピューターの起動時に接続を自動的にアクティブにします。 をクリックして続けます。 - 接続タイプとして Host to Host encryption を選択し、 をクリックします。
- 使用する暗号化のタイプ(manual または automatic)を選択します。手動暗号化を選択する場合は、暗号鍵をプロセスの後で提供する必要があります。自動暗号化を選択すると、racoon デーモンが暗号化キーを管理します。自動暗号化を使用する場合は、
ipsec-tools
パッケージをインストールする必要があります。 - リモートホストの IP アドレスを入力します。リモートホストの IP アドレスを確認するには、リモートホスト で以下のコマンドを 使用します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ifconfig <device>
ifconfig <device>
& lt;device > は、VPN 接続に使用するイーサネットデバイスに置き換えます。システムにイーサネットカードが 1 つしか存在しない場合、デバイス名は通常 eth0 になります。以下の例は、このコマンドに関連する情報を示しています(出力のみであることに注意してください)。Copy to Clipboard Copied! Toggle word wrap Toggle overflow eth0 Link encap:Ethernet HWaddr 00:0C:6E:E8:98:1D inet addr:172.16.44.192 Bcast:172.16.45.255 Mask:255.255.254.0
eth0 Link encap:Ethernet HWaddr 00:0C:6E:E8:98:1D inet addr:172.16.44.192 Bcast:172.16.45.255 Mask:255.255.254.0
IP アドレスは、inet addr:
ラベルの後の番号です。注記ホスト間接続の場合、両方のホストにパブリックかつルーティング可能なアドレスが必要です。また、両方のホストに、sam LAN 上にいる限り、プライベートでルーティング不可能なアドレス(10.x.x.x または 192.168.x.x 範囲から)を指定できます。ホストが異なる LAN 上にある場合、または別のホストにプライベートアドレスがある間にパブリックアドレスがある場合は、「IPsec Network-to-Network の設定」 を参照してください。 - 手順 6 で手動暗号化を選択した場合は、使用する暗号化キーを指定するか、 をクリックして作成します。
- 認証キーを指定するか、をクリックして生成します。数字と文字の組み合わせを任意に指定できます。
- IPsec - Summary ページの情報を確認してから をクリックします。
- 変更を有効にするには、ネットワークを再起動する必要がある場合があります。ネットワークを再起動するには、以下のコマンドを使用します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow service network restart
service network restart
- 一覧から IPsec 接続を選択し、ボタンをクリックします。
- 他のホストに対して、手順全体を繰り返します。手順 8 の同じキーを他のホストで使用することが重要です。そうしないと、IPsec は機能しません。
図48.10 IPsec 接続

[D]
/etc/sysconfig/network-scripts/ifcfg-<nickname>
/etc/sysconfig/network-scripts/keys-<nickname>
/etc/racoon/<remote-ip>.conf
/etc/racoon/psk.txt
/etc/racoon/racoon.conf
も作成されます。
/etc/racoon/racoon.conf
が変更され、< remote-ip>.conf
が含まれるようになります。
48.7.6.2. 手動 IPsec Host-to-Host 設定
- 各ホストの IP アドレス
- 一意の名前(例:
ipsec1
)。これは、IPsec 接続を特定し、他のデバイスまたは接続と区別するために使用されます。 - 固定暗号化キーまたは racoon によって自動的に生成される暗号鍵。
- 接続の初期段階で使用され、セッション中に暗号鍵を交換するために使用される事前共有認証キー。
Key_Value01
の値で共有前のキーを使用して接続し、ユーザーは各ホスト間で認証キーを自動的に生成して共有することに同意します。両方のホストユーザーは、接続 ipsec1
に名前を付けます。
/etc/sysconfig/network-scripts/ifcfg-ipsec1
と呼ばれます。
DST=X.X.X.X TYPE=IPSEC ONBOOT=no IKE_METHOD=PSK
DST=X.X.X.X
TYPE=IPSEC
ONBOOT=no
IKE_METHOD=PSK
ONBOOT=no
)、事前共有鍵メソッド(IKE_METHOD=PSK
)を使用します。
/etc/sysconfig/network-scripts/keys-ipsec1
と呼ばれる)の内容です。このファイルのコンテンツは両方のワークステーションで同一で、root ユーザーのみがこのファイルの読み取りや書き込みが可能でなければなりません。
IKE_PSK=Key_Value01
IKE_PSK=Key_Value01
keys-ipsec1
ファイルを変更するには、ファイルの作成後に以下のコマンドを使用します。
chmod 600 /etc/sysconfig/network-scripts/keys-ipsec1
chmod 600 /etc/sysconfig/network-scripts/keys-ipsec1
keys-ipsec1
ファイルを編集します。適切な接続の場合には、両方の認証キーが同一でなければなりません。
X.X.X
.conf と呼ばれます。X.X.X.X は、リモート IPsec ホストの IP アドレスです。このファイルは、IPsec トンネルがアクティベートされると自動的に生成されるため、直接編集しないでください。
remote X.X.X.X { exchange_mode aggressive, main; my_identifier address; proposal { encryption_algorithm 3des; hash_algorithm sha1; authentication_method pre_shared_key; dh_group 2 ; } }
remote X.X.X.X
{
exchange_mode aggressive, main;
my_identifier address;
proposal {
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group 2 ;
}
}
- remote X.X.X.X
- この設定ファイルの後続のスタンザは、X.X.X.X IP アドレスで識別されるリモートノードにのみ適用されることを指定します。
- exchange_mode aggressive
- Red Hat Enterprise Linux における IPsec のデフォルト設定は、アグレッシブ認証モードを使用します。これにより、複数のホストとの複数の IPsec 接続の設定を許可し、接続のオーバーヘッドが低減します。
- my_identifier アドレス
- ノードの認証時に使用する識別方法を指定します。Red Hat Enterprise Linux は IP アドレスを使用してノードを識別します。
- encryption_algorithm 3des
- 認証中に使用される暗号化暗号を指定します。デフォルトでは、Triple Data Encryption Standard (3DES)が使用されます。
- hash_algorithm sha1;
- ノード間のフェーズ 1 ネゴシエーション中に使用されるハッシュアルゴリズムを指定します。デフォルトでは、Secure Hash Algorithm バージョン 1 が使用されます。
- authentication_method pre_shared_key
- ノードのネゴシエーション中に使用される認証方法を指定します。デフォルトでは、Red Hat Enterprise Linux は認証に事前共有キーを使用します。
- dh_group 2
- 動的に生成されるセッションキーを確立するための Diffie-Hellman グループ番号を指定します。デフォルトでは、modp1024 (グループ 2)が使用されます。
48.7.6.2.1. Racoon 設定ファイル
/etc/racoon/racoon.conf
ファイルは、/ etc/racoon/X.X.X.X.conf ステートメントを 除き、すべての IPsec ノードで同一でなければ なりません。このステートメント(および参照するファイル)は、IPsec トンネルがアクティブになると生成されます。Workstation A の場合、include ステートメントの X.X.X.X は Workstation B の IP アドレスです。ワークステーション B とは反対になります。以下は、IPsec 接続がアクティベートされた場合の一般的な racoon.conf
ファイルを示しています。
Racoon IKE daemon configuration file. See 'man racoon.conf' for a description of the format and entries.
# Racoon IKE daemon configuration file.
# See 'man racoon.conf' for a description of the format and entries.
path include "/etc/racoon";
path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";
sainfo anonymous
{
pfs_group 2;
lifetime time 1 hour ;
encryption_algorithm 3des, blowfish 448, rijndael ;
authentication_algorithm hmac_sha1, hmac_md5 ;
compression_algorithm deflate ;
}
include "/etc/racoon/X.X.X.X.conf";
racoon.conf
ファイルには、IPsec 設定、事前共有キーファイル、および証明書の定義されたパスが含まれます。sainfo anonymous
のフィールドは、IPsec 接続の性質(使用される暗号化アルゴリズムを含む)と鍵交換方法である IPsec ノード間のフェーズ 2 SA を記述します。以下のリストは、フェーズ 2 のフィールドを定義します。
- sainfo anonymous
- IPsec 認証情報が一致する場合、SA が任意のピアで匿名で初期化できることを示します。
- pfs_group 2
- Diffie-Hellman 鍵交換プロトコルを定義します。これは、IPsec ノードが IPsec 接続の 2 番目のフェーズで相互一時セッションキーを確立する方法を決定します。デフォルトでは、IPsec の Red Hat Enterprise Linux 実装は、Diffie-Hellman 暗号化鍵交換グループのグループ 2 (または
modp1024
)を使用します。Group 2 は 1024 ビットのモジュール指数を使用し、秘密鍵が侵害された場合でも攻撃者が以前の IPsec 送信を復号化できないようにします。 - ライフタイム 1 時間
- このパラメーターは SA の有効期間を指定し、データの時間またはバイト単位で定量化できます。IPsec のデフォルトの Red Hat Enterprise Linux 実装は、1 時間の長さを指定します。
- encryption_algorithm 3des、blowfish 448、rijndael
- フェーズ 2 でサポートされる暗号を指定します。Red Hat Enterprise Linux は、3DES、448 ビット Blowfish、および Rijndael ( Advanced Encryption Standard または AESで使用される暗号)をサポートします。
- authentication_algorithm hmac_sha1、hmac_md5
- は、認証でサポートされるハッシュアルゴリズムを一覧表示します。サポートされるモードは sha1 および md5 ハッシュされたメッセージ認証コード(HMAC)です。
- compression_algorithm deflate
- IP Payload Compression (IPCOMP)サポート用の Deflate 圧縮アルゴリズムを定義します。これにより、低速な接続で IP データグラムの送信を高速化できます。
ifup <nickname>
ifup <nickname>
~]# tcpdump -n -i eth0 host <targetSystem> IP 172.16.45.107 > 172.16.44.192: AH(spi=0x0954ccb6,seq=0xbb): ESP(spi=0x0c9f2164,seq=0xbb)
~]# tcpdump -n -i eth0 host <targetSystem>
IP 172.16.45.107 > 172.16.44.192: AH(spi=0x0954ccb6,seq=0xbb): ESP(spi=0x0c9f2164,seq=0xbb)
48.7.7. IPsec Network-to-Network の設定
図48.11 ネットワーク間 IPsec トンネル接続

[D]
- 専用 IPsec ルーターの外部からアクセスできる IP アドレス
- IPsec ルーターが提供する LAN/WAN のネットワークアドレス範囲(192.168.1.0/24 または 10.0.1.0/24 など)
- ネットワークノードからインターネットにデータをルーティングするゲートウェイデバイスの IP アドレス
- 一意の名前(例:
ipsec1
)。これは、IPsec 接続を特定し、他のデバイスまたは接続と区別するために使用されます。 - 固定暗号化キーまたは racoonによって自動的に生成される暗号鍵
- 接続の初期段階で使用され、セッション中に暗号鍵を交換するために使用される事前共有認証キー。
48.7.7.1. ネットワーク/ネットワーク(VPN)接続
図48.12 Network-to-Network IPsec

[D]
- コマンドシェルで、system-config-network と入力して Network Administration Tool を起動します。
- IPsec タブで、 をクリックして IPsec 設定ウィザードを起動します。
- 接続の一意のニックネームを入力します(例:
ipsec0
必要に応じて、チェックボックスを選択して、コンピューターの起動時に接続を自動的にアクティブにします。 をクリックして続けます。 - 接続タイプとして Network to Network encryption (VPN) を選択し、 をクリックします。
- 使用する暗号化のタイプ(manual または automatic)を選択します。手動暗号化を選択する場合は、暗号鍵をプロセスの後で提供する必要があります。自動暗号化を選択すると、racoon デーモンが暗号化キーを管理します。自動暗号化を使用する場合は、
ipsec-tools
パッケージをインストールする必要があります。 - Local Network ページで、以下の情報を入力します。
- ローカルネットワークアドレス: プライベートネットワークに接続された IPsec ルーター上のデバイスの IP アドレス。
- ローカルサブネットマスク - ローカルネットワーク IP アドレスのサブネットマスク。
- Local Network Gateway - プライベートサブネットのゲートウェイ。
図48.13 ローカルネットワーク情報
[D] - Remote Network ページで、以下の情報を入力します。
- リモート IP アドレス: 他 のプライベートネットワーク用に IPsec ルーターの一般にアドレス指定可能な IP アドレスです。この例では、ipsec0 の場合は ipsec1 の公開されている IP アドレスを入力します。その逆も同様です。
- リモートネットワークアドレス: 他 の IPsec ルーターの背後にあるプライベートサブネットのネットワークアドレス。この例では、ipsec1 を設定する場合は
192.168.1.0
を入力し、ipsec0 を設定する場合は192.168.2.0
と入力します。 - リモートサブネットマスク - リモート IP アドレスのサブネットマスク。
- Remote Network Gateway - リモートネットワークアドレスのゲートウェイの IP アドレス。
- 手順 6 で手動暗号化を選択した場合は、使用する暗号化キーを指定するか、 をクリックして作成します。認証キーを指定するか、をクリックして生成します。このキーは、数字と文字の組み合わせを任意に指定できます。
図48.14 リモートネットワーク情報
[D] - IPsec - Summary ページの情報を確認してから をクリックします。
- 一覧から IPsec 接続を選択し、をクリックして接続をアクティブにします。
- IP 転送を有効にします。
/etc/sysctl.conf
を編集し、net.ipv4.ip_forward を
。1
に設定します- 以下のコマンドを使用して変更を適用します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sysctl -p /etc/sysctl.conf
sysctl -p /etc/sysctl.conf
48.7.7.2. 手動 IPsec Network-to-Network 設定
r3dh4tl1nux
の値を使用し、A と B の管理者は各 IPsec ルーター間で認証キーを自動的に生成して共有することに同意します。LAN A の管理者は IPsec connection ipsec0
という名前を決定し、LAN B の管理者は IPsec 接続 ipsec1
という名前を付けます。
ifcfg
ファイルの内容を示しています。この例の接続を識別する一意の名前は ipsec0 であるため、作成されるファイルは /etc/sysconfig/network-scripts/ifcfg-ipsec0
と呼ばれます。
TYPE=IPSEC ONBOOT=yes IKE_METHOD=PSK SRCGW=192.168.1.254 DSTGW=192.168.2.254 SRCNET=192.168.1.0/24 DSTNET=192.168.2.0/24 DST=X.X.X.X
TYPE=IPSEC
ONBOOT=yes
IKE_METHOD=PSK
SRCGW=192.168.1.254
DSTGW=192.168.2.254
SRCNET=192.168.1.0/24
DSTNET=192.168.2.0/24
DST=X.X.X.X
- TYPE=IPSEC
- 接続のタイプを指定します。
- ONBOOT=yes
- 起動時に接続を開始するように指定します。
- IKE_METHOD=PSK
- 接続が認証の事前共有鍵メソッドを使用することを指定します。
- SRCGW=192.168.1.254
- ソースゲートウェイの IP アドレス。LAN A の場合、これは LAN A ゲートウェイで、LAN B の場合は LAN B ゲートウェイです。
- DSTGW=192.168.2.254
- 宛先ゲートウェイの IP アドレス。LAN A の場合、これは LAN B ゲートウェイで、LAN B の場合は LAN A ゲートウェイです。
- SRCNET=192.168.1.0/24
- IPsec 接続の移行元ネットワークを指定します。この例では、LAN A のネットワーク範囲です。
- DSTNET=192.168.2.0/24
- IPsec 接続の宛先ネットワークを指定します。この例では、LAN B のネットワーク範囲です。
- DST=X.X.X.X
- LAN B の外部からアクセスできる IP アドレス。
/etc/sysconfig/network-scripts/keys-ipsecX( X
は LAN A の場合は 0、LAN B の場合は 1)と呼ばれる事前共有キーファイルの内容です。このファイルのコンテンツは同一で、root ユーザーのみがこのファイルの読み取りや書き込みが可能でなければなりません。
IKE_PSK=r3dh4tl1nux
IKE_PSK=r3dh4tl1nux
keys-ipsecX
ファイルを変更するには、ファイルの作成後に以下のコマンドを使用します。
chmod 600 /etc/sysconfig/network-scripts/keys-ipsec1
chmod 600 /etc/sysconfig/network-scripts/keys-ipsec1
keys-ipsecX
ファイルを編集します。適切な接続の場合には、両方の鍵が同じでなければなりません。
/etc/racoon/racoon.conf
設定ファイルの内容です。ファイル下部の include
行が自動的に生成され、IPsec トンネルが実行されている場合のみ表示されることに注意してください。
Racoon IKE daemon configuration file. See 'man racoon.conf' for a description of the format and entries.
# Racoon IKE daemon configuration file.
# See 'man racoon.conf' for a description of the format and entries.
path include "/etc/racoon";
path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";
sainfo anonymous
{
pfs_group 2;
lifetime time 1 hour ;
encryption_algorithm 3des, blowfish 448, rijndael ;
authentication_algorithm hmac_sha1, hmac_md5 ;
compression_algorithm deflate ;
}
include "/etc/racoon/X.X.X.X.conf"
X.X.X
.conf と呼ばれます( X.X.X.X はリモート IPsec ルーターの IP アドレスです)。このファイルは、IPsec トンネルがアクティベートされると自動的に生成されるため、直接編集しないでください。
remote X.X.X.X { exchange_mode aggressive, main; my_identifier address; proposal { encryption_algorithm 3des; hash_algorithm sha1; authentication_method pre_shared_key; dh_group 2 ; } }
remote X.X.X.X
{
exchange_mode aggressive, main;
my_identifier address;
proposal {
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group 2 ;
}
}
/etc/sysctl.conf
を編集し、net.ipv4.ip_forward を
。1
に設定します- 以下のコマンドを使用して変更を適用します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sysctl -p /etc/sysctl.conf
sysctl -p /etc/sysctl.conf
ifup ipsec0
ifup ipsec0
ip route list
ip route list
tcpdump -n -i eth0 host lana.example.com
tcpdump -n -i eth0 host lana.example.com
12:24:26.155529 lanb.example.com > lana.example.com: AH(spi=0x021c9834,seq=0x358): \ lanb.example.com > lana.example.com: ESP(spi=0x00c887ad,seq=0x358) (DF) \ (ipip-proto-4)
12:24:26.155529 lanb.example.com > lana.example.com: AH(spi=0x021c9834,seq=0x358): \
lanb.example.com > lana.example.com: ESP(spi=0x00c887ad,seq=0x358) (DF) \
(ipip-proto-4)
48.7.8. IPsec 接続の開始および停止
ifup <nickname>
ifup <nickname>
ipsec0
)。
ifdown <nickname>
ifdown <nickname>
48.8. ファイアウォール
メソッド | 説明 | メリット | デメリット | ||||||
---|---|---|---|---|---|---|---|---|---|
NAT | NAT ( Network Address Translation )は、プライベート IP サブネットワークを 1 つまたはパブリック IP アドレスの小規模なプールの背後に配置し、複数のソースへのすべての要求をマスカレードします。Linux カーネルには、JBDS カーネルサブシステムを介して NAT 機能が組み込まれています。 |
|
| ||||||
パケットフィルター | パケットフィルターリングファイアウォールは、LAN を通過する各データパケットを読み取ります。ヘッダー情報でパケットを読み取り、処理し、ファイアウォール管理者が実装するプログラム可能なルールセットに基づいてパケットをフィルターリングします。Linux カーネルには、JBS カーネルサブシステムを介してパケットフィルターリング機能が組み込まれています。 |
|
| ||||||
Proxy | プロキシーファイアウォールは、LAN クライアントからプロキシーマシンへの特定のプロトコルまたはタイプのすべての要求をフィルターリングします。これにより、ローカルクライアントの代わりにインターネットに対してこれらの要求が行われます。プロキシーマシンは、悪意のあるリモートユーザーと内部ネットワーククライアントマシン間のバッファーとして機能します。 |
|
|
48.8.1. ubuntu および IPTables
48.8.1.1. iptables の概要
48.8.2. ファイアウォールの基本設定
48.8.2.1. Security Level Configuration Tool
system-config-securitylevel
system-config-securitylevel
図48.15 Security Level Configuration Tool

[D]
48.8.2.2. ファイアウォールの有効化および無効化
- disabled - ファイアウォールを無効にすると、システムに完全にアクセスでき、セキュリティーチェックは行われません。これは、(インターネットではなく)信頼できるネットワークで実行している場合や、iptables コマンドラインツールを使用してカスタムファイアウォールを設定する必要がある場合にのみ選択する必要があります。Warningファイアウォール設定とカスタマイズされたファイアウォールルールは、
/etc/sysconfig/iptables
ファイルに保存されます。Disabled を選択して をクリックすると、これらの設定とファイアウォールルールが失われます。 - enabled: このオプションは、DNS 応答や DHCP 要求など、アウトバウンド要求に応答しない着信接続を拒否するように設定します。このマシンで実行中のサービスへのアクセスが必要な場合は、特定サービスに対してファイアウォールの通過許可を選択できます。システムをインターネットに接続しているが、サーバーを実行する予定がない場合は、最も安全な選択肢になります。
48.8.2.3. 信頼できるサービス
- WWW (HTTP)
- HTTP プロトコルは Apache (およびその他の Web サーバー)によって Web ページを提供するために使用されます。Web サーバーを公開しようとする場合は、このチェックボックスを選択します。このオプションは、ローカルページの表示や Web ページの開発には必要ありません。このサービスは、
httpd
パッケージをインストールすることを要求します。WWW (HTTP) を有効にしても、HTTPS (SSL バージョンの HTTP)のポートが開かれません。このサービスが必要な場合は、Secure WWW (HTTPS) チェックボックスを選択します。 - FTP
- FTP プロトコルは、ネットワーク上のマシン間でファイルを転送するために使用されます。FTP サーバーを公開しようとする場合は、このチェックボックスを選択します。このサービスは、
vsftpd
パッケージをインストールする必要があります。 - SSH
- Secure Shell (SSH)は、リモートマシンでコマンドにログインして実行するツールセットです。ssh 経由でマシンへのリモートアクセスを許可するには、このチェックボックスを選択します。このサービスは、
openssh-server
パッケージをインストールする必要があります。 - Telnet
- telnet は、リモートマシンにログインするためのプロトコルです。telnet 通信は暗号化されず、ネットワークスヌーピングからのセキュリティーは提供されません。受信 Telnet アクセスを許可することは推奨されません。telnet 経由でマシンへのリモートアクセスを許可するには、このチェックボックスを選択します。このサービスは、
telnet-server
パッケージをインストールする必要があります。 - メール(SMTP)
- SMTP は、リモートホストをマシンに直接接続してメールを配信できるようにするプロトコルです。POP3 または IMAP を使用して ISP サーバーからメールを収集する場合、または fetchmail などのツールを使用する場合は、このサービスを有効にする必要はありません。マシンにメールを配信できるようにするには、このチェックボックスを選択します。SMTP サーバーが適切に設定されていないと、リモートマシンがサーバーを使用してスパムを送信することができることに注意してください。
- NFS4
- NFS (Network File System)は、*NIX システムで一般的に使用されるファイル共有プロトコルです。このプロトコルのバージョン 4 は、先行プロトコルよりも安全です。システムのファイルまたはディレクトリーを他のネットワークユーザーと共有する場合は、このチェックボックスを選択します。
- Samba
- Samba は、Microsoft のプロプライエタリー SMB ネットワークプロトコルの実装です。ファイル、ディレクトリー、またはローカルで接続されたプリンターを Microsoft Windows マシンと共有する必要がある場合は、このチェックボックスを選択します。
48.8.2.4. その他のポート
194:tcp,631:tcp
48.8.2.5. 設定の保存
/etc/sysconfig/iptables
ファイルに書き込まれます。また、iptables サービスも起動して、選択したオプションを保存した後すぐにファイアウォールがアクティブになるようにします。Disable firewall が選択されている場合、/etc/sysconfig/iptables
ファイルは削除され、iptables サービスはすぐに停止します。
/etc/sysconfig/system-config-securitylevel
ファイルにも書き込まれ、次回アプリケーションを起動したときに設定を復元できるようにします。このファイルは手動で編集しないでください。
48.8.2.6. IPTables サービスのアクティブ化
service iptables restart
service iptables restart
chkconfig --level 345 iptables on
chkconfig --level 345 iptables on
service ipchains stop chkconfig --level 345 ipchains off
service ipchains stop
chkconfig --level 345 ipchains off
48.8.3. IPTables の使用
service iptables start
service iptables start
chkconfig --level 345 iptables on
chkconfig --level 345 iptables on
48.8.3.1. iptables コマンドの構文
iptables -A <chain> -j <target>
iptables -A <chain> -j <target>
-A
オプションは、< chain> にルールを追加するように指定し ます。各チェーンは 1 つ以上の ルール で設定されるため、ルール セット とも呼ばれます。
-j & lt;target
> オプションは、ルールのターゲットを指定します。つまり、パケットがルールと一致する場合のアクション。組み込みターゲットの例は ACCEPT、DROP、および REJECT です。
48.8.3.2. 基本的なファイアウォールポリシー
iptables -P INPUT DROP iptables -P OUTPUT DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -P FORWARD DROP
48.8.3.3. IPTables ルールの保存および復元
service iptables save
service iptables save
/etc/sysconfig/iptables
ファイルに保存され、サービスの起動時またはマシンが再起動されるたびに適用されます。
48.8.4. 一般的な IPTables フィルターリング
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-I
オプションを使用します。以下に例を示します。
iptables -I INPUT 1 -i lo -p all -j ACCEPT
iptables -I INPUT 1 -i lo -p all -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
48.8.5. FORWARD
および NAT ルール
FORWARD
チェーンを使用すると、管理者は LAN 内でパケットをルーティングできる場所を制御できます。たとえば、LAN 全体の転送を許可するには(eth1 のファイアウォール/ゲートウェイに内部 IP アドレスが割り当てられていると仮定)、以下のルールを使用します。
iptables -A FORWARD -i eth1 -j ACCEPT iptables -A FORWARD -o eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -j ACCEPT
iptables -A FORWARD -o eth1 -j ACCEPT
eth1
デバイスを介して渡します。
sysctl -w net.ipv4.ip_forward=1
sysctl -w net.ipv4.ip_forward=1
/etc/sysctl.conf
ファイルを編集します。
net.ipv4.ip_forward = 0
net.ipv4.ip_forward = 0
net.ipv4.ip_forward = 1
net.ipv4.ip_forward = 1
sysctl.conf
ファイルへの変更を有効にします。
sysctl -p /etc/sysctl.conf
sysctl -p /etc/sysctl.conf
48.8.5.1. POSTROUTING および IP マスカレード
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
-t nat
)を使用し、ファイアウォールの外部ネットワークデバイス(-o eth0
)上の NAT 用の組み込みの POSTROUTING (-A POSTROUTING
)を指定します。
-j MASQUERADE
ターゲットは、ファイアウォール/ゲートウェイの外部 IP アドレスを持つノードのプライベート IP アドレスをマスクするために指定されます。
48.8.5.2. PREROUTING
-j DNAT
ターゲットを使用して、内部サービスへの接続を要求する着信パケットを転送できる宛先 IP アドレスとポートを指定できます。
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 172.31.0.23:80
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 172.31.0.23:80
iptables -A FORWARD -i eth0 -p tcp --dport 80 -d 172.31.0.23 -j ACCEPT
iptables -A FORWARD -i eth0 -p tcp --dport 80 -d 172.31.0.23 -j ACCEPT
48.8.5.3. DMZs および IPTables
PREROUTING
テーブルを使用してパケットを適切な宛先に転送します。
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 10.0.4.2:80
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 10.0.4.2:80
48.8.6. 悪意のあるソフトウェアおよびスポンクション IP アドレス
iptables -A OUTPUT -o eth0 -p tcp --dport 31337 --sport 31337 -j DROP iptables -A FORWARD -o eth0 -p tcp --dport 31337 --sport 31337 -j DROP
iptables -A OUTPUT -o eth0 -p tcp --dport 31337 --sport 31337 -j DROP
iptables -A FORWARD -o eth0 -p tcp --dport 31337 --sport 31337 -j DROP
iptables -A FORWARD -s 192.168.1.0/24 -i eth0 -j DROP
iptables -A FORWARD -s 192.168.1.0/24 -i eth0 -j DROP
DROP
ターゲットと REJECT
ターゲットの間に区別があります。
REJECT
ターゲットはアクセスを拒否し、サービスへの接続を試みるユーザーに connection refused
エラーを返します。名前が示すように DROP
ターゲットは、警告なしでパケットをドロップします。
REJECT
ターゲットが推奨されます。
48.8.7. iptables および接続トラッキング
NEW
- HTTP リクエストなどの新しい接続を要求するパケット。ESTABLISHED
: 既存の接続の一部であるパケットです。RELATED
: 新しい接続を要求しているが、既存の接続の一部であるパケットです。たとえば、FTP はポート 21 を使用して接続を確立しますが、データは別のポート(通常はポート 20)で転送されます。INVALID
: コネクション追跡テーブルの接続の一部ではないパケット。
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
48.8.8. IPv6
ip6tables -A INPUT -i eth0 -p tcp -s 3ffe:ffff:100::1/128 --dport 22 -j ACCEPT
ip6tables -A INPUT -i eth0 -p tcp -s 3ffe:ffff:100::1/128 --dport 22 -j ACCEPT
48.8.9. 関連情報
48.8.9.1. インストールされているドキュメント
- 多くのコマンドオプションの定義など、iptables コマンドの詳細については、「iptables」 を参照してください。
- iptables の man ページには、さまざまなオプションの概要が記載されています。
48.8.9.2. 便利な Web サイト
- http://www.netfilter.org/ - SQS および iptables プロジェクトの公式ホームページです。
- http://www.tldp.org/: Linux ドキュメントプロジェクトには、ファイアウォールの作成と管理に関連する便利なガイドが複数含まれています。
- http://www.iana.org/assignments/port-numbers - Internet Assigned Numbers Authority によって割り当てられた登録済みおよび一般的なサービスポートの公式リストです。
48.8.9.3. 関連ドキュメント
- 『Red Hat Linux』 ファイアウォール(Bill McCarty)、Red Hat のプレス。Red Hat Press: オープンソースのパケットフィルターリングテクノロジーを使用してネットワークおよびサーバーファイアウォールを構築するための包括的なリファレンスです(例:Bill McCarty )。これには、ファイアウォールログの分析、ファイアウォールルールの開発、およびさまざまなグラフィカルツールを使用したファイアウォールのカスタマイズに関するトピックが含まれます。
- 『Linux Firewalls』 (Robert Ziegler)、New Riders Press には、2.2 カーネル ipchains と iptables の両方を使用してファイアウォールを構築する際のさまざまな情報が含まれています。リモートアクセスの問題や侵入検知システムなどの追加のセキュリティートピックについても扱います。
48.9. iptables
48.9.1. パケットフィルターリング
filter
: ネットワークパケットを処理するデフォルトのテーブル。NAT
- 新しい接続を作成し、ネットワークアドレス変換 (NAT)に使用されるパケットを変更するために使用されます。mangle
- 特定のタイプのパケット変更に使用されます。
filter
テーブルの組み込みチェーンは次のとおりです。
- INPUT: ホストの対象となるネットワークパケットに適用されます。
- OUTPUT: ローカルで生成されたネットワークパケットに適用されます。
- FORWARD: ホスト経由でルーティングされるネットワークパケットに適用されます。
nat
テーブルの組み込みチェーンは以下のとおりです。
- PREROUTING - ネットワークパケットが到達するとそのパケットを変更します。
- OUTPUT: ローカルで生成されたネットワークパケットが送信される前に変更します。
- POSTROUTING - ネットワークパケットが送信される前に変更します。
mangle
テーブルの組み込みチェーンは次のとおりです。
- INPUT: ホストの対象となるネットワークパケットを変更します。
- OUTPUT: ローカルで生成されたネットワークパケットが送信される前に変更します。
- FORWARD - ホストを介してルーティングされるネットワークパケットを変更します。
- PREROUTING - 着信ネットワークパケットがルーティングされる前に、それらを変更します。
- POSTROUTING - ネットワークパケットが送信される前に変更します。
/etc/sysconfig/iptables
ファイルまたは /etc/sysconfig/ip6tables
ファイルに保存されます。
48.9.2. IPTables と IPChains の相違点
- iptables を使用すると、フィルターされた各パケットは、複数のチェーンではなく 1 つのチェーンのルールを使用して処理されます。
- たとえば、ipchains を使用するシステムに送信される FORWARD パケットは、INPUT、FORWARD、および OUTPUT チェーンを通過して、宛先を続行する必要があります。ただし、iptables はローカルシステム向けの宛先である場合のみ、iptables はパケットを INPUT チェーンに送信し、ローカルシステムがパケットを生成した場合にのみ OUTPUT チェーンに送信します。したがって、実際にはパケットを処理するチェーン内に特定のパケットを取得するように設計されたルールを配置することが重要です。
- DENY ターゲットが DROP に変更になりました。
- ipchains では、チェーン内のルールに一致するパケットは DENY ターゲットに転送することができます。このターゲットは、iptables で DROP に変更する必要があります。
- ルールにオプションを配置する際の順序は重要です。
- ipchains では、ルールオプションの順序は重要ではありません。iptables コマンドの構文はより厳格です。iptables コマンドでは、送信元ポートまたは宛先ポートの前にプロトコル(ICMP、TCP、または UDP)を指定する必要があります。
- ネットワークインターフェイスは、ファイアウォールルールの正しいチェーンに関連付けられている必要があります。
- たとえば、受信インターフェイス(
-i
オプション)は INPUT または FORWARD チェーンでのみ使用できます。同様に、出力インターフェイス(-o
オプション)は、FORWARD チェーンまたは OUTPUT チェーンでのみ使用できます。つまり、INPUT チェーンと受信インターフェイスは連携し、OUTPUT チェーンと発信インターフェイスは連携します。FORWARD チェーンは、着信インターフェイスと発信インターフェイスの両方で機能します。OUTPUT チェーンは着信インターフェイスで使用されなくなり、送信インターフェイスを通過するパケットは INPUT チェーンを認識しません。
48.9.3. IPTables のコマンドオプション
- パケットタイプ: コマンドがフィルターするパケットのタイプを指定します。
- パケットソース/宛先: コマンドがパケットの送信元または宛先に基づいてフィルターするパケットを指定します。
- target - 上記の基準に一致するパケットに対して実行するアクションを指定します。
48.9.3.1. IPTables コマンドオプションの構造
iptables [-t <table-name>] <command> <chain-name> \ <parameter-1> <option-1> \ <parameter-n> <option-n>
iptables [-t <table-name>] <command> <chain-name> \
<parameter-1> <option-1> \
<parameter-n> <option-n>
filter
テーブルが使用されます。
48.9.3.2. コマンドオプション
-
a - 指定されたチェーンの最後にルールを追加します。以下の-I
オプションとは異なり、整数の引数は指定しません。常に指定されたチェーンの最後にルールを追加します。-c
- ユーザー指定のチェーンに追加する前に、特定のルールを確認します。このコマンドは、追加のパラメーターおよびオプションの入力を求めて、複雑な iptables ルールを構築するのに役立ちます。-d <integer> | <rule
>: 特定のチェーンのルールを番号(チェーンの5
番目のルールの 5 など)、またはルール指定で削除します。ルールの指定は、既存のルールに完全に一致する必要があります。-e
- ユーザー定義のチェーンの名前を変更します。ユーザー定義のチェーンは、デフォルトの既存のチェーン以外のチェーンです。(ユーザー定義のチェーンの作成に関する詳細は、以下の-N
オプションを参照してください)。 これは表の構造には影響しません。注記デフォルトのチェーンのいずれかの名前を変更しようとすると、システムはMatch not found
エラーを報告します。デフォルトのチェーンの名前を変更することはできません。-f -
選択したチェーンをフラッシュして、チェーン内のすべてのルールを効果的に削除します。チェーンが指定されていない場合、このコマンドはすべてのチェーンからすべてのルールをフラッシュします。-h
: コマンド構造の一覧と、コマンドパラメーターおよびオプションの概要を提供します。-I [<integer>
;] - ユーザー定義の整数引数で指定された時点で、指定したチェーンにルールを挿入します。引数が指定されていない場合、ルールはチェーンの上部に挿入されます。注意上記のように、チェーン内のルールの順序によって、どのルールがどのパケットに適用されるかが決まります。これは、-A
または-I
オプションのいずれかを使用してルールを追加するときに覚えておくことが重要です。これは、整数の引数で-I
を使用してルールを追加する場合に特に重要です。チェーンにルールを追加するときに既存の番号を指定すると、iptables は既存のルールの 前 (またはそれ以上)に新しいルールを追加します。-l -
コマンドの後に指定したチェーン内のすべてのルールを一覧表示します。デフォルトのフィルター
テーブルのすべてのチェーンのすべてのルールを一覧表示するには、チェーンまたはテーブルを指定しないでください。それ以外の場合は、特定のテーブルの特定のチェーンのルールを一覧表示するには、以下の構文を使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow iptables -L <chain-name> -t <table-name>
iptables -L <chain-name> -t <table-name>
ルール番号を提供し、より詳細なルールの説明を許可する-L
コマンドオプションの追加オプションは、「オプションの一覧表示」 で説明されています。-n
- ユーザー指定の名前で新しいチェーンを作成します。チェーン名は一意である必要があります。一意でなければ、エラーメッセージが表示されます。-p:
指定されたチェーンのデフォルトポリシーを設定します。これにより、パケットがルールを照合せずにチェーン全体を通過すると、ACCEPT や DROP などの指定されたターゲットに送信されます。-r
: 指定されたチェーン内のルールを置き換えます。ルールの番号は、チェーンの名前の後に指定する必要があります。チェーンの最初のルールはルール番号 1 に対応します。-x
: ユーザー指定のチェーンを削除します。ビルトインチェーンは削除できません。-z
- テーブルのすべてのチェーンのバイトカウンターおよびパケットカウンターをゼロに設定します。
48.9.3.3. iptables パラメーターオプション
-c
- 特定のルールのカウンターを設定します。このパラメーターは、PKTS
オプションおよびBYTES
オプションを受け入れて、リセットするカウンターを指定します。-d
: ルールに一致するパケットの宛先ホスト名、IP アドレス、またはネットワークを設定します。ネットワークに一致する場合、以下の IP アドレス/ネットマスクの形式がサポートされます。N.N.N.N
/ M.M.M: N.N.N.N は IP アドレス範囲で、M. M.M.M はネットマスクです。N.N.N.N
/M - N.N.N は IP アドレス範囲で、M はビットマスクです。
-f
- このルールが断片化されたパケットのみに適用されます。このパラメーターの後に感嘆符(!
)オプションを使用して、断片化されていないパケットのみが一致するように指定できます。注記断片化されたパケットが IP プロトコルの標準的な部分であるにもかかわらず、断片化されたパケットと断片化されていないパケットを区別することが望ましいです。当初は、IP パケットが異なるフレームサイズを持つネットワークで通過できるように設計されました。これらの日数の断片化は、マル形式のパケットを使用して DoS 攻撃を生成するためにより一般的に使用されます。また、IPv6 では断片化を完全に許可しない点にも留意してください。-i
-eth0
やppp0
などの受信ネットワークインターフェイスを設定します。iptables では、これはfilter
テーブルと PREROUTING チェーンとnat
テーブルおよびmangle
テーブルと使用すると、INI および FORWARD チェーンでのみ使用できます。このパラメーターは、以下の特別なオプションもサポートします。- 感嘆符文字(
!
)- ディレクティブを逆にすると、指定したインターフェイスはこのルールから除外されます。 - プラス文字(
+
)- 指定の文字列に一致するすべてのインターフェイスに一致するために使用されるワイルドカード文字。たとえば、パラメーター-i eth+
は、このルールを任意のイーサネットインターフェイスに適用しますが、ppp0
などの他のインターフェイスを除外します。
-i
パラメーターが使用されていてもインターフェイスが指定されていない場合は、すべてのインターフェイスがルールに影響されます。-j
- パケットが特定のルールに一致する場合に、指定したターゲットにジャンプします。標準のターゲットはACCEPT
、DROP
、QUEUE
、およびRETURN
です。拡張オプションは、Red Hat Enterprise Linux iptables RPM パッケージでデフォルトでロードされているモジュールからも利用できます。これらのモジュールの有効なターゲットには、LOG
、MARK
、およびREJECT
が含まれます。これらのターゲットおよびその他のターゲットの詳細は、iptables の man ページを参照してください。このオプションを使用して、特定のルールに一致するパケットを現在のチェーン外のユーザー定義のチェーンに転送し、他のルールをパケットに適用することもできます。ターゲットが指定されていない場合、パケットはアクションを実行せずにルールに移動します。ただし、このルールのカウンターは 1 つずつ増えます。-o
- ルールの送信ネットワークインターフェイスを設定します。このオプションは、filter
テーブルの OUTPUT および FORWARD チェーンにのみ有効です。また、nat
テーブルおよびmangle
テーブルの POSTROUTING チェーンにのみ有効です。このパラメーターは、受信ネットワークインターフェイスパラメーター(-i
)と同じオプションを受け入れます。-p <protocol>
;: ルールの影響を受ける IP プロトコルを設定します。これは、icmp
、tcp
、udp
、またはall
のいずれか、またはこれらのプロトコルの 1 つを表す数値にすることもできます。/etc/protocols
ファイルに記載されているプロトコルを使用することもできます。"all
" プロトコルは、ルールがサポートされるすべてのプロトコルに適用されることを意味します。このルールにプロトコルが一覧にない場合は、デフォルトで "all
" に設定されます。-s
: 宛先(-d
)パラメーターと同じ構文を使用して、特定のパケットのソースを設定します。
48.9.3.4. iptables の一致オプション
-p < protocol-name
> は指定されたプロトコルのオプションを有効にします。プロトコル名の代わりにプロトコル ID を使用することもできます。以下の例を参照してください。それぞれの効果は同じです。
iptables -A INPUT -p icmp --icmp-type any -j ACCEPT iptables -A INPUT -p 5813 --icmp-type any -j ACCEPT
iptables -A INPUT -p icmp --icmp-type any -j ACCEPT
iptables -A INPUT -p 5813 --icmp-type any -j ACCEPT
/etc/services
ファイルにあります。読みやすくするために、ポート番号ではなくサービス名を使用することが推奨されます。
/etc/services
ファイルを保護し、承認されていない編集を防ぎます。このファイルを編集すると、クラッカーがそれを使用して、閉じたマシン上でポートを有効にすることができます。このファイルのセキュリティーを保護するには、root で以下のコマンドを入力します。
chown root.root /etc/services chmod 0644 /etc/services chattr +i /etc/services
chown root.root /etc/services
chmod 0644 /etc/services
chattr +i /etc/services
48.9.3.4.1. TCP プロトコル
-p tcp
)で利用できます。
--dport
- パケットの宛先ポートを設定します。このオプションを設定するには、ネットワークサービス名(www、smtp など)、ポート番号、またはポート番号の範囲を使用します。ポート番号の範囲を指定するには、2 つの数字をコロン(:
)で区切ります。例:-p tcp --dport 3000:3200
許容可能な最大有効な範囲は0:65535
です。--dport
オプションの後に感嘆符(!
)を使用して、そのネットワークサービスまたはポートを使用し ない すべてのパケットに一致します。ネットワークサービスの名前とエイリアスと、それらが使用するポート番号を参照するには、/etc/services
ファイルを表示します。--destination-port
match オプションは、--dport
と同義です。--sport
---dport
と同じオプションを使用して、パケットの送信元ポートを設定します。--source-port
match オプションは、--sport
と同義です。--sYN
- 一般に SYN パケット と呼ばれる通信を開始するように設計されたすべての TCP パケット に適用されます。データペイロードを伝送するパケットには影響はありません。--syn
オプションの後に感嘆符(!
)を使用して、すべての非 SYN パケットに一致します。--tcp-flags <tested flag list> <set flag list
> - ルールに一致する特定のビット(フラグ)が設定された TCP パケットを許可します。--tcp-flags
match オプションは、2 つのパラメーターを受け入れます。最初のパラメーターはマスクで、パケット内で検査されるフラグのコンマ区切りリストです。2 番目のパラメーターは、ルールが一致するように設定する必要があるフラグのコンマ区切りリストです。使用できるフラグは以下のとおりです。ACK
FIN
PSH
RST
SYN
URG
ALL
NONE
たとえば、以下の仕様を含む iptables ルールは、SYN フラグが設定され、ACK フラグおよび FIN フラグが設定されていない TCP パケットのみに一致します。--tcp-flags ACK,FIN,SYN SYN--tcp-flags
の後にある感嘆符(!
)を使用して、一致オプションの影響を元に戻します。--tcp-option
- 特定のパケット内で設定できる TCP 固有のオプションと一致しようとします。この一致オプションは、感嘆符(!
)で逆にすることもできます。
48.9.3.4.2. UDP プロトコル
-p udp
)で利用できます。
--dport
- サービス名、ポート番号、またはポート番号の範囲を使用して、UDP パケットの宛先ポートを指定します。--destination-port
match オプションは、--dport
と同義です。--sport
- サービス名、ポート番号、またはポート番号の範囲を使用して、UDP パケットのソースポートを指定します。--source-port
match オプションは、--sport
と同義です。
--dport
オプションおよび --sport
オプションでは、ポート番号の範囲を指定するには、2 つの数字をコロン(:)で区切ります。例: -p tcp --dport 3000:3200
許容可能な最大有効な範囲は 0:65535 です。
48.9.3.4.3. ICMP プロトコル
-p icmp
)では、次の一致オプションを使用できます。
--ICMP-type
- ルールに一致する ICMP タイプの名前または番号を設定します。iptables -p icmp -h コマンドを入力して、有効な ICMP 名の一覧を取得できます。
48.9.3.4.4. 追加の一致オプションモジュール
-m <module-name> を使用して 名前でモジュール
を読み込みます。< module-name > はモジュールの名前になります。
limit
module: 特定のルールに一致するパケット数を制限します。LOG ターゲットと併用すると、limit
モジュールにより、一致するパケットが繰り返しメッセージまたはアップシステムリソースでシステムログがいっぱいになるのを防ぐことができます。LOG ターゲットの詳細については、「ターゲットオプション」 を参照してください。limit
モジュールは、以下のオプションを有効にします。--limit
- <value>/<period> ペアとして指定される特定の期間の
最大一致数を設定します。たとえば、--limit 5/hour
を使用すると、1 時間あたり 5 つのルール一致が許可されます。期間は、秒、分、時間、または日で指定できます。数字と時間修飾子が使用されていない場合、デフォルト値の3/hour
が想定されます。--limit-burst
- 一度にルールに一致することのできるパケット数に制限を設定します。このオプションは整数として指定され、--limit
オプションと併用する必要があります。値の指定がない場合は、デフォルト値の 5 (5)が想定されます。
state
モジュール - 状態の一致を有効にします。state
モジュールは、以下のオプションを有効にします。--state
- 次の接続状態のパケットを照合します。ESTABLISHED
- 一致するパケットは、確立された接続内の他のパケットに関連付けられます。クライアントとサーバー間の接続を維持する場合は、この状態を受け入れる必要があります。INVALID
- 一致するパケットを既知の接続に関連付けることはできません。NEW
- 一致するパケットは、新しい接続を作成するか、以前に確認されていない双方向接続の一部です。サービスへの新しい接続を許可する場合は、この状態を受け入れる必要があります。RELATED
: 一致するパケットは、既存の接続への何らかの方法で関連する新しい接続を開始します。FTP の例として、制御トラフィック(ポート 21)に 1 つの接続を使用し、データ転送に別の接続(ポート 20)を使用します。
これらの接続状態は、-m state --state INVALID,NEW などのコンマで区切って、
相互に組み合わせることができます。
- MAC
モジュール
- ハードウェアの MAC アドレス一致を有効にします。mac
モジュールは、以下のオプションを有効にします。--mac-source
- パケットを送信するネットワークインターフェイスカードの MAC アドレスと一致します。ルールから MAC アドレスを除外するには、--mac-source
match オプションの後に感嘆符(!
)を追加します。
48.9.3.5. ターゲットオプション
<user-defined-chain
> - テーブル内のユーザー定義のチェーン。ユーザー定義のチェーン名は一意である必要があります。このターゲットは、パケットを指定されたチェーンに渡します。ACCEPT
- 宛先または別のチェーンへのパケットを許可します。DROP
- リクエスターに応答せずにパケットをドロップします。パケットを送信したシステムは、失敗について通知されません。QUEUE
- パケットは、ユーザー空間のアプリケーションによって処理されるためにキューに置かれます。RETURN
: 現在のチェーンのルールに対するパケットの確認を停止します。RETURN
ターゲットを持つパケットが、別のチェーンから呼び出されたチェーン内のルールと一致する場合、パケットは最初のチェーンに返され、停止した場所の確認を再開します。RETURN
ルールが組み込みチェーンで使用され、そのパケットが以前のチェーンに移動できない場合は、現在のチェーンのデフォルトターゲットが使用されます。
LOG
- このルールに一致するパケットをすべてログに記録します。パケットはカーネルによってログに記録されるため、/etc/syslog.conf
ファイルはこれらのログエントリーが書き込まれる場所を決定します。デフォルトでは、それらは/var/log/messages
ファイルに配置されます。LOG
ターゲットの後に追加オプションを使用すると、ロギングが発生する方法を指定できます。--log-level
- ロギングイベントの優先度レベルを設定します。優先度レベルの一覧は、syslog.conf
の man ページを参照してください。--log-ip-options
- IP パケットのヘッダーに設定されたオプションをログに記録します。--log-prefix
- 書き込み時にログ行の前に最大 29 文字の文字列を配置します。これは、パケットロギングと併用する syslog フィルターを作成するのに役立ちます。注記このオプションの問題により、末尾のスペースを log-prefix 値に追加する必要があります。--log-tcp-options
- TCP パケットのヘッダーに設定されたオプションをログに記録します。--log-tcp-sequence
- パケットの TCP シーケンス番号をログに書き込みます。
REJECT
- エラーパケットをリモートシステムに送信し、パケットをドロップします。REJECT
ターゲットは--reject-with < type
> (< type > は rejection タイプ)を受け入れます。これにより、エラーパケットとともにより詳細な情報が返されます。メッセージポート到達不能
は、他のオプションが使用されていない場合に指定されるデフォルトのエラータイプです。<type> オプションの完全なリストは、iptables の man ページを参照し
てください。
nat
テーブルを使用した IP マスカレード、または mangle
テーブルを使用したパケット変更に便利な複数のターゲット拡張機能は、iptables の man ページにあります。
48.9.3.6. オプションの一覧表示
-v
: 各チェーンが処理したパケット数やバイト数、各ルールが一致したパケットとバイト数、特定のルールに適用されるインターフェイスなど、詳細な出力を表示します。-x
: 番号を正確な値に展開します。ビジーなシステムでは、特定のチェーンまたはルールによって処理されるパケットとバイト数の数は、キロバイト
、メガバイト
(メガバイト)、またはギガバイト(ギガバイト)と省略できます
。このオプションは、完全な番号を強制的に表示します。-n
- デフォルトのホスト名およびネットワークサービス形式ではなく、数値形式で IP アドレスとポート番号を表示します。--line-numbers
- チェーンの数値順の横にある各チェーンのルールを一覧表示します。このオプションは、チェーン内の特定のルールを削除しようとする場合や、チェーン内にルールを挿入する場所を見つける場合に役立ちます。-t <table-name>
- テーブル名を指定します。省略した場合、デフォルトは filter テーブルに設定されます。
-x
オプションを追加して、バイト表示の違いに注意してください。
~]# iptables -L OUTPUT -v -n -x Chain OUTPUT (policy ACCEPT 64005 packets, 6445791 bytes) pkts bytes target prot opt in out source destination 1593 133812 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 ~]# iptables -L OUTPUT -v -n Chain OUTPUT (policy ACCEPT 64783 packets, 6492K bytes) pkts bytes target prot opt in out source destination 1819 153K ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 ~]#
~]# iptables -L OUTPUT -v -n -x
Chain OUTPUT (policy ACCEPT 64005 packets, 6445791 bytes)
pkts bytes target prot opt in out source destination
1593 133812 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
~]# iptables -L OUTPUT -v -n
Chain OUTPUT (policy ACCEPT 64783 packets, 6492K bytes)
pkts bytes target prot opt in out source destination
1819 153K ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
~]#
48.9.4. IPTables ルールの保存
service iptables save
service iptables save
/etc/sysconfig/ iptables
に書き込む iptables init スクリプトを実行します。既存の /etc/sysconfig/iptables
ファイルは /etc/sysconfig/iptables.save
として保存されます。
/etc/sysconfig/iptables
に保存されているルールを再適用します。
/etc/sysconfig/iptables
ファイルにコミットする前に新しい iptables ルールをテストすることが推奨されますが、iptables ルールをこのファイルのバージョンから別のシステムのバージョンからこのファイルにコピーすることができます。これにより、iptables ルールのセットを複数のマシンに簡単に配信できます。
iptables-save > <filename>
iptables-save > <filename>
/etc/sysconfig/iptables
ファイルを他のマシンに配布する場合は、/sbin/service iptables restart と入力して新しいルールを有効にします。
48.9.5. iptables 制御スクリプト
- Security Level Configuration Tool (system-config-securitylevel): 基本的なファイアウォールルールを作成、アクティベート、および保存するグラフィカルインターフェイスです。詳細は、「ファイアウォールの基本設定」 を参照してください。
- /sbin/service iptables < option>: initscript を使用して iptables のさまざまな機能を操作するのに使用します。以下のオプションを設定できます。
- start - ファイアウォールが設定されている場合(つまり
/etc/sysconfig/iptables
が存在する場合)、実行中の iptables はすべて完全に停止され、/sbin/iptables-restore コマンドを使用して起動します。このオプションは、ipchains カーネルモジュールがロードされていない場合にのみ機能します。このモジュールが読み込まれているかどうかを確認するには、root で以下のコマンドを入力します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow lsmod | grep ipchains
lsmod | grep ipchains
このコマンドで出力が返されない場合は、モジュールが読み込まれていないことを意味します。必要に応じて、/sbin/rmmod コマンドを使用してモジュールを削除します。 - stop - ファイアウォールが実行されている場合、メモリーのファイアウォールルールがフラッシュされ、すべての iptables モジュールとヘルパーがアンロードされます。
/etc/sysconfig/iptables-config
設定ファイルの IPTABLES_SAVE_ON_STOP ディレクティブがデフォルト値から yes に変更されると、現在のルールは/etc/sysconfig/iptables
に保存され、既存のルールは/etc/sysconfig/iptables.save
ファイルに移動します。iptables-config
ファイルの詳細は、「iptables 制御スクリプト設定ファイル」 を参照してください。 - restart: ファイアウォールが実行されている場合、メモリーのファイアウォールルールがフラッシュされ、
/etc/sysconfig/iptables
で設定されている場合はファイアウォールが再度起動します。このオプションは、ipchains カーネルモジュールがロードされていない場合にのみ機能します。/etc/sysconfig/iptables-config
設定ファイルの IPTABLES_SAVE_ON_RESTART ディレクティブがデフォルト値から yes に変更されると、現在のルールは/etc/sysconfig/iptables
に保存され、既存のルールは/etc/sysconfig/iptables.save
ファイルに移動します。iptables-config
ファイルの詳細は、「iptables 制御スクリプト設定ファイル」 を参照してください。 - ステータス - ファイアウォールのステータスを表示し、すべてのアクティブなルールを一覧表示します。このオプションのデフォルト設定では、各ルールの IP アドレスが表示されます。ドメインおよびホスト名の情報を表示するには、
/etc/sysconfig/iptables-config
ファイルを編集し、IPTABLES_STATUS_NUMERIC の値を no に変更します。iptables-config
ファイルの詳細は、「iptables 制御スクリプト設定ファイル」 を参照してください。 - panic - すべてのファイアウォールルールを表示します。設定されたすべてのテーブルのポリシーは DROP に設定されます。このオプションは、サーバーが危険にさらされることがわかっている場合に役立ちます。ネットワークから物理的に切断したり、システムをシャットダウンしたりするのではなく、このオプションを使用して、それ以降のネットワークトラフィックをすべて停止できますが、分析またはその他のフォレンジック用にマシンを状態にしておくことができます。
- Save: iptables- save を使用して、ファイアウォールルールを
/etc/sysconfig/ iptables に保存
します。詳細は、「IPTables ルールの保存」 を参照してください。
48.9.5.1. iptables 制御スクリプト設定ファイル
/etc/sysconfig/iptables-config
設定ファイルによって制御されます。以下は、このファイルに含まれるディレクティブの一覧です。
- IPTABLES_MODULES - ファイアウォールがアクティブ化されたときにロードする追加の iptables モジュールのスペース区切りの一覧を指定します。これには、接続追跡および NAT ヘルパーを含めることができます。
- IPTABLES_MODULES_UNLOAD - 再起動および停止時にモジュールをアンロードします。このディレクティブは、以下の値を受け入れます。
- ◯: デフォルト値。このオプションは、ファイアウォールの再起動または停止について正しい状態を実現するように設定する必要があります。
- no: このオプションは、netfilter モジュールのアンロードに問題がある場合にのみ設定する必要があります。
- IPTABLES_SAVE_ON_STOP: ファイアウォールが停止したときに現在のファイアウォールルールを
/etc/sysconfig/iptables
に保存します。このディレクティブは、以下の値を受け入れます。- Yes: ファイアウォールが停止したときに既存のルールを
/etc/sysconfig/iptables
に保存し、以前のバージョンを/etc/sysconfig/iptables.save
ファイルに移動します。 - no: デフォルト値は です。ファイアウォールが停止している場合、既存のルールを保存しません。
- IPTABLES_SAVE_ON_RESTART - ファイアウォールの再起動時に現在のファイアウォールルールを保存します。このディレクティブは、以下の値を受け入れます。
- Yes: ファイアウォールが再起動されたときに既存のルールを
/etc/sysconfig/iptables
に保存し、以前のバージョンを/etc/sysconfig/iptables.save
ファイルに移動します。 - no: デフォルト値は です。ファイアウォールが再起動されても、既存のルールを保存しません。
- IPTABLES_SAVE_COUNTER - すべてのチェーンおよびルールですべてのパケットカウンターおよびバイトカウンターを保存し、復元します。このディレクティブは、以下の値を受け入れます。
- yes - カウンター値を保存します。
- no: デフォルト値は です。カウンター値を保存しません。
- IPTABLES_STATUS_NUMERIC - ドメインまたはホスト名ではなく、数値形式で IP アドレスを出力します。このディレクティブは、以下の値を受け入れます。
- ◯: デフォルト値。ステータス出力内の IP アドレスのみを返します。
- no: ステータス出力内のドメインまたはホスト名を返します。
48.9.6. iptables および IPv6
iptables-ipv6
パッケージがインストールされている場合は、Red Hat Enterprise Linux のnetfilter は次回の世代の IPv6 インターネットプロトコルをフィルターリングできます。IPv6filter の操作に使用するコマンドは ip6tables です。
/etc/sysconfig/ip6tables
ファイルに保存されます。ip6tables initscripts が保存した以前のルールは、/etc/sysconfig/ip6tables.save
ファイルに保存されます。
/etc/sysconfig/ip6tables-config
に保存され、各ディレクティブの名前は iptables で若干異なります。
iptables-config
ディレクティブ IPTABLES_MODULES: ip6tables-config
ファイルの同等は IP6TABLES_MODULES です。
48.9.7. 関連情報
- 「ファイアウォール」 : 全体的なセキュリティーストラテジーにおけるファイアウォールロールに関する章と、ファイアウォールルールを構築するストラテジーについて説明します。
48.9.7.1. インストールされているドキュメント
- man iptables: iptables の説明と、ターゲット、オプション、および一致拡張機能の包括的な一覧が含まれます。
48.9.7.2. 便利な Web サイト
- http://www.netfilter.org/ (netfilter/iptables プロジェクトのホーム)。特定問題に対応する FAQ や Linux IP ファイアウォールメンテナー(Russell)が役立つさまざまなガイドなど、iptables に関するさまざまな情報が含まれています。サイトの HOWTO ドキュメントは、基本的なネットワーク概念、カーネルパケットフィルターリング、NAT 設定などのサブジェクトを対象としています。
- http://www.linuxnewbie.org/nhf/Security/IPtables_Basics.html: パケットが Linux カーネルを通過する方法の概要と、基本的な iptables コマンドの構築を紹介します。
第49章 セキュリティーおよび SELinux
49.1. アクセス制御メカニズム(ACM)
49.1.1. Discretionary Access Control (DAC)
49.1.2. アクセス制御リスト(ACL)
49.1.3. 強制アクセス制御(MAC)
49.1.4. ロールベースアクセス制御(RBAC)
49.1.5. Multi-Level Security (MLS)
49.1.6. Multi-Category Security (MCS)
49.2. SELinux の概要
49.2.1. SELinux の概要
SELinux 意思決定プロセス
サブジェクト(アプリケーションなど)がオブジェクトへのアクセスを試みると(例:ファイル)、カーネル内のポリシー強制サーバーは、サブジェクトとオブジェクトパーミッションが キャッシュされるアクセスベクターキャッシュ (AVC)をチェックします。AVC のデータに基づいて決定を行うことができない場合、要求はセキュリティーサーバーに続行され、アプリケーションとマトリックスでファイルを検索します。次に、パーミッションが許可または拒否され、パーミッションが拒否された場合は、/var/log/messages
に詳細を示す avc: denied
メッセージが表示されます。サブジェクトとオブジェクトのセキュリティーコンテキストはインストールされたポリシーから適用されます。これは、セキュリティーサーバーのマトリックスを設定するための情報を提供します。
図49.1 SELinux デシジョンプロセス

[D]
SELinux の操作モード
SELinux は Enforcing モードで実行する代わりに Permissive モードで実行できます。この場合、AVC が確認され、拒否のログが記録されますが、SELinux はポリシーを強制しません。これは、トラブルシューティングや SELinux ポリシーの開発や微調整に役立ちます。
49.2.2. SELinux に関連するファイル
49.2.2.1. SELinux Pseudo-File System
/selinux/
擬似ファイルシステムには、カーネルサブシステムで最も一般的に使用されるコマンドが含まれています。このタイプのファイルシステムは、/proc/
擬似ファイルシステムに似ています。
/selinux/
ディレクトリーの内容を示しています。
-rw-rw-rw- 1 root root 0 Sep 22 13:14 access dr-xr-xr-x 1 root root 0 Sep 22 13:14 booleans --w------- 1 root root 0 Sep 22 13:14 commit_pending_bools -rw-rw-rw- 1 root root 0 Sep 22 13:14 context -rw-rw-rw- 1 root root 0 Sep 22 13:14 create --w------- 1 root root 0 Sep 22 13:14 disable -rw-r--r-- 1 root root 0 Sep 22 13:14 enforce -rw------- 1 root root 0 Sep 22 13:14 load -r--r--r-- 1 root root 0 Sep 22 13:14 mls -r--r--r-- 1 root root 0 Sep 22 13:14 policyvers -rw-rw-rw- 1 root root 0 Sep 22 13:14 relabel -rw-rw-rw- 1 root root 0 Sep 22 13:14 user
-rw-rw-rw- 1 root root 0 Sep 22 13:14 access
dr-xr-xr-x 1 root root 0 Sep 22 13:14 booleans
--w------- 1 root root 0 Sep 22 13:14 commit_pending_bools
-rw-rw-rw- 1 root root 0 Sep 22 13:14 context
-rw-rw-rw- 1 root root 0 Sep 22 13:14 create
--w------- 1 root root 0 Sep 22 13:14 disable
-rw-r--r-- 1 root root 0 Sep 22 13:14 enforce
-rw------- 1 root root 0 Sep 22 13:14 load
-r--r--r-- 1 root root 0 Sep 22 13:14 mls
-r--r--r-- 1 root root 0 Sep 22 13:14 policyvers
-rw-rw-rw- 1 root root 0 Sep 22 13:14 relabel
-rw-rw-rw- 1 root root 0 Sep 22 13:14 user
enforce
ファイルで cat コマンドを実行すると、Enforcing モードの場合は 1
、Permissive モードの場合は 0
が表示されます。
49.2.2.2. SELinux 設定ファイル
/etc/
ディレクトリーにある関連ファイルシステムを説明します。
49.2.2.2.1. /etc/sysconfig/selinux
設定ファイル
/etc/sysconfig/selinux
)の 2 つの方法があります。
/etc/sysconfig/selinux
ファイルは、SELinux を有効または無効にする主要な設定ファイルであり、システムで強制するポリシーと、その強制方法を設定します。
/etc/sysconfig/selinux
には、実際の設定ファイル /etc/selinux/config
へのシンボリックリンクが含まれます。
- SELINUX=enforcing|permissive|disabled: システム上の SELinux の最上位状態を定義します。
Enforcing
- SELinux セキュリティーポリシーが適用されます。Permissive
- SELinux システムは警告を出力しますが、ポリシーは強制されません。これは、デバッグおよびトラブルシューティングに役立ちます。- ヒント
注記 - 重要な影響
Copy to Clipboard Copied! Toggle word wrap Toggle overflow setsebool -P dhcpd_disable_trans=0
setsebool -P dhcpd_disable_trans=0
49.2.2.2.2.
-rw-r--r-- 1 root root 448 Sep 22 17:34 config drwxr-xr-x 5 root root 4096 Sep 22 17:27 strict drwxr-xr-x 5 root root 4096 Sep 22 17:28 targeted
-rw-r--r-- 1 root root 448 Sep 22 17:34 config
drwxr-xr-x 5 root root 4096 Sep 22 17:27 strict
drwxr-xr-x 5 root root 4096 Sep 22 17:28 targeted
49.2.2.3.
- 以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SELinux status: enabled SELinuxfs mount: /selinux Current mode: enforcing Mode from config file: enforcing Policy version: 21 Policy from config file: targeted Process contexts: Current context: user_u:system_r:unconfined_t:s0 Init context: system_u:system_r:init_t:s0 /sbin/mingetty system_u:system_r:getty_t:s0
SELinux status: enabled SELinuxfs mount: /selinux Current mode: enforcing Mode from config file: enforcing Policy version: 21 Policy from config file: targeted Process contexts: Current context: user_u:system_r:unconfined_t:s0 Init context: system_u:system_r:init_t:s0 /sbin/mingetty system_u:system_r:getty_t:s0
- 注記
49.2.3. 関連情報
49.2.3.1. インストールされているドキュメント
49.2.3.2. 便利な Web サイト
49.3.
49.4. Multi-Category Security (MCS)
49.4.1. はじめに
49.4.1.1.
49.4.2.
49.4.3.
~]# ls -Z gravityControl.txt -rw-r--r-- user user user_u:object_r:tmp_t:Moonbase_Plans gravityControl.txt
~]# ls -Z gravityControl.txt
-rw-r--r-- user user user_u:object_r:tmp_t:Moonbase_Plans gravityControl.txt
~]# getfattr -n security.selinux gravityControl.txt # file: gravityControl.txt security.selinux="user_u:object_r:tmp_t:s0:c10\000"
~]# getfattr -n security.selinux gravityControl.txt
# file: gravityControl.txt
security.selinux="user_u:object_r:tmp_t:s0:c10\000"
49.5.
49.5.1. はじめに
49.5.2.
~]# semanage user -l Labeling MLS/ MLS/ SELinux User Prefix MCS Level MCS Range SELinux Roles root user s0 s0-s0:c0.c1023 system_r sysadm_r user_r system_u user s0 s0-s0:c0.c1023 system_r user_u user s0 s0-s0:c0.c1023 system_r sysadm_r user_r
~]# semanage user -l
Labeling MLS/ MLS/
SELinux User Prefix MCS Level MCS Range SELinux Roles
root user s0 s0-s0:c0.c1023 system_r sysadm_r user_r
system_u user s0 s0-s0:c0.c1023 system_r
user_u user s0 s0-s0:c0.c1023 system_r sysadm_r user_r
SELinux Logins
~]# semanage login -a james ~]# semanage login -a daniel ~]# semanage login -a olga
~]# semanage login -a james
~]# semanage login -a daniel
~]# semanage login -a olga
~]# semanage login -l Login Name SELinux User MLS/MCS Range __default__ user_u s0 james user_u s0 daniel user_u s0 root root s0-s0:c0.c1023 olga user_u s0
~]# semanage login -l
Login Name SELinux User MLS/MCS Range
__default__ user_u s0
james user_u s0
daniel user_u s0
root root s0-s0:c0.c1023
olga user_u s0
49.5.3.
~]# chcat -L s0 s0-s0:c0.c1023 SystemLow-SystemHigh s0:c0.c1023 SystemHigh
~]# chcat -L
s0
s0-s0:c0.c1023 SystemLow-SystemHigh
s0:c0.c1023 SystemHigh
~]# vi /etc/selinux/targeted/setrans.conf s0:c0=Marketing s0:c1=Finance s0:c2=Payroll s0:c3=Personnel
~]# vi /etc/selinux/targeted/setrans.conf
s0:c0=Marketing
s0:c1=Finance
s0:c2=Payroll
s0:c3=Personnel
~]# chcat -L s0:c0 Marketing s0:c1 Finance s0:c2 Payroll s0:c3 Personnel s0 s0-s0:c0.c1023 SystemLow-SystemHigh s0:c0.c1023 SystemHigh
~]# chcat -L
s0:c0 Marketing
s0:c1 Finance
s0:c2 Payroll
s0:c3 Personnel
s0
s0-s0:c0.c1023 SystemLow-SystemHigh
s0:c0.c1023 SystemHigh
~]# service mcstrans restart
~]# service mcstrans restart
49.5.4.
~]# chcat -l -- +Marketing james ~]# chcat -l -- +Finance,+Payroll daniel ~]# chcat -l -- +Personnel olga
~]# chcat -l -- +Marketing james
~]# chcat -l -- +Finance,+Payroll daniel
~]# chcat -l -- +Personnel olga
~]# chcat -L -l daniel james olga daniel: Finance,Payroll james: Marketing olga: Personnel
~]# chcat -L -l daniel james olga
daniel: Finance,Payroll
james: Marketing
olga: Personnel
Create a user account for the company director (Karl) Assign the user account to an SELinux login Assign all the MCS categories to the new login
# Create a user account for the company director (Karl)
~]# useradd karl
~]# passwd karl
Changing password for user karl.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
# Assign the user account to an SELinux login
~]# semanage login -a karl
# Assign all the MCS categories to the new login
~]# chcat -l -- +Marketing,+Finance,+Payroll,+Personnel karl
~]# chcat -L -l daniel james olga karl daniel: Finance,Payroll james: Marketing olga: Personnel karl: Marketing,Finance,Payroll,Personnel
~]# chcat -L -l daniel james olga karl
daniel: Finance,Payroll
james: Marketing
olga: Personnel
karl: Marketing,Finance,Payroll,Personnel
49.5.5.
echo "Financial Records 2006" > financeRecords.txt
[daniel@dhcp-133 ~]$ echo "Financial Records 2006" > financeRecords.txt
ls -Z financeRecords.txt
[daniel@dhcp-133 ~]$ ls -Z financeRecords.txt
-rw-r--r-- daniel daniel user_u:object_r:user_home_t financeRecords.txt
chcat -- +Finance financeRecords.txt ls -Z financeRecords.txt
[daniel@dhcp-133 ~]$ chcat -- +Finance financeRecords.txt
[daniel@dhcp-133 ~]$ ls -Z financeRecords.txt
-rw-r--r-- daniel daniel root:object_r:user_home_t:Finance financeRecords.txt
chcat -- +Payroll financeRecords.txt ls -Z financeRecords.txt
[daniel@dhcp-133 ~]$ chcat -- +Payroll financeRecords.txt
[daniel@dhcp-133 ~]$ ls -Z financeRecords.txt
-rw-r--r-- daniel daniel root:object_r:user_home_t:Finance,Payroll financeRecords.txt
cat financeRecords.txt cat: financeRecords.txt: Permission Denied
[olga@dhcp-133 ~]$ cat financeRecords.txt
cat: financeRecords.txt: Permission Denied
49.6. Multi-Level Security (MLS)
49.6.1.
図49.2

[D]
49.6.1.1.
図49.3

[D]
49.6.1.2. MLS およびシステム権限
49.6.2.
49.6.3.
49.6.4. SELinux での MLS の有効化
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ~]# yum install selinux-policy-mls
~]# yum install selinux-policy-mls
- MLS ポリシーを有効にする前に、ファイルシステムの各ファイルに、MLS ラベルで再ラベル付けする必要があります。ファイルシステムに再ラベル付けすると、制限されたドメインのアクセスが拒否される可能性があります。これにより、システムが正しく起動しなくなる可能性があります。これを防ぐには、
/etc/selinux/config
ファイルでSELINUX=permissive
を設定します。また、SELINUXTYPE=mls
を設定して、MLS ポリシーを有効にします。設定ファイルは以下のようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow This file controls the state of SELinux on the system. SELINUX= can take one of these three values: enforcing - SELinux security policy is enforced. permissive - SELinux prints warnings instead of enforcing. disabled - No SELinux policy is loaded. SELINUXTYPE= can take one of these two values: targeted - Targeted processes are protected, minimum - Modification of targeted policy. Only selected processes are protected. mls - Multi Level Security protection.
# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=permissive # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=mls
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ~]# setenforce 0 ~]# getenforce Permissive
~]# setenforce 0 ~]# getenforce Permissive
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ~]# touch /.autorelabel
~]# touch /.autorelabel
- システムを再起動します。次回の起動時に、MLS ポリシーに従って、すべてのファイルシステムに再ラベル付けされます。ラベルプロセスは、適切な SELinux コンテキストを使用して、すべてのファイルにラベルを付けます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow *** Warning -- SELinux mls policy relabel is required. *** Relabeling could take a very long time, depending on file *** system size and speed of hard drives. ***********
*** Warning -- SELinux mls policy relabel is required. *** Relabeling could take a very long time, depending on file *** system size and speed of hard drives. ***********
一番下の行にある * (アスタリスク) 文字は、ラベル付けされている 1000 ファイルを表します。すべてのファイルにラベルを付けるのにかかる時間は、システムのファイル数と、ハードディスクドライブの速度により異なります。最新のシステムでは、このプロセスに 10 分程度かかる場合があります。ラベリングプロセスが終了すると、システムが自動的に再起動します。 Copy to Clipboard Copied! Toggle word wrap Toggle overflow ~]# genhomedircon ~]# restorecon -R -v /root /home <other_home_directories>
~]# genhomedircon ~]# restorecon -R -v /root /home <other_home_directories>
- Permissive モードでは SELinux ポリシーは強制されませんが、Enforcing モードで実行された場合に拒否されたであろうアクションの拒否は引き続きログに記録されます。最後のシステムの起動時に SELinux がアクションを拒否しなかった場合に、このコマンドを実行しても出力は返されません。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow This file controls the state of SELinux on the system. SELINUX= can take one of these three values: enforcing - SELinux security policy is enforced. permissive - SELinux prints warnings instead of enforcing. disabled - No SELinux policy is loaded. SELINUXTYPE= can take one of these two values: targeted - Targeted processes are protected, minimum - Modification of targeted policy. Only selected processes are protected. mls - Multi Level Security protection.
# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=enforcing # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=mls
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ~]$ getenforce Enforcing
~]$ getenforce Enforcing
MLS ポリシーが有効になっていることも確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ~]# sestatus |grep mls Policy from config file: mls
~]# sestatus |grep mls Policy from config file: mls
49.6.5.
49.7.
49.7.1.
49.7.1.1.
49.7.1.1.1.
49.7.1.2.
49.7.2.
49.7.2.1.
- 注記
49.7.2.2.
man 3 selinux_binary_policy_path
man 3 selinux_binary_policy_path
49.7.3.
49.7.4.
- ファイル関連のクラスには、ファイルシステムの
filesystem
、ファイルのfile
、ディレクトリーのdir
が含まれます。各クラスには、独自の関連付けられたパーミッションセットがあります。
49.8. ターゲットポリシーの概要
49.8.1. ターゲットポリシーとは
unconfined_t
ドメインで実行されます。unconfined_t
ドメインにあるオブジェクトには制限がなく、標準の Linux セキュリティー( DAC )の使用にフォールバックします。ターゲットポリシーの一部であるデーモンは、独自のドメインで実行され、システムで実行するすべての操作で制限されます。このようにして、悪用されたデーモンや侵害されたデーモンは、どのような方法でも含まれており、限られた損傷しか発生しない可能性があります。
http
デーモンと ntp
デーモンは、デフォルトのターゲットポリシーで保護されており、それぞれ httpd_t
ドメインと ntpd_t
ドメインで実行されます。ただし、ssh
デーモンはこのポリシーでは保護されないため、unconfined_t
ドメインで実行されます。
user_u:system_r:httpd_t 25129 ? 00:00:00 httpd user_u:system_r:ntpd_t 25176 ? 00:00:00 ntpd system_u:system_r:unconfined_t 25245 ? 00:00:00 sshd
user_u:system_r:httpd_t 25129 ? 00:00:00 httpd
user_u:system_r:ntpd_t 25176 ? 00:00:00 ntpd
system_u:system_r:unconfined_t 25245 ? 00:00:00 sshd
Strict ポリシー
Targeted ポリシーの逆は、厳密なポリシー です。strict ポリシーでは、すべてのサブジェクトとオブジェクトが特定のセキュリティードメインに存在し、すべての対話と移行はポリシールール内で個別に考慮されます。
49.8.2. ターゲットされたポリシーのファイルおよびディレクトリー
49.8.3. ターゲットポリシー内のユーザーとロールについて
unconfined_t
タイプはすべてのロールに存在するため、ターゲットポリシーでのロールの有用性が大幅に削減されます。ロールをより広範囲に使用するには、厳密なポリシーパラダイム(各プロセスが個別にドメインと見なされる)に変更する必要があります。
system_r
と object_r
の 2 つのロールのみがあります。初期ロールは system_r
であり、それ以外はすべてそのロールを継承します。残りのロールは、targeted ポリシーと strict ポリシー間の互換性の目的で定義されます。[20]
object_r
は暗黙的なロールで、ポリシーソースには見つかりません。ロールは、ポリシーの 1 つ以上の宣言を使用してタイプで作成および設定されるため、すべてのロールを宣言する単一のファイルはありません。(ポリシー自体は、多数の別々のファイルから生成されることに注意してください。)
system_r
- このロールは、ユーザープロセス以外のすべてのシステムプロセスを対象としています。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow system_r (28 types) dhcpd_t httpd_helper_t httpd_php_t httpd_suexec_t httpd_sys_script_t httpd_t httpd_unconfined_script_t initrc_t ldconfig_t mailman_cgi_t mailman_mail_t mailman_queue_t mysqld_t named_t ndc_t nscd_t ntpd_t pegasus_t portmap_t postgresql_t snmpd_t squid_t syslogd_t system_mail_t unconfined_t winbind_helper_t winbind_t ypbind_t
system_r (28 types) dhcpd_t httpd_helper_t httpd_php_t httpd_suexec_t httpd_sys_script_t httpd_t httpd_unconfined_script_t initrc_t ldconfig_t mailman_cgi_t mailman_mail_t mailman_queue_t mysqld_t named_t ndc_t nscd_t ntpd_t pegasus_t portmap_t postgresql_t snmpd_t squid_t syslogd_t system_mail_t unconfined_t winbind_helper_t winbind_t ypbind_t
user_r
- これは、通常の Linux ユーザーのデフォルトのユーザーロールです。厳密なポリシーでは、個々のユーザーが使用される可能性があり、ユーザーに特別なロールで特権操作を実行できるようにします。targeted ポリシーでは、すべてのユーザーが
unconfined_t
ドメインで実行されます。 object_r
- SELinux では、RBAC が使用されている場合、ロールはオブジェクトに使用されません。ロールはサブジェクトに厳密に使用されます。これは、ロールはタスク指向で、それらがアクションを実行するエンティティー(プロセスなど)にグループ化するためです。このようなエンティティーはすべて、サブジェクト と呼ばれます。このため、すべてのオブジェクトには
object_r
ロールがあり、ロールはラベルのプレースホルダーとしてのみ使用されます。 sysadm_r
- これは、厳密なポリシーのシステム管理者ロールです。root ユーザーとして直接ログインする場合、デフォルトのロールは実際には
staff_r
である可能性があります。true の場合、newrole -r sysadm_r コマンドを使用して SELinux システム管理者ロールに切り替え、システム管理タスクを実行します。Targeted ポリシーでは、互換性のために以下のsysadm_r
を保持します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow sysadm_r (6 types) httpd_helper_t httpd_sys_script_t initrc_t ldconfig_t ndc_t unconfined_t
sysadm_r (6 types) httpd_helper_t httpd_sys_script_t initrc_t ldconfig_t ndc_t unconfined_t
libselinux
はデフォルトの SELinux ユーザー ID として user_u
に戻されるため、user_u
ID が選択されました。これは、ログインしている Linux ユーザーに一致する SELinux ユーザーがない場合に発生します。ターゲットポリシーで user_u
を単一ユーザーとして使用すると、strict ポリシーへの変更が容易になります。残りのユーザーは、strict ポリシーとの互換性のために存在します。[21]
root
です。プロセスのコンテキストでは、ユーザー ID として root
が確認できます。これは、SELinux ユーザー root
がコマンドラインからデーモンを起動するか、init によって最初に起動するデーモンを再起動する際に発生します。
第50章 SELinux の使用
50.1. SELinux のエンドユーザーコントロール
unconfined_t
のドメインと、ターゲットデーモン 以外 の残りのシステムで実行しているためです。
avc: denied
メッセージを生成しない可能性があります。
50.1.1. ファイルの移動とコピー
ファイルのコピー:cp の SELinux オプション
特に指定しない限り、cp は、作成プロセスのドメインとターゲットディレクトリーのタイプに基づいて新しいファイルを作成するデフォルトの動作に従います。ラベルを設定する特定のルールがない限り、ファイルはターゲットディレクトリーからタイプを継承します。
-Z user:role:type
オプションを使用して、新規ファイルに必要なラベルを指定します。
-p
(または --preserve=mode,ownership,timestamps
)オプションは指定された属性を保持し、可能であれば link などの追加属性を保持します。
touch bar foo ls -Z bar foo -rw-rw-r-- auser auser user_u:object_r:user_home_t bar -rw-rw-r-- auser auser user_u:object_r:user_home_t foo
touch bar foo
ls -Z bar foo
-rw-rw-r-- auser auser user_u:object_r:user_home_t bar
-rw-rw-r-- auser auser user_u:object_r:user_home_t foo
/tmp
に適用される特定のルールがないため、新しいファイルには親ディレクトリーのタイプが設定されます。
cp bar /tmp ls -Z /tmp/bar -rw-rw-r-- auser auser user_u:object_r:tmp_t /tmp/bar
cp bar /tmp
ls -Z /tmp/bar
-rw-rw-r-- auser auser user_u:object_r:tmp_t /tmp/bar
tmp_t
タイプは、一時ファイルのデフォルトタイプです。
-Z
オプションを使用して、新規ファイルのラベルを指定します。
cp -Z user_u:object_r:user_home_t foo /tmp ls -Z /tmp/foo -rw-rw-r-- auser auser user_u:object_r:user_home_t /tmp/foo
cp -Z user_u:object_r:user_home_t foo /tmp
ls -Z /tmp/foo
-rw-rw-r-- auser auser user_u:object_r:user_home_t /tmp/foo
ファイルの移動:mv の SELinux オプション
mv のあるファイルを移動すると、ファイルに関連付けられた元のタイプが保持されます。問題が発生する可能性があるため、このコマンドを使用する場合は注意が必要です。たとえば、タイプ user_home_t
を持つファイルを ~/public_html
に移動すると、httpd
デーモンは再ラベル付けするまでこれらのファイルを提供できなくなります。ファイルのラベリングの詳細は、「ファイルまたはディレクトリーの再ラベル」 を参照してください。
コマンド | 動作 |
---|---|
mv | ファイルは、元のラベルを保持します。これにより、問題、混乱、またはマイナーなセキュリティーが発生する可能性があります。たとえば、sbin_t ドメインで実行している tmpwatch プログラムは、ファイルのタイプが原因で、/tmp ディレクトリー内の経過時間ファイルを削除できない可能性があります。 |
cp | 作成プロセスのドメイン(cp)とターゲットディレクトリーのタイプに基づくデフォルトの動作を使用して、ファイルのコピーを作成します。 |
cp -p | ファイルのコピーを作成し、可能な場合は指定された属性とセキュリティーコンテキストを保持します。デフォルトの属性は mode、ownership、および timestamps です。その他の属性は links および all です。 |
cp -Z <user:role:type> | 指定されたラベルで ファイルのコピーを作成します。-Z オプションは、--context と同義語です。 |
50.1.2. プロセス、ユーザー、またはファイルオブジェクトのセキュリティーコンテキストの確認
プロセス ID の確認
Red Hat Enterprise Linux では、-Z
オプションは --context
と同等で、ps コマンド、id コマンド、ls コマンド、および cp コマンドで使用できます。SELinux に関する cp コマンドの動作は、表50.1「mv コマンドおよび cp コマンドの動作」 で説明されています。
unconfined_t
ドメインで実行されており、いくつかの例外があります。
ps auxZ
[user@localhost ~]$ ps auxZ
LABEL USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
system_u:system_r:init_t root 1 0.0 0.1 2032 620 ? Ss 15:09 0:00 init [5]
system_u:system_r:kernel_t root 2 0.0 0.0 0 0 ? S 15:09 0:00 [migration/0]
system_u:system_r:kernel_t root 3 0.0 0.0 0 0 ? SN 15:09 0:00 [ksoftirqd/0]
user_u:system_r:unconfined_t user 3122 0.0 0.6 6908 3232 ? S 16:47 0:01 /usr/libexec/gconfd-2 5
user_u:system_r:unconfined_t user 3125 0.0 0.1 2540 588 ? S 16:47 0:00 /usr/bin/gnome-keyring-daemon
user_u:system_r:unconfined_t user 3127 0.0 1.4 33612 6988 ? Sl 16:47 0:00 /usr/libexec/gnome-settings-daemon
user_u:system_r:unconfined_t user 3144 0.1 1.4 16528 7360 ? Ss 16:47 0:01 metacity --sm-client-id=default1
user_u:system_r:unconfined_t user 3148 0.2 2.9 79544 14808 ? Ss 16:47 0:03 gnome-panel --sm-client-id default2
ユーザー ID の確認
id コマンドで -Z
オプションを使用して、ユーザーのセキュリティーコンテキストを判断できます。このコマンドでは、-Z
と他のオプションを組み合わせることはできません。
id -Z
[root@localhost ~]# id -Z
user_u:system_r:unconfined_t
-Z
オプションを使用して、別のユーザーのセキュリティーコンテキストを検査できないことに注意してください。つまり、現在ログインしているユーザーのセキュリティーコンテキストのみを表示できます。
id id root id -Z root
[user@localhost ~]$ id
uid=501(user) gid=501(user) groups=501(user) context=user_u:system_r:unconfined_t
[user@localhost ~]$ id root
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
[user@localhost ~]$ id -Z root
id: cannot display context when selinux not enabled or when displaying the id
of a different user
ファイル ID の確認
ls コマンドに -Z
オプションを使用して、一般的な長い形式情報をグループ化できます。モード、ユーザー、グループ、セキュリティーコンテキスト、およびファイル名の情報を表示できます。
cd /etc ls -Z h* -d drwxr-xr-x root root system_u:object_r:etc_t hal -rw-r--r-- root root system_u:object_r:etc_t host.conf -rw-r--r-- root root user_u:object_r:etc_t hosts -rw-r--r-- root root system_u:object_r:etc_t hosts.allow -rw-r--r-- root root system_u:object_r:etc_t hosts.canna -rw-r--r-- root root system_u:object_r:etc_t hosts.deny drwxr-xr-x root root system_u:object_r:hotplug_etc_t hotplug drwxr-xr-x root root system_u:object_r:etc_t hotplug.d drwxr-xr-x root root system_u:object_r:httpd_sys_content_t htdig drwxr-xr-x root root system_u:object_r:httpd_config_t httpd
cd /etc
ls -Z h* -d
drwxr-xr-x root root system_u:object_r:etc_t hal
-rw-r--r-- root root system_u:object_r:etc_t host.conf
-rw-r--r-- root root user_u:object_r:etc_t hosts
-rw-r--r-- root root system_u:object_r:etc_t hosts.allow
-rw-r--r-- root root system_u:object_r:etc_t hosts.canna
-rw-r--r-- root root system_u:object_r:etc_t hosts.deny
drwxr-xr-x root root system_u:object_r:hotplug_etc_t hotplug
drwxr-xr-x root root system_u:object_r:etc_t hotplug.d
drwxr-xr-x root root system_u:object_r:httpd_sys_content_t htdig
drwxr-xr-x root root system_u:object_r:httpd_config_t httpd
50.1.3. ファイルまたはディレクトリーの再ラベル
~/public_html
ディレクトリーなどのターゲットデーモンに関連する特別なディレクトリーに移動またはコピーする場合、または /home
以外のディレクトリーで動作するスクリプトを作成する場合は、ファイルの再ラベル付けが必要になる場合があります。
- ファイルの型を意図的に変更
- ポリシーに応じたデフォルトの状態へのファイルの復元
/usr/sbin/mysqld
に誤ったセキュリティーラベルがあり、restorecon などの再ラベル付け操作を使用してこれに対応する場合は、再ラベル付け操作の後に mysqld
を再起動する必要があります。実行可能ファイルを正しいタイプ(mysqld_exec_t
)に設定すると、起動時に適切なドメインに移行できるようになります。
/home
で作成されたファイルシステムオブジェクトに定義されたデフォルトタイプのラベルが付けられています。
cd ~ ls -Zd public_html/ drwxrwxr-x auser auser user_u:object_r:user_home_t public_html/ ls -Z web_files/ -rw-rw-r-- auser auser user_u:object_r:user_home_t 1.html -rw-rw-r-- auser auser user_u:object_r:user_home_t 2.html -rw-rw-r-- auser auser user_u:object_r:user_home_t 3.html -rw-rw-r-- auser auser user_u:object_r:user_home_t 4.html -rw-rw-r-- auser auser user_u:object_r:user_home_t 5.html -rw-rw-r-- auser auser user_u:object_r:user_home_t index.html
cd ~
ls -Zd public_html/
drwxrwxr-x auser auser user_u:object_r:user_home_t public_html/
ls -Z web_files/
-rw-rw-r-- auser auser user_u:object_r:user_home_t 1.html
-rw-rw-r-- auser auser user_u:object_r:user_home_t 2.html
-rw-rw-r-- auser auser user_u:object_r:user_home_t 3.html
-rw-rw-r-- auser auser user_u:object_r:user_home_t 4.html
-rw-rw-r-- auser auser user_u:object_r:user_home_t 5.html
-rw-rw-r-- auser auser user_u:object_r:user_home_t index.html
public_html
ディレクトリーに移動すると、元のタイプを保持します。
mv web_files/* public_html/ ls -Z public_html/ -rw-rw-r-- auser auser user_u:object_r:user_home_t 1.html -rw-rw-r-- auser auser user_u:object_r:user_home_t 2.html -rw-rw-r-- auser auser user_u:object_r:user_home_t 3.html -rw-rw-r-- auser auser user_u:object_r:user_home_t 4.html -rw-rw-r-- auser auser user_u:object_r:user_home_t 5.html -rw-rw-r-- auser auser user_u:object_r:user_home_t index.html
mv web_files/* public_html/
ls -Z public_html/
-rw-rw-r-- auser auser user_u:object_r:user_home_t 1.html
-rw-rw-r-- auser auser user_u:object_r:user_home_t 2.html
-rw-rw-r-- auser auser user_u:object_r:user_home_t 3.html
-rw-rw-r-- auser auser user_u:object_r:user_home_t 4.html
-rw-rw-r-- auser auser user_u:object_r:user_home_t 5.html
-rw-rw-r-- auser auser user_u:object_r:user_home_t index.html
httpd
が読み取り権限を持つタイプが必要です。Apache HTTP Server は UserDir に対して設定され、ブール値 httpd_enable_homedirs
が有効になります。
chcon -R -t httpd_user_content_t public_html/ ls -Z public_html -rw-rw-r-- auser auser user_u:object_r:httpd_user_content_t 1.html -rw-rw-r-- auser auser user_u:object_r:httpd_user_content_t 2.html -rw-rw-r-- auser auser user_u:object_r:httpd_user_content_t 3.html -rw-rw-r-- auser auser user_u:object_r:httpd_user_content_t 4.html -rw-rw-r-- auser auser user_u:object_r:httpd_user_content_t 5.html -rw-rw-r-- auser auser user_u:object_r:httpd_user_content_t index.html ls -Z public_html/ -d drwxrwxr-x auser auser user_u:object_r:httpd_user_content_t public_html/
chcon -R -t httpd_user_content_t public_html/
ls -Z public_html
-rw-rw-r-- auser auser user_u:object_r:httpd_user_content_t 1.html
-rw-rw-r-- auser auser user_u:object_r:httpd_user_content_t 2.html
-rw-rw-r-- auser auser user_u:object_r:httpd_user_content_t 3.html
-rw-rw-r-- auser auser user_u:object_r:httpd_user_content_t 4.html
-rw-rw-r-- auser auser user_u:object_r:httpd_user_content_t 5.html
-rw-rw-r-- auser auser user_u:object_r:httpd_user_content_t index.html
ls -Z public_html/ -d
drwxrwxr-x auser auser user_u:object_r:httpd_user_content_t public_html/
ls -Z /tmp/ -rw-rw-r-- auser auser user_u:object_r:tmp_t /tmp/file1 -rw-rw-r-- auser auser user_u:object_r:tmp_t /tmp/file2 -rw-rw-r-- auser auser user_u:object_r:tmp_t /tmp/file3 mv /tmp/{1,2,3} archives/ mv public_html/* archives/ ls -Z archives/ -rw-rw-r-- auser auser user_u:object_r:tmp_t file1 -rw-rw-r-- auser auser user_u:object_r:httpd_user_content_t file1.html -rw-rw-r-- auser auser user_u:object_r:tmp_t file2 -rw-rw-r-- auser auser user_u:object_r:httpd_user_content_t file2.html -rw-rw-r-- auser auser user_u:object_r:tmp_t file3 -rw-rw-r-- auser auser user_u:object_r:httpd_user_content_t file3.html -rw-rw-r-- auser auser user_u:object_r:httpd_user_content_t file4.html -rw-rw-r-- auser auser user_u:object_r:httpd_user_content_t file5.html -rw-rw-r-- auser auser user_u:object_r:httpd_user_content_t index.html
ls -Z /tmp/
-rw-rw-r-- auser auser user_u:object_r:tmp_t /tmp/file1
-rw-rw-r-- auser auser user_u:object_r:tmp_t /tmp/file2
-rw-rw-r-- auser auser user_u:object_r:tmp_t /tmp/file3
mv /tmp/{1,2,3} archives/
mv public_html/* archives/
ls -Z archives/
-rw-rw-r-- auser auser user_u:object_r:tmp_t file1
-rw-rw-r-- auser auser user_u:object_r:httpd_user_content_t file1.html
-rw-rw-r-- auser auser user_u:object_r:tmp_t file2
-rw-rw-r-- auser auser user_u:object_r:httpd_user_content_t file2.html
-rw-rw-r-- auser auser user_u:object_r:tmp_t file3
-rw-rw-r-- auser auser user_u:object_r:httpd_user_content_t file3.html
-rw-rw-r-- auser auser user_u:object_r:httpd_user_content_t file4.html
-rw-rw-r-- auser auser user_u:object_r:httpd_user_content_t file5.html
-rw-rw-r-- auser auser user_u:object_r:httpd_user_content_t index.html
archives/
ディレクトリーには、ユーザーのホームディレクトリーにデフォルトのタイプが作成されているため、すでにデフォルトのタイプがあります。
ls -Zd archives/ drwxrwxr-x auser auser user_u:object_r:user_home_t archives/
ls -Zd archives/
drwxrwxr-x auser auser user_u:object_r:user_home_t archives/
/sbin/restorecon -R archives/ ls -Z archives/ -rw-rw-r-- auser auser system_u:object_r:user_home_t file1 -rw-rw-r-- auser auser system_u:object_r:user_home_t file1.html -rw-rw-r-- auser auser system_u:object_r:user_home_t file2 -rw-rw-r-- auser auser system_u:object_r:user_home_t file2.html -rw-rw-r-- auser auser system_u:object_r:user_home_t file3 -rw-rw-r-- auser auser system_u:object_r:user_home_t file3.html -rw-rw-r-- auser auser system_u:object_r:user_home_t file4.html -rw-rw-r-- auser auser system_u:object_r:user_home_t file5.html -rw-rw-r-- auser auser system_u:object_r:user_home_t index.html
/sbin/restorecon -R archives/
ls -Z archives/
-rw-rw-r-- auser auser system_u:object_r:user_home_t file1
-rw-rw-r-- auser auser system_u:object_r:user_home_t file1.html
-rw-rw-r-- auser auser system_u:object_r:user_home_t file2
-rw-rw-r-- auser auser system_u:object_r:user_home_t file2.html
-rw-rw-r-- auser auser system_u:object_r:user_home_t file3
-rw-rw-r-- auser auser system_u:object_r:user_home_t file3.html
-rw-rw-r-- auser auser system_u:object_r:user_home_t file4.html
-rw-rw-r-- auser auser system_u:object_r:user_home_t file5.html
-rw-rw-r-- auser auser system_u:object_r:user_home_t index.html
50.1.4. セキュリティーコンテキストを保持するアーカイブの作成
*.star
ファイルのヘッダーが xattrs に完全に対応するタイプになるように、適切な -xattr
および -H=exustar
オプションを使用する必要があります。これらのオプションおよびその他のオプションの詳細は、の man ページを参照してください。
ls -Z public_html/ web_files/ public_html/: -rw-rw-r-- auser auser ...httpd_user_content_t 1.html -rw-rw-r-- auser auser ...httpd_user_content_t 2.html -rw-rw-r-- auser auser ...httpd_user_content_t 3.html -rw-rw-r-- auser auser ...httpd_user_content_t 4.html -rw-rw-r-- auser auser ...httpd_user_content_t 5.html -rw-rw-r-- auser auser ...httpd_user_content_t index.html web_files/: -rw-rw-r-- auser auser user_u:object_r:user_home_t 1.html -rw-rw-r-- auser auser user_u:object_r:user_home_t 2.html -rw-rw-r-- auser auser user_u:object_r:user_home_t 3.html -rw-rw-r-- auser auser user_u:object_r:user_home_t 4.html -rw-rw-r-- auser auser user_u:object_r:user_home_t 5.html -rw-rw-r-- auser auser user_u:object_r:user_home_t index.html
ls -Z public_html/ web_files/
public_html/:
-rw-rw-r-- auser auser ...httpd_user_content_t 1.html
-rw-rw-r-- auser auser ...httpd_user_content_t 2.html
-rw-rw-r-- auser auser ...httpd_user_content_t 3.html
-rw-rw-r-- auser auser ...httpd_user_content_t 4.html
-rw-rw-r-- auser auser ...httpd_user_content_t 5.html
-rw-rw-r-- auser auser ...httpd_user_content_t index.html
web_files/:
-rw-rw-r-- auser auser user_u:object_r:user_home_t 1.html
-rw-rw-r-- auser auser user_u:object_r:user_home_t 2.html
-rw-rw-r-- auser auser user_u:object_r:user_home_t 3.html
-rw-rw-r-- auser auser user_u:object_r:user_home_t 4.html
-rw-rw-r-- auser auser user_u:object_r:user_home_t 5.html
-rw-rw-r-- auser auser user_u:object_r:user_home_t index.html
star -xattr -H=exustar -c -f all_web.star public_html/ web_files/ star: 11 blocks + 0 bytes (total of 112640 bytes = 110.00k).
star -xattr -H=exustar -c -f all_web.star public_html/ web_files/
star: 11 blocks + 0 bytes (total of 112640 bytes = 110.00k).
-Z
オプションを指定して ls コマンドを使用して、セキュリティーコンテキストを検証します。
ls -Z all_web.star -rw-rw-r-- auser auser user_u:object_r:user_home_t \ all_web.star
ls -Z all_web.star
-rw-rw-r-- auser auser user_u:object_r:user_home_t \ all_web.star
/tmp
にコピーされます。派生一時タイプを作成する特定のポリシーがない場合、デフォルトの動作は tmp_t
タイプを取得することです。
cp all_web.star /tmp/ cd /tmp/ ls -Z all_web.star -rw-rw-r-- auser auser user_u:object_r:tmp_t all_web.star
cp all_web.star /tmp/ cd /tmp/
ls -Z all_web.star
-rw-rw-r-- auser auser user_u:object_r:tmp_t all_web.star
star -xattr -x -f all_web.star star: 11 blocks + 0 bytes (total of 112640 bytes = 110.00k). ls -Z /tmp/public_html/ /tmp/web_files/ /tmp/public_html/: -rw-rw-r-- auser auser ...httpd_sys_content_t 1.html -rw-rw-r-- auser auser ...httpd_sys_content_t 2.html -rw-rw-r-- auser auser ...httpd_sys_content_t 3.html -rw-rw-r-- auser auser ...httpd_sys_content_t 4.html -rw-rw-r-- auser auser ...httpd_sys_content_t 5.html -rw-rw-r-- auser auser ...httpd_sys_content_t index.html /tmp/web_files/: -rw-rw-r-- auser auser user_u:object_r:user_home_t 1.html -rw-rw-r-- auser auser user_u:object_r:user_home_t 2.html -rw-rw-r-- auser auser user_u:object_r:user_home_t 3.html -rw-rw-r-- auser auser user_u:object_r:user_home_t 4.html -rw-rw-r-- auser auser user_u:object_r:user_home_t 5.html -rw-rw-r-- auser auser user_u:object_r:user_home_t \ index.html
star -xattr -x -f all_web.star
star: 11 blocks + 0 bytes (total of 112640 bytes = 110.00k).
ls -Z /tmp/public_html/ /tmp/web_files/
/tmp/public_html/:
-rw-rw-r-- auser auser ...httpd_sys_content_t 1.html
-rw-rw-r-- auser auser ...httpd_sys_content_t 2.html
-rw-rw-r-- auser auser ...httpd_sys_content_t 3.html
-rw-rw-r-- auser auser ...httpd_sys_content_t 4.html
-rw-rw-r-- auser auser ...httpd_sys_content_t 5.html
-rw-rw-r-- auser auser ...httpd_sys_content_t index.html
/tmp/web_files/:
-rw-rw-r-- auser auser user_u:object_r:user_home_t 1.html
-rw-rw-r-- auser auser user_u:object_r:user_home_t 2.html
-rw-rw-r-- auser auser user_u:object_r:user_home_t 3.html
-rw-rw-r-- auser auser user_u:object_r:user_home_t 4.html
-rw-rw-r-- auser auser user_u:object_r:user_home_t 5.html
-rw-rw-r-- auser auser user_u:object_r:user_home_t \ index.html
/var/log/httpd/
に復元します。
star -xattr -H=exustar -c -f httpd_logs.star /var/log/httpd/
star -xattr -H=exustar -c -f httpd_logs.star /var/log/httpd/
50.2. SELinux の管理者コントロール
50.2.1. SELinux のステータス表示
~]# sestatus SELinux status: enabled SELinuxfs mount: /selinux Current mode: enforcing Mode from config file: enforcing Policy version: 21 Policy from config file: targeted
~]# sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: enforcing
Mode from config file: enforcing
Policy version: 21
Policy from config file: targeted
-v
オプションには、/etc/sestatus.conf
で指定された一連のファイルのセキュリティーコンテキストに関する情報が含まれます。
~]# sestatus -v SELinux status: enabled SELinuxfs mount: /selinux Current mode: enforcing Mode from config file: enforcing Policy version: 21 Policy from config file: targeted Process contexts: Current context: user_u:system_r:unconfined_t Init context: system_u:system_r:init_t /sbin/mingetty system_u:system_r:getty_t /usr/sbin/sshd system_u:system_r:unconfined_t:s0-s0:c0.c1023 File contexts: Controlling term: user_u:object_r:devpts_t /etc/passwd system_u:object_r:etc_t /etc/shadow system_u:object_r:shadow_t /bin/bash system_u:object_r:shell_exec_t /bin/login system_u:object_r:login_exec_t /bin/sh system_u:object_r:bin_t -> system_u:object_r:shell_exec_t /sbin/agetty system_u:object_r:getty_exec_t /sbin/init system_u:object_r:init_exec_t /sbin/mingetty system_u:object_r:getty_exec_t /usr/sbin/sshd system_u:object_r:sshd_exec_t /lib/libc.so.6 system_u:object_r:lib_t -> system_u:object_r:lib_t /lib/ld-linux.so.2 system_u:object_r:lib_t -> system_u:object_r:ld_so_t
~]# sestatus -v
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: enforcing
Mode from config file: enforcing
Policy version: 21
Policy from config file: targeted
Process contexts:
Current context: user_u:system_r:unconfined_t
Init context: system_u:system_r:init_t
/sbin/mingetty system_u:system_r:getty_t
/usr/sbin/sshd system_u:system_r:unconfined_t:s0-s0:c0.c1023
File contexts:
Controlling term: user_u:object_r:devpts_t
/etc/passwd system_u:object_r:etc_t
/etc/shadow system_u:object_r:shadow_t
/bin/bash system_u:object_r:shell_exec_t
/bin/login system_u:object_r:login_exec_t
/bin/sh system_u:object_r:bin_t -> system_u:object_r:shell_exec_t
/sbin/agetty system_u:object_r:getty_exec_t
/sbin/init system_u:object_r:init_exec_t
/sbin/mingetty system_u:object_r:getty_exec_t
/usr/sbin/sshd system_u:object_r:sshd_exec_t
/lib/libc.so.6 system_u:object_r:lib_t -> system_u:object_r:lib_t
/lib/ld-linux.so.2 system_u:object_r:lib_t -> system_u:object_r:ld_so_t
-b
は、ブール値の現在の状態を表示します。grep またはその他のツールと組み合わせて使用すると、特定のブール値のステータスを確認できます。
~]# sestatus -b | grep httpd | grep on$ httpd_builtin_scripting on httpd_disable_trans on httpd_enable_cgi on httpd_enable_homedirs on httpd_unified on
~]# sestatus -b | grep httpd | grep on$
httpd_builtin_scripting on
httpd_disable_trans on
httpd_enable_cgi on
httpd_enable_homedirs on
httpd_unified on
50.2.2. ファイルシステムの再ラベル付け
init を使用したファイルシステムの再ラベル付け
ファイルシステムの再ラベル付けに推奨される方法は、マシンを再起動することです。これにより、init
プロセスが再ラベル付けを実行し、アプリケーションの起動時に正しいラベルがあり、それらのラベルが適切な順序で開始されるようになります。再起動せずにファイルシステムに再ラベル付けすると、一部のプロセスが、誤ったコンテキストで実行し続ける可能性があります。すべてのデーモンが再起動し、正しいコンテキストで実行されていることを手作業で確認することは難しい場合があります。
touch /.autorelabel reboot
touch /.autorelabel
reboot
init.rc
は /.autorelabel
の存在をチェックします。このファイルが存在する場合は、SELinux が完全なファイルシステムの再ラベル付けを実行し( /sbin/fixfiles -f -F relabel コマンドを使用して)、/.autorelabel
を削除します。
修正ファイルを使用したファイルシステムの再ラベル付け
fixfiles コマンドを使用してファイルシステムの再ラベル付けをしたり、RPM データベースに基づいて再ラベル付けしたりできます。
fixfiles relabel
fixfiles relabel
fixfiles -R <packagename> restore
fixfiles -R <packagename> restore
/tmp/
を確実に再ラベル付けできないため、空の /tmp/
に対する承認を要求します。fixfiles は root として実行されるため、アプリケーションが依存している一時ファイルは消去されます。これにより、システムが不安定になったり、予期せず動作したりする可能性があります。
50.2.3. NFS ホームディレクトリーの管理
nfs_t
タイプがあります。これは、httpd_t
を実行できるタイプではありません。
nfs_t
に問題がある場合は、別のコンテキストでホームディレクトリーをマウントしてみてください。
mount -t nfs -o context=user_u:object_r:user_home_dir_t \ fileserver.example.com:/shared/homes/ /home
mount -t nfs -o context=user_u:object_r:user_home_dir_t \
fileserver.example.com:/shared/homes/ /home
50.2.4. ディレクトリーまたはツリーへのアクセスの付与
root_t
、tmp_t
、usr_t
など、多くのタイプがあります。これらのタイプは、機密情報を含まないディレクトリーや、広く読み取り可能にするディレクトリーに適しています。また、異なるコンテキストを持つよりセキュアなディレクトリーの親ディレクトリーに使用することもできます。
avc: denied
メッセージを使用する場合は、ディレクトリートラバーサルで発生する一般的な問題がいくつかあります。たとえば、多くのプログラムは、操作に必要なものではなく、ログに拒否メッセージを生成する ls -l / と同等のコマンドを実行します。そのためには、local.te
ファイルに dontaudit
ルールを作成する必要があります。
path=/
コンポーネントで誤作用しないようにしてください。このパスは、root ファイルシステム /
のラベルに関連しません。これは、実際にはデバイスノード上のファイルシステムのルートに相対的です。たとえば、/var/
ディレクトリーが LVM (論理ボリューム管理)にあるとします。 [22])デバイス /dev/dm-0。
デバイスノードは、メッセージ dev=dm-0 として識別されます
。この例では path=
/ が LVM デバイス dm-0
の最上位に表示されますが、これはルートファイルシステムの指定 /
と同じではありません。
50.2.5. システムのバックアップおよび復元
50.2.6. Enforcement の有効化または無効化
~]# sestatus | grep -i mode Current mode: permissive Mode from config file: permissive
~]# sestatus | grep -i mode
Current mode: permissive
Mode from config file: permissive
~]# setenforce 1 ~]# sestatus | grep -i mode Current mode: enforcing Mode from config file: permissive
~]# setenforce 1
~]# sestatus | grep -i mode
Current mode: enforcing
Mode from config file: permissive
名前付きデーモンと
SELinux のトラブルシューティングを行う場合は、そのデーモンのみの Enforcing をオフにできます。
~]# getsebool named_disable_trans named_disable_trans --> off
~]# getsebool named_disable_trans
named_disable_trans --> off
~]# setsebool named_disable_trans 1 ~]# getsebool named_disable_trans named_disable_trans --> on
~]# setsebool named_disable_trans 1
~]# getsebool named_disable_trans
named_disable_trans --> on
-P
オプションを使用して、再起動後も変更が永続化されるようにします。
~]# getsebool -a | grep disable.*on httpd_disable_trans=1 mysqld_disable_trans=1 ntpd_disable_trans=1
~]# getsebool -a | grep disable.*on
httpd_disable_trans=1
mysqld_disable_trans=1
ntpd_disable_trans=1
setsebool -P httpd_disable_trans=1 mysqld_disable_trans=1 ntpd_disable_trans=1
setsebool -P httpd_disable_trans=1 mysqld_disable_trans=1 ntpd_disable_trans=1
~]# getsebool httpd_disable_trans httpd_disable_trans --> off ~]# togglesebool httpd_disable_trans httpd_disable_trans: active
~]# getsebool httpd_disable_trans
httpd_disable_trans --> off
~]# togglesebool httpd_disable_trans
httpd_disable_trans: active
ランタイムブール値の変更
以下の手順に従って、GUI を使用してランタイムのブール値を変更します。
- SELinux タブをクリックし、SELinux ポリシーの変更 をクリックします。
- 選択リストで、Name Service エントリーの横にある矢印をクリックし、Disable SELinux protection for named daemon チェックボックスを選択します。
図50.1 Security Level Configuration ダイアログボックスを使用してランタイムのブール値を変更します。

[D]
50.2.7. SELinux の有効化または無効化
/etc/sysconfig/selinux
ファイルを編集できます。このファイルは、/etc/selinux/config
へのシンボリックリンクです。設定ファイルは自己説明的です。SELINUX
または SELINUXTYPE
の値を変更すると、SELinux のステータスと、次回システム起動時に使用するポリシーの名前が変更されます。
~]# cat /etc/sysconfig/selinux # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - SELinux is fully disabled. SELINUX=permissive # SELINUXTYPE= type of policy in use. Possible values are: # targeted - Only targeted network daemons are protected. # strict - Full SELinux protection. SELINUXTYPE=targeted # SETLOCALDEFS= Check local definition changes SETLOCALDEFS=0
~]# cat /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=permissive
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted
# SETLOCALDEFS= Check local definition changes
SETLOCALDEFS=0
GUI を使用した SELinux モードの変更
以下の手順に従って、GUI で SELinux のモードを変更します。
- SELinux タブをクリックします。
- SELinux の設定 で
Disabled
、Enforcing
、またはPermissive
のいずれかを選択し、 をクリックします。 有効
から 無効 に変更した場合や、
その逆の場合は、変更を有効にするためにマシンを再起動する必要があります。
/etc/sysconfig/selinux
に反映されます。
50.2.8. ポリシーの変更
/etc/sysconfig/selinux
で以下の行を変更します。
SELINUXTYPE=<policyname>
SELINUXTYPE=<policyname>
/etc/selinux/
の下のポリシー名ディレクトリーです。これは、カスタムポリシーがインストールされていることを前提としています。SELINUXTYPE
パラメーターを変更したら、以下のコマンドを実行します。
touch /.autorelabel reboot
touch /.autorelabel
reboot
- 必要なポリシーの完全なディレクトリー構造が
/etc/selinux
に存在することを確認します。 - SELinux タブをクリックします。
- Policy Type 一覧で読み込むポリシーを選択し、 をクリックします。このリストは、複数のポリシーがインストールされている場合にのみ表示されます。
- 変更を有効にするには、マシンを再起動します。
図50.2 Security Level Configuration ダイアログボックスを使用してカスタムポリシーをロードします。

[D]
50.2.9. 全ファイルシステムのセキュリティーコンテキストの指定
cifs_t
や nfs_t
などの genfs ラベルを取得するネットワークファイルシステムである可能性があります。
httpd_sys_content_t
に設定する必要があります。
mount -t nfs -o context=system_u:object_r:httpd_sys_content_t \ server1.example.com:/shared/scripts /var/www/cgi
mount -t nfs -o context=system_u:object_r:httpd_sys_content_t \
server1.example.com:/shared/scripts /var/www/cgi
/mnt
にファイルシステムをマウントし、/var/www/html/foo
へのシンボリックリンクがある場合は、セキュリティーコンテキストが 2 つあります。1 つのセキュリティーコンテキストはオブジェクトクラス file と、タイプ lnk_file のもう 1 つはポリシーによって処理されるため、予期せぬ動作が発生する可能性があります。
50.2.10. ファイルまたはディレクトリーのセキュリティーカテゴリーの変更
50.2.11. 特定のセキュリティーコンテキストでのコマンドの実行
~/bin/contexttest
はユーザー定義のスクリプトです。)
runcon -t httpd_t ~/bin/contexttest -ARG1 -ARG2
runcon -t httpd_t ~/bin/contexttest -ARG1 -ARG2
runcon user_u:system_r:httpd_t ~/bin/contexttest
runcon user_u:system_r:httpd_t ~/bin/contexttest
50.2.12. スクリプトの便利なコマンド
- getenforce
- このコマンドは、SELinux の Enforcing ステータスを返します。
- setenforce [ En for ssive | 1 | 0 ]
- このコマンドは、SELinux の Enforcing モードを制御します。オプション
1
またはEnforcing
は、SELinux に Enforcing モードに入るように指示します。オプション0
またはPermissive
オプションは、SELinux にパッシブモードに入るように指示します。アクセス違反は引き続きログに記録されますが、防止されません。 - selinuxenabled
- このコマンドは、SELinux が有効な場合はステータスが
0
で、SELinux が無効になっている場合は1
で終了します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ~]# selinuxenabled ~]# echo $? 0
~]# selinuxenabled ~]# echo $? 0
- getsebool [-a] [boolean_name]
- このコマンドは、すべてのブール値(
-a
)または特定のブール値(<boolean_name>)のステータスを表示し
ます。 - setsebool [-P] <boolean_name> value | bool1=val1 bool2=val2 ...
- このコマンドは、1 つ以上のブール値を設定します。
-P
オプションを使用すると、再起動後も変更が永続化されます。 - togglesebool boolean ...
- このコマンドは、1 つ以上のブール値の設定を切り替えます。これは、メモリーのみのブール値設定に影響します。変更は再起動後は維持されません。
50.2.13. 異なるロールへの変更
newrole -r <role_r> -t <type_t> [-- [ARGS]...]
newrole -r <role_r> -t <type_t> [-- [ARGS]...]
ARGS
は、/etc/passwd
ファイルのユーザーのエントリーで指定されたシェルに直接渡されます。
policycoreutils-newrole
パッケージの一部で、strict ポリシーまたは MLS ポリシーをインストールする場合に必要になります。Red Hat Enterprise Linux では、デフォルトではインストールされません。
50.2.14. リブートのタイミング
50.3. SELinux のアナリストコントロール
50.3.1. カーネル監査の有効化
/etc/grub.conf
ファイルまたは起動時に GRUB メニューのいずれかで、カーネルブート行に audit=1
パラメーターを追加します。
~/public_html
へのアクセスが拒否された場合の完全な監査ログエントリーの例です。audit (...)フィールドのタイムスタンプとシリアル番号のタイムスタンプは、それぞれ同一である点に注意してください。これにより、監査ログで特定のイベントを簡単に追跡できます。
Jan 15 08:03:56 hostname kernel: audit(1105805036.075:2392892): \ avc: denied { getattr } for pid=2239 exe=/usr/sbin/httpd \ path=/home/auser/public_html dev=hdb2 ino=921135 \ scontext=user_u:system_r:httpd_t \ tcontext=system_u:object_r:user_home_t tclass=dir
Jan 15 08:03:56 hostname kernel: audit(1105805036.075:2392892): \
avc: denied { getattr } for pid=2239 exe=/usr/sbin/httpd \
path=/home/auser/public_html dev=hdb2 ino=921135 \
scontext=user_u:system_r:httpd_t \
tcontext=system_u:object_r:user_home_t tclass=dir
Jan 15 08:03:56 hostname kernel: audit(1105805036.075:2392892): \ syscall=195 exit=4294967283 a0=9ef88e0 a1=bfecc0d4 a2=a97ff4 \ a3=bfecc0d4 items=1 pid=2239 loginuid=-1 uid=48 gid=48 euid=48 \ suid=48 fsuid=48 egid=48 sgid=48 fsgid=48
Jan 15 08:03:56 hostname kernel: audit(1105805036.075:2392892): \
syscall=195 exit=4294967283 a0=9ef88e0 a1=bfecc0d4 a2=a97ff4 \
a3=bfecc0d4 items=1 pid=2239 loginuid=-1 uid=48 gid=48 euid=48 \
suid=48 fsuid=48 egid=48 sgid=48 fsgid=48
Jan 15 08:03:56 hostname kernel: audit(1105805036.075:2392892): \ item=0 name=/home/auser/public_html inode=921135 dev=00:00
Jan 15 08:03:56 hostname kernel: audit(1105805036.075:2392892): \
item=0 name=/home/auser/public_html inode=921135 dev=00:00
/var/log/audit/audit.log
などの /var/log/messages
以外の場所に監査メッセージをキャプチャーできます。
50.3.2. ログのダンプと表示
/var/log/messages
にルーティングされます。標準の検索ユーティリティー( grepなど)のいずれかを使用して、avc
または audit
が含まれる行を検索できます。
第51章 SELinux ポリシーのカスタマイズ
51.1. はじめに
selinux-policy-targeted-sources
パッケージをインストールしてから、/etc/selinux/targeted/src/policy/domains/misc
ディレクトリーに local.te
ファイルを作成する必要がありました。audit2allow ユーティリティーを使用して、AVC メッセージを allow ルールに変換し、ポリシーを再構築して再読み込みできます。
selinux-policy-XYZ.src.rpm
をインストールする必要があります。selinux-policy-devel
パッケージも追加されており、さらにカスタマイズ機能が提供されます。
51.1.1. モジュールポリシー
51.1.1.1. ポリシーモジュールの一覧表示
~]# semodule -l amavis 1.1.0 ccs 1.0.0 clamav 1.1.0 dcc 1.1.0 evolution 1.1.0 iscsid 1.0.0 mozilla 1.1.0 mplayer 1.1.0 nagios 1.1.0 oddjob 1.0.1 pcscd 1.0.0 pyzor 1.1.0 razor 1.1.0 ricci 1.0.0 smartmon 1.1.0
~]# semodule -l
amavis 1.1.0
ccs 1.0.0
clamav 1.1.0
dcc 1.1.0
evolution 1.1.0
iscsid 1.0.0
mozilla 1.1.0
mplayer 1.1.0
nagios 1.1.0
oddjob 1.0.1
pcscd 1.0.0
pyzor 1.1.0
razor 1.1.0
ricci 1.0.0
smartmon 1.1.0
/usr/share/selinux/targeted/
ディレクトリーには、多数のポリシーパッケージ(*.pp)ファイルが含まれます。これらのファイルは selinux-policy
rpm に含まれており、ポリシーファイルの構築に使用されます。
51.2. ローカルポリシーモジュールの構築
type=AVC msg=audit(1164222416.269:22): avc: denied { use } for pid=1940 comm="setsebool" name="0" dev=devpts ino=2 \ scontext=system_u:system_r:semanage_t:s0 tcontext=system_u:system_r:init_t:s0 tclass=fd
type=AVC msg=audit(1164222416.269:22): avc: denied { use } for pid=1940 comm="setsebool" name="0" dev=devpts ino=2 \
scontext=system_u:system_r:semanage_t:s0 tcontext=system_u:system_r:init_t:s0 tclass=fd
51.2.1. audit2allow を使用したローカルポリシーモジュールの構築
audit.log
ファイルの特定のコンテンツに基づいてポリシーモジュールを構築します。
mysemanage.te
)を構築している。次に、checkmodule コマンドを実行してモジュールファイル(mysemanage.mod
)をコンパイルします。最後に、semodule_package コマンドを使用してポリシーパッケージ(mysemanage.pp
)を作成します。semodule_package コマンドは、異なるポリシーファイル(通常はモジュールとファイルコンテキストファイル)をポリシーパッケージに統合します。
51.2.2. Type Enforcement (TE)ファイルの分析
~]# cat mysemanag.te module mysemanage 1.0; require { class fd use; type init_t; type semanage_t; role system_r; }; allow semanage_t init_t:fd use;
~]# cat mysemanag.te
module mysemanage 1.0;
require {
class fd use;
type init_t;
type semanage_t;
role system_r;
};
allow semanage_t init_t:fd use;
dontaudit
に変更できます。
51.2.3. ポリシーパッケージの読み込み
~]# semodule -i mysemanage.pp
~]# semodule -i mysemanage.pp
mysemanage.pp
)を他のマシンにコピーして、semodule を使用してインストールすることもできます。
allow
ルールを dontaudit
に変更できることを意味します。次に、ポリシーパッケージを再コンパイルして再パッケージ化し、再度インストールできます。
第52章 References
書籍
- SELinux by Example
- Mayer, MacMillan, and CaplanPrentice Hall, 2007
チュートリアルおよびヘルプ
- Apache HTTP SELinux ポリシーの概要およびカスタマイズ
- Russell Coker のチュートリアルと講演
- 汎用 Writing SELinux ポリシー HOWTO
- Red Hat ナレッジベース
全般情報
- NSA SELinux のメイン Web サイト
- NSA SELinux FAQ
- Fedora SELinux FAQ
- SELinux NSA のオープンソースセキュリティー強化 Linux
Technology
- オブジェクトクラスおよびパーミッションの概要
- セキュリティーポリシーの Linux オペレーティングシステムへの柔軟なサポートの統合(Linux における Flask 実装の履歴)
- Linux セキュリティーモジュールとしての SELinux の実装
- Security-Enhanced Linux のセキュリティーポリシー設定
コミュニティー
- SELinux コミュニティーページ
- IRC
- irc.freenode.net, #rhel-selinux
履歴
- Flask のクイック履歴
- Fluke に関する完全な背景
パート VIII. Red Hat のお客様および認定
第53章 Red Hat のお客様および認定
53.1. Train に 3 つの方法
- 登録を開く
- オープン登録の取り組みは、米国および 125 以上の場所で、50 以上の場所で継続的に提供されます。Red Hat の取り組みは、少なくとも 1 つの専用システム、そしてある程度の 5 つの専用システムにアクセスできるパフォーマンスベースの学習者です。教師はすべて、経験のある Red Hat Certified Engineers (----------|-----s)で、その方針を熟知している方です。学習スケジュールは http://www.redhat.com/explore/trainingから入手できます。
- オンサイトセッション
- オンサイトトレーニングは、クラスごとに 12 - 16 のチームが Red Hat が提供しています。Red Hat の技術スタッフは、Red Hat Enterprise Linux、Red Hat、または JBoss の認定テストを実行する準備が整うため、技術スタッフが技術スタッフをサポートします。オンサイトは、大規模なグループを一度にトレーニングする優れた方法です。オープン登録は、後でインクリメンタルトレーニングに使用できます。詳細については、http://www.redhat.com/explore/onsiteをご覧ください。
- eLearning
- Red Hat Enterprise Linux 4 用の完全に更新されています !クラスの時間はありませんか ?Red Hat の e 関連タイトルはオンラインに提供され、RHCT およびvideo 追跡スキルについて説明します。また、拡張するカタログには、最新のプログラミング言語、スクリプト、および電子商取引も含まれます。当然の一覧については、http://www.redhat.com/explore/elearningにアクセスしてください。
53.2. Microsoft Certified Professional Resource Center
第54章 認定トラッキング
- Red Hat Certified Technician®(RHCT®)
- 3 年目に入り、Red Hat Certified Technician はすべての Linux で最速の認定であり、現在 15,000 以上の認定保持者となります。RHCT は、Linux 認証情報を確立するための最適な最初の手順であり、UNIX 以外の環境または Linux 環境から移行するための理想的な初期認定です。Red Hat の認定は、Linux にとって最善であると見なされており、おそらくすべての IT においてもそうです。Red Hat の認定プログラムは、経験のある Red Hat のエキスパートによってまったく対応し、実際のライブシステムでの能力を測定し、採用者や IT 担当者にとって大きな要求となります。適切な認定の選択は、お客様の背景と目標によって異なります。UNIX または Linux の高度な経験、最小限の経験、または Linux の経験がなくても、Red Hat のトレーニングと認定パスが適切です。
- Red Hat Certified Engineer®(NORMAL®)
- Red Hat Certified Engineer は 1999 年に開始され、20,000 を超える Linux エキスパートがもたらされています。独立した調査では、Linux 認定の "crown jewel" と呼ばれることが、すべての IT で #1 位にランク付けされました。
- Red Hat 認定セキュリティー(RHCSS)
- RHCSS には、現在のエンタープライズ環境のセキュリティー要件を満たすために、Red Hat Enterprise Linux、Red Hat Directory Server、および SELinux のセキュリティー知識と特殊なスキルがあります。RHCSS は、Red Hat の最新の認定であり、その種類の 1 つが Linux のみです。
- Red Hat 認定アーキテクト(NORMAL)
- 上級トレーニングをシークすると、エンタープライズアーキテクトへの登録と、新しく発表された Red Hat 認定アーキテクト(NORMAL)認定の能力を証明できます。Red Hat Certified Technician (RHCT)および Red Hat Certified Engineer (NORMAL)の認定を主な認定であり、Linux 分野で最も要求の認定です。
54.1. 無料の事前評価テスト
第55章 RH033: Red Hat Linux Essentials
55.1. 当然の説明
55.1.1. 前提条件
55.1.2. 目的
55.1.3. 対象者
55.1.4. 学習目的
- Linux ファイルシステムを理解する
- 一般的なファイルメンテナーンスを実行する
- GNOME インターフェイスの使用およびカスタマイズ
- コマンドラインから基本的な Linux コマンドを発行する
- GNOME GUI を使用して一般的なタスクを実行する
- vi エディターを使用してテキストドキュメントを開いた、編集、および保存します。
- ファイルアクセスのパーミッション
- X Window System のカスタマイズ
- 正規表現パターンの一致と I/O リダイレクト
- システムでパッケージをインストール、アップグレード、削除、およびクエリーします。
- ユーザーのネットワークユーティリティー
- パワーユーザーユーティリティー
55.1.5. フォローオンフォル
第56章 RH035: Red Hat Linux Essentials for Windows Professionals
56.1. 当然の説明
56.1.1. 前提条件
56.1.2. 目的
56.1.3. 対象者
56.1.4. 学習目的
- ソフトウェアのインストール、ネットワークの設定、認証の設定、およびグラフィカルツールを使用した各種サービスのインストールおよび設定方法
- Linux ファイルシステムを理解する
- コマンドラインから基本的な Linux コマンドを発行する
- ファイルアクセス権限の理解
- X Window System のカスタマイズ
- 正規表現パターンの一致と I/O リダイレクトの使用
56.1.5. フォローオンフォル
第57章 RH133: Red Hat Linux System Administration and Red Hat Certified Technician (RHCT) Certification
57.1. 当然の説明
57.1.1. 前提条件
57.1.2. 目的
57.1.3. 対象者
57.1.4. 学習目的
- Red Hat Linux の対話的なインストールとキックスタートによるインストール
- 一般的なシステムハードウェアの制御 - Linux 印刷サブシステムの管理
- Linux ファイルシステムの作成および維持
- ユーザーおよびグループの管理の実行
- ワークステーションと既存ネットワークの統合
- NIS、DNS、および DHCP サービスに対するクライアントとしてワークステーションを設定する
- at、cron、および anacron を使用してタスクを自動化します。
- テープおよび tar アーカイブへのファイルシステムのバックアップ
- RPM によるソフトウェアパッケージを操作します。
- X Window System および GNOME d.e を設定します。
- パフォーマンス、メモリー、およびプロセス mgmt を実行します。
- 基本的なホストセキュリティーの設定
57.1.5. フォローオンフォル
第58章 RH202 RHCT EXAM - すべての Linux で最も急速に広がった認証情報
- RHCT試験はRH133に含まれています。$349 用に独自に購入することもできます。
- RHCT の試験は、すべての RH133 クラスの 5 日目に実施
58.1. 当然の説明
58.1.1. 前提条件
第59章 RH253 Red Hat Linux Networking and Security Administration
59.1. 当然の説明
59.1.1. 前提条件
59.1.2. 目的
59.1.3. 対象者
59.1.4. 学習目的
- Red Hat Linux サーバー側のセットアップ、設定、および一般的なネットワークサービスの基本的な管理(DNS、NIS、Apache、SMB、DHCP、Sendmail、FTP)上のネットワークサービス。その他の一般的なサービス:tftp、pppd、proxy
- セキュリティーの概要
- セキュリティーポリシーの開発
- ローカルセキュリティー
- ファイルおよびファイルシステムのセキュリティー
- パスワードのセキュリティー
- カーネルセキュリティー
- ファイアウォールの基本要素
- Red Hat Linux ベースのセキュリティーツール
- 一休みの試みへの対応
- セキュリティーソースおよびメソッド
- OSS セキュリティーツールの概要
59.1.5. フォローオンフォル
第60章 RH300: knowledge course (RH300: track course) (および----------|-----試験)
60.1. 当然の説明
60.1.1. 前提条件
60.1.2. 目的
60.1.3. 対象者
60.1.4. 学習目的
- ハードウェアおよびインストール(x86 アーキテクチャー)
- 設定および管理
- 代替インストール方法
- カーネルサービスおよび設定
- 標準のネットワークサービス
- X ウィンドウシステム
- ユーザーとホストのセキュリティー
- ルーター、ファイアウォール、クラスター、およびトラブルシューティング
60.1.5. フォローオンフォル
第61章 RH302 RHCE EXAM
- 試験は RH300 に含まれています。独自に購入することもできます。
- すべての RH300 クラスの 5 日目に実施
61.1. 当然の説明
61.1.1. 前提条件
61.1.2. コンテンツ
- セクション I: トラブルシューティングとシステムメンテナーンス(2.5 hrs)
- セクション II: インストールと設定(3 クリス)
第62章 RHS333: Red Hat のエンタープライズセキュリティー:ネットワークサービス
62.1. 当然の説明
62.1.1. 前提条件
62.1.2. 目的
62.1.3. 対象者
62.1.4. 学習目的
- 基本的なサービスセキュリティーのマスター
- 暗号化について
- システムアクティビティーのロギング
- BIND および DNS のセキュア化
- ネットワークユーザー認証のセキュリティー
- NFS セキュリティーの強化
- セキュアシェル:OpenSSH
- Sendmail および Postfix による電子メールのセキュア化
- FTP アクセスの管理
- Apache セキュリティー
- 侵入応答の基本
62.1.5. フォローオンフォル
第63章 RH401: Red Hat エンタープライズ 導入およびシステム管理
63.1. 当然の説明
63.1.1. 前提条件
63.1.2. 目的
63.1.3. 対象者
63.1.4. 学習目的
- CVS を使用した設定管理
- カスタム RPM パッケージの構築
- Red Hat Network Proxy Server によるソフトウェア管理
- ホストのプロビジョニングおよび管理システムのアセンブル
- パフォーマンスチューニングおよび分析
- 高可用性ネットワーク負荷分散クラスター
- 高可用性アプリケーションのフェイルオーバークラスター
63.1.5. フォローオンフォル
第64章 RH423: Red Hat Enterprise Directory サービスと認証
64.1. 当然の説明
64.1.1. 前提条件
64.1.2. 目的
64.1.3. 対象者
64.1.4. 学習目的
- LDAP の基本概念
- OpenLDAP サーバーの設定および管理方法
- Using LDAP as a "white pages" directory service
- ユーザー認証および管理での LDAP の使用
- 複数の LDAP サーバーの統合
64.1.5. フォローオンフォル
第65章 SELinux で
65.1. RHS427: SELinux と Red Hat Targeted ポリシーの概要
65.1.1. 対象者
65.1.2. 当然サマリー
65.2. RHS429: Red Hat Enterprise SELinux ポリシー管理
第66章 RH436: Red Hat Enterprise Storage Management
- 5 つのサーバー
- ストレージアレイ
66.1. 当然の説明
66.1.1. 前提条件
66.1.2. 目的
66.1.3. 対象者
66.1.4. 学習目的
- Red Hat Enterprise Linux ストレージ管理テクノロジーを確認する
- データストレージ設計:データ共有
- Cluster Suite の概要
- Global File System (GFS)の概要
- GFS 管理
- オンラインの GFS 環境の変更:データ容量の管理
- GFS の監視
- GFS 変更を実装
- クラスタースイート NFS の DAS から GFS への移行
- GFS を使用したクラスタースイートの再検討
66.1.5. フォローオンフォル
第67章 RH442: Red Hat Enterprise システムの監視およびパフォーマンスチューニング
67.1. 当然の説明
67.1.1. 前提条件
67.1.2. 目的
- システムアーキテクチャーとシステムパフォーマンスのシステムアーキテクチャーの影響を理解することに重点を置いた説明
- パフォーマンス調整の影響をテストする方法(benchmarking)
- オープンソースのベンチマークユーティリティー
- システムのパフォーマンスおよびネットワークパフォーマンスを分析する方法
- 特定のアプリケーション負荷に対する設定のチューニング
67.1.3. 対象者
67.1.4. 学習目的
- システムパフォーマンスに関連するシステムコンポーネントおよびアーキテクチャーの概要
- 製造元のハードウェア仕様を有用な情報に変換する
- 標準の監視ツールを効果的に使用してトレンド情報を収集および分析
- SNMP でのパフォーマンス関連のデータの収集
- オープンソースのベンチマークユーティリティーの使用
- ネットワークパフォーマンスチューニング
- アプリケーションのパフォーマンスチューニングに関する考慮事項
- 特定の設定のチューニング
67.1.5. フォローオンフォル
第68章 Red Hat Enterprise Linux 開発者
68.1. RHD143: Red Hat Linux Programming Essentials
68.2. RHD221 Red Hat Linux デバイスドライバー
68.3. RHD236 Red Hat Linux Kernel Internals
68.4. RHD256 Red Hat Linux アプリケーション開発および移植
第69章 JBoss 社
69.1. RHD161 JBoss および EJB3 for Java
69.1.1. 前提条件
- 継承、ポリモーフィズム、カプセル化のオブジェクト指向の概念
- Java 構文(データタイプ、変数、演算子、ステートメント、制御フロー用)
- Java クラスの作成、および Java インターフェイスおよび抽象クラスの使用
69.2. RHD163 JBoss for Web Developers
69.2.1. 前提条件
- JNDI
- Servlet 2.3/2.4 API
- The JSP 2.0 API
- JBoss Application Server での J2EE アプリケーション開発およびデプロイメント
- 組み込み(スタンドアロン)Tomcat または統合された Tomcat (JBossWeb)への Web アプリケーションのデプロイメント
- JDBC および EJB2.1 または EJB3.0 の実務知識
69.3. RHD167: JBOSS - HIBERNATE ESSENTIALS
69.3.1. 前提条件
- リレーショナル永続化モデルを理解している
- Java 言語での競合
- OOAD の概念に関する知識
- UML に精通している
- SQL のダイアレクトの使用経験
- JDK を使用してコマンドラインから Java 実行可能ファイルのコンパイルおよび実行に必要な環境を作成する
- JDB を理解していること
69.3.2. 当然サマリー
69.4. RHD267: JBOSS - ADVANCED HIBERNATE
69.4.1. 前提条件
- Hibernate の基本知識。
- Java 言語での競合
- OOAD の概念に関する知識
- UML に精通している
- SQL のダイアレクトの使用経験
- JDK を使用して、コマンドラインから Java 実行可能ファイルのコンパイルおよび実行に必要な環境を作成します。
- JNDI および JDBC の豊富な経験または包括的な知識。
- 前提条件ではなく、エンティティー EJB2.1 または EJB3.0 の知識が役立ちます。
- Christian Bauer および Gavin King (Manning によって公開)によると、Hibernate in Action を読む前に推奨されます。
69.5. RHD261:JBOSS for advanced J2EE developers
69.5.1. 前提条件
- JNDI
- JDBC
- サーブレットとJSP
- Enterprise Java Beans
- JMS
- J2EE セキュリティーモデル
- JBoss アプリケーションへの J2EE アプリケーションの開発およびデプロイ
- ANT および XDoclet または同様のテクノロジーの使用経験。
69.6. RH336: 管理者向けの JBOSS
69.6.1. 前提条件
- ディレクトリー、ファイルの作成、およびファイルストアへのアクセス権限の変更
- JDK のインストール
- オペレーティングシステム用の JAVA_HOME などの環境変数の設定
- Java アプリケーションの起動と、Java アプリケーションを起動する OS 依存スクリプトの実行
- Java アーカイブファイルの作成および拡張(jar ユーティリティー)
69.6.2. 当然サマリー
69.7. RHD439: JBoss Clustering
69.7.1. 前提条件
- JTA、トランザクション、Java 並行処理
- EJB 2.1、JMS、信頼できるメッセージング技術
- Apache httpd と mod_jk や mod_proxy への何らかの公開経験
- JBoss AS マイクロカーネルと JMX に精通している
- TCP/IP、UDP、マルチキャストについて
69.8. RHD449: JBoss jBPM
69.8.1. 説明
69.8.2. 前提条件
- 学生は、Hibernate アプリケーションの開発経験が必要です。学生は、Hibernate 用のシンプルなセッションファクトリーの設定方法、Hibernate Session およびトランザクション境界を利用する方法、および Hibernate オブジェクトで基本的なクエリーを実行する方法を知っている必要があります。
- Java アプリケーション開発との競合
- ワークフローとビジネスプロセスモデラー(BPM)の概念に対する以前の公開は必要ありません。
- JBoss プラグインを使用した JBoss Eclipse または Eclipse IDE の使用が推奨されていますが、必須ではありません。
- JUnit テストフレームワークの基本概念が推奨されます。
69.9. RHD451 JBoss Rules
69.9.1. 前提条件
- 基本的な Java 競合
- 推論規則エンジンとスクリプトエンジンの設定についての理解
- 対象ルールの表示とデモが推奨されますが、必須ではありません。
- Java EE 固有の経験は必須ではありませんが、Java EE との統合方法を学ぶ必要のある方は適切な経験が必要です。
付録A 更新履歴
改訂履歴 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
改訂 11-1 | Tue 30 Jun 2015 | ||||||||||||
| |||||||||||||
改訂 11-0 | Fri 12 Sep 2014 | ||||||||||||
| |||||||||||||
改訂 10-0 | Tue 01 Oct 2013 | ||||||||||||
| |||||||||||||
改訂 9-6 | Tue Jan 08 2013 | ||||||||||||
| |||||||||||||
改訂 8-0 | Tue Feb 21 2012 | ||||||||||||
| |||||||||||||
改訂 7-0 | Thu Jul 21 2011 | ||||||||||||
| |||||||||||||
改訂 6-0 | Thu Jan 13 2011 | ||||||||||||
| |||||||||||||
改訂 5-0 | Thu July 30 2010 | ||||||||||||
| |||||||||||||
改訂 4-2 | Wed Sep 30 2009 | , , | |||||||||||
| |||||||||||||
改訂 4-1 | Mon Sep 14 2009 | ||||||||||||
| |||||||||||||
改訂 4-0 | Wed Sep 02 2009 | ||||||||||||
| |||||||||||||
改訂 3-0 | Wed Jan 28 2009 | ||||||||||||
|
付録B コロンフィン
- east Asian Languages
- 簡体字中国語
- Tony Tongjie Fu
- Simon Xi Huang
- Leah Wei Liu
- Sarah Saiying Wang
- 繁体字中国語
- Chester Cheng
- Terry Chuang
- Bu Hung-Pin Wu
- 日本語
- Kiyoto Hashida
- Junko Ito
- Noriko Mizumoto
- Takuro Nagamoto
- 韓国語
- Eun-ju Kim
- Michelle Kim
- Latin 言語
- フランス語
- Jean-Paul Aubry
- Fabien Decroux
- Myriam Malga
- Audrey Simons
- Corina Roe
- ドイツ語
- Jasna Dimanoski
- Verena Furhuer
- Bernd Groh
- Daniela Kugelmann
- Timo Trinks
- イタリア語
- Francesco Valente
- ブラジルポルトガル語
- Glaucia de Freitas
- Leticia de Lima
- David Barzilay
- スペイン語
- Angela Garcia
- Gladys Guerrero
- Yelitza Louze
- Manuel Ospina
- ロシア語
- Yuliya Poyarkova
- Indic 言語
- Bengali
- Runa Bhattacharjee
- グjarati
- Ankitkumar Rameshchandra Patel
- Sweta Kothari
- Hindi
- Rajesh Ranjan
- マレーナム
- Ani Peter
- Marathi
- Sandeep Shedmake
- Punjabi
- Amanpreet Singh Alam
- Jaswinder Singh
- Tamil
- I Felix
- N Jayaradha