できるPRO CentOS 7サーバー 7.2(1511)対応


できるPRO CentOS 7サーバー できるPROシリーズ


インプレス


著者:辻秀典、できるシリーズ編集部、渡辺高志


まえがき
本書の読み方

基礎編
第1章 Linuxについて知る
1-1 Linuxってなに?<Linuxの基礎知識>
 LinuxはOSのひとつ
 Linuxはサーバー用のOSに最適
 ネットワークとの親和性が高いLinux
 幅広い分野で活躍するLinux
1-2 CentOSを使ってみよう<CentOSのメリット>
 サーバーとしてよく使われるCentOS
 リリースタイミングとサポート
1-3 サーバをどこに置くのか決めよう<サーバーを用意する選択肢>
 サーバーを手元に置くかサービス上で利用するか
 手元にサーバーを手配する場合(物理サーバー)
 VPSやクラウドサービスを利用する場合
1-4 サーバーの用途を検討しよう<構成の選択>
1-5 インターネットサーバーを作ろう<インターネットサーバーの概要>
 インターネットサーバーを持つとできること
 インターネットサーバーの種類と役割
 固定IPのインターネットサーバーのネットワーク構成
 ダイナミックIPのインターネットサーバーのネットワーク構成
1-6 イントラネットサーバーを作ろう<イントラネットサーバーの概要>
 イントラネットサーバーの種類と役割
 イントラネットサーバーのネットワーク構成
STEP UP <CentOSとLinux、オープンソースを理解しよう>

第2章 回線とネットワークを準備する
2-1 TCO/IPについて知ろう<TCP/IPの役目>
 TCP/IPってなに?
 TCP/IPをひもといてみる
 2種類のIPアドレス
 IPv4のアドレス
 IPv6のアドレス
 グローバルIPアドレスとプライベートIPアドレス
 ネットマスクの意味を理解しよう
2-2 ネットワークのしくみを知ろう<インターネットとLAN>
 LANはネットワークの最小単位
 インターネットはネットワークの集合体
 セグメントはネットワークの基本単位
 ルーターが繋がって世界をカバー
 NATでLANとインターネットを中継
2-3 ホスト名ってなに?<名前解決>
 ホスト名とドメイン名
 ホスト名とIPアドレス
 DNSで名前解決する
2-4 サーバー用に回線を導入するには<回線の種類と遊び方>
 アクセスラインとインターネット接続サービスの両方が必要
 インターネットサーバーには固定IPアドレスが必要
 ダイナミックIPでも簡易インターネットサーバーは運用できる
2-5 ネットワークに必要なものをそろえよう<ネットワーク関連機材の準備>
 イーサネットを利用するために必要な機器
 ルーターの役割
 ルーター選びの条件
2-6 ドメイン名のしくみを知ろう<ドメイン名の規則>
 ドメイン名の表記方法
 汎用JPドメイン名と都道府県型JPドメイン名
 国別で区分けしないドメイン名
2-7 独自ドメイン名を取得するには<JPドメインの取得>
 ドメイン名の検索
 ドメイン名を取得申請するには
2-8 固定IP回線にルーターをつなぐには<固定IPのルーターの設定>
STEP UP <2進数と10進数の違いを知ろう>

第3章 Linuxをインストールする
3-1 インストールの種類を確認しよう<インストール手順と設定内容の確認>
 IPアドレスの設定
 VPSやクラウド環境のLinux
3-2 インストールするコンピュータを用意しよう<必要なハードウェア>
 コンピュータの準備
3-3 CentOSをインストールするには<付属CD-ROMからのインストール>
3-4 画面がうまく映らない場合は<テキストモード>
3-5 USBメモリからインストールするには<インストールUSBメモリの作成>
 CentOSはインターネットからダウンロードできる
 UNetbootinでUSBメモリに書き込む
STEP UP <複数のマシンにインストールする場合>

第4章 基本操作をマスターする
4-1 Linuxで作業を行うには<ログインとログアウト>
 Linuxの作業はログインから始まる
 Linuxのユーザーには2種類ある
4-2 コマンドの使い方をマスターしよう<コマンド入力の基本>
 コマンドと引数の関係を理解しよう
