さくらのVPS を使いはじめる

2010年9月12日 35 開発 , , , , ,

ちまたで話題になってるさくらのVPS を使いはじめた。

月額 980 円で root 権限あり、個人用途なら十分に実用的となれば、契約しない手はないだろう。ちょうど Redmine を動かすために root 権限が欲しいなあと思っていた ( Passenger を利用したい ) ので、これはまさに渡りに船である。

また、これまで Linux 学習用に VMware Player と CentOS を利用していたのだが、さくらのVPS も CentOS なので、この用途も引き継げそうだ。ゼロから実働するサーバー環境を整えることで、得られるものも多いだろう。

というわけで、さくらのVPS を使ってゆきながら、作業メモを残してゆく。VPS を再インストールしたときにも、このメモが役立つかもしれない。長くなることは確実なので、記事は数回に分ける予定。

2012/4/19 おしらせ
続編として、さくらのVPS(v3) 2GB プランへの作業メモ「さくらのVPS を改めて使いはじめる 1 – 使用準備、SSH 公開鍵認証」を書きました。

もくじ

用意するもの

サーバーでおこなう作業のために、まずは SSH クライアントを用意する。私の場合はコマンド操作に TeraTerm、ファイルの送受信に WinSCP を利用している。この記事は、これらを利用しているものとして書く。

ファイル編集に関して Windows 中心でゆきたいなら WinSCP がとても役立つ。

ドラッグ & ドロップによるファイルの送受信や、ダブルクリックでサーバー上のファイルを開き、そのまま Windows 上で編集できる ( 正確には Windows 上に一時ファイルを作成し、更新されたらサーバーに送信している ) のが便利である。

尚、WinSCP にはインストーラ版とポータブル版が用意されているのだが、インストーラー版は PuTTYgen という便利ツールも一緒に入れてくれるので、こちらを強く推奨する。この記事でも PuTTYgen を RSA の鍵作成に利用する。

サーバーの起動とコントロールパネル

VPS を契約すると「[さくらのVPS] 仮登録完了のお知らせ」というメールが送られてくる。その中には以下のような部分がある。

《VPSコントロールパネル ログイン情報》

VPSコントロールパネルでは、仮想サーバのリセットやリモート
コンソールでの接続、OSの再インストールなどを行うことができます。

URL : https://secure.sakura.ad.jp/vpscontrol/
IPアドレス: XXX.XXX.XXX.XXX
パスワード: XXXXXXXXXXXXXXXXXXXXXXXX

URL が VPS を管理するためのコントロールパネルのログイン ページを示している。アクセスすると IP アドレスとパスワードの入力欄があるので、それぞれ入力してログインをおこなう。するとコントロールパネルのページに移動するので、「起動」ボタンを押す。

少し待ち、ステータス欄の「更新」ボタンを押すと、欄内の表示が稼働中に変わる。これでサーバーが起動した。サーバーの停止と再起動も、このページからおこなえる。

VPS コントロールパネル

VPS コントロールパネル

コントロールパネルには、他にもリモートコンソールや OS 再インストール機能が用意されている。

リモートコンソールは JavaScript で作られたブラウザ上のコンソールで、TeraTerm などを用意しなくても、ここからサーバーにログインしてコマンド実行をおこなえる。

リモートコンソール

リモートコンソール

コンソール上部の「リモートコンソール」というタイトル右のアイコンからクリップボードの内容も貼り付けられる。応答性もよい。尚、このコンソールは SSH でパスワードによるログインを禁止していても、関係なくログインできるので注意が必要である。

サーバーの設定をいじっている内に不安定になったり、起動不能になったときは OS の再インストールを利用することで、サーバーを初期状態に戻せる。

OS再インストール

OS再インストール

root のパスワードを入力して「確認」ボタンを押すと、再インストールをおこなえる。試してみたところ、5 分もかからずに完了した。どのような仕組みになっているのか謎なのだが、root のパスワードを変更していた場合、再インストール後の環境にもそれが引き継がれる。

root のパスワード変更とユーザー作成

サーバーが起動したら、さっそくログインしてみよう。初期状態では root ユーザーだけが存在し、さくらインターネットから送られてきたメールに書かれていた初期パスワードが設定されているのだが、メールにも警告されているように、これは真っ先に変更する。

また、UNIX 系 OS では、通常のユーザーでログインし、root 権限が必要なときは sudo コマンドで特権を委譲してもらうか、su コマンドで一時的に root となるのが一般的である。基本は sudo、root 権限が必要な作業が大量にあるときだけ 万全の注意を払い root になるのがよいだろう。どちらにせよ、root 以外に必ずユーザーを作成する。

TeraTerm を起動して「新しい接続」ダイアログに IP アドレスを入力し、OK ボタンを押す。次の「SSH 認証」ダイアログではユーザー名に root、パスフレーズへ初期パスワードを入力して OK ボタンを押す。入力内容が適切なら、これでログインがおこなえる。

