2

我正在为我的组织寻找强制门户。我看到其中有很多可以让用户在 a.)输入凭据或 b.)付款后通过。我正在寻找的是有点不同。让我介绍一下我的系统的一些基础知识,我正在使用活动目录和内部 DNS 运行基于 Windows 的网络。我有一个内部网,我们的员工每天都在其中使用,它使用该人的 Windows 凭据在系统上对他们进行身份验证。

员工必须每天输入时间,如果他们不这样做,那么我希望有一个强制门户将他们重定向到他们的时间输入页面,并且在输入时间之前不要让他们进入广阔的互联网世界。

我是一名开发人员,因此我可以编写一个向系统返回 True 或 False 的脚本,但我需要的是一个可以与 AD 登录交互并且可以在用户请求访问网络外部时运行此脚本的系统。

编辑: 我接受了一个答案作为我的问题的答案,但是,在研究了基于套接字的方法的编码之后,我没有时间。

作为一种解决方法,我发现我的防火墙有一个可自定义的免责声明页面,该页面允许使用 javascript。我将查询网络服务以查看是否输入了时间,然后触发免责声明页面的“允许”功能,否则我将重定向到时间输入页面。似乎是一个足够简单的解决方案,唯一的问题是这个人是否让他们的浏览器会话在一夜之间保持打开状态。

4

4 回答 4

0

好吧,现在我只在 .NET 中编写代码,一些 OSS 可能有更好的想法。

如果不使用代理,我无论如何都看不到这样做,最好是网关上的透明代理服务器。一定有人写过这样的东西。当然,每个商业 wifi 热点都有一个,但您可能想要一个在服务器而不是设备上运行的热点。

我对此一无所知,但这是我过去考虑过的事情。

您也许可以找到具有该功能的路由器/防火墙盒。Microsoft IAS 我有一个插件可以做到这一点(它不太可能便宜)。对谷歌的简要介绍并没有像其他软件那样做。

温盖特- 可能会,我想不通

否则,您可以编写一个透明代理应用程序(这意味着,除非您编写嵌入式代码,否则您需要使用应用服务器作为默认网关),或者如果您可以锁定用户浏览器代理设置,则只需一个普通代理。我想编码这可能不是一个简单的选择!但这是可能的。您甚至可以使用 IIS 和 ASP.NET。

iisproxy是一个代理,实现为带有源代码的 IIS ISAPI 过滤器。我怀疑这是在 C 或 C++ 中。

在 Codeplex 上是一个反向代理代码示例。您可以更改它并扩展到完整代理。

您可能能够使用套接字完成所有工作并完全脱离应用程序层。这可能会使生活更简单,所以我希望有一个原因不能像这样完成!让基于套接字的代理重定向到不合规用户到时间记录应用程序,当他们填写了他们的时间表后,只需透明地传递套接字之间的所有数据。

我会对您或任何人的想法感兴趣,因为我一直希望 AUP 每天向我们办公室的用户显示一次,并带有一个继续框。更好的是,如果代理收集了该信息,它可以列出用户昨天在 Facebook 等上花费了多少时间。我认为足以改变人们的行为。事实上,可以使用易于更改或可扩展的 HTTP 代理来完成许多有用的事情。

于 2009-01-10T03:54:04.250 回答
0

克里斯托弗·爱德华兹或多或少是对的。Captive 门户基本上是一个防火墙,它透明地将所有连接转发到请求用户身份验证的本地 Web 服务器。成功验证后,防火墙规则会重新配置为已验证用户的 IP,以便他/她可以访问 Internet 或其他网络。

您可以通过脚本和 Web 服务器或代理设置自己的 Captive 门户,但强制要求物理上所有网络流量都穿过充当防火墙的机器。

我有使用基于 BSD 发行版的名为m0n0wall的 OSS 发行版的经验,它可以直接嵌入专用硬件或安装在任何 PC 上。这个发行版虽然是 OSS,但非常专业,提供的功能与任何商业 FW 设备(即Watchguard 产品Cisco 产品)基本相同或更多。它提供了一个 Web 管理界面来完全管理防火墙。

如果您决定采用这种方式,唯一的问题是 m0n0wall 强制门户只有两种身份验证方式:本地用户数据库列表或外部 Radius 服务器。在您的情况下,您需要设置一个集成在 AD 身份验证服务中的外部 Radius 服务器。这是一个如何做到这一点的例子。

于 2009-01-10T18:05:21.957 回答
0

这是它的工作原理。你需要:

  • 一个iptable通用防火墙,
  • 一个开放的路由器固件,比如dd-wrt,它有更多支持热点的选项
  • apache这样的服务器
  • dhcp3-server作为 DHCP 服务器
  • bind9作为 DNS 服务器,因此用户在连接到热点时不必手动配置他们的计算机网络配置
  • PHP或其他语言编写您选择的服务器端脚本。

当用户在登录页面上得到验证时,您需要标记您不打算重定向到 Internet 而是登录页面的数据包,他或她的 IP 将从列表中删除,以便他可以自由浏览,或者如果他尝试浏览他的数据包会标明你会用什么来识别他。由于 iptables 的东西,我建议您为此使用 linux。

这是它的工作原理:

  1. 每个连接到无线热点的用户都通过网关连接到互联网。
  2. 网关本身充当路由器和防火墙(并且可能还充当门户网站服务器,就像在本实验中一样)。
  3. 每个未经身份验证的用户发往 Internet 的 HTTP 数据包都被防火墙“标记”为特殊代码,因此可以拦截(重定向)到门户网站服务器。
  4. 门户网站服务器透明地向用户提供认证网页,并识别用户使用的计算机。
  5. 用户通过网络服务器接受/验证自己,因此他们的计算机身份(在这种情况下是他们的网络接口 MAC 地址)被输入到防火墙的白名单中。
  6. 只要用户的网络接口在防火墙的白名单内,从它们发送的数据包就不会被标记为拦截。然后,路由器将数据包转发到互联网,而不会再次被拦截到 Web 门户。
于 2013-01-25T00:54:46.493 回答
0

DNS Redirector是一个强制门户产品,您可以在其中开发自己的 HTML/ASP/任何内容的欢迎/阻止页面。既然您的服务器已经在运行 Windows,为什么不为此使用 IIS 和 ASP。

于 2013-07-24T14:22:03.057 回答