OpenWrtでEAP-SIMを使う

お久しぶりです。303ZTを使い始めたもののいちいち充電めんどくせえなということで昔使ってたWZR-HP-AG300HにUSBで繋いでついでに充電させる方法を思いつきました。

これならデスクトップにはおとなしくイーサネットで繋げるし充電も気にしなくていいし一石二鳥です。

が、せっかくOpenWrt使うならなんか周りの奴らと違うことがしてえなということでWPA2エンタープライズのEAP-SIMを使ってみることにしました。

一般のご家庭向けEAP-SIM認証Wi-Fi というページを見て知ったのですが、freeradiusを使えば簡単に実現できそうです。

最初にOpenWrt EAP freeradiusとかでググるとMSCHAPとかTLSとかは出てくるですがSIMは出てきません。

おそらくこれはEAP-SIMのパッケージが公式で提供されていないからだと思います。

公式のfreeradius3パッケージのMakefileですが、バッチリ消されています。

そこで今回はクロスコンパイルによりEAP-SIMをサポートしたfreeradius3パッケージを作成するところから始まります。

入っているOpenWrtはar71xx/genericな18.06なので別のバージョンの人はなんとかしてください。(どうでもいいけど今年の3月ごろは15.05が最新だと思ってました…)

まずSDKをダウンロードします。

https://downloads.openwrt.org/releases/18.06.1/targets/ar71xx/generic/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64.tar.xz

これを展開して適当なところに置いときます。

ついでにSDKになぜかopensslが入ってなかったりfeedsがガバガバだったりしてSDK単体で完結できないのでOpenWrt本体もダウンロードしていろいろします。

次にSDKのディレクトリに移っていろいろします

これでbin/packages/mips_24kc/packages/にいろいろできると思います。

めんどいって人は僕がビルドしたモノを→freeradius3.zip

あとはOpenWrtにsshとかでログインして

で依存パッケージとかもいろいろ入ります※正しいやり方かは不明

でWPAエンタープライズに対応させます

あとは基本一般のご家庭向けEAP-SIM認証Wi-Fi のとおりです。

SIMの読み出しとかはそっちを見せてもらってください。

Archなら明示的にpython2.7を使う必要があります。

cd /etc/freeradius3/

nano mods-enabled/eap

2箇所いじります

nano mods-config/files/authorize

ここに./pySim-gen-eapsim-user.pyの結果を入れてください。

あとはLuciを開いて

無線→無線LANセキュリティでWPA2-EAPにして認証サーバーを127.0.0.1、秘密鍵をtesting123(変えたならそれ)にして保存&適用

スタートアップ→radiusdを再起動

で動くはずです。

他にもなにかした気がするんですが、1日戦ってたせいで忘れました…

動かんとかあったらコメントください

もしかしたらWindowsのEAP-SIMとは相性が悪いかもしれません。

→WindowsのEAP-SIMはユーザー名(*@mmc*.mnc*.3gppnetwork.orgみたいなやつ)の先頭を1にする場合と0にする場合の2種類送ってくるようです。なのでバッドノウハウ感ありますが2種類のユーザーを登録することで正常に認証できるようになりました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です