4-3 ディレクトリを理解しよう<Linuxのディレクトリ構造>
 LinuxのディレクトリはWindowsのフォルダと同じもの
 ファイルの位置を指定する「パス」
 Linuxは大文字と小文字は区別される
4-4 カレントディレクトリを変更するには<cd>
 cdコマンドはカレントディレクトリの変更に使う
4-5 ディレクトリの内容を表示するには<ls>
 lsコマンドはディレクトリの内容の表示に使う
4-6 パーミッションを理解しよう<パーミッション>
 パーミッションはファイルやディレクトリのアクセス権限を表す
 パーミッションを指定するときの表現方法
4-7 ファイルの基本的な操作を覚えよう<cp、mkdir、mv、rm、ln、tar>
 ファイルのコピーはcpコマンド
 ディレクトリの作成はmkdirコマンド
 ファイルの移動はmvコマンド
 ファイルの削除はrmコマンド
 シンボリックリンクの作成はln -s
 ファイルの圧縮と展開はtar
4-8 コマンドやファイル名を楽に入力するには<履歴と入力補完>
 履歴を使えばコマンドを楽に再入力できる
 入力補完機能でファイル名やディレクトリ名は楽に入力できる
4-9 複数のファイルをまとめて指定するには<コマンドの特殊記号>
 *(アスタリスク)はすべての文字列に当てはまる
 ?(クエスチョンマーク)はすべての1文字に当てはまる
 [・・・](ブラケット)は、当てはまる1文字の候補を指定する
 {・・・,・・・}(中カッコ)は、当てはまる文字列の候補を指定する
 特殊記号を通常の文字として扱うときには
4-10 コマンドの結果をファイルに保存するには<リダイレクト>
 標準入力と標準出力を切り替えるリダイレクト
 標準入力のリダイレクト
 標準出力のリダイレクト
4-11 コマンドの結果を他のコマンドに受け渡すには<パイプ>
 パイプで複数のコマンドを組み合わせる
 フィルタを利用して便利に使う
4-12 複数のコマンドを切り替えて実行するには<ジョブの操作>
 実行中のコマンドはCTRL+Zでサスペンドできる
 ジョブには3つの状態がある
4-13 ファイルを編集するには<vi>
 viの使い方
STEP UP <manコマンドを活用しよう>

第5章 Linuxを準備する
5-1 ユーザーの意味を確認しよう<ユーザー管理のしくみ>
 ログインとユーザーのしくみ
 ユーザーの意味
 ユーザーとグループの関係を確認しよう
5-2 管理者権限で操作するには<sudo>
 rootで直接ログインしないのがLinuxの原則
 一般ユーザーから管理者権限で操作するsudo
5-3 Linuxを使うユーザーを登録するには<useradd>
 作成したユーザーを確認するには
 ユーザーを削除するには
 ユーザー名とユーザーIDの関係
5-4 パスワードを変更するには<passwd>
 パスワードは大事な鍵
5-5 グループを新しく作るには<グループの編集>
5-6 SELinuxを知ろう<SELinux>
 ファイルにアクセスできるプロセスを限定するしくみ
 SELiluxの設定を無効にするには
5-7 外部メディアを使うには<マウント/アンマウント>
 CD/DVD-ROMなどのディスクはマウントして使う
 ディスクを取り出すにはアンマウントしなければならない
5-8 Linuxを終了するには<shutdown>
 shutdownコマンドはほとんど使わない
 shutdownコマンドの使い方
STEP UP <ユーザーとパスワードの管理>

第6章 サーバーを準備する
6-1 サービスとポートを理解しよう<デーモン/サービス/ポート>
 デーモンはサービスを提供するプログラム
 サービスにはポートが割り当てられる
 ポートはfirewalldで制限する
6-2 サービスのしくみを理解しよう<systemdとunitの概要>
 systemdの役割
 unit単位でサービスを管理
 systemdコマンドで操作
6-3 セキュリティに気を付けよう<インターネットサーバーのセキュリティ>
 インターネットサーバーは常に攻撃にさらされている
 サービスやソフトウェアは最小限に
