tomesuke.log

サーバ運用とかセキュリティとか余裕があるとき書き残します。

GlobalなIPを持ってないけど自宅サーバを公開したい!(構成編)

はじめに

ちょっとでもLinuxApache等に触った人であれば、一度は

「自宅でサーバを運用したい!あわよくば外に公開したい!!」

と思ったことがあると思う。たぶん。

 

サーバを外部に公開するために最も必要なもの、

それは決して高スペックなPCや高機能なサーバアプリケーションではなく、

グローバルIPアドレスである。

 

日本の大多数の人たちはフレッツ光au光などのインターネット回線を契約し、

静的・動的関らずグローバルIPアドレスを借りて日々インターネットしているけど、

世の中にはグローバルIPをもらえない環境の人もいる。

 

マンション付属の無料インターネットユーザである。

 

これはマンションに管理者が1本インターネット回線を引き、

DHCPで各部屋にローカルIPアドレスを配ることで回線コストを下げ、

そのマンションに住む人は回線料金を払わずに数十Mbpsのそこそこの速度で

インターネットができる、というもの。(家賃にちょっとは上乗せ?)

以前住んでたレオパレスもこの方式だった。今住んでるアパートもこれ。

 

この環境だと自部屋にはローカルIPアドレスしか払い出されず、

せっかくの自宅サーバが公開できない!!ということになる。とてもショック。

マンションルータに入って静的NAPT設定できるなら話は別だけど…

 

そこで自分が考えた方法は、「サーバを外に張り出させる」という作戦。

グローバル環境のVPSとか借りて、そこでリクエストを受け付けて自宅サーバに流せば、

リソースとしては自宅サーバを公開できる!と考えた。

 

 

 

構成

とりあえずさくらVPSの一番安いプランのHDD 100GB、Mem1GBのCentOSを借りて、

そいつをVPNサーバにしつつ、自宅サーバからVPNを張って、

その中にhttpやらcifsやらを流す。

 

f:id:tomesk:20140715013612p:plain

 

ちなみにさくらの費用は年間11158 円(消費税含)です。

高いか安いかは人それぞれですが、固定IPだしハードは壊れる心配がないし遊べるし、

個人的には満足してます。

 

VPNスマホからの接続性も考慮してL2TP/IPSecにしてるけど、

ぶっちゃけ使わないし色々問題もある(また別途書く)ので、

大人しくOpenVPNで良いと思う。

 

フロントエンドのWebサーバはプロキシ中心だし設定書きやすい、最近流行り(重要)

という観点でNginxにした。Apacheは動かしてない。

バックエンドのEpgTimerSrvはブラウザ経由で録画予約するためのWebサーバ

アプリケーションで、あるURLへのアクセスを

EpgTimerSrvが待ち受けるportの5510へとリバプロする。

 

各部屋の回線を束ねるマンションルータはうちの場合YAMAHAのNVR500なんだけど、

普通にtelnet出来てshow configとかshow techinfoとか叩ける。いいのかこれ。

 

今のところの自宅サーバの役割は2つ

自宅サーバ(実は録画サーバ)のWeb予約

②録画した番組のストリーミング再生(できるけどほとんど使ってない…)

NASも兼ねてるけど外部には未公開

 

細かい設定とかも備忘録的に残しておきたいので、別の日にまた書く。

 

 

 

まとめ

・動的でも静的でもグローバルIPアドレスない環境は色々と大変

・だけどVPN使うとそのへんが捗る

自宅サーバ公開してないじゃん(タイトル詐欺)

以上。

 

 

 

おまけ

自宅サーバのスペック

OS:Windows7 Professional

CPU:Intel Core i5 3470-T

SSD:Intel520 128GB(OS領域用)

HDD:WD緑2TB×4 RAID10構成(NAS用)

Mem:DDR3-1600 8GB×2 DDR3-1333 4GB×2(24GB)  

M/B:ASUS P8H77-M PRO

電源:SST-ST45SF

 

仮想化もしたいけど2Core4Threadだとオーバーコミットしそう…エンコもしてるし。