OpenWrtの無線LANでWPS機能を利用する

今回はWPS機能を使うための設定を行う 使用ハードはWZR-HP-AG300H

WPS機能とは

WPS機能はバッファローだとAOSS機能とも言われていて
簡単に言えば暗号キーを入力させずにクライアント機器を登録することが可能な機能

よくある利用方法はルータのハードウェアボタンを長押しして
それと同じくしてクライアント機器側もWPS機能を有効にすると認証される

OpenWrtをインストールした素のままだと
WZR-HP-AG300Hの正面上部にあるAOSSボタンを長押ししても反応しない
WPSが使用できないのは不便なので今回は使えるように変更する

事前準備

今までの設定は全てWEBGUIで済んだが
今回はSSHを利用する必要があるので操作用PCに
PuTTYなどのSSHクライアントソフトを用意する

以下の作業は無線LANを有効にした状態でいじっても問題なかったので
わざわざ無効にして電波を停止する必要はない

必要なパッケージをインストール

必要なのはwpadとhostapd-utilsのパッケージ
元々wpad-miniというパッケージが入ってますので
流れとしてはwpad-miniを削除しwpadとhostapd-utilsを入れます

システム→ソフトウェアへ移動
インストール済パッケージからwpadでフィルタをかけて表示
wpad-miniがあれば削除ボタンから削除する

エラーがないことを確認

次にインストール可能なパッケージからwpadを探す
wpadの方をインストールする

またエラーが出ないことを確認

次はhostapd-utilsを入れる為に
インストール可能なパッケージから選択する

エラーがないことを確認

無線LANの設定でWPSを有効にする

パッケージを入れてWPSを利用できる状態になったが
無線LANのSSIDごとにWPSの利用有無を設定しなければならない
要はWPSを利用した場合にどのSSIDに接続するようにするかである

通常は無線LANを設定しただけではWPSは無効になっているので
作業としてはWPSで有効にしたいSSIDのみ設定変更する必要がある

しかしこの設定がWEBGUIでは設定できないのでSSHを利用する必要がある
無線LANインタフェースの設定ファイルは/etc/config/wireless
追記してるのは19行目になる

# vi /etc/config/wireless
config wifi-device 'radio0'
        option type 'mac80211'
        option hwmode '11g'
        option path 'pci0000:00/0000:00:11.0'
        option htmode 'HT20'
        option channel 'auto'
        option txpower '10'
        option country 'JP'

config wifi-iface
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option wmm '0'
        option ssid 'OpenWrt'
        option encryption 'psk2+ccmp'
        option key 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
        option wps_pushbutton '1'

config wifi-device 'radio1'
        option type 'mac80211'
        option hwmode '11a'
        option path 'pci0000:00/0000:00:12.0'
        option htmode 'HT20'
        option channel 'auto'
        option txpower '10'
        option country 'JP'

config wifi-iface
        option device 'radio1'
        option network 'lan'
        option mode 'ap'
        option ssid 'OpenWrt'
        option wmm '0'
        option encryption 'psk2+ccmp'
        option key 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
        option disabled '1'

今回はradio0をWPS有効にするので
radio0のconfig wifi-iface内にoption wps_pushbutton ‘1’を追記・保存する

パッケージも追加し/etc/config/wirelessを編集できればOpenWrtを再起動する
WEBGUIのシステム→再起動で再起動が終わるのを待つ

WPSの動作を確認する

WPSを試す前に一つ注意事項があります

純正ファームウェアだとハードウェアの前面にあるAOSSボタンを
前面のランプが点滅するまで長押ししてWPS受け入れ状態を確認できます

しかしOpenWrtの場合LEDは別に動いているのでAOSSボタンを
いくら長押ししたところでWPS受け入れ状態なのかがわかりません

前面ランプが点滅してなくてもAOSSボタンを5秒ほど長押しすると
既にWPS受け入れ状態になっていますのでランプの状態で判断しないでください

わかりにくければ先にクライアント側のWPS探索状態にしてから長押しすれば
スムーズに接続できると思います

主な資料

Wireless configuration [OpenWrt Wiki]
https://wiki.openwrt.org/doc/uci/wireless

ここをみればWEBGUIではできない細かい設定項目が記載されている
WPSだけでなくPINでの接続やAOSSボタンの代わりにSSH上でコマンドを使うなど

あと今回はWEBGUIでパッケージを入れたがSSHでも可能

# opkg update
# opkg remove wpad-mini
# opkg install wpad hostapd-utils
# reboot