メイン

無線LAN アーカイブ

2007年06月19日

Linuxで無線LAN

え~

BUFFALOのWHR-HP-G/Pを購入して、Linuxで無線LANなんかやって見るかな~

っと言う事で、やってみました。


まずは、WLI-CB-G54HPをおもむろにPCに挿します。

で、lspciを実行すると

02:00.0 Network controller: Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (rev 02)

と表示されたが、正常に動作しません。
(まぁ、当然か……)

色々ググルとbcm43xx-fwcutterなるものを使えと出てきました。

debianのWebサイトで調べると、パッケージがあるようなので

apt-get install bcm43xx-fwcutter
E: Couldn't find package bcm43xx-fwcutter

(?_?)

HPをよーく見ると、[contrib]と書かれているので、"/etc/apt/sources.list"を下記のように修正。
-----
deb http://ftp.jp.debian.org/debian/ etch main contrib
deb-src http://ftp.jp.debian.org/debian/ etch main contrib

deb http://security.debian.org/ etch/updates main contrib
deb-src http://security.debian.org/ etch/updates main contrib
-----

再度

apt-get update
apt-get install bcm43xx-fwcutter

を実行すると、正常にインストールされました。

で、ふとカードを見るとLEDが点灯している!!

を!!

iwlist eth4 scan

を~APがずらずらと出てきました!

とりあえず、今日はここまで……

2007年06月20日

Linuxで無線LAN

え~昨日の続きです。

まずは、WEPで接続してみましょう!

# iwconfig eth4 essid "xxxxxxxx"
# iwconfig eth4 key s:1234567890123
# dhclient eth4

お~つながりました。

iwconfigのkey登録は、文字列で設定する場合は、s:文字列で16進で入力する場合は、0102-0304-xxxxの様に、2バイトずつハイフンを入れる必要があるようです。

次にWPAですが、WPAを設定するには、wpa_supplicantが必要なので、下記のようにしてインストールしましょう。(Debian Etchの場合です)

# apt-get install wpasupplicant

次に、PreSharedKeyを作成します。

wpa_passphrase ssid passphrase

なので

# wpa_passphrase myid mypass > /etc/wpa_supplicant/wpa_supplicant.conf

中身は

network={
ssid="myid"
#psk="mypass"
psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
}

となっています。

認証方式にWPA-PSKを使用し、暗号方式をTKIPとする場合は下記のように修正します。

network={
ssid="myid"
proto=WPA
key_mgmt=WPA-PSK
pairwise=TKIP
group=TKIP
psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
}

認証方式にWPA-PSKを使用し、暗号方式をAESとする場合は下記のように修正します。

network={
ssid="myid"
proto=WPA
key_mgmt=WPA-PSK
pairwise=CCMP
group=CCMP
psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
}

認証方式にWPA2-PSKを使用し、暗号方式をTKIPとする場合は下記のように修正します。

network={
ssid="myid"
proto=RSN
key_mgmt=WPA-PSK
pairwise=TKIP
group=TKIP
psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
}

認証方式にWPA2-PSKを使用し、暗号方式をAESとする場合は下記のように修正します。

network={
ssid="myid"
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP
group=CCMP
psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
}

ちなみに、supplicantを使用してWEP128を使用する場合は下記のように修正します。

network={
ssid="myid"
key_mgmt=NONE
wep_key0="1234567890123"
wep_tx_keyidx=0
}


設定が済んだら、下記コマンドを実行して動作確認をしましょう!

wpa_supplicant -i eth4 -c /etc/wpa_supplicant/wpa_supplicant.conf -w
・・・
CTRL-EVENT-CONNECTED - Connection to xx:xx:xx:xx:xx:xx completed ・・・

上記のようなメッセージが出力されたら、無事に設定は完了です。
なので、下記のコマンドを実行してバックグラウンドで実行しましょう!!

wpa_supplicant -i eth4 -c /etc/wpa_supplicant/wpa_supplicant.conf -B

次に、IPアドレスを設定して終了です。
DHCPの場合は

dhclient eth4
・・・
bound to xxx.xxx.xxx.xxx -- renewal in xxxxx seconds.

とIPアドレスが表示されれば正常に取得できたと言うことです。


ちなみに、私がはまったのは上記のwpa_supplicantを実行した際に正常にSSIDが設定されないので、接続できない問題でした。

これは、バグなんでしょうね~
回避方法は、下記のように手動でSSIDを設定すればOKです。

iwconfig eth4 essid "myid"

まぁ~ここまで来たら、起動時に認識させたいですよね~
その場合は"/etc/network/interface"に下記を追加します。

auto eth4
iface eth4 inet dhcp
wireless-essid myid ←上記のSSIDが設定されないバグの回避
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

以上でOK!

あとは、ifup eth4 and ifdown eth4でON/OFFが出来ます。

ちなみに、今回使用した無線LANカード(WLI-CB-G54HP)はBroadcomの4318チップを使用していました。このチップのカーネルドライバにまだ問題があるみたいで、設定を変更しての再接続が出来ないことが多く、そのたびにmodprobe -r bcm43xxとmodprobe bcm43xxを実行しなければいけませんでした。

まぁ、それ以外は正常に動作しているので、OKでしょう~(^。^)y-.。o○

2007年06月25日

Linuxで無線LAN

どーせここまで調べたら、APも作ってみたいな~って事で実験!

hostapdのHPを見ると、bcm43xxはサポートされていないみたいだ……(-_-;)

で!

何をサポートしているか見てみると

* Host AP driver for Prism2/2.5/3
* madwifi (Atheros ar521x)
* Prism54.org (Prism GT/Duette/Indigo)
* BSD net80211 layer (e.g., Atheros driver) (FreeBSD 6-CURRENT)

