« 拠点間VPN | メイン | iLO3 »

2014年05月31日

DLNAの秘匿

家庭内でのコンテンツ配信に使われるDLNAですが,みなさんどんなものを配信してるんですかね?
ただ,家族であっても見せたくない物,ありますよね?
てことで,前回ふれた罠がこの点になるわけです.
素朴にQNAP TS-569L上で動いているDLNAサーバで認証かけられないのかな,と思って設定画面を見てみても,それらしい項目はなし.
どうもDLNAではユーザによるアクセス制御の考え方はない模様.
.htaccessを使って(ホスト単位で)制御することもできるみたいなんだけど,これはこれで面倒くさそう.
さてどうしたものか,というところで,RTX810のフィルタ機能を使うことに思いいたったのでした.

ここで,簡単にYAMAHAルータのフィルタ機能を確認しておくと,ルータに入出力されるIPパケットを静的,動的にフィルタし,破棄したりできる機能,ですね.
細かなフィルタ適用位置はYAMAHA公式のFAQを見てもらうとして,要はLANポート(LAN1,ローカル側)の入力,出力と,WANポート(LAN2,グローバル側)の入力,出力の4カ所にチェック機能を付ける,という感じ.
リモートサイト(実家側)からローカルサイト(自宅側)へのパケット転送(=VPN経由)を制限する,という意味だと,リモートサイト側のLANポートに入力されるパケットを検査して,送信元によって通過か破棄かを決定する,という感じでいいかな,と.
もちろんWANポートから出力されるパケットを検査する,というのでも同じ効果が得られそうなんだけど,なぜLANポート側にしたのか?
このフィルタの設定は,RTX810の「[トップ]>[詳細設定と情報]>[ファイアウォールの設定]」から設定するんだけど,WANポート側には外部からの侵入を防いだりするフィルタが既に定義済みで,ここに自分の個人的なフィルタを混ぜたくなかったから,という,素朴な理由です(笑)
ちなみに,LANポート側には入力,出力ともにフィルタが設定されていない,というのが初期状態です.
実はこの初期状態が重要で,後でとんでもない地雷を踏みます(笑)

さて,フィルタの位置が決まったところで,1つ問題.
このフィルタ,送信元IPアドレス,送信先IPアドレスとポート番号を使って制御をかけることになるんだけど,よく考えたらDHCPで適当にIPアドレスを割り付けているので,ただフィルタを設定するだけではダメ,と気づいたのでした.
各ホスト毎に手動設定する,というのも手ですが,新しいものが増えた場合や,自分のノートをリモートサイトで接続する場合など,自動でIPアドレスが割り振られないのはかなり面倒.
さらに言うと,両親のマシンをいちいち設定するというのも避けたい.
というわけで,RTX810のDHCPサーバ設定を変更して,MACアドレスから決まったIPアドレスが割り振られるようにします.
その上で,ローカルサイトに接続許可するIPアドレスを決めて,フィルタとして設定すれば良い,となるわけですな.

まずは「[トップ] > [詳細設定と情報] > [システム情報のレポート作成] 」から,現在DHCPがIPアドレスを割り当てている装置をMACアドレスから特定して,割り当てるIPアドレスの一覧を作って割り当てを決めます.
実はこれが一番大変だった(笑)
DHCP設定前にレポートを見ると,
「(タイプ) クライアントID: (ZZ) XX XX XX XX XX XX」
という表記と,
「クライアントイーサネットアドレス: YY:YY:YY:YY:YY:YY」
の2種類があって,これによってDHCPの設定コマンドが多少違うみたい.
具体的には,それぞれ
「dhcp scope bind 1 192.168.0.??? ZZ XX XX XX XX XX XX」
「dhcp scope bind 1 192.168.0.??? YY:YY:YY:YY:YY:YY」
という感じで,微妙に違います.
詳しくはマニュアルを見てもらうとして,これで雰囲気は伝わったと思います.

DHCPで,宅内の通信を行うホストがすべて特定できている状態にできたら,今度はLANポート入力側のフィルタを設定します.
リモートサイト(192.168.2.0/24)側ルータのLANポート設定例を示します.

ip filter 10 pass 192.168.2.??? 192.168.1.0/24 * * *
ip filter 30 pass 192.168.2.0/24 192.168.1.0/24 * 3389 *
ip filter 50 reject-nolog 192.168.2.0/24 192.168.1.0/24 * * *
ip filter 99 pass * * * * *

VPNの先にあたるローカルサイトは192.168.1.0/24です.
フィルタ#10がVPN経由のVPN経由通信を許可するもの,#30はリモートデスクトップ(RDP)のポート番号(3389)を使ってすべてのRDPを許可する,そして#50でそれ以外のVPN経由通信をすべて破棄します.
直感的にはここまでの設定で大丈夫そうですが,すべてのパケットを通過させる#99が必要となります.
前述の地雷とはこの設定の事で,具体的にはここここに記載のあるdefaultフィルタの挙動を考慮しています.
要は,初期状態で何もフィルタが設定されていないフィルタ適用位置に,フィルタを追加すると,フィルタ条件にヒットしないパケットはすべて破棄される,というもの.
フィルタ設定なしの状態から,うっかり#50だけ設定したりすると,全パケットが破棄されるようになり,インターネットに出て行けなくなるどころか,管理画面にも繋がらなくなる,といった事態に陥ります.
というか,陥りました(笑)
もし同じ状況になってしまったら,慌てず騒がず「microSD+USB+DOWNLOAD」を押しながら電源を入れ直しましょう.
これで工場出荷時の状態に戻ります.

かくして,実家内のDHCPによる配布IPアドレスを固定させ,そのIPアドレスを用いて拠点間VPNを超えるホストの制御を可能にすることができました.
また,RDPについては,ポート番号を使ったフィルタを適用することで,これ以外のポートからの通信は拠点間VPNを通過させないようにすることもできるようになりました.
これで,お茶の間を気まずい空気の嵐に巻き込むこともなくなります(笑)
やっと安心して拠点間VPNを運用できるようになりました(笑)

投稿者 chimaki : 2014年05月31日 23:50

トラックバック

このエントリーのトラックバックURL:
http://blog.projectmd.com/cgi-bin/mt/mt-tb.cgi/713