EAP-PEAP認証方式を導入

今回は、ラスベリーパイに導入したOpenWrtとRADIUSサービスを導入し、EAP-PEAP認証でWi-Fi(無線LAN)に接続していきたいと思います。



EAP-PEAP認証とは

Server証明書 + ユーザID / パスワード などを用いる認証方式


構成イメージ図


準備機器

・ノートPC(Windows 10)
・Raspberry Pi 3 model B:OpenWrt
・無線LANアダプタ(WN-G300UA)
・仮想環境 Ubuntu(Ver 20.04):RADIUS Server
 ※VirtualBoxを使用
・ルータ
・スマートフォン


RADIUS 導入(仮想環境:Ubuntu)

◇ ソフトウェアをインストール

■ アップデート
apt update

■ freeradiusソフトウェアをインストール
apt -y install freeradius

■ バージョン確認(FreeRADIUS Version 3.0.26)
freeradius -v


◇ 各Confファイルのバックアップを取得

■ radiusd.conf / clients.conf ファイルをバックアップ
cd /etc/freeradius/3.0/;ll
cp -p radiusd.conf radiusd.conf_`date "+%Y%m%d"`;ll radiusd*
cp -p clients.conf clients.conf_`date "+%Y%m%d"`;ll clients*

■ authorize ファイルをバックアップ
cd /etc/freeradius/3.0/mods-config/files;ll
cp -p authorize authorize_`date "+%Y%m%d"`;ll authorize*

■ ca.cnf / server.cnf ファイルをバックアップ
cd /etc/freeradius/3.0/certs;ll
cp -p ca.cnf ca.cnf_`date "+%Y%m%d"`;ll ca*
cp -p server.cnf server.cnf_`date "+%Y%m%d"`;ll server*


◇ RADIUSログ設定

cd /etc/freeradius/3.0/;ll
vim radiusd.conf
※viコマンドのブログ:https://note.com/tango9512357/n/n5907577491e5

【Before】
auth = no           # 認証時のログ出力設定
auth_badpass = no   # 認証失敗時のログ出力
auth_goodpass = no  # 認証成功時のログ出力

【After】
auth = yes          # 認証時のログ出力設定
auth_badpass = yes  # 認証失敗時のログ出力
auth_goodpass = yes # 認証成功時のログ出力


◇ クライアントの通信許可設定

vim clients.conf

<Add>
client TestWiFi {
        ipaddr = 	# 接続許可のIPアドレス(ex:0.0.0.0/0)
        secret = 	# RADIUS Clientとの通信時のパスワード
}


◇ ユーザ名 / パスワード 設定

vim users
※Wi-Fi(無線LAN)接続時に使う

【変更前】
#steve   Cleartext-Password := "testng"

【変更後】
steve   Cleartext-Password := "testing123"


◇ ca証明書設定

cd /etc/freeradius/3.0/certs;ll
vim ca.cnf

【Before】
default_days            = 60

【After】
default_days            = 500


◇ サーバー証明書設定

vim server.cnf

【Before】
default_days            = 60

【After】
default_days            = 500


◇ 証明書作成

make all;ll


◇ RADIUSサービスを起動

■ RADIUSサービスが起動しているか確認
systemctl status freeradius

■ 以下のどれかを実行
起動している場合 :systemctl restart freeradius
起動していない場合:systemctl start freeradius

■ RADIUSサービスが起動しているか確認
systemctl status freeradius


◇ RADIUS ServerのIPアドレスを取得

■ 以下のどれかを実行し、IPアドレスをメモしておく
ifconfig
ip address


OpenWrt 導入(Raspberry Pi)

◇ ソフトウェアをインストール

未導入の場合は、「ラズパイ3にOpenWrtを導入」を参照


◇ ラズベリーパイにSSH接続(既に接続していればSKIP)

■ 無線LANアダプタをラズベリーパイに接続する。
■ TeraTermを開いてログインする。

初期値のIPアドレスは「192.168.1.1」になっている
※ ラズベリーパイを操作できればTeraTermを利用しなくてもよい


◇ 時刻設定

cd /etc/config;ll
vim system

<Before>
config system
        option hostname 'OpenWrt'
        option timezone 'UTC'

<After>
config system
        #option  hostname 'OpenWrt'
        #option  timezone 'UTC'
        option hostname 'TestWi-Fi'	# 任意のホスト名を記載
        option timezone 'JSP-9'


◇ 各Confファイルのバックアップを取得

■ network / system / wireless  ファイルをバックアップ
cp -p network network_`date "+%Y%m%d"`;ll network*
cp -p wireless wireless_`date "+%Y%m%d"`;ll wireless*
cp -p dhcp dhcp_`date "+%Y%m%d"`;ll dhcp*


◇ ネットワーク設定

