【问题标题】:Node JS internet gateway/captive portal like used in public WiFi hotspotsNode JS 互联网网关/强制门户,如在公共 WiFi 热点中使用
【发布时间】:2013-03-11 05:36:55
【问题描述】:

我想构建一个节点 js 互联网网关/强制门户。所以我可以让用户“授权”他的mac地址或ip地址,如果mac地址不可能像wifi热点那样使用

所以我想到的是节点可以有一个 dhcp 服务器,它提供它的 IP 地址作为网关。因此,如果用户在 Web 浏览器上加载一个页面,它会给他们一个身份验证屏幕,然后他们可以登录,然后网关可以正确路由其数据包。

我如何使用 node.js 进行授权步骤,所以如果他们没有登录,它会显示一个登录页面并且他们是否要正确路由数据包?

【问题讨论】:

  • 我会使用您的 Node.js 应用程序来管理客户端和 Web 界面,但使用您系统的路由功能。很酷的项目。我希望有一个好的解决方案。
  • 谢谢!。我正在考虑使用 iptables 使用节点路由和更改规则,但我不确定当用户没有会话时如何将流量重定向到强制门户
  • 一种方法是使用强制门户的 IP 响应 DNS 查询。但是这是有问题的,因为客户端通常已经缓存了一些 DNS 条目。此外,带有恶意软件的客户端通常会将一些 DNS 查询重定向到本地主机或外部 DNS 服务器。最后,客户端可能手动配置了自己的 DNS 服务器。您需要做的是透明地将端口 80 上的所有 TCP 流量重定向到您的服务器。我不知道该怎么做。
  • 我想弄清楚你的问题:所以你基本上想使用 node.js 作为你的网络操作系统的一部分(安装在你的路由器上),有效地充当你网络上的默认网关?可以编写一个在端口 80 上接收连接的应用程序,然后在客户端发送并返回请求和响应后延迟转发连接(隧道)......但是将该 node.js 配置为默认网关是一些事情别的。所以请澄清一下,也许我可以帮忙。
  • 我不确定这是否会达到相同的最终目标 - 但在节点中创建 HTTP/SOCKS 代理并在顶部添加一些身份验证会快得多。如果您希望我详细说明,请告诉我,我可以留下正确的答案..

标签: node.js routing wifi iptables


【解决方案1】:

你需要几块来把它放在一起。

#1:http 代理 - 如果您可以运行 DHCP 服务器并分配 IP 地址,那么您可以运行 http-proxy 来捕获所有互联网流量。

#2:然后您需要向此代理添加身份验证逻辑,该代理可以检查 cookie、魔术包、令牌或验证访问权限并允许它们通过或重定向到登录页面的东西。

node-http-proxy 是一个非常流行且灵活的节点 http 代理服务器,您可以轻松地add your own logic 到。

node-http-auth-proxy 是另一个这样的项目,其中包含如何处理内置身份验证的example

拥有代理还可以让您将网站/IP 列入白名单/黑名单,这可能是您想要根据您的目标受众做的事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-18
    • 1970-01-01
    • 2019-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多