アンセケターメンはてなエディション

いつどこで誰に見られても恥ずかしいコードが置かれています

ConoHaのVPSでSoftEther VPN その1

第1弾・VPSを借りてSSHで接続できるようになるまで。

はじめに

今までお名前VPSSoftetherを入れてVPNサーバとして使ってたんですが、「オーバースペックなんじゃね?」「もっと安いやつでいいんじゃね?」などという疑問が湧いたのでConoHaに変えてみました。

移行先として一応他のサービスも考えたのですが、クラウドでいうとAmazonのEC2は転送量課金があってRadiko垂れ流しできず、Azureは高いし…みたいな感じで、ConoHaに行き着きました。というのは後付けで、このはちゃんが可愛かったのが一番の理由でした。

これはその時やったことのまとめです。

会員登録

会員登録しようとするとよし来たなまずは金を払え支払い方法を決めろと言われたので観念して5000円のConoHaカード買いました。学割で10%OFFだったのと楽天ポイントを使えたのとで支払い金額は1000円くらいでした。

9月26日の朝9時くらいに買って、9月28日の15時くらいに入金確認メール・16時くらいに発送メールが来て、郵便ポストに9月30日に届きました。当日発送とは
楽天ペイがいけなかったんだろうか。

このはちゃんかわいい。

カードが届いたので支払い方法を決めるとVPSを作れるようになります。

サーバの作成

セキュリティ上、一応ここから記事の最後までは一気にやってしまうといいです。

f:id:anseketamen:20171002203655p:plain

とりあえず最低限な感じで作りました。

続いて 3.オプション。

f:id:anseketamen:20171002203659p:plain

接続許可ポートなんてのを設定できるのかーと一人感心していましたがとりあえずスルーで。
画像ではSSH Keyを作ってる感じですが、実際は「使用しない」でやっています。作ると逆に色々めんどくさかったので…。

ここで、今が9月30日であることに気づき、明日まで待てばちょっと安くなるのでは?と思いましたが1円/1hなのでそのまま作りました。

f:id:anseketamen:20171002203705p:plain

構築中。

f:id:anseketamen:20171002203708p:plain

構築するとvps-xxxxxxがリンクに変わります。
リンク先にIPアドレスが記載されていたので、これをメモしておきます。

CentOS 7の最低要件はRAM1GB(インストーラがメモリ400MB食うぜーみたいな話がどっかのフォーラムでされていた)な感じでしたが、なんとかなったようです。

サーバ側の設定

SSHログイン

ターミナルでそのままsshが使えるMacLinuxを使ったほうが多少楽ではありますが、Windowsで操作したいのでここではRLoginというフリーソフトを使用します。

f:id:anseketamen:20171002203712p:plain

レジストリは触れられたくない(宗教上の理由)ので、RLogin.exeと同じフォルダにRLogin.iniという名前の空ファイルを作っておきます。RLogin製作者いわく「レジストリベースよりリスクが高い」そうなので自己責任で。

RLogin.exeを起動します。

f:id:anseketamen:20171002203715p:plain

「Server Select」というウィンドウが出るので「新規」を押します。

f:id:anseketamen:20171002203718p:plain

それっぽく設定します。ユーザ名はroot、パスワードはサーバ構築時に設定したrootのパスワードです。

設定し終わったらServer Selectから接続先を選んで「OK」を押します。

「公開鍵の確認」画面が出てくると思いますが、信頼しなければ何も始まらないので「接続する」を押します。

f:id:anseketamen:20171002204619p:plain

イェ~~イ繋がったぜ~~~~~!!!!

ユーザの追加

まず普段使い用のユーザ aburana を作ります。アブラナちゃんの部分は適宜読み替えましょう。

useradd aburana

作ったユーザを確認してみます。

cat /etc/passwd

一番下あたりにaburana:x:1000:1000::/home/aburana:/bin/bashみたいなのがあればOK。

aburanaのパスワードを作成します。

passwd aburana

出力は以下のようなかんじ。

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

できた。

SSHの公開鍵認証の設定

最近はパスワード認証でなく公開鍵認証するのがトレンドらしいのでやってみますすごくめんどくさかった

まず、/etc/ssh/sshd_configを編集して公開鍵認証を有効化します。

vi /etc/ssh/sshd_config

viの使い方うろ覚えだけどa押したら編集できた気がする。編集内容は#消してコメントアウト解除するだけです。

