Raspberry Pi 4 を WPA2-EAP なネットワークに繋ぐ
GUIで設定できなかったり、ググった内容が古かったりとかいろいろ苦労したのでメモ
環境
項目 | 値 |
---|---|
ボード | Raspberry Pi 4 Model B / 1GB |
OS | Raspbian GNU/Linux 10(Raspbian Buster)(Linux kernel 4.19.97-v7+) |
設定の流れ
- wpa_supplicant でアクセスポイントの認証情報の設定を行う。
- dhcpcd でIPアドレスの設定を行う。
- 再起動する。
設定
WPA2-EAP の設定
wpa_supplicant の設定
設定ファイルは /etc/wpa_supplicant/wpa_supplicant.conf
です。はじめに元に戻せるようにオリジナルをコピーしておきます。
cd /etc/wpa_supplicant sudo cp wpa_supplicant.conf wpa_supplicant.conf.orig
コピー出来たら編集する前にパスワードをハッシュ化します。
read -s pass (password入力) echo -n "$pass" | iconv -t utf16le | openssl md4
出力された16バイトのハッシュ値をクリップボードにコピーしておきます。
次に好きなエディタで /etc/wpa_supplicant/wpa_supplicant.conf
を編集します。
vim wpa_supplicant.conf
以下を末尾に追記します。
network={ ssid="<接続先のSSID>" proto=RSN key_mgmt=WPA-EAP pairwise=CCMP auth_alg=OPEN eap=PEAP identity="<ユーザー名>" password=hash:<パスワードハッシュ値> phase1="peaplabel=0" phase2="auth=MSCHAPV2" priority=1 }
各項目の説明に関しては下記の記事が参考になります。
パスワードのハッシュ化に関して
MD4を使用しているため、気休め程度にとらえておきましょう。環境によるところかもしれませんが、今回はNTLMで使用されるNTハッシュ(パスワードのUTF-16LE表現のMD4ハッシュ)でないといけないらしく、説明の通りとなっています。
IPアドレスの設定
IPアドレスの管理には dhcpcd というサービスが使われており、設定ファイルは /etc/dhcpcd.conf
となります。
従来の設定ファイル /etc/network/interfaces
は使用しません。
はじめに元に戻せるようにオリジナルをコピーしておきます。
cd /etc sudo cp dhcpcd.conf dhcpcd.conf.orig
コピー出来たら編集していきます。
vim dhcpcd.conf
下記内容を末尾に追記します。
interface <無線LANインターフェース名> env ifwireless=1 env wpa_supplicant_driver=wext,nl80211
静的IPアドレスを使用する場合はさらに下記内容を追記します。
static ip_address=<IPアドレス/CIDR> static routers=<デフォルトゲートウェイIPアドレス> static domain_name_servers=<DNSサーバIPアドレス> static domain_search=<検索ドメイン> noipv6
再起動
上記の設定を終えたら再起動します。
sudo reboot
躓いたところ
古い情報をもとに設定を行っていたところ、目的のネットワークに接続できるものの、DHCPサーバを見つけられずネットワークに参加できない状態になりました(リンクローカルアドレス(169.254.xxx.xxx)が割り当てられた状態)。その後 Raspbian Buster 向けの情報(dhcpcd.confの設定)を見つけて無事設定できました。