linux(CentOS6)下的wifi热点安装配置------hostapd-2.0

linux下wifi软热点---hostapd-2.0


有兴趣的朋友可以参看下面网站:
http://w1.fi/hostapd/
http://www.ibm.com/developerworks/cn/linux/l-wifiencrypthostapd/
http://w1.fi/cgit/hostap/plain/hostapd/hostapd.conf

linux(CentOS6)下的wifi热点安装配置------hostapd-2.0


经个人测试,有两种方案可行:

A.桥接模式:
手头上有个路由器时,如果是校园网,接口直接接平行接口,如果是电信,长城宽带等则需要先设置路由器,主要是把服务商提供的用户名和密码设到路由器中,再将网线头接到蓝色的WAN接口上即可,接下来就是软件安装及配置了。

CentOS6.2为例

往往开源软件的最新版本都首先会以源码包的形式发布,之后才有一些第三方或厂家来编译相对应版本的二进制包,目前的最新版本是2.0版本,详见官方网站:

wget http://hostap.epitest.fi/releases/hostapd-2.0.tar.gz
或http://w1.fi/releases/hostapd-2.0.tar.gz


首先还是安装源码包编译所依赖的库,
yum install libnl-devel

tar -zxvf hostapd-2.0.tar.gz -C /usr/local/src
cd /usr/local/src/hostapd-2.0/hostapd
cp defconfig .config
make
make install

好的,到此以经安装完成。接下来就是配置了,
桥接模式的好外是直接利用路由器的dhcp功能,当手机,笔记本等客户端连热点时直接获取路由器分配的ip,然后只要通过iptables的nat功能就可以共享了!
如何配桥接?
很多朋友可能已经注意到,一般版本默认都没有配桥接,怎么办,手动配一个,
vim /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE="br0"
BOOTPROTO="dhcp"
#BOOTPROTO="static"
NM_CONTROLLED="no"
ONBOOT="yes"

TYPE=Bridge
DELAY=0

vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE="eth0"
BOOTPROTO="none"
NM_CONTROLLED="no"
ONBOOT="yes"

BRIDGE=br0


/etc/init.d/network restart


桥接配好后再来看hostapd的配置文件,留心的朋友可能注意到,在源码安装目录中有一个叫hostapd.conf的文件,对,这个就是原始模板,只需修改其中几项即可,但该文件注释太多,上下翻很麻烦,可以将其过滤出来,如:
grep -v ^# hostapd.conf|grep -v ^$ >test.conf

这样看就清晰多了,当然还可以进一步精简,以下是我个人的简单配置,采用的是最简单的密码加密,没有涉及到ssl等高级选项,有兴趣的朋友可以尝试尝试。
###################################################################
interface=wlan0
bridge=br0        #桥接模式一定要添加这一项
driver=nl80211        #无线网卡的驱动
ssid=CentOS6        #热点名称
hw_mode=g
channel=1
###################################################################

macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=3
wpa_passphrase=11112222        #密码
wpa_key_mgmt=WPA-PSK         #加密方式,不易被破解,比wep更安全,个人以前就用spoonwep,minidwep-gtk等bt4上的破解软件配合加强型无线网卡成功破解过很多以wep加密的热点噢,所以,这一点一定要用WPA-PSK方式加密。
wpa_pairwise=TKIP
rsn_pairwise=CCMP

###################################################################


logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
beacon_int=100
dtim_period=2
max_num_sta=255
rts_threshold=2347
fragm_threshold=2346
wmm_enabled=1
wmm_ac_bk_cwmin=4
wmm_ac_bk_cwmax=10
wmm_ac_bk_aifs=7
wmm_ac_bk_txop_limit=0
wmm_ac_bk_acm=0
wmm_ac_be_aifs=3
wmm_ac_be_cwmin=4
wmm_ac_be_cwmax=10
wmm_ac_be_txop_limit=0
wmm_ac_be_acm=0
wmm_ac_vi_aifs=2
wmm_ac_vi_cwmin=3
wmm_ac_vi_cwmax=4
wmm_ac_vi_txop_limit=94
wmm_ac_vi_acm=0
wmm_ac_vo_aifs=2
wmm_ac_vo_cwmin=2
wmm_ac_vo_cwmax=3
wmm_ac_vo_txop_limit=47
wmm_ac_vo_acm=0
eapol_key_index_workaround=0
eap_server=0
own_ip_addr=127.0.0.1

不慌,在启动之前还要做一个nat转换:
#################################################
#!/bin/bash
#To share a wifi
#Made by liujun,2012-01-21
#################################################
#临时开启IP转发,即路由功能
echo 1 >/proc/sys/net/ipv4/ip_forward
echo "己开启路由转发功能"
echo ""
sleep 0.3

#清除防火墙规则
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z


#允许网络包进入
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i br0 -j ACCEPT
iptables -A INPUT -i wlan0 -j ACCEPT

#允许网络包出去
iptables -A OUTPUT -j ACCEPT
iptables -A FORWARD -j ACCEPT

#路由功能
iptables -t nat -I POSTROUTING -o br0 -j MASQUERADE


echo "Done"
echo ""
echo "Having a good time!"

ps:要永久开启路由功能就得调整内核参数了,也挺简单,
vim /etc/sysctl.conf
找到如下这一行,将前面的#号删除即可,有的是把‘=0’改成‘=1’
net.ipv4.ip_forward=1

再执行,sysctl -p来使内核参数即时生效。

OK,准备工作做完了,接下来就是启服务了。

hostapd  /home/foo/test.conf &

这样就后台运行了,敢紧拿上小i连上去冲浪吧!

#########################################################
B.直接模式。
上面是借助了路由器的dhcp功能,这里所谓的直接,就不需要配桥接等。而是要安装isc-dhcp-server来为客户端分配ip,

yum install  dhcpd

vim /etc/dhcp/dhcpd.conf

subnet 192.168.0.0 netmask 255.255.255.0 {
     range 192.168.0.100 192.168.0.200;
     option domain-name-servers ns1.internal.example.org;
     option domain-name "internal.example.org";
     option routers 192.168.0.1;
     option broadcast-address 192.168.0.255;
     default-lease-time 600;
     max-lease-time 7200;
     }
修改dhcp服务器的配置文件,这里也是做最简单的功能,因为不是专谈dhcp服务器。找到相应的位置随便选个ip段配上,我这里就用192.168.0.0/24这个常用网段来做。

注意:

vim /etc/sysconfig/dhcpd

# Defaults for dhcp initscript
# sourced by /etc/init.d/dhcp
# installed at /etc/default/isc-dhcp-server by the maintainer scripts

#
# This is a POSIX shell fragment
#

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
   Separate multiple interfaces with spaces, e.g. "eth0 eth1".
DHCPDARGS="wlan0"


因为是电脑的无线网卡来为客户端分配ip,所以这里填上服务器监听接口。

还可以修改/etc/sysconfig/network-scripts/ifcfg-wlan0这个文件,如何修改,只需将wlan0也桥接到br0即可。加上BRIDGE=br0


启服务,直接以管理员身份执行
/etc/init.d/dhcpd start

之后的nat以及hostapd软件的安装都同上。