wpa_supplicantの設定

2010-07-16

wpa_supplicantの設定

なんというか分かりにくいのでまとめてみた。

1. インストール

これは、超簡単。Redhat系なら

1
yum install wpa_supplicant

こんだけ。 debianとかでもapt-getでいけるでしょう。   起動&終了は、以下のコマンド

1
2
/etc/init.d/wpa_supplicant start  -> 起動
/etc/init.d/wpa_supplicant stop -> 終了

 

2. 設定ファイルの種類

wpa_supplicantの設定は、2つ! linuxのネットワーク設定ファイルも含めて、合計3つ設定すれば使える。(きっと・・・)

1) /etc/sysconfig/wpa_supplicant

このファイルで、起動オプションを指定する。 これが、間違っているとそもそも起動が出来ない。 肝の設定は3つだけ。

●インターフェースの指定

要するにiwconfigしたときに表示されるインターフェース名です。大抵はwlan0, ath0でしょう。

1
INTERFACES="-i wlan0"

 

●ドライバー種別の指定

かなり指定できるドライバの種類は豊富ですが、主要なものは下記の通り

1
DRIVERS="-D wext"

ドライバー説明

wext
通常はコレを指定する

madwifi
Atheros社製チップセットの無線LANデバイス用ドライバ

ndiswrapper
windows用ドライバをlinuxで動かすndiswrapper  

●ログ出力その他の指定

デフォルトでは、ログ出力と出力先ファイルの指定が書かれている ひとまず動作するまではそのまま、実際につながった後はオフにしても問題ない。 ※-dオプションを追加すると、詳細なログが出ます。さらに詳しく見るには-dd

1
OTHER_ARGS="-u -f /var/log/wpa_supplicant.log"

以上で起動オプションの設定は終わり。 上であげた以外にもたくさん指定できるオプションがあるので、上手くいかない時は[man wpa_supplicant]でチェック!  

2) /etc/wpa_supplicant/wpa_supplicant.conf

こっちのファイルは、アクセスポイントと通信する際の認証方式とか、パスフレーズとかを記載する。   重要なのは、自分が接続する無線LANアクセスポイントの暗号方式に合った設定を書くこと(当たり前か・・・) 公式ホームページから、代表的な暗号方式用の設定ファイルを2つほど。

●WPA-PSK/TKIP
1
2
3
4
5
6
7
8
9
10
ctrl_interface=/var/run/wpa_supplicant

network={
ssid="example wpa-psk network"
key_mgmt=WPA-PSK
proto=WPA
pairwise=TKIP
group=TKIP
psk="secret passphrase"
}

 

●WPA2-EAP/CCMP (EAP-TLS)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
ctrl_interface=/var/run/wpa_supplicant

network={
ssid="example wpa2-eap network"
key_mgmt=WPA-EAP
proto=WPA2
pairwise=CCMP
group=CCMP
eap=TLS
ca_cert="/etc/cert/ca.pem"
private_key="/etc/cert/user.p12"
private_key_passwd="PKCS#12 passhrase"
}

  ※wpa方式のパスフレーズは、wpa_passphraseというツールが一緒にインストールされてるので、それで生成する。 出力されたパスフレーズをコピーして、上記設定ファイルに書く。

1
wpa_passphrase {SSID} {PASS}

  wep, 暗号化無し等、他の設定方法については、公式サイトの最下部にサンプル設定ファイルへのリンクがあるので、それをチェック!  

3) /etc/sysconfig/network-scripts/ifcfg-wlan0

インターフェースによって、名前の末尾がwlan0だったり、ath0だったりする。 いわゆるlinuxのネットワーク設定ファイル。 以下、linuxで無線LAN(WPA)をやる場合の設定内容。

1
2
3
4
5
DEVICE=wlan0  #インターフェース名
BOOTPROTO=dhcp #固定IPならnone, DHCPならdhcp
ONBOOT=yes    #起動時に有効にするならyes, しないならno
HWADDR=xx:xx:xx:xx:xx:xx  #インターフェースのmacアドレス (ifconfigで表示されるやつよ)
IPADDR=xxx.xxx.xxx.xxx #dhcpなら行ごと削除, 固定IPの時に指定。

パスフレーズとかSSIDはwpa_supplicantの設定ファイルに書いてあるので、これだけ。  

3. 疎通確認

設定が終わったら、いよいよ接続。 wpa_supplicantは、インターフェースとアクセスポイントを取り持ってくれるので、起動の順番としては 1. インターフェース起動 2. wpa_supplicant起動 まあ、順番間違ってもwpa_supplicantが接続を再試行するので、つながることはつながる。  

1) インターフェース再起動

1
2
ifdown wlan0
ifup wlan0

※コマンドは自分のインターフェース名に合わせて変えてね。  

2) wpa_supplicant起動

1
/etc/init.d/wpa_supplicant start

起動出来なかった貴方!ログをお読みなさい。インタフェースの指定か、ドライバーの指定が間違っているのだ。きっと・・・。   ifconfigして、ipアドレスがきちんと取れていれば、多分成功。 nslookup http://www.yahoo.co.jpとかして、外に繋がっているかチェックするのです。   ちなみに、無事繋がった場合は、次回以降はwpa_supplicantを自動で起動するように

1
chkconfig wpa_supplicant on

としておこう。 以上で、wpa_supplicantの設定は完了(めでたし、めでたし)