Armadilloフォーラム

wpa-supplicant enterpriseは可能ですか?

yoshizu

2015年10月5日 15時08分

yoshizuです
お世話になっています

http://armadillo.atmark-techno.com/howto/a800-ieee80211ac-gw-900d
Howto : Armadillo-810/840で IEEE802.11ac USB無線LANアダプタ GW-900D を動作させる
では
WPA2-PSK(AES)用となっておりますが

wpa2-enterpriseのアクセスポイントへ接続できるような
設定は可能でしょうか?

以上よろしくお願い致します。

コメント

at_yuma.arakawa

2015年10月8日 18時45分

> Howto : Armadillo-810/840で IEEE802.11ac USB無線LANアダプタ GW-900D を動作させる
> では
> WPA2-PSK(AES)用となっておりますが
>
> wpa2-enterpriseのアクセスポイントへ接続できるような
> 設定は可能でしょうか?
Howtoで紹介しているGW-900Dは、認証規格であるIEEE 802.1Xに非対応であるため、
wpa2-enterpriseをご使用いただくことはできません。

当方で調べた限りでは、IEEE 802.1Xに対応した無線LAN子機には以下のようなものがあります。
(ただし、申し訳ありませんが、弊社でLinux上での動作確認はできておりません。)
- IEEE802.1X認証対応クライアント(法人様向け) | BUFFALO バッファロー
http://buffalo.jp/products/catalog/network/wireless_client_business.html
- 無線LAN子機 | 無線LAN(Wi-Fi) | IODATA アイ・オー・データ機器
http://www.iodata.jp/product/network/adp/index.htm

arakawa様
yoshizuです
お世話になっています。

wap_supplicant動作はLinux配下のソフト動作なので
努力すればwpa enterpriseも動作すると予測したのですが

「GW-900Dは、認証規格であるIEEE 802.1Xに非対応」
という回答ですが、
これは
メーカーでの実績がないから非対応なのか
それとも、GW-900Dのハードウエアがwpa enterpriseの動作できない
何かがあるからなのか

いづれでしょうか? ご教授願います

努力すれば、いつかは何とかなるものなのか、
それとも、初めからあきらめた方がいいのか
悩んでおります。

以上よろしくお願い致します

> > Howto : Armadillo-810/840で IEEE802.11ac USB無線LANアダプタ GW-900D を動作させる
> > では
> > WPA2-PSK(AES)用となっておりますが
> >
> > wpa2-enterpriseのアクセスポイントへ接続できるような
> > 設定は可能でしょうか?
> Howtoで紹介しているGW-900Dは、認証規格であるIEEE 802.1Xに非対応であるため、
> wpa2-enterpriseをご使用いただくことはできません。
>
> 当方で調べた限りでは、IEEE 802.1Xに対応した無線LAN子機には以下のようなものがあります。
> (ただし、申し訳ありませんが、弊社でLinux上での動作確認はできておりません。)
> - IEEE802.1X認証対応クライアント(法人様向け) | BUFFALO バッファロー
> http://buffalo.jp/products/catalog/network/wireless_client_business.html
> - 無線LAN子機 | 無線LAN(Wi-Fi) | IODATA アイ・オー・データ機器
> http://www.iodata.jp/product/network/adp/index.htm

> メーカーでの実績がないから非対応なのか
> それとも、GW-900Dのハードウエアがwpa enterpriseの動作できない
> 何かがあるからなのか
>
>いづれでしょうか? ご教授願います
「GW-900Dのハードウエアがwpa enterpriseの動作できない」ためです。

お手数ですが、IEEE 802.1X対応の無線LAN子機をご使用ください。

花田です。より正確に…

> 「GW-900Dは、認証規格であるIEEE 802.1Xに非対応」
> という回答ですが、
> これは
> メーカーでの実績がないから非対応なのか
> それとも、GW-900Dのハードウエアがwpa enterpriseの動作できない
> 何かがあるからなのか

wpa_supplicant動作ですが、すべてのサプリカント動作をソフトウェアで実現していればWPA-EAPにも対応できる可能性は高いと思います。
しかしながらGW-900Dは、カタログスペック上で具体的な使用ベースバンドモジュール型番等を明記しているものではなく、その点からハードウェア機能を類推することができません。
Planex社のサイトでダウンロード可能なこのデバイス用のlinuxドライバzipには、Realtek社の型番と思しき名称を含んだファイルが入っています。さらにその中には、独自の修正が加えられていると思われるwpa_supplicantのソースそのもの2種も含まれており、この点は気になるところです。

