CentOS 8で作るネットワークサーバ構築ガイド (単行本)
CentOSは安定性が高く、導入・運用しやすい環境が整っているためサーバ用途に非常に適しています。本書は、CentOS 8を使ってサーバ構築をする人のために、必要な知識や考え方などを徹底的に記載した解説書です。ネットワークやセキュリティの基礎知識から、各種サーバの構築、運用管理、仮想化やSSL/TLS証明書の作成、さらにレガシーサーバの取り扱いまで幅広く網羅しています。CentOS Linux8 8.1[1911] x86_64対応。
0.1 はじめに
0.2 知っておいていただきたいこと
0.2.1 基本となる環境について
0.2.2 表記方法について
0.2.3 パッケージのインストールについて
0.2.4 ご注意
0.3 本書の読み進め方
0.4 参考文献
Part Ⅰ ネットワークサーバ構築の基礎
Chapter 1 LinuxとCentOSの概要
1.1 Linuxについて
1.1.1 Linuxの誕生
1.1.2 Linuxと関連団体
1.1.3 Linuxカーネル
1.1.4 Linuxディストリビューション
1.2 CentOSについて
1.2.1 CentOSの概要
1.2.2 CentOS 8までの推移
1.2.3 CentOS 8の特徴
1.2.4 CentOS 8のハードウェア要件
Chapter 2 ネットワークの基礎
2.1 TCP/IPとインターネット
2.1.1 インターネットの誕生
2.1.2 TCP/IPの誕生
2.1.3 RFC
2.2 TCP/IPの4層モデル
2.3 ネットワーク層
2.3.1 イーサネット
2.3.2 ARP・RARP
2.3.3 PPP・PPPoE
2.4 インターネット層
2.4.1 IPv4
2.4.2 IPv6
2.5 トランスポート層
2.5.1 TCP
2.5.2 UDP
2.5.3 ICMP・ICMPv6
2.5.4 ポート番号
2.6 アプリケーション層
Chapter 3 セキュリティの基礎
3.1 セキュリティ上の問題
3.1.1 サーバへの不正侵入
3.1.2 サーバの不正利用
3.1.3 情報の漏洩
3.1.4 コンピュータウィルスへの感染
3.2 基本的なセキュリティ施策
3.2.1 ハードウェアの保護
3.2.2 BIOSの設定
3.2.3 ブートローダの設定
3.2.4 システムパスワードの保護
3.2.5 ソフトウェアのアップデート
3.2.6 システムログのチェック
3.2.7 ファイアウォールの設定
3.2.8 SELinuxの利用
3.2.9 SSSDの利用
3.2.10 暗号化ポリシーの適用
3.2.11 セキュリティポリシーの策定
3.3 ネットワークのセキュリティ
3.3.1 ファイアウォール
3.3.2 DMZの設置
3.3.3 ネットワークの監視
3.4 サービスのセキュリティ
3.4.1 サービスの選別
3.4.2 サービスの状況把握
3.4.3 サービス共通の施策
3.5 安全なネットワークモデルの構築
3.5.1 シンプルなネットワーク構成
3.5.2 DMZを持ったネットワーク構成
3.5.3 サーバの設置場所
3.6 セキュリティ情報の収集
3.6.1 セキュリティ情報サイト
3.6.2 CentOSのセキュリティアップデート情報
Part Ⅱ 基本環境の構築
Chapter 4 CentOSのインストール
4.1 インストールの概略
4.1.1 インストール前に調べておくこと
4.1.2 RAID
4.1.3 LVM
4.1.4 パーティション構成
4.1.5 ファイルシステム
4.2 インストールの準備
4.2.1 イメージのダウンロード
4.2.2 インストール形態
4.3 インストールメニュー
4.3.1 メインメニュー
4.3.2 トラブルシューティングメニュー
4.3.3 ブートローダ編集メニュー
4.4 グラフィカルモードによるインストール
4.4.1 Welcome to CentOS Linux 8
4.4.2 インストール概要
4.4.3 ユーザーの作成
4.5 インストール後の設定
4.5.1 ライセンス情報
4.5.2 ようこそ
4.5.3 入力メソッド
4.5.4 プライバシー
4.5.5 オンラインアカウント
4.5.6 準備完了
4.6 インストールと基本設定が終わったら
4.6.1 システムを最新にアップデートする
4.6.2 システムの再設定
Chapter 5 パッケージのメンテナンス
5.1 パッケージの概要
5.1.1 RPMとは
5.1.2 ソースプログラムについて
5.1.3 パッケージファイル名の構成
5.1.4 GPGによる署名
5.1.5 パッケージの操作
5.2 dnfによるパッケージ操作
5.2.1 dnfの概要
5.2.2 dnfの動作設定
5.2.3 dnfの基本操作
5.2.4 パッケージのインストール
5.2.5 パッケージのリスト
5.2.6 パッケージのアップデート
5.2.7 パッケージの検索
5.2.8 パッケージの削除
5.2.9 モジュールの利用
5.3 パッケージインストール/アップデート手順の実際
5.3.1 インターネット上のリポジトリからパッケージをインストール/アップデート
5.3.2 メディアのリポジトリからパッケージをインストール
5.3.3 メディアからパッケージファイルを指定してインストール
5.3.4 メディアのマウントとアンマウント
5.4 dnfの自動実行設定
5.4.1 パッケージのインストール
5.4.2 dnf-automaticサービス
5.4.3 dnf-automaticの設定
Chapter 6 SELinux
6.1 SELinuxの概要
6.1.1 Linuxに存在する危険
6.1.2 SELinuxの機能特徴
6.1.3 SELinuxで守れないもの
6.1.4 セキュリティコンテキストとポリシー
6.2 SELinuxの基本設定
6.2.1 SELinuxの動作モード
6.2.2 動作モードの指定
6.2.3 動作モードの確認と変更
6.2.4 論理パラメータの修正
6.3 SELinux環境の調査と調整
6.3.1 SELinux状態の表示(sestatus)
6.3.2 セキュリティコンテキスト関連コマンド
6.3.3 アクセス制御ルール関連コマンド
6.3.4 ファイルコンテキストの一時的な変更
6.3.5 ファイルコンテキストの回復
6.3.6 ファイルコンテキストの再設定
6.3.7 定期的なファイルコンテキストの確認
6.4 SELinux環境でのファイル管理
6.4.1 ファイルのコピー
6.4.2 ファイルのバックアップ
6.5 avcログ
6.6 SELinuxセキュリティ設定の管理(semanage)
6.6.1 policycoreutils-python-utilsパッケージ
6.6.2 ファイルコンテキスト設定
6.6.3 通信ポートのセキュリティコンテキスト設定
6.6.4 部分的なセキュリティ適用の停止と再開
6.7 SELinuxによるユーザのアクセス制御
6.7.1 SELinuxユーザタイプの管理
6.7.2 SELinuxユーザの動作調整
6.8 SELinuxポリシーとモジュールの管理
6.8.1 ポリシーの変更
6.8.2 ポリシーモジュール
Chapter 7 SSHサーバ
7.1 SSHの概要
7.2 OpenSSHサーバの導入
7.2.1 パッケージのインストール
7.2.2 サービスの起動設定
7.2.3 パケットフィルタリングの設定
7.2.4 SELinux保護
7.3 OpenSSHサーバの設定
7.3.1 セキュリティ向上のための設定
7.3.2 ログ出力の設定
7.4 SSHサーバのセキュリティ
7.5 公開鍵認証の設定
7.5.1 鍵ペアの作成
7.5.2 公開鍵の設置
7.5.3 sshコマンドによるリモートログイン
7.6 chrootの設定
7.6.1 OpenSSHサーバの設定
7.6.2 ルートディレクトリの作成
7.6.3 SELinuxとの関連
Chapter 8 パケットフィルタリング
8.1 Linuxのセキュリティ
8.2 パケットフィルタリング(Netfilter)の設定
8.2.1 Netfilterのパケットフィルタリング処理
8.2.2 フィルタリングの範囲
8.2.3 ヘルパーモジュール
8.2.4 Netfilterの導入
8.2.5 ゾーンの設定
8.2.6 サービスの公開設定
8.2.7 ポートの公開設定
8.2.8 ポートフォワーディングの設定
8.2.9 複雑なルール設定(リッチルール)
8.2.10 INPUTとFORWARD以外のチェインへのルール設定
8.2.11 Cockpitによるパケットフィルタリング設定
8.3 パケットフィルタリングの状態表示
8.3.1 パッケージのインストール
8.3.2 iptstate
Chapter 9 認証サービス
9.1 認証サービスの概要
9.2 NSSの設定
9.3 PAMの設定
9.4 sssd
9.5 authselectコマンド
9.6 LDAP認証
9.6.1 sssdの設定
9.6.2 ホームディレクトリの自動作成
9.7 Kerberos認証
9.7.1 sssdの設定
9.7.2 動作確認
Chapter 10 暗号化ポリシー
10.1 暗号化ポリシーとは
10.1.1 ポリシーレベル
10.1.2 有効な暗号スイートおよびプロトコル
10.1.3 削除あるいは無効化された暗号スイートとプロトコル
10.2 ポリシーレベルの確認と変更
10.3 暗号化ポリシーの適用除外
10.3.1 バックエンドからの削除
10.3.2 アプリケーション個別の対応
10.4 FIPSモードへの切り替え
Part Ⅲ 外部公開サービスの導入
Chapter 11 DNSコンテンツサーバ
11.1 DNSサービスの概要
11.1.1 DNSが目的とするもの
11.1.2 ドメイン名空間
11.1.3 ゾーン
11.1.4 マスターサーバとスレーブサーバ
11.1.5 DNSSEC
11.2 BINDの導入
11.2.1 BINDの概要
11.2.2 パッケージのインストール
11.2.3 サービスの起動設定
11.3 標準設定とBINDの構成
11.3.1 設定ファイルの構成
11.3.2 初期設定ファイル
11.3.3 named.rfc1912.zones
11.3.4 設定の確認と反映
11.4 マスターサーバ
11.4.1 初期設定ファイル
11.4.2 マスターファイル
11.4.3 マスターファイルの作成例
11.5 スレーブサーバ
11.5.1 初期設定ファイル
11.5.2 ゾーン情報の表示
11.5.3 TSIGによるサーバ間の暗号化
11.6 Dynamic DNS(DDNS)の設定
11.7 DNSサーバのセキュリティ
11.7.1 DNSサーバ自身のセキュリティの強化
11.7.2 DNSSECによるゾーンの保護
11.7.3 viewによるアクセスの制限
11.8 ログ
11.8.1 デフォルトのログ
11.8.2 ログのカスタマイズ
11.9 サーバ管理ツール
11.9.1 rndc
11.9.2 named-checkconf
11.9.3 named-checkzone
11.10 ユーティリティプログラム
11.10.1 host
11.10.2 dig
11.10.3 nsupdate
11.11 リゾルバ
11.11.1 リゾルバとは
11.11.2 ネットワークマネージャの設定
Chapter 12 WWWサーバ(Apache)
12.1 WWWサービスの概要
12.1.1 WWWサーバ
12.1.2 HTTP
12.1.3 HTTPS
12.2 Apache HTTP Serverの概要
12.2.1 Apache HTTP Server
12.2.2 MPM(Multi Processing Module)
12.2.3 モジュール
12.3 Apacheの導入
12.3.1 パッケージのインストール
12.3.2 サービスの起動設定
12.3.3 パケットフィルタリングの設定
12.3.4 SELinux保護
12.4 Apacheの動作設定
12.4.1 設定ファイルの構成
12.5 標準の設定
12.5.1 動作環境の設定
12.5.2 'Main'サーバに関する主要な設定
12.5.3 アクセス制御に関する設定
12.5.4 ディレクトリアクセスに関する設定
12.5.5 ログの設定
12.5.6 エイリアスの設定
12.5.7 ファイルタイプに応じた設定
12.5.8 インデックス表示に関する設定
12.5.9 その他のディレクティブ
12.6 ユーザ認証
12.6.1 パスワードファイル
12.6.2 アクセス制御ファイル
12.6.3 ユーザのディレクトリで認証を行う場合
12.7 バーチャルホスト
12.7.1 バーチャルホストの実現方法
12.7.2 バーチャルホストの設定
12.8 SSL/TLSの利用
12.8.1 SSL/TLSの設定
12.9 WebDAV
12.9.1 WebDAVとは
12.9.2 WebDAVサーバの構築
12.10 ログ
12.10.1 エラーログ
12.10.2 アクセスログ
12.10.3 ローテーション
12.10.4 ログの解析
12.11 CGI/SSIの利用
12.11.1 CGIの利用
12.11.2 SSIの利用
Chapter 13 WWWサーバ(nginx)
13.1 nginxの概要
13.2 nginxの導入
13.2.1 パッケージのインストール
13.2.2 サービスの起動設定
13.2.3 パケットフィルタリングの設定
13.2.4 SELinux保護
13.3 nginxの動作設定
13.3.1 設定ファイルの構成
13.3.2 標準の設定
13.3.3 アクセス制御に関する設定
13.3.4 インデックスファイルの設定
13.3.5 エイリアスの設定
13.3.6 インデックス表示に関する設定
13.3.7 ユーザ認証
13.3.8 バーチャルホスト
13.3.9 SSL/TLSの利用
13.3.10 SSIの利用
Chapter 14 FTPサーバ
14.1 FTPサービスの概要
14.2 vsftpdの導入
14.2.1 vsftpdの概要
14.2.2 パッケージのインストール
14.2.3 サービスの起動設定
14.2.4 パケットフィルタリングの設定
14.2.5 SELinux保護
14.3 vsftpdの動作設定
14.3.1 基本設定
14.3.2 一般ユーザのFTPサーバに関する設定
14.3.3 匿名FTPサーバに関する設定
14.3.4 SSL/TLSに関する設定
14.4 ゲストログイン
14.4.1 ゲストログインの設定
14.4.2 ログインディレクトリの設定
14.5 ログ
14.5.1 ファイルの転送に関するログ
14.5.2 vsftpdの動作に関するログ
14.5.3 ログのsyslogへの出力
Chapter 15 メールサーバ
15.1 メールサービスの概要
15.1.1 電子メールの仕組み
15.1.2 メールの送受信とプロトコル
15.2 Postfixの導入
15.2.1 Postfixの概要
15.2.2 パッケージのインストール
15.2.3 サービスの起動設定
15.2.4 パケットフィルタリング
15.2.5 SELinux保護
15.3 Postfixの基本設定
15.4 メール配送の設定
15.4.1 Relayホスト
15.4.2 静的なメール配送
15.5 メールリレーの制限
15.6 aliasesテーブル
15.7 Postfixのローカル配送
15.8 SPAMホスト対策
15.8.1 受信時のエラーに対する遅延処理
15.8.2 クライアント毎のリソースと使用率の制御
15.8.3 サーバ全体で適用される制限
15.9 SMTP-AUTH
15.9.1 SMTP-AUTHの概要
15.9.2 SASLの導入
15.9.3 PostfixのSMTP-AUTH設定
15.9.4 CRAM-MD5認証の設定
15.10 LDAPとの連携
15.10.1 LDAP連携の準備
15.10.2 ALIAS情報の共有
15.10.3 LDAPサーバの設定
15.11 SMTP/Submission over SSL/TLS
15.11.1 SMTP/Submissionの概要
15.11.2 SMTP/Submissionの設定
15.12 その他の設定
15.12.1 メールサイズ上限の設定
15.12.2 再送時間の設定
15.12.3 メール保持期間の設定
15.13 Postfix管理プログラム
15.13.1 postqueue
15.13.2 postsuper
15.14 ログ
Chapter 16 メーリングリストサーバ
16.1 Mailmanの概要
16.1.1 Mailmanとは
16.1.2 Mailmanの構成
16.2 Mailmanの導入
16.2.1 パッケージのインストール
16.2.2 サービスの起動設定
16.2.3 パケットフィルタリングの設定
16.2.4 SELinux保護
16.3 Mailmanの設定
16.3.1 サイト管理者のパスワード
16.3.2 ホスト情報の設定
16.3.3 サイト管理用メーリングリスト
16.3.4 MTAの設定
16.4 メーリングリストの管理
16.4.1 メーリングリストの登録
16.4.2 メーリングリストの削除
16.5 リスト管理者によるメーリングリストの管理
16.5.1 メーリングリストの管理
16.5.2 リスト管理者によるメーリングリストの設定
16.5.3 リスト管理者による会員管理
16.5.4 リスト管理者によるその他の便利な設定
16.6 会員自身によるメーリングリストの購読と脱会
16.6.1 メーリングリストの会員ページ
16.6.2 表示言語
16.6.3 保存書庫
16.6.4 メーリングリストの購読
16.6.5 メーリングリスト会員名簿
16.6.6 退会またはオプションの変更
Chapter 17 POP/IMAPサーバ
17.1 POP/IMAPサービスの概要
17.1.1 POP3
17.1.2 IMAP4
17.1.3 POP/IMAPサーバソフトウェアの概要
17.2 Dovecot
17.2.1 Dovecotの概要
17.2.2 Dovecotの導入
17.2.3 一般的な設定
17.2.4 POP3の詳細設定
17.2.5 IMAPの詳細設定
17.2.6 LDAP連携
17.2.7 ログ
17.3 Cyrus IMAP
17.3.1 Cyrus IMAPの概要
17.3.2 Cyrus IMAPの導入
17.3.3 SSLの設定
17.3.4 ユーザ認証の設定
17.3.5 メールデータベースの設定
17.3.6 MTAの設定
17.3.7 ログ
Chapter 18 Webアプリケーションサーバ
18.1 Webアプリケーションサーバの概要
18.2 PHPの導入
18.2.1 PHPの概要
18.2.2 パッケージのインストール
18.2.3 PHPモジュ―ルのインスト―ル
18.2.4 サービスの起動設定
18.2.5 SELinux保護
18.2.6 ApacheとPHPの設定
18.2.7 php-fpmサービスの設定
18.2.8 ログファイル
Part Ⅳ 内部サービスの導入
Chapter 19 DNSキャッシュサーバ
19.1 DNSキャッシュサービスの概要
19.2 DNSキャッシュサーバの導入
19.2.1 unboundの概要
19.2.2 パッケージのインストール
19.2.3 サービスの起動設定
19.3 標準設定とunboundの構成
19.4 DNSキャッシュサーバの公開
19.5 unboundの応答制御
19.5.1 ローカルデータの定義
19.5.2 強制的な応答制御
19.5.3 ローカルゾーンの逆引き設定
19.6 DNSフォワーディングサーバ
19.7 スタブゾーン
19.8 unbound-controlによるリモート管理
19.9 ログ
Chapter 20 DHCPサーバ
20.1 DHCPサービスの概要
20.1.1 IPv4のDHCP
20.1.2 IPv6のDHCP
20.2 ISC DHCPの導入
20.3 IPv4ネットワーク用のDHCPサービス
20.3.1 dhcpdサービス
20.3.2 ISC DHCPのIPv4動作設定
20.3.3 リースファイル
20.3.4 Dynamic DNSとの連携
20.4 IPv6ネットワーク用のDHCPサーバ
20.4.1 dhcpd6サービス
20.4.2 ISC DHCPのIPv6動作設定
20.4.3 リースファイル
20.4.4 Dynamic DNSとの連携
20.5 ログ
20.6 DHCPリレーエージェント
Chapter 21 LDAPサーバ
21.1 ディレクトリサービスの概要
21.1.1 ディレクトリサービスとは
21.1.2 LDAPディレクトリサービスの概要
21.1.3 LDAPのデータ構造
21.1.4 LDIFテキストフォーマット
21.2 389 Directory Serverの導入
21.2.1 パッケージのインストール
21.2.2 初期設定
21.2.3 サービスの起動設定
21.2.4 パケットフィルタリングの設定
21.2.5 SELinux保護
21.3 LDAPデータベースの設定
21.3.1 LDAPエントリの登録
21.3.2 TLSの設定
21.4 データのメンテナンス
21.4.1 追加(ldapadd)
21.4.2 削除(ldapdelete)
21.4.3 検索(ldapsearch)
21.4.4 修正(ldapmodify)
21.5 アクセス制御と管理用ユーザ
21.5.1 aci属性
21.5.2 データ管理用ユーザと匿名ユーザの設定
21.6 389 Directory Serverの設定変更
21.6.1 dsconfコマンドによる設定変更
21.6.2 LDAP手順による設定変更
21.7 スキーマの管理
21.7.1 設定されているスキーマの確認
21.7.2 ユーザ定義のスキーマの追加
21.8 LDAPサーバ間でのデータの同期(レプリケーション)
21.8.1 コンシューマ側のレプリケーション設定
21.8.2 サプライア側のレプリケーション設定
21.9 LDAPサーバのログ
21.9.1 ログレベルの変更
21.9.2 アクセスログのフォーマット
Chapter 22 Kerberosサーバ
22.1 Kerberos認証の概要
22.1.1 Kerberosの概要
22.1.2 Kerberos認証の構造
22.2 Kerberosサーバの導入
22.2.1 パッケージのインストール
22.2.2 サービスの起動設定
22.2.3 パケットフィルタリングの設定
22.2.4 SELinux保護
22.3 Kerberosサーバの動作設定
22.3.1 krb5kdcサービスのオプション
22.3.2 kadminサービスのオプション
22.3.3 kpropサービスのオプション
22.4 KDCの動作設定
22.4.1 confファイルの書式
22.4.2 /var/kerberos/krb5kdc/kdc.conf
22.4.3 /etc/krb5.conf
22.4.4 /var/kerberos/krb5kdc/kadm5.acl
22.4.5 最低限の設定
22.5 プリンシパルの管理
22.5.1 データベース構築
22.5.2 kadmin / kadmin.localコマンドによる管理
22.6 Kerberosクライアントの設定
22.6.1 チケットを管理するコマンド
22.6.2 パスワードの変更
Chapter 23 NFSサーバ
23.1 NFSの概要
23.2 NFSサーバの導入
23.2.1 パッケージのインストール
23.2.2 サービスの起動設定
23.2.3 パケットフィルタリングの設定
23.2.4 SELinux保護
23.2.5 NFSv3とNFSv4との違い
23.3 NFSサーバの動作設定
23.3.1 サーバの起動時のオプション
23.3.2 IDマッピング(rpc.idmapd)
23.3.3 エクスポートテーブル
23.3.4 exportfs
23.4 NFSクライアントの動作設定
23.4.1 mountによるマウント/アンマウント
23.4.2 /etc/fstabによるマウント/アンマウント
23.4.3 Cockpitによる/etc/fstabの管理
23.5 セキュリティ機能を提供するサービス
23.5.1 パッケージのインストール
23.5.2 サービスの起動設定
23.5.3 SELinux保護
23.5.4 gssproxyデーモンの動作設定
23.5.5 rpc.gssdデーモンの動作設定
23.6 NFSv4 ACL
23.6.1 NFSv4 ACLとは
23.6.2 ACLの書式
23.6.3 ACLの設定
23.7 オートマウント
23.7.1 オートマウントの導入
23.7.2 オートマウントの起動
23.7.3 オートマウントの動作設定
23.7.4 LDAPを使った設定
Chapter 24 Sambaサーバ
24.1 Sambaの概要
24.1.1 Sambaとは
24.1.2 Sambaのプロトコル
24.2 Sambaの導入
24.2.1 パッケージのインストール
24.2.2 サービスの起動設定
24.2.3 パケットフィルタリングの設定
24.2.4 SELinux保護
24.3 Sambaの動作設定
24.3.1 smbd・nmbd・winbinddのオプション
24.3.2 /etc/samba/smb.confの構成
24.3.3 セクションの意味
24.3.4 変数置換
24.3.5 主要なパラメータ
24.4 ユーザ認証
24.4.1 Sambaが用意する認証の仕組み
24.4.2 ユーザ管理データベース
24.4.3 ユーザ管理とパスワード
24.4.4 ゲストユーザとユーザマッピング
24.4.5 Linuxパスワードとの同期
24.5 ファイル名の扱い
24.5.1 unicodeへの対応
24.5.2 日本語を扱うための設定
24.5.3 ケース混在のファイル名について
24.6 セキュリティ
24.6.1 インタフェース単位のアクセス制限
24.6.2 ホスト単位のアクセス制限
24.6.3 ユーザ単位のアクセス制限
24.7 この他のパラメータ
24.7.1 ブラウジング
24.7.2 ドメインマスター
24.7.3 名前解決
24.7.4 設定ファイルの分割
24.7.5 クライアントにメッセージを送る
24.7.6 ユーザ定義共有
24.7.7 VFS
24.8 ログ
24.8.1 デーモン毎のログファイル
24.8.2 クライアント毎のログ
24.9 Windowsドメインへの参加(winbind)
24.9.1 winbindの設定
24.9.2 /etc/nsswitch.confの設定
24.10 Sambaのプログラム
24.10.1 設定の確認(testparm)
24.10.2 Sambaサーバの状態確認
24.10.3 Samba共有領域をマウント
Chapter 25 NTPサーバ
25.1 NTPサービスの概要
25.2 NTPサービスの導入
25.2.1 パッケージのインストール
25.2.2 NTPサービスの起動設定
25.2.3 パケットフィルタリングの設定
25.2.4 SELinux保護
25.3 NTPクライアントとしての設定
25.3.1 クライアントの標準設定
25.3.2 参照先サーバの設定
25.3.3 NTPサーバの状態確認(chronyc)
25.4 NTPサーバの設定と管理
25.4.1 NTPサーバの設定
25.4.2 通信制御の設定
25.4.3 サーバ構成に合わせた時刻同期設定
25.5 ログ
Chapter 26 プロキシサーバ
26.1 プロキシサーバの概要
26.2 Squidの導入
26.2.1 パッケージのインストール
26.2.2 サービス起動設定
26.2.3 パケットフィルタリングの設定
26.2.4 SELinux保護
26.3 Squidの基本設定
26.3.1 標準設定
26.3.2 動作確認(squidclient)
26.4 透過型プロキシとしての設定
26.4.1 SELinuxの保護
26.4.2 squidの設定
26.4.3 パケットフィルタリングの設定
26.5 アクセラレータとしての設定
26.5.1 アクセス制御
26.5.2 アクセラレータとしての設定
26.5.3 参照サーバの設定
26.6 キャッシュの設定
26.6.1 メモリキャッシュの設定
26.6.2 ディスクキャッシュの設定
26.6.3 キャッシュ更新時間の設定
26.6.4 キャッシュマネージャ
26.7 Proxyユーザ認証の設定
26.8 ログ
26.9 クライアントの設定
26.9.1 プロキシサーバの手動設定
26.9.2 プロキシサーバの自動構成スクリプト
26.9.3 プロキシサーバの自動検出
Chapter 27 データベースサーバ
27.1 データベースの概要
27.2 PostgreSQLの導入
27.2.1 PostgreSQLの概要
27.2.2 パッケージのインストール
27.2.3 サービスの起動設定
27.2.4 パケットフィルタリングの設定
27.2.5 SELinux保護
27.2.6 データベースディレクトリの設定と作成
27.2.7 データベースサーバの基本設定
27.2.8 アクセス制御の設定
27.2.9 接続の確認
27.3 MySQLとMariaDBの導入
23.3.1 MySQLとMariaDBの概要
23.3.2 パッケージのインストール
27.3.3 サービスの起動設定
27.3.4 パケットフィルタリングの設定
27.3.5 SELinux保護
27.3.6 データベース管理ユーザの設定
27.3.7 データベースユーザの登録とアクセス制御
27.4 memcachedの導入
27.4.1 memcachedの概要
27.4.2 パッケージのインストール
27.4.3 サービスの起動設定
27.4.4 パケットフィルタリングの設定
27.4.5 SELinux保護
27.4.6 memcachedの設定
27.4.7 memcachedの動作確認
27.5 Redisの導入
27.5.1 Redisの概要
27.5.2 パッケージのインストール
27.5.3 サービスの起動設定
27.5.4 パケットフィルタリングの設定
27.5.5 SELinuxの保護
27.5.6 Redisの設定
27.5.7 Redisの動作確認
Part Ⅴ ネットワークサーバの管理
Chapter 28 リモート管理
28.1 リモート管理の概要
28.2 シリアルコンソール
28.2.1 シリアルコンソールの概要
28.2.2 シリアルコンソールの導入
28.2.3 シリアルポートからのインストール
28.3 Cockpit
28.3.1 Cockpitの概要
28.3.2 パッケージのインストール
28.3.3 サービスの起動設定
28.3.4 パケットフィルタリングの設定
28.3.5 SELinux保護
28.3.6 Cockpitの利用
28.3.7 Cockpitモジュールの有効化
28.4 リモートモニタリングサービス
28.4.1 PCPの概要
28.4.2 PCPパッケージの導入
28.4.3 コレクタの導入
28.4.4 モニタリングツール
28.4.5 Cockpitからのモニタ
Chapter 29 ネットワーク管理
29.1 ネットワーク管理の概要
29.2 ネットワーク設定ファイル
29.2.1 /etc/services
29.2.2 /etc/protocols
29.2.3 /etc/rpc
29.2.4 /etc/nsswitch.conf
29.2.5 /etc/host.conf
29.2.6 /etc/hosts
29.2.7 /etc/networks
29.3 デバイスとインタフェース
29.3.1 ネットワークハードウェア
29.3.2 ネットワークデバイス
29.3.3 ネットワークインタフェース
29.4 NetworkManagerサービス
29.5 ネットワーク環境の設定
29.5.1 nmcli
29.5.2 NetworkManager Text User Interface(nmtui)
29.5.3 Cockpitによる設定
29.6 ネットワーク管理・診断プログラム
29.6.1 ip
29.6.2 ss
29.6.3 ping
29.6.4 traceroute・tracepath
29.6.5 rpcinfo
Chapter 30 サービス管理
30.1 初期化プロセス
30.1.1 初期化プロセスとは
30.1.2 systemd
30.1.3 ユニット
30.2 systemctlによる管理
30.2.1 systemctlの概要
30.2.2 利用可能なサービスの取得(list-unit-files)
30.2.3 個別サービスの自動起動の有効化・無効化(enable・disable・is-enabled)
30.2.4 個別サービスの有効化・無効化(mask・unmask)
30.2.5 個別サービスの起動と停止(start・stop)
30.2.6 個別サービスの再起動とリロード(restart・reload)
30.2.7 個別サービスの状態確認(is-active・status)
30.2.8 起動サービスの状態確認(list-units・list-sockets)
30.2.9 サービスの依存関係の確認(list-dependencies)
30.2.10 ユニット定義ファイル更新の通知(daemon-reload)
30.3 Cockpitによる管理
30.3.1 サービス管理画面の表示
30.3.2 設定の変更
30.4 ユニット定義ファイル
30.4.1 ユニット定義ファイルの基本的な構造
30.4.2 ソケット型のユニット定義ファイル
30.4.3 タイマー型のユニット定義ファイル
30.4.4 ターゲット型のユニット定義ファイル
30.4.5 テンプレートユニット
Chapter 31 ログ管理
31.1 rsyslog
31.1.1 rsyslogの概要
31.1.2 rsyslogの導入
31.1.3 rsyslogの動作設定
31.1.4 ログの集中管理
31.1.5 Cockpitによるログの参照
31.2 logrotate
31.2.1 logrotateの概要
31.2.2 logrotateの導入
31.2.3 logrotateの動作設定
31.3 logwatch
31.3.1 logwatchの概要
31.3.2 logwatchの導入
31.3.3 logwatchの動作設定
31.3.4 logwatchのカスタマイズ
Chapter 32 SNMP
32.1 SNMPサービスの概要
32.1.1 SNMPの構成
32.1.2 MIBとOID
32.1.3 MIB変数
32.1.4 SNMPにおける通信
32.2 SNMPエージェントの導入
32.2.1 NET-SNMPの概要
32.2.2 パッケージのインストール
32.2.3 サービスの起動設定
32.2.4 パケットフィルタリングの設定
32.2.5 SELinux保護
32.3 SNMPエージェントの設定
32.3.1 基本設定
32.3.2 ucdavisパラメータの設定
32.3.3 ログ出力の設定
32.4 SNMPマネージャ
32.4.1 パッケージのインストール
32.4.2 snmpget
32.4.3 snmpgetnext
32.4.4 snmpwalk
32.4.5 snmpdelta
32.5 MRTG
32.5.1 MRTGの概要
32.5.2 パッケージのインストール
32.5.3 MRTGの起動設定
32.5.4 SELinux保護
32.5.5 MRTGの基本設定
32.5.6 MRTGの応用設定
Chapter 33 バックアップ(Amanda)
33.1 バックアップの概要
33.1.1 ディスクの冗長化とバックアップ
33.1.2 バックアップとメディア
33.1.3 バックアップの種類と選択
33.1.4 バックアップ計画
33.1.5 バックアップソフトウェアの選定
33.2 Amandaの概要
33.3 Amandaの導入
33.3.1 パッケージのインストール
33.3.2 Amandaクライアントの設定
33.4 Amandaサーバ
33.4.1 バックアップ条件の計画
33.4.2 バックアップ環境の整備
33.4.3 バックアップの設定
33.4.4 バックアップ対象の設定
33.4.5 環境のチェック
33.5 バックアップの実施と設定
33.5.1 バックアップの実施
33.5.2 自動バックアップ
33.6 クライアントでのデータリストア(amrecover)
33.7 サーバでのデータリストア(amrestore)
33.7.1 テープの変更
33.7.2 テープの巻き戻し
33.7.3 データの取り出し
33.8 Amandaサーバの設定ファイル
33.8.1 amanda.conf
33.8.2 advanced.conf
Chapter 34 バックアップ(Bacula)
34.1 Baculaの概要
34.2 Bacula File
34.2.1 パッケージのインストール
34.2.2 サービスの起動設定
34.2.3 パケットフィルタリングの設定
34.2.4 SELinuxの設定
34.2.5 Bacula Clientの設定
34.3 Bacula Storage
34.3.1 パッケージのインストール
34.3.2 サービスの起動設定
34.3.3 パケットフィルタリングの設定
34.3.4 SELinuxの設定
34.3.5 Bacula Storageの設定
34.4 Bacula Director
34.4.1 パッケージのインストール
34.4.2 サービスの起動設定
34.4.3 パケットフィルタリングの設定
34.4.4 SELinuxの設定
34.4.5 Catalogの設定
34.4.6 Bacula Directorの設定
34.5 Bacula Console
34.5.1 パッケージのインストール
34.5.2 Bacula Consoleの設定
34.6 Baculaバックアップシステムの利用
34.6.1 コンソールの起動と終了
34.6.2 ステータスの取得
34.6.3 ラベルの設定
34.6.4 ジョブの即時実行
34.6.5 リストア
Part Ⅵ その他のサービス
Chapter 35 サーバ仮想化
35.1 サーバ仮想化の概要
35.2 KVMの導入
35.2.1 KVMの概要
35.2.2 パッケージのインストール
35.2.3 仮想サーバ管理サービスの起動設定
35.2.4 SELinux保護
35.3 仮想マシンの管理
35.3.1 仮想サーバの作成
35.3.2 仮想マシンの管理
35.4 コマンドラインでの仮想マシン管理
35.4.1 仮想マシンの作成
35.4.2 仮想マシンの管理
35.4.3 その他のユーティリティ
35.5 ゲストOSの自動停止と自動起動
35.5.1 libvirt-guestsサービス
35.5.2 libvirt-guestsサービスの設定
35.6 コンテナ型仮想化
35.6.1 podmanの概要
35.6.2 podmanのインストール
35.6.3 コンテナ操作の基本
35.6.4 アプリケーション環境のコンテナ化とサービスの公開
35.6.5 Dockerfileによるコンテナイメージの作成
35.6.6 複数コンテナのネットワーク連携
Chapter 36 SSL/TLS証明書の作成
36.1 SSL/TLSの概要
36.1.1 SSLの概要
36.1.2 SSLプロトコルとTLSプロトコル
36.1.3 CAと証明書
36.1.4 証明書の種類
36.2 opensslの導入
36.2.1 opensslの概要
36.2.2 パッケージの導入
36.2.3 証明証作成環境の準備
36.3 自己署名証明書の作成
36.4 グローバル証明書の取得
36.4.1 証明書のリクエスト(CSR)の作成
36.4.2 証明書の主な発行組織
36.5 証明書の確認
Chapter 37 レガシーなサーバ
37.1 portmapper
37.1.1 portmapperの概要
37.1.2 パッケージのインストール
37.1.3 サービスの起動設定
37.1.4 パケットフィルタリングの設定
37.1.5 SELinux保護
37.2 TFTPサーバ
37.2.1 TFTPサービスの概要
37.2.2 パッケージのインストール
37.2.3 サービスの起動設定
37.2.4 パケットフィルタリングの設定
37.2.5 SELinux保護
0.2 知っておいていただきたいこと
0.2.1 基本となる環境について
0.2.2 表記方法について
0.2.3 パッケージのインストールについて
0.2.4 ご注意
0.3 本書の読み進め方
0.4 参考文献
Part Ⅰ ネットワークサーバ構築の基礎
Chapter 1 LinuxとCentOSの概要
1.1 Linuxについて
1.1.1 Linuxの誕生
1.1.2 Linuxと関連団体
1.1.3 Linuxカーネル
1.1.4 Linuxディストリビューション
1.2 CentOSについて
1.2.1 CentOSの概要
1.2.2 CentOS 8までの推移
1.2.3 CentOS 8の特徴
1.2.4 CentOS 8のハードウェア要件
Chapter 2 ネットワークの基礎
2.1 TCP/IPとインターネット
2.1.1 インターネットの誕生
2.1.2 TCP/IPの誕生
2.1.3 RFC
2.2 TCP/IPの4層モデル
2.3 ネットワーク層
2.3.1 イーサネット
2.3.2 ARP・RARP
2.3.3 PPP・PPPoE
2.4 インターネット層
2.4.1 IPv4
2.4.2 IPv6
2.5 トランスポート層
2.5.1 TCP
2.5.2 UDP
2.5.3 ICMP・ICMPv6
2.5.4 ポート番号
2.6 アプリケーション層
Chapter 3 セキュリティの基礎
3.1 セキュリティ上の問題
3.1.1 サーバへの不正侵入
3.1.2 サーバの不正利用
3.1.3 情報の漏洩
3.1.4 コンピュータウィルスへの感染
3.2 基本的なセキュリティ施策
3.2.1 ハードウェアの保護
3.2.2 BIOSの設定
3.2.3 ブートローダの設定
3.2.4 システムパスワードの保護
3.2.5 ソフトウェアのアップデート
3.2.6 システムログのチェック
3.2.7 ファイアウォールの設定
3.2.8 SELinuxの利用
3.2.9 SSSDの利用
3.2.10 暗号化ポリシーの適用
3.2.11 セキュリティポリシーの策定
3.3 ネットワークのセキュリティ
3.3.1 ファイアウォール
3.3.2 DMZの設置
3.3.3 ネットワークの監視
3.4 サービスのセキュリティ
3.4.1 サービスの選別
3.4.2 サービスの状況把握
3.4.3 サービス共通の施策
3.5 安全なネットワークモデルの構築
3.5.1 シンプルなネットワーク構成
3.5.2 DMZを持ったネットワーク構成
3.5.3 サーバの設置場所
3.6 セキュリティ情報の収集
3.6.1 セキュリティ情報サイト
3.6.2 CentOSのセキュリティアップデート情報
Part Ⅱ 基本環境の構築
Chapter 4 CentOSのインストール
4.1 インストールの概略
4.1.1 インストール前に調べておくこと
4.1.2 RAID
4.1.3 LVM
4.1.4 パーティション構成
4.1.5 ファイルシステム
4.2 インストールの準備
4.2.1 イメージのダウンロード
4.2.2 インストール形態
4.3 インストールメニュー
4.3.1 メインメニュー
4.3.2 トラブルシューティングメニュー
4.3.3 ブートローダ編集メニュー
4.4 グラフィカルモードによるインストール
4.4.1 Welcome to CentOS Linux 8
4.4.2 インストール概要
4.4.3 ユーザーの作成
4.5 インストール後の設定
4.5.1 ライセンス情報
4.5.2 ようこそ
4.5.3 入力メソッド
4.5.4 プライバシー
4.5.5 オンラインアカウント
4.5.6 準備完了
4.6 インストールと基本設定が終わったら
4.6.1 システムを最新にアップデートする
4.6.2 システムの再設定
Chapter 5 パッケージのメンテナンス
5.1 パッケージの概要
5.1.1 RPMとは
5.1.2 ソースプログラムについて
5.1.3 パッケージファイル名の構成
5.1.4 GPGによる署名
5.1.5 パッケージの操作
5.2 dnfによるパッケージ操作
5.2.1 dnfの概要
5.2.2 dnfの動作設定
5.2.3 dnfの基本操作
5.2.4 パッケージのインストール
5.2.5 パッケージのリスト
5.2.6 パッケージのアップデート
5.2.7 パッケージの検索
5.2.8 パッケージの削除
5.2.9 モジュールの利用
5.3 パッケージインストール/アップデート手順の実際
5.3.1 インターネット上のリポジトリからパッケージをインストール/アップデート
5.3.2 メディアのリポジトリからパッケージをインストール
5.3.3 メディアからパッケージファイルを指定してインストール
5.3.4 メディアのマウントとアンマウント
5.4 dnfの自動実行設定
5.4.1 パッケージのインストール
5.4.2 dnf-automaticサービス
5.4.3 dnf-automaticの設定
Chapter 6 SELinux
6.1 SELinuxの概要
6.1.1 Linuxに存在する危険
6.1.2 SELinuxの機能特徴
6.1.3 SELinuxで守れないもの
6.1.4 セキュリティコンテキストとポリシー
6.2 SELinuxの基本設定
6.2.1 SELinuxの動作モード
6.2.2 動作モードの指定
6.2.3 動作モードの確認と変更
6.2.4 論理パラメータの修正
6.3 SELinux環境の調査と調整
6.3.1 SELinux状態の表示(sestatus)
6.3.2 セキュリティコンテキスト関連コマンド
6.3.3 アクセス制御ルール関連コマンド
6.3.4 ファイルコンテキストの一時的な変更
6.3.5 ファイルコンテキストの回復
6.3.6 ファイルコンテキストの再設定
6.3.7 定期的なファイルコンテキストの確認
6.4 SELinux環境でのファイル管理
6.4.1 ファイルのコピー
6.4.2 ファイルのバックアップ
6.5 avcログ
6.6 SELinuxセキュリティ設定の管理(semanage)
6.6.1 policycoreutils-python-utilsパッケージ
6.6.2 ファイルコンテキスト設定
6.6.3 通信ポートのセキュリティコンテキスト設定
6.6.4 部分的なセキュリティ適用の停止と再開
6.7 SELinuxによるユーザのアクセス制御
6.7.1 SELinuxユーザタイプの管理
6.7.2 SELinuxユーザの動作調整
6.8 SELinuxポリシーとモジュールの管理
6.8.1 ポリシーの変更
6.8.2 ポリシーモジュール
Chapter 7 SSHサーバ
7.1 SSHの概要
7.2 OpenSSHサーバの導入
7.2.1 パッケージのインストール
7.2.2 サービスの起動設定
7.2.3 パケットフィルタリングの設定
7.2.4 SELinux保護
7.3 OpenSSHサーバの設定
7.3.1 セキュリティ向上のための設定
7.3.2 ログ出力の設定
7.4 SSHサーバのセキュリティ
7.5 公開鍵認証の設定
7.5.1 鍵ペアの作成
7.5.2 公開鍵の設置
7.5.3 sshコマンドによるリモートログイン
7.6 chrootの設定
7.6.1 OpenSSHサーバの設定
7.6.2 ルートディレクトリの作成
7.6.3 SELinuxとの関連
Chapter 8 パケットフィルタリング
8.1 Linuxのセキュリティ
8.2 パケットフィルタリング(Netfilter)の設定
8.2.1 Netfilterのパケットフィルタリング処理
8.2.2 フィルタリングの範囲
8.2.3 ヘルパーモジュール
8.2.4 Netfilterの導入
8.2.5 ゾーンの設定
8.2.6 サービスの公開設定
8.2.7 ポートの公開設定
8.2.8 ポートフォワーディングの設定
8.2.9 複雑なルール設定(リッチルール)
8.2.10 INPUTとFORWARD以外のチェインへのルール設定
8.2.11 Cockpitによるパケットフィルタリング設定
8.3 パケットフィルタリングの状態表示
8.3.1 パッケージのインストール
8.3.2 iptstate
Chapter 9 認証サービス
9.1 認証サービスの概要
9.2 NSSの設定
9.3 PAMの設定
9.4 sssd
9.5 authselectコマンド
9.6 LDAP認証
9.6.1 sssdの設定
9.6.2 ホームディレクトリの自動作成
9.7 Kerberos認証
9.7.1 sssdの設定
9.7.2 動作確認
Chapter 10 暗号化ポリシー
10.1 暗号化ポリシーとは
10.1.1 ポリシーレベル
10.1.2 有効な暗号スイートおよびプロトコル
10.1.3 削除あるいは無効化された暗号スイートとプロトコル
10.2 ポリシーレベルの確認と変更
10.3 暗号化ポリシーの適用除外
10.3.1 バックエンドからの削除
10.3.2 アプリケーション個別の対応
10.4 FIPSモードへの切り替え
Part Ⅲ 外部公開サービスの導入
Chapter 11 DNSコンテンツサーバ
11.1 DNSサービスの概要
11.1.1 DNSが目的とするもの
11.1.2 ドメイン名空間
11.1.3 ゾーン
11.1.4 マスターサーバとスレーブサーバ
11.1.5 DNSSEC
11.2 BINDの導入
11.2.1 BINDの概要
11.2.2 パッケージのインストール
11.2.3 サービスの起動設定
11.3 標準設定とBINDの構成
11.3.1 設定ファイルの構成
11.3.2 初期設定ファイル
11.3.3 named.rfc1912.zones
11.3.4 設定の確認と反映
11.4 マスターサーバ
11.4.1 初期設定ファイル
11.4.2 マスターファイル
11.4.3 マスターファイルの作成例
11.5 スレーブサーバ
11.5.1 初期設定ファイル
11.5.2 ゾーン情報の表示
11.5.3 TSIGによるサーバ間の暗号化
11.6 Dynamic DNS(DDNS)の設定
11.7 DNSサーバのセキュリティ
11.7.1 DNSサーバ自身のセキュリティの強化
11.7.2 DNSSECによるゾーンの保護
11.7.3 viewによるアクセスの制限
11.8 ログ
11.8.1 デフォルトのログ
11.8.2 ログのカスタマイズ
11.9 サーバ管理ツール
11.9.1 rndc
11.9.2 named-checkconf
11.9.3 named-checkzone
11.10 ユーティリティプログラム
11.10.1 host
11.10.2 dig
11.10.3 nsupdate
11.11 リゾルバ
11.11.1 リゾルバとは
11.11.2 ネットワークマネージャの設定
Chapter 12 WWWサーバ(Apache)
12.1 WWWサービスの概要
12.1.1 WWWサーバ
12.1.2 HTTP
12.1.3 HTTPS
12.2 Apache HTTP Serverの概要
12.2.1 Apache HTTP Server
12.2.2 MPM(Multi Processing Module)
12.2.3 モジュール
12.3 Apacheの導入
12.3.1 パッケージのインストール
12.3.2 サービスの起動設定
12.3.3 パケットフィルタリングの設定
12.3.4 SELinux保護
12.4 Apacheの動作設定
12.4.1 設定ファイルの構成
12.5 標準の設定
12.5.1 動作環境の設定
12.5.2 'Main'サーバに関する主要な設定
12.5.3 アクセス制御に関する設定
12.5.4 ディレクトリアクセスに関する設定
12.5.5 ログの設定
12.5.6 エイリアスの設定
12.5.7 ファイルタイプに応じた設定
12.5.8 インデックス表示に関する設定
12.5.9 その他のディレクティブ
12.6 ユーザ認証
12.6.1 パスワードファイル
12.6.2 アクセス制御ファイル
12.6.3 ユーザのディレクトリで認証を行う場合
12.7 バーチャルホスト
12.7.1 バーチャルホストの実現方法
12.7.2 バーチャルホストの設定
12.8 SSL/TLSの利用
12.8.1 SSL/TLSの設定
12.9 WebDAV
12.9.1 WebDAVとは
12.9.2 WebDAVサーバの構築
12.10 ログ
12.10.1 エラーログ
12.10.2 アクセスログ
12.10.3 ローテーション
12.10.4 ログの解析
12.11 CGI/SSIの利用
12.11.1 CGIの利用
12.11.2 SSIの利用
Chapter 13 WWWサーバ(nginx)
13.1 nginxの概要
13.2 nginxの導入
13.2.1 パッケージのインストール
13.2.2 サービスの起動設定
13.2.3 パケットフィルタリングの設定
13.2.4 SELinux保護
13.3 nginxの動作設定
13.3.1 設定ファイルの構成
13.3.2 標準の設定
13.3.3 アクセス制御に関する設定
13.3.4 インデックスファイルの設定
13.3.5 エイリアスの設定
13.3.6 インデックス表示に関する設定
13.3.7 ユーザ認証
13.3.8 バーチャルホスト
13.3.9 SSL/TLSの利用
13.3.10 SSIの利用
Chapter 14 FTPサーバ
14.1 FTPサービスの概要
14.2 vsftpdの導入
14.2.1 vsftpdの概要
14.2.2 パッケージのインストール
14.2.3 サービスの起動設定
14.2.4 パケットフィルタリングの設定
14.2.5 SELinux保護
14.3 vsftpdの動作設定
14.3.1 基本設定
14.3.2 一般ユーザのFTPサーバに関する設定
14.3.3 匿名FTPサーバに関する設定
14.3.4 SSL/TLSに関する設定
14.4 ゲストログイン
14.4.1 ゲストログインの設定
14.4.2 ログインディレクトリの設定
14.5 ログ
14.5.1 ファイルの転送に関するログ
14.5.2 vsftpdの動作に関するログ
14.5.3 ログのsyslogへの出力
Chapter 15 メールサーバ
15.1 メールサービスの概要
15.1.1 電子メールの仕組み
15.1.2 メールの送受信とプロトコル
15.2 Postfixの導入
15.2.1 Postfixの概要
15.2.2 パッケージのインストール
15.2.3 サービスの起動設定
15.2.4 パケットフィルタリング
15.2.5 SELinux保護
15.3 Postfixの基本設定
15.4 メール配送の設定
15.4.1 Relayホスト
15.4.2 静的なメール配送
15.5 メールリレーの制限
15.6 aliasesテーブル
15.7 Postfixのローカル配送
15.8 SPAMホスト対策
15.8.1 受信時のエラーに対する遅延処理
15.8.2 クライアント毎のリソースと使用率の制御
15.8.3 サーバ全体で適用される制限
15.9 SMTP-AUTH
15.9.1 SMTP-AUTHの概要
15.9.2 SASLの導入
15.9.3 PostfixのSMTP-AUTH設定
15.9.4 CRAM-MD5認証の設定
15.10 LDAPとの連携
15.10.1 LDAP連携の準備
15.10.2 ALIAS情報の共有
15.10.3 LDAPサーバの設定
15.11 SMTP/Submission over SSL/TLS
15.11.1 SMTP/Submissionの概要
15.11.2 SMTP/Submissionの設定
15.12 その他の設定
15.12.1 メールサイズ上限の設定
15.12.2 再送時間の設定
15.12.3 メール保持期間の設定
15.13 Postfix管理プログラム
15.13.1 postqueue
15.13.2 postsuper
15.14 ログ
Chapter 16 メーリングリストサーバ
16.1 Mailmanの概要
16.1.1 Mailmanとは
16.1.2 Mailmanの構成
16.2 Mailmanの導入
16.2.1 パッケージのインストール
16.2.2 サービスの起動設定
16.2.3 パケットフィルタリングの設定
16.2.4 SELinux保護
16.3 Mailmanの設定
16.3.1 サイト管理者のパスワード
16.3.2 ホスト情報の設定
16.3.3 サイト管理用メーリングリスト
16.3.4 MTAの設定
16.4 メーリングリストの管理
16.4.1 メーリングリストの登録
16.4.2 メーリングリストの削除
16.5 リスト管理者によるメーリングリストの管理
16.5.1 メーリングリストの管理
16.5.2 リスト管理者によるメーリングリストの設定
16.5.3 リスト管理者による会員管理
16.5.4 リスト管理者によるその他の便利な設定
16.6 会員自身によるメーリングリストの購読と脱会
16.6.1 メーリングリストの会員ページ
16.6.2 表示言語
16.6.3 保存書庫
16.6.4 メーリングリストの購読
16.6.5 メーリングリスト会員名簿
16.6.6 退会またはオプションの変更
Chapter 17 POP/IMAPサーバ
17.1 POP/IMAPサービスの概要
17.1.1 POP3
17.1.2 IMAP4
17.1.3 POP/IMAPサーバソフトウェアの概要
17.2 Dovecot
17.2.1 Dovecotの概要
17.2.2 Dovecotの導入
17.2.3 一般的な設定
17.2.4 POP3の詳細設定
17.2.5 IMAPの詳細設定
17.2.6 LDAP連携
17.2.7 ログ
17.3 Cyrus IMAP
17.3.1 Cyrus IMAPの概要
17.3.2 Cyrus IMAPの導入
17.3.3 SSLの設定
17.3.4 ユーザ認証の設定
17.3.5 メールデータベースの設定
17.3.6 MTAの設定
17.3.7 ログ
Chapter 18 Webアプリケーションサーバ
18.1 Webアプリケーションサーバの概要
18.2 PHPの導入
18.2.1 PHPの概要
18.2.2 パッケージのインストール
18.2.3 PHPモジュ―ルのインスト―ル
18.2.4 サービスの起動設定
18.2.5 SELinux保護
18.2.6 ApacheとPHPの設定
18.2.7 php-fpmサービスの設定
18.2.8 ログファイル
Part Ⅳ 内部サービスの導入
Chapter 19 DNSキャッシュサーバ
19.1 DNSキャッシュサービスの概要
19.2 DNSキャッシュサーバの導入
19.2.1 unboundの概要
19.2.2 パッケージのインストール
19.2.3 サービスの起動設定
19.3 標準設定とunboundの構成
19.4 DNSキャッシュサーバの公開
19.5 unboundの応答制御
19.5.1 ローカルデータの定義
19.5.2 強制的な応答制御
19.5.3 ローカルゾーンの逆引き設定
19.6 DNSフォワーディングサーバ
19.7 スタブゾーン
19.8 unbound-controlによるリモート管理
19.9 ログ
Chapter 20 DHCPサーバ
20.1 DHCPサービスの概要
20.1.1 IPv4のDHCP
20.1.2 IPv6のDHCP
20.2 ISC DHCPの導入
20.3 IPv4ネットワーク用のDHCPサービス
20.3.1 dhcpdサービス
20.3.2 ISC DHCPのIPv4動作設定
20.3.3 リースファイル
20.3.4 Dynamic DNSとの連携
20.4 IPv6ネットワーク用のDHCPサーバ
20.4.1 dhcpd6サービス
20.4.2 ISC DHCPのIPv6動作設定
20.4.3 リースファイル
20.4.4 Dynamic DNSとの連携
20.5 ログ
20.6 DHCPリレーエージェント
Chapter 21 LDAPサーバ
21.1 ディレクトリサービスの概要
21.1.1 ディレクトリサービスとは
21.1.2 LDAPディレクトリサービスの概要
21.1.3 LDAPのデータ構造
21.1.4 LDIFテキストフォーマット
21.2 389 Directory Serverの導入
21.2.1 パッケージのインストール
21.2.2 初期設定
21.2.3 サービスの起動設定
21.2.4 パケットフィルタリングの設定
21.2.5 SELinux保護
21.3 LDAPデータベースの設定
21.3.1 LDAPエントリの登録
21.3.2 TLSの設定
21.4 データのメンテナンス
21.4.1 追加(ldapadd)
21.4.2 削除(ldapdelete)
21.4.3 検索(ldapsearch)
21.4.4 修正(ldapmodify)
21.5 アクセス制御と管理用ユーザ
21.5.1 aci属性
21.5.2 データ管理用ユーザと匿名ユーザの設定
21.6 389 Directory Serverの設定変更
21.6.1 dsconfコマンドによる設定変更
21.6.2 LDAP手順による設定変更
21.7 スキーマの管理
21.7.1 設定されているスキーマの確認
21.7.2 ユーザ定義のスキーマの追加
21.8 LDAPサーバ間でのデータの同期(レプリケーション)
21.8.1 コンシューマ側のレプリケーション設定
21.8.2 サプライア側のレプリケーション設定
21.9 LDAPサーバのログ
21.9.1 ログレベルの変更
21.9.2 アクセスログのフォーマット
Chapter 22 Kerberosサーバ
22.1 Kerberos認証の概要
22.1.1 Kerberosの概要
22.1.2 Kerberos認証の構造
22.2 Kerberosサーバの導入
22.2.1 パッケージのインストール
22.2.2 サービスの起動設定
22.2.3 パケットフィルタリングの設定
22.2.4 SELinux保護
22.3 Kerberosサーバの動作設定
22.3.1 krb5kdcサービスのオプション
22.3.2 kadminサービスのオプション
22.3.3 kpropサービスのオプション
22.4 KDCの動作設定
22.4.1 confファイルの書式
22.4.2 /var/kerberos/krb5kdc/kdc.conf
22.4.3 /etc/krb5.conf
22.4.4 /var/kerberos/krb5kdc/kadm5.acl
22.4.5 最低限の設定
22.5 プリンシパルの管理
22.5.1 データベース構築
22.5.2 kadmin / kadmin.localコマンドによる管理
22.6 Kerberosクライアントの設定
22.6.1 チケットを管理するコマンド
22.6.2 パスワードの変更
Chapter 23 NFSサーバ
23.1 NFSの概要
23.2 NFSサーバの導入
23.2.1 パッケージのインストール
23.2.2 サービスの起動設定
23.2.3 パケットフィルタリングの設定
23.2.4 SELinux保護
23.2.5 NFSv3とNFSv4との違い
23.3 NFSサーバの動作設定
23.3.1 サーバの起動時のオプション
23.3.2 IDマッピング(rpc.idmapd)
23.3.3 エクスポートテーブル
23.3.4 exportfs
23.4 NFSクライアントの動作設定
23.4.1 mountによるマウント/アンマウント
23.4.2 /etc/fstabによるマウント/アンマウント
23.4.3 Cockpitによる/etc/fstabの管理
23.5 セキュリティ機能を提供するサービス
23.5.1 パッケージのインストール
23.5.2 サービスの起動設定
23.5.3 SELinux保護
23.5.4 gssproxyデーモンの動作設定
23.5.5 rpc.gssdデーモンの動作設定
23.6 NFSv4 ACL
23.6.1 NFSv4 ACLとは
23.6.2 ACLの書式
23.6.3 ACLの設定
23.7 オートマウント
23.7.1 オートマウントの導入
23.7.2 オートマウントの起動
23.7.3 オートマウントの動作設定
23.7.4 LDAPを使った設定
Chapter 24 Sambaサーバ
24.1 Sambaの概要
24.1.1 Sambaとは
24.1.2 Sambaのプロトコル
24.2 Sambaの導入
24.2.1 パッケージのインストール
24.2.2 サービスの起動設定
24.2.3 パケットフィルタリングの設定
24.2.4 SELinux保護
24.3 Sambaの動作設定
24.3.1 smbd・nmbd・winbinddのオプション
24.3.2 /etc/samba/smb.confの構成
24.3.3 セクションの意味
24.3.4 変数置換
24.3.5 主要なパラメータ
24.4 ユーザ認証
24.4.1 Sambaが用意する認証の仕組み
24.4.2 ユーザ管理データベース
24.4.3 ユーザ管理とパスワード
24.4.4 ゲストユーザとユーザマッピング
24.4.5 Linuxパスワードとの同期
24.5 ファイル名の扱い
24.5.1 unicodeへの対応
24.5.2 日本語を扱うための設定
24.5.3 ケース混在のファイル名について
24.6 セキュリティ
24.6.1 インタフェース単位のアクセス制限
24.6.2 ホスト単位のアクセス制限
24.6.3 ユーザ単位のアクセス制限
24.7 この他のパラメータ
24.7.1 ブラウジング
24.7.2 ドメインマスター
24.7.3 名前解決
24.7.4 設定ファイルの分割
24.7.5 クライアントにメッセージを送る
24.7.6 ユーザ定義共有
24.7.7 VFS
24.8 ログ
24.8.1 デーモン毎のログファイル
24.8.2 クライアント毎のログ
24.9 Windowsドメインへの参加(winbind)
24.9.1 winbindの設定
24.9.2 /etc/nsswitch.confの設定
24.10 Sambaのプログラム
24.10.1 設定の確認(testparm)
24.10.2 Sambaサーバの状態確認
24.10.3 Samba共有領域をマウント
Chapter 25 NTPサーバ
25.1 NTPサービスの概要
25.2 NTPサービスの導入
25.2.1 パッケージのインストール
25.2.2 NTPサービスの起動設定
25.2.3 パケットフィルタリングの設定
25.2.4 SELinux保護
25.3 NTPクライアントとしての設定
25.3.1 クライアントの標準設定
25.3.2 参照先サーバの設定
25.3.3 NTPサーバの状態確認(chronyc)
25.4 NTPサーバの設定と管理
25.4.1 NTPサーバの設定
25.4.2 通信制御の設定
25.4.3 サーバ構成に合わせた時刻同期設定
25.5 ログ
Chapter 26 プロキシサーバ
26.1 プロキシサーバの概要
26.2 Squidの導入
26.2.1 パッケージのインストール
26.2.2 サービス起動設定
26.2.3 パケットフィルタリングの設定
26.2.4 SELinux保護
26.3 Squidの基本設定
26.3.1 標準設定
26.3.2 動作確認(squidclient)
26.4 透過型プロキシとしての設定
26.4.1 SELinuxの保護
26.4.2 squidの設定
26.4.3 パケットフィルタリングの設定
26.5 アクセラレータとしての設定
26.5.1 アクセス制御
26.5.2 アクセラレータとしての設定
26.5.3 参照サーバの設定
26.6 キャッシュの設定
26.6.1 メモリキャッシュの設定
26.6.2 ディスクキャッシュの設定
26.6.3 キャッシュ更新時間の設定
26.6.4 キャッシュマネージャ
26.7 Proxyユーザ認証の設定
26.8 ログ
26.9 クライアントの設定
26.9.1 プロキシサーバの手動設定
26.9.2 プロキシサーバの自動構成スクリプト
26.9.3 プロキシサーバの自動検出
Chapter 27 データベースサーバ
27.1 データベースの概要
27.2 PostgreSQLの導入
27.2.1 PostgreSQLの概要
27.2.2 パッケージのインストール
27.2.3 サービスの起動設定
27.2.4 パケットフィルタリングの設定
27.2.5 SELinux保護
27.2.6 データベースディレクトリの設定と作成
27.2.7 データベースサーバの基本設定
27.2.8 アクセス制御の設定
27.2.9 接続の確認
27.3 MySQLとMariaDBの導入
23.3.1 MySQLとMariaDBの概要
23.3.2 パッケージのインストール
27.3.3 サービスの起動設定
27.3.4 パケットフィルタリングの設定
27.3.5 SELinux保護
27.3.6 データベース管理ユーザの設定
27.3.7 データベースユーザの登録とアクセス制御
27.4 memcachedの導入
27.4.1 memcachedの概要
27.4.2 パッケージのインストール
27.4.3 サービスの起動設定
27.4.4 パケットフィルタリングの設定
27.4.5 SELinux保護
27.4.6 memcachedの設定
27.4.7 memcachedの動作確認
27.5 Redisの導入
27.5.1 Redisの概要
27.5.2 パッケージのインストール
27.5.3 サービスの起動設定
27.5.4 パケットフィルタリングの設定
27.5.5 SELinuxの保護
27.5.6 Redisの設定
27.5.7 Redisの動作確認
Part Ⅴ ネットワークサーバの管理
Chapter 28 リモート管理
28.1 リモート管理の概要
28.2 シリアルコンソール
28.2.1 シリアルコンソールの概要
28.2.2 シリアルコンソールの導入
28.2.3 シリアルポートからのインストール
28.3 Cockpit
28.3.1 Cockpitの概要
28.3.2 パッケージのインストール
28.3.3 サービスの起動設定
28.3.4 パケットフィルタリングの設定
28.3.5 SELinux保護
28.3.6 Cockpitの利用
28.3.7 Cockpitモジュールの有効化
28.4 リモートモニタリングサービス
28.4.1 PCPの概要
28.4.2 PCPパッケージの導入
28.4.3 コレクタの導入
28.4.4 モニタリングツール
28.4.5 Cockpitからのモニタ
Chapter 29 ネットワーク管理
29.1 ネットワーク管理の概要
29.2 ネットワーク設定ファイル
29.2.1 /etc/services
29.2.2 /etc/protocols
29.2.3 /etc/rpc
29.2.4 /etc/nsswitch.conf
29.2.5 /etc/host.conf
29.2.6 /etc/hosts
29.2.7 /etc/networks
29.3 デバイスとインタフェース
29.3.1 ネットワークハードウェア
29.3.2 ネットワークデバイス
29.3.3 ネットワークインタフェース
29.4 NetworkManagerサービス
29.5 ネットワーク環境の設定
29.5.1 nmcli
29.5.2 NetworkManager Text User Interface(nmtui)
29.5.3 Cockpitによる設定
29.6 ネットワーク管理・診断プログラム
29.6.1 ip
29.6.2 ss
29.6.3 ping
29.6.4 traceroute・tracepath
29.6.5 rpcinfo
Chapter 30 サービス管理
30.1 初期化プロセス
30.1.1 初期化プロセスとは
30.1.2 systemd
30.1.3 ユニット
30.2 systemctlによる管理
30.2.1 systemctlの概要
30.2.2 利用可能なサービスの取得(list-unit-files)
30.2.3 個別サービスの自動起動の有効化・無効化(enable・disable・is-enabled)
30.2.4 個別サービスの有効化・無効化(mask・unmask)
30.2.5 個別サービスの起動と停止(start・stop)
30.2.6 個別サービスの再起動とリロード(restart・reload)
30.2.7 個別サービスの状態確認(is-active・status)
30.2.8 起動サービスの状態確認(list-units・list-sockets)
30.2.9 サービスの依存関係の確認(list-dependencies)
30.2.10 ユニット定義ファイル更新の通知(daemon-reload)
30.3 Cockpitによる管理
30.3.1 サービス管理画面の表示
30.3.2 設定の変更
30.4 ユニット定義ファイル
30.4.1 ユニット定義ファイルの基本的な構造
30.4.2 ソケット型のユニット定義ファイル
30.4.3 タイマー型のユニット定義ファイル
30.4.4 ターゲット型のユニット定義ファイル
30.4.5 テンプレートユニット
Chapter 31 ログ管理
31.1 rsyslog
31.1.1 rsyslogの概要
31.1.2 rsyslogの導入
31.1.3 rsyslogの動作設定
31.1.4 ログの集中管理
31.1.5 Cockpitによるログの参照
31.2 logrotate
31.2.1 logrotateの概要
31.2.2 logrotateの導入
31.2.3 logrotateの動作設定
31.3 logwatch
31.3.1 logwatchの概要
31.3.2 logwatchの導入
31.3.3 logwatchの動作設定
31.3.4 logwatchのカスタマイズ
Chapter 32 SNMP
32.1 SNMPサービスの概要
32.1.1 SNMPの構成
32.1.2 MIBとOID
32.1.3 MIB変数
32.1.4 SNMPにおける通信
32.2 SNMPエージェントの導入
32.2.1 NET-SNMPの概要
32.2.2 パッケージのインストール
32.2.3 サービスの起動設定
32.2.4 パケットフィルタリングの設定
32.2.5 SELinux保護
32.3 SNMPエージェントの設定
32.3.1 基本設定
32.3.2 ucdavisパラメータの設定
32.3.3 ログ出力の設定
32.4 SNMPマネージャ
32.4.1 パッケージのインストール
32.4.2 snmpget
32.4.3 snmpgetnext
32.4.4 snmpwalk
32.4.5 snmpdelta
32.5 MRTG
32.5.1 MRTGの概要
32.5.2 パッケージのインストール
32.5.3 MRTGの起動設定
32.5.4 SELinux保護
32.5.5 MRTGの基本設定
32.5.6 MRTGの応用設定
Chapter 33 バックアップ(Amanda)
33.1 バックアップの概要
33.1.1 ディスクの冗長化とバックアップ
33.1.2 バックアップとメディア
33.1.3 バックアップの種類と選択
33.1.4 バックアップ計画
33.1.5 バックアップソフトウェアの選定
33.2 Amandaの概要
33.3 Amandaの導入
33.3.1 パッケージのインストール
33.3.2 Amandaクライアントの設定
33.4 Amandaサーバ
33.4.1 バックアップ条件の計画
33.4.2 バックアップ環境の整備
33.4.3 バックアップの設定
33.4.4 バックアップ対象の設定
33.4.5 環境のチェック
33.5 バックアップの実施と設定
33.5.1 バックアップの実施
33.5.2 自動バックアップ
33.6 クライアントでのデータリストア(amrecover)
33.7 サーバでのデータリストア(amrestore)
33.7.1 テープの変更
33.7.2 テープの巻き戻し
33.7.3 データの取り出し
33.8 Amandaサーバの設定ファイル
33.8.1 amanda.conf
33.8.2 advanced.conf
Chapter 34 バックアップ(Bacula)
34.1 Baculaの概要
34.2 Bacula File
34.2.1 パッケージのインストール
34.2.2 サービスの起動設定
34.2.3 パケットフィルタリングの設定
34.2.4 SELinuxの設定
34.2.5 Bacula Clientの設定
34.3 Bacula Storage
34.3.1 パッケージのインストール
34.3.2 サービスの起動設定
34.3.3 パケットフィルタリングの設定
34.3.4 SELinuxの設定
34.3.5 Bacula Storageの設定
34.4 Bacula Director
34.4.1 パッケージのインストール
34.4.2 サービスの起動設定
34.4.3 パケットフィルタリングの設定
34.4.4 SELinuxの設定
34.4.5 Catalogの設定
34.4.6 Bacula Directorの設定
34.5 Bacula Console
34.5.1 パッケージのインストール
34.5.2 Bacula Consoleの設定
34.6 Baculaバックアップシステムの利用
34.6.1 コンソールの起動と終了
34.6.2 ステータスの取得
34.6.3 ラベルの設定
34.6.4 ジョブの即時実行
34.6.5 リストア
Part Ⅵ その他のサービス
Chapter 35 サーバ仮想化
35.1 サーバ仮想化の概要
35.2 KVMの導入
35.2.1 KVMの概要
35.2.2 パッケージのインストール
35.2.3 仮想サーバ管理サービスの起動設定
35.2.4 SELinux保護
35.3 仮想マシンの管理
35.3.1 仮想サーバの作成
35.3.2 仮想マシンの管理
35.4 コマンドラインでの仮想マシン管理
35.4.1 仮想マシンの作成
35.4.2 仮想マシンの管理
35.4.3 その他のユーティリティ
35.5 ゲストOSの自動停止と自動起動
35.5.1 libvirt-guestsサービス
35.5.2 libvirt-guestsサービスの設定
35.6 コンテナ型仮想化
35.6.1 podmanの概要
35.6.2 podmanのインストール
35.6.3 コンテナ操作の基本
35.6.4 アプリケーション環境のコンテナ化とサービスの公開
35.6.5 Dockerfileによるコンテナイメージの作成
35.6.6 複数コンテナのネットワーク連携
Chapter 36 SSL/TLS証明書の作成
36.1 SSL/TLSの概要
36.1.1 SSLの概要
36.1.2 SSLプロトコルとTLSプロトコル
36.1.3 CAと証明書
36.1.4 証明書の種類
36.2 opensslの導入
36.2.1 opensslの概要
36.2.2 パッケージの導入
36.2.3 証明証作成環境の準備
36.3 自己署名証明書の作成
36.4 グローバル証明書の取得
36.4.1 証明書のリクエスト(CSR)の作成
36.4.2 証明書の主な発行組織
36.5 証明書の確認
Chapter 37 レガシーなサーバ
37.1 portmapper
37.1.1 portmapperの概要
37.1.2 パッケージのインストール
37.1.3 サービスの起動設定
37.1.4 パケットフィルタリングの設定
37.1.5 SELinux保護
37.2 TFTPサーバ
37.2.1 TFTPサービスの概要
37.2.2 パッケージのインストール
37.2.3 サービスの起動設定
37.2.4 パケットフィルタリングの設定
37.2.5 SELinux保護