OpenWrtを入れられる小型ルーターはいくつかありますが、バッファローのルーターはある程度スペックをクリアしてるのと値段がなんと言っても手頃なので安心して使えます。ほかにはRavPower RP-WD02なんてマイクロSDリーダーにUSBポート、さらにバッテリーまでついて魅力的だがに日本では販売してないので、海外から取り寄せる送料を考えたら現実的ではありません。そこででバッファローという選択になりますが、100%とは言えないまでもスペック的にはそこそこ満足できる製品がこのトラベルルーターです。
早速、OpenWrtを入れてみることにしました。インストール方法は簡単ですが準備がそれなりに必要です。というのも最初にRAMにロードするFWを作る必要があります。そこでVBに開発環境を作りDebian 8(64bit)をインストールしてみました。つぎにOpneWrtのソースをgitで持ってきてサイトBuffalo WMR-300にある要領で作りファームウェア(以下FW)をtftpで送り込んでみました。debianのtfpd-hpaはinetデーモンも必要なのでインストールして設定しておく必要があります。FWをRAMに送り込んだら設定画面にアクセスして公式FWにアップグレードすれば、めでたくインストールは完了します。私が作ったFWは次のところにあります。
Image Generatorを使ったファームウエアの作成
トラベルルーターのフラッシュメモリの容量が8MBと限られているので必要なパッケージのみで構成したカスタムファームウェアを作成しました。usbはどうも電源を取るだけのものらしいので関連のパッケージを外しておきました。Image Builderを使うとソースからビルドするより簡単に作成することができます。
OpenWrt-ImageBuilder-15.05.1-ramips-mt7620.Linux-x86_64.tar.bz2
Image Generator (Image Builder) – EN
Image 1:
#!/bin/sh
make image PACKAGES=\
"libiwinfo libiwinfo-lua liblua libubus-lua libuci-lua lua\
luci luci-app-firewall luci-lib-ip luci-lib-nixio\
luci-mod-admin-full luci-proto-ipv6 luci-proto-ppp rpcd\
uhttpd uhttpd-mod-ubus -wpad-mini wpad iperf ipset kmod-tun\
nano openssh-client openssh-sftp-client openssl-util zlib\
iptables-mod-filter iptables-mod-nat-extra ppp-mod-pppoe\
xl2tpd ppp-mod-pppol2tp ntpd privoxy\
kmod-crypto-authenc kmod-crypto-cbc kmod-crypto-crc32c\
kmod-crypto-deflate kmod-crypto-des kmod-crypto-hash\
kmod-crypto-hmac kmod-crypto-iv kmod-crypto-manager\
kmod-crypto-md5 kmod-crypto-pcompress kmod-crypto-rng\
kmod-crypto-sha1 kmod-crypto-sha256 kmod-crypto-user\
kmod-crypto-wq kmod-crypto-crc32c kmod-sched-core kmod-sched-connmark\
kmod-iptunnel kmod-iptunnel4 kmod-iptunnel6 iptables-mod-filter\
kmod-ipt-ipsec kmod-ipsec kmod-ipsec4 kmod-ipsec6\
kmod-udptunnel4 kmod-udptunnel6 kmod-lib80211\
iptables-mod-ipsec -kmod-usb2 -kmod-usb-ohci\
ddns-scripts luci-app-ddns luci-app-privoxy\
luasocket lua-sha2 lua-bencode uboot-envtools"
この例ではL2TPをデフォルトで使えるようにし、strongSwanはパッケージをあとからインストールできるようにモジュール入れました。strongSwanのメタパッケージをインストールすると、ipパッケージも自動的にインストールするがあとでip-fullに入れ替えます。privoxyもデフォルトで入れておき、あやしいwifiスポットに対して間接的に接続できるようにしました。注意することはログが相当溜まるのでLuciの設定でデフォルトから最小限のログ出力にしたほうが良いでしょう。さもないとログがいっぱいになりシステムが止まります。sshクライアントはRSA鍵でログインできるようにdropbearのsshから変更しました。wpadはwpaエンタープライズ用でも使えるようにフル装備のパッケージに入れ替えました。
これだけの機能を入れても残りはだいたい900KBちょっと残っているので、まだまだ余裕があります。
Image 2:
必要最小限の構成で作ってみました。
#!/bin/sh
#make image PROFILE=Default PACKAGES=\
make image PACKAGES=\
"libiwinfo libiwinfo-lua liblua libubus-lua libuci-lua lua\
luci luci-app-firewall luci-lib-ip luci-lib-nixio\
luci-mod-admin-full luci-proto-ipv6 luci-proto-ppp rpcd\
uhttpd uhttpd-mod-ubus -wpad-mini wpad ipset kmod-tun\
nano openssh-client openssh-sftp-client openssl-util zlib\
iptables-mod-filter iptables-mod-nat-extra ppp-mod-pppoe\
kmod-sched-core kmod-sched-connmark\
iptables-mod-filter\
kmod-lib80211\
-kmod-usb2 -kmod-usb-ohci\
luasocket lua-sha2 lua-bencode uboot-envtools\
-ip ip-full"
# UPDATE: OpenWRT 18.06.1
make image PROFILE=wmr-300 PACKAGES=\
"libiwinfo libiwinfo-lua liblua libubus-lua libuci-lua lua\
luci luci-app-firewall luci-lib-ip luci-lib-nixio\
luci-mod-admin-full luci-proto-ipv6 luci-proto-ppp rpcd\
uhttpd uhttpd-mod-ubus -wpad-mini wpad-wolfssl ipset kmod-tun\
nano zlib\
iptables-mod-filter iptables-mod-nat-extra \
kmod-sched-core kmod-sched-connmark\
iptables-mod-filter\
kmod-lib80211\
-kmod-usb2 -kmod-usb-ohci\
luasocket lua-sha2 lua-bencode"
References: