「サーバーをさわってみよう!」~初心者でもよくわかる!VPSによるWebサーバー構築講座(2)

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

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

今回は、VPSの申し込みから実際にサーバーにログインしてみるところまで説明します。

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

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

さくらのVPS お申し込みのページ
https://vps.sakura.ad.jp/
へ行き、右上の「お申し込み」ボタンをクリックして申し込みましょう。
(クレジットカード決済のときは2週間無料で試用できます。銀行振り込みのときは無料期間はありません。)

さくらのVPSプランの種類と料金
お申し込みにあたっては、「はじめて利用する」を前提に説明します。さくらインターネットの会員IDをすでにお持ちの方は、「会員IDがある、現在さくらを利用中」を選択してください。
さくらのVPSのお申込み画面

このあと、

  • 約款及び個人情報の取扱い
  • お客様情報の入力
  • ログインパスワードの指定

とページを進めていくと、次にVPSのプラン選択のページになります。
さくらのVPS SSD 512プランにチェックをつけて次に進みましょう。

さくらのVPS VPS SSD 512プランを選択する
次の画面で「お支払い方法」を選んでください。
「最終のご確認」画面を経て申し込みを完了すると、登録したメールアドレス宛てに「お申込受付完了のお知らせ」メールが来ます。

その後、しばらくするともう1つ「[さくらのVPS] 仮登録完了のお知らせ」というメールが来ます。そこに

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

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

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

さくらのVPS コントロールパネルログイン画面
会員IDとパスワードを入力しログインしたあと、
対象サーバーにチェックを入れ「起動」をクリックしVPSを起動します。
起動ボタンクリック後、サーバーにログインできるようになるまで数十分ほど時間がかかる場合もありますので、しばらくお待ち下さい。(初回起動時に、アップデートパッケージなどを更新しているようです)

さくらのVPS コントロールパネルログイン後画面

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

2. SSHを使うためには? SSHクライアントソフトのインストール

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

HTTPを使ってWebサイトにアクセスする

VPSにアクセスする場合はSSHクライアントが必要です。

VPSへはSSHクライアントを使ってアクセスする

SSHクライアントとして、いろいろなフリーソフトが存在しますが、WindowsではRLoginが評判が良いのでこれを使うことにします。

RLoginのページ( http://nanno.dip.jp/softlib/man/rlogin/ )からダウンロードして下さい。
1.4 インストールおよびアンインストール」のセクション
( http://nanno.dip.jp/softlib/man/rlogin/#INSTALL )
にダウンロードできる実行ファイルがあります。自分の環境に合うプログラムを選んでダウンロードしてください。

ダウンロードしたexeファイルをクリックしてRLoginを起動すると、「Server Select」画面が表示されるので、そこから「新規」をクリックして新しいサーバーを登録します。

RLogin Server Select画面
「仮登録完了のお知らせ」メールに記載されていたIPアドレスユーザーパスワードなどサーバーの情報を登録したあと、OKをクリックしてサーバーに接続します。
初めて接続する場合は以下のように「公開鍵の確認」画面が表示されますが、気にせず「接続する」をクリックしてください。

RLogin 公開鍵の確認画面
無事、サーバーに接続できると黒い画面が表示されます。

RLogin サーバー接続画面

Macのターミナルの場合

Macの場合は、SSHクライアントをインストールする必要はありません。最初から「ターミナル」というソフトウェアが付属しています。
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)' can't be established.
RSA key fingerprint is 83:cd:d6:7b:b5:36:35:a2:72:62:12:13:5c:fb:29:04.
Are you sure you want to continue connecting (yes/no)? yes

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

mac$ ssh root@xx.xxx.xxx.xx
The authenticity of host 'xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)' can't be established.
RSA key fingerprint is 6c:ab:9b:ca:47:45:0c:bb:2a:2a:83:bd:31:82:63:cc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'xxx.xxx.xxx.xxx' (RSA) to the list of known hosts.
root@xxx.xxx.xxx.xxx's password: 

SAKURA Internet [Virtual Private Server SERVICE]

[root@wwwxxxxxe ~]#

3. CUIの世界へようこそ

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

GUIとCUIのイメージの違いとLinuxコマンドの例
GUIのイメージで理解するLinuxコマンドの例

4. OSをアップデートしよう

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

# yum update

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

Is this ok [y/N]:

と表示されますので、’y’を入力後エンターキーを押してアップデートを進めてください。アップデートにはしばらく時間がかかるかも知れません。
アップデートするべきパッケージが無ければ、

No Packages marked for Update

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

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

今ログインに使っているユーザーは、サーバーの管理権限を持つrootユーザーです。
rootユーザーで直接ログインできる状態のままにしておくと、万が一rootのパスワードを盗まれてしまえば誰でもログインできて、かつすぐにサーバー管理者になれ、サーバーを好き放題に荒らされてしまいます。
このままではセキュリティ的に危険なので、rootユーザーで直接ログインできないように設定を変更します。
代わりに、管理者権限が無い一般ユーザーを新しく1つ作って、そのユーザーでログインできるようにします。

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

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

6. 一般ユーザーを作ろう

では、新しく作る一般ユーザーを、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のRLoginをお使いの場合は、このコマンドを実行すると黒い画面が閉じられます。
今度は一般ユーザーでVPSにログインしてみましょう。
「ファイル」→「サーバーに接続」で”Server Select”画面を出し、「新規」をクリックして新しいサーバーを登録します。

RLogin Server new Entry画面

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

$ ssh vpsuser@xxx.xxx.xxx.xxx

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

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

$ su -

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

Linuxで一般ユーザーからrootにスイッチする

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

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

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

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

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

linuxのcdコマンド
cp はコピーコマンドで、ここでは
sshd_configというファイルをコピーして sshd_config.old を作る
という意味になります。
次に、sshd_configをエディタで編集します。エディタはVPSに標準でインストールされているvimを使います。

# vim sshd_config

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

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

#PermitRootLogin yes

と書かれている行が見つかると思います。

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

このPermitRootLoginの行を変更するのですが、vimエディタを初めて使う方のために使い方を簡単に解説します。
vim にはいくつかの動作モードがあります。
vim起動直後は「ノーマルモード」になっており、このモードでは文字を入力することはできません。「インサートモード」にしてから文字を入力する必要があります。

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

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

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

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

PermitRootLogin no

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

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

#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の使い方
http://www15.ocn.ne.jp/~tusr/vim/vim_text0.html

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

最後に、sshサーバーであるsshdを再起動すると、設定が有効になります。

# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]

このようにStop/Startにおいて[OK]が表示されればうまくいってます。
もしStarting sshdが[FAILED]となったときは、設定ファイルが正しく編集できていません。
いまいちど設定を見なおして下さい。

ここまで来たら、念のためパソコンから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コントロールパネルから行ってください。

第2回目は以上です。第3回目へ続きます。

第3回 Webサーバーを構築しよう(1)
  • httpサーバーApacheをインストールする
  • SFTPを使ってファイルをアップロードする
  • ドキュメントルートの権限を変更する
  • ドメインを取得して、DNSの設定をしよう
  • phpをインストールする

おしらせ

banner_vps