昨日のXbox LIVEとRTX1000の続き/結局知人コネが一番役に立った


昨日Xbox LIVEで「MTU値が小さい」表示が出るとはこういうことらしい.
利用するポート番号はここ.(TCP/UDP:53,TCP:80,UDP:88,TCP/UDP:3074)で, kerberos(88)とXbox game port(3074)*あたりが注意するところ.
しかし鶴淵さんやりとりから、オンライン対戦時のプレーヤ間通信はP2Pとのこと. で..調べてみる相手が不特定の場合はUPnP利用が安全のようです.
RTX1000はRev.8.01.07からUPnP対応で、リビジョンアップ&UPnPして解決.

....昨日のコトといい..今日の教訓は「結局知人コネが一番役に立った」ということ..THX my friend \^^)

以下いちおう作業メモ

RTX1000のファームウエアアップデート

ファームウエアはココ. MD5チェックサム確認しておく

% openssl md5 /path/to/rtx1000.bin
MD5(/path/to/rtx1000.bin)= d3d43b98b7e44948b869d0c4c0191a3c

RTX1000側でtftp許可クライアント指定する

# pp disable all <-- 念のため
# ip lan1 address 10.0.1.5/24 <-- 適便に..
# tftp host 10.0.1.100 <-- tftp許可クライアント

PCからいちおう設定とっておく

10.0.1.100% tftp
tftp> connect 10.0.1.5
tftp> mode ascii 
tftp> get config/AdminPass rtx.cfg <--PCにrtx.cfg名で保存  
Received 4120 bytes in 0.1 seconds
tftp> quit

ちなみに設定戻すときは..PCから

% cat rtx.cfg <--戻す設定ファイル
 ...
# If you want to clear ALL configuration to default,
clear configuration <--コメントアウトをはずして/マージされるので..
 ...
%

しといてから、tftpを..

10.0.1.100% tftp
tftp> connect 10.0.1.5
tftp> mode ascii 
tftp> put rtx.cfg config/AdminPass <--PC上の設定ファイルrtx.cfgをルータに保存
Sent 4115 bytes in 0.1 seconds
tftp> quit

ファームウエアあげるときは..PCから

10.0.1.100% tftp
tftp> connect 10.0.1.5
tftp> mode binary
tftp> put rtx1000.bin exec
....

RTX1000のコンソールをみていると..

Update exec file receiving... Testing received file... Writing to Nonvolatile memory... done
Restarting ...

RTX1000 BootROM Ver. 1.04

RTX1000 Rev.8.01.28 (Mon Aug  4 17:13:15 2008) <-- 新ファーム
  Copyright (c) 1994-2008 Yamaha Corporation.
 ....

> show environment <-- あるいは..
RTX1000 Rev.8.01.28 (Mon Aug  4 17:13:15 2008)  <-- 新ファーム
  ....

参考>ファームウェア関連情報
http://www.rtpro.yamaha.co.jp/RT/firmware/info.html

UPnP設定

#upnp use on
#upnp external address refer default <-- UPnP外側をデフォゲ/インタフェイスに
#upnp syslog on <-- 最初は..

UPnPの状況確認しておく

# show status upnp
Interface: PP[01]
IP Address for GetExternalIPAddress: xxx.xxx.xxx.xxx <-- 外側アドレス
PortMapping:
ExternalPort  Protocol  InternalPort  InternalClient  TimerType  Timer
xxxxx         TCP       xx            local-address     ARP        arp exist 
xxxxx         TCP       xx            local-address     ARP        arp exist

ただUPnPエントリーが消えないのがおおい場合は..

# upnp port mapping timer type normal

とかも考慮しておく
syslogだとこんなカンジ

Dec 20 01:39:54 lan1-address : [UPnP] GetExternalIPAddress from local-host, PP01, ExternalIPAddress=global-address
Dec 20 01:39:55 lan1-address : [UPnP] AddPortMapping from local-host, ExternalPort=xxxxx, Protocol=TCP, InternalPort=xx, 
InternalClient=local-host

