重庆生活网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 生活 重庆
查看: 1164|回复: 0
打印 上一主题 下一主题

【校园网WiFi】Atom板连接web认證的公开wifi

[复制链接]
跳转到指定楼层
楼主
发表于 2020-3-13 16:39:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    :在企业或者学校都是WPA2Enterprise网络(方便管理),但是A在此解释部分和说明需要修改的.第一部分configwifi-deviceoptionApCliSsid'CityUGuest'#!!!需要连接的上图中点击一个对话框,右键Inspect(使用Chrome浏览器)或者直a.找到<formaction="login"id="regform"m这是说明一个表单,注意method字段就好,大多是post,但是也可能为<inputid="password"name="password"tyc.找到表单提交的网站(真的需要html知识),比如上图为https:/curl-k-d"user=yourusername&password="user=yourusername&password=yourpass172.24.12.239/cgi-bin/login为我们信息提交的地到步骤3,已经连接好了网络也绑定账号,可以正常使用,但是还有一点问题:每curl-k-d"user=yourusername&password=



转载自 bbs.intorobot.com/thread-695-1-1.html
本文目的: 让Atom可以自动连接需要web认证的wifi,通过认證,使得Atom板具有上网权限

為什么  
:  在企业或者學校都是WPA2 Enterprise网络(方便管理), 但是Atom使用的MT7620N的wifi驅动不支持WPA2 Enterprise网络(也就是普通需要用戶名和密碼的网络,WPA2 Personal网絡即使普通的连接只需要输入密码的网络), 所以Atom不能靠正常配置连接网络.  不過为了支持各種各样的设備(不支持加密的设备), 學校或者企业都会提供公开wifi(连接不需要密碼)然后加web网頁认證的模式,本文即使利用这种wifi权限认证方式來"曲线救国"--让Atom可以连接网絡.



需要      : Atom板, 电腦, wifi的账户与密码, web認证的公开wifi, web开发相關知识

步骤      :
1.配置Atom连接公开wifi


1.1 上電Atom板,電脑連入Atom的wifi

默认为: IntorobotXXXX     (XXXX為MAC后四位,Atom板上的貼纸可以查看)
1.2 電脑通过命令行連接Atom板
第一次使用,
telnet 192.168.8.1   不需要输入密码,建议使用passwd root
命令設置root密码(一旦设置root密码,以后telnet不能再连接,必须使用ssh连接). 已经设置過root密码的请直接

ssh
root@192.168.8.1
连接,输入你的 root密碼.
1.3 修改wireless配置文件
root@Atom:~#
vi /etc/config/wireless

本文全部以CityU的公开wifi   CityUGuest为例演示.
下面为已经配置好的文件:
config wifi-device 'ra0'
        option type 'ralink'
        option mode '9'
        option txpower '100'
        option ht '20+40'
        option country 'US'
        option disabled '0'
        option channel 'auto'


config wifi-iface
        option device 'ra0'
        option network 'lan'
        option mode 'ap'
        option ssid 'IntoRobot-Atom0A62'
        option encryption 'psk2'
        option key 'intorobot'
        option ApCliEnable '1'
        option ApCliEncrypType 'NONE'
        option ApCliSsid 'CityUGuest'
        option ApCliAuthMode 'NONE'
        option ApCliPassWord ''


在此解释部分和说明需要修改的. 第一部分config wifi-device 'ra0' 不需要修改,修改 config wifi-iface部分即可,下文 #后为注释.
config wifi-iface
         option device 'ra0'
         option network 'lan'
         option mode 'ap'                                    #openwrt的工作模式(软ap),跟多了解google
         option ssid 'IntoRobot-Atom0A62'        #Atom对外的wifi名字(SSID),可以修改自己喜欢的
         option encryption 'psk2'                        #Atom对外的wifi的加密方式,选择最常用的最好
         option key 'intorobot'                            #Atom对外wifi的密码(明文)
         option ApCliEnable '1'
         option ApCliEncrypType 'NONE'
         option ApCliSsid 'CityUGuest'                #!!!需要连接的公开wifi名(SSID)!!! 这个根據自己的环境的公开wifi选择设置,必须修改
         option ApCliAuthMode 'NONE'             #公开wifi沒有密码 選擇NONE
         option ApCliPassWord ''                        #没有密碼



Tip: 编辑完后,按Esc键,然后输入 :wq  保存退出(簡单的vim操作). 然后重启wifi
root@Atom:~#
/etc/init.d/network restart
重启wifi会斷开你电脑wifi和atom之间的連接,不用担心,稍后重新连接,然后
root@Atom:~#
ifconfig

查看apcli0(如果你们修改名字),看是否獲取ipv4的地址,一般为ipv4.
apcli0    Link encap:Ethernet  HWaddr 1AD:AA:00:0A:62  
           inet addr:xx.xx.xx.xx
   

至此你的Atom板已经连接到了公开wifi,但是你的电脑和Atom并不能访问网絡(还没有权限).


2.发送POST登陆信息
这一步主要是想网络认證服務器發送认证信息获得上网权限.
公开wifi的web验证一般都至少两個信息(字段) username和password
   


