• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    使用hostapd和dhcpd来在Ubuntu上开启无线热点

    Hostapd简介:

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

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

    通过Hostapd可以将无线网卡切换为AP/Master模式,通过修改配置文件,可以建立一个开放式的(不加密)的,WEP,WPA或WPA2的无线网络。并且通过修改配置文件可以设置无线网卡的各种参数,包括频率,信号,beacon包时间间隔,是否发送beacon包,如果响应探针请求等等。还可以设置mac地址过滤条件等。具体可以参考它的配置文件说明。

    下面就从官网上摘下的部分原因及翻译。翻译的不好请见谅。

     

    hostapd is an IEEE 802.11 AP and IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator.

    Hostapd是IEEE 802.11 AP and IEEE 802.1X/WPA/WPA2/EAP/RADIUS的认证器

    hostapd is a user space daemon for access point and authentication servers. It implements IEEE 802.11 access point management, IEEE 802.1X/WPA/WPA2/EAP Authenticators, RADIUS client, EAP server, and RADIUS authentication server. The current version supports Linux (Host AP, madwifi, mac80211-based drivers) and FreeBSD (net80211).

    Hostapd是一个访问点以及认证服务器的运行于用户空间的守护程序。它实现了IEEE 802.11接入带你(Access Point)的管理功能,是IEEE 802.1X/WPA/WPA2/EAP的认证器,是 RADIUS client, EAP server, and RADIUS认证服务器。当前版本的hostapd支持linux上Host AP,madwifi和基于mac80211协议栈的驱动程序,以及FreeBSD上net80211协议栈的驱动程序。

     

    hostapd is designed to be a “daemon” program that runs in the background and acts as the backend component controlling authentication. hostapd supports separate frontend programs and an example text-based frontend, hostapd_cli, is included with hostapd.

    Hostapd是一个后台守护进程,作为后台组件来控制和管理认证功能。Hostapd支持多个前台程序。hostapd_cli,就是一个跟hostapd一起的命令行前台程序。

    下面我们来看一下利用hostapd和dhcpd在Ubuntu系统上建立无线热点的方法:
    执行 iwlist 如果 Supported interface modes 的下有 AP 的话表示该网卡支持AP模式,可以创建无线热点。
    比如我的无线网卡是Qualcomm Atheros AR9485 Wireless Network Adapter,Linux内核自带了驱动ath9k,支持创建AP无线热点。
    1. 安装hostapd和dhcpd

    复制代码
    代码如下:

    sudo apt-get install hostapd isc-dhcp-server

    开机不需要启动这两个服务,建议把它们关掉:

    复制代码
    代码如下:
    sudo update-rc.d -f hostapd remove

    注释掉下面两个文件start on那一行:

    复制代码
    代码如下:
    sudo nano /etc/init/isc-dhcp-server.conf
    sudo nano /etc/init/isc-dhcp-server6.conf

    2. 配置hostapd和dhcpd

    复制代码
    代码如下:

    sudo nano /etc/hostapd/hostapd.conf
      注意自己设置其中的无线热点名称ssid和认证密码wpa_passphrase.

    复制代码
    代码如下:

    interface=wlan0
    driver=nl80211
    ssid=YOUR_AP_NAME
    hw_mode=g
    channel=10
    macaddr_acl=0
    auth_algs=3
    wpa=2
    wpa_passphrase=YOUR_AP_PASSWORD
    wpa_key_mgmt=WPA-PSK
    wpa_pairwise=TKIP CCMP
    rsn_pairwise=TKIP CCMP


    复制代码
    代码如下:
    sudo nano /etc/dhcp/dhcpd.conf
    在末尾加入以下内容:

    复制代码
    代码如下:

    subnet 192.168.0.0 netmask 255.255.255.0
    {
    range 192.168.0.2 192.168.0.10;
    option routers 192.168.0.1;
    option domain-name-servers 192.168.0.1,180.76.76.76,8.8.8.8;
    }

    其中180.76.76.76是百度公共DNS服务器,8.8.8.8则是Google的DNS服务器.

    在自己的家目录下创建一个hostapd目录,里面新建启动和关闭脚本,比如我这样写(注意把里面eechen换成你的用户名):

    复制代码
    代码如下:

    nano /home/eechen/hostapd/ap-start.sh/p> p>#!/bin/bash
    # 开启内核IP转发
    bash -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
    # 开启防火墙NAT转发(如果本机使用eth0上网,则把ppp0改为eth0)
    iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
    # 关闭NetworkManager对无线网卡的控制
    nmcli nm wifi off
    # 设置并启动无线网卡
    ifconfig wlan0 192.168.0.1 netmask 255.255.255.0
    # 解锁无线设备,可以用rfkill list查看解锁结果.
    rfkill unblock wlan
    # 睡眠6秒,待rfkill解锁生效
    sleep 6s
    # 启动dhcpd和hostapd,如果hostapd无法启动请查看日志hostapd.log,查看这两个进程ps -ef|egrep "dhcpd|hostapd"
    nohup hostapd /etc/hostapd/hostapd.conf >/home/eechen/hostapd/hostapd.log 2>1
    dhcpd wlan0 -pf /var/run/dhcpd.pid
    ps -ef|head -n1 ps -ef|egrep "dhcpd|hostapd"
    nano /home/eechen/hostapd/ap-stop.sh/p> p>#!/bin/bash
    killall hostapd dhcpd
    bash -c "echo 0 > /proc/sys/net/ipv4/ip_forward"
    ifconfig wlan0 down

    3. 启动hostapd和dhcpd

    在桌面新建两个启动器(快捷方式),里面分别填入:

    复制代码
    代码如下:
    gksu /home/eechen/hostapd/ap-start.sh
    gksu /home/eechen/hostapd/ap-stop.sh

    因为脚本需要root用户身份执行,所以需要用gksu运行。

    注意:如果你开启了ufw防火墙,ufw默认是禁止转发的,这会导致防火墙NAT转发失效,这时应该设置允许转发:

    复制代码
    代码如下:
    sudo nano /etc/default/ufw 将 DEFAULT_FORWARD_POLICY 设为 ACCEPT

    然后重启ufw即可:

    复制代码
    代码如下:
    sudo service ufw restart

    之后运行启动器即可启动和关闭AP无线热点。

    4. 用wireshark监控经过wlan0的通信

    安装wireshark(其中 eechen改为你的用户名):

    复制代码
    代码如下:

    sudo apt-get install wireshark
    sudo chgrp eechen /usr/bin/dumpcap
    sudo chmod 750 /usr/bin/dumpcap
    sudo setcap cap_net_raw,cap_net_admin+eip /usr/bin/dumpcap

    Alt+F2运行wireshark,选择网络接口wlan0,Filter里输入http.cookie contains mail.qq.com
    然后手机端登录网页QQ邮箱,在WireShark即可查看和获取QQ邮箱登录的Cookie,如图所示:

    右键点击Cookie项把Value复制出来,然后用Firefox访问站点https://w.mail.qq.com/,Alt+C激活 Original Cookie Injector( GreaseMonkey),弹出输入框Wireshark Cookie Dump,把Cookie项的Value粘贴到里面,然后点OK确定并刷新页面即可登录QQ邮箱。或者你使用Tamper Data这个Firefox扩展在提交时修改Cookie值也是可以的。

    附:

    查看连接wlan0网络的客户端:

    复制代码
    代码如下:
    sudo arp
    返回IP地址和MAC硬件地址和无线接口名.

    复制代码
    代码如下:
    iw dev wlan0 station dump
    能显示收发包和字节数等.

    查看网络接口速度:

    复制代码
    代码如下:
    sar -n DEV 1

    上一篇:在Ubuntu下配置ProFTPD和VSFTPD的教程
    下一篇:Ubuntu系统运行时降低硬盘占用的相关尝试
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    使用hostapd和dhcpd来在Ubuntu上开启无线热点 使用,hostapd,和,dhcpd,来在,