找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: ylpoplove

[linux] [讨论]各地电信逐步转换成WEB认证方式,Linux路由该如何跟进?

[复制链接]
 楼主| 发表于 2004-4-17 13:20:54 | 显示全部楼层
是的:(

很麻烦……
routeros
回复

使用道具 举报

发表于 2004-4-18 00:46:27 | 显示全部楼层
晕,那网吧用户怎么办??中国电信不至于没头脑干这种让社会倒退的事吧??
不至于所有的网吧以后都用光纤接入吧?启用WEB认证是为了防止私人用户共用,但是电信有这个必要么?你加装了路由器,难道电信那里会不知道?ADSL改认证是不会的,Lan方式倒是绝对可能的,因为那个实现起来太容易了,大家都知道少花钱,中国电信也一样,如果改造ADSL的认证,估计还不如不开通它划算。
routeros
回复

使用道具 举报

发表于 2004-4-19 20:18:07 | 显示全部楼层
其实,大家有没有想过,为什么我们机器的信息(私隐)会泄漏出去给人家知道呢?
routeros
回复

使用道具 举报

发表于 2004-4-27 15:08:42 | 显示全部楼层
UP
routeros
回复

使用道具 举报

发表于 2004-4-30 01:04:31 | 显示全部楼层
用2K单网卡就可以了,前提是ADSL插交换机上,还有,这样共亨速度没路由快。
routeros
回复

使用道具 举报

发表于 2004-12-13 18:33:50 | 显示全部楼层
我也来说两句,虽然我是刚接触软件路由器,但本人将几款软件路由都试装过了,的确不错.说到WEB认证.我家里是长宽(我最恨的宽带就是它了,跟前面的网友,有同一感受,长宽服务极差,一旦用户认证之后,你的网速度就受到限制).本人家里有三台机器.同时还将隔壁邻居的一台电脑也连在这根宽带上.我用ROUTEROS做了一台路由器,剩余的其中一台机器进入系统进入认证系统.然后剩下的两台机器就可以上网了,虽然这样做很浪费,但至少能学习LINUX系统..增加些知识.只不过,如此做,一定要设置一下限速.否则的话,其中的一台机器不停的下载MP3的话,其他机器就根本不能上网了,本人如此做法,的确是极不合算.请大家不要笑话,我的目的是为了学习几款不错的软件路由.
routeros
回复

使用道具 举报

发表于 2004-12-13 19:35:29 | 显示全部楼层
linux做到这一点似乎不是什么难事。我的想法是模拟WEB提交,熟悉http的朋友应该能明白我说的意思。可惜我这里没有那种环境。
routeros
回复

使用道具 举报

发表于 2004-12-13 20:20:51 | 显示全部楼层
我觉得这篇文章很好http://www.linuxsir.org/bbs/showthread.php...threadid=160764

QUOTE
长城宽带认证方法 ====================================下面是auth.py,认证主程序,程序是用python写的,参考了论坛里的精华帖子,在这里表示感谢///////////auth.py/////////////#! /usr/bin/env pythonimport osimport reimport httplib, urllibtemp = os.popen('ifconfig eth0 | awk '/inet/{print $2}' | awk -F: '{print $2}'') ////获取自己的ip地址IP = temp.read()err = temp.close()m = re.search("(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{2,3})", IP)MYIP = m.group(1) ////获取自己的ip地址的标准格式ff = open('/etc/auth.conf','r',-1) ////在/etc/auth.conf里放自己的密码和id.格式为myid=xxxxxxxxxxxxmypasswd=xxxxxxxxxidpasswd = ff.readline()ff.closem = re.search("myid=(\d{12})mypasswd=(.*)$",idpasswd)MYID = m.group(1)MYPASSWD = m.group(2)path = '/cgi-bin/authcgi_login' ////构造http请求,获得认证界面conn = httplib.HTTPConnection('vip.163.com')conn.request('GET','','')r = conn.getresponse()body = r.read()conn.closer1 = re.compile(r'.*http://(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\d{2,5})/cgi-bin/authcgi_login',re.MULTILINE)m = r1.search(body) ////获取认证服务器的地址和端口SERVER=m.group(1)PORT=m.group(2)params = urllib.urlencode([('sip',SERVER),('uip',MYIP),('url','vip.163.com'),('uact','login'),('uact_status',1),('uid',MYID),('upwd',MYPASSWD),('vpn','0'),('go','用户登入'),('btype','0')])ff = open('/var/tmp/server.conf','w+',-1)HOST = 'server='+SERVER+'port='+PORTff.write(HOST)ff.flush()ff.close ////把认证服务器的地址和端口写入临时文件中给后面的logout使用cmd = 'POST '+pathheader =' HTTP/1.1'+'\x0d\x0a'+'Accept: *.*'+'\x0d\x0a'+'Content-Type: application/x-www-form-urlencoded'+'\x0d\x0a'+'User-Agent: Microsoft Internet Explorer 6.0'+'\x0d\x0a'+'HOST:'+SERVER+':'+PORTlength = len(params)control = '\x0d\x0a'+'Content-Length: '+str(length)+'\x0d\x0a'+'Cache-Control: no-cache'+'\x0d\x0a'+'Cookie: sid=20040706210751'+'\x0d\x0a\x0d\x0a'import socketsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)sock.connect((SERVER,int(PORT)))sock.send(cmd+header+control+params) ////登录认证s = sock.recv(8192)r1 = re.compile(r'.*srvip=(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})&sport=(\d{2,5})&sid=(\d{8,10})&stime=(\d{9,11})&rmtime=(.?\d{1,2})&interval=(\d{1,2}).*chkey=(\d{14})',re.MULTILINE)m = r1.search(s)SERVER = m.group(1) PORT = m.group(2) ////获得keep-alive服务器的地址和端口ff = open('/var/tmp/auth.conf','w+',-1) ff.write(params)ff.flush()ff.close ////keep-alive服务器的地址和端口写入零时文件中给keep-alive程序使用SID = m.group(3)STIME = m.group(4)RMTIME = m.group(5)INTERVAL = m.group(6)CHKEY = m.group(7)params = urllib.urlencode([('uid',MYID),('uip',MYIP),('srvip',SERVER),('sport',PORT),('sid',SID),('stime',STIME),('rmtime',RMTIME),('interval',INTERVAL),('btype','0'),('vpn','0'),('wtype','0'),('chkey',CHKEY),])header =' HTTP/1.1'+'\x0d\x0a'+'Accept: *.*'+'\x0d\x0a'+'User-Agent: Microsoft Internet Explorer 6.0'+'\x0d\x0a'+'HOST:'+SERVER+':'+PORT+'\x0d\x0a'+'Cache-Control: no-cache'+'\x0d\x0a'+'Cookie: sid=20040706210751'+'\x0d\x0a\x0d\x0a'path = '/cgi-bin/timer'cmd='GET '+path+'?'+params+headersock.send(cmd) ////发送认证成功确认包s = sock.recv(8192) sock.closeparams = urllib.urlencode([('uid',MYID),('uip',MYIP),('sid',SID),('srvip',SERVER),('sport',PORT),('stime',STIME),('rmtime',RMTIME),('interval',INTERVAL),('time_span','0'),('act','logout')])ff = open('/var/tmp/auth.conf','w+',-1)ff.write(params)ff.flush()ff.close ////把认证返回的keep-alive所需要的id,interval等写入零时文件print 'Login OK'sock.closeos.system('/etc/rc.d/init.d/UDP.py') ////运行keep-alive程序os._exit(0) ////退出认证程序


QUOTE
keep-alive程序(UDP.py) ///////////UDP.py///////////#! /usr/bin/env python## Filename UDP.pyimport ospid=os.fork() ////获取自己的pid并创建一个守护进程 if pid:ff = open('/var/tmp/authpid.conf','w+',-1)ff.write(str(pid)) ////写入进程pid ff.flush()ff.closeprint 'pid='+str(pid)os._exit(0) ////关闭自身进程 from socket import socket,AF_INET,SOCK_DGRAMff = open('/var/tmp/auth.conf','r',-1) ////读取keep-alive参数 bufread=ff.readline()ff.closeimport rer1 = re.compile(r'.*sid=(\d{8,10})&srvip=(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})&sport=(\d{2,5}).*interval=(\d{1,2})',re.MULTILINE)m = r1.search(bufread)print 'Start to Send UDP package'SID=m.group(1)HOST=m.group(2)PORT=int(m.group(3))interval=int(m.group(4))import signaldef onSignal(signum, stackframe):if signum==signal.SIGALRM:s = socket(AF_INET,SOCK_DGRAM)s.sendto(SID,(HOST,PORT)) ////如果收到alarm信号则发送keep-alive包(udp包,只是简单的一个SID) s.closeif signum==9:os._exit(0) ////如果收到信号9就退出 while 1:signal.signal(signal.SIGALRM, onSignal)signal.alarm(interval) ////定时发出alarm信号 signal.pause() ////休眠


QUOTE
logout程序(logout.py) ///////logout.py////////#! /usr/bin/env pythonimport reff = open('/var/tmp/server.conf','r',-1)HOST = ff.readline()ff.closem = re.search("server=(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})port=(\d{2,5})",HOST)SERVER = m.group(1)PORT = m.group(2) ////读取服务器地址和端口 ff = open('/var/tmp/auth.conf','r',-1)params=ff.readline()ff.closepath = '/cgi-bin/timer'cmd = 'POST '+pathheader =' HTTP/1.1'+'\x0d\x0a'+'Accept: *.*'+'\x0d\x0a'+'Content-Type: application/x-www-form-urlencoded'+'\x0d\x0a'+'User-Agent: Microsoft Internet Explorer 6.0'+'\x0d\x0a'+'HOST:'+SERVER+':'+PORTlength = len(params)control = '\x0d\x0a'+'Content-Length: '+str(length)+'\x0d\x0a'+'Cache-Control: no-cache'+'\x0d\x0a'+'Cookie: sid=20040706210751'+'\x0d\x0a\x0d\x0a' ////构造logout包 import socketsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)sock.connect((SERVER,int(PORT)))sock.send(cmd+header+control+params) ////发送logout命令 import osff = open('/var/tmp/authpid.conf','r',-1)pid = ff.readline()cmd='kill -9 '+pidos.system(cmd) ////杀掉keep-alive进程 print 'logout ok'
routeros
回复

使用道具 举报

发表于 2004-12-13 20:48:21 | 显示全部楼层
8 错。。。。不过这里的 keep-alive 。。。。为什么会需要这个?
routeros
回复

使用道具 举报

发表于 2004-12-22 14:37:11 | 显示全部楼层
m0n0wall提供web认证功能的,大家可以用它搭建一个环境做测试。
routeros
回复

使用道具 举报

发表于 2006-5-21 14:37:22 | 显示全部楼层
目前常用的以太网认证技术有PPPOE,WEB.VLAN,802.1X, 其中,PPPOE,802.1X的BAS必须在L2使用,WEB,VLAN可以使用L3,目前L3交换机的性价比很高,上了L3的都想启用802.1X,VLAN,WEB认证方式,以充分利用L3的功能,但VLAN认证受VLAN数限制,不能大规模应用,802.1X和WEB认证很理想,但也有一个致命的缺点,就是网内如果有两个DHCP,会造成客户端的分配到错误的IP造成不能上网,而DHCP服务器架设太简单,WIN2K,XP自带,连最便宜的路由器也有DHCP功能,所以运营商有可能试用一下这两种认证方式,不可能长久的采用这种认证技术。PPPOE则可避免这种现象,虽然他在存在一个VLAN内有两个PPPOE服务器会造成不能正常上网的缺点,但PPPOE服务器的架设要比DHCP麻烦一些。所以,目前,PPPOE认证还是运营商最佳选择。
  当然,802。1X,WEB可以不采用DHCP而直接指定IP,但额外增加的工作量太多,也不太适合运营商
routeros
回复

使用道具 举报

发表于 2007-7-5 00:31:32 | 显示全部楼层
最简单的方式
由于现在的web认证只要求输入用户名和密码[还没有BT的让你输入验证码]

所以自己编写个html 利用JS表单自动提交
自动往web认证服务器上post数据就可以了

然后开机自动运行此html就好了
routeros
回复

使用道具 举报

发表于 2007-7-18 15:18:36 | 显示全部楼层

有支持WEB认证方式上网的软件路由器吗?

我是菜鸟,今天才注册的,我也遇到了类似的问题:我现在用的是辽宁网通的光纤小区宽带,ISP给的是上网的账号和密码,还有一个内网的固定IP:192.168.X.1,网关:192.168.X.254,要先把自己的机器设置成固定的IP地址,其他的照填,再上网的时候用他们提供的专用的登陆客户端,把账号及密码,还有认证的地址输入进去就可以上网了,同时支持WEB认证,也就是在开机后点任意网址都会转到认证地址,然后输入账号及密码就可以了,要弹出一个提示连接的窗口,不能关掉,如果关了后果就是过一段时间就掉线了.其实单机用客户端登陆还是比较方便的,但现在我们这都是几家连的,用硬路由只能这样设置:在路由器里选静态IP,填入给我的IP地址,然后在上网的时候,哪台机器上网就要在网页里认证一次,也就是那个小窗口不能关,但经常由于系统出错导致窗口不见,特别是别人家先上的时候,人家下线了你还不知道的话,就会突然掉线,所以玩网有的时候很郁闷!!问各位高手,有支持WEB认证方式上网的软件路由器吗?提醒下:我的是固定IP(内网好像),但也有外网的IP,却不知道干什么用的???我是通过IP查询知道的,谢谢,急盼回音!或者写个程序,代替那个认证的小窗口,开机就自动到认证界面,填入账号密码并登陆!
routeros
回复

使用道具 举报

发表于 2009-7-30 12:19:31 | 显示全部楼层
关注中。厦门这边怎么还没有发现这样的用户呢!
routeros
回复

使用道具 举报

发表于 2011-2-18 13:51:56 | 显示全部楼层
呵呵 现在的运营商真滴是穷啊
routeros
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-4-20 03:36 , Processed in 0.181695 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表