基于IPTABLES的Web认证系统的实现

来源 :中国教育信息化·高教职教 | 被引量 : 0次 | 上传用户:huaweibo
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:在Linux操作系统中,利用IPTABLES服务实现了防火墙、NAT功能,并将端口转发规则和Web应用服务相结合,实现了用户Web认证功能,保证了内网计算机的安全。经过测试,系统能够高效稳定地运行,实现了设计目标。
  关键词:防火墙 网络地址转换 端口转发 访问日志
  中图分类号:TP393.08 文献标识码:B 文章编号:1673-8454(2009)03-0056-03
  
  一、引言
  
  随着Internet的迅速发展,宽带网络的接入日益增多,Internet用户的数量也迅速膨胀。尤其对于高校中的网络接入数量也快速增加,学校中网络管理人员面临着IP地址缺乏、用户访问认证、二级单位上网管理以及内部网络安全等一系列问题。特别是公安部门要求对上网用户进行身份认证和上网记录保存的问题,对网管人员提出了严格的要求。Linux操作系统的稳定安全和网络性能优异等特色,使其成为广大网管人员解决上述问题的首选。
  IPTABLES是在Linux操作系统下基于2.4内核版本之后集成的网络安全工具,该工具实现了多种网络安全功能,如:数据包过滤、状态保持、NAT(Network Address Translation,网络地址翻译),以及抗攻击等等。利用该工具可以在较低配置下的传统PC机上实现安全稳定、功能强大的防火墙 NAT系统,因此它被企业和高校广泛采用,成为一种比较成熟的技术。然而随着对网络安全性要求的日益提高,用户认证功能越来越受到重视,基于IPTABLES提供的上述功能却不能满足这一需求。
  Squid是Linux平台下最为流行的代理服务器,是解决用户上网认证的有效方法。但是Squid也存在着一些缺陷,如:命中率和效率相对低下;支持的协议类型有限;需要在客户端计算机对浏览器或其他网络软件进行设置;某些服务对代理访问有限制等等,使其应用受到很大局限。透明代理是NAT(IPTABLES)和代理(Squid)的完美结合,此种工作方式不需要在客户端浏览器或其他网络工具上进行任何设置,用户感觉不到代理服务器的存在。然而由于Squid不支持在透明代理模式下启用身份认证功能,所以它仍然不能解决用户认证问题,且Squid自身的性能依然存在缺陷。
  
  二、系统应用模块
  
  为了解决上述问题,依据透明代理的实现思路,即利用IPTABLES将发往80端口的数据包转发到Squid服务器的3128端口,将上网认证工作交给Squid处理的方法。该方法实现了基于IPTABLES的Web认证系统,它既发挥了IPTABLES服务NAT性能上的优势,又实现了用户上网认证功能。
  该系统主要应用了IPTABLES服务的防火墙功能、NAT功能、端口转发功能,并利用Ulogd工具实现了IPTABLES的日志记录功能。同时在Linux系统中部署了Tomcat服务器,用于实现用户认证和IPTABLES规则修改功能。
  利用IPTABLES规则实现防火墙具有很高的灵活性和稳定性,在本系统中防火墙安全政策定义为正面列表,即将INPUT、OUTPUT、FORWARD等规则设置为DROP来禁止所有的数据包通过,然后再分别设置规则来允许合法的数据包通过,这样系统的安全性就被提高。NAT功能将每个内网计算机节点的地址转换成一个外网IP地址,使之能够访问外网的资源,采用该方式能有效地解决二级单位的上网问题。端口转发功能也就是重定向,当IPTABLES服务接收到一个数据包后,不是转发这个包,而是将其重定向到系统上的某一个应用程序,最常见的应用就是和Squid配合使用,使其成为透明代理。Ulogd工具将IPTABLES的访问日志记录到Mysql数据库中,便于对数据进行分析和操作,同时也满足了公安部对上网日志保存的要求,在本系统中依据数据库中的日志记录来判断计算机的上网状态。Tomcat容器是一款优秀的Web服务器,它可与Java语言程序相结合,用来实现用户认证和对Linux系统sh脚本命令的操作,从而实现对IPTABLES规则的动态设置。
  
  三、系统功能及实现方法
  
  1.网络环境
  网络环境如图1所示,是典型的三层网络结构。
  
  (1)利用IPTABLES实现NAT和防火墙功能:防火墙功能是通过在IPTABLES中配置包的过滤规则来实现;
  NAT功能用如下命令实现:
  IPTABLES -t nat -A PREROUTING -d 10.80.1.100 -s! 192.168.1.254 -j DNAT --to 192.168.1.254
  IPTABLES -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j SNAT --to 10.80.1.100
  通过上述配置,内网的计算机(192网段)已经可以通过Linux服务器的NAT功能实现对外网(10网段)的访问,系统在此基础之上实现用户的Web身份认证。
  (2)数据端口转发:与透明代理的实现方法类似,利用IPTABLES的端口转发功能,将所有访问80端口的数据包(也可以设置其他端口进行更精细地控制)转向本机Tomcat的8080端口,实现用户认证。
  IPTABLES -t nat -A PREROUTING-s 192.168.1.111/32 -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
  上述命令实现将IP地址为192.168.1.111的计算机发往外网80端口的请求全部转发到8080端口。通过使用该命令将要控制的客户端计算机IP添加入IPTABLES的规则中,从而实现对该计算机上网控制。
  (3)搭建Web用户认证平台:在Linux服务器上用Tomcat实现Web认证平台,设置监听端口为8080,并用JSP语言实现用户认证页面,所有访问外网的请求都被强制转到该页面,进行身份验证,判断用户信息是否合法。
  (4)认证功能的实现:在用户认证页面,获取用户信息和客户端计算机的IP地址,如果用户信息合法,由Tomcat容器调用Javabean实现对IPTABLES规则的操作,在Java程序中认证函数和IPTABLES规则修改函数要采用异步方式实现,这样可以减少用户并发认证时的数据混乱问题,提高系统的稳定性。该功能利用Runtime.getRuntime.exec("cmd")函数运行Linux的sh脚本来实现,将用户验证页面获取的IP地址作为参数传入到Javabean中,并将如下命令行(认证通过,取消该计算机的端口转发规则,使其可以正常上网)写入sh脚本。
  IPTABLES -t nat -D PREROUTING-s 192.168.1.111/32 -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
  用Runtime.getRuntime.exec("chmod a x sh脚本")提升该脚本文件为可执行权限;之后用Runtime.getRuntime.exec("sh脚本")函数运行该脚本文件,修改IPTABLES规则从而取消掉对该计算机端口转发的限制,通过NAT实现上网功能。
  (5)上网日志的记录:通过对Ulogd工具的配置可以将IPTABLES的访问日志记录到Mysql数据库中,在IPTABLES中添加如下规则:
  IPTABELS-A INPUT-p tcp --dport 80-j ULOG或者IPTABELS-A FORWARD-j ULOG可以记录通过IPTABLES的访问数据包。
  (6)分析访问日志重新认证:通过对Mysql数据库日志表中ip_saddr(IP源地址)字段的分析确定每台计算机是否在持续上网,可以设定一个时间间隔,如果超过该间隔,该IP地址的计算机没有网络访问数据包,便将该IP地址再加入到IPTABLES的转发规则当中,要求用户重新认证。在上述方法的实现中要尽量降低服务器的负担,可在日志表中使用插入触发器,对新插入的日志记录提取其源地址,同时更新计算机IP信息表中对应IP地址的访问时间;在Tomcat设定定时器函数,每隔一定时间间隔轮询该计算机IP信息表,对访问时间与当前时间差值大于限定值的计算机要求重新认证。
  (7)通过上述过程实现了基于IPTABLES的Web用户身份验证功能。
  
  四、系统性能与优化
  
  目前该系统认证的IPTABLES服务,Tomcat容器和Mysql数据库都放在同一台Linux服务器上,客户端计算机数量是800台左右,上网用户的并发访问量为100台左右,系统运行稳定。
  为了进一步提高系统的性能,可将Web认证服务器与数据库服务器放在另一台Linux服务器上以提高系统效率;同时通过进一步对IPTABELS日志字段信息进行分析可以提高用户上网与重新认证时间计算的精确度,从而在Web认证的基础之上实现计费功能。
  
  五、结束语
  
  基于IPTABLES的Web认证系统解决了用户上网认证、上网记录保存、IP地址资源匮乏和高校内二级单位上网管理不便等问题;同时该系统基于Linux操作系统,对硬件设备的要求不高,网管人员可以自行搭建,非常适合在高校和企业内推广使用。
  
  参考文献:
  [1]林慧琛,刘殊.Red Hat Linux服务器配置与应用[M].北京:人民邮电出版社,2007.
  [2]索贝尔著.Linux命令、编辑器与Shell编程[M].北京:清华大学出版社,2007.
  [3]鸟哥.鸟哥的Linux私房菜——服务器架设篇[M].北京:科学出版社,2005.
  [4]刘中兵.精通Tomcat——Java Web应用开发、框架分析与组件配置、系统集成与案例实战[M].北京:清华大学出版社,2007.
  [5]刘斌.精通Java Web整合开发: JSP AJAX Struts Hibernate [M].北京:电子工业出版社,2007.
