2014年6月7日

さくらのVPSにVyOSをインストールする

ネットに転がっている情報が古いものばかりで当てにならなかったので、自分なりにいろいろ試してインストールできたよー。的なメモ。

一応補足ですが、VyOSとはLinuxベースのルータOSで、かつてVyatta Coreとして開発されていたもの。Vyattaが買収されて現在のプロジェクトに引き継がれたっぽい。

もうひとつ、今回利用するさくらのVPSは最近契約したもので、OSをインストールするデバイスが/dev/vdaとなっています。/dev/sdaとか/dev/hdaとかの時代が合ったらしいですが僕はそちらを知りませんので、そこんトコロは注意していただくようお願い致します。


■その1、インストール準備

VyOSのインストールディスクのイメージを下記ページから落としてきます。

64bit版/Physical32bit版/Virtual32bit版とあるみたいですが、基本的に64bit版で良いでしょう。さくらのVPSでは64bit版CentOSがデフォルトで採用されているようですし。

落としてきたイメージをさくらのVPSコントロールパネルのページから専用のFTPサーバにアップロードします。
「OS再インストール」→「CDイメージインストールへ」を順に選択していると、24時間だけ有効のFTPサーバのアカウントが表示されます。そこからFFFTPなりFileZillaなりを利用してアップロードします。

アップロードが完了し、VPSコントロールパネルのページからISOイメージの項目のところにある「更新」ボタンをクリックすると先ほどアップロードしたファイル名が表示されますので、ページ下部にある「確認」ボタンをクリックします。

ISOイメージインストールのページが表示されたら「実行」を押下。しばらくするとVNCコンソールの起動画面に遷移するので、HTML5版かJavaアプレット版を選択してVNCを起動してください。

VNCコンソールの画面、こんなかんじ

■その2、インストール


ログイン画面からinstall systemまで

「vyos login: 」のプロンプトが表示されたら、下記アカウントを入力してログインします。
login: vyos / password: vyos

ココらへんのユーザ名はvyattaの時代から変わりないですね。

ログインできたら早速インストールします。

vyos@vyos:~$ install system

ローカルのHDDにVyOSをインストールするけどいい?」と聞かれるので、Yesまたは空エンター

で、その後ですが、「Partition (Auto/Union/Parted/Skip) [Auto]」と聞かれますが、ここだけは空エンターをしないようにしてください。間違えて空EnterしてしまったらCtrl+cで一旦抜けましょう。

Parted」を選択することで、インストールするパーティションを手動で作成するプロセスに移行します。

GPTパーティションのため、Warningが出る

その後、WARNINGメッセージが出ます。
/dev/vdaはsfdiskでサポートしてないGPTを使ってるから、GNU Partedを使うね」という内容です。
GPT、MBRとはなんぞやっていうのは調べてもらえれば良いです。とりあえずVyOSはMBRをサポートしているので現在のGPTのままでは動作しない。ということです。

GNU PartedからMBRのパーティションを作成することができます。


(parted) mklabel msdos

上記コマンドの通り、新たにmsdos(MBR)のラベルを作成することで既存のディスクをMBRパーティションにすることができます。
/dev/vdaのデータ全部消えるけどいい?」と聞かれるので、「Yes」を入力。

で、すぐ処理は終わるので、正しくMBRに書き換えられているかを確認。

(parted) print all

ディスクの情報が表示されます。
「Partition Table: msdos」の表記があることを確認します。

その後、Errorが出ますが、「読み取り専用で/dev/sr0が開かれてるけど、続行する?」と聞いてきてるだけです。今回はディスクドライブは見る必要ないのでCancelします。

quitすると、GNU Partedが終了し、元のプロンプトに戻るので、再度install systemコマンドを打ちインストールを実施します。


再度「Partition (Auto/Union/Parted/Skip) [Auto]」のところまで来たら、今度は空エンターまたはAutoを入力して、自動でインストールしてもらいましょう。/dev/vdaがMBAで書き換えられているので、問題なくインストールが進むするはずです。

基本的には空エンターで、「This will destroy all data on /dev/vda.」云々を聞かれたらYesを入力してください。

で、あとはそのまま何も考えずにEnter押していき、パスワードを聞かれたら適当に入力しておけばインストール完了します。
(このパスワードはほんとに適当でいいです。vyosユーザはこのあとで削除します)

プロンプトが元に戻ったら「poweroff」コマンドを入力して一旦システムをシャットダウンをしてください。
以上でインストールは終了です。

■その3、ネットワークの設定

インストールは完了しましたが、このままではアドレスも何も設定されておらず、またセキュリティ的にも何も対策をしていません。

以降はインストール後の最低限の設定として、アドレスの設定、ログインアカウントの変更、公開鍵認証の設定までを行います。

