さくらVPSの初期設定〜nginxの起動まで

ドットインストールの「(さくらのVPS入門)https://dotinstall.com/lessons/basic_sakura_vps」をやったので簡単に内容をメモしておく。 OSはCentOS7。

1. VPSに接続する

$ ssh root@[IPアドレス]
Are you sure you want to continue connecting (yes/no)? yes
root@IPアドレス's password: 
=> 仮登録完了メールに記載されているパスワードを入力

$ yum update
=> インストール済みのパッケージをアップデート

2. 作業用ユーザーの設定

$ useradd admin
=> adminという作業用ユーザーを追加
$ passwd admin
=> 任意のpasswordを設定

次に作成した作業用ユーザーで sudo コマンドを実行できるようにする。

$ usermod -G wheel admin
=> wheel グループに作業用ユーザーを追加する。wheelというのは、sudoを実行できるユーザーグループの名前。大物とか実行者という意味らしい。
$ visudo
=> sudo権限を変更するためのコマンド。sudoersというファイルが開く。

以下の行を探して、2行目の「#」を消すことでこの一文を有効化する。 これで wheel グループのユーザーが sudo を実行できるようになる。

## Allows people in group wheel to run all commands
# %wheel  ALL=(ALL)       ALL

3. 鍵認証の設定

パスワード認証だとセキュリティの強度が低いので、公開鍵を使った認証に切り替える。

まず、VPS側に公開鍵をいれるディレクトリを作る。

$ pwd
/home/admin
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
=> 所有者のみ操作可能とする。

次に、SSHの接続元(ローカル)側で接続に使う鍵のペアを作成する。

$ ssh-keygen -t rsa -v
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/***/.ssh/id_rsa):
=> 保存するファイル名を指定。基本はデフォルトでよい。
$ chmod 600 ~/.ssh/id_rsa.pub
=> 作成された公開鍵のファイルのパーミッションを変更。
$ scp ~/.ssh/id_rsa.pub admin@IPアドレス:~/.ssh/authorized_keys
=> 公開鍵をVPSに転送する。

鍵のアップロードが完了したら、以下のコマンドで秘密鍵を使ってローカルからVPSに接続ができる。

$ ssh -i ~/.ssh/id_rsa admin@IPアドレス
# デフォルトで ~/.ssh/id_rsa を見に行くようになっているので、下記のように省略してもOK。
$ ssh admin@IPアドレス

4. SSHの設定

以上で鍵を使ってSSH接続するところまで完了。だが、パスワードログインやルートログインが有効になっていて、このままではセキュリティ上良くないので、それらを無効化する

VPSに接続して、以下のコマンドを実行。

$ sudo -s
=> ここからは、ルート権限で実効するコマンドが多いので、ルート権限に変更する。
# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org
=> SSHの設定ファイルを編集する前にバックアップをとっておく
# vim /etc/ssh/sshd_config
=> vimで設定ファイルを開く

vimで、/etc/ssh/sshd_config を開いて以下の設定を編集する。

編集前:PasswordAuthentication yes
編集後:PasswordAuthentication no
編集前:# PermitRootLogin yes
編集後:PermitRootLogin no

下記コマンドを実行して編集したSSHの設定を読み込む。

# systemctl restart sshd

5. ファイアウォールの設定

CentOS6までは、iptablesというコマンドだったけど、7からはfirewalldというのに変わったらしい。 firewalldについては↓の記事がわかりやすかった。 ネコでもわかる!さくらのVPS講座 ~第七回「ファイアウォール”firewalld”について理解しよう」

あとで、Webサーバーを立ち上げるので、あらかじめHTTP通信を許可しておく。

# firewall-cmd --add-service=http --zone=public --permanent
# firewall-cmd --add-service=https --zone=public --permanent
# systemctl restart firewalld

6. nginxのインストール

$ yum install nginx
=> nginx をインストール
$ systemctl start nginx
=> 起動
$ systemctl enable nginx
=> OS起動時に自動で起動させる

割り振られたIPアドレスにアクセスしたらnginxのトップページが表示されるはず。