美文网首页
Ai-笔记:无线设置——让树莓派使用WPA-Enterprise

Ai-笔记:无线设置——让树莓派使用WPA-Enterprise

作者: 威玲旺卡 | 来源:发表于2017-07-12 14:13 被阅读0次

    前言:这篇是「威玲旺卡Aileen」的原创笔记/教程。在没有告知本人的情况下请不要转载呐,谢谢。


    适用情况

    系统:Raspbian Jessie <= 4.9 (如果你的系统 <= 4.4,鉴于下文TroubleShooting出现的问题,我推荐更新到最新系统)
    板:Raspberry Pi 1/2/3 图形界面和终端都适用
    Raspbian为WPA-PSK提供了界面配置,但想要用WPA企业版的无线网络则需要一番周折。如果你发现你想要用的网络在Raspbian里成为了灰色不可选项,那这篇文章会指导你怎么进行手动配置。(本例采用欧洲高校的教育网络eduroam
    更新时间:2017年7月


    步骤:

    1. 准备工作和断开网络
    2. 自己手动编辑一个配置文件wpa_supplicant.conf
    3. 调用刚才配置的wpa_supplicant.conf,连接到目标网络
    4. dhclient获取IP,就完成了

    1. 准备工作和断开网络:

    • ssid:记下无线网络的具体名称(例子:eduroam);
    • identitypassword:用户名(例子:user_sample)和密码(例子:pw_sample);
    • EPA MethodPhase 2 authentication:了解所在网络支持的扩展认证协议,最常用的方法有PEAP,EAP-TTLS,LEAP等(例子:使用MS-CHAPv2PEAP
    • 获得所在网络的证书(不同的高校和研究机构的eduroam都需要各自的证书,在企业中,询问网络管理员Linux下的***.pem。对于RWTH,在这个链接 下载Root cacert.pem并拷贝到本地,典型又安全的路径是/etc/certs/cacert.pem
    • 完成了准备工作,现在要断开网络,开始本地配置,断网的命令是:
    sudo service networking stop
    

    2. 自己手动编辑一个配置文件:

    创建文本wpa_supplicant.conf,典型又安全的路径是 /etc/wpa_supplicant/wpa_supplicant.conf,可以用系统自带的leafpad开始编辑:

     network={
    
        # -- MUST CONFIGURE --
        # The 'identity' is the username actually used for authentication.
            identity="user_sample"
    
        # -- MUST CONFIGURE --
        # Your password (so make sure the permissions on
            password="pw_sample"
    
        # -- MUST CONFIGURE --
        # CA cert from here:
            ca_cert="/etc/certs/cacert.pem"
    
        # -- TO CHECK --
        # EAP supports PEAP and TTLS.
            eap=PEAP TTLS
    
        # -- TO CHECK --
        # use MS-CHAPv2 as the inner authentication scheme 
        # with the traditional label
            phase1="peaplabel=0"
            phase2="auth=MSCHAPV2"
    
        # Set priority to a big number
            priority=999
    
        # Enable this network block
            disabled=0
    
        # -- MUST CONFIGURE --
        # name of network
            ssid="eduroam"
    
        # SSID should be broadcast, so don't scan.
            scan_ssid=0
    
        # Infrastructure mode
            mode=0
    
        # WPA/WPA2 require OPEN
            auth_alg=OPEN
    
        # WPA and WPA2 (RSN) are both used for eduroam 
        # (depending on which organisation you are at)
        # In the future 'WPA' can be removed (WPA2 only).
            proto=WPA RSN
    
        # CCMP (AES) is stronger, but some organisations use TKIP.
        # In the future 'TKIP' can be removed.
            pairwise=CCMP TKIP
    
        # Use EAP
            key_mgmt=WPA-EAP
    
        # Use PMKSA caching
            proactive_key_caching=1
    
    }
    

    注释 # -- MUST CONFIGURE --的4处分别需要改成你自己的用户名,密码,证书地址和网络名称
    注释# -- TO CHECK --的2处是你需要注意的所在网络的EAP方式,如果不支持PEAP,TTLS则需要相应改动
    其他部分很少变化,保存。
    *配置文本参考了Bristol大学的网络配置文件

    3. 调用自己写的wpa_supplicant.conf,连接到目标网络:

    调用命令如下,记得wpa_supplicant.conf要对应你刚才保存的路径:

    sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -B
    

    *网络论坛上有很多把这一步在/etc/network/interfaces作改动,效果是一样的
    现在,你应该已经连接到目标网络了,用iwconfig命令查看,会发现有类似名叫wlan0或者叫wlp2s0的无线连接,记下这个interface name,下一步有用。

    4. 用dhclient获取IP

    本例中,我们用在典型的命名规则下最通常的情况wlan0,但新的命名规则也在运行,所以刚才说注意一下。(Raspbian依旧运行system V通常是wlan0,Ubuntu运行systemd后会出现新命名),运行dhclient要求获取ip:

    sudo dhclient wlan0
    

    ifconfigip addr show或直接上网验证。

    至此配置就完成了!你应该已经连接成功了。

    TroubleShooting:

    1. 如果你在运行时出现这样的问题

    wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf  -B
    Successfully initialized wpa_supplicant
    nl80211: Driver does not support authentication/association or connect commands
    wlan0: Failed to initialize driver interface
    

    看似驱动突然间就出问题了。
    这个bug可以追溯到ArchLinuxArm的wpa_supplicant功能组件问题。(看来Raspbian 4.4以下都有这个问题。)
    解决方法是更新你的Raspbian系统到最新(本例中是 v4.9)
    更新系统的命令如下:

    sudo apt-get update
    sudo apt-get dist-upgrade
    

    2. 我自己板上的/etc/network/interfaces文件内容(仅作参考)

    # interfaces(5) file used by ifup(8) and ifdown(8)
    
    # Please note that this file is written to be used with dhcpcd
    # For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'
    
    # Include files from /etc/network/interfaces.d:
    source-directory /etc/network/interfaces.d
    auto lo
    iface lo inet loopback
    
    iface eth0 inet manual
    
    allow-hotplug wlan0
    iface wlan0 inet manual
        wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
    
    allow-hotplug wlan1
    iface wlan1 inet manual
        wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
    
    #iface default inet dhcp
    
    #iface lo inet loopback
    #iface eth0 inet dhcp
    
    #allow-hotplug wlan0
    
    #iface wlan0 inet dhcp
    #    pre-up wpa_supplicant -B -Dwext -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
    #    post-down killall -q wpa_supplicant
    

    3. 我自己板上的/etc/wpa_supplicant/wpa_supplicant.conf文件内容(仅作参考)

    country=GB
    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
    update_config=1
    
    network={
      ssid="eduroam"
      key_mgmt=WPA-EAP
      pairwise=CCMP TKIP
      group=CCMP TKIP
      eap=PEAP TTLS
      identity="user_sample"
      password="password_sample"
      ca_cert="/etc/certs/cacert.pem"
      phase1="peapver=0"
      phase2="MSCHAPV2"
      scan_ssid=1
      mode=0
      auth_alg=OPEN
      proto=WPA RSN
      proactive_key_caching=1
      }
    

    4. 其他命令

    kill掉正在执行的wpa_supplicant程序

    sudo killall -q wpa_supplicant
    

    *本次编辑时间:2017年7月

    相关文章

      网友评论

          本文标题:Ai-笔记:无线设置——让树莓派使用WPA-Enterprise

          本文链接:https://www.haomeiwen.com/subject/uprbhxtx.html