まずは root のパスワードを変更する。passwd と入力して Enter キーを押すと、新しいパスワードと確認の計 2 回、入力を求められる。成功すると以下のようになる。

# passwd
Changing password for user root.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

私の場合、以前このブログで紹介したサービスでパスワードを生成しているのだが、ランダムな文字列で入力難度が高いので、クリップボードにコピーして貼り付けている。尚、TeraTerm の貼り付けは Alt + V か、メニューから「編集」→「貼り付け」を選ぶことでおこなる。パスワードそのものは KeePass というツールで管理しており、必要なときだけ取り出すようにしている。

次に、普段の作業をおこなうユーザーを作成する。これは useradd コマンドでおこなう。作成したなら、すぐにパスワードを設定する。これは先ほど使用した passwd コマンドにユーザー名を指定することでおこなる。成功すると以下のようになる。

# useradd test
# passwd test
Changing password for user test.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

ここで TeraTerm のメニューから「ファイル」→「新しい接続」を選び、さきほど作成したユーザーでログインできることを確認しておく。

SSH 接続用の RSA 鍵を作成する

パスワード設定だけでは安全性に不安があるので、次は RSA 公開鍵認証を設定し、パスワードログインを禁止する。まず PuTTYgen を起動する。WinSCP をインストールしているならば、スタートメニューから「すべてのプログラム」→「WinSCP」→「鍵関連ツール」→「PuTTYgen」を選ぶ。

PuTTYgen

PuTTYgen

起動したら、ウィンドウ下部のラジオボタンから「SSH-2 RSA」を選択し、「Number of bits in a generated key」欄に 2048 と入力 ( 初期値は 1024。これは鍵のビット数で多いほど強度が高い ) してから「Generate」ボタンを押す。

すると鍵の生成が開始され、プログレスバーが表示される。

だが、眺めているだけだと一向に進まない。画面のメッセージを読むと “Please generate some randomness by moving the mouse over the blank area.” とある。プログレスバーの下あたりでマウスカーソルをグリグリと動かすとバーがモリモリ進みはじめるので、完了するまで動かし続ける。

RSA 鍵の生成

RSA 鍵の生成

鍵の生成が完了すると、以下の画面になるので「Key passphrase」欄と「Confirm passphrase」欄に RSA 鍵を暗号化するためのパスフレーズを設定する。必須ではない。鍵自体が盗まれるような状態では、パスフレーズなんて気休めにしかならないという意見もあるので、そう思うなら設定しなくてもよい。私は設定する派である。

RSA 鍵が生成された状態

RSA 鍵が生成された状態

ここまでで鍵の生成と設定が完了したのでファイル化する。

「Save private key」ボタンを押して秘密鍵ファイルid_rsa という名前で保存する。 拡張子は .ppk なので id_rsa.ppk というファイルが作成される。

次に秘密鍵ファイルを保存したフォルダに id_rsa.pub という名前のテキストファイルを作成し、メモ帳などで開き、PuTTYgen の「Public key for pasting into OpenSSH authorized_keys2 file」欄に表示されているテキストをコピーして貼り付けて保存する。

内容は以下のような感じになる。末尾は鍵の生成日時になるようだ。必ず 1 行になるので改行が入っていたら消しておく。これが公開鍵ファイルとなる。

"ssh-rsa ...中略... rsa-key-20100909"

最後に、TeraTerm 用の秘密鍵ファイルを作成する。PuTTYgen のメインメニューから「Conversions」→ 「Export OpenSSH key」を選択して id_rsa という名前で保存する。拡張子はない。

ここまでの手順を終えると、以下のファイルが作成されるはず。

ファイル名 種類 内容
id_rsa.pub 公開鍵 RSA 公開鍵。サーバー側に置く。
id_rsa.ppk 秘密鍵 RSA 秘密鍵。WinSCP や PuTTYgen で利用。
id_rsa 秘密鍵 OpenSSH 用 RSA 秘密鍵。TeraTerm などで利用。

もし公開鍵や OpenSSH 用の秘密鍵を保存し忘れても、PuTTYgen で .ppk ファイルを開けば鍵を生成した状態に戻れるので、再度、保存すればよい。

サーバーの SSH 設定を変更

TeraTerm からサーバーに RSA 認証をおこないたいユーザーでログインする。root ではないので注意する。そしてそのユーザーの HOME 直下に .ssh というディレクトリを作成する。コマンドの流れとしては以下となる。

$ cd $HOME
$ mkdir .ssh
$ chmod 700 .ssh

ログインした時点で HOME にいるはずだが、念のため移動してからディレクトリを作る。パーミッションは 700 ( 自分だけ読み書き可能 ) にしておく。

次に WinSCP から同じユーザでログインし、作成した .ssh ディレクトリ内に RSA 公開鍵となる id_rsa.pub を送信する。そしてファイル名を authorized_keys に変更してパーミッションを 600 にする。名前の変更とパーミッション設定のコマンドは以下。

