外出先から操作できるサーバ構築環境を検討してみた

サーバ関連を自由にいじれる環境が欲しくなったので、「やりたいこと」「実現するための方法」選択肢に関して考えたので、せっかくだから記事に残しておきます。

やりたいこと

今回、自由にいじれる環境が欲しくなった経緯としては、自身の勉強用途でもあるのだが、知人と DNS サーバの勉強をする機会を得たという事情もあったりします。
 その知人は現時点ではDNS まわりの知識に明るくないので、サーバを弄れる環境くらいは用意しておこうかな、と思ったというわけなのです。

では、そのためにユースケースや、必要な要件をまとめてみる

ユースケース

一般開放された会議室や、cafe から該当の環境に アクセスして、環境上に構築した DNS サーバを操作する。

とりあえずこれで。 次に要件を上げてみる。

要件

  • 外出先から操作できること
  • DNS サーバ(など)を自由に構築できること
  • 自分以外(のPC)からアクセスできること

とりあえずこれで。 次に方法を考える。思いついたのは、物理的にやる方法と仮想的にやる方法

物理的にやる方法

会社のすごい人から ラズベリーパイ使うと簡単かも、と伺ったこともあり、物理的に自宅にネットワーク構築して
外部からアクセスする方法を考えてみた。

ハード面

材料を上げてみた。

  • ラズベリーパイ
  • 制作キット(「Pi-Top(パイトップ)」というのがあるらしい) 安い。ほかにもあるかもしれないが、コレにすることになったら、ちゃんと調べる。

ソフト面

OS はLinux で。CentOS 6系列が使いなれているのでこれにすると思う。FreeBSD も使ってみたいけど。
Windows のツールを使う必要がでてきたら、そのときライセンス買う。
DNS サーバソフトウェアは悪名高き(?)BIND 確定。脆弱性のお祭りをきっと体験したくなるので。
ほかには必要に応じて、 Apache とか Sendmail とか。

ネットワーク

自由に使えるグローバル IP が一つあれば、ルータかまして snapt すればなんとかなる。
が、ここで問題が。。。自宅は故あって、固定回線を引いていないので、グローバル IP が準備できない。
したがって、運用するなら固定回線を契約する必要がある。

運用

サーバは基本落としておくとして、OS は(少なくとも使う予定のある日は)常時稼働を想定。

結論

ラズベリーパイを組み立てるのが楽しそうだが、グローバル IP を用意するのがネック。

仮想的にやる方法

思いついたのはクラウドサービスの利用。サーバ立てたり、操作したりしたいので、Iaas。

ハード面

仮想なので、該当の Iaas にお任せ。

ソフト面

OS は CentOS があれば良い。が、後々のことを考えると Windows も選択肢に残したいので、ここは要チェック。 サーバソフトウェアは自分で入れるので、考慮しない。

ネットワーク

クラウドサービスなので、サーバ側は特に支障ないはず。一般公開は想定していないので、ACL はかけられるようにしたい。

ただ、利用したい環境のひとつからAWS へアクセスできない、という情報があったので、クライアント側のネットワークは検討せねばならなそう。 最終手段として、スマホテザリングでアクセスはアリなので、最低限使うポート= 22, 53, 80 ,25 ,110 位は出口を要確認。

また、ここで気づいたのだがテザリング で AP を立てる方法だと、アクセス元 IP がキャリアの施設のグローバル IP になってしまい、IP アドレス指定の ACL では、自身以外からのアクセス制限をかけられない疑惑が。。
まぁ、SSH でのアクセスを想定しているので、ログインを公開鍵認証にして、BIND のリゾルバ機能を無効にしておけば、権限昇格の脆弱性を突かれない限りセキュリティは大丈夫かな。(私的利用だし)

運用

クラウドサービスなら管理コンソールがあるはずなので、使うとき以外は落としておく。

結論

今回は、クラウドサービスを使う方向でまずはやってみる。

furien.jp

上記のページを読んでみたところ、候補は以下のどれかにしたいと考えた。

私的利用なので、 ポイントは最小構成での費用と最低限のセキュリティ。
今のところは、使ったことのある AWS が最有力で、最近個人的に耳にする機会がある Azure が次点。

以上、眠いので、アカウント登録は明日。おやすみなさい。