hostapd and wpa_supplicant

一、Hostapd


 

 hostapd 是一个用户态用于AP和认证服务器的守护进程。它实现了IEEE 802.11相关的接入管理,IEEE 802.1X/WPA/WPA2/EAP 认证, RADIUS客户端,EAP服务器和RADIUS 认证服务器。Linux下支持的驱动有:Host AP,madwifi,基于mac80211的驱动。

  hostapd能够使得无线网卡切换为master模式,模拟AP(通常可以认为是路由器)功能,也就是我们说的软AP(Soft AP)。

  Hostapd的功能就是作为AP的认证服务器,负责控制管理stations(通常可以认为带无线网卡的PC)的接入和认证。

Hostapd 工作流程分析:http://blog.chinaunix.net/uid-30081165-id-5290531.html

Hostapd 基本配置:http://www.cnblogs.com/zhuwenger/archive/2011/03/11/1980294.html

基本配置项:

ssid=test
hw_mode=g
channel=10
interface=wlan0
bridge=br0
driver=nl80211
ignore_broadcast_ssid=0
macaddr_acl=0
accept_mac_file=/etc/hostapd.accept
deny_mac_file=/etc/hostapd.deny
  • ssid:别人所看到的我们这个无线接入点的名称;
  • hw_mode:指定802.11协议,包括 a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g;
  • channel:设定无线频道;
  • interface:接入点设备名称,注意不要包含ap后缀,即如果该设备称为wlan0ap,填写wlan0即可;
  • bridge:指定所处网桥,对于一个同时接入公网、提供内部网和无线接入的路由器来说,设定网桥很有必要;
  • driver:设定无线驱动,我这里是nl80211;
  • macaddr_acl:可选,指定MAC地址过滤规则,0表示除非在禁止列表否则允许,1表示除非在允许列表否则禁止,2表示使用外部RADIUS服务器;
  • accept_mac_file:指定允许MAC列表文件所在;
  • deny_mac_file:指定禁止MAC列表文件所在;

 

二、wpa_supplicant


  WPA的全称是Wifi Protected Access,有WPA和WPA2两个标准,是一种保护无线电脑网络(Wi-Fi)安全的系统。它是研究者在前一代的系统有线等效加密(WEP)中找到的几个严重的弱点而产生的。

  WPA 实现了 IEEE 802.11i 标准的大部分,是在 802.11i 完备之前替代 WEP 的过渡方案。WPA 的设计可以用在所有的无线网卡上,但未必能用在第一代的无线接入点上。WPA2 实现了完整的标准,但不能用在某些古老的网卡上。这两个都提供优良的安全能力,但也都有两个明显的问题:

  • WPA或WPA2 一定要启动并且被选来代替 WEP 才有用,但是大部分的安装指引都把 WEP 列为第一选择。
  • 在使用家中和小型办公室最可能选用的“个人”模式时,为了安全的完整性,所需的密钥一定要比已经教用户设定的六到八个字符的密码还长。
该标准的数据加密采用TKIP协议(Temporary Key Integrity Protocol),认证有两种模式可供选择,一种是使用802.1x协议进行认证;一种是称为预先共享密钥PSK(Pre-Shared Key)模式。
 
认证方式:
  WPA(Wi-Fi Protected Access)加密方式目前有四种认证方式:WPA、WPA-PSK、WPA2、WPA2-PSK。采用的加密算法有二种:AES(Advanced Encryption Standard高级加密算法)和TKIP(Temporal Key Integrity Protocol临时密钥完整性协议)。
  • WPA
    WPA是用来替代WEP的。WPA继承了WEP的基本原理而又弥补了WEP的缺点:WPA加强了生成加密密钥的算法,因此即便收集到分组信息并对其进行解析,也几乎无法计算出通用密钥;WPA中还增加了防止数据中途被篡改的功能和认证功能。
  • WPA-PSK(预先共享密钥Wi-Fi保护访问)
    WPA-PSK适用于个人或普通家庭网络,使用预先共享密钥,秘钥设置的密码越长,安全性越高。WPA-PSK只能使用TKIP加密方式。
  • WPA2(WPA第二版)
    WPA2是WPA的增强型版本,与WPA相比,WPA2新增了支持AES的加密方式。
  • WPA2-PSK
    WPA-PSK类似,适用于个人或普通家庭网络,使用预先共享密钥,支持TKIP和AES两种加密方式。
一般在我们家庭无线路由器设置页面上,选择使用WPA-PSK或WPA2-PSK认证类型即可,对应设置的共享密码尽可能长些,并且在经过一段时间之后更换共享密码,确保家庭无线网络的安全。
 
基本配置
network=开始是无线接入点的具体配置
# Example blocks:

# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers
network={
    ssid="simple"
    psk="very secret passphrase"
    priority=5
}

# Same as previous, but request SSID-specific scanning (for APs that reject
# broadcast SSID)
network={
    ssid="second ssid"
    scan_ssid=1
    psk="very secret passphrase"
    priority=2
}

# Only WPA-PSK is used. Any valid cipher combination is accepted.
network={
    ssid="example"
    proto=WPA
    key_mgmt=WPA-PSK
    pairwise=CCMP TKIP
    group=CCMP TKIP WEP104 WEP40
    psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
    priority=2
}

# WPA-Personal(PSK) with TKIP and enforcement for frequent PTK rekeying
network={
    ssid="example"
    proto=WPA
    key_mgmt=WPA-PSK
    pairwise=TKIP
    group=TKIP
    psk="not so secure passphrase"
    wpa_ptk_rekey=600
}

# Only WPA-EAP is used. Both CCMP and TKIP is accepted. An AP that used WEP104
# or WEP40 as the group cipher will not be accepted.
network={
    ssid="example"
    proto=RSN
    key_mgmt=WPA-EAP
    pairwise=CCMP TKIP
    group=CCMP TKIP
    eap=TLS
    identity="user@example.com"
    ca_cert="/etc/cert/ca.pem"
    client_cert="/etc/cert/user.pem"
    private_key="/etc/cert/user.prv"
    private_key_passwd="password"
    priority=1
}

# EAP-PEAP/MSCHAPv2 configuration for RADIUS servers that use the new peaplabel
# (e.g., Radiator)
network={
    ssid="example"
    key_mgmt=WPA-EAP
    eap=PEAP
    identity="user@example.com"
    password="foobar"
    ca_cert="/etc/cert/ca.pem"
    phase1="peaplabel=1"
    phase2="auth=MSCHAPV2"
    priority=10
}

详细信息参见:wpa_supplicant.conf

posted @ 2016-08-19 11:47  Rosanne  阅读(1782)  评论(0编辑  收藏  举报