Logo address

Personal Web Server

Personal Web Server をテーマにした記事を少しづづ書いていく予定である。

1. Dynamic DNS (DDNS)

2015/02/25

固定 IP が欲しいのだが高くてとれない。
Interlink を使えば安いのだが、フレッツとの契約が必要。これが高い!

1.1. DDNS service

お名前.com が経済的
何しろ名前(domain name)を取れば無料で DNS サービスをしてくれる*。そして、取得料金は安い。現在の相場では(安いものでは)年間100円程度で運用できる**
http://www.onamae.com/


注* : 2010/06/01 より無料化に踏み切ったらしい
http://www.onamae.com/news/domain/100427_1.html
注**: 安いのは最初の年だけである。2年目から10倍程に跳ね上がる。

1.2. DDNS clients

DiCE が有名らしいが、Unix 環境では動かないとの悲鳴が多い。
実際、僕も苦労した挙句、次の記事を見つけた。
このページに読者からのコメント投稿があり、
http://www.mysrv.link/dice.tar.gz
が案内されている。リンクが切れる可能性があるので、念のために同じものを筆者のサーバにも置く。(バージョンアップされている可能性があるので、オリジナルを優先してください)
http:dice.tar.gz

これは PHP で書かれた、DiCE の代用品で、

使い方はソースコードを見れば分かる。(コメントが親切)
僕はソースコードがオープンになっていないプログラムを使う気にはなれない。

設定すべき基本情報は

の3つだけである。関係するコードは以下の箇所。
// arrayの最終行にはカンマが不要なので注意。
static $fqdn = array(
	array('me','nyx.link')
);
// 自分のアカウントの設定
define('USERID', 'nnnnnnn');				// お名前.comのID
define('PASSWD', 'xxxxxxxxx');				// お名前.comのパスワード

ファイルの設定は

-r--------. 1 root    arisawa  3821 May 20  2014 cert.pem
-rw-r--r--. 1 root    root        0 Feb 25 11:08 dice.log
-rwx------. 1 root    arisawa  9978 Feb 23 18:18 dice.php
で、実行は root 権限で
./dice.php >> dice.log
とする。

作者に感謝!

2. モバイル元年

2015/02/25

2.1. ガラケーよさようなら

2015年は筆者にとってのモバイル元年である。
何をいまさら...

筆者はこれまでに古い古いガラケーを使ってきた。SAMSUNG 706SC である。このモデルは 2006年頃のもので、とっくに修理保証期間は過ぎてしまっており、バッテリーも手に入らない。現在のバッテリーがへたったら、寿命を迎えたことになる。

なぜこんなに永く使ってきたかと言えば:
第一に自分の性分がある。使えるものを捨てるのは嫌いである。前の車は18年間も乗り続け、ついに雨漏りが止まらなくなり、ようやく買い換えた。愛用していた NeXTSTEP は10年以上も使い続けた。これを捨てる決心がついたのは、Apple が OSX シリーズを売り出したからである。(OSX シリーズは事実上 NeXTSTEP の後継機である)
第二にスマホの利用料金が高すぎると思っていたことにある。ソフトバンクでスマホを買うと、月々7000円ほどの出費になる。しかし自分の利用(平均的に言えば1日に1度、電話かSMSで使うぐらい)を考えると、とても7000円に値しない。現在のガラケーの利用料金だって自分のニーズに比べると高すぎる!

しかし、そろそろガラケーからオサラバしなくてはならない...
次に何を買うか?

2.2. スマホに求める機能

筆者はスマホでネットサーフィンする気は毛頭ないので携帯に求める機能は次の3つであった。(あえて過去形にしている)

筆者は、iPad (WiFi) を持っているし、またいくつかの Macbook シリーズも持っている。筆者が過ごす殆どの時間は WiFi 環境下である。であるからテザリングも緊急避難的な使い方しかしない。しかし、欲しいと思えることが時々あるのだねー。しかし、テザリングはガラケーではできない。我慢するしかなかった。Pocket WiFi も試したが、ニーズに見合わない料金だしね...

2.3. 格安 SIM

昨年末に、DMM mobile が格安SIMを売り出したことを目にした。調べてみると昨年あたりから安価な SIM が出回ったらしい。そこで試しに、安価な Android スマホを買い注1、テザリング用に 1GB/月 のSIMを入れて使ってみることにした。気に入れば、電話可能な SIM と入れ替え、ソフトバンクとの契約を切るつもりである。家族のものも...