と言う事で、madwifiのAtheros ar521x系しか事実上入手しにくいことがわかりました。
これだけ?って感じだよね~(゜o゜)

で、どうするか色々調べてたのですが、どうやら手持ちのNEC AtermWL54AGが使えそう見たいです。
と言う事で、WL54AGを挿入して

# pccardctl ls
Socket 0 Bridge: [yenta_cardbus] (bus IO: 000:01:0a.0)
CardBus card -- see "lspci" for more information

と表示されました。
早速実行!!

# lspci
02:00.0 Ethernet controller: Atheros Communications, Inc. AR5212 802.11abg NIC (rev 01)

よっしゃOK!!
hostspdのHPに対応していると記述されていたチップセットです!!

それでは早速、Atherosのチップセットドライバをインストールしましょう!

"/etc/apt/sources.list"にcontribとnon-freeが登録されていることを確認して、

# apt-get update
# apt-get install madwifi-tools madwifi-doc madwifi-source

上記の作業で、module-assistantというものがインストールされるので

# m-a prepare
# m-a a-i madwifi

とすることで

madwifi-modules-2.6.18-4-686_0.9.2+r1842.20061207-2+2.6.18.dfsg.1-12etch2_i386.deb

と言う長ったらしいファイルが出来上がりました。
早速、インストールして確認しましょう!!

# rpm -i madwifi-modules-2.6.18-4-686_0.9.2+r1842.20061207-2+2.6.18.dfsg.1-12etch2_i386.deb
# modprobe ath-pci
# iwconfig
ath0 IEE802.11g ESSID:""
省略

これで、カードを認識しました。(^。^)y-.。o○

