BUFFALO WHR-AM54G54にインストールしたDD-WRTでtcpdumpを使えるように設定を行い、ssh接続したリモート端末でWiresharkを用いて通信パケットの解析をする方法。
■ DD-WRTのどのファームウエアを使うべきか
DD-WRT公式ページの“Router Database”検索で、“WHR”と入力して表示されるWHR-AMG54を選択すると、次のように数種類のファームウエアが提示される。
Firmware v24 preSP2
- Micro Generic : dd-wrt.v24_micro_generic.bin (1.69 MB)
- Mini Generic : dd-wrt.v24_mini_generic.bin (2.89 MB)
- Standard Generic : dd-wrt.v24_std_generic.bin (3.58 MB)
tcpdumpをインストールするためにはJFFSを使う必要があるので、「DD-WRT : Journalling Flash File System」によれば、
http://www.dd-wrt.com/wiki/index.php/Journalling_Flash_File_System#Prerequisites
と書かれていて、StandardではなくMiniのファームウエアを使う必要があるとのことだ。(BUFFALO WHR-AM54G54のフラッシュメモリは4MBytesのため)
■ JFFSの有効化
DD-WRT管理用Webの“管理”ー“管理”画面を開き、中央よりやや下のJFFS2の設定で
JFFS2の設定
・JFFS2 … 有効をチェック
・JFFS2の保存領域の初期化 … 初めて有効化する時は必ずチェック
■ SSHサーバの有効化
DD-WRT管理用Webの“ネットワーク”ー“サーバ/サービス”画面を開き、SSHを有効化する。
■ tcpdumpのインストール
「Installing TCPDump on DD-WRT WRT54GL」を参考に、tcpdumpをインストールする。
telnetかsshでDD-WRTをインストールしたルータに接続し
# cd /tmp/smbshare/tmp/ipkg
# wget http://downloads.openwrt.org/whiterussian/packages/libpcap_0.9.4-1_mipsel.ipk
# ipkg -d smbfs install libpcap_0.9.4-1_mipsel.ipk
# wget http://downloads.openwrt.org/whiterussian/packages/tcpdump_3.9.4-1_mipsel.ipk
# ipkg -d smbfs install tcpdump_3.9.4-1_mipsel.ipk
■ tcpdumpをローカルで起動する
■ リモートのWiresharkでキャプチャする
The authenticity of host 'dd-wrt (172.29.1.1)' can't be established.
RSA key fingerprint is 10:5a:36:84:74:aa:4d:29:94:b5:2c:96:a9:44:ae:03.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'dd-wrt' (RSA) to the list of known hosts.
DD-WRT v24-sp2 mini (c) 2010 NewMedia-NET GmbH
Release: 08/07/10 (SVN revision: 14896)
root@dd-wrt's password: パスワードを入力
tcpdump: listening on vlan1, link-type EN10MB (Ethernet), capture size 65535 bytes
■ この方法の問題点
ルータの電源を切ると、インストール前の状況に戻ってしまう。なんとか、不揮発領域に書き込めないものなのか…