ネコでもわかる!さくらのVPS講座 ~第二回「サーバーをさわってみよう!」

初心者がVPS(Virtual Private Server)をWebサーバーとして構築し、WordPressのサイトを運用できるようになるまでの連載の第2回目です。

前回(第1回目)は、レンタルサーバーとVPSの違いや、数あるVPSのプランからどのような基準で自分にあったサーバーを選択すれば良いか?などの基本的知識を説明しました。

今回はVPSの申し込みをして、サーバー起動、ログイン、終了ができるところまで説明します。
ちょっと長いですが、休憩しながらでいいのでがんばっていきましょう!

  1. VPSの利用申し込みをしよう
  2. VPSにログインしよう。SSHクライアントソフトのインストール
  3. OSをアップデートしよう
  4. SSHをもっと安全に使うために
  5. 一般ユーザーを作ろう
  6. sshサーバーの設定を変更して、rootで直接アクセス出来ないようにする

VPSの利用申し込みをしよう

さくらのVPS お申し込みのページ
http://vps.sakura.ad.jp/
へ行き、右上の「お申し込み」ボタンをクリックして申し込みましょう。
(クレジットカード決済ならば2週間無料で試用できます。試用期間中は一部機能に制限がありますが、2週間以内ならとりあえず使ってみて後からキャンセルすればお金はかかりません。くわしくはこちら)

さくらのVPSのお申し込み画面

お申し込みにあたっては、「はじめての方」を前提に説明します。
さくらインターネットの会員IDをすでにお持ちの方は、「会員IDをお持ちの方はログイン」を選択してください。
さくらのVPS お申し込み画面

次に、VPSのプランを選択します。
さくらのVPS 1Gプランにチェックをつけて次に進みましょう。
(ここでは1Gプランを例に説明します。お好みにあわせてプランを選択してください。プラン選定の基準は第1回目で説明しています)
さくらのVPS 1Gプランを選択

次にリージョン・ゾーンの選択です。
リージョン・ゾーンとはサーバーを設置している場所のことで、石狩東京がありますがどちらを選んでも性能に差はありませんので、お好みで選択してください。
もし、あなたが構築するWebサーバーへのアクセスが、ほぼ関東在住のユーザーからしか来ないと分かっている場合は、ネットワーク距離的に近い東京リージョンを選んだほうがいいかも知れません。(ただし、ほとんど気にするほどではない小さな差です)
逆に、ネットワーク距離が気にならない場合は、自然災害的なリスクを考慮して東京以外を選ぶ方も多いようです。

ストレージ選択はHDDまたはSSDが選べますが、容量をさほど必要としないのであれば、ディスクアクセスが高速なSSDをおすすめします。
画像や動画をたくさん扱わず、複数のサイトを設置する予定でなければ、SSDの容量30GBで十分足ります

さくらのVPS リージョン・ゾーンの選択

このあとは、
「カートに入れる」ボタンで次に進み、
・請求金額の確認
・新規会員登録画面
・VPSの毎月払い/年間一括払い、支払い方法(クレジットカード、銀行振込、…)の選択
を経て、登録を完了してください。

しばらくすると、登録したメールアドレス宛にメールが届きます。
以下の3通のメールが、だいたい15分以内くらいに続けて届きます。
会員登録完了のお知らせ
お申し込み受付完了のお知らせ
[さくらのVPS] 仮登録完了のお知らせ

「仮登録完了のお知らせ」には以下の情報が書かれています。

  • 会員ID
  • IPアドレス
  • ユーザ名(root)
  • 初期パスワード
  • VPSコントロールパネルURL

これらはVPSにログインする際に必要ですので控えておいてください。

この時点ではまだVPSは起動していません。
VPSコントロールパネルにログインしVPSを起動しましょう。

コントロールパネルへはさくらの会員IDを使ってログインできます。
(機能制限がつきますがVPSのIPアドレスでもログインできます)
さくらのVPS 会員IDでログイン

VPSコントロールパネルでは、あなたが契約したVPS(名称未設定のVPS)が表示されています。
このVPSをクリックし詳細情報を表示してください。