$ mv id_rsa.pub authorized_keys
$ chmod 600 authorized_keys

これで鍵の配置は完了。残りは SSH デーモンの設定変更となるので、su コマンドを実行して root になる。

$ su -
Password:
#

次に /etc/ssh/sshd_config を編集する。この時点では root でパスワードログインできるので、vi に馴染んでいないなら WinSCP から開いて Windows 上のテキストエディタで編集してもよい。

PermitRootLogin ( root のログイン ) と PasswordAuthentication ( パスワードによるログイン ) を no に設定する。書式は設定名の後に yes で有効、no で無効、行頭に # でコメントアウトとなる。例えば、以下のように書く。

#PermitRootLogin yes
PermitRootLogin no

... 中略 ....

#PasswordAuthentication yes
PasswordAuthentication no

編集して保存したら、SSH デーモンを再起動する。

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

設定に誤りがあれば、コマンド実行時にエラーメッセージが表示されるので修正する。ここまでの手順がすべて適切ならば、以降はパスワードログインが禁止され、RSA 鍵の参照が必要となる。例えば TeraTerm の SSH 認証なら、以下のようになる。

TeraTerm の SSH 認証

TeraTerm の SSH 認証

システムの更新

RSA 鍵でログインできるようになったら、最後にシステム更新をおこなっておく。これはいわば Windows Update のようなもので、定期的に実行することになるだろう。

更新には yum というコマンドを使用する。実行は root になるか sudo を利用する。今はまだ sudo を設定していない ( 次回におこなう予定 ) ので root からおこなう。

コマンドを実行すると、はじめにダウンロードするパッケージ一覧とサイズが表示され、ダウンロードの実行を問い合わせられるので、y と入力して Enter を押す。

$ su -
Password:
# yum update

...
Install       2 Package(s)
Upgrade      16 Package(s)

Total download size: 34 M
Is this ok [y/N]: y

次に、GPG キーをインポートするという問い合わせがあるので、これも y と答えて Enter。

warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID e8562897
updates/gpgkey                                                                                           | 1.5 kB     00:00
Importing GPG key 0xE8562897 "CentOS-5 Key (CentOS 5 Official Signing Key) <centos-5-key@centos.org>" from /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
Is this ok [y/N]: y

しばらく待ってアップデート完了。

…今回はここまで。


TRACKBACKS

COMMENTS

  • 2011年12月20日 2:24 AM

    はじめてVPSをさわってみたド素人です。いろいろなサイトを見ながら設定するもどれもチンプンカンプンでしたが、アカベコさんの説明が一番わかりやすく、やっとこのページの終わりまで設定することができました。
    ありがとうございます!

  • IW
    2012年9月24日 10:50 AM

    はじめまして。vpsを開発環境にしようと思い借りたものの、サーバー設定はやったことないド素人で頭を抱えていたところ、アカベコさんの記事を拝見し、大変わかりやすくあっというまに設定が完了しました!
    本当に感謝しております。

    賛否あるものの、VPSにsambaを入れたいと思ってはいるのですがいまいちうまく機能してくれません。。。
    もしよろしければ参考記事を書いていただけると嬉しく思います。
    ご検討ください。

  • 2012年9月25日 8:24 AM

    IW さん、こんにちは。

    さくらのVPS & samba なら、以下の記事が参考になりそうです。

    さくらのVPS(レンタルの仮想サーバー)をもっと楽しもう!
    http://inst-web.com/information/vps-more003.html

    samba と周辺ツールを yum からインストールしており、また、具体的な設定も書かれているので、迷うことなく導入できるのではないでしょうか。

    なお、今のところ samba について取り上げる予定はありません。

    VPS を共有ファイルサーバーとして利用するつもりがなく、個人的なファイルの送受信であれば SCP/SFTP で十分だと感じています。

    不特定多数にファイルサーバーを公開するのは、非常にリスクが高いです。samba を動作させるだけなら前述の記事でことたりますが、実運用されるなら、セキュリティについても相当、考慮する必要があります。

    個人的に、samba はイントラネット用だと思っています。

    SCP/SFTP については、WinSCP や Cyberduck のような GUI クライアントもあるため、samba ほどではないですが、使い勝手もそこそこです。

  • ssi
    2012年10月2日 12:45 PM

    はじめて書き込ませていただきます。
    あかべこさんの記事を参考にサーバーの設定をさせていただきました。
    本当に助かりました。ありがとうございます。

    もし、よろしければさくら vpsでメールサーバーの設定の記事を書いてはいただけませんでしょうか?
    設定をしたく、記事を探したのですがあかべこさんほど親切で丁寧な記事を発見できずになかなかうまく設定できず悩んでいました。
    できれば、送受信・メーリングリストの作成あたりを詳しく教えていただければ幸いです。
    もし、可能でしたらよろしくお願いいたします。