用pcduino实现应用监控服务器安全机制设计与实现
摘 要近年随着重大网络安全事故多发,促使企业用户网络安全意识和防范技能进步。企业和个人在关注安全通信的同时,却往往忽略企业内网的安全防护,使得骇客由外网渗透进内网环境后,轻而易举地实现内网漫游,致使内网核心数据泄露,造成重大损失。内网应用如监控服务器本身应该具备独立的应用级安全防护设施。课题主要结合Nginx反向代理和Lua技术,将两者结合后有效实现基于pcDuino的一个轻量级的网络应用型防火墙,保护监控服务器的安全运行,避免出现由于被恶意攻击造成的数据丢失或者数据伪造等现象。当部署了防火墙的反向代理服务器被攻击而造成宕机时,内网中的监控服务器也能继续运行,不受攻击影响。
目 录
第一章 绪论 1
1.1概述 1
1.2开发背景 1
1.2.1Nginx的发展历史 2
1.2.2为什么选择Nginx 3
第二章 系统需求分析 4
2.1功能性需求 4
2.2非功能性需求 4
第三章 系统总体设计 5
3.1系统开发运行环境 5
3.2实现技术选型 5
3.3系统目标 6
3.4系统功能结构 7
3.5系统流程图 8
第四章 关键技术解析 9
4.1反向代理技术 9
4.2 Nginx服务器自定义扩展技术 10
4.3 JIT技术与LuaJIT技术 12
第五章 系统详细设计与实现 14
5.1代码实现 14
5.1.1 项目核心模块目录结构 14
5.1.2 wafconf过滤规则 14
5.1.3 config.lua配置模块 15
5.1.4 init.lua 初始化模块 15
5.1.5 waf.lua 核心模块 15
5.1.6 install.sh 安装脚本 15
5.2 效果图 16
结束语 18
致 谢 19
参考文献 20
第一章 绪论
1.1概述
本系统设计
*好棒文|www.hbsrm.com +Q: *351916072*
的首要目的是利用已经学习过的Nginx服务器端知识,Lua脚本语言和信息安全相关知识实现一个网络应用型防火墙系统,让在大学四年期间学习到的知识和技能投入生产实际之中,对创建内网防护应用有更多更加深刻的认识。同时更熟练地操作Nginx服务器。在现实实际中学到更多新的知识,能够更加深入地使用Lua脚本语言,更加熟练地编写Lua脚本,从而为以后的工作与学习打下坚实的基础。
本系统采用LuaJIT 技术和ngx_lua模块来实现更加高效的Nginx模块扩展功能,让Lua脚本模块可以嵌入Nginx服务器,诸如Nginx.conf之类的配置文件中,实现模块调用。本系统主要用Nginx服务器,依靠反向代理技术来实现一个轻量级的,运行于pcDuino开发板的内网防火墙。
1.2开发背景
Web2.0发展迅速,随着各类前后端语言的诞生,使得各类网站和移动端开发更加迅速化,给互联网开发带来无限的潜力。但随之也造成了许许多多的安全问题,安全问题往往来自于各个方面,有来自于内部的安全问题,例如企业员工的内部账号密码存在弱口令,内网的一些域名和IP地址可被外部探测,内网员工的代码有意无意地通过git传至开源的代码托管平台,造成企业内部源码泄露,其中更有可能包含了一些敏感的账户信息以及企业的内部机密资料,诸如此类种种的内网安全问题;也有来自于外部引发的安全问题,恶意攻击者的脱库,通过SQL注入攻击,直接脱库,造成企业用户,甚至乃至核心用户以及企业合作伙伴的信息泄露,由于研发人员缺乏一定的安全意识,造成恶意攻击者通过精心构造XSS(跨站攻击)攻击代码,实现存储型XSS攻击、DOM型XSS攻击或者反射型XSS攻击,来偷取用户的Cookies,实现一些越权的恶意的非法操作,给企业和个人带来无法估量的损失。
互联网的黑暗森林,危险来自于未知,由于缺乏对于互联网和自身的了解,从而产生掌控的无力和感茫然,使企业和个人不知道自己不知道的困境,从而带来无法应对的安全问题。
为了应对诸如此类的一系列的安全问题,网络应用型防火墙应运而生,其中以Nginx服务器搭配Lua构成的反向代理类型的网络应用型防火墙最为被个人站长乃至企业推崇。
1.2.1Nginx的发展历史
Nginx由Igor Sysoev于2002年发明。Nginx一度被认为是一个玩具样例。它是由俄罗斯系统开发人员Igor Sysoev首次发布。于2002年那时,42岁的Igor Sysoev首次启动这一伟大的项目,并且在当年十月公布了第一段公共源代码。就像一些开源项目的发起者一样,在起步的时候总是抱着幻想,幻想一切都会很愉快的进行下去。就在这时,他又入职了俄罗斯一家发展快速的门户网站——Rambler.ru,并且这个网站是俄罗斯访问量第二的网站,在实际生产环境中,他需要一个能够比任何的开源补充方案处理更多交易请求的网络服务器。
当他成功的实现Nginx之后,就在Rambler.ru上尝试运行了这些源代码,然而,Nginx真真正正的首次是于MP3下载门户站点Zvuki上在2003年投入使用,在那以后又是在Estonian,一个Online约会服务网站部署完成;最终,Nginx使Ramble.ru实现了自己的网站用于分享照片。
2009年的时候,CloudFlare公司特地成立下属企业,独家发卖其它类型的攻击保护网站的服务和防御网络攻击的服务,来促使购置的企业和个人,用来使他们的网站安全性能够提高。就在当时,CloudFlare创设的公司须要网站能够处理和使用软件来同时运行操作多核处理器的,更好的服务器——目的是让电脑芯片可以能够承担更多的负载。
CloudFlare CEO Matthew Prince说,Nginx服务器在多个核心、多个处理器的系统上有更好地运行状况,另外,Nginx服务器在和多个网站使用者保持联系的同一时刻并不会占用更多的电脑空间内存。这也就从而体现了Nginx("引擎X") 是一种享有极高处理效率的反向代理网络服务器和HTTP处理请求网络服务器,也是一种极其优秀的简单邮件传输协议,邮局协议版本3和交互邮件访问协议代理网络服务器。
Nginx是少数服务器写入地址C10K问题。与传统的服务器相比较而言,Nginx并不依赖处理请求是通过线程。相反,它使用一个事件驱动架构(异步)模式,让一切变得更加可伸缩。这种架构组成使用小,但更重要的是,可预测的荷载下极多的内部存储空间。就算你不期许处理许许多多的并发请求,你依旧可以享受到Nginx服务器带来的高性能和占用极小内存空间的好处。Nginx尺度四面八方:从最小的VPS一直到大型服务器集群。
目 录
第一章 绪论 1
1.1概述 1
1.2开发背景 1
1.2.1Nginx的发展历史 2
1.2.2为什么选择Nginx 3
第二章 系统需求分析 4
2.1功能性需求 4
2.2非功能性需求 4
第三章 系统总体设计 5
3.1系统开发运行环境 5
3.2实现技术选型 5
3.3系统目标 6
3.4系统功能结构 7
3.5系统流程图 8
第四章 关键技术解析 9
4.1反向代理技术 9
4.2 Nginx服务器自定义扩展技术 10
4.3 JIT技术与LuaJIT技术 12
第五章 系统详细设计与实现 14
5.1代码实现 14
5.1.1 项目核心模块目录结构 14
5.1.2 wafconf过滤规则 14
5.1.3 config.lua配置模块 15
5.1.4 init.lua 初始化模块 15
5.1.5 waf.lua 核心模块 15
5.1.6 install.sh 安装脚本 15
5.2 效果图 16
结束语 18
致 谢 19
参考文献 20
第一章 绪论
1.1概述
本系统设计
*好棒文|www.hbsrm.com +Q: *351916072*
的首要目的是利用已经学习过的Nginx服务器端知识,Lua脚本语言和信息安全相关知识实现一个网络应用型防火墙系统,让在大学四年期间学习到的知识和技能投入生产实际之中,对创建内网防护应用有更多更加深刻的认识。同时更熟练地操作Nginx服务器。在现实实际中学到更多新的知识,能够更加深入地使用Lua脚本语言,更加熟练地编写Lua脚本,从而为以后的工作与学习打下坚实的基础。
本系统采用LuaJIT 技术和ngx_lua模块来实现更加高效的Nginx模块扩展功能,让Lua脚本模块可以嵌入Nginx服务器,诸如Nginx.conf之类的配置文件中,实现模块调用。本系统主要用Nginx服务器,依靠反向代理技术来实现一个轻量级的,运行于pcDuino开发板的内网防火墙。
1.2开发背景
Web2.0发展迅速,随着各类前后端语言的诞生,使得各类网站和移动端开发更加迅速化,给互联网开发带来无限的潜力。但随之也造成了许许多多的安全问题,安全问题往往来自于各个方面,有来自于内部的安全问题,例如企业员工的内部账号密码存在弱口令,内网的一些域名和IP地址可被外部探测,内网员工的代码有意无意地通过git传至开源的代码托管平台,造成企业内部源码泄露,其中更有可能包含了一些敏感的账户信息以及企业的内部机密资料,诸如此类种种的内网安全问题;也有来自于外部引发的安全问题,恶意攻击者的脱库,通过SQL注入攻击,直接脱库,造成企业用户,甚至乃至核心用户以及企业合作伙伴的信息泄露,由于研发人员缺乏一定的安全意识,造成恶意攻击者通过精心构造XSS(跨站攻击)攻击代码,实现存储型XSS攻击、DOM型XSS攻击或者反射型XSS攻击,来偷取用户的Cookies,实现一些越权的恶意的非法操作,给企业和个人带来无法估量的损失。
互联网的黑暗森林,危险来自于未知,由于缺乏对于互联网和自身的了解,从而产生掌控的无力和感茫然,使企业和个人不知道自己不知道的困境,从而带来无法应对的安全问题。
为了应对诸如此类的一系列的安全问题,网络应用型防火墙应运而生,其中以Nginx服务器搭配Lua构成的反向代理类型的网络应用型防火墙最为被个人站长乃至企业推崇。
1.2.1Nginx的发展历史
Nginx由Igor Sysoev于2002年发明。Nginx一度被认为是一个玩具样例。它是由俄罗斯系统开发人员Igor Sysoev首次发布。于2002年那时,42岁的Igor Sysoev首次启动这一伟大的项目,并且在当年十月公布了第一段公共源代码。就像一些开源项目的发起者一样,在起步的时候总是抱着幻想,幻想一切都会很愉快的进行下去。就在这时,他又入职了俄罗斯一家发展快速的门户网站——Rambler.ru,并且这个网站是俄罗斯访问量第二的网站,在实际生产环境中,他需要一个能够比任何的开源补充方案处理更多交易请求的网络服务器。
当他成功的实现Nginx之后,就在Rambler.ru上尝试运行了这些源代码,然而,Nginx真真正正的首次是于MP3下载门户站点Zvuki上在2003年投入使用,在那以后又是在Estonian,一个Online约会服务网站部署完成;最终,Nginx使Ramble.ru实现了自己的网站用于分享照片。
2009年的时候,CloudFlare公司特地成立下属企业,独家发卖其它类型的攻击保护网站的服务和防御网络攻击的服务,来促使购置的企业和个人,用来使他们的网站安全性能够提高。就在当时,CloudFlare创设的公司须要网站能够处理和使用软件来同时运行操作多核处理器的,更好的服务器——目的是让电脑芯片可以能够承担更多的负载。
CloudFlare CEO Matthew Prince说,Nginx服务器在多个核心、多个处理器的系统上有更好地运行状况,另外,Nginx服务器在和多个网站使用者保持联系的同一时刻并不会占用更多的电脑空间内存。这也就从而体现了Nginx("引擎X") 是一种享有极高处理效率的反向代理网络服务器和HTTP处理请求网络服务器,也是一种极其优秀的简单邮件传输协议,邮局协议版本3和交互邮件访问协议代理网络服务器。
Nginx是少数服务器写入地址C10K问题。与传统的服务器相比较而言,Nginx并不依赖处理请求是通过线程。相反,它使用一个事件驱动架构(异步)模式,让一切变得更加可伸缩。这种架构组成使用小,但更重要的是,可预测的荷载下极多的内部存储空间。就算你不期许处理许许多多的并发请求,你依旧可以享受到Nginx服务器带来的高性能和占用极小内存空间的好处。Nginx尺度四面八方:从最小的VPS一直到大型服务器集群。
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/rjgc/1256.html