Skip to content

wangyx0055/mgate

 
 

Repository files navigation

mgate
===

mgate 是一个网络安全软件,它运行在 互联网网关上 监视一切网络动向

mgate 同时还可用于上网计费系统。 mgate 模拟了远程服务器,对于没有
被允许上网的客户端,发送虚假的 302 跳转指令让浏览器进入到登录页面。

mgate 通过解析 TCP 数据,抢在远程服务器应答之前即伪造远程服务器的
数据包,使客户端以为已经同远程服务器完成 TCP 握手,然后接受 maget
返回的 伪造 HTTP 响应。通常这个响应就是一个302跳转,指示浏览器打开
登录页面。



1.9版本以前,本程序通过 php编写的web 前端配合来工作。
考虑到部署人员并不熟悉 UNIX 系统环境,所以将 web 界面内置入本软件。
现在您只需要安装配置本系统就部署完毕了。

安装(安装步骤请参考 INSTALL 文件)完成后,您首先应该查看的是位于
/etc 目录下的配置文件 /etc/mgate.cfg

请参考配置文件的注释进行修改。

配置完毕并成功运行的时候,用浏览器访问 http://yourserver:port/ 一下
下文如果没特别制定,用 / 指代http://yourserver:port/

=======================================================================

mgate 与短信服务的交互

mgate 需要短信验证时,与短信验证服务器的交互方式就是 HTTP 协议。
具体的来讲,每当有人试图登录,monitor 就给短信服务器发送一个 HTTP 请求
为了权限,可选使用HTTP Digest或则Basic进行认证。
当然,还可以使用 HTTPS 进行通讯
GET /gencode?clientid=xxxxx
这里 clientid 就是咖啡馆的编号。
服务器将在返回的 HTML 页面的 <code> 标签里返回验证码。以及一个内部使用的ID(随你怎么用吧)
mgate 将把验证码扭曲图形化后显示出来
用户需要将正确的验证码通过短信形式发送到短信服务器
接着点击页面上的验证。
mgate 将再次发送一个HTTP请求

GET /verifiycode\?clientid=xxx&code=xxx&ID=xxxxxxxx

服务器将返回验证者使用的手机号码于 <phone> 标签。
如果是一个错误的请求比如没有这个验证码,服务器应该在HTTP的响应状态码里使用 404
如果是验证码过期还没有被认证,就使用状态码 408
如果是未过期验证码,用户还未认证的,使用状态码 102
错误的时候,可以有选择的返回描述页面。monitor 将用此页面提示用户。
如果没有,mgate 将使用内置的错误描述页面


=======================================================================
各个 URL 的功能说明
 
/	主页。在这里可以提交验证码和获得验证码。主页嵌入了获得验证码的页面,该验证码获得页面 mgate.cfg
指定。

/info		这里可以查看系统的一些信息。包括实时CPU占有率和个个 ip 的流量显示

/log		这里可以察看截获的网络日志。 

========================================================================

对 内置 HTTP 服务器的简单说明

内置 HTTP 服务器的默认根地址为	/usr/share/mgate/www/

放到这里的对应文件可以覆盖 mgate 内部带的同名文件。mgate 在解析一个页面的时候,首先到这里查找是否有
存在的页面文件,如果没有就使用内置于的文件,如果内置的文件没有就会发出 404 错误。

About

mgate is a network monitor software

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 81.5%
  • C++ 5.8%
  • Objective-C 3.3%
  • M4 3.2%
  • HTML 2.5%
  • Makefile 2.5%
  • Other 1.2%