参考>UPnP機能とRTシリーズに関するFAQ
http://www.rtpro.yamaha.co.jp/RT/FAQ/UPnP/upnp-netvolante.html
http://www.rtpro.yamaha.co.jp/RT/FAQ/UPnP/upnp-trouble.html
RTシリーズのUPnP機能に関する脆弱性について
http://www.rtpro.yamaha.co.jp/RT/FAQ/Security/VU347812.html

ネットボランチDNS設定

必須でないけどハマリそうだったのがネットボランチDNS(ヤマハのDynamicDNSサービス)
ただ..一度もネットボランチDNSに登録していない場合は、普通にやれば大丈夫.

# pp select 1 <-- pp1の場合
pp1# netvolante-dns hostname host pp shoma <-- shomaとして登録(RAMに)
pp1# netvolante-dns go pp 1 <-- ネットボランチDNSサーバに反映させる
Entry [shoma.aa0.netvolante.jp]
Save new configuration ? (Y/N)Y
Saving ...  Done .
pp1# netvolante-dns get hostname list pp 1 <-- 確認しておく
PP01    shoma.aa0.netvolante.jp
pp1# nslooup shoma.aa0.netvolante.jp <-- 一応こっちでも..
xxx.xxx.xxx.xxx

ハマリそうなのは、ネットボランチDNSサーバに登録したまま、RTX1000のconfigを書き替えてしまった場合.

# netvolante-dns get hostname list all
PP01    oldname.aa0.netvolante.jp <-- これがネットボランチDNSサーバに登録されている
pp1# nslooup oldname.aa0.netvolante.jp
xxx.xxx.xxx.xxx
# pp select 1
pp1# netvolante-dns delete go pp 1 oldname.aa0.netvlante.jp
Error: Unrecognized Netvolante DNS hostname <-- でもネットボランチDNSサーバから消せない
pp1# netvolante-dns hostname host pp oldname.aa0.netvolante.jp <-- そこで一度RAMに登録
pp1# netvolante-dns delete go pp 1 oldname.aa0.netvolante.jp <--そうすれば消せる
pp1# netvolante-dns get hostname list pp 1
(空白) <-- 消えてる
pp1# nslooup oldname.aa0.netvolante.jp
(空白)

いちおう自動更新設定もしておく

pp1# netvolante-dns use pp auto

参考>
コマンドを使用してホストアドレス・電話アドレスの登録/削除を行う
http://www.rtpro.yamaha.co.jp/RT/FAQ/NetVolanteDNS/netvolante-dns-use-command.html


ip filter周りの定番は

# ip filter directed-broadcast on <-- smurf attack対策
....
# ip filter 1 reject 10.0.0.0/8 * * * * <-- ip spoofing対策
# ip filter 2 reject 172.16.0.0/12 * * * *
# ip filter 3 reject 192.168.0.0/16 * * * *
# ip filter 4 reject * 10.0.0.0/8 * * *
# ip filter 5 reject * 172.16.0.0/12 * * *
# ip filter 6 reject * 192.168.0.0/16 * * *
....
# ip filter 100 pass * * * * *
# ip filter 101 pass-log * * established * * <-- 外からの通信制限用
# ip filter 102 pass-log * * udp * * <- でもUDPはとりあえずとおしとく(DNS,ストリーミング用)

# ip filter 11 reject * * udp,tcp tftp,135,netbios_ns-netbios_ssn,445,593,4444 * <-- NetBIOSとかtftpとかBlaster対策とか..
# ip filter 12 reject * * udp,tcp * tftp,135,netbios_ns-netbios_ssn,445,593,4444
....あとは適便に ....

# pp select 1
pp1# ip pp secure filter in 1 2 3 11 ... 101 102 <-- ppの外>内に
pp1# ip pp secure filter out 4 5 6 12 ... 100 <-- ppの内>外に

