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

请教如何查询一个试图登录 Linux 的机器 MAC 地址

  •  
  •   talentl · 2020-06-12 08:39:58 +08:00 · 3143 次点击
    这是一个创建于 1618 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题
    我们试图做一个网站登录限制白名单功能,想要实现只有名单内的 IP 或 MAC 可以登录的方式。
    但是不知道怎么查询一个仅仅是尝试登录的用户所使用的 MAC 地址。
    大家有没有类似的情况可以给点建议,谢谢!
    17 条回复    2020-06-12 17:14:37 +08:00
    lewis89
        1
    lewis89  
       2020-06-12 08:44:04 +08:00
    libpcap 监听以太网协议 只能 帮你到这里了
    cjf
        2
    cjf  
       2020-06-12 08:45:32 +08:00 via Android
    局域网可以用 arp 请求
    cshlxm
        3
    cshlxm  
       2020-06-12 08:46:06 +08:00
    mac 拿不到吧,2 层就没了,拿 mac 有啥用。。。
    lululau
        4
    lululau  
       2020-06-12 08:46:15 +08:00 via iPhone
    MAC ?用户和服务是在同一个以太网内吗
    mifanTeddy
        5
    mifanTeddy  
       2020-06-12 08:47:23 +08:00
    mac 地址是二层的。。。 建议你回去看看 OSI 七层模型
    Tianao
        6
    Tianao  
       2020-06-12 08:48:30 +08:00
    网站?那基本都是跨三层访问吧,源 MAC 地址信息早就丢失了,除非像某些防火墙那样拿 SNMP 去用户侧网关上取。但一般主机的策略只做到三层( IP ),二层( MAC )策略交给网络设备。
    echo1937
        7
    echo1937  
       2020-06-12 08:56:27 +08:00
    在不考虑代理的情况下,数据包每到一个三层,就把源 MAC 替换成自己的出接口 MAC,目标 MAC 替换成下一跳 MAC,不跨三层不替换。

    所以你的需求不科学,或者你的网站只在纯二层提供访问?
    ppgs8903
        8
    ppgs8903  
       2020-06-12 09:03:10 +08:00
    这个可以在系统级别伪造,所以真想恶意你也查不到
    talentl
        9
    talentl  
    OP
       2020-06-12 09:07:23 +08:00 via iPhone
    好吧,看了各位的回复,这个需求可能没啥意义,我们再讨论下,多谢解答
    Qiss
        10
    Qiss  
       2020-06-12 09:08:37 +08:00
    fail2ban 试试这个吧
    newmlp
        11
    newmlp  
       2020-06-12 09:58:03 +08:00
    只要经过一个路由,就拿不到原始 mac 了,没意义
    wizardoz
        12
    wizardoz  
       2020-06-12 10:03:33 +08:00
    拿到 mac 有什么用? mac 是可以自己设置的。
    scukmh
        13
    scukmh  
       2020-06-12 13:39:26 +08:00
    记得以前有人讨论过这个话题,可以用 js 拿来着。(🏃。
    libook
        14
    libook  
       2020-06-12 14:18:36 +08:00
    MAC 地址的问题很多人都已经指出了,在你的场景下不可行。

    因为做限制不仅仅先于在 IP 层面做,所以建议楼主把实际遇到的问题说一下,为什么要进行限制,不限制会出什么问题,然后大家可以根据实际问题来提供合适的解决方案。

    我能想到的原因可能是两种:
    1. 安全性考虑,需要确保仅可信的人能够访问。这块最简单的方法是用 VPN,用户必须提供账号、密码或秘钥来链接 VPN 网络,然后网站配置仅对 VPN 网段开放。高阶一些的就是可以参考零信任模型。
    2. 风控考虑,避免遭受 DDOS 攻击。这个可以通过使用一些可以防 DDOS 的 Web 应用防火墙或者想 V2EX 正在用的这种 CDN 来实现,自己在网站功能上不需要做任何调整。
    jugelizi
        15
    jugelizi  
       2020-06-12 14:22:46 +08:00 via Android
    论程序员计算机网络基础的重要性
    fkdog
        16
    fkdog  
       2020-06-12 15:53:40 +08:00
    回去翻一番计算机网络原理 谢希人 第七版。
    talentl
        17
    talentl  
    OP
       2020-06-12 17:14:37 +08:00
    多谢大家耐心给了这么多意见。
    我们这个场景吧……没啥实际用处,更多意义是从功能数量上控标用的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1400 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 17:50 · PVG 01:50 · LAX 09:50 · JFK 12:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.