27
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ラズパイを大学の無線LANに接続する

Last updated at Posted at 2018-10-04

はじめに

 ラズパイを手にして最初にぶち当たる壁。それがwifiの設定だと思っています。GUIによる操作だったら,手元にあるPCと同じ手順で繋げられますが,CUIだとなかなかに面倒臭い。さらにLinux苦手だったらなおさらです。最近研究室で,大学の無線LANに改めて繋ぐ機会があったので,今回記事にしてみました。詳しい方いれば是非コメントをください。

ターゲット(目標)

  • 大学の無線LANに繋げる!
  • せっかくだし色々と勉強したい!

事前準備

 ラズパイ側の環境は次の通り。

名称 詳細
ラズパイのモデル Raspberry Pi 3 Model B
SDに入っているOS RASPBIAN
OSのバージョン June 2018(kernel: 4.14)

 ターゲットとなる大学の無線LANについても。他の情報はあとで追記

方式 詳細
認証方式 WPA2エンタープライズ
暗号化方式 AES(共通鍵暗号方式)

とりあえず,これらの情報を頭に入れていざチャレンジ!!

実際にやってみた

 事前準備より,大学の無線LANの認証方式は,WPA2エンタープライズだとわかっています。この方式は,企業や大学といった大きな機関で用いられていることが多く,言うところの認証サーバが,ユーザ名やパスワードでこちらを認証してくるタイプ。実はこの認証がラズパイにとっては相性が悪く,手間がかかるようです。繋ぐためにはこの無線LANに関する情報が足らなさそうなので,とりあえず調べてみました。

sudo iwlist wlan0 scan

 ターミナルを開き,このコマンドで全てのwi-fiとその詳細情報をかき集めることができます。ずらーっとそれなりの数が出てきますが,とりあえずターゲットだけにフォーカスしてみましょう。

          Cell 02 - Address: XX:XX:XX:XX:XX:XX
                    Channel:11
                    Frequency:2.462 GHz (Channel 11)
                    Quality=63/70  Signal level=-47 dBm  
                    Encryption key:on
                    ESSID:”YYYYYYYYYY”
                    Bit Rates:5.5 Mb/s; 11 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s
                              36 Mb/s; 48 Mb/s; 54 Mb/s
                    Bit Rates:6 Mb/s; 9 Mb/s
                    Mode:Master
                    Extra:tsf=0000000000000000
                    Extra: Last beacon: 60ms ago
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : CCMP
                        Pairwise Ciphers (1) : CCMP
                        Authentication Suites (1) : 802.1x

とりあえず重要なのは,下の4行分の IE: 部分でしょうか。(一部分を変えて載せています)ESSIDはネットワークの名前。下から4行目の IE: IEEE 802.11i/WPA2 Version 1 はWPA2のことですね。さらに下の CCMP これはAESと殆ど同じ暗号形式だそうです。(厳密には違うらしいけど)
 とりあえず,なんとなく情報は掴んだので実際に無線LANの設定をしてみましょう!ラズパイを起動させ,ターミナルを開きます。

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

 viエディタでも良いですが,私はまともに使いこなせないので,nanoでやっています。ちなみにsudo権限でないと,編集内容を保存することができないので要注意です。
 この wpa_supplicant は,IEEE802.1X/WPAを無線LANクライアントに提供するツールだそうです。開いてみると,既に自宅でWi-Fiを繋げている場合は,おそらくそのWi-Fiに関するidやらpwやらが書いてあるはずです。特に上段部の ctrl_interface=/var/run/wpa_supplicant とかは消さずに無視して,その下の空いているところに,繋げたい大学の無線LANに関する情報を書き込んでいきます。書き込むべき内容は次の通りです。

network={
        ssid="繋げたい無線LANの名前"
        priority=1
        key_mgmt=WPA-EAP
        pairwise=CCMP
        auth_alg=OPEN
        eap=PEAP
        identity="ログインできるID"
        password="そのIDのPW"
        phase1="peaplabel=0"
        phase2="auth=MSCHAPV2"
}

 日本語のところは,自分で書き込みましょう!その他の項目は以下の通りです。

形式 詳細
priority 複数ネットワーク下の優先度。大きい数ほど優先度高
key_mgmt 認証方式。WPA2エンタープライズ
pairwise 暗号化方式。AESだがCCMPで表記
auth_alg 認証アルゴリズム。WPA/WPA2はOPEN
eap EAPメソッド。認証方式でphase2へつながる
phase1 外部認証。0というのはバージョンっぽい
phase2 内部認証。VPNやWPA2の認証としてよく使うMS-CHAPv2

 これらの用語を調べていると,認証サーバはRADIUSサーバらしいです。とりあえず,大学のwifiで繋ぎたい!という場合はこれだけ書き加えればOKなはずです。無事にすべて書くことができたら,一度ラズパイを再起動しましょう!

sudo reboot

 私はこれだけでとりあえず大学の無線LANには繋がりました!!これからの研究に熱が入ります。

ラズパイ4の場合(2022年6月)

 時代はラズパイ4となったので,こちらについても追記します。

名称 詳細
モデル Raspberry Pi 4 Model B
OS Raspberry Pi OS (64-bit)
リリース日 April 4th 2022 (kernel version: 5.15)
URL https://www.raspberrypi.com/software/operating-systems/

 /etc/wpa_supplicant/wpa_supplicant.conf のファイルについては,上記と同じです。これに加えて /etc/dhcpcd.conf のファイルの最終行の下に下記を追加してください。

interface wlan0
env ifwireless=1
env wpa_supplicant_driver=wext,nl80211

 一応,再起動してからインターネットブラウザを開いてみましょう。

追記(2018年10月)

 初投稿後,ありがたいことにコメントの方をいただきまして,
Q. /etc/network/interfacesのファイルは書き換えなくて良いの?
というご質問をいただきました。実はこの件,私の研究室でも少し話題に上がりまして,その際は書き換えたらできるようになったというものでした。どうやら書き換える必要はなさそうですね。私ももう少し調べてみる必要がありそうです。

参考文献

27
25
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?