注1: 最近では1万円前後でスマホを買える。高価な iPhone を買うより、安物スマホ + iPad mini の組み合わせの方が合理的な選択である。なお iPad はプレゼンのニーズを持つ我々には必需品である。

1ヶ月あまり使った経験では、筆者の場合1GB/月の契約で十分であることが判明した。1割も使っていない... 外出中に動画をみる趣味は無いから...
表1に筆者のニーズに合わせて、SIM 利用料金を比較する。

表1: SIM 利用料金の比較(金額は円/月)
name データ容量 Data のみ 電話プラス
DMM mobile 1GB 660 1460
freetel 1GB 670 1270
biglobe 2GB 900 1600

次は freetel にしようか...

格安 SIM を販売しているのは MVNO(Mobile Virtual Network Operator) と呼ばれる業者である。今の所 MVNO の殆どは NTT docomo の回線を借りて運営しているらしい。それなのにこれほど安くなるとは驚きである! NTT docomo はこれまでにどれほどの利益を貪っていたのか? 総務省の圧力があったらしい...

総務省はMVNOが回線を借りる料金を13年度分から大幅に安くするが、大手に回線の開放を徹底させるなどさらなる新規参入の促進策を検討する。

http://www.nikkei.com/article/DGXNASFS0303B_T00C14A2PP8000/

さて、実際にスマホを使ってみると、役に立つことが他にもあることに気づいた。

3. 多様な情報デバイスの時代

2015/03/08

3.1. 多様な情報デバイス

ここ10年程の間に我々は多様な情報デバイスを持つようになった。一つの家庭の中で家族が各々のパソコンを持つだけではなく、一人が多様なデバイスを持つようになったのである。
僕の場合も次のようなものを持っている。

僕ほどではなくても、若い子であればノートパソコンとモバイルフォンは持っているだろう。

このような環境を迎えて問題になったのは情報デバイス間の情報の同期である。どの情報デバイスからも同一のデータにアクセスしたい。

この問題は、LAN の中ではネットワークベースのファイルシステム(ファイルサーバー)によって(部分的に)解決されてきた。家庭や SOHO で利用される NAS デバイスもそのようなものの一つである。OSが統一されているホモジニアスなコンピュータ環境であれば、それも良い解決法だろう。しかし今日では Microsoft の支配力は過去のものになっている。ビジネスの現場であれば、それでも Windows 環境に統一できるだろうが、家庭環境では異なる。

3.2. デバイス間の情報同期

個人の好みを許容する環境、つまりヘテロジニアスな環境に、ファイルサーバー的な考えを持ち込んだ場合、次のような問題に遭遇する。そして、それは混乱をもたらす原因となる。

これらの問題点をクリアできるのは PDF 形式のファイルなど、規格が定まり、広く使われている極く僅かなタイプのファイルに限られる。僕はテキストファイルを愛用している。テキストファイルは最もシンプルな形式であるが故に、永続性が保証されるからである。テキストファイルをどの環境からでも作成し、参照し、編集したいのであるが、それがままならない注1


注1: テキストファイルはそのシンプルさ故に文字コードが直接反映される。今日では文字コード問題は(Windows を除いて) UTF-8 に統一されつつあるが、Windows(日本語版) がこの方向に進まない。また Windows の下で作成されるテキストファイルの行末コードは他のOSとの互換性も持たない。つまり Windows を含む環境ではテキストファイルは共通のファイル形式にはなりえないのである。

以下に広く使われているだろうと思えるモバイル環境の代表的なアプリを個別に吟味する。なお、僕が主に使うのは Apple 製品なので、評価が偏っているかもしれない。


注意: あなたのブラウザは SVG をサポートしていません。最新のブラウザをお使いください。

図1: 同期型クラウドストーリッジサービス
クラウドのサーバを使いデータを同期させる


図2: 非同期型クラウドストーリッジサービス
データはクラウドのサーバで一元管理

異なるデバイス間の情報の同期はけっこう難しい問題である。デバイス間のフォーマットが統一されていなくてはならない。例えばメモ帳などは OS が異なれば絶望的だろうし、アドレス帳も置き場所が異なるだろうから怪しい。(ネットからの情報ではいろいろなノウハウがあるようだが、どれだけの信頼性と永続性が保証されるかわからない)

