自宅でルーターとして使っていた安物の無線LAN AP の調子が悪く、頻繁に落ちるようになったので、新しい物に買い替えました。
EAP-TLS の実験もしたかったので、今回は AirMac Extreme にしてみました。
AirMac Extreme はアップル製だけあって設定は簡単で、802.1X EAP-TLS で認証をさせても安定しているようです。それはいいのですが。。。
アップルの製品は設定が簡単でいいのですが、設定項目が少なく、アップルの想定している使い方からちょっとでも外れるとどうにも出来なくなる事があります。
今回も2点ほど困った点があったので、メモしておきます。
AirMac Extreme をルーターとして使用する場合、ローカル側の IPアドレスが 192.168.0.1 のように末尾が 1 に固定されていて、変更することができません。
ローカルのIPアドレスを設定できないネットワーク機器なんてあるはずないと思い、方法を探してみましたが、解決策は無いようでした。
うちのネットワークは、これまで 192.168.0.254 のように 254 で終わるアドレスをデフォルトゲートウェイにしていたので、このアドレスが変わると固定アドレスを持っているたくさんのサーバーたちの設定も変更する必要が出てきてめんどくさいんですよね。
しかたないので、常時起動している Linux に 254 のアドレスを割り当てて、ICMP redirect で正しいデフォルトゲートウェイのアドレスを通知するようにしました。(ついでにキャッシュ用のネームサーバーも立てました。)
最初は OpenSolaris に ICMP redirect を投げさせようとしたんですが、なぜか出来なかった。。。
他の人とデータのやり取りをする為に ftp サーバーを立てていますが、標準のポートで起動させておくと勝手にログインしてこようとする人たちがたくさんいます。パスワードとログの管理がめんどくさいので、これまではルーターで標準以外の別のポートから NAT させていました。
AirMac Extreme でも同様の設定をしてみたのですが、接続できません。
アップルのフォーラムでも同様に困っている人はたくさんいるのですが、やはり解決策は無いようでした。
いろいろと試してみた結果をまとめると
実験中に OpenSolaris で動かしている ftpサーバーのポートを変えようとしたが、inetadm ではポートを変更する方法がなかった。。。
しかたがないので、/etc/services を修正して対応。。。
Mac OS X 10.7 Lion で EAP を使う場合の設定方法がものすごくシンプルになりました。
どこかで見た事あるなぁ、と思ったら iOS と同じになったみたいです。
]]>sudo ifconfig en0 alias 192.168.0.1 255.255.255.0
sudo ifconfig en0 -alias 192.168.0.1
ついでに Linux と OpenSolari での設定方法もメモ。
# /sbin/ifconfig eth0:1 192.168.0.1/24
# /sbin/ifconfig eth0:1 down
pfexec ifconfig gbe0:1 plumb pfexec ifconfig gbe0:1 192.168.0.5 netmask 255.255.255.0 up
pfexec ifconfig gbe0:1 down pfexec ifconfig gbe0:1 unplumb
Snow Leopard のやり方のほうが、何個目のエイリアスなのかを考えなくてもいいので楽なのかなぁ。
エイリアス単位でインターフェースの UP/DOWN はできなそうだけど。
私の構築したステージング用のサーバにデザイナーさんの作ったコンテンツを置いてもらう必要があったので、「sftp でいいですか?」と聞いたら「ftpの方がいい」と言われたので、急遽 ftp サーバの用意をすることになりました。
軽く「いいよ」と答えたものの、自分で最後に ftpd をたてたのはもう10年近く前のことで何も覚えてません。
Solaris なのでSMFで管理されているftpdがあるだろうと思い、試してみると
$ pfexec svcadm enable ftp $ svcs -l ftp fmri svc:/network/ftp:default name FTP server 有効 true 状態 online next_state none state_time Tue Feb 23 02:02:15 2010 リスタータ svc:/network/inetd:default contract_id
無事に起動できました。簡単簡単。
念のため、ファイアウォール越しに ftp コマンドで接続テストを行い、passive mode が on でも off でも問題がなかったので、使ってもらいました。
しかし、しばらくすると「FTPサーバに接続は出来たけど、ファイルが何も表示されない」との報告が。。。
使っている ftp のクライアントソフトはFFFTPだという事なので、同じトラブルにあっている人がいるだろうと思いGoogleに聞いてみたところ、このページで原因と思われる記述を発見しました。
「タイムスタンプに含まれる日本語文字列の処理の問題」
ftpコマンドで接続して確認すると、ファイルの更新日付が確かに日本語で返ってきています。これなら in.ftpd のロケールを変えてあげれば問題は解決しそうです。
また、Googleに聞いてみるとこのページに回答がそのまま書いてありました。
SMF なので svccfg を使うのかと思ったら、in.ftpd は inetd に管理されているので、inetadmというコマンドを使うんですね。初めて知った。
以下のコマンドで、FFFTPでも正常にファイル一覧が表示されるようになりました。
$ pfexec inetadm -m ftp inherit_env=FALSE $ pfexec svcadm restart ftp]]>
WireSharkを使ってダンプを解析するためのキャプチャファイルをtcpdumpで保存するためのオプションを毎回忘れてしまうのでメモ。
tcpdump -n -i en0 -s 0 -w dumpfile.cap [filter]
tcpdump -w filenameだけでも、キャプチャファイルは作れるが、デフォルトではキャプチャ用のバッファ(snaplen)が 68バイトと小さく(TCP のヘッダー分のサイズらしい)、あふれたデータを取りこぼしてしまいます。tcpdump で見ている分には必要の無いデータですが、WireShark で「Follow TCP Stream」を見ようとした時に壊れていたりします。
そこでオプション ‘-s’ を指定して snaplen のサイズを大きく設定しています。(0は無制限、と言っても65535バイトくらいしか見た事ない)
(Open)Solarisの場合は悩む事無く、以下のように普通にファイルに保存するだけで大丈夫です。
snoop -r -d bge0 -o dumpfile.cap [filter]]]>