パスワードを忘れた? アカウント作成
489174 journal

uruyaの日記: RADIUSサーバを立てて無線LANのWPA環境を構築した記

日記 by uruya

RADIUSサーバを立てて無線LANのWPA環境を構築した記

目的:無線LAN環境が"とりあえず"のWEPで放置されており、非常によろしくないのでWPAに変更する。EAP-PEAP認証+AES暗号を採用。

1) Debianサーバ機に認証用のRADIUSサーバを立てる。

FreeRadiusを使います。stableバージョンをダウンロード→解凍→ビルド。
wget ftp://ftp.freeradius.org/pub/radius/freeradius-1.1.6.tar.bz2
tar jxf freeradius-1.1.6.tar.bz2
cd freeradius-1.1.6/
./configure
make
sudo make install

これでインストール完了。次に設定に入る。NAS設定とユーザ設定の二種類が必要。NAS(Network Access Server)はこの場合、無線アクセスポイントのこと。

2) NAS設定。

RADIUSでは、IPアドレスと「共有シークレット」という情報(NASと共有する文字列)の組によってNASとの会話を行う。設定ファイルが下記の場所にあるので、これを書き換えて設定する。
sudo vi /usr/local/etc/raddb/clients.conf

設定ファイルには、すでに127.0.0.1の設定がされている。コメントを読むと「これテスト用だから、いらないんなら消しといた方がいいよ」と書いてあるけど、まあリスク保有してテスト用に生かしておく。
必要なAPについての情報を追加。共有シークレットは記号も混ぜた難読の値にする。shortnameはIPアドレスで指定したNASの別名として使う。適当に設定。
client 192.168.xxx.xxx {
                secret = xxxxxxxx
                shortname = xxxxxxxx
}

3) ユーザ設定。

認証ユーザを登録する。
sudo vi /usr/local/etc/raddb/users

デフォルトで/etc/passwdにあるユーザは許可するようになっていて、radtestコマンドで確認するとたしかにacceptされる。けどPEAP認証ではちゃんと設定しないと認証できないみたいなので(設定の問題?)ユーザを切る。
xxxxxxxx Cleartext-Password := "xxxxxxxx"
                Service-Type = Framed-User,
                Framed-Protocol = PPP

4) 認証方式にEAP-PEAPを使用できるように設定。

RADIUSのEAP-PEAP設定とEAP-TLS設定がコメントアウトされているので、有効にする。EAP-PEAPを使うにはEAP-TLSの設定も生かす必要がある。その他MS-CHAPの設定なども行う。このあたりの設定は、深く調べないとなかなかぴんとこないのでまるっと設定値をパクってしまう。
FreeRADIUSでWPAの認証を行う方法 EAP-PEAP (Microsoft PEAP)
sudo vi /usr/local/etc/raddb/radiusd.conf
sudo vi /usr/local/etc/raddb/eap.conf

5) RADIUSサーバ起動スクリプトを登録。

起動スクリプトを用意して、各ランレベルに登録。
sudo vi /etc/initd/radiusd
sudo update-rc.d radiusd defaults

起動スクリプトはこのサイトからパクった。
LINUX =TSUBO 20=

6) APの設定。

うちの無線APはPLANEXのBLW-54CW。設定手順どおりに。

セキュリティモード : WPA RADIUS
暗号化 : AES : … 暗号強度は TKIP < AES
RADIUSサーバ : 192.168.xxx.xxx : … RADIUSサーバのIPアドレス
RADIUSポート : 1812 : … wellknown。当然ながら外部からサーバにつながらないようにしておく
共有キー : xxxxxxxx : … 共有シークレットを設定
キーの更新 : 3600 : … 無線暗号化キーの更新間隔。デフォルト値

7) クライアントの設定。

LANカードは同じくPLANEXのGW-NS54CW。んで、WPAについては「対応しているけど保障はしません」というやつ。手順も公開されていないので、カンで設定。PEAP認証はサーバ認証を証明書で行うのだが、クライアントマシンにはSSL用のオレオレ証明書がすでにインストールされているので、その手順は飛ばした。

認証方式 : WPA
暗号化 : PEAP
入力の方法 : AES
Certificate on this computer : クライアント証明書 : … PEAPではクライアント認証はチャレンジ-レスポンス方式なので不要
Validate server certifivate : サーバ証明書 : … オレオレ証明書を使用
Login Server : 192.168.xxx.xxx : … RADIUSサーバのIPアドレス
User Name : xxxxxxxx : … RADIUSに追加したユーザ名
Password : xxxxxxxx : … RADIUSに追加したパスワード

8) しばし格闘。

設定中はデバッグモード(-Xオプション)でデーモン起動すると、詳細なログが出る。
sudo /usr/local/sbin/radiusd -X

9) 接続完了!

わりとすんなり行きました。先達の知識をさっくり拝借できるネットって偉大。
あと設定ファイルにパスワードを平文で書く必要があるので、とりあえず600にしたほうがいいのかな。デフォルトが640なので十分か。

追記 : ポート1812をlistenしているプロセスがあると、chkrootkitが「warningです!warningです!slapperワームがいるです!」と報告してくる。はいはい、誤報です。RADIUSポートを変えると出なくなる。chkrootkit君はSMTPoverTLSでも「bindshellがあるです!」って言って来るよね。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

皆さんもソースを読むときに、行と行の間を読むような気持ちで見てほしい -- あるハッカー

読み込み中...