6-4 不要なサービスを停止するには<サービスの停止>
 サービスを停止する
 サービスの自動起動を停止する
 自動起動するサービスを確認する
 サービスを起動する
 停止しておくサービス
 主なサービス一覧
6-5 ソフトウェアをインストールするには<パッケージのインストール>
 インターネット経由でインストール
 rpmファイルを直接インストールすることもできる
 rpmファイルをインストール
6-6 CentOSを最新の状態に保つには<アップデート>
 自動更新を設定するには
6-7 ファイアウォールを設定するには<firewalld>
 firewalldとfirewalld-cmd
STEP UP <追加できるリポジトリを知ろう>

第7章 Linuxをリモート操作する
7-1 他のコンピュータからLinuxが使えるしくみを理解しよう<SSH>
 Linuxは他のコンピュータからでも操作できる
 SSHは通信データを暗号化する
7-2 Linuxをリモート操作できるようにするには<sshdの設定>
 サービスを設定してから起動しよう
7-3 WindowsからLinuxを使うには<TeraTermを使ったログイン>
 TeraTermをインストールする
 TeraTermを使う
7-4 データを安全に転送するには<WinSCPを使ったファイル転送>
7-5 より安全にリモート操作するには<公開鍵認証>

インターネット編
第8章 DNSサーバーを作る
8-1 DNSサーバーのしくみを理解しよう<DNS>
 DNSサーバーの役割
 DNSはホスト名とIPアドレスを変換するサービス
 DNSにはプライマリとセカンダリがある
 DNSサーバーの2つの役割
 DNSサーバーのキャッシュ機能
 リゾルバとコンテンツサーバーの分離
8-2 DNSサーバーをインストールするには<BINDのインストール>
8-3 DNSサーバーを作るには1<設定ファイルの準備>
8-4 DNSサーバーを作るには2<named.confの編集>
8-5 DNSサーバーを作るには3<BINDの設定ファイル>
 レコードの基本構造
8-6 DNSサーバーを作るには4<正引き情報の設定>
8-7 DNSサーバーを作るには5<逆引き情報の設定>
8-8 DNSサーバーが正しく動作しているかどうかを確認するには1<dig>
 ホスト名からIPアドレスを検索する
 IPアドレスからホスト名を検索する
 設定内容を変更したときには、必ずシリアル番号を増やそう
8-9 DNSサーバーが正しく動作しているかどうかを確認するには2<外部との接続の確認>
 メール交換用のホストが定義されているかどうか確認する
 自分のネットワーク外にあるホストのIPアドレスを検索する
 自分のネットワーク外にあるDNSサーバーを使ってホスト名を検索する
STEP UP <イントラネットでDNSサーバーを上手に使う>

第9章 Webサーバーを作る
9-1 Webページが表示されるしくみを理解しよう<Apache HTTP Server>
 Webページが表示されるしくみ
 Apacheの役割
 Apacheのドキュメントルート
9-2 Webサーバーソフトをインストールするには<Apache HTTP Serverのインストール>
9-3 自分好みにWebサーバーを変えるには<設定ファイルの変更>
 ブラウザからの見え方を自由に設定できる
 特定のディレクトリをドキュメントルートのサブディレクトリに割り当てる
 インデックスファイルを新しく追加する
 LinuxユーザーごとにWebページを作れるようにする
 LinuxユーザーごとにWeb用のディレクトリを作る
 特定のURLを転送する
9-4 www以外のホスト名をWebサーバーで使うには<仮想ホスト>
9-5 WebサーバーでCGIを利用するには<CGI>
 CGIを使えるようにするには
 インデックスファイルにもCGIを使うことができる
9-6 Webページにアクセス制限をかけるには<アクセス制限>
 アクセス元を限定したホームページを作る
 httpd.confによるアクセス制限
 .htaccessによるアクセス制限
9-7 Webページにパスワードをかけるには<パスワード認証>
 特定の人だけがアクセスできるページを作る
 httpd.confによるパスワード認証
 .htaccessによるパスワード認証