さらに文字コードの問題がある。Windows は未だに SHIFT JIS を使っており、Mac でテキストファイルを読めば文字化けする。

3.3. 問題解決の方向

ローカルデバイスにデータを置くと、必然的に同期問題に悩まされる。それでも Dropbox が歓迎されたのは、ネット接続できない場所が存在したからである。Dropbox の成功を受けて、類似のサービスを、Google や Microsoft も同様なサービスを始めたのであるが、成功するかどうか?

時代は急速に変化している。良質のネットワーク環境が安価に手に入る時代が来たのである。そのような環境では考え方を変える必要がある。同期方式ではなく、情報をサーバーで一元的に管理し、情報デバイスはそこにアクセスした方が良いだろう。こうすればファイルの同期問題から完全に解放される。これが可能になってきたのだ。

すでに非同期型(サーバーでの一元管理型)のサービスは行われているようだ。ネット環境さえ良ければ、同期問題から解放されるばかりか、ローカルストーリッジ容量の制約問題からも解放される。もっとも、このままではクラウドの中に NAS を置いたのと同じで、クライアント環境の違いを吸収できない。

さらに、HTML5 が急速に普及しだしている。Microsoft ですら HTML5 へスイッチしだした。 現在では Web のホームページを HTML5 で書けば OS 間の違い、デバイス間の違いが吸収されるようになってきたのである。

3.4. クラウドストレージサービス比較

ネット上に誰かがクラウドストレージサービスの比較をまとめている。

これに基づいて、クラウドストレージサービスを表にしてみた。

表2: クラウドストレージサービスの比較
name 同期/非同期 interface OS comment
Dropbox 同期 app Win,Mac,Lin,iOS,And
SugarSync 同期 app ?
Goole Drive 同期 app Win,Mac,iOS,And
Hive ? ? ?
SurDoc 同期/非同期 app Win,(Mac),iOS,And 暗号化
SHARED 非同期 browser Win,Mac,Lin,... 注1
MediaFire 同期 app Win,Mac,iOS,And


注1: 感心しない。何もインストールしないはずであった。だって次のように説明されている。
Nothing to Install

Everything is done directly in your mobile or desktop web browser to make sure uploading and sharing is as simple as possible.

これは僕が目指す方向でもある。
しかしアプリ “ZipCloud” がインストールされる。これが曲者でローカルデバイスの全てのファイルのアップロードを試みる。そして次のメッセージを出す:
Hey arisawa, Upgrade today to protect all your computer files!
無料で100GBの宣伝文句はどうしたのだ? こんなビジネスの方法は感心しないし、重大なセキュリティの問題に発展する。マルウェアの可能性を疑う。
それにサーバの作りの下手なこと。Drag&Drop が使えない。僕の Remoty の方が遥かに完成度が高い。

3.5. SHARED はトロージャンらしい

2015/03/15

ブラウザの異変に気付いた。変なポップアップに悩まされるようになったのだ。
どうやら SHARED はポップアップウィルスらしい。(もっと酷いことをやっている可能性がある)
SHERED からダウンロードしたファイルを実行すると、macfest なるアドオンがプラウザに勝手にインストールされる。

Chrome にインストールされた macfest

僕の場合、インストールされたブラウザは、Chrome, Safari, Firefox である。Opera にはインストールされていない。マイナーだからね...
これがインストールされると、超高価な買い物メニューのポップアップが出てきて(5千円で買えそうなシューズが5万円で売られている)、ホームページがポップアップで隠れて閲覧の邪魔になる。

アドオンから削除すれば、問題のポップアップは出てこなくなる。

macfest に関してネットを検索すると、次の記事が見つかる。

Macfest がホームページを持っている。
これを見ると、Macfest は SEO 対策業者である。彼らによると Macfest addon によってアクセスが増えるということだ。そりゃそうだよね。ユーザは懸命に邪魔なポッブアッブを消そうとして × をクリックする。しかし消えない。これらは全てカウントされることになる。

3.6. SurDoc

SurDoc は注目に価する。SurDoc の説明によると、同期を行うときにクライアント側で暗号化し、それをサーバに上げる。これが正しく働いていればセキュリティ面でかなり安心できる。この方法の弱点は NAS と同様にヘテロジニアスな環境に適応できないことにあろう。

暗号化には “The SurDoc Auto-Backup client” が必要らしい。これは暗号化のほか、自動パックアップと同期を司っているらしい。しかし Mac 版は現在

