一、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=
interface=wlan0
bridge=br0
driver=nl80211
ignore_broadcast_ssid=
macaddr_acl=
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=
} # Same as previous, but request SSID-specific scanning (for APs that reject
# broadcast SSID)
network={
ssid="second ssid"
scan_ssid=
psk="very secret passphrase"
priority=
} # 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=
} # 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=
} # 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=
} # 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=
}

详细信息参见:wpa_supplicant.conf

hostapd and wpa_supplicant的更多相关文章

  1. hostapd与wpa_supplicant

    hostapd与wpa_supplicant hostapd hostapd includes IEEE 802.11 access point management (authentication ...

  2. wpa_supplicant 配置与应用

    概述 wpa_supplicant是wifi客户端(client)加密认证工具,和iwconfig不同,wpa_supplicant支持wep.wpa.wpa2等完整的加密认证,而iwconfig只能 ...

  3. 关于hostapd的调试

    对于hostapd和wpa_supplicant 的调试时,希望显示更多的调试信息. 未改动代码时,可以将hostapd 进程拉起时所跟的参数加上"-dd". 即使这样,也不能满足 ...

  4. hostapd 和 wap_supplicant

    hostapd : user space daemon for access points, including, e.g., IEEE 802.1X/WPA/EAP Authenticator fo ...

  5. supplicant

    概述 wpa_supplicant是wifi客户端(client)加密认证工具,和iwconfig不同,wpa_supplicant支持wep.wpa.wpa2等完整的加密认证,而iwconfig只能 ...

  6. zz-rtl8188eu的linux-usb-wifi调试及驱动编译150210

    //zz//####################################################################### zz-rtl8188eu的linux-usb ...

  7. WiFi网络WPA2 KRACK漏洞分析报告

    作者:东帆@阿里安全技术平台团队 --------   0x00 漏洞概述 安全研究员Mathy Vanhoef发现的WPA2协议的KRA(Key Reinstallation Attacks)漏洞, ...

  8. wpa_supplicant_8_ti hostapd wpa_supplicant TI 官方的wpa_supplicant hostapd 移植到linux

    在移植 wpa_supplicant_8_ti 的时候碰到很多头文件找不到.然后参考了下面的博客 http://blog.csdn.net/penglijiang/article/details/85 ...

  9. 【转】wpa_supplicant与wpa_cli之间通信过程

    [转]wpa_supplicant与wpa_cli之间通信过程 转自:http://blog.chinaunix.net/uid-26585427-id-4051479.html wpa_suppli ...

随机推荐

  1. python: hashlib 加密模块

    加密模块hashlib import hashlib m=hashlib.md5() m.update(b'hello') print(m.hexdigest()) #十六进制加密 m.update( ...

  2. java 数组基本操作(一维)

    1.数组的声明: 数组类型  数组名[] 2.数组的表示方法 想使用数组中的值,可以使用索引来实现,数组是从0开始的,使用时格式为:数组名[i],比如 a[1],代表第二个值 在数组中要使用数组的长度 ...

  3. load-on-startup

    在servlet的配置当中,<load-on-startup>1</load-on-startup>,一般出现在启动线程的servlet当中 含义是: 标记容器是否在启动的时候 ...

  4. I'm Telling the Truth(二分图)

    .I'm Telling the Truth Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...

  5. Unix网络编程--卷一:套接字联网API

    UNIX网络编程--卷一:套接字联网API 本书面对的读者是那些希望自己编写的程序能够使用成为套接字(socket)的API进行彼此通信的人. 目录: 0.准备环境 1.简介 2.传输层:TCP.UD ...

  6. ascii转int,int在转回ascii原值

    String str = "; int ascii = (int)str; String asciiStr = char(ascii);

  7. stm32中断服务函数

    你打开stm32的启动文件,例如startup_stm32f10x_hd.s 里面有很多中断跳转的入口.用白话说就是固件库帮你写好了发生什么中断时跳转到哪里,这些名字是一个函数名,你要把这些函数写出来 ...

  8. thinkphp model层外挪,以便多个站点可以通用

    /ThinkPHP/ThinkPHP.php  增加如下代码 //非原始代码defined('BASE_LOGIC') or define('BASE_LOGIC', THINK_PATH . '.. ...

  9. 如何在安装32位Oracle客户端组件的情况下以64位模式运行

    C#使用System.Data.OracleClient连接Oracle数据库.之前在WinXP上正常运行的程序移植到Windows 2008 x64上之后就连不上数据库了,错误信息如下:启动data ...

  10. 【leetcode❤python】21. Merge Two Sorted Lists

    #-*- coding: UTF-8 -*- # Definition for singly-linked list.# class ListNode(object):#     def __init ...