デバイスが物理的に動作することは前回までの作業で確認できた。
3.アクセスポイント用ドライバのインストール
hostap-driver-0.2.4.tar.gz このドライバを
http://hostap.epitest.fi/ よりダウンロードし、展開。READMEを読んだところ、pcmcia-csを使っているかいないかによりMakefileの修正箇所が違う。今回はpcmcia-csを使わず、カーネルのドライバを使っているので、KERN_PATHのみ設定すればよい。デフォルトは/usr/src/linuxとなっており、これを直してもいいし、カーネルツリーのあるディレクトリに/usr/src/linuxをシンボリックリンクしてもよい。
インストール自体は単純で
# make
# make install
これだけ。あとは/etc/pcmcia/*.confで無線LANカードのbindするドライバを「orinoco_cs」から「hostap_cs」に変更すればOK……のはずなのだが、どうも上手く読んでくれないようだ。仕方が無いので
/sbin/insmod /lib/modules/2.6.5-1.358custom/kernel/drivers/net/wireless/hostap.ko
/sbin/insmod /lib/modules/2.6.5-1.358custom/kernel/drivers/net/wireless/hostap_crypt_ccmp.ko
/sbin/insmod /lib/modules/2.6.5-1.358custom/kernel/drivers/net/wireless/hostap_crypt_tkip.ko
/sbin/insmod /lib/modules/2.6.5-1.358custom/kernel/drivers/net/wireless/hostap_crypt_wep.ko
/sbin/insmod /lib/modules/2.6.5-1.358custom/kernel/drivers/net/wireless/hostap_cs.ko
/sbin/insmod /lib/modules/2.6.5-1.358custom/kernel/drivers/net/wireless/hostap_pci.ko
/sbin/insmod /lib/modules/2.6.5-1.358custom/kernel/drivers/net/wireless/hostap_plx.ko
というシェルスクリプト(後述の『wlan_setup.sh』)を作成し、これを起動時に実行するように/etc/rc.d/rc/localに記述を加えた。
4.アクセスポイント用の設定
順番的には、ドライバのロード→インターフェース起動→無線LAN回りの設定、としないとダメなようで。このあたりは試行錯誤。で、いつもどおり/etc/rc.d/rc.localに以下を付記。
#Wireless LAN Interface Configuration
/sbin/ifdown wlan0
/bin/sh /root/wlan_setup.sh
/sbin/ifup wlan0
/etc/rc.d/init.d/pcmcia restart
/bin/sleep 6
/sbin/iwconfig wlan0 mode master
/sbin/iwconfig wlan0 channel 2
/sbin/iwconfig wlan0 essid "
任意のESSID"
/sbin/iwconfig wlan0 nickname "
任意のニックネーム"
/sbin/iwconfig wlan0 key
任意のWEPキー(128bit・26桁) いっぺんにシェルスクリプトにしてもいいんだけど。これで起動時にアクセスポイント機能が有効になる。
5.ルータ機能設定
有線インターフェース(eth0)と無線インターフェース(wlan0)を同時に使用するには、両者をブリッジ化して同一セグメントとする方法と、両者を別セグメントに置いてルータ化する方法のどちらかを選ぶ必要がある。セキュリティと設定の容易さからルータ化を選択。
・/etc/sysctl.conf
net.ipv4.ip_forward = 1
・/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=Amatsu.mythril.ne.jp
GATEWAY=192.168.1.1
FORWARD_IPV4=yes
GATEWAYDEV=eth0
要はIPフォワードを有効にし、ゲートウェイをeth0にする、ということ。最後にiptablesの設定。
# /sbin/iptables -t nat -A POSTROUTING -s [network address]/[netmask] -o eth0 -j MASQUERADE
# /sbin/iptables save …… 設定を保存
これで再起動を掛けて完了。クライアント(Balthasar)がIEEE802.11bを使える状態でESSID、WEPキー、IPアドレス、サブネットマスク、ゲートウェイ、DNSサーバ等を手動設定して接続完了。お疲れー。
セキュリティとの関係では、DHCP無効、WEP128bit、ネットワーク設定は手入力必須、というようにしてある。またAmatsuに無線アクセスしただけではSambaでのファイル共有などを覗かれることはない。無線LAN側のネットワークアドレスではアクセス不可にしてあるからだ。この点、AmatsuにPPTP-VPNアクセスすることでLANリソースは使用可能になる。セキュリティ上もPPTP-VPNを併用した方が望ましいだろう。
無線越しのPPTP-VPNでの実効スループットは
3Mbps程度。Casperから動画ファイルを読み出す程度であれば全く問題ない。大容量ファイルを移すときなどはさすがにキツイが。
また、今回使った無線LANカードは
Cardbus対応ではなくPCMCIAカードであり、
実家に置いてあるMurasameでも使用できる可能性が高い。幸いスロットは1つ空いており、さらには無線を使う必要性も出てきている。
とりあえずもう1枚カードを確保に走る予定。山積みの特価品で無線LANアクセスポイント+ルータが構築できれば安いものである。