さくらVPS CentOS7セットアップ（インストール〜SSH設定・Firewalld設定まで）

# さくらVPS CentOS7セットアップ（インストール〜SSH設定・Firewalld設定まで）

今まで6系を使っていたのですが、勉強もしたいので自前のVPSをCentOS7に変更した手順のメモを取りました。

6系ではiptablesとか自動設定や起動コマンドとか覚えていたのですが、7系は色々と違ったりしていました。これからコマンド覚えていこうと思います。。

* CentOS7インストール
* ログインの確認
* SSHの設定
* Firewalldの設定

## さくらVPS管理画面 手順

![01.jpg](https://qiita-image-store.s3.amazonaws.com/0/34020/ab62c291-1323-7d79-5db3-6e9f2746bcea.jpeg)

* さくらVPS管理画面にアクセス
* OSインストールからカスタムOSインストールを選択

![02.jpg](https://qiita-image-store.s3.amazonaws.com/0/34020/6a55dfcc-1a53-594b-a21e-7a2a6303efc4.jpeg)

* インストールOSからCentOS7を選択

![03.jpg](https://qiita-image-store.s3.amazonaws.com/0/34020/53958081-af88-1cd3-0d2c-94fa7b6c60a5.jpeg)

* VNCコンソール（HTML5版）を起動をクリック
* コンソール画面が立ち上がる

## CentOS7 設定

![04.jpg](https://qiita-image-store.s3.amazonaws.com/0/34020/24ba86a8-6bd0-fc62-319f-80583f1f7d25.jpeg)

* Install CentOS 7でEnter

![05.jpg](https://qiita-image-store.s3.amazonaws.com/0/34020/cd856f51-7542-57b0-47f3-d7a9a09b1f95.jpeg)

* 起動後、CentOSの初期画面が表示される（※SOFTWAREの項目はネットワーク環境によってソースの取得に時間がかかるようです。）
* 「SYSTEM」の「 INSTALLATION DESTINATION」をクリック

![06.jpg](https://qiita-image-store.s3.amazonaws.com/0/34020/fb416144-05ff-47e7-027d-c9a5e0444a95.jpeg)

* ディスクの選択画面で、すべてのディスクが選択されているのを確認後したら「Done」をクリック

![07.jpg](https://qiita-image-store.s3.amazonaws.com/0/34020/423baadf-89c5-27ed-70a0-abab08888058.jpeg)

現在のディスクの利用情報が表示されるようです。
ディスクのパーティションをカスタムしたい場合は、公式を参照してください。

* 標準のOSパーティションを利用するため、そのまま「Reclaim space」をクリック

![08.jpg](https://qiita-image-store.s3.amazonaws.com/0/34020/413165e5-e356-97a4-4801-96268d43c9a2.jpeg)

![09.jpg](https://qiita-image-store.s3.amazonaws.com/0/34020/a2b005c1-4658-93d1-84a3-e85772acc713.jpeg)

* RECLAIM DISK SPACEで「Delete ALL」をクリック
* 右下の「Reclaim space」をクリック

![10.jpg](https://qiita-image-store.s3.amazonaws.com/0/34020/e8ef37ff-952d-46c0-7574-a7a340cfe0e6.jpeg)

* 「Begin Installation」をクリックしてインストール開始

## OSのインストール開始

![11.jpg](https://qiita-image-store.s3.amazonaws.com/0/34020/a4cd85d6-976e-c9b6-a13d-308ce15ce5c7.jpeg)

* インストール開始後、rootのパスワードとユーザ（任意）のパスワードを設定する

![12.jpg](https://qiita-image-store.s3.amazonaws.com/0/34020/31863ae5-8253-df74-a3a4-453dd7bf0dc7.jpeg)

* パスワードと確認用パスワードを入力してDone（強度が低いパスワードだと「Done」を2回クリックする必要がある）

## インストール完了後、起動

すべてのインストールが完了後、仮想サーバは自動的に電源がOFFの状態になるのでコンソールから起動させて完了です。

## SSHの初期設定と鍵の設定まで

* CentOS7にrootでログイン（xxxはさくらVPSのIP）

```
$ ssh root@xxx.xxx.xxx.xx
```

## yumアップデート

```
# yum -y update
```

### ユーザの作成（GUIでユーザを作成していない場合）

```
# useradd ユーザ名  // ユーザを作成する
# passwd ユーザ名  // ユーザのパスワードを設定
```

### 作成したユーザをsudoが使えるグループに所属させる

* wheelグループに、作成したユーザを所属

```
# usermod -G wheel ユーザ名
```

* wheelグループのみ管理者になれるように設定

```
# vi /etc/pam.d/su
```

```
#auth sufficient pam_wheel.so trust use_uid
↓
auth sufficient pam_wheel.so trust use_uid
```

* wheelグループをsudoできるように設定

```
# visudo
```

```
%wheel ALL=(ALL) ALL  // コメントアウトを外す
```

* 別のターミナルを立ち上げてユーザからsshログイン
* sudoができるか確認する

```
ssh ユーザ名@xxx.xxx.xxx.xx
```

```
$ sudo -s
```

### 公開鍵の設定をする

* ローカルから公開鍵認証でSSHできるように設定する
* 作成したユーザで設定を行う

### SELinuxの設定

SELinuxを無効にする。※理解している場合は有効にしておいたほうが良いと思います。

* 設定ファイルのenforcingをdisabledに変更
* 保存

```
$ sudo vi /etc/sysconfig/selinux
```

```
SELINUX=enforcing
↓
SELINUX=disabled
```

* OSを再起動

```
$ shutdown -r now
```

* 再起動後、稼働状況を確認

```
$ getenforce
```

### Firewalldの設定

* Firewallで、sshでアクセスするポートを開ける
* ポート：10222を追加

```
$ sudo firewall-cmd --add-port=10222/tcp
```

* 再起動しても10222を使う

```
$ sudo firewall-cmd --permanent --add-port=10222/tcp
```

* ポートが開いているか確認

```
$ sudo firewall-cmd --list-ports
```

### 鍵作成・配置（Mac）

* Macのローカル環境で鍵を作成する
* ユーザディレクトリに.sshフォルダを作成

```
$ mkdir ~/.ssh
$ cd ~/.ssh
$ ssh-keygen -t rsa
```

* VPSへ公開鍵を転送する（ファイル名は、authorized_keys）
* 転送先のユーザディレクトリに.sshフォルダを作成する

```
scp ~/.ssh/id_rsa.pub ユーザ名@xxx.xxx.xxx.xx:~/.ssh/authorized_keys
```

* 権限の強化

```
$ ssh ユーザ名@xxx.xxx.xxx.xx
$ chmod 700 /home/ユーザ名/.ssh
$ chmod 600 /home/ユーザ名/.ssh/*
```

* sshdの設定

```
$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup  // sshのconfigファイルのバックアップをとる
$ sudo vi /etc/ssh/sshd_config
```

* 変更部分

```
# ポート番号
Port 10222
# rootでのログインを拒否
PermitRootLogin no
# パスワードでのログインを拒否
PasswordAuthentication no
# 公開鍵でのログインを許可
RSAAuthentication yes
PubkeyAuthentication yes
```

### 接続確認

* 設定したPortと鍵で接続できるか確認する

```
ssh -p 10222 -i ~/.ssh/id_rsa ユーザ名@xxx.xxx.xxx.xx
```

## 参考サイト

* [さくらVPSにCentOS7をインストールしたときにやる設定](https://runble1.com/sakura-vps-centos7/)
* [カスタムOSインストールガイド - CentOS7 / ScientificLinux7 / Fedora 28](https://help.sakura.ad.jp/hc/ja/articles/206055602-%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0OS%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%82%AC%E3%82%A4%E3%83%89-CentOS7-ScientificLinux7-Fedora-28)

まずは、初期設定は以上になります。
次回はNginxやPHPとDB周りのインストールができればと思っています。