其他文献
分享活动可以随机、灵活,不一定在游戏活动结束后进行。如果孩子们在游戏中遇到的困难,能够在游戏过程中及时解决,那样会促进游戏活动不断深入。我觉得,可以在“停车场”中再增加一个“谁来帮帮我……”版塊。在游戏过程中,幼儿可以将自己的问题记录在小汽车上,并写上自己的名字,粘贴在“谁来帮帮我”板块。如果有的幼儿发现了这个版块的小汽车,并想和他共同解决,就会找到寻求帮助的幼儿,向他询问,两个人共同探究,寻求问
“亲爱的陈老师,您好!好久不见了,我很想您。祝您教师节快乐,开心、美丽、幸福!——洋洋。”收到上一届孩子洋洋寄来的明信片,我的心中满是感慨。  令人头疼的洋洋  第一次去家访时,我便觉察到洋洋的“与众不同”。我们和他的爸妈在交谈,他在一旁自顾自地搭积木。爸爸叫他好几遍过来和老师互动,他不仅无动于衷,而且对爸爸的催促十分抗拒。  幼儿园排队时老师和洋洋拉手,洋洋会不自然地扭动手臂,试图挣开。跟他说话
在这个春意盎然的季节,虽然新冠肺炎疫情吞噬了我们生活和工作的正常秩序,但无法削弱幼教人内在的生长激情和动力。我园利用这个“宅家”的契机,带领全体教职工开展了“云端共读”活动,叩问《童年的秘密》,让世界杰出的幼儿教育家,引领我们探寻儿童的内心世界。  “云端共读”主要包括四个环节。  发布阅读任务   每天上午9:00,在疫情数据报送结束后,主持人即发布当天阅读章节及要求,全体教职工共同开启美好的阅
     
