2016年5月8日日曜日

Linksys WRT320N へ OpenWrt をインストール

今日は久しぶりに無線 LAN ルータの話題です。以前入手して、各種整備をした後、放置していたリンクシスの WRT320N へ OpenWrt Chaos Calmer 15.05 をインストールしました。事情があり、遠隔地で使用する無線 LAN ルータとして OpenVPN などを一緒に設定しました。

今回 OpenWrt をインストールした Linksys WRT320N です。

過去の WRT320N の記事です。
Linksys WRT320N へ DD-WRT をインストール
http://near-unix.blogspot.jp/2015/02/linksys-wrt320n-dd-wrt.html

Linksys WRT320N の 5GHz 帯の通信転送速度
http://near-unix.blogspot.jp/2015/03/linksys-wrt320n-5ghz.html

Linksys WRT320N の Tomato ファームウェアで J52 対応
http://near-unix.blogspot.jp/2015/03/linksys-wrt320n-tomato-j52.html

Linksys WRT320N の電源ソケットの修理
http://near-unix.blogspot.jp/2015/03/linksys-wrt320n.html

Linksys WRT320N へシリアルコンソールの端子を設置
http://near-unix.blogspot.jp/2015/04/linksys-wrt320n.html

インストールの目標

OpenWrt をインストールした後、OpenVPN で WRT320N が管理している LAN へログインできるようにすることを目標としました。そのため、通常の OpenWrt のインストールの他、OpenVPN やダイナミック DNS のインストールと設定を行いました。

OpenWrt Chaos Calmer 15.05 のインストール

以下の OpenWrt Wiki を参考にしてインストールを行いました。直前まで Tomato ファームウェアをインストールしていましたが、ファームウェアのアップグレード機能で OpenWrt のファームウェア(openwrt-15.05-brcm47xx-mips74k-linksys-wrt320n-v1-squashfs.bin)を指定してアップグレード処理することにより、OpenWrt をインストールすることができました。
Linksys WRT320N/E2000 [OpenWrt Wiki]
https://wiki.openwrt.org/toh/linksys/wrt320n
ファームウェアのダウンロード
https://downloads.openwrt.org/chaos_calmer/15.05/brcm47xx/mips74k/
openwrt-15.05-brcm47xx-mips74k-linksys-wrt320n-v1-squashfs.bin

OpenWrt をインストールした WRT320N のステータス画面です。

以下の設定では telnet でログインを行って端末上からパッケージ類のインストールを行い、ブラウザ画面の LuCiから各種の設定を行いました。

無線 LAN  ドライバを brcm-wl へ変更

標準の無線 LAN のドライバは b43が使用されているため、2.4GHz 帯の IEEE 802.11 b/g のみの対応となっています。これを 5 GHz 帯の 11a や 11n モードへ対応するために brcm-wl ドライバへ変更しました。この変更は過去にも Broadcom のチップを使用している無線 LAN ルータでも同様に行っています。
# opkg update
# opkg install kmod-brcm-wl wlc nas
# opkg remove kmod-b43 kmod-b43legacy
# reboot

ダイナミック DNS の設定

インターネット経由で WRT320N へアクセスするためにダイナミック DNS を使って IP アドレスを取得できるようにしました。OpenWrt では ddns-scripts をインストールして使用します。そして使用するダイナミック DNS のサーバ は No-IP を使用しました。そのため No-IP 専用の ddns-scripts_no-ip_com をインストールしました。
# opkg update
# opkg install ddns-scripts ddns-scripts_no-ip_com luci-app-ddns
# reboot

ダイナミック DNS の設定は、ブラウザ画面の LuCi から設定を行いました。種類に "No-IP.com" を選んで、ユーザ名やパスワードを設定すれば、すぐに設定は反映されて、WAN 側の IP アドレスが No-IP の DNS サーバへ登録されました。

ダイナミック DNS の設定画面
IPv4 の設定のみを行いました。
"Edit" ボタンを押して編集画面へ移行した画面です。
ここで詳細な設定を行いました。

OpenVPN の設定

OpenVPN をインストールするにあたって、証明書類は WRT320N 上で作成すると時間がかかりそうだったので、パソコンで作成しました。この証明書に作成については記述を割愛しました。証明書の作成や OpenVPN の設定は、過去の記事と OpenWrt Wiki を参考にしてください。

