VPSを契約したら最初にすること

どうも。最近の超相場で資産が目減りしている裏技君です。つらいです。誰かボスケテ

 

NEMのスーパーノード系のお話でVPSを借りて展開しようぜって話がポンポン飛んでくるので、公開鍵暗号の導入の手引きでも書こうかなーと。簡単なのでみんなやろう。

前提知識:ほとんど全てのパソコンは、外部の人、内部ユーザー、root権限の順でアクセス権(編集権)が別れています。このうち、内部ユーザーとroot権限が外部に漏れない様に設定しないといけません。内部ユーザーのログインに公開鍵暗号を導入することにより、セキュリティを強固にします。また、内部ユーザーからrootに入れる構造にし、必要に応じて使い分けられるようにします。

必要なもの:tera term(端末、ターミナル、コンソールとか呼ばれてるよ)、root権限(=スーパーユーザー。さくらのVPSが難しいけど頑張って入ってね)

留意すべきこと:ubuntu14.04の64bitが前提になってます。他のlinuxOSは使ったことないのでわかりません。灰色の文字は適宜書き換えて使って下さい。

コピーペーストは端末上で右クリックしたら出来ます。端末上の文字をコピーしたい時は範囲をドラッグ選択してCtrl+C。エラーが出た時はエラー文章をコピペで検索でhowtoを得ましょう。

契約時に表示される「RSA/DSA鍵暗号を利用する」かどうかの選択肢ですが、「使用しない」を選択して下さい。もしこの時に使用する側を選んでしまった場合、このブログの方法では公開鍵暗号の設定は出来ません。

 

さくらのクラウド、さくらのVPSのみ

//さくらユーザーのみ、次の方法でrootに入ろう(これ一応出来るけど利用規約的に大丈夫なんだろうか)//
sudo passwd
[sudo] password for ubuntu: //契約した時に設定したパスワードを入力
Enter new UNIX password: //rootのパスワードを設定。画面に反映されませんが入力されてます
Retype new UNIX password: //パスワードもう一度
su //rootでログイン
Password: //もう一度
//ここまでさくら初期設定。パスワード要求は契約時のパスワード以外同じ物を入力して下さい//
//これで他のVPSと同じrootで入れるようになります//
//このパスワードは強度不足が起こると真っ先に乗っ取られる部分なので注意。乱数とかコピペ推奨//

 

共通

adduser hogehoge //hogehogeをユーザーIDに変える、以後hogehoge
Enter new UNIX password: //パスワード入力。画面には反映されてないけど入力されてるので注意
Retype new UNIX password: //もう一度入力
Full Name : ~ Other: //入力せずEnter連打、最後に「Y/n」って出て来るのでYでおっけー
gpasswd -a hogehoge sudo //root権限使ってユーザーhogehogeにsudo権限ブチ込み

 

//ここから
apt-get install vim -y
vim /etc/ssh/sshd_config
/Port 22
:s/Port 22/Port SSHPORT/g
/PermitRootLogin yes
:s/#PermitRootLogin yes/PermitRootLogin no/g
:s/PermitRootLogin yes/PermitRootLogin no/g
:wq!
sudo service ssh restart

//ここまで、灰色のSSHPORTを適宜書き換えて端末にコピペ。直接rootログインを禁止してます。
//(もっとスマートな置換の方法あると思うんだけど使い方分からんのでこんな記述になってます)

sudo ufw enable //ufwを有効化
//(y|n)って出て来たらyを押してEnterしてね
sudo ufw default DENY //全てのポートを閉じた状態をデフォルトにする
sudo ufw allow SSHPORT //先ほど入力したSSHPORTナンバーを入力
sudo ufw reload //ルール適用
sudo ufw status //ポートの開閉状態を表示

///端末をもうひとつ起動し、SSHPORTを先ほど設定した物に変更し、hogehogeとパスワードで入る///
cd ~ //ホームディレクトリへの移動
mkdir .ssh //隠しディレクトリとして.sshを作成

//tera termの設定タブからSSH鍵生成を選択、鍵の種類をRSAにし、ビット数を2048bitにする。
//ECDSA(楕円曲線暗号)でも良いけど、対応しない端末アプリが結構あるので、あまりオススメしません。
//公開鍵と秘密鍵を保存し、teratermにid_rsa.pub(公開鍵)をドラッグ&ドロップで放り込み、SCPを選択。

mv ~/id_rsa.pub ~/.ssh/authorized_keys //公開鍵を.ssh/に放り込み、authorized_keysにリネーム

//root端末に戻って(root権限でログインして)、ここから
vim /etc/ssh/sshd_config
/PasswordAuthentication yes
:s/#PasswordAuthentication yes/PasswordAuthentication no/g
:s/PasswordAuthentication yes/PasswordAuthentication no/g
:wq!
service ssh restart

//ここまでコピペ。前回と同じくSSHconfigをぱぱっと書き換えてパスワードによるログインを禁止


端末をもうひとつ起動し、port番号を先ほどの物に差し替え、ユーザー名をhogehogeに設定、
RSA/DSA鍵を使う」にチェックを入れ、id_rsa秘密鍵)を使って無事入れたら成功です。

 


環境の確認

全て上手く行っているか確認してみましょう。
とりあえず、ssh設定のリロードのために「service ssh restart」を行って下さい。

【前のポート番号でログイン出来てしまうか確認】
新しく設定したポート番号で入れない場合(接続が拒否されましたと出た場合)、
ログインする時のポート番号を22番に設定し、公開鍵でログインしてみて下さい。
可能だった場合、「vim /etc/ssh/sshd_config」でのポート番号の設定保存がミスっています。

【ルートでのログインが出来てしまうか確認】
新しい方のポート番号を選択し、名前をrootに変え、
契約時のログインパスワードを入力して入って見て下さい。
これで入れてしまう場合、「vim /etc/ssh/sshd_config」の「PermitRootLogin」の行がyesになっています。

【パスワードによるログインが出来てしまうか確認】
せっかく公開鍵暗号でログイン制御していたのに、パスワードログインがそのままだと意味がありません。
新しいポート番号を使い、ログインIDを作成したユーザー名に、
パスワードをその時設定した物で入って見て下さい。
これで入れる場合、「PasswordAuthentication」の行がyesになっています。後述するviの検索方法で確認して下さい。

その他、ログイン出来なくなった場合は、それぞれの組み合わせでログインを試して下さい。
全部入れない場合、「SSHポートを閉じてしまった」「公開ポート番号とSSHポート番号を間違えて設定してしまった」「そもそも公開鍵をアップロードしてなかった」など、結構悲惨な状況になっている可能性があります。root権限の端末はくれぐれも最後まで閉じないよう気を付けて下さい。閉じてしまったらサーバー再構築です。がんばりましょう。

その後の色々

SSHPORTは、1022とか222とかに書き換えてね。適当で問題ないけど、出来れば「netstat -at」でポート被りが発生していないか確認してね。(Local Addressの欄を確認)

 

【ログインめんどくさいマン】

TeraTermマクロ-SSH公開鍵認証で自動ログイン | Tera Term(テラターム)の便利な使い方

ここを参考にしてマクロを組むと以後ダブルクリックだけで端末を起動出来るので大変便利です。

 

【rootになりたい時】

端末で「su」と入力、パスワード入れるだけ。

一度だけ使う、ユーザーとして編集したい時などは「sudo hogehoge」で一行スーパーユーザー推奨。

 

【viの使い方】

基本sudoで編集しましょう(sudo vim /hoge/huga.conf など)。「あれ?保存出来ない」ってなった時の大抵の原因がアクセス権不足です。

起動した直後はコマンドモードとなっています。

/を入れると文字列検索、nで次の検索、:wqで保存、:q!で保存せずに強制終了、uでundo、iで編集モードになります。:set numberってやると行番号振られて便利。

編集モードからコマンドモードに戻る場合はESCキーで戻れます。これさえ覚えておくとメモ帳レベルで編集出来るので覚えておきましょう。

 