#RSAAuthentication yes
#PubkeyAuthentication yes

↓これをこうする。

RSAAuthentication yes
PubkeyAuthentication yes

あと、AuthorizedKeysFile .ssh/authorized_keysコメントアウトされていたら解除。
編集したらEscキー押して:wq打ち込んでEnter押せば保存して終了となるはず。

ここらで一旦SSHサービスを再起動しておきます。

 service sshd restart

さて次はとりあえずアブラナちゃんになります。

su aburana

続いて鍵の作成。つよそうな4096にしました。

ssh-keygen -t rsa -b 4096

余談ですがRSA114514を作ろうとして-b 114514と打ったらBits has bad value 114514 (too large)と言われました。残念。
出力は以下のような感じです。

Generating public/private rsa key pair.
Enter file in which to save the key (/home/aburana/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.

特に場所変えなくてもいいだろってことでそのままEnter。
パスフレーズはちゃんとパスワードっぽいやつをつけなきゃいけないらしいですが、そういくつもパスワードなんて覚えていられないので空のままEnter。

終わったら鍵をxxxに保存したよーと出てきます。.pubがついているほうが公開鍵、ついていないほうが秘密鍵です。

.sshディレクトリに入ります。

cd /home/aburana/.ssh

公開鍵の中身をauthorized_keysに書き込みます。

cat id_rsa.pub > authorized_keys

秘密鍵の中身を表示します。

cat id_rsa

下のような感じに表示されたら、BEGINからENDまで全部コピーして、RLogin.exeと同じフォルダにテキストファイルとして保存しておきます。ファイル名はsshkey.pemとでも。

-----BEGIN RSA PRIVATE KEY-----
44Ki44OW44Op44OKDQrjgIzjgYTjgIHjgYTjgYTjgYvjgonjgIHlm6Pplbfjga/j
gZjjgaPjgajjgZfjgabjgabvvIENCuKAlOKAlOKAlOKAlOOCk+OCk+OCoeOCouOC
ouOCouOBo++8geOAjQ==
-----END RSA PRIVATE KEY-----

終わったらRLoginの「ファイル」→「接続を閉じる」で一旦終了し、「ファイル」→「サーバーに接続」で最初に作った構成を編集します。

f:id:anseketamen:20171002203724p:plain

ユーザとパスワードをアブラナちゃんに変更し、SSH Identity Keyに先ほど保存したsshkey.pemを指定します。

それで保存してサーバに接続できたら成功。

SSHのその他の設定

アブラナちゃんでサーバに入ったらまずrootになります。

su -

公開鍵認証でログインできることが確認できたので、パスワード認証を無効化したりいろいろしておきます。
もう一度viで/etc/ssh/sshd_configを開いて

vi /etc/ssh/sshd_config

以下のものをyes→noに書き換えます。rootでログインできないように、パスワードでログインできないようにします。

PermitRootLogin no
PasswordAuthentication no

続けて、以下のコメントアウトを解除して設定値を書き換えます。ポート番号は適当に。5000くらいまではSoftetherで使うやつがあった気がしたので避けた。7273=ナズナさん。

Port 7273
Protocol 2

編集したらEscキー押して:wq打ち込んでEnter。

一応再起動。

 service sshd restart

次にファイアウォール(firewalld)の設定を変更してポートを開けます。
/usr/lib/firewalld以下のものは変更してはいけないので/etcにコピーします。

cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh.xml

viで編集します。

vi /etc/firewalld/services/ssh.xml

以下のようにXMLを編集してポート番号をナズナさんに。

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>SSH</short>
  <description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
  <port protocol="tcp" port="7273"/>
</service>

編集したらEscキー押して:wq打ち込んでEnter。

firewalldを再読込します。

firewall-cmd --reload

successと出てきたら成功。

終わったらRLoginの「ファイル」→「接続を閉じる」で一旦終了し、「ファイル」→「サーバーに接続」で最初に作った構成を編集します。

f:id:anseketamen:20171002210750p:plain

Socket Portを7273にします。

保存してサーバに接続できたらOK。

ソフトウェアアップデート

すっかり忘れていたソフトウェアのアップデートをしておきます。

yum -y update

-yをつけるとIs this ok?などといちいち確認されなくなるみたいです。

今日はここまで。

続きはこっち。

anseketamen.hatenablog.com