V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
weifan
V2EX  ›  程序员

请教程序员大哥们一个上网认证的问题

  •  
  •   weifan · 2020-12-24 17:33:15 +08:00 · 2069 次点击
    这是一个创建于 1421 天前的主题,其中的信息可能已经有所发展或是发生改变。
    内网上互联网需要认证,山石网科的设备,应该是基于 token 认证的。

    认证流程是这样

    打开浏览器,地址栏输入一个地址(非 https )后,会自动跳转到认证登入页面
    ip:port/webauth/index.html?old-url=http%3a%2f%2f22.22.22.22%2f&token=NZBZZPxTFjNkZ4nV4eXxiDM5MzLYLvglnnRPG3LX6TNaa%2bBtmE0ssrM8%2bam2cUbTlyoolpY57pCvG8VAOVmtiFhah6kzGAcAcrSUlyOO0PE7Gxy7RRHjTcPKw%3d%3d
    然后就可以登入了


    现在的问题是,Linux 以最小化安装的,没有浏览器,这要咋认证呀
    jifengg
        1
    jifengg  
       2020-12-24 17:49:28 +08:00   ❤️ 4
    curl

    如果不知道命令,先在电脑上用 chrome,按 F12 打开 Network,访问你的网址,确认没有问题,右击,copy as curl (bash)
    301
        2
    301  
       2020-12-24 17:53:07 +08:00 via Android
    比较笨的做法:在另外的设备上下载浏览器的安装包拷贝到这台机子上进行离线安装
    boris93
        3
    boris93  
       2020-12-24 17:54:58 +08:00 via Android
    @301 #2 最小安装连 GUI 都没,浏览器自然也跑不起来

    #1 靠谱
    mringg
        4
    mringg  
       2020-12-24 17:56:31 +08:00
    在 linux 上启动一个代理服务器,然后带界面的设备用这个代理进行认证?
    qwerthhusn
        5
    qwerthhusn  
       2020-12-24 18:44:55 +08:00
    找爬虫大佬 写个爬虫
    gefranks
        6
    gefranks  
       2020-12-24 18:54:52 +08:00
    可以装个浏览器 x window 本地显示
    Tink
        7
    Tink  
       2020-12-24 19:55:17 +08:00 via Android
    ssh -X 传回来本地认证
    weifan
        8
    weifan  
    OP
       2020-12-24 21:01:21 +08:00
    @jifengg curl 怎么获取返回的 token 呀
    weifan
        9
    weifan  
    OP
       2020-12-24 21:03:55 +08:00
    @301 最小化安装,没桌面
    weifan
        10
    weifan  
    OP
       2020-12-24 21:06:12 +08:00
    @qwerthhusn 是,这是个思路,不会写 python,Google 了下,还是不会写😂
    weifan
        11
    weifan  
    OP
       2020-12-24 21:08:28 +08:00
    @mringg 想到的有两种。
    1. 学下 python,应该可以。主要是它这个认证是,打开一个地址,认证服务器那边给你返回一个带 token 的,然后在传用户名和密码,这个 token 我不懂怎么获取
    weifan
        12
    weifan  
    OP
       2020-12-24 21:10:01 +08:00
    @mringg
    2. 内网起一个 dhcp 服务器之类的,通过这台去上网,不知行不行。
    mringg
        13
    mringg  
       2020-12-24 21:45:48 +08:00
    @weifan 都可以试试,我感觉这个搞定这个应该不难的
    systemcall
        14
    systemcall  
       2020-12-24 22:14:37 +08:00
    装个 w3m
    shynome
        15
    shynome  
       2020-12-24 22:38:24 +08:00 via Android
    问他们要解决方案,他们肯定可以解决你这种情况的,都买了付费产品不去问真的浪费
    weifan
        16
    weifan  
    OP
       2020-12-24 22:59:44 +08:00
    @systemcall 不行 命令行的浏览器都试过了。
    learningman
        17
    learningman  
       2020-12-24 23:04:52 +08:00
    curl 肯定可以啊,获取到了参数管道一下然后存参里再请求呗
    zu1k
        18
    zu1k  
       2020-12-24 23:12:53 +08:00 via Android
    用 ssh 开个隧道,然后用本机浏览器认证
    weifan
        19
    weifan  
    OP
       2020-12-24 23:22:03 +08:00
    @learningman 请教 怎么获取呢?是带什么选项么?
    learningman
        20
    learningman  
       2020-12-25 01:03:49 +08:00
    @weifan 看 js,然后自己写逻辑重现
    我建议你放弃,我看你啥都不会
    Keyes
        21
    Keyes  
       2020-12-25 07:50:36 +08:00 via iPhone
    Lynx 解君愁
    Terminal based web browser
    ik
        22
    ik  
       2020-12-25 09:02:59 +08:00 via iPhone
    上面说的抓包不会的话,可以装个 http 代理 ,通过代理访问应该也会跳认证,认证之后主机也就有网络权限了。
    ik
        23
    ik  
       2020-12-25 09:05:14 +08:00 via iPhone
    代理添加用户名密码认证,以及安全设备认证完成后及时关闭代理
    shunconf
        24
    shunconf  
       2020-12-25 09:14:24 +08:00
    再认证设备添加白名单就行了
    farmer01
        25
    farmer01  
       2020-12-25 09:23:26 +08:00
    用 设备 2 改成这台 Linux 的 mac 地址
    设备 2 认证上网
    设备 2 下线
    Linux 上线即可上网
    quzard
        26
    quzard  
       2020-12-25 09:23:34 +08:00 via Android
    大不了用 selenium 也行呀
    mikywei
        27
    mikywei  
       2020-12-25 10:48:29 +08:00
    在上网行为管理上面加个白名单,把需要上网的 linux 的 ip 都加上去,最好绑定 mac 地址,这样就不会被冒用 ip 上网了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2518 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 16:07 · PVG 00:07 · LAX 08:07 · JFK 11:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.