Mac OS Xでの無線LAN設定について

このページは昔話です。 そんな事もあったという記録のために残しています。

このページは2007/11以降に確認した事項で将来の状況と違った内容が含まれている 可能性があります。
このメモによりなんからの不都合があったとしても著者は一切の責任を負いません。

■ はじめに

最近の無線LANの設定に付いてはあまりにもわからない事が多すぎて調べた結果、 あまりにも理不尽なためこのメモを書く事にした。 (おかげで散財してしまい、悔しいので憂さ晴らしに)

■ WEPとWPA

2000年頃に購入したAirMacベースステーション (グラファイト)では無線LANの暗号化はWEPという方式をとっていた。 ところがこのWEP(Wired Equivalent Privacy) という仕組みに脆弱性が見つかり(簡単に言うとパスワードが第三者に確認されて しまう問題と書いてましたが、パスワードが解読されるのは一次的な問題で 本質的には、通信内容が盗聴されてしまう危険でした)、 WPA(Wi-Fi Protected Access)という方式が2002年に作られた。(暗号化のキーを 定期的に変更してキーの推測を困難にしました。)WPA という方式は当初暗号形式にTKIP(WEPと同じRC4アルゴリズム)を使っていたが、よ り安全性の高いAES方式も提供されるようになった。WEPではSSIDを隠したり、 MACアドレスでの制限をかけても無駄で、WPAを使うのが安全であると言われている。 ただし何にしてもSSIDはMACアドレスや何らかの情報が推測できる文字列は使用し ない方が良いようだ。

■ 無線LANの悪用について

無線LANは近所にいればデータが流れている事は、ちょっと特殊なソフトなどを使 えばすぐ分かってしまいます。この時にネットワークを暗号化していない場合や、 WEPを使っているけどでパスワードが破られてしまっている場合には、通信内容を 傍受され悪用されたり、勝手にネットワークを使用され、不正アクセスなどを行う などの問題が発生する可能性があります。

■ AirMacカード

AirMacカードにはAirMacとAirMac Extremeという二つの種類がある。AirMac Extreme については802.11nがサポートされている物とそうでない物がある。上記の暗号 化についてのサポート状況は下記の通りである。

カード種類OSバージョン暗号方式
AirMac10.2以前WEP
AirMac10.3.3以降+AirMac 4.2WEP,WPA
AirMac Extreme10.3.3以降+AirMac 4.2WEP,WPA,WPA2


Mac OS X 10.2
    Mac OS X 10.3
Mac OS X 10.2でのAirMacの接続設定     Mac OS X 10.3.9+AirMac 4.2でのAirMacの接続設定

Mac OS Xで無線LANを安全に使うためには10.3.3以降+AirMac 4.2のバージョンが必要 になる。

■ WPA

AirMac ExtremeについてはWPAとWPA2という方式をサポートしているの だが、これが少しばかり複雑である。暗号化のみをサポートしたパーソ ナル(家庭用)と暗号化と認証をサポートしたエンタープライズ(会社用) の二つがある。パーソナルタイプの中では一般的にはWPAというのはTKIP を使い、WPA2はAESを使うと いう解釈もあるが、2種類かける2種類の4パターンが存在するようだ。 このメモではエンタープライズについては一切触れていない。

機種設定Auth[]Cipher[]
MZK-W04NWPA2 Mixed2,130,0,02(TKIP), 4(AES), 130(TKIP2), 132(AES2)
WN-G54/R3WPA/WPA2 - PSK(AES)2,130,0,04(AES), 132(AES2),0,0
WN-G54/R3WPA2 - PSK(AES)130,0,0,0132(AES2),0,0,0
WN-G54/R3WPA - PSK(TKIP)2,0,0,02(TKIP),0,0,0

WN-G54/RにAirMacカードでWPAで接続するにはAESではだめでTKIPを選択してい る必要がある。

■ BaseStation

PCIのMZK-W04Nというベースステーションを購入して試してみたところ 下記のような設定だとWPA(TKIP)とWPA2(AES)のクライアントが混在で きた。