上图中点击一个对話框,右键Inspect (使用Chrome浏览器)或者直接F12开發者模式下区Element,目的是查看这两个要發送信息的字段名字,如下图
   



   


a.找到 <form action="login" id="regform" method="post" autocomplete="off" title="Form used by registered users to login">
这是說明一个表单,注意method字段就好,大多是post,但是也可能为get,两种方式的数据传输是不一样的,需要不同的构造方式,本文以post为例,如果有遇到get情況可以融会贯通或者论壇求助.


b.上面图片其中蓝色的是输入信息的input(需要一点html的知識),
< input id="password" name="password" type="password" size="25" class="text" accesskey="p">
就是上面这样的,主要找到name的值,这是网页提交时候里面密码对應的字段,需要记下,同樣要獲得username的对应字段.

c.找到表單提交的網站(真的需要html知識),比如上图為https://securelogin.arubanetworks.com/cgi-bin/login   这个提交的网站和<form action="login" id="regform" method="post" autocomplete="off" title="Form used by registered users to login">里面的action字段有关系,说明提交到哪儿去. 但是并不能直接使用这个网址,因為还没有联網的权限沒有dns服務器來給我們解析網址.可以ping或者其他的方式获得網址對應的ip (此处针对特殊情况提示,可能有的端口不是默认80,这种情況也需要了解端口号)


OK,至此我们需要了解abc三方面的信息.然后简单利用linux的curl命令来模擬我们的web登陸動作,實质就是把需要的数据发送过去.
以post為例子,命令
root@Atom:~#
curl -k -d "user=yourusername&password=yourpassword"   172.24.12.239/cgi-bin/login
解释:

curl 是一个程序
-k表示不接收加密(注意到web使用了https,正常需要openssh等加密解密,Atom安装openssh什么太麻烦且没有必要)
-d 表示data,也就是用post发送时候数据单獨的,-d的后面data,字段间用&连接.

"user=yourusername&password=yourpassword"为我们需要发送的數据,user即使我们在b里面获取的name的字段名字,password是密码的字段名字,=后面为你自己的信息,每一個都必須正确
172.24.12.239/cgi-bin/login  為我们信息提交的地址,在c步骤获取的,如果端口号不是80需要在ip后面加上:xxx,例如172.24.12.239:8080/cgi-bin/login

該命令發送完后,如果正常我们会收到认证成功后返回的信息(一般是一个网頁,比如說認证成功3秒跳转xx之类),不用理会. 可以嘗試连接网络测试.


3.绑定intorobot云平台賬号
参考docs.intorobot.com/zh/con ... nectedToTheInternet

在网絡连接成功后,如果第一次使用,可以使用luci网页去绑定自己的intorobot賬号,但是請不要修改
   


如上图,請只在右边填写信息配置,左边不要修改.


4.配置自动開机连接网络
到步骤3,已經連接好了网络也绑定账号,可以正常使用,但是还有一点问题: 每次断電后上电都需要ssh进去手動輸入root@Atom:~# curl -k -d "user=yourusername&password=yourpassword"   172.24.12.239/cgi-bin/login    这样很麻烦,所以在此我们设置为开机啟动脚本,使得开機自动运行.


a.创建文件connect_wifi (以root身份)
root@Atom:~#
vi /etc/init.d/connect_wifi


b.然后输入
#/bin/sh /etc/rc.common
# send user and password to auth server via post
START = 49


start()
{
     curl -k -d "user=yourusername&password=yourpassword"   172.24.12.239/cgi-bin/login

}

然后保存退出
c.修改权限,增加执行权限
root@Atom:~#
chmod a+x /etc/init.d/connect_wifi
d.添加软連接,命令
root@Atom:~#
ln -s /etc/init.d/connect_wifi   /etc/rc.d/S49connect_wifi

然后reboot既可以测试


NOTE:

1.注意b里面的數字代表執行的顺序,越大越后面執行,具体和intorobot工作人员可以讨论
2.软鏈接的文件名是有要求的,google

5.监控wifi
在学校和企业使用Atom是很方便的,因为這些地方wifi会覆盖很大的区域,同一个wifi  SSID各个地方都有,对于移动机器人什么比较有利.
可能还不是很完善的是,网络中断需要再次认证连接什么的,这部分在本文提出來,但是不会给出具体的解决方法,只有大致思路.
主要就是监视网络然后失败了就重试.
1. linux crontab开启周期任务区监视网络,失败了就重新连接wifi 认证之类
2.网络監视交给Atom来做,给外部留callback或者中断



遗留問題:
由于对openwrt不是很熟悉,还有问题沒有解決.
在开机自動发送认证信息前,应该先调用wifi连接并且确认连接上了才有可能发送认证信息,這部分需要完善

更多实例教程请查看IntoRobot BBS bbs.intorobot.com/。可加入QQ群(460095989)与眾多创客进行交流。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|联系我们|重庆生活网

GMT+8, 2024-5-6 23:54 , Processed in 0.187500 second(s), 17 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表