【51CTO独家特稿】网站安全问题可以说是现在最引人关注的问题,有关服务器安全、用户隐私安全、企业数据安全的文章和争论从来没有停息过。系统管理员作为网站安全的第一道哨岗,既要确保网站服务器系统的安全,也要考虑到网站应用的一些基本安全防护。
51CTO编辑推荐:SA,神仙与装机男:运维的工作到底啥样儿?
在之前《明明白白你的Linux服务器——安全篇》中,抚琴煮酒列举了一些Linux/Unix服务器系统最基本的一些安全防护措施,这篇总结对于服务器端的安全防护思路介绍的相当详细。但是要保护网站的安全运作,仅仅针对服务器系统本身的防护是不够的,还需要有一个更全局的视角和防范思路。本文中介绍的十条措施虽然涉及到用户身份验证、数据加密传输、子网划分、灾难备份等多个方面的内容,但所有这些其实都是维护网站安全最低限度需要做到的事情。文章并没有深入的介绍每一个方面应如何实施,主要是给大家提供思路,为广大运维人员提供参考。
作者简介:李洋,博士毕业于中科院计算所。10多年来一直从事计算机网络信息安全研发工作,曾主持和参与多项国家重点项目以及信息安全系统和企业信息安全系统的研发工作。具有Linux系统应用、管理、安全及内核的研发经验,擅长网络安全技术、协议分析、Linux系统安全技术、Linux系统及网络管理、Linux内核开发等。
网站前端防护
措施1:网站用户的身份认证
一般可以采用用户名+密码验证,确认用户登录身份,并根据数据库中预设的权限,向用户展示相应的界面。
对于重要的网站应用,需要根据PKI机制,验证用户提供的证书,从而对用户身份认证(服务器对客户端认证),并确保交易的不可抵赖性。证书的提供可以采用两种方式:文件证书或是USB设备存储的证书。文件证书保存在用户磁盘和文件系统上,有一定的安全风险,但是可以免费;USB证书安全性高,但是一般需要向用户收费。
有关身份认证的具体操作,编辑推荐读者们关注51CTO安全频道的身份认证技术专题。
措施2:网站数据的加密传输
对于使用Web浏览器的网上系统应用,采用SSL+数字证书结合的方式(即HTTPS协议),保证通信数据的加密传输,同时也保证了用户端对服务器端的认证,避免用户被冒充合法网站的“钓鱼网站”欺骗,从而泄露机密信息(用户名和密码等),造成不可挽回的经济损失。
如何建立SSL(HTTPS)网站?鸟哥的私房菜里面有一章进行了简单的介绍。
措施3:用户账号使用行为的日志记录及其审计
系统服务器侧应根据账号,对用户的使用行为进行详细的日志记录和审计,通过上述因素的日志记录,进行阶段性的审计(时间间隔应该比较小),从而做到发现用户账号的盗用、恶意使用等问题,尽早进行处理。
措施4:恶意用户流量的检测、过滤及阻断
系统服务器侧应部署IDS入侵检测系统、IPS入侵防护系统、防火墙等设备,或者部署目前高效、流行的UTM(统一威胁管理)设备,对恶意用户采用的各种攻击手段进行检测和防护,重点过滤恶意流量、突发流量等。
相关阅读:
- 51CTO安全频道的IDS入侵检测专题
- 入侵防护系统(IPS)初探
- 了解统一威胁管理(UTM)技术
措施5:对非正常应用请求的过滤和处理
系统的服务器端,尤其是数据库服务器端,应该通过配置和增加对用户非常长应用请求的过滤和处理模块,以避免由于数据库的自身漏洞未及时打上补丁而遭受目前流行的SQL注入攻击等。
#p#
网站服务器侧
措施6:合理的子网划分及流量分割
系统服务器侧包括大量的服务器类型,包括数据库服务器、Web服务器、FTP服务器、邮件服务器等,为了避免由于恶意流量造成的某种服务器崩溃,而引起的攻击后果扩散,并最终导致其他服务器也发生“雪崩效应”,则需要通过子网隔离(比如VLAN划分)、DMZ区域的设定等方式来将这些服务器放置在不同的安全域当中,做到流量和数据的安全隔离,从而将服务器端在遭受攻击后对整个业务系统及其他内网资源和数据造成的影响尽量控制在最低的范围内。
参考阅读:VLAN的划分方法
措施7:负载均衡及负载保护机制
系统面临着巨大的服务量,服务器端的设备基本上都需要有多台服务器进行业务分担,这样才能提高性能,避免处理瓶颈的出现,因此,需要采用合理的负载均衡和负载保护机制:
◆对各服务器的业务流量进行有效地分担,可按照Round Robin、LRU等方式来进行负载均衡
◆负载保护机制需要实时地对每台服务器的CPU资源、内存资源等进行评估,如果一旦超过设定的阈值(80%或者以上),将马上进行过载保护,从而保证服务器自身的安全
负载均衡相关推荐阅读:
措施8:灾难备份及恢复
任何系统都不能说100%的安全,都需要考虑在遭受攻击或者是经受自然灾害后的备份恢复工作,需要着重考虑如下几点:
- 选择合适的备份策略,做好提前备份,包括全备份、差分备份、增量备份等等
- 选择合适的备份介质,包括磁带、光盘、RAID磁盘阵列等
- 选择合适的备份地点,包括本地备份、远程备份等等
- 选择合适的备份技术,包括NAS、SAN、DAS等等
- 作好备份的后期维护和安全审计跟踪
Linux系统的备份手段和工具可以参考51CTO系统频道的Linux 系统备份——操作实践与工具介绍专题。更多有关灾难备份和恢复的信息可以在51CTO的存储子站WatchStor.com获取。
措施9:管理规范化
系统功能复杂,业务数据敏感,保密级别比较高,并且对不同管理人员的权限、角色要求都不尽相同,为了保证安全管理,避免内部管理中出现安全问题,建议作如下要求:
- 严格划分管理人员的角色及其对应的权限,避免一权独揽,引起安全隐患;
- 作好服务器机房的物理条件管理,避免电子泄露、避免由于静电等引起的故障;
- 应作好服务器管理员的帐号/口令管理,要求使用强口令,避免内部人员盗用;
- 作好服务器的端口最小化管理,避免内部人员扫描得出服务器的不必要的开放端口及其漏洞,实行内部攻击;
- 作好服务器系统软件、应用软件的日志管理和补丁管理工作,便于审计和避免由于安全漏洞而遭受到内部人员的攻击;
- 根据业务和数据的机密等级需求,严格划分服务器的安全域,避免信息泄露。
措施10:网站漏洞自我挖掘及防护
采用漏洞扫描和挖掘设备,对内网各服务器进行阶段性的扫描,并根据扫描所得的风险和漏洞进行及时地修补,以实现该漏洞为黑客使用之前进行自行修复的目的。
这方面的工具服务很多,比如五大著名的免费SQL注入漏洞扫描工具,十大Web服务器漏洞扫描程序等等。
上面这十条,并不是做了就能够保证网站安全,而是要“做好”,必须做好。正在阅读这篇文章的运维人员们,上面这些,你都做到了吗?
【编辑推荐】