NOTE: The SurDoc client for Mac OS X is a beta version, which is currently not maintained.
と案内されている。実際には手に入らない。

暗号化は事実上のオプションらしく、任意のファイルが(暗号化せずに) SurDoc のサーバにアップロードできる。SurDoc では 100GB の無料サービスがあるが、あの貧弱なインターフェースであれば、とても使い切れないであろう。

同期がどの程度うまく働いているかは、使いこなさないと評価できない。

暗号化ツールはオープンであってほしい。あるいは少なくとも第3者の目が入るようになってほしい。ハニーポットとして使われる可能性があるから...

3.7. SpiderOak

先の表2には取り上げていないが、ネット上では SpiderOak の評価が高い。SpiderOak は SurDoc と同様にクライアント上で暗号化されたファイルをサーバーに送る。従ってサーバーの管理者には暗号化に使われたパスワートは分からないので、内容を見ることができない。

あの元CIAのスノーデンさんが、Dropbox はダメだ、SpiderOak のようなのが良い、と言ったのだから、人気は高まるだろう。僕もこれを試すこととした。

he said you should “get rid of Dropbox,” because it doesn’t support encryption, and you should consider alternatives like SpiderOak.

http://techcrunch.com/2014/10/11/edward-snowden-new-yorker-festival/

SpiderOak は https://spideroak.com/ から手に入る。2GB までは無料。
ソースコードが公開されていて、
https://github.com/SpiderOak
にてメンテされている。

使い心地は?
今のところ、一点だけ問題がある。僕の UTF8 のテキストファイルが文字化けする。以下の拡張子のファイルはOK.

pdf rtf docx pages html jpg png xls xlsx numbers
他の拡張子のファイルは試していない。

Dropbox と違って、基本的にモバイルデバイスの中にはコピーを置かないようだ。セキュリティ重視かもしれない。
使い心地は(現在のところ) Dropbox の方が上。従ってセキュリティを問題にすべきファイルは SpiderOak、他は Dropbox と分ければよい。

気になる暗号化方式だが次のように書かれている。

They are encrypted with 256 bit AES, using a key created from your password by the key derivation/strengthening algorithm PBKDF2 (using sha256), with a minimum of 16384 rounds, and 32 bytes of random data ("salt").

256 bit AES は 32B 長の key を使う。このメリットを生かすには長いパスワードを使う必要があるが、実際問題として、そんなに長いパスワードは打ち込むには大変である。そこで殆どのユーザーは短いパスワードで済ませるかもしれない。TrueCrypto はこの点で上手く工夫されていて、適当なファイル(これをXとする)が補助キーとして活用されていた。そのために TrueCrypto で暗号化されたファイルを読むためにはファイルXをも持っている必要がある。これは非常に安心できる方法であり、SpiderOak も採用して欲しいと思う。

4. Personal Web Server

2015/03/08

4.1. Personal Web Server とは?

ネットを調べてみると “Personal Web Server” と言う言葉は Microsoft の製品名として定着しているらしい。Microsoft は、"Windows" にせよ、一般名詞を製品名として普及させるのが、好きというか、得意というか、しかし、迷惑でもある。

筆者が “Personal Web Server” と言うときは、Microsoft の製品を意味しない。個人の家に設置され、個人が管理・運営し、Web サーバとしての不特定多数への情報発信と共に、アクセス保護によって特定の個人のアクセスのみを許すサーバーを指している。


注意 重要な情報はインターネットアクセスが可能な環境に置かない方が良い。パスワードなどでアクセス保護がされていても、管理の手落ちやソフトのバグで漏れる可能性があるからである。筆者は管理には自信を持っているが、それでもクリティカルなファイル(財産管理やパスワード管理用のファイル)は暗号化しており、さらに用心を重ねて、サーバーには置かないことにしている。

昨年度はシェルショックが話題になった。Unix の標準シェルである Bash に深刻な脆弱性があり、これを CGI に使った場合、プライベートなデータが盗まれるだけではなく、サーバーがボット化する危険性すらある。Apache は Bash で書かれた CGI のサンプルを標準インストールしているので、当然狙われたはずである。このようなケースでは個人の管理能力を完全に超えている。


4.2. なぜ Personal Web Server ?

