Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1990340
  • 博文数量: 369
  • 博客积分: 10093
  • 博客等级: 上将
  • 技术积分: 4271
  • 用 户 组: 普通用户
  • 注册时间: 2005-03-21 00:59
文章分类

全部博文(369)

文章存档

2013年(1)

2011年(2)

2010年(10)

2009年(16)

2008年(33)

2007年(146)

2006年(160)

2005年(1)

分类: 系统运维

2009-04-29 22:54:49

开放公共网关守护进程,是的C版本,主要用于提供认证上网服务。

基本的工作原理是当某个IP、MAC地址的未经过认证时,发起自这个IP、MAC地址的Web访问会先被重定向到一个Splash窗口,当用户认证成功,或者是同意了某个协议之后,访问再被重定向到原始的请求地址。

发起自未授权的IP、MAC地址到80端口的TCP连接会被iptables规则在PREROUTING链重定向到运行在网关上的splashd,splashed解析完HTTP请求头之后,将原始请求的URI信息和其他的一些信息,如源MAC地址、网关地址、认证超时时间和一个Token等,附加到认证服务器的URI上作为请求消息,而形成一个新的URI。通过HTTP的301响应,将连接转向到新的URI。

认证服务器既可以和网关位于同一个服务器(甚至NoCatSplash就提供了一个简单的HTTP服务器:ghttpd),也可以部署在另外的一台机器上,但是,在他们认证通过后都需要将决议通过GPG加密后附加在网关的URI上,再将客户端通过HTTP 301重定向到新URI。

网关接收到这个连接之后,通过HTTP的Host字段得知这个连接不是iptables重定向后的连接,进而检查其请求的URI中的ticket请求串,将其GPG解码后,得到认证服务器的决议,如果认证成功,则在网关上设置iptables规则放行此后的发自该IP、MAC的连接,并通过HTTP 301响应将连接重定向到最开始的URI。至此,认证成功。

NoCatSplash采用非对称的GPG加密,既保证了认证的安全性,又不失系统部署的灵活性。配合其他应用程序,还能实现单点登录。
阅读(8407) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~