王老师遇到的问题确实带有普遍性,在班级里,有两类孩子最容易被“看见”:“活泼好动”型,无时不刻引人注意,吸引了老师多半的精力;“伶俐乖巧”型,遵规守纪文明守礼,友爱交往做事专注,是同伴的榜样,是老师的小助手,只要有他(她)在身边,就会深感岁月静好,职业幸福。而“安静懂事”的乖孩子,大多是沉浸在自己的世界中,悄悄地审视着周围环境,躲避干扰、远离喧嚣,循规蹈矩地过好每一天。  《3-6岁儿童学习与发展
摘要:Visual FoxPro(简称“VFP”)课程是计算机文化基础的一个重要组成部分,也是NCRE二级的一个可选科目,本文从云南大学旅游文化学院的VFP课程和该校学生特点入手,在教法方面总结了一些有益的思路和建议,并将其应用到实际的VFP课程的教学与考试中,通过两个学期的改革以及对数据的收集对比,表明该改革有效地调动学生的学习积极性,提高了学生对VFP课程的掌握度。  关键词:Visual F
苏州市盲聋学校创建于1929年,几经风雨,2012年一座集古典美与现代化的特殊教育学校矗立在姑苏城外、天平山下、寿桃湖畔。回顾我校发展历程,从1996年率先将电脑引入聋校课程教学,到2000年率先完成校园局域网,再到2012年初步建成数字化校园,我们深刻地体会到,在培养特殊儿童成为社会有用之才的道路上,信息化给特殊教育插上了腾飞的翅膀。  一、以先进的理念推进数字化校园建设  自2008年市委市政
表演游戏是幼儿围绕故事以角色扮演的方式展开的游戏活动。表演游戏是幼儿园的经典游戏,也是合乎幼儿“能编会导会演”天性的创造性游戏活动,具有多重发展和教育价值。比如,幼儿间协商合作表演的过程为形成团体意识、练习社交技能、学会合作提供了天然而真实的应用情境;通过扮演角色创造性再现故事的过程则是发展幼儿想象力和创造力,深入理解故事,感受角色情绪情感,提高言语技巧,体验“角色”概念,实现间接经验向直接经验迁
(以下实录文字中,“鄢”代表鄢超云教授,“杨”代表杨杼悦同学。)  鄢:小杨同学,你学了翻转课堂“学习品质评价”这一部分的网络授课内容,有什么想法吗?  杨:一说到学习品质,我想到的竟然是我自己。我对幼儿园已经没有印象了,但是我深刻地记得小学的时候,我的数学成绩一塌糊涂,即使后来我遇到了很多很好的数学老师,但都再也激发不起我对数学的喜爱。究其原因,就是在我小学的时候,失去了获得正确的数学思维和方法
2011年12月15日,宏碁集团与神州龙芯公司在北京举行了以“精诚合作、云启未来”为主题的战略合作签约仪式。宏碁中国执行副总裁蓝烨、神州龙芯公司总裁陈义与中国科学院计算所研究员、中国工程院院士倪光南出席了此次盛会。宏碁中国服务器事业部总经理闻贤与神州龙芯副总裁王天恩签署了战略合作协议。融合各自的技术和资源优势,宏碁集团与神州龙芯将展开全面合作,共同为行业用户打造全新的云计算应用解决方案。  宏碁中