【あれ?suになれない?sudo使えない?】

内部ユーザーにsudo権限ブチ込むの忘れてます。再構築しましょう(諦め)

また、一番最初のスーパーユーザー端末を消さずに残しましょう。接続が切れない限りこの端末でroot権限で編集出来ます。

 

VPSの契約とかの話

【そもそもVPS契約してなかった人】

こちらからConoHaのVPSが契約出来ます。当たり前ですがお金掛かります。NEMで使うならメモリ量に気を付けましょう。4core4GBで月3420円。※リファラーリンク注意、1000円分のクーポン付き

ConoHa - GMOの高性能オールSSDクラウド

 

【さくら使いたい人向け】

512MBプランが新設され、料金が割安ですが、NEMのスーパーノードではメモリ不足らしいです。プランは3400円(クラウド1core3GB)から4000円(VPS4core4GB)。

料金・仕様一覧|VPS(仮想専用サーバー)はさくらインターネット

 

【頭のおかしい人向け】

稼働率がうんこ、800円で永遠に使える伝説のVPS。CloudAtCostが君を待っている…(利用前に当該トピックを閲覧してどんな物なのかをちゃんと理解した上でご利用下さい。サーバーを複数借りると管理画面でニコイチ出来るので、それでメモリ量増やすと使えるかも)

cloudatcostに突撃したんご - Ask Mona

 

【それぞれのVPS特徴】

ConoHa:スペックの変更が容易なのと、初期費用がほぼゼロのため、簡単にスペックの増設、パージができます。NEMノードとして必要なスペックを測るために、さくらの前に一時的に利用するなんてのも有り。ただ、お隣のGMOクラウドが2016年7月現在DDoS攻撃に対して全く対策されておらず、攻撃の対象になった途端にサービス停止を食らってしまう可能性があり、日々DDoS攻撃に耐えている暗号通貨界隈にとっては恒久的に使用するには心もと無いかも。公式キャラのConoHaちゃんがかわいい。

さくら:スペック変更に時間が掛かり、また初期費用(スペック変更時にも追加で掛かる)に約一ヶ月分の利用料が発生します。価格もConoHaより割高ですが、昨今のブロックチェーンの話題を掻っ攫っているため、ブランド名を背負いたい場合にも良い選択であり、またサーバー稼働率の優秀さで右に出る物は居ません。一度動かしたらしばらく管理せず放置したい人向け。

CloudAtCost:がっちゃんがっちゃんサーバー立てたり消し飛ばしたりが容易なので、サンドボックス代わりに利用すると結構楽しいかも。だいたい構築してから4日経つと死にます。中のデータが泡みたいに消えます。ダッシュボードからのサーバー再構築でたまに復活します。

 

 

【意外な選択肢として】

Deploy BareMetal and Virtual cloud SSD server in seconds. | Scaleway

海外VPSサービスのscalewayも中々楽しそうです。月額1400円にて6core8GBのプランがあります。国内の相場と比較すると雲泥の差です。

メモリ量が大分余るため、他の採掘も同時にこなしたり出来るかも。ただし最近始まったサービスでもあるため、サーバーの稼働率については限り無く謎である点も留意して下さい。契約が英語なのでちんぷんかんぷんになるかも。paypal対応確認済み。

知っての通り、暗号通貨の採掘ノードは世界の何処に設置しても同じ様に活動します。海外に設置したからと言って何かしらボトルネックになるケースは極めて稀です。ただ、ping値がよろしくない地域に設置すると多少影響が出て来るので、それが気になる方はスルーして下さい。

 

【その他おもちゃ】

ARM Cloud - RunAbove

RunAboveのARMサーバー、1core2GBが月120円で借りれちゃいます。が、こちらは現在応募が殺到しているのと、このサーバー提供自体も研究ラボによる片手間運営のため、ユーザーの追加はしばらく考えていないとのこと。またARMサーバーであるため、一部のx86資産が流用出来ません(不測のエラーが起こる可能性あり)。