はじめに
ラズパイを手にして最初にぶち当たる壁。それが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のファイルは書き換えなくて良いの?
というご質問をいただきました。実はこの件,私の研究室でも少し話題に上がりまして,その際は書き換えたらできるようになったというものでした。どうやら書き換える必要はなさそうですね。私ももう少し調べてみる必要がありそうです。