今回ご覧になられたArmadilloサイトのHowtoは、そちらの変更点までを精査した上ですべての機能を検証したものではございません。
独自修正の加えられていないwpa_supplicantを使用した上で、あくまでクライアント動作としてWPA-PSK認証における通信が可能であったことを確認したのみです。

デバイスメーカーにおけるwpa_supplicantへの修正点が独自のハードウェアへの適合性を増すものなのか、他の何かに対するワークアラウンド的なものなのか、そのあたりはわかりません。
ただ、現時点でLinuxとWindowsいずれにおいてもGW-900DでのWPA Enterprise認証の確認実績はなく、前述の事情から何とも言えないというのが正直なところです。

yoshizuです
お世話になっています

実情は理解できました。

ちなみに、GW-900DをWindowsに実装して、wpa2エンタープライズでの認証は動作しました。
ただ、動作させたいのはLinuxですので、ハードは動作するといった参考程度の結果です。

話は少しずれてしまうかもしれませんが、wpa2エンタープライズでのwpa_supplicant.conf
の記述方法が判る方はおられないでしょうか?

実際に接続できたという方がいましたら、wpa_supplicant.confを内容を
教えていただければ幸いです。

以上よろしくお願い致します。

> 花田です。より正確に…
>
> > 「GW-900Dは、認証規格であるIEEE 802.1Xに非対応」
> > という回答ですが、
> > これは
> > メーカーでの実績がないから非対応なのか
> > それとも、GW-900Dのハードウエアがwpa enterpriseの動作できない
> > 何かがあるからなのか
>
> wpa_supplicant動作ですが、すべてのサプリカント動作をソフトウェアで実現していればWPA-EAPにも対応できる可能性は高いと思います。
> しかしながらGW-900Dは、カタログスペック上で具体的な使用ベースバンドモジュール型番等を明記しているものではなく、その点からハードウェア機能を類推することができません。
> Planex社のサイトでダウンロード可能なこのデバイス用のlinuxドライバzipには、Realtek社の型番と思しき名称を含んだファイルが入っています。さらにその中には、独自の修正が加えられていると思われるwpa_supplicantのソースそのもの2種も含まれており、この点は気になるところです。
>
> 今回ご覧になられたArmadilloサイトのHowtoは、そちらの変更点までを精査した上ですべての機能を検証したものではございません。
> 独自修正の加えられていないwpa_supplicantを使用した上で、あくまでクライアント動作としてWPA-PSK認証における通信が可能であったことを確認したのみです。
>
> デバイスメーカーにおけるwpa_supplicantへの修正点が独自のハードウェアへの適合性を増すものなのか、他の何かに対するワークアラウンド的なものなのか、そのあたりはわかりません。
> ただ、現時点でLinuxとWindowsいずれにおいてもGW-900DでのWPA Enterprise認証の確認実績はなく、前述の事情から何とも言えないというのが正直なところです。
>

大塚と申します。

yoshizu 様のこの話題は興味があって拝見しておりました。

> 話は少しずれてしまうかもしれませんが、wpa2エンタープライズでのwpa_supplicant.conf
> の記述方法が判る方はおられないでしょうか?

wpa_supplicant の本家サイトの example の
https://w1.fi/cgit/hostap/plain/wpa_supplicant/examples/wpa2-eap-ccmp.c…
とか、Ubuntu の wpa_supplicant.conf の manual の example
http://manpages.ubuntu.com/manpages/vivid/man5/wpa_supplicant.conf.5.ht…
などでは情報として足りないでしょうか?

>
> 実際に接続できたという方がいましたら、wpa_supplicant.confを内容を
> 教えていただければ幸いです。

大分以前に hostapd と FreeRADIUS でアクセスポイント を仕立ててみて
上記の wpa2-eap-ccmp.conf そのままの設定内容で接続できました。
(そのときはアクセスポイントもクライアントも RT2870 の USB Wifi を使いました。)

ただ、ベンダー製のアクセスポイントだと認証の実装によって接続できるできないがあるようで
wpa_supplicant の本家サイトにある相互運用性テストの表
https://w1.fi/cgit/hostap/plain/wpa_supplicant/eap_testing.txt
で tested successfully になっていないものは接続できないかもしれません。
(このテスト表も少し古いので現在は状況がもう少し改善しているかもしれません。)

すでにご存知のようなことばかりでお役に立たなかったらすみません。

yoshizuです
しばらく本件、後回しにしておりましたが、再開しました。