さくらのVPS コントロールパネル VPSの起動
起動」ボタンを押してすぐにサーバーを起動することもできるのですが、今回はデフォルトのCentOS6 X64_84ではなくCentOS7 X64_84を使用するため、このOSのインストールを先に行います。

詳細情報が表示されたら、画面右上の「各種設定」ボタンで「OSインストール」を選び、
続けて「標準OSインストール」を選択します。

さくらのVPSコントロールパネル OSインストール

さくらのVPSコントロールパネル 標準OSインストール

標準OSインストール画面では、CentOS7 x86_64を選択し、新しいrootパスワード(管理者パスワード)を設定してください。

rootパスワードは第三者に盗まれてはいけないとても重要なものです。パスワードが単純すぎると、誰かに乗っ取られ悪用されてしまう危険があります。最低 8文字以上、大文字、小文字、数字、句読点や記号を含めることを強く推奨します。
パスワードを生成してくれるパスワードジェネレータ( http://www.graviness.com/temp/pw_creator/ )などを使ってランダムな文字列をパスワードにしましょう。
パスワードを忘れてしまう心配がある方は、VPS契約時にもらった初期パスワードをそのまま使っても良いでしょう。

新しいパスワード文字列を考えるのが面倒ならば、VPSの初期パスワードをそのまま使っても良いでしょう。
インストールOSはCentOS7 x86_64を選択

これで設定内容を確認後、「インストールを実行する」ボタンで新しいCentOS7をインストールしてください。
待ち時間はそんなにかからず、数十秒でCentOS7が使えるようになります。

これでCentOS7サーバーが起動できました。

VPSにログインしよう。SSHクライアントソフトのインストール

次に、あなたのパソコンからVPSにログインするためのソフトウェアを用意します。
ログインするためにはSSH通信ができる専用のソフトウェア(SSHクライアント)が必要です。

例えば、Webページを見るにはブラウザが必要です。httpというプロトコル(通信手段)を使います。
HTTPプロトコルとは

一方、VPSにログインして、設定作業を行う場合はSSHクライアントが必要です。SSH(Secure Shell)というプロトコルを使います。
SSHプロトコルでの通信

SSHクライアントとしていろいろなフリーソフトが存在しますが、WindowsではPuTTY(パティ または プティ)を使うことにします。

Windowsの場合

PuTTYのページ( http://hp.vector.co.jp/authors/VA024651/PuTTYkj.html )からダウンロードして下さい。
2017/5時点の最新版は、2017/5/6にリリースされたVersion 0.69-jp20170506、ファイルはputty-0.69-jp20170506.zipです。

ダウンロードしたzipファイルを解凍してputtyjp.exeを起動すると、接続先設定の画面が表示されるので、ここでホスト名にVPSのIPアドレスを入力し「開く」ボタンで接続します。

putty sshログインの設定

以下のような警告がでる場合は「はい」をクリックしてください。
putty sshログイン時に出る警告

login as: のところは”root”を入力してEnterキー、次の行のpasswordはVPSの仮登録完了のお知らせメールに記載されていた初期パスワードを入力してください。
(パスワード入力中は、画面には何も表示されません)
putty ログイン時パスワードの入力

以下のように、コマンド入力待ちの”#”記号が最後に表示されていればログイン完了です。
putty ログイン成功時の画面

Macの場合

Macの場合は、SSHクライアントをインストールする必要はありません。最初から「ターミナル」というソフトウェアが付属しています。
Spotlight検索で「ターミナル」と打ち込んで起動しましょう。
(または、Finderからアプリケーション>ユーティリティ>ターミナル.app とたどってください)

MacのSpotlight検索

MacのSpotlight検索でターミナルを起動

ターミナルを起動すると以下のような画面が立ち上がります。
Mac ターミナルでの接続成功画面

この状態ではまだサーバーには接続されていません。
画面上で、以下のsshコマンドを入力してエンターキーを押します。
xxx.xxx.xxx.xxxのところは、あなたが契約したVPSのIPアドレスに読み替えてください。

ssh root@xxx.xxx.xxx.xxx

初回接続時には以下のようなメッセージが出ます。yesを入力しreturnキーを押します。

The authenticity of host 'xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx.xxx)' can't be established.
ECDSA key fingerprint is SHA256:+CMQV+bQVjTp+CJcpoj1u+J6LS24dAUWjv3tkxFYBSE.
Are you sure you want to continue connecting (yes/no)?yes

次にパスワード入力を求められますので、仮登録完了のお知らせメールに記載されていた初期パスワードを入力します。
うまくログイン出来れば以下のようにコマンド待ちの状態になります。

SAKURA Internet [Virtual Private Server SERVICE]
Installed SiteGuard Lite

[root@ik1-xxx-xxxxx ‾]# 

SSHクライアントを使ってサーバーに接続できたら、そこから先はCUI(Command Line Interface)の世界です。分かりやすい絵やアイコンがあるわけではなく、すべて英数字や記号だけで表現される世界です。
VPSのOSであるLinuxは、コマンドと言われる文字の羅列でいろいろな操作を行います。
初めての方には慣れるまで時間がかかるとは思いますが、少しずつ覚えていってください。

OSをアップデートしよう

SSHクライアントを使ってサーバーにログインできたので、最初にOSのアップデートをしておきましょう。
以下のコマンドを打ち込んでください。
( #記号 は「コマンドプロンプト」と言い、最初から表示されているものです。この記号は入力しないでください)

# yum update

もし打ち間違えたらBSキーやdeleteキーで文字を削除してください。正確にタイプしないとコマンドは実行されません。’yum’ と ‘update’の間には半角スペースが入ります。
全部入力できたらエンターキーを押しましょう。”yum update”コマンドが実行されます。
もし、アップデートするパッケージソフトウェアがあった場合は、それがリストアップされ、最後に

Is this ok [y/d/N]:

と表示されますので、’y’を入力後エンターキーを押してアップデートを進めてください。
(y=Yes、d=download(ダウンロードのみ)、N=No の意味です)
アップデートにはしばらく時間がかかるかも知れません。また、この質問は1度だけではなく、何度か聞かれる場合があります。

すべてのパッケージがアップデート完了すると、

Complete!

と表示されます。

もし、アップデートするべきパッケージが無ければ、

No Packages marked for Update

と表示されますので、この場合はこれ以上特に何もしなくても大丈夫です。

SSHをもっと安全に使うために

今あなたがログインに使っているユーザーは、サーバーの管理権限を持つrootユーザーです。
rootユーザーで直接サーバーにログインできる状態になっていると、万が一rootのパスワードを盗まれた場合すぐに悪意あるユーザーにサーバー管理者権限を渡してしまうことになり、結果としてサーバーを乗っ取られてしまいます。
このままではセキュリティ的に危険なので、rootユーザーでは直接ログインできないように設定を変更します。
その代わりに、管理者権限が無い一般ユーザーを新しく1つ作って、そのユーザーでログインできるようにします。

 

悪意あるユーザーに侵入されるとサーバーを乗っ取られてしまう

悪意あるユーザーにrootでログインされると即サーバーが乗っ取られます。

root直接アクセスを禁止すると、被害を最小限にできます

rootで直接アクセスはできないので、悪意あるユーザーはいきなり管理者権限を奪取できません。

rootユーザーによる直接ログインを禁止することで、サーバーの管理者権限を乗っ取られる危険性はかなり減り、被害を最小限に食い止めることができます。
もしあなたが管理者権限が必要な作業をする場合は、いったん 一般ユーザーでログインし、その後rootユーザーに切り替えてください。(この切替をスイッチユーザーといいます)
一般ユーザーは、管理者のようにVPSのシステムファイルを変更したり、勝手にアプリケーションをインストールしたりできませんので、万が一、一般ユーザーのパスワードが漏れてもシステム全体が乗っ取られることはありません。

一般ユーザーを作ろう

では、新しく作る一般ユーザーを、vpsuserという名前で作ってみます。以下のコマンドを打ち込んでください。

# adduser vpsuser

この1行で、vpsuserという一般ユーザーを作ることが出来ます。
adduser は、ユーザーを作るLinuxのコマンドです。
次に、vpsuserのパスワードを決めます。passwdコマンドでパスワードを設定することができます。

# passwd vpsuser

Changing password for user vpsuser.
New password:

New password: と聞かれますので、vpsuserの新しいパスワードを入力してください。
なるべく推測されにくい文字列がいいですね。
パスワードを生成してくれるパスワードジェネレータ( http://www.graviness.com/temp/pw_creator/ )が便利です。

# passwd vpsuser

Changing password for user vpsuser.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

確認のため “Retype new password:” と聞かれますので、もういちど同じパスワードを入力するとvpsuserのパスワードが設定できます。

ここまでできたらいったんSSH接続を終了して、今度はrootユーザーではなく先ほど作った一般ユーザーvpsuserでログインできるかどうか確かめてみましょう。
現在rootでログイン中のSSH接続を終了します。

# exit

WindowsのPuTTYをお使いの場合は、このコマンドを実行すると黒い画面が閉じられます。

今度は一般ユーザーでVPSにログインしてみましょう。
Windowsの場合はputtyjp.exeを再度起動し、ホスト名にIPアドレスを入力して接続し、login as: と聞かれたらrootの代わりにvpsuserを入力します。

Macの場合はターミナルで以下のコマンドを入力します。(IPアドレスはあなたのVPSのIPアドレスに読み替えてください)

$ ssh vpsuser@xxx.xxx.xxx.xxx

うまくvpsuserでログインできた場合は、コマンドプロンプトが以下のようになっていると思います。

VPSに一般ユーザーでログイン後のコマンドプロンプト

これで、新しく作った一般ユーザーvpsuserでログインできることが確認できました。
この状態(vpsuserでログインしている状態)からrootユーザーに切り替える場合は以下のコマンドを入力します。( suの後ろの半角スペースと – (ハイフン)も入力してください )

$ su -

するとpasswordを入力するように求められるので、rootのパスワードを入力すると以下のような#記号のコマンドプロンプトになり、rootに切り替わったことが確認できます。

VPS suコマンドでrootにスイッチする

sshサーバーの設定を変更して、rootで直接アクセス出来ないようにする

rootユーザーではない一般ユーザー(vpsuser)でログインできることが確認できたので、rootユーザーの直接ログインを禁止してもサーバーにログインできる手段を確保できました。
次に、rootユーザーで直接ログインできないようにするため、sshd_configというsshの設定ファイルを編集します。
これは、ssh通信を提供するプログラムであるsshサーバーの設定ファイルです。

ファイルを編集する前に、念のため変更前の設定ファイルをコピーして保存しておきましょう。
(設定を間違ったり、ファイルを誤って消してしまったら元に戻せるようにしておきます)
rootユーザーで作業してください。

# cd /etc/ssh
# cp sshd_config sshd_config.old

cd はディレクトリを変更するコマンドです。/etc/ssh というディレクトリに移動しています。
CDはディレクトリを変更するコマンド

cp はコピーコマンドで、ここでは
sshd_configというファイルをコピーして sshd_config.old を作る
という意味になります。

次に、sshd_configをエディタで編集します。エディタはVPSに標準でインストールされているvimを使います。

# vim sshd_config

(ssh_configというまぎらわしいファイルがあるので気をつけてください。編集するファイルはsshd_configです。)
上記コマンドは
vim で /etc/ssh/sshd_configファイルを編集する」という意味になります。

ファイルを開いたら、上下左右の矢印キーで49行目付近に移動してください。そうすると

#PermitRootLogin yes

と書かれている行が見つかると思います。
sshd_config PermitRootLogin の変更

[注]
もしこの行に辿りつけず、上下左右とは関係の無いキーを押したりしてパニックになってしまった場合は、慌てずに
(Escキー):q!
を続けて入力してエンターキーを押してください。エディタを開く前のコマンド入力画面に戻れます。

このPermitRootLoginの行を変更するのですが、vimエディタを初めて使う方のために使い方を簡単に解説しておきます。

vim には主に2つの動作モードがあります。
vim起動直後は「ノーマルモード」になっており、このモードでは文字を入力することはできません。「インサートモード」にしてから文字を入力する必要があります。

ノーマルモード カーソル移動や、文字削除、vim終了や保存の動作を行うときはこのモード。iキーまたはaキーを押すと、インサートモードに切り替わる。
インサートモード 文字入力を行うときはこのモード。[esc]キーを押すとノーマルモードに切り替わる。

(モードの種類は他にもありますがここでは割愛します)

vimのノーマルモードとinsertモード

インサートモードのときは、エディタの左下に”— INSERT —” と表示されるので、今どちらのモードになっているのか判断できます。

vimエディタ insertモード時の画面

PermitRootLoginの行は、行頭に#があるので行全体がコメントアウト(無効化)されています。
編集後の目指すゴールは、#を削除して、かつyesをnoに変更することです。つまり、

PermitRootLogin no

と書き換えます。
これは「rootによるログインを許可する? : いいえ
という設定にすることを意味します。
では早速やってみましょう。

49行目の行頭の#の位置にカーソルを合わせます。(↓キーを連打)

#PermitRootLogin yes


xキー(1文字削除)を押して#記号を削除する

PermitRootLogin yes


右矢印()キーを16回押してyの位置にカーソルを合わせる

PermitRootLogin yes


iキーを押してインサートモードにし、’no’を入力する。

PermitRootLogin noyes


[esc]キーを押してノーマルモードにし、矢印キーを1回押してyにカーソルを合わせる

PermitRootLogin noyes


xキー(1文字削除)を3回押してyesを削除する

PermitRootLogin no

編集が終わったので、:wq (コロン記号、w、q) の3文字を入力してvimエディタを終了する。
(wキーは’保存’、qキーは’終了’の意味)

うまく編集できましたでしょうか?
vimの使い方は以下のサイトが参考になります。かなりとっつきにくいエディタですが、Linuxでファイルを編集するためには避けて通れません。基本的な操作方法だけでも覚えておくことをおすすめします。

[参考]Vimをメモ帳程度に使うために覚えておくべきコマンド – Qiita
http://qiita.com/honeniq/items/201156650310c4968c3a

また、動画の学習サイト「ドットインストール」のvim入門も参考になります。
http://dotinstall.com/lessons/basic_vim

最後に、sshサーバーであるsshdを再起動すると、設定が有効になります。
CentOS6はserviceコマンドで再起動しましたが、CentOS7ではsystemctlコマンドを使います。

# systemctl restart sshd.service

コマンドを打ったあと何も表示されてなければ、再起動に成功しています。
もし、
Job for sshd.service failed because …
のように”failed”という文字列が表示されていたら、再起動に失敗しています。
いま一度、sshd_configの設定を見直してください。

ここまで来たら、念のための確認として、パソコンからrootユーザーで直接ログインを試してみてください。
設定どおりrootユーザーではログインできなくなっているでしょうか?

以上、rootで直接ログインできないようにする設定変更の方法を紹介しましたが、sshのセキュリティ向上のための設定は他にもあります。
余裕がある方は、以下のような設定も合わせて行うと良いでしょう。

SSHのポート番号を変更 – SSHサーバーの設定 – Linux入門
http://webkaru.net/linux/change-ssh-port/

ssh接続を鍵認証で行なう
http://www.tooyama.org/ssh-key.html

第2回目は以上です。
せっかくサーバーにログインできましたので、いろいろなコマンドを試したい場合は、以下のサイトが参考になります。

Linuxのコマンドを勉強しよう!!Linux初心者の基礎知識
http://www.linux-beginner.com/linux_command.html

しかし、もし次回(第3回目)の記事の公開までサーバーを触る予定が無い方は、外部からの余計な攻撃にさらされないようにサーバーを停止しておきましょう。
rootユーザーで以下のコマンドを実行するとサーバーが停止します。

# shutdown -h now

再度サーバーを起動するときは、VPSコントロールパネルから行ってください。
VPSコントロールパネルからVPSを起動する

第2回目は以上です。第3回目をお楽しみに。

(イラスト:小川真孝(ブログ))

ネコでもわかる!さくらのVPS講座 公開日
ネコでもわかる!さくらのVPS講座 〜第一回:VPSてなんだろう?〜 2017年4月12日
ネコでもわかる!さくらのVPS講座 ~第二回「サーバーをさわってみよう!」 2017年5月23日