とかはしておく.
ちなみにUPnPで外から受け付ける通信には適用されないみたい...ってあたりまえか(^^
動的フィルターは今回はパス.
参考>なぜポート137,138,139(NetBIOS,便利な機能)を、フィルタするんですか?
http://www.rtpro.yamaha.co.jp/RT/FAQ/Windows/NetBIOS-Filter.html
Blasterワームおよびその亜種による影響について
http://www.rtpro.yamaha.co.jp/RT/FAQ/Windows/blaster.html
IPパケット・フィルタリング機能がどこで働くかわからない
http://www.rtpro.yamaha.co.jp/RT/FAQ/IP-Filter/apply-filter-to-interface.html
YAMAHA RTシリーズのIPパケット・フィルタ
http://www.rtpro.yamaha.co.jp/RT/FAQ/IP-Filter/

dns周りでとりあえずやっといたのは

# dns srcport 10000-19999 <-- cache poison対策
# dns private address spoof on <-- プライベートアドレス逆引き時に上位DNS問合せなし

あたり.
参考>RTシリーズのDNS機能におけるキャッシュポイズニングの脆弱性について
http://www.rtpro.yamaha.co.jp/RT/FAQ/Security/VU800113.html
YAMAHA RTシリーズのFAQ / Security
http://www.rtpro.yamaha.co.jp/RT/FAQ/Security/

Syslogとばしといたので..

# syslog host xxx.xxx.xxx.xxx <--- syslogサーバ
# syslog facility local2 <-- userでもいいけど諸般都合で..
# syslog notice on
# syslog info on
# syslog debug on <-- この辺はテストなので(^^

参考>
YAMAHA RTシリーズのFAQ / ログ
http://www.rtpro.yamaha.co.jp/RT/FAQ/Syslog/
UNIX で syslog を受け取るにはどうすればいいの?
http://www.rtpro.yamaha.co.jp/RT/FAQ/Syslog/syslog-for-unix.html

MacOS X 10.5でsyslog受取る

ここからはルータじゃないのでかなり脱線..でも10.5だとLaunchctl関係なので...まずは/System/Library/LaunchDaemons/com.apple.syslogd.plist の以下コメントアウトを外しておく

<!--
        Un-comment the following lines to enable the network syslog protocol listener.
-->
<!--
                <key>NetworkListener</key>
                <dict>
                        <key>SockServiceName</key>
                        <string>syslog</string>
                        <key>SockType</key>
                        <string>dgram</string>
                </dict>
-->

/private/etc/syslog.conf にもエントリー加えて

*.notice;authpriv,remoteauth,ftp,install.none;kern.debug;mail.crit;local2.none  /var/log/system.log <-- system.logには入れない
local2.*  /var/log/rt1000.log <-- RTX1000でfacilityをlocal2にしたので

ログファイルを作ってLaunchctlで設定を読込む

#touch /var/log/rt1000.log
#launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist
#launchctl load /System/Library/LaunchDaemons/com.apple.syslogd.plist

これでRTX1000のsyslogがとれます.
恒常的利用だとまだありそうだけど、テスト利用ならあとnewsyslogとかにもいれておけば大丈夫.
参考>
Getting Started with launchd
http://developer.apple.com/MacOsX/launchd.html
man of launchctl(1)
http://developer.apple.com/DOCUMENTATION/DARWIN/Reference/ManPages/man1/launchctl.1.html



メンテ用のPPTPアクセス(サーバ)設定

..ついでにPPTPでリモートメンテできるように..

PPTPクライアント収容準備

#ip lan3 address Lan3-Address/mask <-- PPTPクライアント収容する
#ip lan3 proxyarp on <-- PPTPクライアントは不特定接続なので..

PPTPサーバ設定

#pp select anonymous <-- 不特定からアクセスなので..
anonymous# pp bind tunnel1
anonymous# pp auth request mschap-v2 <-- OS Xはこれで..
anonymous# pp auth username hogename hogepass
anonymous# ppp ipcp ipaddress on <-- アドレス付与するので..
anonymous# ppp ipcp msext on
anonymous# ppp ccp type mppe-any
anonymous# ip pp remote address pool pptp-LocalAddress <-- ppp(pptp)で付与するアドレス
anonymous# ip pp mtu 1280
anonymous# pptp service type server
anonymous# pp enable anonymous
...
#tunnel select 1
tunnel1# tunnel encapsulation pptp <-- pptp接続
tunnel1# tunnel enable 1
...

PPTP用のNATP変換設定

#nat descriptor masquerade static 1 1 Lan3-Address tcp 1723 <-- PPTP用フィルター
#nat descriptor masquerade static 1 2 Lan3-Address gre <-- GRE用フィルター
...

メンテ用不特定アクセスなので安全性考えて..

#telnet host pptp-LocalAddress <-- PPTPクライアントだけ設定できるよう..
#ip lan1 secure filter out 1 2 3 ... 100 <-- もちょっと厳密でもいいけど..PPTPクライアントにLAN1下ノード隠す

これでPPTP経由でルータメンテできます.
参考>
PPTPによるVPN機能
http://www.rtpro.yamaha.co.jp/RT/docs/pptp/
PPTPを用いたインターネットVPN環境の設定例集
http://www.rtpro.yamaha.co.jp/RT/docs/example/pptp/
YAMAHA RTシリーズのFAQ / PPTP
http://www.rtpro.yamaha.co.jp/RT/FAQ/PPTP/


MacOS X 10.5やiPhone 3GPPTP接続する

iPhone 3Gの場合はマニュアルの8章に..

もしすべての通信をPPTP経由で通す設定していれば..

..とかで確認.


MacOS X 10.5の場合はアップル社Webにちゃんとしたもの見つからなかったので簡単に..

VPN/PPTP用ネットワークIFをつくる

VPNサーバ名/アカウントを入力し..

最初はログ残るようにしておく


接続に成功すると以下のようなカンジです.

% ifconfig
...
ppp0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1444
	inet6 fe80::217:f2ff:fef5:36ea%ppp0 prefixlen 64 scopeid 0x8 
	inet pptp-LocalAddress --> rtx-LocalAddress netmask 0xffff0000 
...
% netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            rtx-LocalAddress        UGSc        9       42   ppp0
...
rtx-LocalAddress        pptp-LocalAddress       UH         22       30   ppp0
...
% cat /var/log/ppp.log
Sun Jan  4 07:03:14 2009 : PPTP connecting to server 'shoma.aa0.netvolante.jp' (xxx.xxx.xxx.xxx)...
Sun Jan  4 07:03:14 2009 : PPTP connection established.
Sun Jan  4 07:03:14 2009 : using link 0
Sun Jan  4 07:03:14 2009 : Using interface ppp0
Sun Jan  4 07:03:14 2009 : Connect: ppp0 <--> socket[34:17]
...
Sun Jan  4 07:03:17 2009 : MPPE 128-bit stateless compression enabled
...
Sun Jan  4 07:03:20 2009 : ipcp: up
Sun Jan  4 07:03:20 2009 : local  IP address pptp-LocalAddress
Sun Jan  4 07:03:20 2009 : remote IP address rtx-LocalAddress
Sun Jan  4 07:03:20 2009 : primary   DNS address rtx-LocalAddress
...
Sun Jan  4 07:03:35 2009 : No DHCP server replied <-- まあいいや(^^

いちおうこちらももしすべての通信をPPTP経由で通す設定していれば..

..とかで確認.

コレで以上かな..

参考>
iPhone and iPod touch: 対応している VPN プロトコル
http://support.apple.com/kb/HT1288?viewlocale=ja_JP

        • -

しかしXbox360のハードって結構ちゃんとしてた.今回は借り物だったので分解しなかったけど..あの値段でダイジョブ*なんだろうか?

        • -

補)RTX1000の歴史:)
あのベストセラーVPNルータの後継「RTX1100」の実力をはかる(マイコミ)
http://journal.mycom.co.jp/articles/2005/03/25/rtx1100/index.html
楽器メーカーが作った傑作VPNルータ「RTX1000
http://ascii.jp/elem/000/000/416/416057/


Xbox 360 アーケード (HDMI端子搭載) 【メーカー生産終了】

Xbox 360 アーケード (HDMI端子搭載) 【メーカー生産終了】

ヤマハ ギガアクセスVPNルーター RTX1200

ヤマハ ギガアクセスVPNルーター RTX1200

Mac OS X 10.5.4 Leopard

Mac OS X 10.5.4 Leopard