少しでも、手がかりがあればと
wpa_supplicant の起動でddを付けて、実行しました。

peap_supplicant.conf

# ca_cert="/etc/cert/ca.pem"
でコメント化しているのは、ca.pemの作り方が判らないのと
必須ではないという、情報から です

何か、ヒントになる指摘事項があれば
お願いします。

[root@armadillo840-0 (pts/0) /etc/config]# cat peap_supplicant.conf
network={
ssid="shwlan-2.4"
key_mgmt=WPA-EAP
eap=PEAP
identity="user01@wlanswg.com"
password="abcdefg123"
# ca_cert="/etc/cert/ca.pem"
phase1="peaplabel=1"
phase2="auth=MSCHAPV2"
priority=10
}

[root@armadillo840-0 (pts/0) /etc/config]# wpa_supplicant -i wlan1 -c /etc/config/peap_supplicant.conf -Dwext -B -dd
Initializing interface 'wlan1' conf '/etc/config/peap_supplicant.conf' driver 'wext' ctrl_interface 'N/A' bridge 'N/A'
Configuration file '/etc/config/peap_supplicant.conf' -> '/etc/config/peap_supplicant.conf'
Reading configuration file '/etc/config/peap_supplicant.conf'
Line: 1 - start of a new network block
ssid - hexdump_ascii(len=10):
73 68 77 6c 61 6e 2d 32 2e 34 shwlan-2.4
key_mgmt: 0x1
eap methods - hexdump(len=16): 00 00 00 00 19 00 00 00 00 00 00 00 00 00 00 00
identity - hexdump_ascii(len=18):
75 73 65 72 30 32 40 77 6c 61 6e 73 77 67 2e 63 user02@wlanswg.c
6f 6d om
password - hexdump_ascii(len=10): [REMOVED]
phase1 - hexdump_ascii(len=11):
70 65 61 70 6c 61 62 65 6c 3d 31 peaplabel=1
phase2 - hexdump_ascii(len=13):
61 75 74 68 3d 4d 53 43 48 41 50 56 32 auth=MSCHAPV2
priority=10 (0xa)
Priority group 10
id=0 ssid='shwlan-2.4'
Initializing interface (2) 'wlan1'
EAPOL: SUPP_PAE entering state DISCONNECTED
EAPOL: KEY_RX entering state NO_KEY_RECEIVE
EAPOL: SUPP_BE entering state INITIALIZE
EAP: EAP entering state DISABLED
EAPOL: External notification - portEnabled=0
EAPOL: External notification - portValid=0
SIOCGIWRANGE: WE(compiled)=22 WE(source)=16 enc_capa=0xf
capabilities: key_mgmt 0xf enc 0xf
WEXT: Operstate: linkmode=1, operstate=5
Own MAC address: 02:22:cf:ef:aa:dd
wpa_driver_wext_set_wpa
wpa_driver_wext_set_key: alg=0 key_idx=0 set_tx=0 seq_len=0 key_len=0
wpa_driver_wext_set_key: alg=0 key_idx=1 set_tx=0 seq_len=0 key_len=0
wpa_driver_wext_set_key: alg=0 key_idx=2 set_tx=0 seq_len=0 key_len=0
wpa_driver_wext_set_key: alg=0 key_idx=3 set_tx=0 seq_len=0 key_len=0
wpa_driver_wext_set_countermeasures
wpa_driver_wext_set_drop_unencrypted
Setting scan request: 0 sec 100000 usec
Added interface wlan1
Daemonize..
[root@armadillo840-0 (pts/0) /etc/config]#

以上よろしくお願い致します

> 大塚と申します。
>
> yoshizu 様のこの話題は興味があって拝見しておりました。
>
> > 話は少しずれてしまうかもしれませんが、wpa2エンタープライズでのwpa_supplicant.conf
> > の記述方法が判る方はおられないでしょうか?
>
> wpa_supplicant の本家サイトの example の
> https://w1.fi/cgit/hostap/plain/wpa_supplicant/examples/wpa2-eap-ccmp.c…
> とか、Ubuntu の wpa_supplicant.conf の manual の example
> http://manpages.ubuntu.com/manpages/vivid/man5/wpa_supplicant.conf.5.ht…
> などでは情報として足りないでしょうか?
>
> >
> > 実際に接続できたという方がいましたら、wpa_supplicant.confを内容を
> > 教えていただければ幸いです。
>
> 大分以前に hostapd と FreeRADIUS でアクセスポイント を仕立ててみて
> 上記の wpa2-eap-ccmp.conf そのままの設定内容で接続できました。
> (そのときはアクセスポイントもクライアントも RT2870 の USB Wifi を使いました。)
>
> ただ、ベンダー製のアクセスポイントだと認証の実装によって接続できるできないがあるようで
> wpa_supplicant の本家サイトにある相互運用性テストの表
> https://w1.fi/cgit/hostap/plain/wpa_supplicant/eap_testing.txt
> で tested successfully になっていないものは接続できないかもしれません。
> (このテスト表も少し古いので現在は状況がもう少し改善しているかもしれません。)
>
> すでにご存知のようなことばかりでお役に立たなかったらすみません。
>
>