FreeBSD の自宅サーバへ OpenVPN をインストール(ルーティング方式)
http://near-unix.blogspot.jp/2014/08/freebsd-openvpn.html

OpenVPN Setup Guide for Beginners [OpenWrt Wiki]
https://wiki.openwrt.org/doc/howto/vpn.openvpn

OpenVPN のパッケージをインストールしました。
# opkg update
# opkg install openvpn-openssl luci-app-openvpn collectd-mod-openvpn

まず最初に OpenVPN で使用する tun0 のインターフェースを uci 設定コマンドで作成しました。
# uci set network.vpn0=interface
# uci set network.vpn0.ifname=tun0
# uci set network.vpn0.proto=none
# uci set network.vpn0.auto=1

次に OpenVPN のパケットを通過させるトラフィック・ルール(Allow-OpenVPN-Inbound)をファイアウォールへ作りました。使用するポート番号は、標準の 1194 ではなく 1196 を使用しました。初めて設定する読者さんは、とりあえず標準の 1194 で設定することをお奨めします。
# uci add firewall rule
# uci set firewall.@rule[-1].name=Allow-OpenVPN-Inbound
# uci set firewall.@rule[-1].target=ACCEPT
# uci set firewall.@rule[-1].src=*
# uci set firewall.@rule[-1].proto=udp
# uci set firewall.@rule[-1].dest_port=1196

さらに OpenVPN のトンネルのファイアウォール・ゾーン(vpn)を作成しました。
# uci add firewall zone
# uci set firewall.@zone[-1].name=vpn
# uci set firewall.@zone[-1].input=ACCEPT
# uci set firewall.@zone[-1].forward=REJECT
# uci set firewall.@zone[-1].output=ACCEPT
# uci set firewall.@zone[-1].network=vpn0
# uci add firewall forwarding
# uci set firewall.@forwarding[-1].src='vpn'
# uci set firewall.@forwarding[-1].dest='wan'

以上の uci コマンドで設定した内容を反映させました。
# uci commit network
# /etc/init.d/network reload
# uci commit firewall
# /etc/init.d/firewall reload

OpenVPN の詳細設定をブラウザ設定画面の LuCi で行いました。主に証明書類(ca, dh, cert, key)の設定を行ったのですが、設定画面の左下にある追加項目を選択して "Add" ボタンを押して、追加しては、証明書のファイルを指定しました。

OpenVPN の設定画面
インストール直後には三種類の設定がありましたが、不要なものは削除しました。
 "sample_server" を変更して "WRT320N_Server" としました。
OpenVPN の詳細設定画面です。
証明書類は項目を追加しながらファイルを指定しました。

以上の設定で OpenVPN のだいたいの設定が終わりました。しかしまだ細かな部分の設定が残っていますので、直接 OpenVPN の設定ファイル(/etc/config/openvpn)を編集して、設定を行いました。
# vi /etc/config/openvpn

以下は OpenVPN の設定ファイル(/etc/config/openvpn)の参考例です。最下段(四段)の青文字部分が、追加した部分です。WRT320N のサブネットは、192.168.1.0 を使用して、さらに OpenVPN のトンネルには 192.168.11.0 のサブネットを使用するようにしています。DNS サーバは WRT320N の DNS 機能を使用するようにしました。
config openvpn 'WRT320N_Server'
        option proto 'udp'
        option dev 'tun'
        option ifconfig_pool_persist '/tmp/ipp.txt'
        option keepalive '10 120'
        option comp_lzo 'yes'
        option persist_key '1'
        option persist_tun '1'
        option user 'nobody'
        option status '/tmp/openvpn-status.log'
        option verb '3'
        option port '1196'
        option dh '/lib/uci/upload/cbid.openvpn.sample_server.dh'
        option cert '/lib/uci/upload/cbid.openvpn.sample_server.cert'
        option key '/lib/uci/upload/cbid.openvpn.sample_server.key'
        option ca '/lib/uci/upload/cbid.openvpn.sample_server.ca'
        option enabled '1'
        option server '192.168.11.0 255.255.255.0'
        option push 'route192.168.1.0 255.255.255.0'
        option push 'redirect-gateway def1'
        option push 'dhcp-option DNS 192.168.1.1'

以上で設定は終了です。念の為 WRT320N を再起動させて、動作確認を行いました。

OpenWrtをインストールした WRT320N です。


0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。