YANO's digital garage

Copyright ©YANO All rights reserved. https://www.bravotouring.com/~yano/

Last-modified: 2024-04-08 (月)


[一語一絵/IT系]

madwifiとwpa_supplicant / 2007-05-04 (金)

天寧寺三重塔
4/8 尾道市、天寧寺三重塔

USB-HDDに導入したFedora Core 5[External]madwifi[External]wpa_supplicantの連携。

いろいろトライしていたところ、意外と簡単にできた。いや、できてから振り返るといつも「意外と簡単」なのだが。

完動の/etc/sysconfig/wpa_supplicantは以下の通り。

# wlan0 and wifi0
# INTERFACES="-iwlan0 -iwifi0"
INTERFACES="-iath0"
# ndiswrapper and prism
# DRIVERS="-Dndiswrapper -Dprism"
DRIVERS="-D wext"
DRIVERSが"wext"だからINTERFACESwifi0だと思ったのだが、実はath0が正解だった。[External]madwifiはいつもこの辺で悩まされる。

/etc/wpa_supplicant/wpa_supplicant.conf

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=wheel

network={
        scan_ssid=0
        proto=WPA
        key_mgmt=WPA-PSK
        pairwise=CCMP TKIP
        group=CCMP TKIP
        ssid="WLAN-ESSID"
        #psk="充分に長いパスフレーズ"
        psk=暗号化した「充分に長いパスフレーズ」
}
となる。ちなみに、暗号化したパスフレーズはwpa_passphraseコマンドの出力を該当部分にコピペするだけで良い。

なお、残念ながらESSIDをブロードキャストしないステルスモードでは[External]wpa_supplicantが接続できなかった。一部にはステルスでも大丈夫だという報告もあるようだが、Atherosチップにも依るようなので要注意。

そもそもステルスモードというのは不正接続されにくくする程度の効果しか無いので、ESSIDを使用者が推測できない無意味な文字の羅列にしておけばほぼ同様の役目は果たす。というわけでこれを契機にステルスモードは使用しないことに。

複数のマシンに設定する為に無意味で長いESSIDを覚えようとするとそりゃもう大変なのだが、最初から覚えるのは諦めてUSBメモリ経由でコピペすれば良いだけの話だ。これなら長くて強力なパスフレーズの設定だって楽勝。意外に作るのは難しい無意味な文字列も[External]RandomStringを使えば簡単に作れるので、32桁のESSIDと63桁のパスフレーズで万全だ。

しかし、ESSIDとパスフレーズを長くしたらCCMP(AES)で繋がらなくなった。TKIPで繋がるから取り敢えず大丈夫なのだが、これは今後の宿題に。

/etc/sysconfig/network-scripts/ifcfg-ath0はこんな感じでシンプルに。

# Please read /usr/share/doc/initscripts-*/sysconfig.txt
# for the documentation of these parameters.
ONBOOT=yes
USERCTL=no
IPV6INIT=no
PEERDNS=yes
TYPE=Wireless
DEVICE=ath0
HWADDR=00:14:a4:86:09:db
BOOTPROTO=dhcp
NETMASK=
DHCP_HOSTNAME=
IPADDR=
DOMAIN=
ESSID=
CHANNEL=
MODE=Managed
RATE=
ESSIDはwpa_supplicant.confに書くからifcfg-ath0には書かない方が良さそうだ。またDHCPでアドレスを割り当てる場合はネットワーク初期化スクリプトでifupされる前にwpa_supplicantを起動しておかなくてならないので、/etc/rc.d/init.d/wpa_supplicant
#!/bin/bash
#
# wpa_supplicant
#
# chkconfig:   2345 09 88
# description: wpa_supplicant is a WPA Supplicant for Linux, BSD and \
#     Windows with support for WPA and WPA2 (IEEE 802.11i / RSN). Supplicant \
#     is the IEEE 802.1X/WPA component that is used in the client stations. \
#     It implements key negotiation with a WPA Authenticator and it controls \
#     the roaming and IEEE 802.11 authentication/association of the wlan driver.
chkconfig行を書換えた後、
# /sbin/chkconfig wpa_supplicant on
しておくと幸せになれる。

ちなみに複数の無線LANセグメントを切り替えて使う場合には/etc/wpa_supplicant/wpa_supplicant.confのscan_ssidを分けたnetwork節を複数書いておけば、wpa_guiで動的に切り替えられる。但し、DHCPによるアドレス再取得は自動的に行われないので、必要に応じてdhclientを再起動させる必要がある。

【参照】
●SourceForge.net: MADWIFI http://sourceforge.net/projects/madwifi/
●WPA Supplicant http://hostap.epitest.fi/wpa_supplicant/
●Vector:ソフトウェア・ライブラリ&PCショップ http://www.vector.co.jp/
┗RandomString http://www.vector.co.jp/soft/win95/util/se390491.html 2006年1月30日