yoshizuです
お世話になっています。

少し進んだ内容の報告と、その次のステップの質問があります。

無線LANに詳しい方々からのご協力により、WPA2エンタープライズの一種である
PEAPについて動作確認できました。
その内容は以下の3つありました

①armadillo-840添付のドライバーwpa_supplicant v0.5.10をGW900Dが
 指定するドライバーwpa_supplicant v2.0-devel_rtw_r9301.20131011に変更する。
②wpa_supplicant.confでphase1="peaplabel=1"の行をコメントアウトする。
③Armadillo が立ち上がった後 armadillo側linuxで時刻を設定すること。

ようやく、ここまでいったのですが、
実はwpa2エンタープライズの種類で、TLSを成功させる必要がありますが
これは、まだ出来ていません。

その内容は以下のようなものです。
証明書や鍵であるca.pem、user.pem、user.prvはopensslを利用して作成する。 

wpa_supplicant.confは以下を参考にして記述しました。

network={
ssid="example"
proto=RSN
key_mgmt=WPA-EAP
pairwise=CCMP TKIP
group=CCMP TKIP
eap=TLS
identity="user@example.com"
ca_cert="/etc/cert/ca.pem"
client_cert="/etc/cert/user.pem"
private_key="/etc/cert/user.prv"
private_key_passwd="password"
priority=1
}

armadillo-840側からの
wpa_supplicant -i wlan1 -c /etc/config/wpa_supplicant.conf -B -dd
コマンド投入後に数秒経過すると、
radiusサーバーでは以下の拒絶LOGが発生します。

 「サーバーで拡張認証プロトコル(EAP) の種類を処理できないため、クライアントを認証できませんでした。」

radiusサーバー側wiresharkによるネットワークトレース、
およびアクセスポイントとarmadillo-840間の空間キャプチャ
を採取したところ以下のようになっていました。

armadillo         アクセスポイント
563 |<------------------| EAP Request (request identity)
566 |------------------>| EAP Response (Identity response)
568 |<------------------| EAP Request (PEAP start)
570 |------------------>| EAP Response (Nack/TLS request)
572 |<------------------| EAP Request (TLS start)
574 |------------------>| EAP Response (Nack) ×
576 |<------------------| EAP Failure

このシーケンスを要約すると、radiusサーバーからアクセスポイントを経由してarmadilloへ
送信されたEAP Request (TLS start)に対して、armadilloがEAP Response (Nack) 
を返信しているという状況です。

正常であればarmadilloはClient HelloというEAPパケットを出すそうです。

つまりarmadilloがアクセスポイントからのTLS startに正常に応答できて
いないというところにあります。

証明書のやりとり以前につまづいています。

調査のための次のステップを、ご教授願います。

以上よろしくお願い致します。

