できる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サーバーの作成方法
用語集
索引