インターネットが切り開いた境地は、情報発信のコストを劇的に下げたことにある。今や個人は自分の主張を自由にネット上に展開できるようになった。この状況は Web2.0 と呼ばれる。現在のところ、その主要な形態は無料で提供される Web ページであり、多数の企業がそのようなサービスに参入している。企業側の収益は、ページに載せる広告であり、それらは、多くの場合、邪魔で嫌われる。また、これらのサービスはブログなど限られた用途に対しては初心者向けに使いやすくなっているものの、プライベートな情報を置く場ではない。

もしもあなたがブログ以上のニーズを持たないなら、既存のブログサービスを受けた方が良い。システム構築の苦労を味わう必要がないからである。

もう少し自由度が高く、有料ではあるが低価格で利用できるものとして、ホスティングサービスがある。しかし他人が管理するシステムにプライベートなデータを置くにはリスクを伴う。特に共用サーバではそうである。悪意ではなくても、それらを管理者に見られる危険性がある。さらに心配なのは、有料のものは、支払いが何かの理由で滞った場合には、データが消去される。これもデータリークと同様に怖い。

プライベートなデータは他人が管理するサーバに置いてはいけない

結局安心でき、しかも自由に使えるのは、自宅に設置され、自分が完全管理するサーバだけである。もちろん管理能力が要求されるので、現状では腕に自信のあるマニアが試みているにすぎない。

今のところ、自宅サーバの果たしている役割は限られているのであるが、潜在的な可能性は大きい。ネットを検索すると可能性を引き出すための様々な試行錯誤が報告されている。例えば、留守中の家の状態を見るとか、ペットの世話をするとか、... 他にも可能性としてはいろいろあろう。サーバは情報公開のためだけにあるのではない。様々な運用目標が可能なのである。それはユビキタスネットワーク時代のパラダイムでもある。

4.3. データを整理し活用する時代

図3: Android の画面

サーバーを持っていれば、それをデータの保管、参照場所として利用できる。筆者は大学の研究室にサーバーを持っており、それをプライベートな(パブリックにする予定のない)データの保管場所にも使ってきた。本来の目的は、パブリックな Web サーバーであるが、アクセス保護によって、プライベートなデータも置ける。

ユピキタスネットワーク環境では、プライベートなデータの置き場は実にありがたい。ともかく、片っぱしからメモでき、それをどこからでも参照できるからである。情報デバイスの OS に依存しないでそれをやるにはどうするか?

今や殆どの情報デバイスは Web のブラウザを備えている。従って、ブラウザを通じてメモを作り、ブラウザを通じて参照すれば問題が解決する。幸い最近のブラウザは HTML5+CSS3+Javascript で標準化されつつある。

この記事も、ブラウザを通じて書いている。図3は Mac のブラウザで書いたスケジュール(の一部)を Android 端末(スマホ)で開いて見える画面のハードコピーである。 自由書式でスケジュールを書ける有り難みがよくわかる。

4.4. Domain Name の問題

家庭に設置されたサーバに外部からアクセスできるためにはグローバルな IP がルーター(の WAN 側)に付与されなくてはならない。たいていの場合には、固定したアドレスは貰えない。貰えても高額の利用料を請求される。IPv6 が普及すれば状況が変わるだろうが、まだ暫くかかりそうである。

IPv6 が普及するまでは、時々変化する IP アドレス(ダイナミック IP アドレス)に頼らざるを得ない。たいていの ISP はグローバルなダイナミック IP アドレスは提供しているので、この下で Web サーバを何とか運用できれば、当面の繋ぎにはなる。

通常はインターネットからサーバに名前(domain name)でアクセスする。例えば筆者のホームサーバであれば

http://me.nyx.link
である。domain name “me.nyx.link” と IP アドレスを結びつけているのが DNS である。
「お名前.com」は、domain name を貸し出しており注1、その際に、DNS に domain name と IP アドレスを登録するサービスを無料で提供している。それによって非常に低価格で家庭内のサーバを運用できるようになる。

4.5. 結論

デバイスの発展によって、コンピュータの処理能力は増大し、小型化し、静音化し、消費電力と価格が年々低下している。つまり家庭の中にサーバを置き、24時間運転しても問題はない時代である。家庭に来るネットワークも今や 1Gb/sec の時代に入っている。そうした時代にあって、現在では、ブログサービスやホスティングサービスを受ける理由はなくなっている。また、デバイス間の同期問題をも自分が管理する単一のサーバによって完全に解決できる。一般的に言えば、リモートのサーバを扱うのは困難を伴い、許される範囲が限定されるのに対して、家庭内にある自分のサーバであれば、使い慣れたツールを使って管理でき、CGI を自由に使える。

管理能力さえ身につければ... (さほど難しくはないのだが...)


注1: 実は筆者が得た権利は nyx.link の部分であり、me の部分(subdomain)は勝手に(いくつでも)名前をつけることができる。たいていの Web サーバは複数の subdomain を許すので、目的に応じてコンテンツを変え、複数のサーバを運用しているかのように見せることも可能である。

5. サーバ

2015/03/13

5.1. ボット化を防ぐ

次に示すのは、筆者の自宅サーバのアクセスログである。存在がアナウンスされているわけでもないのに、設置後、程なくしてこのようなログが観察されるようになった。PHP を狙う攻撃が多い。ネットで調べると PHP にはセキュリティホールが多いらしい。

maia Mar 13 09:59:59 510683 61.19.151.147 177 GET /phph/php/ph.php HTTP/1.1
maia Mar 13 09:59:59 510683 61.19.151.147 177 denied: [118.111.248.177] [maia]
maia Mar 13 09:59:59 510683 61.19.151.147 177 Reply: 404 Not Found
maia Mar 13 09:59:59 510685 61.19.151.147 177 GET /phpMyAdmin/scripts/setup.php HTTP/1.1
maia Mar 13 09:59:59 510685 61.19.151.147 177 denied: [118.111.248.177] [maia]
maia Mar 13 09:59:59 510685 61.19.151.147 177 Reply: 404 Not Found
maia Mar 13 10:00:00 510686 61.19.151.147 177 GET /pma/scripts/setup.php HTTP/1.1
maia Mar 13 10:00:00 510686 61.19.151.147 177 denied: [118.111.248.177] [maia]
maia Mar 13 10:00:00 510686 61.19.151.147 177 Reply: 404 Not Found
maia Mar 13 10:00:00 510687 61.19.151.147 177 GET /myadmin/scripts/setup.php HTTP/1.1
maia Mar 13 10:00:00 510687 61.19.151.147 177 denied: [118.111.248.177] [maia]
maia Mar 13 10:00:00 510687 61.19.151.147 177 Reply: 404 Not Found
サーバを自分で運営する限り、ログは時々見る必要がある。ネットを調べると不正アクセスのトレンドがわかる。必要な対策は自分で行わなくてはならない。ボット化しないように...

普遍的な一般論であるが、

を考える必要がある。この2つは密接に関係している。許容される被害を見積もり、その上で使いやすさの妥協点を考える必要がある。

家庭環境にインターネットからアクセス可能なサーバを設置する場合、セキュリティが破られた場合の対策として、サーバは他のコンピュータと分離した方が無難である。2つの方法がある。

  1. コンピュータを追加する
  2. 仮想コンピュータを追加する
安全性から考えるとコンピュータを追加した方が良いのだが、多分、使い勝手を悪くするだろう。

どちらの場合も(ライセンスの関係から)フリーな OS とフリーな Web サーバをインストールすることになる。

5.2. コンピュータを追加する

使い古しのコンピュータでも構わないし、自分で組み立ててもよい。最近のものはハイパワーの CPU を備えていても消費電力は小さいし、寝室に置ける程に静かである。小型のものが欲しいなら「小型コンピュータ」でググればいろいろ出てくるだろう。

ネットで見つけた、ちょっと面白い小型コンピュータ

最近では超小型(クレジットカードサイズ)のコンピュータが注目されている。例えば

これの超小型サイズコンピュータにはハードディスクを接続するための SATA の口が無い。
ODROID-XU3 は USB3 を備えているのでサーバとして使えるかもしれない。(目的に依存する)
ただし、家庭内に常時置くなら、ここまで小型のものは必要ない。(むしろ扱いにくい)

家庭用サーバ選択の注意点

5.3. 仮想コンピュータを追加する

WM(Virtual Machine) の選択肢
このうち QEMU はフリーソフトとして人気が高いのだが、ホストマシンとの間で Cut&Paste ができない。この点で使いにくいかもしれない。

Mac の場合

Amazon の評価を見るに、VMWare の評判はよろしくない。VMWare はビジネスの方向を、ホスティングサービスに舵を切ったかのように見える。

ネットワークの設定はブリッジにする。そうすれば実コンピュータを接続するのと同等な効果を持つ。


