CentOS7の初期セットアップ手順

# [概要]
CentOS7を使う上で、自分がよく使う設定をまとめます。

# [事前準備]
* CentOS7 minimal の iso ファイルを準備しておく
 - http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso

# [作業内容]
## CentOS7 minimal のインストール
### install メディアから起動
`Install CentOS 7` を選択しEnter
基本、デフォルトで選ばれているはずなので、そのままEnterで問題ないです。
![centos7_install](http://drive.google.com/uc?export=view&id=0Byh1aAqbAigJTXJiNUt3M3pXalk)

### インストールの言語を選択
日本語を選択して、`続行(C)`をクリック
![centos7_install_language](http://drive.google.com/uc?export=view&id=0Byh1aAqbAigJMWdXbnhUTWg2MkE)

### インストール概要設定
各設定を実施していきます
![![example](http://drive.google.com/uc?export=view&id=0Byh1aAqbAigJZHlVYVFlekZxNmM)](http://drive.google.com/uc?export=view&id=0Byh1aAqbAigJZHlVYVFlekZxNmM)

#### 日付と時刻(T) 設定
とりあえず、下記の点だけ設定されていることを確認すれば大丈夫です。
`ネットワーク時刻(N)`に関しては、インストール後設定していくので、そのままで :ok: です。

|設定値 |値   |
|------|-----|
|地域(R)|アジア|
|都市(C)|東京 |

#### キーボード(K) 設定
デフォルトで日本語キーボードになっているので、そのままでいいかと思います！
自分みたいに英語キーボードを使っている場合は、左下の`+`ボタンから追加しから、不要の`日本語`を`-`ボタンで削除すればOKです。
確認ができたら、`完了(D)`をクリック

![centos7_timezone](http://drive.google.com/uc?export=view&id=0Byh1aAqbAigJSnlGZE41OUJid2s)

#### 言語support(L) 設定
日本語になっているか確認し、意図した言語になってたら`完了(D)`をクリック
![centos7_language_support](http://drive.google.com/uc?export=view&id=0Byh1aAqbAigJbzJ2STgxYmZicjA)

#### SECURITY POLICY 設定
この設定を実施すると、`OpenSCAP` がインストールされて指定されたプロファイルに沿ったセキュリティチェックが実行されます。
この機能は、インストール後でも実施できるので、`オフ`にして`完了(D)`をクリック
![centos7_security_policy](http://drive.google.com/uc?export=view&id=0Byh1aAqbAigJbjd5akhmNE8yWVE)

#### インストールソース(I) 設定
これはこのままでいいので、`完了(D)`をクリック
![centos7_security_policy](http://drive.google.com/uc?export=view&id=0Byh1aAqbAigJeVE5RTU4dFJ0cmM)

#### ソフトウェアの選択(S)
最小構成でいいので、`完了(D)`をクリック
![centos7_software](http://drive.google.com/uc?export=view&id=0Byh1aAqbAigJVDdoTzB1LWN5ZXc)

#### インストール先(D)
`ローカルの標準ディスク`にチェックが入っていることを確認して、`完了(D)`をクリック
![centos7_install_device](http://drive.google.com/uc?export=view&id=0Byh1aAqbAigJMnN0a29WSzhnc1k)

#### KDUMP 設定
![centos7_kdump](http://drive.google.com/uc?export=view&id=0Byh1aAqbAigJYTB5MWt5UkdRUFE)

#### ネットワークとホスト名(N) 設定
イーサネットの設定を`オン`にして、`ホスト名(H)`を設定します。
設定後、右下の`設定(O)`をクリックして詳細設定を実施します。
![centos7_network1](http://drive.google.com/uc?export=view&id=0Byh1aAqbAigJdFdWZEUtYVNrSlU)

##### eht0 の編集 の 全般 設定
* 下記の2つの項目はチェックを入れておいていいと思うので、チェックを入れます。
 - この接続が利用可能になったときは自動的に接続する(A)
 - 全ユーザがこのネットワークに接続可能にとする(U)

![centos7_eth0_general](http://drive.google.com/uc?export=view&id=0Byh1aAqbAigJOWl6ek41ejhtQXM)

##### eth0 の編集 の Ethernet 設定
これはそのままで問題ので確認する程度で。
![centos7_eth0_ethernet](http://drive.google.com/uc?export=view&id=0Byh1aAqbAigJbzhHNzNlc0VvMVk)

##### eth0 の編集 の 802.1x セキュリティ 設定
この機能は使わないので、チェックを入れずにそのままにしておきます。

![centos7_802_1x](http://drive.google.com/uc?export=view&id=0Byh1aAqbAigJXzRFSmd1MzQ4aWs)

##### eth0 の編集 の DCB 設定
この機能も使わないので、そのままチェックを入れずにしておきます。
![centos7_dcb](http://drive.google.com/uc?export=view&id=0Byh1aAqbAigJbkRlOEY5RXd3bEE)

##### eth0 の編集 の IPv4のセッティング 設定
`方式(M)`に変更して下記の項目を自分の環境に合わせて設定します。

|項目        |値              |
|-----------|----------------|
|方式(M)     |手動            |
|アドレス      |192.168.172.102|
|ネットマスク   |24             |
|ゲートウェイ   |192.168.172.1  |
|DNSサーバ(V)|192.168.172.1  |

![centos7_eth0_ipv4](http://drive.google.com/uc?export=view&id=0Byh1aAqbAigJNDFDMW02cWRhems)

##### eth0 の編集 の IPv6のセッティング 設定
IPv6は使わないので、`方式(M)`を`無視`に設定します。

![centos7_ipv6](http://drive.google.com/uc?export=view&id=0Byh1aAqbAigJS0o2U0J6NG13cWM)

これでもろもろ設定が完了したので、`保存(S)`をクリックして完了させます。

##### ネットワークとホスト名(N) 設定の確認
ネットワーク設定が正しくされているか確認して、問題なかったら`完了(D)`をクリック

![centos7_network_host](http://drive.google.com/uc?export=view&id=0Byh1aAqbAigJLU93MElsS09iaVU)

##### CentOS7のインストール開始
設定が一通り完了したら、右下の`インストールの開始(B)`をクリックし、インストール開始します。

![centos7_general_end](http://drive.google.com/uc?export=view&id=0Byh1aAqbAigJSVA2bkxOSGNtbEU)

#### インストールユーザ作成
インストール中に root のパスワードとユーザ作成ができるので実施します。

![centos7_install_user_setup](http://drive.google.com/uc?export=view&id=0Byh1aAqbAigJckVWYXFyWTZLVnM)

##### rootパスワード設定
rootのパスワードを入力し、`完了(D)`をクリック
※パスワードが簡単過ぎると、警告が表示され2回Enterを押す必要があります。
rootのパスワードなので、予測しにくく難しいパスワードを設定するようにしてください。
![centos7_root_pass](http://drive.google.com/uc?export=view&id=0Byh1aAqbAigJeHpqSTZwOEFoZTQ)

##### ユーザの作成
下記の内容を内容を入力します。
完了したら、`完了(D)`をクリック

|項目                                   |値          |
|--------------------------------------|------------|
|フルネーム(F)                           |フルネーム     |
|ユザー名(U)                             |ユザー名     |
|このユーザを管理者にする                    |チェックを入れる|
|このアカウントを使用する場合にはパスワードを必要する|チェックを入れる|

![centos7_user_setup](http://drive.google.com/uc?export=view&id=0Byh1aAqbAigJREVqZWxPT244a2c)

### 設定完了後の再起動実施
rootパスワードとユーザ作成ができたので、`再起動(R)`をクリックし、再起動を行います。

![centos7_reboot](http://drive.google.com/uc?export=view&id=0Byh1aAqbAigJTHdHZW5rb1MwYjg)

## パッケージをアップデート
```bash
$ sudo yum update
```

## あると絶対便利パッケージをインストール
```bash
### 時刻同期
$ sudo yum -y install ntpdate

### ntpdの代わり(Centos7から変更された)
$ sudo yum -y install chrony

### テキストエディタ
$ sudo yum -y install vim

### mailコマンド
$ sudo yum -y install mailx

### zip解凍に使う
$ sudo yum -y install unzip

### bashの補完機能強化
$ sudo yum -y install bash-completion
```

## 不要なデーモンを停止
ここは、使用用途手によって変わってくると思うので、適宜変えてください。

```bash
### システム監査結果のログ保存を行う
$ sudo systemctl disable auditd.service

### カーネルクラッシュのダンプ取得
$ sudo systemctl disable kdump.service
```

## sshdの設定
### sshd_config のバックアップ

```bash
$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_org
```

### コメント解除（rootでのログインを許可しない）
```bash
$ sudo sed -i -e "s/^#PermitRootLogin yes/PermitRootLogin no/g" /etc/ssh/sshd_config
```

### コメント解除（パスワード無しでログインを許可しない）
```bash
$ sudo sed -i -e "s/^#PermitEmptyPasswords no/PermitEmptyPasswords no/g" /etc/ssh/sshd_config
```

### SELinuxを無効にする
#### selinux の config のバックアップ

```bash
$ sudo cp /etc/selinux/config /etc/selinux/config_org
```

```bash
$ sudo sed -i -e "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
```

### 設定を反映させるため再起動
```bash
$ sudo shutdown -r now
```

#### 再起動がめんどくさい時は、下記で無効
```bash
$ sudo setenforce 0
```

### Chrony設定(NTP)
一度時刻を同期しておく

```bash
$ sudo ntpdate ntp.nict.jp
```

#### chrony.conf のファイルバックアップ
```bash
$ sudo mv /etc/chrony.conf /etc/chrony.conf.org
```

#### chronyの設定ファイル編集
```bash
$ sudo sh -c "echo -e  'server ntp.nict.jp\nserver ntp.nict.jp\nserver ntp.nict.jp' > /etc/chrony.conf"
### sudo を使ってリダイレクトを使う際は、 sh -c "{command} で実行する必要がある"
```

#### chronyを起動
```bash
$ sudo systemctl start chronyd
```

#### 自動起動設定
```bash
$ sudo systemctl enable chronyd
```

#### chronyd の動作確認
```bash
$ chronyc sources -v

210 Number of sources = 3

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^? ntp-b3.nict.go.jp             1   6     3    59   -692ms[ -692ms] +/- 4640us
^? ntp-a2.nict.go.jp             1   6     3    59   -689ms[ -689ms] +/- 2469us
^? ntp-b2.nict.go.jp             1   6     3    58   -690ms[ -690ms] +/- 2606us
```

### システムグループを作成
```bash
$ sudo groupadd staff
```

#### システムグループに自分を追加する
```bash
sudo usermod -aG staff {myuser}
```

## [事後確認・作業]