改訂第二版 CentOSサーバ構築バイブル
Part1 │ ようこそCentOSワールドへ
1-1 この書籍について
本書の特徴
基本方針
対応するCentOSのバージョン
想定読者
ゴール
1-2 CentOSを知ろう
CentOSの誕生とその生い立ち
CentOSと他のディストリビューションとの関係
コラム いろいろなLinuxたち
CentOSの最新バージョン、CentOS 5.3の概要
CentOSの向き不向き
CentOSの公式サイトを歩こう
CentOSの日本語で情報共有を行っているコミュニティやサイト
RHELの情報も活用しよう
CentOS非標準のパッケージ配布
コラム 苦手な英語サイトを克服できるか Japanizeを利用してみよう

Part2 │ CentOSのインストール
2-1 CentOSの入手方法
CentOSの入手先とバージョン
入手できるファイルの形式
メディアの購入方法
2-2 CentOSのインストール
インストールのハードウェア要件
インストーラの起動
2-3 パーティションの分割
パーティションを分割する意味
LVMとは
パーティション分割の指針
2-4 CentOSのネットワークインストール
ネットワークインストールの要件
インストーラの起動
2-5 KickStart
KickStartとは
ネットワークインストール環境の準備
KickStart構成ファイル(ks.cfg)の記述
パッケージの指定
KickStartのカスタマイズ
CentOS 5.3のタイムゾーンのバグ回避
2-6 追加ドライバディスクを使ったインストール
インストーラの起動
追加ドライバディスクの認識
2-7 ブートプロセスとランレベル
CentOSのブートプロセス
システムのブートプロセス
ランレベル(runlevel)
サービス起動スクリプト

Part3 │ システム管理
3-1 システム管理の基本
システム管理の範囲
システム情報の採取[sosreport]
システム起動時のログ
procファイルシステム
トラブル発生時の基本操作[レスキューモードでの起動]
3-2 ディスク管理
ディスクの検査
コラム fsckコマンドによる不良ブロックのチェック
ディスク容量のチェック
コアファイルのチェックと削除
すべてのユーザーが書き込み可能なファイルのチェックと削除
コラム FTPサーバの空き容量の確認
3-3 ディスククォータを利用したディスク領域の使用量制限
ディスククォータ利用の準備
ディスククォータの概要
ディスククォータの管理情報ファイルの作成
ディスククォータの有効化
ディスククォータの設定変更
その他の操作
3-4 RAIDを使った冗長性の確保
RAIDの冗長化レベル
RAIDの信頼性
ハードウェアRAIDとソフトウェアRAID
ソフトウェアRAID環境の作成
ソフトウェアRAIDの障害テスト(シミュレーション)
ソフトウェアRAIDの障害テスト(物理的な着脱)
ディスクの差し込み
3-5 LVMによるディスクの管理
パーティション方式の悩み
LVMとは
LVMの基本操作
オンライン拡張機能
LVMのスナップショット機能
スナップショットLVを使ったバックアップ
3-6 メモリ管理
物理メモリの情報
仮想メモリの統計情報
メモリの使用状況
Memory OvercommitとOOM Killer
システム起動時に自動的に反映させる方法
3-7 ファイルシステムの検査
シングルユーザーモードへの移行
ファイルシステムの検査と修復
3-8 プロセス管理
プロセス情報の収集
プロセスの優先度を変更する
プロセスの終了
プロセスの監視
3-9 パッケージ管理
パッケージの管理の重要性
CentOSのパッケージ管理
コラム RPMデータベースが壊れたら
パッケージ管理ツール「Yum」
3-10 ネットワーク管理
ネットワークインターフェイスの状況確認
ネットワークの疎通確認
通信経路の確認
ネットワークインターフェイスの停止と再起動
オープンポートの確認
3-1 1 グループとユーザー
新規ユーザーの登録とユーザーの削除
グループの設定
ユーザーの有効期限
Part4 │ ネットワークの設定
4-1 ネットワークの構成
本書のネットワーク構成
4-2 ネットワークインターフェイスの設定変更と追加
ネットワークインターフェイス設定の確認
システム管理ツールを使ったネットワーク設定の変更
ネットワークカードの追加と設定
4-3 さまざまなネットワーク設定ファイル
Linuxのネットワーク設定ファイル
CentOSのシステム設定ファイル
4-4 スーパーデーモン(xinetd)
xinetdのインストール
xinetdの設定ファイル
telnetサービスのインストール
xinetd管理下のサービスの設定ファイル
telnetサービスの有効化
サービスの起動と停止
4-5 リモートシェルサービス(OpenSSH)
SSHでの接続方法
SSHの認証のしくみ
OpenSSHのインストール
OpenSSHサービスの設定
サービスの起動と停止
公開鍵暗号認証
SSHを使ったファイルコピー(scp)
SSHを使ったファイル制御(sftp)
4-6 DHCPサービス(dhcpd)
DHCPサービスのインストールと簡単な運用方法
DHCPサービスの開始
DHCPサービスの設定例
DHCPサービスとDNSの連携(Dynamic DNS)
4-7 時刻同期サーバ(NTP)
ntpのインストール
NTPの設定
NTPサーバの情報取得
別のコンピュータへのNTPサービスの提供
自動起動を有効化
サービスの起動と停止

