まえがき
ROKUを入手したので、OrangePiでVPNルーターを作ってみた。
今回のネットワークの構成は、ブロードバンドルーターの下にVPNルーター(OrangePi)を有線接続し、その下にROKUをwifi接続する。
LEDE/OpenWRTにはOrange Pi用のファームウエアイメージがあるが、Wifiが実装された基板のイメージファイルのみで、OrangePi PCのようにWifiが実装されていない基板のイメージファイルは提供されていない。
しかしながら、Wifi付きのOrangePiは技適未認証のため、これをWirelessルーターに使うことは電波法上の問題がある。
今回はOrangePi PCにUSB Wifiドングルを装着してVPNルーターを作る。国内販売されているUSB Wifiドングルを使えば電波法上の問題は回避できる。
1.OpenWRTイメージの作成(Armbianの準備)
OrangePi PC用のイメージは提供されていないため、カーネルとドライバはArmbianのものを使い、その上にOpenWRT(LEDE)環境を載せる。
詳細は下記リンクを参照のこと。
OpenWRT環境の構築に先立ってArmbianを実行させ、手持ちのUSB Wifiドングルが使えること、そのときにカーネルにロードされるカーネルモジュールを確認しておくとよい。
今回は
Armbian_5.35_Orangepipc_Ubuntu_xenial_default_3.4.113_desktop.img
を用いた。
また、USBドングルはLogitecのLAN-W150N/U2を使った。LinuxでもUSBポートに挿すだけで使えるもので、lsmodで見るとrt2800ドライバを使っていることがわかる。
lsusb出力:
Bus 001 Device 008: ID 0789:0168 Logitec Corp. LAN-W150N/U2 Wireless LAN Adapter
lsmod出力:
Module Size Used by
rt2800usb 28672 0
rt2x00usb 20480 1 rt2800usb
rt2800lib 114688 1 rt2800usb
rt2x00lib 53248 3 rt2800lib,rt2800usb,rt2x00usb
ArmbianイメージをMicroSDカードに書き込んで、
/boot、/lib/module、/lib/firmware以外のフォルダをすべて削除する。
2.OpenWRT環境の構築
OrangePi PCにはH3プロセッサが搭載されているので、OrangePi用のOpenWRTイメージから、H3用のイメージを入手する。今回は開発版の
openwrt-sunxi-cortexa7-sun8i-h3-orangepi-plus-ext4-sdcard.img
を使った。安定版は動かなかった。
OpenWRTイメージを別のSDカードに書き込み、その中身をすべて1.で作ったSDカードにコピーする。
/libのコピー時に重複するものは、フォルダはマージ、ファイルはスキップしてコピーする。
この状態でSDカードをOrangePi PCに差し込み、OpenWRTが起動するか確認する。HDMIポートをディスプレイに繋いでいるなら、まずArmbianの起動画面が出て、次にOpenWRTの画面に切り替わるはずである。(Enterキーを一度押す必要がある)
この状態ではGUI設定(Luci)、wifiが動作しないので、必要なパッケージをダウンロードする。
OrangePiにrootでログイン(初期設定ではパスワードは設定されていない)し、/etc/config/networkを自宅のネット接続環境に合わせて書き換える。
デフォルトのOrangePi(OpenWRT)のIPアドレスは192.168.1.1である。
まずディスプレイとキーボードをOrangePiに繋ぎ、さらにOrangePiとブロードバンドルーターをLANケーブルで直接繋ぐ。
この状態で追加パッケージがダウンロードできるはずだが、繋がらなかった。
このため、OrangePiに固定IP(192.168.0.175)を割り当て、OrangePiの/etc/config/networkを次のように書き換え、パッケージリストをダウンロードした。
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config globals 'globals'
option ula_prefix 'fd95:0289:2498::/48'
config interface 'lan'
option type 'bridge'
option proto 'static'
# option ifname 'eth0' (コメントアウト)
option ipaddr '192.168.0.175' (192.168.1.1から変更)
option netmask '255.255.255.0'
option ip6assign '60'
option _orig_ifname 'eth0' (以下追加)
option _orig_bridge 'true'
config interface 'wan'
option proto 'dhcp'
option ifname 'eth0'
追加パッケージは次のようにインストールした。
opkg update (ログイン毎に必要)
opkg install luci (OpenWRT設定用GUI)
opkg install kmod-rt2800-usb (USB Wifiドングルドライバ)
opkg install wireless-tools
opkg install wpad (WPA2認証に必要)
opkg install wpan-tools
opkg iwinfo
ありがたいことにH3用のArmbianとOpenWRTはカーネルモジュールも含めて互換性がある。
このまま再起動して、LuciからOpenWRTを設定する。
3.Wifiルーターの設定
まず、OrangePiをワイヤレスルーターとして設定する。
あらかじめwifiをupしておく。LEDの点灯状態が変化するはずである。
ifconfig wlan0 up
詳細はここを参照。この手順通りにWANとwlan0を設定する。
WifiでLuciの設定に入れるように設定してからWANとeth0を切り離すこと。もし開かずの箱になったら、SDカードをLinuxPCに差し込んで/etc/config/networkを編集する。
ここまでの設定を済ませたイメージファイルを以下からダウンロードできるようにした。
(350MB/展開後1.5GB)
OrangePi PCにイメージを書き込んだSDカードを挿して、RT2800系のチップが載ったUSB Wifiドングルを挿して起動すればワイヤレスルーターとして機能するはずである。
※ひょっとするとドングルを挿す位置(二つ縦に並んだ下側のUSBポートに挿している)によってはドングルが動かないかもしれない。
Luciの設定画面は、192.168.100.1に接続し、
ID:root, PASS:passwordでログインできる。
また、無線アクセスポイントはSSID:OpenWRT, PASS:passwordで接続できる。
ssl認証が必要な場合は、ntpclientのインストールが必要なので、追加でおこなうこと。
opke install ntpclient
他のチップが載ったUSB Wifiドングルも、適切なドライバパッケージをLuciの画面から指定してインストールすれば使える可能性がある。
4.OpenVPNの設定
3.で準備したワイヤレスルーターにOpenVPNパッケージをインストールし、VPNサービスに接続する。VPNサービスにはExpressVPNを使った。30日間無料である。
詳細は下記を参照のこと。
ExpressVPNにログインすると、左側に各プラットホームでの設定方法が記されたページへのボタンがあるので、クリックしてそこへ進む。
Manual Configを選び、VPNサービスのIDとパスワードを確認し、地域を選んでVPN接続設定が記されたovpnファイルをダウンロードする。
IDとPasswordを二行に分けて入力し、pass.txtとして保存したファイルを作る。
pass.txtとovpnファイルをOrangePiの/etc/openvpn/にコピーする。scpでも、SDカードに直書きでもかまわない。
OrangePiにログインして、/etc/openvpnに降りて
openvpn --config my_expressvpn_*****_udp.ovpn
を実行し、エラーが出なければVPN接続されているはずである。
最後にROKUをこのwifiルーターに接続し、アメリカ内のみで視聴できるチャンネル(CRACKLEなど)が視聴できればOK。
ROKUのアカウントはアメリカ内の住所で登録し、支払いはPaypalでおこなうこと。