注意: QEMU は避けたほうが無難である。ブリッジモードの設定に苦労する。(苦労を厭わないなら、QEMU が良い)

5.4. ネットワーク構成


注意: あなたのブラウザは SVG をサポートしていません。最新のブラウザをお使いください。

図4: DMZ にサーバを配置する

安全な運用のためには、右図4のように、緩衝地帯(DMZ)注1を持った方が良い。このようにルータを配置すれば、サーバが配置されていないのと同等の安全性で家庭内が守られる。また利便性も失われない。

ルータの追加が必要ではあるが、現在では非常に安価である。

現在のルータであれば DMZ のオプションがあると思う。それを使えば1個のルータで、図4と類似の効果が得られると思う。(筆者は実験していないので、図4と同等の安全性が保証されるか否かに関しては何とも言えない)

注1: DMZ(DeMilitarized Zone): 直訳すれば非武装地帯であるが、「緩衝地帯」の方がわかりやすいだろう。

5.5. 故障

故障の可能性をゼロにはできない。決定的な場面では、アクセスルートを二重化する必要があろう。USB メモリにもデータをコピーして会議に持って行くとか...

信頼性について割り切ってよいなら、ハードウェアコストを抑えてもよい。

6. 通信中の情報の漏洩

リスク

6.1. パスワードの漏洩

DDNS の下で起こり得ること
IP アドレスが変更した結果、自分のサーバー A ではなく、他人のサーバー B にアクセスした。
ブラウザは A だと誤解して、(B は Basic 認証でやっているために)、Basic 認証を試みた。
つまり B に A のパスワードを渡した。
B はログファイルの中にパスワードを記録していた。その結果 A のバスワードが B に漏れた。

ブラウザの問題
ブラウザが、サーバー A に対して Dijest 認証のみを使うように設定できれば、この問題は回避できるのだか、現状ではできない。
HTTPS の証明書を活用する。

6.2. 盗聴による情報漏洩

snooping
man of the middle attack

HTTPS

6.3. 証明書

certificate
証明書の目的
証明書に含まれている情報

有料

無料
自己署名
ビジネスに使わない限り、これで十分だが
作り方
ブラウザへの登録(セキュリティ例外)

[1] オレオレ認証局の作り方~SSL証明書を無料で作る方法
http://www.webtech.co.jp/blog/developer-news/1159/
[2] 自己署名した電子証明書とは
http://hp.vector.co.jp/authors/VA027031/orenosp/selfca.txt
[3] HOWTO certificates
https://www.openssl.org/docs/HOWTO/certificates.txt
[4] OpenSSL Essentials: Working with SSL Certificates, Private Keys and CSRs
https://www.digitalocean.com/community/tutorials/openssl-essentials-working-with-ssl-certificates-private-keys-and-csrs
[5] Welcome to the OpenSSL Project
https://www.openssl.org/

7. Software

ライセンス

OS Web server embedded script HTML builder
Linux Apache PHP Wordpress
Plan9 Pegasus Rit Ptt + Remoty
Pegasus
サンドボックス化された Web サーバ

Rit
汎用のテキストプロセッサ

Ptt
HTML は煩わしい。このページは Ptt を使って書かれている。

Remoty
すべての編集作業をブラウザで

7.1. WYSIWYG

ユーザーエクスペリエンス向上のために最大限の努力をした結果、あまり支持されなかった変更もいくつかありました。WYSIWYG エディターは多くの人(特に「HTML を知らなければブログを書くべきではない」と感じていた人たち)に嫌がられました。

http://ja.wordpress.org/2013/06/05/ten-good-years/

表現力

7.2. References

[6] Ubuntu 14.04 Web Server Tutorial
http://funwithlinux.net/2014/04/ubuntu-14-04-web-server-tutorial/
[7] Markdown
http://daringfireball.net/projects/markdown/
[8] Remoty
http://plan9.aichi-u.ac.jp/pegasus/appls/remoty/
[9] Ptt
http://ar.aichi-u.ac.jp/ptt/ptt.html
[10] Rit
http://plan9.aichi-u.ac.jp/rit/rit-1.4.html
[11] Pegasus
http://plan9.aichi-u.ac.jp/pegasus/eman-2.2/Pegasus.html
[12] Pegasus Project - Plan 9
http://plan9.aichi-u.ac.jp/pegasus/
[13] WordPress Codex 日本語版
http://wpdocs.sourceforge.jp/