Part5 │ LDAPサーバの構築
5-1 LDAPの基礎知識
ディレクトリサービスとは
さまざまなサービスをサポートできるLDAP
LDAPを設定する前に
5-2 ユーザー認証をLDAPで行う
LDAPサーバ/クライアントのインストール
LDAPサーバの設定
LDAPサーバの起動
基本データベースの作成
クライアントの設定
パスワードを変更する
5-3 LDAPを管理する
情報を追加する[ldapaddコマンド]
LDAPの検索を行う[ldapsearchコマンド]
情報を変更する[ldapmodifyコマンド]
情報を削除する[ldapdeleteコマンド]
10
5-4 SambaとLDAPでWindowsドメインコントローラを構築する
必要なファイルのセットアップ
支援ツールのセットアップ
Sambaの設定変更[ドメインコントローラの起動]
運用しよう
5-5 ApacheとLDAPを連携する
設定ファイルの編集
実際に動作を確認する
5-6 メールサーバとLDAPを連携する(Postfix&Dovecot)
Postfixの設定
Dovecotの設定

Part6 │ データベースサーバの設定
6-1 データベースサーバの基礎知識
6-2 MySQLのインストールと設定
MySQLとは
MySQLのインストール
rootユーザーの設定
データベースの作成と削除
文字コードの確認と変更
接続ユーザーの作成と削除
管理用のGUIアプリケーション
6-3 PostgreSQLのインストールと設定
PostgreSQLとは
PostgreSQLのインストール
Postgresユーザーの設定
データベースの作成と削除
接続ユーザーの作成と削除
管理用のGUIアプリケーション
11

Part7 │ DNSサーバの構築
7-1 DNSの基礎知識
DNSとは
DNSのしくみ
DNSサーバを運用するシチュエーション
7-2 BINDのインストール
BINDのインストール
named.confのコピー
BINDの起動と停止
7-3 BINDの設定
使用するnamed.confを確認する
設定ファイル「named.conf」の記述方法
ゾーンファイルの設定
BINDの設定例
コラム 単位とコメントの設定
コラム よくあるトラブルシューティング
7-4 ダイナミックDNSを利用する
ダイナミックDNSサービスとは
ダイナミックDNSの設定方法

Part8 │ Webサーバ
8-1 Apacheの特徴とインストール
Apacheとは
Apacheの特徴
Apacheのインストール
8-2 Apacheの設定
主要な設定項目
設定変更と動作確認
設定用のGUIアプリケーション
12
8-3 SSLを使用する
SSLとは
SSLのインストール
SSLの設定
8-4 PHPを使用する
PHPとは
PHPのインストール
PHPの動作確認
PHPアプリケーションの導入例[PukiWiki]
PHPアプリケーションの導入例[WordPress]

Part9 │ メールサーバの構築
9-1 メール配送の基礎知識
メール配送のしくみ
コラム DNSBLとSPF
9-2 Sendmailの設定
Sendmailのインストール
Sendmailの基本的な設定
コマンドラインからのメール配送テスト
メールアドレスを作成する
サブミッション/ SMTP認証の有効化
9-3 Postfixの設定
Postfixのインストール
Postfixの基本設定
現在の設定の確認
SendmailからPostfixに切り替えて起動する
Postfixの自動起動設定
メールアドレスを作成する
エイリアスの設定
サブミッションポート/ SMTP認証を設定する
自宅サーバ向け設定
バーチャルドメイン設定
SPFを設定する[DNS設定]
SPFを設定する[MTA設定]
9-4 POP3/IMAPサーバ「Dovecot」の構築と設定
Dovecotのインストール
POP3S/IMAPSの設定・証明書の設定
メールソフトの設定
9-5 メーリングリスト管理ソフト「Mailman」
インストール
初期設定
Webサーバの設定
管理用メーリングリスト(mailman)の作成
Mailmanの起動
ML作成
メーリングリストの削除
管理画面へのアクセス
よく使うコマンド解説
設定の確認方法
Mailman設定ファイルの修正

