少校
- 注册时间
- 2008-6-11
- 金币
- 2937 个
- 威望
- 31 个
- 荣誉
- 7 个
尚未签到
|
本帖最后由 bestgo 于 2009-12-29 20:18 编辑 $ [% `( h M- [9 @' u+ y( R
z X0 j) o4 y' l7 U- O. B
如何构建hostapd:
. Y% ~5 z) c- y+ R1 m1 h9 L1 m- {: q! L5 @8 D! c. N
目前hostapd的最新版本是0.7.0,稳定版本是0.6.9,这里使用后者。
) N2 E( V0 p; K8 K# `7 e平台环境为centos 5.4,如果编译不过,可能要根据提示手工安装一些devel的包8 S: N6 S7 m3 N4 V
7 [- r0 R6 `, C( P
1. 在官方站点获取tar包后解压,进入hostapd这个子目录) O6 V2 Y0 Z" F6 e/ z5 h
2. 生成.config文件,cp defconfig .config
3 @' r0 c7 D, I3 ? U( z# B/ U. S* U3. 配置.config文件. M/ k' h' m) W/ ~- I8 ^ K1 {
CONFIG_DRIVER_WIRED=y
( w: C, R* i' |+ N, F# ]3 d; xCONFIG_DRIVER_NONE=y
6 w4 ]8 p! {6 K; u2 E# \) uCONFIG_EAP=y
7 t- o( w& s6 ?* gCONFIG_EAP_MD5=y" p$ G! _1 u" b
CONFIG_EAP_TLS=y
. ]( g7 M, T* B2 I* J0 x' F5 z, BCONFIG_EAP_MSCHAPV2=y
$ ?& B5 w$ d, UCONFIG_EAP_PEAP=y+ C. N+ r" N% f8 d( O u+ L
CONFIG_EAP_GTC=y8 J1 w3 K) g) o* a: ?# m8 V
CONFIG_EAP_TTLS=y
% t, Z- L5 h/ R! k1 G- O( ~# K& YCONFIG_EAP_SIM=y
4 r+ i5 L: G2 @; Z+ Y: QCONFIG_EAP_AKA=y9 L: T/ l$ O S1 `1 Y! \
CONFIG_EAP_PAX=y) G! ^/ c% }/ f6 e' C- c
CONFIG_EAP_PSK=y
$ A& i$ M- m2 W4 h4 ?/ J0 ZCONFIG_EAP_SAKE=y8 [8 f& f* `. n5 k% |% K
CONFIG_EAP_GPSK=y" w3 F s; D3 u B/ I* P& a6 V v/ b
CONFIG_EAP_GPSK_SHA256=y1 y' \! v5 ]: S2 m4 u8 Y- b( R: m
#CONFIG_EAP_FAST=y
& e6 V% f' h* XCONFIG_EAP_IKEV2=y
2 X; ]( D* }, n9 k8 }8 ^CONFIG_EAP_TNC=y& b# K& L: U. g. @9 Y! M! @
CONFIG_PKCS12=y4 ?2 g1 N- i3 p% I& U) t
CONFIG_RADIUS_SERVER=y; ?+ O& Z; C; {6 B) J
6 h q% f+ W3 a; a: B# _) F
这里需要注意几点:+ ~% Q, ?1 g4 s5 l& ?% }" u
$ y( b! l* ~0 n
一,这里我仅仅把hostapd作为一个radius server使用,它还能做AP,.config文件的其它部分都注释掉。
$ x4 s- r( Y* x2 W$ W# v! u5 c6 j r# N
二,这里我只关心eap-aka,其它的eap类型可以根据自己需要添加,用不到的也可以注释掉。
3 c2 s+ B1 A+ O' y# \3 U! K4 x1 G$ `( E! q, ~! y& W
三,这里特别注明eap-fast需要注释掉,因为启用该认证类型需要对openssl这个库打补丁openssl-0.9.9-session-ticket.patch,否则编译会失败,系统默认的openssl版本为openssl-0.9.8e-12.el5。
6 T! b% M* [& n- B, O( a0 b) u9 d* F1 }/ R" ^
4. 接着就make,make install- k2 S3 b9 i! B5 E
配置文件在hostapd这个目录下有范例,可以自己参考,我这里也放一下最常用配置
7 W1 P3 A9 n: i4 D9 _4 Z5. 配置hostapd.conf
7 N# Z! D5 e6 l0 y9 N# m% [/ ointerface=eth0 # 这里设置你用来提供服务的网卡接口名
5 y8 \, d2 B! z3 m. heap_server=1
4 D( [% {) M$ s$ f0 Keap_user_file=/usr/local/etc/hostapd/hostapd.eap_user
/ U" E0 a; x$ Q2 G, kca_cert=/usr/local/etc/hostapd/certs/wifiCA.pem& y, |2 _/ X# t; Y6 |3 L( d" t: W
server_cert=/usr/local/etc/hostapd/certs/radius_cert.pem
% n: R' ] n2 \+ c- t6 x9 Dprivate_key=/usr/local/etc/hostapd/certs/radius_key.pem* O$ `0 m! B( y, L/ s4 o% p/ P" H
radius_server_clients=/usr/local/etc/hostapd/radius_clients
. ~: j! l) ]& m/ `$ Q) C5 J9 bradius_server_auth_port=1812 # 提供服务的端口号
# ~; n; d2 v F( G! V [ u6. 配置hostapd.eap_user
; r, b. U% J6 [+ J; l! X9 g1 y使用peap、tls或ttls可以这样配置,这里用户名为anywlan,密码为anywlan123:
7 q- t- O% o9 K! h4 i; |+ J* TLS,PEAP,TTLS# \2 T! u/ j- C* \1 p( x1 `
"anywlan" MSCHAPV2,GTC,PSK,PAX,SAKE,TTLS-PAP,TTLS-CHAP,TTLS-MSCHAP,MD5,TTLS-MSCHAPV2 "anywlan123" [2]
5 n! Z5 A; [% P6 t3 W5 [
: }! T# v/ w: `, R; ?) ]0 K4 a$ p7. 配置hostapd.radius_clients Y3 R. v0 x6 [
允许IP为192.168.1.1的无线路由器使用这个radius服务器,共享密码为anywlan123:
, a: h9 g! e: C/ p192.168.1.1 anywlan123& p! n" y0 d, M( i7 B: M* |! O% J
$ b9 Q- w+ D6 w' ]( _& e; Y- j' [' J, L
运行hostapd:+ U5 ~) a0 c, y6 d" y) P
hostapd hostapd.conf -dd) m5 t+ r& {, x- G, n7 z
使用-dd选项可以输出调试信息,还可以后台运行:
2 x6 w9 F y) I4 U' z+ mhostapd hostapd.conf -B- v) n8 }; `2 F' E+ _4 U
* n! U) ^# ?4 h2 a" T查看hostapd的状态,占用1812端口为默认的radius认证协议端口) A6 b: a6 s2 K
$ n, M/ q7 s! O* A( J" Xudp 0 0 0.0.0.0:1812 0.0.0.0:* 28046/hostapd
$ D4 @# h" n7 g7 D* D6 Xudp 0 0 0.0.0.0:67 0.0.0.0:* 28046/hostapd
! e, M5 O, ? m% |) j' `! z6 y- x现在,一个能够工作的radius服务器已经配置好了。
4 `/ M% y( p$ r! }! S4 X目前不知道该如何配置eap-sim和eap-aka这类需要智能卡辅助的认证方式,请大侠帮忙。 |
|