WPA2 Mixed
MZK-W04Nの[一般設定]->[無線LAN設定]->[セキュリティ設定]で"WPA2 Mixed"を選択

2008/01/19追記: MZK-W04Nのファームウエアーをバージョンアップ(1.11) にしたためかMixedにしてもMacOS X 10.3のAirMacのWPA/TKIPで接続でき なくなってしまった。airportコマンドの-Aで接続するとError (88001006) と出てくる。もはや調べる気力がないので放置。oz_
2009/01/01追記: 環境が変わったためか、MZK-W04N(1.18)のMixedでMacOS X 10.4.11のAirMac で接続できている。

IO DATAのWN-G54というベースステーションでは[WEP/WEP2]という選択 があるのだが、暗号化形式がAESのみになってしまいMZK-W04Nのように AESとTKIPのクライアントの混在は不可能なようだ。 Macで接続時に暗号化形式は選択できるが、接続後に現在の接続方式を 確認するにはターミナルで下記のコマンドを実行する事で可能である。

% cd /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/
% ./airport -I

近隣にあるベースステーションの無線LANのチャンネルを調べるアプリケー ション 「コウモリのアンテナ」 を作ってみました。上のairportコマンドを定期的に実行して表示するだけ のプログラムです。
2009/09/26追記:airportコマンドでスキャンのXMLの出力形式がMac OS X 10.5から 変わってしまっていて、「コウモリのアンテナ」がまったく動作していない事に気 がつきました。近いうちに修正します。0.2で修正済みです。

「コウモリのアンテナ」にdefault routeまでのpingの結果を出したいと思って 調べたのだが、コマンドベースでは以下の方法でゲートウエーが調べられる。10.3の 場合はshowコマンドの前にの前にopenを実行する必要がある。

sh-3.2$ scutil
> show State:/Network/Global/IPv4
 {
  Router : 10.0.1.1
  PrimaryInterface : en0
  PrimaryService : xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx
}
> quit

プログラムから取得する場合は下記のようにします。

// System Config test
SCDynamicStoreRef dynRef=SCDynamicStoreCreate(kCFAllocatorSystemDefault,
	(CFStringRef)@"bat", NULL, NULL);
NSDictionary *ipv4Entry=(NSDictionary*)SCDynamicStoreCopyValue(dynRef, 
	(CFStringRef)@"State:/Network/Global/IPv4");
NSLog(@"Router = %@", [ipv4Entry objectForKey:@"Router"]);

socketベースでデフォルトルートを調べるコードが ここにあったが 10.3ではそのままではコンパイルが通らなかったので、あまり深く調べていない。

現在接続してるSSIDを拾う方法は以下。

sh-3.2$ scutil
> show State:/Network/Interface/en0/AirPort

余談だが、iPhoneの2.x,3.xではSCDynamicStoreCreateなどがサポートされておらず 上記の値を拾いだすには、プライベートフレームワーク(2.x:Apple80211, 3.x:MobileWiFi)に入っているファンクション(Apple80211Openなど)を呼ぶ必要が ある。

このメモを書くために調べていて見つけたのだが KisMACという無線LANのアクセスポイントを見つけるアプリケーショ ンがある。このソフトはWEPのクラックツールとしても使えるようだが、 良い子の皆さんはそのような事はしないでください。(ドイツの法律に抵触 ため開発拠点をスイスに移したという曰く付きのアプリケーションです。)

■ スリープ復帰時の接続について

Mac OS X 10.3のAirMacの設定に「デフォルトで次に参加する」とある が、AirMac(Extremeでない)カードでベースステーションがWPA(TKIP) の場合、接続に失敗するようだ。ただ自動に設定するとうまくいく? AirMac ExtremeカードでWPA(AES)の場合は「デフォルトで次に参加する」 が問題なく使えている。ただ自動だど他人のベースステーションに誤接続 して通信内容を見られてしまう危険はないのだろうか。。。

■ 古い機種でWPA2を使う