vim network

<Before>
config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'
        option ip6assign '60'

<After>
config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr ''	※自身のPrivate IPaddress
        option netmask '255.255.255.0'
        option gateway ''	※自身のPrivate IPaddressのGateWay
        list dns ''			※自身のPrivate IPaddressのGateWay

【※xxxxxxx】の箇所は、自信のネットワーク環境に合わせて変更が必要


◇ 再起動

reboot


◇ ラズベリーパイにSSH接続

LANケーブルをスイッチングハブと繋ぎなおす。
※GateWayに通信できればルータでもよい

TeraTermを開いて、networkファイル編集時に「option ipaddr」で設定したのIPアドレスにSSH接続する。
※ラズベリーパイを操作できればTeraTermを利用しなくてもよい


◇ パーティション設定

■ 以下のパーテーション設定を参照
https://note.com/tango9512357/n/nf4d81fdb75ee


◇ パッケージをインストール

アップデート
opkg update

■ 無線LANアダプタのドライバーをインストール
※ WN-G300UAのチップセットは 8192cu
opkg install kmod-rtl8192cu
opkg list-installed kmod-rtl8192cu

■ IEEE 802.1x/WPA/EAP/RADIUSなどを含んだパッケージをインストール
opkg list-installed wpad*
opkg remove wpad-basic-mbedtls
opkg install wpad
opkg list-installed wpad*


◇ ワイヤレス設定

vim /etc/config/wireless
※pathが usb と記載している方を編集

<Before>
config wifi-device 'radio1'
        option type 'mac80211'
        option channel '1'
        option band '2g'
        option htmode 'HT20'
        option disabled '1'	

<After>
config wifi-device 'radio1'
        option type 'mac80211'
        option channel '1'		#任意のチャネル数を記載
        option band '2g'
        option htmode 'HT40'
        option disabled '0'		#0:有効化、1:無効化
        option txpower '10'
<Before>
config wifi-iface 'default_radio1'
        option device 'radio1'
        option network 'lan'
        option mode 'ap'
        option ssid 'OpenWrt'
        option encryption 'none'

<After>
config wifi-iface 'default_radio1'
        option device 'radio1'
        option network 'lan'
        option ifname 'wlan'
        option mode 'ap'
        option ssid 'TestWi-Fi'		# 任意のSSIDを記載
        option encryption 'wpa2'	# EAP-PEAP認証方式
        option auth_server ''		# RADIUS ServerのIPアドレス
        option auth_secret ''		# RADIUS Serverとの通信時のパスワード


◇ 起動時に、自動実行設定

vim /etc/rc.local

<Before>
exit 0

<After>
wifi
exit 0


◇ 再起動

reboot


◇ Wi-Fi(無線LAN)接続確認

■ スマートフォンで接続確認

Wi-Fi(無線LAN)を検索


認証方式を設定


ユーザ名 / パスワード を入力


Wi-Fi(無線LAN)の接続を確認


外部サイトにアクセス


番外編(DHCP設定)

出先などで別機器に接続して利用する際、手動設定だと再設定が必要な為、あらかじめDHCP設定をしておき、挿し元の機器に割り振られているネットワーク部のIPアドレスを自動で割り振る。


◇ ラズベリーパイにSSH接続

LANケーブルをスイッチングハブと繋ぎなおす。
※GateWayに通信できればルータでもよい

TeraTermを開いて、networkファイル編集時に「option ipaddr」で設定したのIPアドレスにSSH接続する。
※ラズベリーパイを操作できればTeraTermを利用しなくてもよい


◇ ネットワーク設定

cd /etc/config;ll
vim network

<Before>
config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '192.168.100.173'
        option netmask '255.255.255.0'
        option gateway '192.168.100.1'
        list dns '192.168.100.1'

<After>
config interface 'lan'
        option device 'br-lan'
        option proto 'dhcp'


◇ 再起動

reboot


◇ RADIUSサーバのIPアドレス変更

■ OpenWrt と RADIUSサーバのIPアドレスを検索
※参考ブログ:プライベートIPaddress 検索

■ ブラウザを開きログイン
※参考ブログ:ブラウザからログインできるかを確認

■ RADIUSサーバのIPアドレス設定を変更

※利用しているSSIDを選択
※一番下にスライドし、設定を保存する。


◇ Wi-Fi(無線LAN)接続確認

別機器に接続し、Wi-Fi(無線LAN)が接続でき、問題なくサイト閲覧ができるかを確認する。


※関連資料

・ラズパイ3にOpenWrtを導入
https://note.com/tango9512357/n/nc429ab9c8131

・viコマンド
https://note.com/tango9512357/n/n5907577491e5

・プライベートIPaddress 検索
https://note.com/tango9512357/n/n57147de9edd6