基于LAMP技术平台搭建的Web安全服务器架构
2016-02-06◆宋阳
◆宋 阳
(天津国土资源和房屋职业学院 天津 300270)
基于LAMP技术平台搭建的Web安全服务器架构
◆宋 阳
(天津国土资源和房屋职业学院 天津 300270)
本文介绍LAMP技术平台以及可以选用的技术组合方案,进而探讨基于LAMP技术平台搭建Web服务器的安全配置。
LAMP;架构;Web服务器;数据库服务器;缓存服务器;安全配置
1 LAMP技术平台构成
1.1 Linux操作系统
Linux是一种开源的操作系统,它有着开放性、多用户、多任务和丰富的网络功能的特性,并且系统安全可靠、良好的移植性和用户界面、标准的兼容性、出色的速度性能。世界上大部分网站都将Web服务器部署在Linux上,正是因为它的稳定、安全、高效以及出色的性能。
1.2 Apache网页服务器
Apache是非常流行的一款Web服务器软件,受欢迎的原因是由于它良好的跨平台性,几乎在所有操作系统上都可以安装使用它,再有就是它是一个开源的项目,扩展性很强,安全漏洞少,稳定可靠。
1.3 MySQL关系型数据库管理系统
MySQL是一种基于SQL语言的标准关系型数据库系统。因其基于C和C++编写,所以具有很强的可移植性。支持绝大多数操作系统,跨平台性强。为大多数流行的编程语言提供了API接口,因此程序员可以使用各种语言为其编写数据库连接程序。以上的诸多优点和特性导致了它的用户很多。
1.4 PHP网站服务器端脚本语言
PHP是一种服务器端解释型脚本语言,由于其开源性的原因,使用者和维护者颇多,开放的框架和源码文档资源也很多,便于开发者学习和使用。它还具有面向对象的功能,我们可以使用PHP为Web站点编写出更多高级动态功能,更高效的开发代码。
2 LAMP架构分析
通过以上介绍,我们知道了LAMP网站架构包括:Linux操作系统+Apache网络服务器+MySQL关系型数据库管理系统+PHP/Perl/Python解释型脚本语言。因为LAMP平台中所包含的软件产品均是开源项目,意味着其免费使用的特性,所以开发维护者颇多,这样就出现了很多第三方的成熟优秀的免费框架资源供开发者使用,而且LAMP架构开发Web站点具有轻量、快速的特点,以及通用、跨平台、高性能、低成本的优势,这些都是微软的.NET架构无法比拟的。下面我对架构中的产品进行系统分析讨论:
2.1 操作系统
Linux操作系统版本发布很多,每个版本都有其特色,我们在选用时首先要考虑其功能性要符合所建网站的规模和性能,其次还要考虑成本,因为有些Linux系统版本是企业级的,升级需要收费,这会大大增加建站成本,而往往这些版本中的很多功能是我们建站所用不到的,因此我们可以选择一些免费的版本系统。一般情况下,中小型企业选用CentOS这个版本居多,它是Linux发行版之一,是RHEL/Red Hat Enterprise Linux的精简免费版,和RHEL具有相同的源代码,只不过重新编译了,有很高的稳定性。
2.2 Web服务器
Apache是Web服务器上发布网站用的软件,其开源的特性使其运行时非常稳定、安全。由于其模块丰富导致其比较臃肿,运行时占用的硬件资源大,不可避免的损耗性能,所以我们在使用Apache的同时还可以考虑选用一些轻量级的服务器软件辅助处理Web请求。具体的方案是我们可以使用Apache服务器来处理PHP脚本程序提交的动态数据,而使用Nginx轻量级服务器处理非PHP脚本程序提交的静态页面数据。Apache提供了两种解决Web服务器缓存的方式,一种是使用Apache自带的缓存模块,另一种是外加Squid模块进行缓存。加入Squid模块其实是做一个Squid缓存服务器,单独应对cache服务器缓存相关请求以此提高Web服务器的响应速度。随着服务器数据访问量变大,我们还可以考虑使用memcache做分布式高速缓存。
2.3 脚本代码优化
为了提高PHP脚本缓存性能,我们可以使用eAccelerator加速器,优化动态内容缓存。加速器可以使PHP脚本在解释状态下,优化脚本代码,加快其执行效率,对服务器的性能开销完全消除。
3 基于LAMP的Web安全配置
3.1 Web服务器和PHP的安全性
Web服务器和PHP的安装和配置是一个大的安全问题。在计算机和服务器上安装的大多数软件都有配置文件和默认的特性,这些都是用来“炫耀”软件功能和可用性的。假设需要禁用软件的某些不需要的或者安全性较低的功能选项。通常,人们不会考虑这么做,或者花费时间来正确处理它。作为考虑整体安全性的部分方法,我们需要确保Web服务器和PHP是被真正正确的配置。
3.1.1 保持软件更新
提高系统安全性的一个最简单办法就是确保你所使用的软件是最新和最安全的版本。对于PHP,Apache HTTP服务器,可以通过定期访问这些网站,查看是否有安全建议,新的发布版本,以及与安全相关的缺陷修复的新特性。
3.1.2 查看php.ini文件
3.1.3 Web服务器配置
(1)Httpd服务器所有配置选项都保存在httpd.conf文件里,该文件存在于httpd基本安装的/conf子目录中。
(2)确认httpd不是以超级用户权限执行的。这可以通过httpd.conf文件下的“用户和组”设置实现。
(3)确认Apache安装目录的文件权限是否正确设置。在UNIX系统中,这包括了文档根目录以外的所有目录属主都是“root”,并且具有755权限。
(4)确认服务器设置了正确的并发连接数。
(5)通过在httpd.conf引入适当的指令,隐藏一些不希望被看到的文件。
3.2 数据库服务器的安全性
3.2.1 用户和权限系统
花费一些时间来了解你选择使用的数据库服务器的用户认证和权限系统。请确认所有账户都有密码对于任何数据库服务器,你要做的第一件事就是确保数据库超级用户具有密码。许多数据库将会以匿名用户身份安装,并且具有比你期望的更多权限。在了解和确认权限系统后,请确认任何默认账户的权限都是你期望的,删除任何不是你所期望的权限。
3.2.2 发送数据至服务器
不要发送任何未经过滤的数据至服务器。使用数据库扩展提供的各种函数对输入的字符串进行转义,为自身提供基本保护。除了依赖于函数,我们还可以对输入表单的每个域执行数据类型检查。
3.2.3 连接服务器
可以控制与数据库服务器的连接来保证数据库的安全性。一个最简单的方法就是限制允许连接数据库的用户。有些数据库服务器提供了加密连接特性来连接数据库,这也是提高数据库安全性的可靠途径之一。最后必须确保数据库服务器在任何时候能够处理的连接数大于或超过Web服务器和PHP的连接数。
3.2.4 运行服务器
首先,我们不应该以超级用户身份运行它。其次,在设置好数据库软件后,大多数程序将允许你修改数据库目录和文件的属主和权限,这样可以防止非法读操作。最后,当应用权限和验证系统时,尽量创建只有最少权限的用户。
图1 LAMP网站架构图
3.3 保护网络
3.3.1 安装防火墙
在网络中,设计防火墙的目的是将本地网络与外部网络相分离,用于保护内部网络中的机器以防外来攻击。它过滤和拒绝不符合标准的消息,限制防火墙之外的个人和机器行为。再有就是构建互联网的TCP/IP协议,这个是基于端口的,不同的端口专门用于不同类型的流量。对于内部网络流量,大量端口的使用是非常严格的,很少用来与外部网络的交流。如果禁止在这些端口上发送和接收网络流量,我们可以降低计算机或服务器以及Web应用被攻破的风险。
3.3.2 使用隔离区域(DMZ)
为了防御内部恶意用户攻击的可能,我们可以实现隔离区域,在隔离区域中,我们可以将运行Web应用的服务器与外部互联网以及内部公司网络相隔离。
3.3.3 应对DoS和DDoS攻击
由于这两种攻击很难防范和响应,目前还没有有限的全面解决方案,所以要求网络管理员必须研究和理解这两种攻击的本质以及特定网络和安装情况下面临的风险,有助于防范和准备。
3.3.4 备份数据
我们必须定期备份网站的所有组件,包括静态网页、脚本和数据库。备份的频率取决于网站的动态程度。如果它完全是静态的,可以只在修改网站时对其进行备份。大多数规模适当的网站都需要在服务器上使用RAID,它可以支持镜像。RAID考虑了可能有一个硬盘出现故障的情况。如果整个磁盘阵列出现问题,我们可以根据更新量的大小以一定的频率进行独立的备份。这些备份应该保存在独立的介质上,将其放置于一个安全的、独立的地方,以防火灾、盗窃或自然灾害。
3.4 计算机和操作系统安全性
3.4.1 保持操作系统的更新
保持计算机安全的一个简单方法是尽可能保持操作系统软件为最新的。只要选择了特定的操作系统作为产品环境,你就必须制定一个定期执行更新和操作系统应用安全补丁的方案。此外,还应该有专门人员定期查看是否存在新的安全警告、补丁或更新。
3.4.2 只运行必须的软件
不需要的软件最好禁用,这样就不用担心这些软件的安全性。
3.4.3 服务器的物理安全性
将运行Web应用的服务器保存在一个安全的环境是至关重要的,只有授权人员才可以访问,而且必须有特定流程对不同的人授予或收回权限。
4 结语
LAMP平台由于其开源的环境,丰富的源码、文档资源,使其成为高效、稳定、安全并且低成本的网站架构平台,符合中小型企业对于网站服务器架构的特定需求。本文结合LAMP平台的架构,主要分析了Web服务器安全性威胁,从不同的方面提出了相应的解决方案,可以确保Web服务器的安全运行。
[1]石坚.校园网络运维系统的设计与实现.南京理工大学硕士论文,2013.
[2]李玉聪.基于LAMP高校集成办公系统的研发.吉林大学硕士论文,2010.
[3]李昕.基于LAMP开源框架的中小外贸企业信息系统研究与开发.中南大学硕士论文,2011.
[4]冯文熠.基于XML和XAJAX模式的高校教务子系统研究与实现.兰州理工大学硕士论文,2013.
[5]胡二彪.基于SEO的教学资源网站设计与开发.河南师范大学硕士论文,2012.
[6]李金龙.基于Drupal网络教育平台的设计与实现.中国海洋大学硕士论文,2014.