AirMacカードしか入らない機種でWPA2を使うにはいくつか方法がある。 一つはPCIのUSBの無線LANモジュールを使う方法だ。国内のメーカー では唯一PCIがMac OS XのドライバをサポートしたUSBの無線モジュー ルを販売している。何種類かあるようだが一つを購入して試してみた がたしかにAESでつながっているようなのだが、時々切れてしまい安 定しなかった。Macの機種によってはスリープ復帰時にカーネルのパ ニックに見舞われる事もあった。PCIのページではMacではWEPしか使 えないとあるので、WPA(ASE)が使えているのはサービスで、不安定な のはやもう得ないのかもしれない。
もう一つはバッファローのイー サーネットコンバータ(WLI3-TX1-G54)を使う方法だ。こちらはMac OS でも使えるとあるのだがマニュアルが不親切で設定に手間取ったが、 一度設定できればかなり安定して使えるようだ。(バッファローはAES とあるがWPAと表記している)このイーサーネットコンバータはAirMac カードよりもパフォーマンスが良い。iBook Dual USBからAirMac Express へのiTunesの再生がAirMacカードではかなり途切れることがあったが、 このイーサーネットコンバータでは全くない。もう一つのイーサーネット コンバータの利点はWOLが使える事だ。

■ いろいろ

かなり今更なんだがステータスバーのWIFIのインジケータをオプションを押しながら クリックすると、ステータスが表示されるようだ。OSバージョンのいつからサポート されたのかは不明だが10.6では表示される。(2015/01/31)

最近のMac OS XにはWireless Diagnosticsというものがあるようだが雪豹にはない。 ただし以下のようにコマンドを実行するとkernel.logに詳しいデバッグログがでる ようだ。

sudo /usr/libexec/airportd debug +AllUserland +AllDriver +AllVendor

■ ネットワークが突然調子が悪くなる

下記のようなルータについての原因が考えられます。

  1. コンデンサーの経年劣化で故障
  2. 他部品のの経年劣化で故障
  3. 設定の変更
  4. クライアントの追加などの内側の変化
  5. 接続先ISPの仕様変更などの外側の要因
  6. 何らかの攻撃に寄る要因
  7. 気温の影響

1,3が多いと思います。1はAirMacやMZK-W04Nのアダプタのコンデンサーを取り替えま した。HardOffで入手したCG-WLR300Nも コンデンサーが膨らんでいたので、おそらく調子が悪くなっていたと思われます。 2は経験したことがありませんが、ひろくんのページに レギュレータの不良の記事が ありました。 3はMZK-W04Nで間違えてRouter/APのスイッチを変更してしまっておかしな動作に なったことが何度かありました。アダプタをつけたときに誤って変更しちゃうことが あって、スイッチの場所がよくないです。またあまり変えるものでもないので、ノブが 出っ張っている必要もないと思います。Webインターフェースでスイッチの状態が簡単に 確認できないのもいけてないです。5はIP/DHCP/DNSなどの要因があります。 WN-G54/R3でAppleのDNSが引けなくなってファームのアップデートがありました。 これはApple側のDNSレコードがWN-G54/R3の予期しない構造に設定されたのが原因だった のだと思います。下にも書いていますが、突然すべてのDNSが引けなくなったことも ありました。ルータのDNSはIPS側のDNSに問い合わせを行う訳ですが、ISP側のDNSが 仕様変更されててルータと相性が悪くなったとかもあるかもしれません。 6はあまり考えられませんが、ルーターに脆弱性が報告された場合など は注意が必要です。FreeBSDやMac OS XではifconfigでIPアドレスがあるか。nslookup などで名前の解決ができるか。pingやtracerouteでどこまで到達できているかなどを 調べて原因追及することができます。 7はたまたま気がついたのですが、寒い時期には起動しなくなるルーターがありました。 電源入れて起動していない状態で、しばらく通電してもう一度、電源を入れなおすと 立ち上がったりします。 自宅が5度ぐらいになったときに問題が起きたような気がします。暖かくなったら 再現しなくなりました。逆に暑いときに問題を起こすルーターもあるかもしれません。

■ 腑に落ちない事

Copyright (C) 2007-2014 Hiroki Mori All Rights Reserved.