Part10 │ ファイルサーバの構築
10-1 Sambaの設定と運用
Sambaの機能
Sambaのインストール
アップデートパッケージの確認とアップデート
Sambaのデーモンと関連サービス
Sambaの設定
コラム Sambaは、Active Directoryドメインコントローラの夢を見るか
コラム 季節に関わらず登場する「お化け」
設定ファイルの確認
ユーザー管理
コラム smbpasswdからtdbsamへのユーザーデータ移行
コラム パスワード有効期限の設定
Samba Serverの起動
Samba Serverのテスト
コラム MacOS 10.4.x(Tiger)以前のバージョンからの接続
コラム MacOSにおけるファイル共有の選択肢
不具合の調整
コラム 「.DS_Store」という存在
コラム 「ごみ箱」をしかける
トラブルシューティングの道しるべ
コラム GUIツールの利用(SWATとWebmin)
10-2 UNIX固有のファイル共有サービス「NFS」
NFS利用の準備
コラム portmapperで使用しているポート番号の確認
サーバの設定
コラム 再エクスポートとアンエクスポート
クライアントからのアクセス
10-3 汎用的なファイル共有システム「WebDAV」
WebDAV使用の準備
アクセス制御
10-4 ファイル転送サービス(vsftpd)
vsftpdのインストールと設定
サービスの起動と停止
サービスの自動起動
匿名FTPサーバ構築時の推奨設定

Part11 │ メンテナンス
11-1 システム管理ツール「MRTG」
MRTGとは
MRTGのしくみ
コラム LinuxOSで使われるSNMP
MRTGのインストール前の準備
コラム 確認なしでインストールする
コラム コミュニティの制限
コラム SNMPのバージョン
MRTGのインストール
MRTGの基本設定
コラム mrtg.cfgの文法
MRTGの起動と動作確認
コラム シェル変数「LANG」をセットしている理由
日本語環境での利用
CPU利用状況の表示
メモリ利用状況の表示
ハードディスク利用状況の表示
MRTGのデータ自動更新
インデックスページの作成
11-2 Webログ管理ツール「Webalizer」
Webalizerとは
Webalizerのしくみ
Webalizerのインストール
Webalizerの基本設定
コラム さらにグループ化する
コラム 検索フレーズのキー
ワーキングディレクトリの設定
動作確認
日本語表示
検索文字列の文字化けを解消する
11-3 バックアップ
tarを使ったバックアップ
テープドライブへのバックアップ
dump/restoreを使ったバックアップ

Part12 │ セキュリティ
12-1 セキュリティを知ろう
セキュリティの定義と本書での取り扱い
CentOSで実現できるセキュリティ確保の施策
コラム セキュリティって結局何をすればいいの?
12-2 パケットフィルタリング
パケットフィルタとは?
iptablesの特徴
コラム NATとNAPT、IPマスカレード
コラム ip6tables(iptables-ipv6)とIPv6
iptablesのインストールとファイル構成の確認
iptables関連のコマンドの使い方
iptables関連の設定ファイル
iptablesの自動起動と手動起動
その他のファイル群
iptablesのルールを管理しよう
その他のiptablesのさまざまな拡張機能
ルールを編集することに慣れてないときのTips
コラム ルール構築時のネットワーク環境に注意
想定環境の定義とルール構築前の準備
実際のルール構築
コラム なぜ既存の設定を削除するのか?
iptablesをらくらく操作するツールたち
12-3 コンテンツフィルタリング
コンテンツフィルタリングの目的
CentOSでコンテンツフィルタリングを実現するには
squidのインストール
squidの基本的な設定
コラム サーバ名を指定していない場合
クライアントアプリケーションの設定と動作確認
コラム プロキシーのBasic認証を指定したい場合
コラム 環境設定で設定したプロキシーの設定を再起動時にシステム全体で有効にす
るには
その他の設定方法
squidのその他の設定を試す
サーバ構成と運用に即したチューニングを検討
コラム キャッシュディレクトリの変更や追加時には実ディレクトリの作成を忘れず

12-4 SELinux
SELinuxとは
SELinuxの機能
SELinuxの基本設定
SELinuxのポリシー
SELinuxのツール
コラム auditd機能について
実践編? ログからポリシを自動生成
実践編? system-config-selinuxから雛形を生成し、ポリシーを作成する
まとめ

Part13 │ CentOSのマイグレーション
13-1 CentOS 4からのマイグレーション
CentOS 5へのアップグレードインストール
yumの設定のマイグレーション
Apacheの設定、およびデータのマイグレーション
MySQLの設定、およびデータのマイグレーション
PostgreSQLの設定、およびデータのマイグレーション
PHPの設定のマイグレーション
コラム マイグレーションに役立つ情報源
13-2 Red Hat Enterprise Linux 5へのマイグレーション
一般ユーザーアカウントのマイグレーション
一般ユーザーアカウントのデータのマイグレーション
Apacheのマイグレーション
MySQLのマイグレーション
PostgreSQLのマイグレーション
Sambaのマイグレーション
OpenSSHのマイグレーション
Sendmailのマイグレーション
Appendix-1 CentOS 5.3 LiveCDについて
Appendix-2 本書に関連するネットワーク情報