とりあえず、クライアントとして使えるか調べてみましょうかね~(^^♪
(設定方法等は、過去ログ1過去ログ2を参照してください)

2007年06月26日

LinuxでWEPを使用したAP(Access Point)を作ってみた

この前の続きと言う事で


# modprobe ath-pci autocreate=ap

として、モジュールをロード


上記の意味は

# modprobe ath-pci
# wlanconfig ath0 create wlandev wifi0 wlanmode ap

と同じと思って良いようだ

ちなみに、この情報はMADWiFiのHPで見つけました。


# iwconfig ath0 mode master
# iwconfig ath0 essid myessid
# iwconfig ath0 key s:1234567890123
# ifconfig ath0 192.168.11.1 netmask 255.255.255.0 up

とすることで、WEPのAPが動作した。(^。^)y-.。o○

このままだと、クライアントも固定IPを設定しないといけなくなるので

# apt-get install dhcp3-server
# vi /etc/dhcp3/dhcpd.conf
ddns-update-style none;
option domain-name "wlan.example.com";
option domain-name-servers 192.168.11.1;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 192.168.11.0 netmask 255.255.255.0 {
range 192.168.11.16 192.168.11.32;
option routers 192.168.11.1;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.11.255;
}
# vi /etc/default/dhcp3-server
INTERFACES="ath0"
# /etc/init.d/dhcp3-server start

とこれで、クライアントは動的IPが使えるようになった!


毎回、手動で設定するのは面倒なので下記のようにして完成!!

# vi /etc/network/interfaces
auto ath0
iface ath0 inet static
pre-up modprobe -r ath-pci
pre-up modprobe ath-pci autocreate=ap
post-up /etc/init.d/dhcp3-server restart
pre-down /etc/init.d/dhcp3-server stop
post-down wlanconfig ath0 destroy
post-down modprobe -r ath-pci
wireless-mode master
wireless-essid myssid
wireless-key s:mywepkey
address 192.168.11.1
netmask 255.255.255.0


ただ、これだとルーティングを設定しないといけない。
自分でルーター兼、無線LAN-APを作るのであればここからルーティングをさせれば良い。


ちなみに、完全なAPとして動作させるなら

# apt-get install bridge-utils

でブリッジユーティリティをインストールして

# vi /etc/network/interfaces
# WEP AP
auto ath0
iface ath0 inet manual
pre-up modprobe -r ath-pci
pre-up modprobe ath-pci autocreate=ap
post-down wlanconfig ath0 destroy
post-down modprobe -r ath-pci
wireless-mode master
wireless-essid myssid
wireless-key s:mywepkey

auto eth1
iface eth1 inet manual

aut0 br0
iface br0 inet static
pre-up ifup eth1
pre-up ifup ath0
post-up /etc/init.d/dhcp3-server restart
pre-down /etc/init.d/dhcp3-server stop
post-down ifdown eth1
post-down ifdown ath0
address 192.168.11.1
netmask 255.255.255.0
bridge_ports eth1 ath0
bridge_stp off
bridge_fd 0
bridge_maxwait 0

として

# ifup br0

で起動する!(^。^)y-.。o○
ブリッジ元のネットワークにDHCPサーバが有る場合は、DHCPの制御の部分を削除してね~

ちなみに、このままだと起動時にうまく動作しないよ~!
気が向いたら、書くつもり……(^^ゞ

WPAでAPを作ろ~!

さらに、前回に続き、今回はWPAでAPを作るつもりです。

WPAでAPを作る場合は、hostapdを使用します。

# apt-get install hostapd
# vi /etc/hostapd/hostapd.conf
interface=ath0
bridge=br0
driver=madwifi
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
debug=0
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
ssid=YourESSID
max_num_sta=255
macaddr_acl=1
accept_mac_file=/etc/hostapd/accept
auth_algs=1
wme_enabled=1
wme_ac_bk_cwmin=4
wme_ac_bk_cwmax=10
wme_ac_bk_aifs=7
wme_ac_bk_txop_limit=0
wme_ac_bk_acm=0
wme_ac_be_aifs=3
wme_ac_be_cwmin=4
wme_ac_be_cwmax=10
wme_ac_be_txop_limit=0
wme_ac_be_acm=0
wme_ac_vi_aifs=2
wme_ac_vi_cwmin=3
wme_ac_vi_cwmax=4
wme_ac_vi_txop_limit=94
wme_ac_vi_acm=0
wme_ac_vo_aifs=2
wme_ac_vo_cwmin=2
wme_ac_vo_cwmax=3
wme_ac_vo_txop_limit=47
wme_ac_vo_acm=0
eapol_key_index_workaround=0
eap_server=0
own_ip_addr=127.0.0.1
wpa=2
wpa_passphrase=YourPASSPHRASE ← セキュリティー的に問題があるので、wpa_psk=xxxxxを使った方が良い!
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP

# vi /etc/hostapd/accept
xx:xx:xx:xx:xx:xx ← 接続を許可したい無線LANクライアントのMACアドレスを記述

# vi /etc/network/interfaces
auto ath0
iface ath0 inet manual
pre-up modprobe -r ath-pci
pre-up modprobe ath-pci autocreate=ap
post-down wlanconfig ath0 destroy
post-down modprobe -r ath-pci
wireless-mode master

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet dhcp
pre-up ifup eth0
pre-up ifup ath0
post-down ifdown eth0
post-down ifdown ath0
bridge_ports eth0 ath0
bridge_stp off
bridge_fd 0
bridge_maxwait 0

# ifup br0

確認は

# hostapd -dd /etc/hostapd/hostapd.conf

で、正常に動作してたら

# /etc/init.d/hostapd start

で、起動させる。


あっという間に、WPA2-PSK AESのAPが出来上がり~(^。^)y-.。o○


WPA-PSKに変更する場合は、"/etc/hostapd/hostapd.conf"の"wpa=2"を"wpa=1"に変更する。
TKIPを使用したい場合は、"/etc/hostapd/hostapd.conf"の"wpa_pairwise=CCMP"を"wpa_pairwise=TKIP"に変更する。

まぁ、こんなもんですかね~(^^ゞ

2007年06月28日

無線LANで、IEEE802.1Xを使ってみよう!!

とりあえず、LinuxでAPが作れたので、次はIEEE802.1Xを使ってみようか!!

っと言うわけで、FreeRadiusをインストール!

# apt-get install freeradius

で、色々設定してみたのですが……

FreeRadiusが動きません!!orz

FreeRadiusを動かすのは今回が初めてじゃないんですが、なんせ前にやったのは2~3年前……
忘れています!!(^^ゞ

なんだか、ちょっとだけ設定方法が変わっているみたいです。

# freeradius -X
Starting - reading configuration files ...
reread_config: reading radiusd.conf
Config: including file: /etc/freeradius/eap.conf
main: prefix = "/usr"
main: localstatedir = "/var"
main: logdir = "/var/log/freeradius"
main: libdir = "/usr/lib/freeradius"
main: radacctdir = "/var/log/freeradius/radacct"
main: hostname_lookups = no
main: max_request_time = 30
main: cleanup_delay = 5
main: max_requests = 1024
main: delete_blocked_requests = 0
main: port = 0
main: allow_core_dumps = no
main: log_stripped_names = no
main: log_file = "/var/log/freeradius/radius.log"
main: log_auth = no
main: log_auth_badpass = no
main: log_auth_goodpass = no
main: pidfile = "/var/run/freeradius/freeradius.pid"
main: user = "freerad"
main: group = "freerad"
main: usercollide = no
main: lower_user = "no"
main: lower_pass = "no"
main: nospace_user = "no"
main: nospace_pass = "no"
main: checkrad = "/usr/sbin/checkrad"
main: proxy_requests = no
security: max_attributes = 200
security: reject_delay = 1
security: status_server = no
main: debug_level = 0
read_config_files: reading dictionary
read_config_files: reading naslist
Using deprecated naslist file. Support for this will go away soon.
read_config_files: reading clients

で、プログラムが止まってしまいます。(?_?)

色々調べていると、DebianのFreeRadiusはTLS関連がOFFになっているから、自分で構築する必要があるそうな……

たしかに

# ls /usr/lib/freeradius/
libeap-1.1.3.so rlm_eap-1.1.3.so rlm_ns_mta_md5-1.1.3.so
libeap.so rlm_eap.so rlm_ns_mta_md5.so
libradius-1.1.3.so rlm_eap_gtc-1.1.3.so rlm_pam-1.1.3.so
libradius.so rlm_eap_gtc.so rlm_pam.so
rlm_acct_unique-1.1.3.so rlm_eap_leap-1.1.3.so rlm_pap-1.1.3.so
rlm_acct_unique.so rlm_eap_leap.so rlm_pap.so
rlm_always-1.1.3.so rlm_eap_md5-1.1.3.so rlm_passwd-1.1.3.so
rlm_always.so rlm_eap_md5.so rlm_passwd.so
rlm_attr_filter-1.1.3.so rlm_eap_mschapv2-1.1.3.so rlm_perl-1.1.3.so
rlm_attr_filter.so rlm_eap_mschapv2.so rlm_perl.so
rlm_attr_rewrite-1.1.3.so rlm_eap_sim-1.1.3.so rlm_preprocess-1.1.3.so
rlm_attr_rewrite.so rlm_eap_sim.so rlm_preprocess.so
rlm_chap-1.1.3.so rlm_exec-1.1.3.so rlm_radutmp-1.1.3.so
rlm_chap.so rlm_exec.so rlm_radutmp.so
rlm_checkval-1.1.3.so rlm_expr-1.1.3.so rlm_realm-1.1.3.so
rlm_checkval.so rlm_expr.so rlm_realm.so
rlm_counter-1.1.3.so rlm_fastusers-1.1.3.so rlm_sql-1.1.3.so
rlm_counter.so rlm_fastusers.so rlm_sql.so
rlm_dbm-1.1.3.so rlm_files-1.1.3.so rlm_sql_log-1.1.3.so
rlm_dbm.so rlm_files.so rlm_sql_log.so
rlm_detail-1.1.3.so rlm_ippool-1.1.3.so rlm_sqlcounter-1.1.3.so
rlm_detail.so rlm_ippool.so rlm_sqlcounter.so
rlm_digest-1.1.3.so rlm_mschap-1.1.3.so rlm_unix-1.1.3.so
rlm_digest.so rlm_mschap.so rlm_unix.so

TLS/TTLSなどのライブラリが無いな~

それなら、自分で入れるか~
どうせなら、Debianパッケージでやって見るかな~

と、思いまずは検索!!

どうやら、下記のページがビンゴみたいだ!!

http://stielec.ac-aix-marseille.fr/cours/caleca/lansecure/radius/freeradius1.html

早速、参考にしながら

# apt-get build-dep source freeradius
# apt-get install build-essential
# apt-get install apt-src
# apt-src update

# mkdir freeradius
# cd freeradius
# apt-src install freeradius
# ls -la
drwxr-xr-x 15 root root 4096 Aug 23 2006 freeradius-1.1.3
-rw-r--r-- 1 root root 17124 Dec 17 2006 freeradius_1.1.3-3.diff.gz
-rw-r--r-- 1 root root 998 Dec 17 2006 freeradius_1.1.3-3.dsc
-rw-r--r-- 1 root root 2587376 Aug 28 2006 freeradius_1.1.3.orig.tar.gz
# cd freeradius-1.1.3/debian
"rule"ファイルを修正
===============================================
--- rules.org 2007-06-28 15:00:48.000000000 +0900
+++ rules 2007-06-28 15:07:12.000000000 +0900
@@ -23,10 +23,10 @@
# You will also need to add a Build-Depends on libssl-dev and libpq-dev
# and remove the Build-Conflicts on libssl-dev
# Finally you need to cat debian/control.postgresql >> debian/control
-buildssl=--without-rlm_eap_peap --without-rlm_eap_tls --without-rlm_eap_ttls --without-rlm_otp --without-rlm_sql_postgresql --without-snmp
-modulelist=krb5 ldap sql_mysql sql_iodbc
-#buildssl=--with-rlm_sql_postgresql_lib_dir=`pg_config --libdir` --with-rlm_sql_postgresql_include_dir=`pg_config --includedir`
-#modulelist=krb5 ldap sql_mysql sql_iodbc sql_postgresql
+#buildssl=--without-rlm_eap_peap --without-rlm_eap_tls --without-rlm_eap_ttls --without-rlm_otp --without-rlm_sql_postgresql --without-snmp
+#modulelist=krb5 ldap sql_mysql sql_iodbc
+buildssl=--with-rlm_sql_postgresql_lib_dir=`pg_config --libdir` --with-rlm_sql_postgresql_include_dir=`pg_config --includedir`
+modulelist=krb5 ldap sql_mysql sql_iodbc sql_postgresql
===============================================

# apt-get install libssl-dev libpq-dev
# cat control.postgresql >> control
"control"ファイルを修正
===============================================
--- control.org 2007-06-28 15:26:04.000000000 +0900
+++ control 2007-06-28 15:26:27.000000000 +0900
@@ -1,6 +1,6 @@
Source: freeradius
-Build-Depends: debhelper (>= 5), libltdl3-dev, libpam0g-dev, libmysqlclient15-dev | libmysqlclient-dev, libgdbm-dev, libldap2-dev, libsasl2-dev, libiodbc2-dev, libkrb5-dev, snmp, autotools-dev, dpatch (>= 2), libperl-dev, libtool, dpkg-dev (>= 1.13.19)
-Build-Conflicts: libssl-dev
+Build-Depends: debhelper (>= 5), libltdl3-dev, libpam0g-dev, libmysqlclient15-dev | libmysqlclient-dev, libgdbm-dev, libldap2-dev, libsasl2-dev, libiodbc2-dev, libkrb5-dev, snmp, autotools-dev, dpatch (>= 2), libperl-dev, libtool, dpkg-dev (>= 1.13.19), libssl-dev, libpq-dev
+Build-Conflicts:
Section: net
Priority: optional
Maintainer: Stephen Gran
===============================================

# vi changelog
===============================================
freeradius (1.1.3-3tls) unstable; urgency=low

* Add TLS support for compilation

-- youchikurin Thu, 28 Jun 2007 15:15:00 +0900
===============================================

/* cd freeradius */
# cd ../../
# apt-src build freeradius
・・・
・・・
・・・
I: Successfully built in /root/freeradius/freeradius-1.1.3
# ls -la *.deb
-rw-r--r-- 1 root root 117676 Jun 28 15:33 freeradius-dialupadmin_1.1.3-3tls_all.deb
-rw-r--r-- 1 root root 31858 Jun 28 15:34 freeradius-iodbc_1.1.3-3tls_i386.deb
-rw-r--r-- 1 root root 32556 Jun 28 15:34 freeradius-krb5_1.1.3-3tls_i386.deb
-rw-r--r-- 1 root root 47206 Jun 28 15:34 freeradius-ldap_1.1.3-3tls_i386.deb
-rw-r--r-- 1 root root 31798 Jun 28 15:34 freeradius-mysql_1.1.3-3tls_i386.deb
-rw-r--r-- 1 root root 32260 Jun 28 15:34 freeradius-postgresql_1.1.3-3tls_i386.deb
-rw-r--r-- 1 root root 765886 Jun 28 15:34 freeradius_1.1.3-3tls_i386.deb
# dpkg -i freeradius_1.1.3-3tls_i386.deb

# ls /usr/lib/freeradius/
libeap-1.1.3.so rlm_eap_gtc.so rlm_ns_mta_md5-1.1.3.so
libeap.so rlm_eap_leap-1.1.3.so rlm_ns_mta_md5.so
libradius-1.1.3.so rlm_eap_leap.so rlm_otp-1.1.3.so
libradius.so rlm_eap_md5-1.1.3.so rlm_otp.so
rlm_acct_unique-1.1.3.so rlm_eap_md5.so rlm_pam-1.1.3.so
rlm_acct_unique.so rlm_eap_mschapv2-1.1.3.so rlm_pam.so
rlm_always-1.1.3.so rlm_eap_mschapv2.so rlm_pap-1.1.3.so
rlm_always.so rlm_eap_peap-1.1.3.so rlm_pap.so
rlm_attr_filter-1.1.3.so rlm_eap_peap.so rlm_passwd-1.1.3.so
rlm_attr_filter.so rlm_eap_sim-1.1.3.so rlm_passwd.so
rlm_attr_rewrite-1.1.3.so rlm_eap_sim.so rlm_perl-1.1.3.so
rlm_attr_rewrite.so rlm_eap_tls-1.1.3.so rlm_perl.so
rlm_chap-1.1.3.so rlm_eap_tls.so rlm_preprocess-1.1.3.so
rlm_chap.so rlm_eap_ttls-1.1.3.so rlm_preprocess.so
rlm_checkval-1.1.3.so rlm_eap_ttls.so rlm_radutmp-1.1.3.so
rlm_checkval.so rlm_exec-1.1.3.so rlm_radutmp.so
rlm_counter-1.1.3.so rlm_exec.so rlm_realm-1.1.3.so
rlm_counter.so rlm_expr-1.1.3.so rlm_realm.so
rlm_dbm-1.1.3.so rlm_expr.so rlm_sql-1.1.3.so
rlm_dbm.so rlm_fastusers-1.1.3.so rlm_sql.so
rlm_detail-1.1.3.so rlm_fastusers.so rlm_sql_log-1.1.3.so
rlm_detail.so rlm_files-1.1.3.so rlm_sql_log.so
rlm_digest-1.1.3.so rlm_files.so rlm_sqlcounter-1.1.3.so
rlm_digest.so rlm_ippool-1.1.3.so rlm_sqlcounter.so
rlm_eap-1.1.3.so rlm_ippool.so rlm_unix-1.1.3.so
rlm_eap.so rlm_mschap-1.1.3.so rlm_unix.so
rlm_eap_gtc-1.1.3.so rlm_mschap.so


お~TLS/TTLS関連が入ってるよ~

早速

# freeradius -X
Starting - reading configuration files ...
reread_config: reading radiusd.conf
Config: including file: /etc/freeradius/eap.conf
main: prefix = "/usr"
main: localstatedir = "/var"
main: logdir = "/var/log/freeradius"
main: libdir = "/usr/lib/freeradius"
main: radacctdir = "/var/log/freeradius/radacct"
main: hostname_lookups = no
main: max_request_time = 30
main: cleanup_delay = 5
main: max_requests = 1024
main: delete_blocked_requests = 0
main: port = 0
main: allow_core_dumps = no
main: log_stripped_names = no
main: log_file = "/var/log/freeradius/radius.log"
main: log_auth = no
main: log_auth_badpass = no
main: log_auth_goodpass = no
main: pidfile = "/var/run/freeradius/freeradius.pid"
main: user = "freerad"
main: group = "freerad"
main: usercollide = no
main: lower_user = "no"
main: lower_pass = "no"
main: nospace_user = "no"
main: nospace_pass = "no"
main: checkrad = "/usr/sbin/checkrad"
main: proxy_requests = no
security: max_attributes = 200
security: reject_delay = 1
security: status_server = no
main: debug_level = 0
read_config_files: reading dictionary
read_config_files: reading naslist
Using deprecated naslist file. Support for this will go away soon.
read_config_files: reading clients


おんなじやんけ!!<`~´>

なぜだろう……(-_-;)

2007年06月29日

madwifiのコンパイル!

組込み機器のターゲットで、無線が使いたいのでターゲット上でMADWIFIをコンパイルしてみました。

まずは、ターゲットで使用しているカーネルソースを"/usr/src/"に展開し、"/usr/src/linux"にリンクします。

現在、ターゲット上にはRootNFSを使用してDebianが動いています。
なので、"過去ログ"で書いたとおりに実行!

Checking requirements... ok. Checking kernel configuration... ok. make -C /lib/modules/2.6.21.1/build SUBDIRS=/usr/src/modules/madwifi modules make[1]: Entering directory `/usr/src/linux-2.6.21.1' CC [M] /usr/src/modules/madwifi/ath/if_ath.o In file included from :1: /usr/src/modules/madwifi/ath/../include/compat.h:60:1: error: "__packed" redefid In file included from include/linux/compiler-gcc4.h:4, from include/linux/compiler.h:42, from include/linux/stddef.h:4, from include/linux/kernel.h:12, from /usr/src/modules/madwifi/ath/../include/compat.h:47, from :1: include/linux/compiler-gcc.h:30:1: error: this is the location of the previous n In file included from include/asm/dma-mapping.h:14, from include/linux/dma-mapping.h:34, from include/asm/pci.h:15, from include/linux/pci.h:744, from /usr/src/modules/madwifi/ath/if_ath_pci.h:43, from /usr/src/modules/madwifi/ath/if_ath.c:86: include/linux/mm.h:658:1: error: "offset_in_page" redefined In file included from /usr/src/modules/madwifi/ath/../net80211/if_media.h:44, from /usr/src/modules/madwifi/ath/if_ath.c:66: /usr/src/modules/madwifi/ath/../net80211/ieee80211_linux.h:431:1: error: this in /usr/src/modules/madwifi/ath/if_ath.c:417:60: error: macro "INIT_WORK" passed 32 /usr/src/modules/madwifi/ath/if_ath.c: In function 'ath_attach': /usr/src/modules/madwifi/ath/if_ath.c:417: error: 'INIT_WORK' undeclared (first) /usr/src/modules/madwifi/ath/if_ath.c:417: error: (Each undeclared identifier ie /usr/src/modules/madwifi/ath/if_ath.c:417: error: for each function it appears ) /usr/src/modules/madwifi/ath/if_ath.c: In function 'ath_vap_create': /usr/src/modules/madwifi/ath/if_ath.c:1149: error: 'struct net_device' has no m' /usr/src/modules/madwifi/ath/if_ath.c: In function 'ath_dynamic_sysctl_register: /usr/src/modules/madwifi/ath/if_ath.c:9573: error: too many arguments to functi' /usr/src/modules/madwifi/ath/if_ath.c: In function 'ath_sysctl_register': /usr/src/modules/madwifi/ath/if_ath.c:9727: error: too many arguments to functi' make[3]: *** [/usr/src/modules/madwifi/ath/if_ath.o] Error 1 make[2]: *** [/usr/src/modules/madwifi/ath] Error 2 make[1]: *** [_module_/usr/src/modules/madwifi] Error 2 make[1]: Leaving directory `/usr/src/linux-2.6.21.1' make: *** [modules] Error 2

コンパイルエラー!!(?_?)

内容を見ると、ヘッダファイルがどうのこうのと書かれていて、面倒だからmadwifi本家からソースを持ってきました。

で、MADWIFIをコンパイルしてみると、下記のエラーが……(?_?)

madwifi-0.9.3.1# make /bin/sh: line 0: cd: /lib/modules/2.6.21.1/build: No such file or directory Makefile.inc:66: *** /lib/modules/2.6.21.1/build is missing, please set KERNELPATH. Stop.

中を見てみると、"build"と"source"はカーネルをコンパイルしたPATHを指しています。
(クロスコンパイラで、作ったやつだから……仕方がないね~)

2.6.21.1# ls -la total 128 drwxr-xr-x 3 root root 4096 Jun 29 06:45 . drwxr-xr-x 3 root root 4096 Jun 29 04:55 .. lrwxrwxrwx 1 root root 70 Jun 29 06:45 build -> /home/…/linux-2.6.21.1 省略 lrwxrwxrwx 1 root root 70 Jun 29 06:45 source -> /home/…/linux-2.6.21.1

リンクを"/usr/src/linux"に張りなおし、再度コンパイル!

madwifi-0.9.3.1# make Checking requirements... ok. Checking kernel configuration... ok. make -C /lib/modules/2.6.21.1/build SUBDIRS=/root/madwifi/madwifi-0.9.3.1 moduls make[1]: Entering directory `/usr/src/linux-2.6.21.1' CC [M] /root/madwifi/madwifi-0.9.3.1/ath/if_ath.o /bin/sh: scripts/basic/fixdep: cannot execute binary file make[3]: *** [/root/madwifi/madwifi-0.9.3.1/ath/if_ath.o] Error 126 make[2]: *** [/root/madwifi/madwifi-0.9.3.1/ath] Error 2 make[1]: *** [_module_/root/madwifi/madwifi-0.9.3.1] Error 2 make[1]: Leaving directory `/usr/src/linux-2.6.21.1' make: *** [modules] Error 2

何だ!!(?_?)

ファイルが実行できない?

ふ~ん……

madwifiのディレクトリには、"fixdep"なんてファイルはないから、"/usr/src/linux"の方かな~

!!ビンゴ!!

linux# find . -name fixdep ./scripts/basic/fixdep

で、実行してみたら確かに動かない。

linux# ./scripts/basic/fixdep -bash: ./scripts/basic/fixdep: cannot execute binary file

まぁ、このソースはクロスコンパイラでターゲット用にコンパイルしたソースをそのまま持ってきてるかなな~っと言う事で、ターゲット上で

linux# make oldconfig HOSTCC scripts/basic/fixdep HOSTCC scripts/basic/docproc HOSTCC scripts/kconfig/conf.o HOSTCC scripts/kconfig/kxgettext.o HOSTCC scripts/kconfig/zconf.tab.o HOSTLD scripts/kconfig/conf scripts/kconfig/conf -o arch/powerpc/Kconfig * * Linux Kernel Configuration * 省略

やっぱり、(-_-;)
ここで、作ってんのかよ……

さぁ、これでどうだ!!

madwifi-0.9.3.1# make Checking requirements... ok. Checking kernel configuration... ok. make -C /lib/modules/2.6.21.1/build SUBDIRS=/root/madwifi/madwifi-0.9.3.1 moduls make[1]: Entering directory `/usr/src/linux-2.6.21.1' CC [M] /root/madwifi/madwifi-0.9.3.1/ath/if_ath.o 省略 LD [M] /root/madwifi/madwifi-0.9.3.1/net80211/wlan_scan_ap.o Building modules, stage 2. MODPOST 13 modules /bin/sh: scripts/mod/modpost: cannot execute binary file make[2]: *** [__modpost] Error 126 make[1]: *** [modules] Error 2 make[1]: Leaving directory `/usr/src/linux-2.6.21.1' make: *** [modules] Error 2

ぎゃふん!!(>_<)
カーネルをコンパイルしないといけないとですか!!

そんな時間はもったいないので、コンパイルを実行して途中で止めました!(^^ゞ

linux# make scripts/kconfig/conf -s arch/powerpc/Kconfig CHK include/linux/version.h CHK include/linux/utsrelease.h CC arch/powerpc/kernel/asm-offsets.s GEN include/asm-powerpc/asm-offsets.h CC scripts/mod/empty.o HOSTCC scripts/mod/mk_elfconfig MKELF scripts/mod/elfconfig.h HOSTCC scripts/mod/file2alias.o HOSTCC scripts/mod/modpost.o HOSTCC scripts/mod/sumversion.o HOSTLD scripts/mod/modpost CC init/main.o CHK include/linux/compile.h UPD include/linux/compile.h CC init/version.o CC init/do_mounts.o

どれどれ、madwifiをコンパイルしてみますか!

madwifi-0.9.3.1# make Checking requirements... ok. Checking kernel configuration... ok. make -C /lib/modules/2.6.21.1/build SUBDIRS=/root/madwifi/madwifi-0.9.3.1 moduls make[1]: Entering directory `/usr/src/linux-2.6.21.1' Building modules, stage 2. MODPOST 13 modules CC /root/madwifi/madwifi-0.9.3.1/ath/ath_pci.mod.o 省略 LD [M] /root/madwifi/madwifi-0.9.3.1/net80211/wlan_xauth.ko make[1]: Leaving directory `/usr/src/linux-2.6.21.1' make -C ./tools all || exit 1 make[1]: Entering directory `/root/madwifi/madwifi-0.9.3.1/tools' gcc -o athstats -g -O2 -Wall -I. -I../hal -I.. -I../ath athstats.c gcc -o 80211stats -g -O2 -Wall -I. -I../hal -I.. 80211stats.c gcc -o athkey -g -O2 -Wall -I. -I../hal -I.. athkey.c gcc -o athchans -g -O2 -Wall -I. -I../hal -I.. athchans.c gcc -o athctrl -g -O2 -Wall -I. -I../hal -I.. athctrl.c gcc -o athdebug -g -O2 -Wall -I. -I../hal -I.. athdebug.c gcc -o 80211debug -g -O2 -Wall -I. -I../hal -I.. 80211debug.c gcc -o wlanconfig -g -O2 -Wall -I. -I../hal -I.. wlanconfig.c make[1]: Leaving directory `/root/madwifi/madwifi-0.9.3.1/tools'

を~でけた!!\(^o^)/

ひょっとして、debianパッケージのmadwifiもコンパイルが通るかな~?

っと、思ったら!

ダメジャン!!
きっとdebianのモジュールツールがmadwifiをコンパイルするのに必要な何かが足りないんだろうな~

気を取り直して、本家ソースをインストール!

madwifi-0.9.3.1# make install sh scripts/find-madwifi-modules.sh 2.6.21.1 for i in ./ath ./ath_hal ./ath_rate ./net80211; do \ make -C $i install || exit 1; \ done 省略 install -d /usr/local/man/man8 install -m 0644 man/*.8 /usr/local/man/man8 make[1]: Leaving directory `/root/madwifi/madwifi-0.9.3.1/tools'

続けて、モジュールの読込み!

madwifi-0.9.3.1# modprobe ath-pci ath_hal: module license 'Proprietary' taints kernel. ath_hal: 0.9.18.0 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413, RF5413, REGO) wlan: 0.8.4.2 (0.9.3.1) ath_pci: 0.9.4.5 (0.9.3.1) ath_rate_sample: 1.2 (0.9.3.1) wifi0: 11a rates: 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps wifi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps wifi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 3s wifi0: H/W encryption support: WEP AES AES_CCM TKIP wifi0: mac 5.6 phy 4.1 radio 3.6 wifi0: Use hw queue 1 for WME_AC_BE traffic wifi0: Use hw queue 0 for WME_AC_BK traffic wifi0: Use hw queue 2 for WME_AC_VI traffic wifi0: Use hw queue 3 for WME_AC_VO traffic wifi0: Use hw queue 8 for CAB traffic wifi0: Use hw queue 9 for beacons wifi0: Atheros 5212: mem=0xb0000000, irq=21

を!!

madwifi-0.9.3.1# iwconfig 省略 Warning: Driver for device ath0 has been compiled with version 22 of Wireless Extension, while this program supports up to version 20. Some things may be broken... ath0 IEEE 802.11b ESSID:"" Nickname:"" Mode:Managed Channel:0 Access Point: Not-Associated Bit Rate:0 kb/s Tx-Power:0 dBm Sensitivity=0/3 Retry:off RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0

Warningか……
wireless-toolsを入れ替える必要があるのかな~

2007年06月30日

iwconfigのWarning!

先日、下記のWarningが出ていた件ですが

madwifi-0.9.3.1# iwconfig 省略 Warning: Driver for device ath0 has been compiled with version 22 of Wireless Extension, while this program supports up to version 20. Some things may be broken... ath0 IEEE 802.11b ESSID:"" Nickname:"" Mode:Managed Channel:0 Access Point: Not-Associated Bit Rate:0 kb/s Tx-Power:0 dBm Sensitivity=0/3 Retry:off RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0

とりあえず、本家のwireless-toolsからversion29-pre22を持ってきて

wireless_tools.29# make wireless_tools.29# make install

とすることで、解決できました。

2007年07月03日

madwifiを変更!したかった……

本家のソースでもいいのですが、やっぱりDebianパッケージを使いたいので再挑戦!

前回のエラーは、どうも組込み向けに新しいカーネルを使っているため発生しているようです。

カーネルを変えるのは結構大変なので、パッケージにtestingを使ってみたいと思います。

# aptitude install madwifi-tools/testing madwifi-doc/testing madwifi-source/testing

"module-assistant"はstableを使っても大丈夫みたいですね~

# m-a prepare # m-a a-i madwifi 省略 Updated infos about 1 packages Getting source for kernel version: 2.6.21.1 Kernel headers available in /lib/modules/2.6.21.1/source apt-get install build-essential Reading package lists... Done Building dependency tree... Done build-essential is already the newest version. You might want to run `apt-get -f install' to correct these: The following packages have unmet dependencies: madwifi-modules-2.6.21.1: Depends: linux-image-2.6.21.1 but it is not installr kernel-image-2.6.21.1 but it is not instale E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a . Done! unpack Extracting the package tarball, /usr/src/madwifi.tar.bz2, please wait... Target package file /usr/src/madwifi-modules-2.6.21.1_0.9.3-2_powerpc.deb already exists, not rebuilding! (however, you could use the -f switch to ignore it) dpkg -Ei /usr/src/madwifi-modules-2.6.21.1_0.9.3-2_powerpc.deb (Reading database ... 34861 files and directories currently installed.) Preparing to replace madwifi-modules-2.6.21.1 1:0.9.3-2 (using .../madwifi-modu. Unpacking replacement madwifi-modules-2.6.21.1 ... dpkg: dependency problems prevent configuration of madwifi-modules-2.6.21.1: madwifi-modules-2.6.21.1 depends on linux-image-2.6.21.1 | kernel-image-2.6.21: Package linux-image-2.6.21.1 is not installed. Package kernel-image-2.6.21.1 is not installed. dpkg: error processing madwifi-modules-2.6.21.1 (--install): dependency problems - leaving unconfigured Errors were encountered while processing: madwifi-modules-2.6.21.1 I: Direct installation failed, trying to post-install the dependencies apt-get -f install Reading package lists... Done Building dependency tree... Done Correcting dependencies... Done The following packages will be REMOVED: madwifi-modules-2.6.21.1 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. 1 not fully installed or removed. Need to get 0B of archives. After unpacking 831kB disk space will be freed. Do you want to continue [Y/n]? y (Reading database ... 34861 files and directories currently installed.) Removing madwifi-modules-2.6.21.1 ...

を~!!
インストールに失敗したけどコンパイルは通ったみたいだ!!

どれどれ…手動でインストールしてみるか!

# dpkg -i madwifi-modules-2.6.21.1_0.9.3-2_powerpc.deb Selecting previously deselected package madwifi-modules-2.6.21.1. (Reading database ... 34843 files and directories currently installed.) Unpacking madwifi-modules-2.6.21.1 (from madwifi-modules-2.6.21.1_0.9.3-2_power. dpkg: dependency problems prevent configuration of madwifi-modules-2.6.21.1: madwifi-modules-2.6.21.1 depends on linux-image-2.6.21.1 | kernel-image-2.6.21: Package linux-image-2.6.21.1 is not installed. Package kernel-image-2.6.21.1 is not installed. dpkg: error processing madwifi-modules-2.6.21.1 (--install): dependency problems - leaving unconfigured Errors were encountered while processing: madwifi-modules-2.6.21.1

う~(-_-;)
2.6.21.1のカーネルパッケージがインストールされてないから駄目だとよ……
(組込み向けに、2.6.21.1を使っているけどパッケージにはしていないからな~)

だったら、手動で強制的にインストールしてみますか!

と、言うことでdebファイルを展開

# ar -x madwifi-modules-2.6.21.1_0.9.3-2_powerpc.deb # ls control.tar.gz debian-binary data.tar.gz madwifi-modules-2.6.21.1_0.9.3-2_powerpc.deb

"data.tar.gz"がプログラム(ライブラリ)が入っているので、解凍してコピー!

# tar zxvf data.tar.gz # cp -a lib/modules/2.6.21.1/kernel/drivers/net/* /lib/modules/2.6.21.1/net/

ちなみに、"/lib/modules/2.6.21.1/kernel/driver/net"にコピーすると、modprobeでインストールできません。"/lib/modules/2.6.21.1/net"にコピーする必要があります。

しっかし、何で"/lib/modules/2.6.21.1/net"何だろう。(?_?)
パッケージのデータ的には、"/lib/modules/2.6.21.1/kernel/driver/net"のはずなんだけどね~

で、ふと気がついた!
コピーしたんじゃ、本家をインストールしているのと変わらないんでは……(-_-;)

2007年08月18日

AtermWL5400AP

なんかこのごろ焦げ臭いな~っと思って電源ケーブル類をチェックしていたのですが一向に怪しいケーブルが見つからず、悩んでいたのですがひょんな事から原因が分かりました。

ここ何日か無線LANを使用していなかったのですが、テーブルでノートパソコンを使用しようと思い無線LANを接続しようとしたらつながりません!(?_?)

あれ~おかしいな~っと思いAPを見に行ったら電源が落ちてます。
(普段から電源を入れっぱなしなのです。)

ACアダプタを抜き差ししてもだめです。

こりゃ~壊れたかな……


っと思ったのですが、そう言えばNECにAterm関連のリコールが出ていたような気がして、調べたら下記の不具合が報告されていました。

【お詫びとお願い】AtermWL5400AP/WL54TEの不具合のお知らせとお詫び


発表は、会社に居たときに見たのですが、すっかり忘れてました……orz

まさか、我が家のAPが壊れるとは思いませんでした。


無償交換なので、問題はないのですが約2週間使えなくなるのは困ったもんです。(-_-;)

About 無線LAN

ブログ「ゆうちくりんの忘却禄」のカテゴリ「無線LAN」に投稿されたすべてのエントリーのアーカイブのページです。過去のものから新しいものへ順番に並んでいます。

前のカテゴリはPukiWikiです。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.35