固定 IP が欲しいのだが高くてとれない。
Interlink を使えば安いのだが、フレッツとの契約が必要。これが高い!
これは PHP で書かれた、DiCE の代用品で、
設定すべき基本情報は
// 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
作者に感謝!
2015年は筆者にとってのモバイル元年である。
何をいまさら...
筆者はこれまでに古い古いガラケーを使ってきた。SAMSUNG 706SC である。このモデルは 2006年頃のもので、とっくに修理保証期間は過ぎてしまっており、バッテリーも手に入らない。現在のバッテリーがへたったら、寿命を迎えたことになる。
なぜこんなに永く使ってきたかと言えば:
第一に自分の性分がある。使えるものを捨てるのは嫌いである。前の車は18年間も乗り続け、ついに雨漏りが止まらなくなり、ようやく買い換えた。愛用していた NeXTSTEP は10年以上も使い続けた。これを捨てる決心がついたのは、Apple が OSX シリーズを売り出したからである。(OSX シリーズは事実上 NeXTSTEP の後継機である)
第二にスマホの利用料金が高すぎると思っていたことにある。ソフトバンクでスマホを買うと、月々7000円ほどの出費になる。しかし自分の利用(平均的に言えば1日に1度、電話かSMSで使うぐらい)を考えると、とても7000円に値しない。現在のガラケーの利用料金だって自分のニーズに比べると高すぎる!
しかし、そろそろガラケーからオサラバしなくてはならない...
次に何を買うか?
筆者はスマホでネットサーフィンする気は毛頭ないので携帯に求める機能は次の3つであった。(あえて過去形にしている)
筆者は、iPad (WiFi) を持っているし、またいくつかの Macbook シリーズも持っている。筆者が過ごす殆どの時間は WiFi 環境下である。であるからテザリングも緊急避難的な使い方しかしない。しかし、欲しいと思えることが時々あるのだねー。しかし、テザリングはガラケーではできない。我慢するしかなかった。Pocket WiFi も試したが、ニーズに見合わない料金だしね...
昨年末に、DMM mobile が格安SIMを売り出したことを目にした。調べてみると昨年あたりから安価な SIM が出回ったらしい。そこで試しに、安価な Android スマホを買い注1、テザリング用に 1GB/月 のSIMを入れて使ってみることにした。気に入れば、電話可能な SIM と入れ替え、ソフトバンクとの契約を切るつもりである。家族のものも...
1ヶ月あまり使った経験では、筆者の場合1GB/月の契約で十分であることが判明した。1割も使っていない... 外出中に動画をみる趣味は無いから...
表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/
さて、実際にスマホを使ってみると、役に立つことが他にもあることに気づいた。
ここ10年程の間に我々は多様な情報デバイスを持つようになった。一つの家庭の中で家族が各々のパソコンを持つだけではなく、一人が多様なデバイスを持つようになったのである。
僕の場合も次のようなものを持っている。
このような環境を迎えて問題になったのは情報デバイス間の情報の同期である。どの情報デバイスからも同一のデータにアクセスしたい。
この問題は、LAN の中ではネットワークベースのファイルシステム(ファイルサーバー)によって(部分的に)解決されてきた。家庭や SOHO で利用される NAS デバイスもそのようなものの一つである。OSが統一されているホモジニアスなコンピュータ環境であれば、それも良い解決法だろう。しかし今日では Microsoft の支配力は過去のものになっている。ビジネスの現場であれば、それでも Windows 環境に統一できるだろうが、家庭環境では異なる。
これらの問題点をクリアできるのは PDF 形式のファイルなど、規格が定まり、広く使われている極く僅かなタイプのファイルに限られる。僕はテキストファイルを愛用している。テキストファイルは最もシンプルな形式であるが故に、永続性が保証されるからである。テキストファイルをどの環境からでも作成し、参照し、編集したいのであるが、それがままならない注1。
以下に広く使われているだろうと思えるモバイル環境の代表的なアプリを個別に吟味する。なお、僕が主に使うのは Apple 製品なので、評価が偏っているかもしれない。
クラウドのサーバを使いデータを同期させる
データはクラウドのサーバで一元管理
異なるデバイス間の情報の同期はけっこう難しい問題である。デバイス間のフォーマットが統一されていなくてはならない。例えばメモ帳などは OS が異なれば絶望的だろうし、アドレス帳も置き場所が異なるだろうから怪しい。(ネットからの情報ではいろいろなノウハウがあるようだが、どれだけの信頼性と永続性が保証されるかわからない)
さらに文字コードの問題がある。Windows は未だに SHIFT JIS を使っており、Mac でテキストファイルを読めば文字化けする。
時代は急速に変化している。良質のネットワーク環境が安価に手に入る時代が来たのである。そのような環境では考え方を変える必要がある。同期方式ではなく、情報をサーバーで一元的に管理し、情報デバイスはそこにアクセスした方が良いだろう。こうすればファイルの同期問題から完全に解放される。これが可能になってきたのだ。
すでに非同期型(サーバーでの一元管理型)のサービスは行われているようだ。ネット環境さえ良ければ、同期問題から解放されるばかりか、ローカルストーリッジ容量の制約問題からも解放される。もっとも、このままではクラウドの中に NAS を置いたのと同じで、クライアント環境の違いを吸収できない。
さらに、HTML5 が急速に普及しだしている。Microsoft ですら HTML5 へスイッチしだした。 現在では Web のホームページを HTML5 で書けば OS 間の違い、デバイス間の違いが吸収されるようになってきたのである。
これに基づいて、クラウドストレージサービスを表にしてみた。
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 |
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.
Hey arisawa, Upgrade today to protect all your computer files!
ブラウザの異変に気付いた。変なポップアップに悩まされるようになったのだ。
どうやら SHARED はポップアップウィルスらしい。(もっと酷いことをやっている可能性がある)
SHERED からダウンロードしたファイルを実行すると、macfest なるアドオンがプラウザに勝手にインストールされる。
Chrome にインストールされた macfest
僕の場合、インストールされたブラウザは、Chrome, Safari, Firefox である。Opera にはインストールされていない。マイナーだからね...
これがインストールされると、超高価な買い物メニューのポップアップが出てきて(5千円で買えそうなシューズが5万円で売られている)、ホームページがポップアップで隠れて閲覧の邪魔になる。
アドオンから削除すれば、問題のポップアップは出てこなくなる。
macfest に関してネットを検索すると、次の記事が見つかる。
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者の目が入るようになってほしい。ハニーポットとして使われる可能性があるから...
先の表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 も採用して欲しいと思う。
筆者が “Personal Web Server” と言うときは、Microsoft の製品を意味しない。個人の家に設置され、個人が管理・運営し、Web サーバとしての不特定多数への情報発信と共に、アクセス保護によって特定の個人のアクセスのみを許すサーバーを指している。
昨年度はシェルショックが話題になった。Unix の標準シェルである Bash に深刻な脆弱性があり、これを CGI に使った場合、プライベートなデータが盗まれるだけではなく、サーバーがボット化する危険性すらある。Apache は Bash で書かれた CGI のサンプルを標準インストールしているので、当然狙われたはずである。このようなケースでは個人の管理能力を完全に超えている。
インターネットが切り開いた境地は、情報発信のコストを劇的に下げたことにある。今や個人は自分の主張を自由にネット上に展開できるようになった。この状況は Web2.0 と呼ばれる。現在のところ、その主要な形態は無料で提供される Web ページであり、多数の企業がそのようなサービスに参入している。企業側の収益は、ページに載せる広告であり、それらは、多くの場合、邪魔で嫌われる。また、これらのサービスはブログなど限られた用途に対しては初心者向けに使いやすくなっているものの、プライベートな情報を置く場ではない。
もしもあなたがブログ以上のニーズを持たないなら、既存のブログサービスを受けた方が良い。システム構築の苦労を味わう必要がないからである。
もう少し自由度が高く、有料ではあるが低価格で利用できるものとして、ホスティングサービスがある。しかし他人が管理するシステムにプライベートなデータを置くにはリスクを伴う。特に共用サーバではそうである。悪意ではなくても、それらを管理者に見られる危険性がある。さらに心配なのは、有料のものは、支払いが何かの理由で滞った場合には、データが消去される。これもデータリークと同様に怖い。
プライベートなデータは他人が管理するサーバに置いてはいけない
結局安心でき、しかも自由に使えるのは、自宅に設置され、自分が完全管理するサーバだけである。もちろん管理能力が要求されるので、現状では腕に自信のあるマニアが試みているにすぎない。
今のところ、自宅サーバの果たしている役割は限られているのであるが、潜在的な可能性は大きい。ネットを検索すると可能性を引き出すための様々な試行錯誤が報告されている。例えば、留守中の家の状態を見るとか、ペットの世話をするとか、... 他にも可能性としてはいろいろあろう。サーバは情報公開のためだけにあるのではない。様々な運用目標が可能なのである。それはユビキタスネットワーク時代のパラダイムでもある。
サーバーを持っていれば、それをデータの保管、参照場所として利用できる。筆者は大学の研究室にサーバーを持っており、それをプライベートな(パブリックにする予定のない)データの保管場所にも使ってきた。本来の目的は、パブリックな Web サーバーであるが、アクセス保護によって、プライベートなデータも置ける。
ユピキタスネットワーク環境では、プライベートなデータの置き場は実にありがたい。ともかく、片っぱしからメモでき、それをどこからでも参照できるからである。情報デバイスの OS に依存しないでそれをやるにはどうするか?
今や殆どの情報デバイスは Web のブラウザを備えている。従って、ブラウザを通じてメモを作り、ブラウザを通じて参照すれば問題が解決する。幸い最近のブラウザは HTML5+CSS3+Javascript で標準化されつつある。
この記事も、ブラウザを通じて書いている。図3は Mac のブラウザで書いたスケジュール(の一部)を Android 端末(スマホ)で開いて見える画面のハードコピーである。 自由書式でスケジュールを書ける有り難みがよくわかる。
家庭に設置されたサーバに外部からアクセスできるためにはグローバルな IP がルーター(の WAN 側)に付与されなくてはならない。たいていの場合には、固定したアドレスは貰えない。貰えても高額の利用料を請求される。IPv6 が普及すれば状況が変わるだろうが、まだ暫くかかりそうである。
IPv6 が普及するまでは、時々変化する IP アドレス(ダイナミック IP アドレス)に頼らざるを得ない。たいていの ISP はグローバルなダイナミック IP アドレスは提供しているので、この下で Web サーバを何とか運用できれば、当面の繋ぎにはなる。
通常はインターネットからサーバに名前(domain name)でアクセスする。例えば筆者のホームサーバであれば
http://me.nyx.link
デバイスの発展によって、コンピュータの処理能力は増大し、小型化し、静音化し、消費電力と価格が年々低下している。つまり家庭の中にサーバを置き、24時間運転しても問題はない時代である。家庭に来るネットワークも今や 1Gb/sec の時代に入っている。そうした時代にあって、現在では、ブログサービスやホスティングサービスを受ける理由はなくなっている。また、デバイス間の同期問題をも自分が管理する単一のサーバによって完全に解決できる。一般的に言えば、リモートのサーバを扱うのは困難を伴い、許される範囲が限定されるのに対して、家庭内にある自分のサーバであれば、使い慣れたツールを使って管理でき、CGI を自由に使える。
管理能力さえ身につければ... (さほど難しくはないのだが...)
nyx.link
の部分であり、me
の部分(subdomain)は勝手に(いくつでも)名前をつけることができる。たいていの Web サーバは複数の subdomain を許すので、目的に応じてコンテンツを変え、複数のサーバを運用しているかのように見せることも可能である。
次に示すのは、筆者の自宅サーバのアクセスログである。存在がアナウンスされているわけでもないのに、設置後、程なくしてこのようなログが観察されるようになった。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つの方法がある。
どちらの場合も(ライセンスの関係から)フリーな OS とフリーな Web サーバをインストールすることになる。
使い古しのコンピュータでも構わないし、自分で組み立ててもよい。最近のものはハイパワーの CPU を備えていても消費電力は小さいし、寝室に置ける程に静かである。小型のものが欲しいなら「小型コンピュータ」でググればいろいろ出てくるだろう。
ネットで見つけた、ちょっと面白い小型コンピュータ
家庭用サーバ選択の注意点
Mac の場合
Amazon の評価を見るに、VMWare の評判はよろしくない。VMWare はビジネスの方向を、ホスティングサービスに舵を切ったかのように見える。
ネットワークの設定はブリッジにする。そうすれば実コンピュータを接続するのと同等な効果を持つ。
安全な運用のためには、右図4のように、緩衝地帯(DMZ)注1を持った方が良い。このようにルータを配置すれば、サーバが配置されていないのと同等の安全性で家庭内が守られる。また利便性も失われない。
ルータの追加が必要ではあるが、現在では非常に安価である。
現在のルータであれば DMZ のオプションがあると思う。それを使えば1個のルータで、図4と類似の効果が得られると思う。(筆者は実験していないので、図4と同等の安全性が保証されるか否かに関しては何とも言えない)
信頼性について割り切ってよいなら、ハードウェアコストを抑えてもよい。
リスク
DDNS の下で起こり得ること
IP アドレスが変更した結果、自分のサーバー A ではなく、他人のサーバー B にアクセスした。
ブラウザは A だと誤解して、(B は Basic 認証でやっているために)、Basic 認証を試みた。
つまり B に A のパスワードを渡した。
B はログファイルの中にパスワードを記録していた。その結果 A のバスワードが B に漏れた。
ブラウザの問題
ブラウザが、サーバー A に対して Dijest 認証のみを使うように設定できれば、この問題は回避できるのだか、現状ではできない。
HTTPS の証明書を活用する。
snooping
man of the middle attack
HTTPS
有料
無料
自己署名
ビジネスに使わない限り、これで十分だが
作り方
ブラウザへの登録(セキュリティ例外)
[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/
ライセンス
OS | Web server | embedded script | HTML builder |
---|---|---|---|
Linux | Apache | PHP | Wordpress |
Plan9 | Pegasus | Rit | Ptt + Remoty |
Rit
汎用のテキストプロセッサ
Ptt
HTML は煩わしい。このページは Ptt を使って書かれている。
Remoty
すべての編集作業をブラウザで
ユーザーエクスペリエンス向上のために最大限の努力をした結果、あまり支持されなかった変更もいくつかありました。WYSIWYG エディターは多くの人(特に「HTML を知らなければブログを書くべきではない」と感じていた人たち)に嫌がられました。
http://ja.wordpress.org/2013/06/05/ten-good-years/
表現力