Raspberry Pi3をWPA2-EAP(PEAP)の無線LANに接続する

5か月ぶりの投稿なのに『今回はまぁまぁ早い投稿だなw』とか素で思ってしまったダメ人間の るーふぁす です。

さて、今回は今更ながら、購入したRaspberry Pi3 ModelBを無線LANにWPA2-EAP(PEAP)で接続してみたいと思います。

環境と前提条件

こちらが実際に設定を行った環境の構成は以下の通りです。

ハード Raspberry Pi3 ModelB
OS raspbian jessie lite (2016-05-27)
無線LANアダプタ BUFFALO WLI-UC-GNM2

なお、無線LANアダプタは、Raspberry Pi3 ModelBでは内蔵のもの(wlan0)があるので速度などに不満が無ければ必要ありません。

また、前提としてOSのインストールは既に済んでいるものとして話を進めます。

目的

Raspberry Pi をWPA2-EAP(PEAP)の無線LANに接続し、ネットワークないしインターネットに接続可能にする。

Raspberry Piを無線LANに接続する

これからwpa_supplicantを用いてWPA-EAP(PEAP)で接続をする場合の設定を行うわけですが、/etc/wpa_supplicant/wpa_supplicant.conf の内容以外はWPA-PSKと同じです。また、ドライバについては既に適切なものが入っているものとします。

インターフェース名を調べる

まず、次のコマンド等でインターフェースの名前を調べます。

$ iw dev
または
$ ip link

を実行します。

今回は無線のインターフェースだけが欲しいのでiw devを実行してみます。

$ iw dev
phy#1
        Interface wlan1
                ifindex 5
                wdev 0x100000001
                addr 67:89:ab:cd:ef:01
                type managed
                channel 5 (2432 MHz), width: 20 MHz, center1: 2432 MHz
phy#0
        Interface wlan0
                ifindex 4
                wdev 0x1
                addr ab:cd:ef:01:23:45
                type managed

こちらの環境では、無線LANアダプタを使用しているのでwlan1が表示されていますが、アダプタを付けていない場合はRaspberry Pi3に内蔵されているwlan0のみが表示されると思います。

なお、以降の設定では無線インターフェースはwlan1を使うものとします。なので、こちらの設定を参考に、内蔵のwlan0やその他の無線インターフェースに対して設定を行う場合はwlan1の部分を適切なインターフェース名に置き換えて設定を行って下さい。

インターフェースの有効化(不要の場合有り)

次に先程のインターフェースが有効になっているか確かめるために、ifconfigで状況を確認してみます。

$ ifconfig
eth0      Link encap:Ethernet  HWaddr bc:23:45:67:89:ab  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6270 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11428 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:378770 (369.8 KiB)  TX bytes:16612609 (15.8 MiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:1 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:576 (576.0 B)  TX bytes:576 (576.0 B)

上記の様にiw devで見つかったにも関わらず、ifconfigの実行結果上に、設定したい無線LANインターフェスが存在しない場合は次のコマンドを実行してインターフェースを有効化します。

# ip link set [インターフェース名] up
こちらの場合、有効化したいインターフェースはwlan1なので次の様になります。
# ip link set wlan1 up

再度ifconfigを実行し、目当てのインターフェスが立ち上がっているか確認します。

$ ifconfig
eth0      Link encap:Ethernet  HWaddr bc:23:45:67:89:ab  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6270 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11428 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:378770 (369.8 KiB)  TX bytes:16612609 (15.8 MiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:1 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:576 (576.0 B)  TX bytes:576 (576.0 B)

wlan1     Link encap:Ethernet  HWaddr 67:89:ab:cd:ef:01  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

wpa_supplicant.confの編集

確認が取れたら、いよいよwpa_supplicant.confを編集します。

繰り返しになりますが、WPA2-EAP(PEAP)の場合の設定ですのでご注意下さい

fast_reauth=1

network={
        ssid="ExampleESSID"
        scan_ssid=1
        key_mgmt=WPA-EAP
        eap=PEAP
        identity="hoge"
        password="hoge_password"
        phase1="peaplabel=0"
        phase2="auth=MSCHAPV2"
        priority=10
}

無線AP(またはルータ)に接続する

wpa_supplicant.confの編集が済んだら、無線APあるいは無線LANルータに接続する為に以下のコマンドを実行します。

# wpa_supplicant -B -D nl80211,wext -i wlan1 -c /etc/wpa_supplicant/wpa_supplicant.conf

$ iw インターフェース名 linkを実行して接続に成功しているか確認します。

接続されていない場合は、次の様に表示されます。

$ iw wlan1 link
Not connected.

接続に成功していれば、次の様に表示されます。

$ iw wlan1 link
Connected to 12:34:56:78:9a:bc (on wlan1)
        SSID: ExampleESSID
        freq: 2432
        RX: 22175541 bytes (168337 packets)
        TX: 34126 bytes (405 packets)
        signal: -41 dBm
        tx bitrate: 65.0 MBit/s MCS 7

        bss flags:      short-preamble short-slot-time
        dtim period:    2
        beacon int:     100

IPアドレスの取得

無線AP或いはルータに正常に接続が出来れば、後はIPアドレスを取得もしくは設定することでネットワーク及びインターネットに接続することが可能になります。今回はルータのDHCPサーバ機能を使うものとして、次のコマンドを実行してIPアドレスを取得します。

# dhclient インターフェース名
つまり、こちらの環境の場合次の様になります。
# dhclient wlan1

これでIPアドレスが無事に取得出来れば、問題なくネットワークに繋がるはずです。インターネットに接続しているのであれば、ping 8.8.8.8 などで接続出来るか確認を取ってみて下さい。

起動時に自動的に無線LANに接続出来る様にする

また、起動時に無線LANに接続出来るように/etc/network/interfaces を編集しておきましょう。 (eth0 側の設定は適当ですw)

auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet manual

auto wlan1
allow-hotplug wlan1
iface wlan1 inet dhcp
        wpa-conf  /etc/wpa_supplicant/wpa_supplicant.conf

お疲れ様でした。今回は以上となります(;^^)
ちなみに…今回はRaspberry Pi3をブリッジ(brctlではない)を使って無線LANコンバータにする方法を書く予定だったのですが…無線LAN接続の部分を入れたらやたらと長くなってしまったので、無線LANコンバータの方は次回に回すことにしました(;-_-)