> yoshizuです
> しばらく本件、後回しにしておりましたが、再開しました。
>
> 少しでも、手がかりがあればと
> wpa_supplicant の起動でddを付けて、実行しました。
>
> peap_supplicant.conf
> の
> # ca_cert="/etc/cert/ca.pem"
> でコメント化しているのは、ca.pemの作り方が判らないのと
> 必須ではないという、情報から です
>
> 何か、ヒントになる指摘事項があれば
> お願いします。
>
>
> [root@armadillo840-0 (pts/0) /etc/config]# cat peap_supplicant.conf
> network={
> ssid="shwlan-2.4"
> key_mgmt=WPA-EAP
> eap=PEAP
> identity="user01@wlanswg.com"
> password="abcdefg123"
> # ca_cert="/etc/cert/ca.pem"
> phase1="peaplabel=1"
> phase2="auth=MSCHAPV2"
> priority=10
> }
>
> [root@armadillo840-0 (pts/0) /etc/config]# wpa_supplicant -i wlan1 -c /etc/config/peap_supplicant.conf -Dwext -B -dd
> Initializing interface 'wlan1' conf '/etc/config/peap_supplicant.conf' driver 'wext' ctrl_interface 'N/A' bridge 'N/A'
> Configuration file '/etc/config/peap_supplicant.conf' -> '/etc/config/peap_supplicant.conf'
> Reading configuration file '/etc/config/peap_supplicant.conf'
> Line: 1 - start of a new network block
> ssid - hexdump_ascii(len=10):
> 73 68 77 6c 61 6e 2d 32 2e 34 shwlan-2.4
> key_mgmt: 0x1
> eap methods - hexdump(len=16): 00 00 00 00 19 00 00 00 00 00 00 00 00 00 00 00
> identity - hexdump_ascii(len=18):
> 75 73 65 72 30 32 40 77 6c 61 6e 73 77 67 2e 63 user02@wlanswg.c
> 6f 6d om
> password - hexdump_ascii(len=10): [REMOVED]
> phase1 - hexdump_ascii(len=11):
> 70 65 61 70 6c 61 62 65 6c 3d 31 peaplabel=1
> phase2 - hexdump_ascii(len=13):
> 61 75 74 68 3d 4d 53 43 48 41 50 56 32 auth=MSCHAPV2
> priority=10 (0xa)
> Priority group 10
> id=0 ssid='shwlan-2.4'
> Initializing interface (2) 'wlan1'
> EAPOL: SUPP_PAE entering state DISCONNECTED
> EAPOL: KEY_RX entering state NO_KEY_RECEIVE
> EAPOL: SUPP_BE entering state INITIALIZE
> EAP: EAP entering state DISABLED
> EAPOL: External notification - portEnabled=0
> EAPOL: External notification - portValid=0
> SIOCGIWRANGE: WE(compiled)=22 WE(source)=16 enc_capa=0xf
> capabilities: key_mgmt 0xf enc 0xf
> WEXT: Operstate: linkmode=1, operstate=5
> Own MAC address: 02:22:cf:ef:aa:dd
> wpa_driver_wext_set_wpa
> wpa_driver_wext_set_key: alg=0 key_idx=0 set_tx=0 seq_len=0 key_len=0
> wpa_driver_wext_set_key: alg=0 key_idx=1 set_tx=0 seq_len=0 key_len=0
> wpa_driver_wext_set_key: alg=0 key_idx=2 set_tx=0 seq_len=0 key_len=0
> wpa_driver_wext_set_key: alg=0 key_idx=3 set_tx=0 seq_len=0 key_len=0
> wpa_driver_wext_set_countermeasures
> wpa_driver_wext_set_drop_unencrypted
> Setting scan request: 0 sec 100000 usec
> Added interface wlan1
> Daemonize..
> [root@armadillo840-0 (pts/0) /etc/config]#
>
>
> 以上よろしくお願い致します
>
>
>
>
>
> > 大塚と申します。
> >
> > yoshizu 様のこの話題は興味があって拝見しておりました。
> >
> > > 話は少しずれてしまうかもしれませんが、wpa2エンタープライズでのwpa_supplicant.conf
> > > の記述方法が判る方はおられないでしょうか?
> >
> > wpa_supplicant の本家サイトの example の
> > https://w1.fi/cgit/hostap/plain/wpa_supplicant/examples/wpa2-eap-ccmp.c…
> > とか、Ubuntu の wpa_supplicant.conf の manual の example
> > http://manpages.ubuntu.com/manpages/vivid/man5/wpa_supplicant.conf.5.ht…
> > などでは情報として足りないでしょうか?
> >
> > >
> > > 実際に接続できたという方がいましたら、wpa_supplicant.confを内容を
> > > 教えていただければ幸いです。
> >
> > 大分以前に hostapd と FreeRADIUS でアクセスポイント を仕立ててみて
> > 上記の wpa2-eap-ccmp.conf そのままの設定内容で接続できました。
> > (そのときはアクセスポイントもクライアントも RT2870 の USB Wifi を使いました。)
> >
> > ただ、ベンダー製のアクセスポイントだと認証の実装によって接続できるできないがあるようで
> > wpa_supplicant の本家サイトにある相互運用性テストの表
> > https://w1.fi/cgit/hostap/plain/wpa_supplicant/eap_testing.txt
> > で tested successfully になっていないものは接続できないかもしれません。
> > (このテスト表も少し古いので現在は状況がもう少し改善しているかもしれません。)
> >
> > すでにご存知のようなことばかりでお役に立たなかったらすみません。
> >
> >