とりあえずVPSコントロールパネルを開いて先ほどシャットダウンしたVyOSを再起動します。
ステータスが「稼働中」になったらリモートコンソールからVNCコンソールを開いてください。


loginのプロンプトが表示されるので、ユーザー名「vyos」、パスワードは適当に付けたものを入力してログインをします。


プロンプトの末尾が「$」になっている状態はCiscoルータなどでいうユーザモードです。
設定を変更するためにはコンフィグモードへ遷移する必要があります。

$ configure

プロンプトが「#」に変わりコンフィグモードに遷移するので、下記の通りIPアドレスの設定を流し込んでいきます。

# set interface ethernet eth0 address [IPADDRESS/MASK]
# set system gateway-address [GATEWAY ADDRESS]

[IPADDRESS/MASK][GATEWAY ADDRESS]に関しては、さくらのVPSコントロールパネルより確認することができます。

SSHの設定も(次で設定してもよいのですが)しておきます。

# set service ssh

ここまで出来たら、一旦コミット(設定の反映)とセーブ(設定の保存)を行いコンフィグ設定を完了します。

# commit
# save

# exit

正しく外部と接続することができているか、pingで疎通しておきましょう。

$ ping 8.8.8.8

8.8.8.8はGoogleパブリックDNSサービスですが、覚えやすいのでping疎通確認ではよくお世話になっています。

■その4、SSHの設定(新規ユーザーの作成とパスワード認証)

VyOSのデフォルトユーザー「vyos」のままだとセキュリティ的に宜しくないため、新規ユーザーを作成とパスワードの設定を行います。

ここからはスクリーンショットとってなかったので、コマンドだけで説明していきます。

# set system login user [USERNAME]
# set system login user [USERNAME] authentication plaintext-password [PASSWORD]

[USERNAME]は新規で作成したいユーザー名
[PASSWORD]は任意の文字列(しっかりしたパスワードを設定してください)
※1行目のコマンドは省略できますが、わかりやすく2行に分けてみました。

ここまで出来たら、一旦コミットとセーブを行いコンフィグ設定を完了します。

# commit
# save
# exit

teratermなどからsshで接続し、先ほど設定したユーザでログインできることを確認します。
見事ログインできたら、vyosユーザでログインしているVNCコンソールの方はexitでログアウトし、閉じてください。

SSHで接続している方から、vyosユーザを削除しましょう。

$ configure
# delete system login user vyos

# commit
# save

# exit

これにてSSHのパスワード認証までが完了しました。
次は更にセキュリティを高めるために公開鍵認証の設定を行います。

■その5、SSHの設定(公開鍵認証)

※今回はVyOS上で公開鍵id_rsaを作成していますが、別の端末で作成したい人はここは軽く読み飛ばしてください。

$ ssh-keygen
公開鍵を作成します。
パスフレーズは入力してもしなくてもいいです。僕は最低限の鍵紛失時の対策として、一応入れてます。

$ cat ~/.ssh/id_rsa.pub
下記書式でid_rsa.pubのファイル内容が出力されます。
ssh-rsa (文字列) root@vyos
(文字列)の部分をメモ帳などにコピーしておいてください。

$ cat ~/.ssh/id_rsa
こちらは表示されたファイルをすべてコピペして、ローカルに保存しておいてください。

あとは下記のコマンドで、作成した鍵を取り込んでいきます。

$ configure
# set system login user [USERNAME] authentication [KEYNAME] key [PUBKEY]
# set system login user [USERNAME] authentication [KEYNAME] type ssh-rsa
# commit
# save

[USERNAME]は現在ログインしているユーザ
[KEYNAME]は任意ですが、(ユーザ名)@(ホスト名)の書式で登録するのが慣習みたいです。
[PUBKEY]には、先ほどid_rsa.pubのファイルから得た(文字列)を貼り付けましょう。

公開鍵の設定についてはこれで完了です。ローカルに保存したid_rsa秘密鍵を使ってログインをしてみてください。

■おまけ、VPNの設定

おまけ、と言っても今回僕が設定方法を紹介するひつようもなく、こちらは他の人がVyattaで設定した記事を参考にしました。

さくらのVPSでVyattaを使ったVPNトンネルの構築 - Under Construction Always!

っていうか、今回インストールで苦戦したのってGPTについてなんですが、この記事にさらっと書いてあったんですね。もっともMBRに書き換える方法が書かれていないのでここで詰まってしまっても仕方ないのかなぁ。とは思っていますが。
そしてIPSecの設定とかCentOSで超苦戦していた過去の自分に教えてやりたいくらい簡単だったし、今まで何やってたんだ自分感がやばい。

まぁ何にしてもよい経験ですね。おしまい。