経緯
Wi-Fi接続にてユーザ単位の認証を行い、端末側もネットワークの正当性を確認できるようにするため、WPA2エンタープライズ(WPA2-EAP)の環境を整備した際の記録です。
WPA2-EAPの認証方式には複数ありますが、ここでは普及度の高いPEAPを用いました。認証方式について詳しくは、以下のページが参考になります。
筆者の環境
- Raspberry Pi
- Raspberry Pi 3 Model B Rev 1.2
- Raspbian GNU/Linux 9.4 (stretch)
- Wi-Fiアクセスポイント
- TP-LINK Archer C9 (ブリッジモード)
- Wi-Fiクライアント
- macOS Catalina
- iOS 13
- Android 10
freeradius の設定
Raspberry PI の Wi-Fi をオフにする場合は、以下のコマンドを実行します。
sudo iwconfig wlan0 txpower off
RADIUSサーバのfreeradiusをインストールします。
sudo apt-get install freeradius
sudo systemctl enable freeradius
EAPで用いるプロトコルを、以下の通り設定します。
eap {
...
default_eap_type = peap
...
}
ログ(/var/log/freeradius/radius.log
)に認証の結果が表示されるように、以下の通り設定します。
log {
...
auth = yes
...
}
RADIUSクライアント(ここではWi-Fiアクセスポイント)からのアクセスを許可するため、設定ファイルに以下を追加します。
client private-network {
ipaddr = 192.168.0.0/24 # RADIUSクライアントのアドレス、もしくはネットワーク
secret = somerandomtext # 任意のランダムな文字列
}
認証するユーザアカウントを、以下のように設定します。DEFAULT
より上に記載するよう注意してください。Cleartext-Password
は平文による記載となるので望ましくはありませんが、取り急ぎ動作確認のために指定しています。
yourusername Cleartext-Password := "yourpassword"
freeradiusを再起動します。
sudo systemctl restart freeradius
Wi-Fiアクセスポイントの設定
Wi-Fiアクセスポイントに以下の設定をします。
- セキュリティ
- WPA2-エンタープライズ AES
- RADIUSサーバIP
- Raspberry PiのIPアドレス
- RADIUSポート
- 1812
- RADIUSパスワード
-
/etc/freeradius/3.0/clients.conf
に設定したsecret
-
以上で、WPA2エンタープライズによるWi-Fi接続ができるようになりました。
MACアドレスによる認証を行いたい場合
以下のページに参考になる情報があります。