QNAPのTurboNASシリーズは、所有者専用の無料DDNSサービスもあるし、OpenVPNやPPTPのサーバもポチポチとクリックするだけでちゃっちゃと立てられる。らしい。筈。
電子化した漫画を外出先でちょこっと表示したり、リモートデスクトップでWindowsとか触れたりすると、まー助かる時もあるかもしれないし、ネタ的にも面白いよなー、ということで、やってみた。
PPTPは、脆弱性が色々と言われてるし、そもそもMD4とかDESとかRC4(128bit)とかの名前が出てくるのが限りなくノーガードに近いアレ感なので、OpenVPNが駄目だった時に考えよう。
つーことで、まずはOpenVPNから。
TurboNASのファームは4.0.2なので、3系とは違うこともあるかも。
最初はDDNSを設定してしまうことにする。
QNAPの所有者用のDDNSはmyQNAPcloudって奴で、これはもう何も読まずに適当にやっても行けるレベルの簡単さ。NASのいつもの偽デスクトップみたいな設定画面からざくざく登録と設定。
IDがメールアドレスなのは、どこにも書いてないんで不親切だけど。あと、DNSに登録される名前は、後からでも好きに変えられそうな雰囲気だった。試してないけど。
で、myQNAPcloudを設定しただけで、何やら勝手に色々なサービスが有効になる。やめろー。
とりあえず、OpenVPNとMy DDNSだけ有効にして、他のサービスは全部切る。Cloud Portalも何のサービスだか分からんけど、全部「公開」をオフに。
自動ルータ構成は、有効にした方が楽なんだろうけど、ルータのuPnPは無効にしておきたいのだよな。だってLAN側の機器からポートマッピングが設定出来るんだぜ、認証とか無しで。怖いじゃないか。某事務所が同じLANにいるから、何かあったら困るのだ。VLANで一応の隔離はしてるけど。
一般的にはuPnP有効でも大丈夫な気もするけど、一応uPnP無効で進めたいので、ルータのポートマッピング設定をする。OpenVPNはポート一個で全部済むから簡単である。いわゆる普通のポート開放と全部同じ手順。その都合で、NASも固定IPアドレスに変更した。ルータのポートマッピングがIPアドレス指定だからだけど、AndroidのOpenVPNだと普通TUNらしいからNetBIOS名の解決も無理だろう。NASのOpenVPNサーバ設定にWINS関係も見当たらんしな。
そのOpenVPNサーバ設定は、暗号化をAES(256bit)に何となく変えてみた程度。あとは「設定ファイルのダウンロード」を押せば、ca.crt
とopenvpn.ovpn
の入ったzipが落とせるから、これをクライアントにインポートすれば、クライアントの設定も簡単に終わってめでたしめでたし、って寸法らしいぜー。
そうは行かなかったが。
サーバ側の設定が終わったので、今度はAndroid(4.4)のクライアントを入れる。良く分からんけど、公式(?)クライアントにしといた。OpenVPN Connectって奴。
さっき落としたca.crt
とopenvpn.ovpn
を、Nexus7の適当なローカルフォルダに置いて、Import > Import Profile from SD card
で取り込んで、ユーザー名とパスワードはとりあえずNASでVPNアクセスが許可されてるユーザーのソレを突っ込めばいい、と思われたのだが、この手順だと「証明書が見つかりません」とか言われて進めなくなった。
対策は色々あるのかもだけど、以下の手順で予めopenvpn.ovpn
を書き換える方法がフォーラムに上がっていた。
まず、ca.crt
の中身は
-----BEGIN CERTIFICATE----- へんだらもんだら ほんがらふんがら -----END CERTIFICATE-----
のようになっていると思うんだけど、そいつをコピーする。
次に、openvpn.ovpn
の
ca ca.crt
という行を削除して、代わりに
<ca> -----BEGIN CERTIFICATE----- へんだらもんだら ほんがらふんがら -----END CERTIFICATE----- </ca> setenv CLIENT_CERT 0
って感じで、さっきコピーした奴を貼り付けて、前後にちょっとおまけを付け足す。
あとは、openvpn.ovpn
をImport Profile from SD card
で取り込んで、正しいユーザー名とパスワードを入れれば終わり。
ちなみに、VPNを使えるユーザーの設定は、コントロールパネル→アプリケーション→VPNサービス→VPNクライアント管理
とかで行ける。
でもこれ、多分ca.crt
を埋め込む作業は不要で、単に
setenv CLIENT_CERT 0
の一行を追加すればいいだけな気がする。やり直すの面倒だから試さないけど。ca.crt
の埋め込みは何となくiPhone向けの手順という気もしなくもないけど、iPhoneは全く分からんのであった。
最後にLTEから自宅LANへの接続テストをしてみたけど、NASのファイルも見えるし、Splashtop2も無料のまま繋がったので、成功したっぽい。めでたしめでたし。Importに使ったファイルは漏洩するとまずいのでさっさと消去。
あとは、OpenVPN ConnectのPreferencesを適当に一通り見て回って、Battery Saver
をONにしてみたり。
それと、何かの拍子に左上にアイコンが残りっぱなしになった時は、Exit All
で終わらせられるっぽい。
ただ、Android4.4の仕様なのか、「ネットワークが監視される場合があります」という警告が出っぱなしになるのがうざい。英語メッセージだと"Network may be monitored"なので、そっちで検索すると色々なやり取りが見付かるんだけど、結局rootedじゃないと消せないらしい。
こういう、狼少年の警告とでも言うべき仕様にされると、本当に警告が必要なことが起きても気付かなくなるのだよな。直して欲しいなあ。
とても参考になり、助かりました。ありがとうございます。
こちらこそコメントどーもです。
毎度あんまり読む人のこと考えてない記事ですが。
これから…ですが、とても参考になりそうです。
先にお礼しておきます。
不要なサービスは起動しなくて良いことは分かりました。
あれだけいっぱいあるとついついいろいろ試してみたくなりますよね。
でも実際にはほとんどは同じような機能の寄せ集めで、最終的には使う機能はごく一部に限定されます。
おかげで当初動作していた機能のいくつかは動かなくなって行き詰まってしまいました。
最初からやり直します。
OpenVPNは以前設定が分からず挫折したのですがこの記事を読んでリベンジできそうな気がしてきました。
チャレンジしてみます。
今初期化中。
UPnPへのセキュリティ上の不安感、私と同じ認識でしたので好感持てました。
前の職場でネットワーク関連全般任されていたのですが、光電話(とIP電話)を設置するのに「仕様上UPnPを有効にしないと使えない」とNTTの人に言われと少しバトルしたことがあります。
他をどんなにガード堅くしても、こんな根っこの部分が脆弱だと本末転倒ですよね。
それより少し前にはリモートデスクトップを利用するのに「DMZを設定してください」って平然と言ってるサポート担当の人がいて「何でや〜」って説教してやったこともあります。
セキュリティに対する正しい知識を持ってもらいたいものですね。
できました!!
OpenVPNもマスターできました。
OpenVPNについては、以前チャレンジした際全く刃が立たなかったのは何だったんだろう?ってくらい簡単にできました。
設定ファイルがダウンロードできるっていうのはかなり大きなアドバンテージですね。
Turbo NASに付属のmyQNAPcloud connectがPPTP専用だと気付いて「イタタ…」と思いましたが、自力でOpenVPN公式サイトからOpenVPNクライアントツールをダウンロードしてきてインストールして対応できました。
接続すると、接続先のIPアドレスそのまんまで閲覧することもできるんですね。
(自宅から職場内のIPアドレスでルーターやプリンタが見えてしまいます。有り難いんだけど、大丈夫なんかな?まぁ通信は暗号化されてるはずだけど、何だか直感的に怖い。)
それにWebDAVとか使うのに比べたら比較にならないくらい速い。
さすがUDP。ファイル転送がFTP並の速度です。
ってことで、どうやらTurbo NAS付属のmyQNAPcloud connectを始めとして○○Station系はみんな不要のようですね。
ま、用途的には社外からもアクセス可能なファイルストレージが構築できればそれで良かったのですが…。
技術的にはほぼクリアです。
ありがとうございます。
例によってレスが遅くなりましたが仕様です。仕様じゃ仕方ない。
UPnPにも安全な運用もあるのかもですが、うーん。まー必要無い気がするので切りました。仕様をまともに知らないので、ええ、何か嫌だなー程度のことしか言えませんけども。
VPNはもちろん怖いです。肝心のとこを破られたら全部素通しですし、まさか破られないだろーハハハとか思ってたらついこの間のHeartbleedで世界中がびっくりしましたし。
TurboNASもHeartbleed対応のファーム(QTS4.0.7/QTS4.1.0RC2)が出てましたから、更新して鍵作り直さないとアウトですよね多分。QTS3系は大丈夫らしいですが。
個人的にSplashtop2が便利なので、つい遊びで立ててみたOpenVPNをそのまま使ってますが、Splashtop2は素直に月額払ってWAN対応にして、他はFTPにポートマッピングする程度にしておく方がいいのかもなー、と思わなくもないです。こちらの環境も。
既に侵入されてた、とかだと嫌だなあ。といつも思います。