强制门户网络连接如何工作?


8

旅馆,机场咖啡厅的Internet访问通常是由强制门户控制的,该门户在首次使用时会强制您进入特定的网页,例如付款页面或接受服务条款或身份验证/授权页面的某些页面。您可以通过无线和有线连接看到这一点。

这是如何运作的?


1
有点像这样,但不是为恶而做。 ex-parrot.com/~pete/upside-down-ternet.html
Zoredache

Answers:


14

当然,无线产品的供应商会有所不同,但以我的经验,它通常是这样的:

  1. 您的笔记本电脑与智能访问点建立了无线连接,该访问点可能已连接到集中式管理站。
  2. 您的第一个Web请求将被拦截并通过Location:标题进行回复,该标题将您重定向到登录/策略页面(例如,http : //hotelwireless.net/login)。它可能直接存在于智能访问点或中央管理站上。
  3. 完成身份验证后,会将您的MAC地址添加到允许的客户端列表中,从而使以后的请求正确路由到Internet或可访问的Intranet资源。

关于如何称呼它,我听说它最常被称为“专属门户”或“无线访问门户”。


2
我也使用dns看到过它,因此第一个dns查询将解析为登录/策略页面。
Niko SP 2012年

1
您要设置一个吗?有一些快速,简便和安全的linux发行版,例如pfSense,您可以在不到一个小时的时间内进行部署。
G Koe 2012年

2
客户端如何工作?Windows 10在获得此类wifi连接后,将启动默认浏览器以转到门户。Android 5手机将启动一个Sign-in to Network应用程序(不是默认浏览器),该应用程序基本上只会显示该门户页面。是否涉及新协议?它的规格是什么?
老盖泽

我知道这是一个过时的帖子,但是如何截获第一个Web请求(或者更确切地说,是Web请求,直到用户通过某种方式(例如单击按钮)进行身份验证)?
多米尼克

4

首先,为了实现重定向,您需要一个内联身份验证器(访问控制器)。就您的主题而言,如果您选择对AP进行集中管理,则需要一个无线局域网控制器。或者,您也可以放置具有Wall garden功能的网络访问控制器的强制门户类型。

NAS监视通过混杂模式原始套接字进入下行链路(客户端)的流量,并且当检测到浏览器为未经身份验证的客户端发起的流量时,会对其进行HTTP重定向作为响应。因此,接收到的浏览器将重定向到我们的CAPTIVE门户主页,该主页可以内嵌在身份验证器上,也可以在某些外部Web服务器中直接使用。

此页面的唯一工作是为用户提供输入凭据的UI。如果是coova chilli,则输入的凭据将像chilli一样转发回身份验证器守护程序,此外,这些凭据还会作为半径请求传递给RADIUS服务器,或者可以在本地进行检查。身份验证成功后,身份验证器上的客户端状态将标记为已授权,并授予客户端访问权限。

如何实现重定向

最广泛使用的方法是拦截用户发起的HTTP请求和302代码作为对客户端的响应。在辣椒中,通过以下功能完成

http_redirect2() {

cat < <  EOF
HTTP/1.1 302 Redirect 

Location: $1

Set-Cookie: PORTAL_SESSIONID=$PORTAL_SESSIONID

Set-Cookie: COOVA_USERURL=$COOVA_USERURL

Connection: close

EOF
    exit

}

可以很容易地通过实用的方式将tun tap接口重定向到拦截客户端流量的客户端接口,从而实现重定向。也可以通过DNS中毒来实现进一步的重定向,但是如果响应被缓存在客户端浏览器上,则有时可能会导致问题。根据问题域,可以做更具体的事情。如果需要,我可以为您提供帮助。


2

https://www.arubanetworks.com/vrd/GuestAccessAppNote/wwhelp/wwhimpl/js/html/wwhelp.htm上对此有很好的描述。

这是其中的一部分:

强制门户认证流程

强制门户是第3层身份验证,它要求设备连接到网络并在通过强制门户进行身份验证之前获取IP地址和相关的DNS信息。以下步骤说明了使用本地ArubaOS进行强制门户身份验证时的整个强制门户过程:

1.与来宾SSID关联的设备被分配了一个初始角色(示例配置中的来宾登录角色)。此初始角色允许DHCP,因此用户将获得IP地址。

2.用户打开浏览器,并向某个目的地(例如,www.bbc.com)发出HTTP(或HTTPS)请求。

3.设备中的解析器发送DNS请求以解析www.bbc.com。初始角色(来宾登录角色)允许DNS服务,因此解析程序可以与DNS服务器通信。

4. DNS服务器使用正确的地址回复到www.bbc.com。

5.解析器根据DNS回复告诉浏览器要使用哪个IP地址。

6.浏览器启动与www.bbc.com地址的端口80的TCP连接。

7.控制器拦截连接并欺骗HTTP进程的初始TCP握手。此时,客户端浏览器认为它正在与bbc.com服务器通信。

8.当浏览器发送网页的HTTP GET请求时,控制器回复说bbc.com已“临时移至”。

9.浏览器关闭连接。

10.浏览器尝试与进行连接,但首先需要发送该地址的DNS请求。

11.实际的DNS服务器响应说它无法解析 https://securelogin.arubanetworks.com,但是控制器截获该答复并更改数据包以说securelogin.arubanetworks.com位于控制器本身的IP地址。请记住,DNS服务器发回对查询的答复至关重要。只有这样,控制器才能欺骗来自DNS服务器的回复。没有收到答复就发送DNS请求是不够的,因为如果没有答复,控制器将永远不会帮助客户端解析securelogin.arubanetworks.com。

12.浏览器启动到控制器地址的HTTPS连接,并以访客身份验证的强制门户登录页面响应。

13.身份验证成功后,将为用户分配身份验证后角色(示例配置中的auth-guest角色)。这是强制门户配置文件中的默认角色。

14.身份验证之后,浏览器将重定向到bbc.com,其地址最初是DNS解析的。或者,如果配置了欢迎页面,则将浏览器重定向到欢迎页面。

15.为了成功重定向到原始网页,控制器欺骗了bbc.com的答复,以告知客户bbc.com已“永久移动”到bbc.com。此步骤纠正了作为强制门户登录的一部分而发生的“临时重定位”。

16.这将导致客户端重新查询DNS以获取www.bbc.com的地址。

17.浏览器开始与实际的bbc.com服务器通信。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.