9-8 SSLを使うには<mod_ssl>
 SSLと証明書の種類
 SSLの証明書を発行する認証局(CA)
 鍵とCSRを作る
 証明書を購入する
 1本にまとめた証明書を作る
 Apacheに設定する
 テスト用に自己署名の証明書を使う場合
9-9 リバースプロキシを立てるには<mod_proxy>
 リバースプロキシの役割
 リバースプロキシを立てる
9-10 ダイナミックDNSに登録するには<ダイナミックDNSサービス>
9-11 ダイナミックIPのサーバーを公開できるようにするには<ポートマッピングの設定>
9-12 ダイナミックDNSの自動更新を設定するには<ダイナミックDNSの更新>
STEP UP <Webサーバーの状態を気にしよう>

第10章 メールサーバーを作る
10-1 メールのしくみを理解しよう<SMTPサーバーとPOPサーバー>
 メール配送のしくみ
 Linuxのユーザー名がメールアドレスに対応する
 メールサーバーの役割
10-2 SMTPサーバーを作るには<Postfixの設定>
10-3 POPサーバーを作るには<Dovecotのインストール>
 メールソフト側で設定する
 POP以外にもIMAPという方法もある
10-4 共有できるメールアドレスを作るには<aliases>
 root宛のメールを他のユーザーに転送する
 メールアドレス同士を結び付ける/etc/aliases
 複数の人に同時に同じメールを送るしくみが作れる
 メーリングリストを作る
 メーリングリストのメンバーが多くなったら
10-5 メールのセキュリティを強化するには1<接続の暗号化と認証>
 メールサーバーに潜む危険
10-6 メールのセキュリティを強化するには2<POPとSMTPのSSL/TLS化>
 メールソフト側で設定する
10-7 メールのセキュリティを強化するには3<SMTP認証>
 Dovecotを使って認証する
 メールソフト側で設定する
10-8 メールを安心して使えるように管理しよう<メールサーバーの管理>
 メールが相手に届かない
 外部の人からのメールが受け取れない
 特殊なアカウント宛のメール
 他の管理者やユーザーからのメール
STEP UP <メールサーバーでのSPAM対策>

第11章 ブログやオンラインストレージを作る
11-1 ブログサーバーを作るには1<PHPとMariaDBのインストール>
11-2 ブログサーバーを作るには2<PHPとMySQLのインストール>
 WordPressのダウンロード
 WordPressのインストールと起動
11-3 ブログサーバーを作るには3<WordPressの初期設定>
11-4 オンラインストレージを作るには<ownCloud>
 自前で構築できる便利なオンラインストレージ
 ownCloudをインストールする
 初期設定する
11-5 オンラインストレージを使うには<ownCloudへのアクセス>
 Webブラウザからアップロードする
 Windows用クライアントを使う
11-6 Gitリポジトリ管理サーバ-を作るには<GitLab>
 GitHubとGitLab
 GitLabのインストール
 Webから初期設定する
STEP UP <さまざまなWebアプリケーション>

第12章 クライントをインターネットに接続する
12-1 クライントがインターネットにつながるしくみを理解しよう<NAT>
 NATのしくみ
 2枚のネットワークカードが必要
12-2 クライアントをインターネットにつなげるには1<ネットワークカードの増設>
12-3 クライアントをインターネットにつなげるには2<NATの設定>
12-4 IPアドレスを自動的に割り当てるには<DHCPサーバーの設定>
12-5 プロキシサーバーのしくみを理解しよう<Squid>
 プロキシの役割
 キャッシュに保存されていない場合
 キャッシュに保存されている場合
12-6 プロキシサーバーを作るには<Squidのインストール>
 クライアントの設定
STEP UP <NATを使うメリット>

イントラネット編
第13章 DHCPサーバーを作る
13-1 イントラネットのしくみを確認しよう<イントラネットとDHCPサーバー>
 イントラネットを構築するには
 DHCPとIPアドレスを割り当てる
13-2 IPアドレスを自動的に割り当てるには<DHCPサーバーの設定>
 DHCPの役割
13-3 WindowsやMac OS Xをイントラネットに接続するには<WindowsやMac OS Xのネットワーク設定>
STEP UP <DHCPのしくみとブロードキャスト>

