zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    微信支付Native扫码支付模式二之CodeIgniter集成篇
    如何使用硬盘安装debian8.3?
    使用git将代码push到osc上
    树莓派(Raspberry Pi)搭建简单的lamp服务
    win下修改mysql默认的字符集以防止乱码出现
    CodeIgniter2.2.0-在控制器里调用load失败报错的问题
    Ubuntu Server(Ubuntu 14.04 LTS 64位)安装libgdiplus2.10.9出错问题记录
    linux下mono的安装与卸载
    asp.net中ashx生成验证码代码放在Linux(centos)主机上访问时无法显示问题
    使用NPOI将数据导出为word格式里的table
  • 原文地址:https://www.cnblogs.com/happygirl-zjj/p/5787066.html
Copyright © 2011-2022 走看看