第14章 Windows用のファイルサーバーを作る
14-1 Linuxがパソコンのファイルサーバーになるしくみを理解しよう<Sambaの役割>
 そのままではWindowsのパソコンとLinux間でデータのやりとりはできない
 Sambaの役割
 SambaとLinuxではユーザーの管理方法が異なる
14-2 パソコンからLinuxにあるファイルを扱うには<Samba>
 smb.confの確認方法
 LinuxのユーザーとSambaのユーザーはユーザー名が同じ
14-3 パソコンからLinuxのファイルサーバーにアクセスするには<Sambaの利用>
 Windowsのクライアント側の設定
 Windowsからの共有フォルダの使い方
 WindowsからSambaのパスワードを変更するには
 パスワードの変更
14-4 誰もが自由に使えるフォルダを作るには<共有フォルダの作成>
 ディレクトリのパーミッションを設定する
14-5 特定のユーザーだけが使えるフォルダを作るには<アクセス権の設定>
 グループを使うメリット
STEP UP <Sambaのパスワードはなぜ別に設定するのか?>

第15章 プリントサーバーを作る
15-1 ネットワークでプリンタを使おう<プリンタの共有>
 プリンタを共有するメリット
 Linuxによりネットワークで共有したほうがよいプリンタ
 CUPSでプリンタを共有する手順
15-2 プリンタを共有するには<CUPS>
 CUPSのインストール
 CUPSの設定
15-3 共有プリンタを使うには<クライアントパソコンの設定>
STEP UP <プリンタの種類と接続方法>

管理編
第16章 サーバーを仮想化する
16-1 仮想マシンってなに?<KVM>
 仮想マシンでサーバーを柔軟に使う
 CentOSでKVMを使おう
 KVMと仮想化技術の方式
 KVMとQEUM、libvirtの関係
16-2 KVMを使うには<KVMのインストール>
16-3 仮想化マシンを作成するには<virt-install>
16-4 仮想化マシンを作成するには<virsh>
 操作画面をホストと仮想マシンとで切り替える
 仮想マシンからホストに移る
 ホストから仮想マシンに移る
 仮想マシンを起動・終了する
 Linux起動時に仮想マシンが起動するようにする
 仮想マシンを削除する
16-5 コンテナってなに?<Docker>
 コンテナってなに?
 Dockerってなに?
16-6 コンテナを使うには<Dockerの実行>
 Dockerのインストール
 Dockerの実行
STEP UP <クラウドは仮想化技術に支えられている>

第17章 Linuxを保守する
17-1 Linuxの状態を知ろう<Linuxの観察>
 見るべき情報とは
 CPUの負荷の状態を見る
 プロセスの状態を見る
 プロセスの状態を監視する
 反応しないプログラムを止めるには
 ネットワークカードの状態を見る
17-2 ログを確認しよう<ログの観察>
 ログファイルを見てサーバーの状態を観察しよう
 rsyslogdの機能
17-3 サーバーへのアクセスを制限するには<firewalldを使ったアクセス制限>
 特定のIPアドレスからの全てのアクセスをブロックする
 特定のIPアドレスからの全てのアクセスを許可する
 特定のIPアドレスからのみsshを許可する
17-4 ハードディスクの容量が足りなくなったときは<ディスク容量の確認とバックアップ>
 容量の確認方法
 不要なファイルの整理方法
 設定ファイルと共有ファイルをバックアップする
 Linuxの環境を別のコンピュータに移す
17-5 ハードディスクを増設するには<ディスクの追加>
 パーティションの分割
 LVMによるディスクの管理
 パーティションを作成する
 ハードディスクを増設する(そのままマウントする場合)
 ハードディスクを増設する(LVMで追加する場合)
17-6 時刻を正確に合わせるには<chronyのインストールと設定>
 クライアントパソコンの時刻を合わせる
 Linuxサーバーの場合
 Windowsの場合
STEP UP <セキュリティに気を配ろう>

付録1 yumでプロキシを指定するには
付録2 セカンダリDNSサーバーの作成方法

用語集
索引

書籍目次

Posted by shi-n