• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
构建安全的e-commerce服务器
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
构建安全的e-commerce服务器
软件发布 构建安全的e-commerce服务器
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 文章首页 >> 网络技术 >> WEB服务器架设与维护 >> 构建安全的e-commerce服务器

构建安全的e-commerce服务器

添加时间: 2007-7-31 3:54:42  作者: Web服务器教程  阅读次数:18   来源: http://www.d9soft.com

       

Background

基于Internet的网络经济一直吸引着人们的眼球,随着门户网站的局势已定,现在又涌现出一批以“电子商务”命名的网络公司。相比之下,他们比较冷静和谨慎。在企业级应用上,他们不仅仅满足于协助中小企业上网,更多的是想提供一些电子商务的主打产品:CRM、ERP、SCM等,或者提供从IDC到ASP一条龙服务。

但是,就我所经历的情况来看,真正能埋头做产品的公司微乎其微。一是因为投入太大,二是因为很难找到合适的市场定位。做方案和集成,无非是东拼西凑,糊弄初级客户,完全没有自己的东西。那么,目前电子商务公司除了做一些网站建设和应用项目,还有哪些盈利点?依我所见,由于国内的电子商务环境还不成熟,没有完整的信用体制和支付手段,在这个基础上,许多电子商务活动都是很难开展的。客户的顾虑也很多,仅从安全性上考虑,比如你做ASP(应用服务提供商),客户很难接受与其他人共享一块硬盘,把数据交给你维护更是忧心忡忡;辛辛苦苦开发出一套系统,放到网上,很轻易的被黑客窃取了源代码,让人心痛;架在一个不堪一击系统上的应用,黑客篡改了页面和数据,都很难向客户交待,影响了自己的声誉和进一步的业务合作。

这就体现出了安全的重要性。是的,安全和黑客技术是比较偏,有些搞软件开发的人甚至对此嗤之以鼻,但是我们不能否认安全在电子商务中的基石作用,不考虑安全和不懂安全的系统分析员来设计开发电子商务系统,最后注定会失败的很惨。

安全是一个很复杂的系统工程,从最初的制度策略的制定,到最后整个系统的implement,有很多环节。本文仅仅介绍构造一个e-commerce服务器,来说明在Internet上放置一个可以安全运行的电子商务WEB服务器也不是那么的简单。

二.Apache

  为什么要选择Apache?中小企业比较乐于接受较低的系统报价,UNIX的网管们也可以从技术上替我解释这个问题。是的,相比于漏洞层出不迭的IIS来说,Apache在安全界享有良好的声誉,但是一个默认安装的Apache还是不够。

1)      操作系统

Apache尽管发布了Windows、Linux、BSD家族和其他操作系统的版本,但毫无疑问的是,UNIX是最好的选择。首先是远程管理上的方便,同时SSH提供了远程管理维护的加密通道。在系统性能上,UNIX类系统更加易于优化配置。

2)      自身的漏洞

尽管Apache的内核没有太大的buffer overflows和exploits,但是在1.3.19以前的版本有一个mod_rewrite漏洞。建议安装最新的版本1.3.20。

3)      外来的隐患

现在的电子商务网站内容都不是静态,而是动态生成的,所以需要额外的一些模块,如Java(Jserv)、Perl(mod_perl)、PHP(mod_php)。这些模块给Apache引入了安全隐患。如Windows平台上的Apache+PHP存在目录遍历漏洞,UNIX平台上,某些版本的Tomcat引擎(Java Servlets和JSP)也存在目录遍历、甚至泄露.jsp源代码的漏洞。

  Apache和其它软件产品一样,多多少少存在安全问题。我们不要在嘲笑IIS满身窟窿同时,对Apache抱着100%的放心。一般情况下,有两个因素导致软件的不安全性:技术上和配置。如果网管们都能很好的配置服务器,相比之下,软件中的一些BUG是很容易解决的。


SSL

  Internet是一个开放的系统。大部分的网络通信都是不安全的,就好比传统邮政中的明信片邮寄,恶意用户可以偷看明信片内容、篡改和伪造身份发送。

  SSL,即Secure Socket Layer,是工作在网络层与会话层之间的协议,它在TCP/IP和HTTP之间增加了一个加密层,主要是使用公开密钥体制和X.509数字证书技术保护信息传输的机密性和完整性,它不能保证信息的不可抵赖性,主要适用于点对点之间的信息传输,常用于Web Server方式。

  电子商务系统中,最常用的加密协议是SSL和SET。SET是在应用层,而SSL是在会话层,对工作在HTTP协议以上的用户而言,加密是透明的。关于SSL和SET的比较,请参考其他文章。事实上,最容易实现的方案就是采用SSL,新推出的TLS也未被广泛使用。

四.Apache+SSL

  好,下面将给出一些实践内容,介绍如何安装一个安全的Apache SSL Server。首先,必须保证网络和操作系统的安全性:安装了防火墙和路由器并且配置正确,操作系统已打补丁且做了安全优化,系统日志的单独存放等等。

  Apache服务器本身不支持SSL,我们有很多选择可以完成Apache/SSL的合并:(1)Apache-SSL计划(http://www.apache-ssl.org),它集成了Apache服务器和SSL;(2)第三方的SSL补丁,例如Covalent Networks的Covalent SSL (http://www.covalent.com);(3)mod_ssl,它是通过可动态加载的模块mod_ssl(http://www.modssl.org)来支持SSL;(4)基于Apache并集成了SSL能力的商业Web服务器,然而使用这些商业Web服务器主要是北美,这是因为在那里SSL使用的公开密钥的算法具备专利权,例如RedHat Secure Server(http://store.redhat.com/commerce/)。

我们选择第三种方法,这样我们就使用Apache的最新版本。去三个站点下载以下软件包:

Apache:http://www.apache.org

OpenSSL:http://www.openssl.org

mod_ssl:http://www.modssl.org

 下面是安装步骤:

 A. 准备

解开apache、openssl和mod_ssl到/usr/local/src目录下。

 B.  编译Openssl

切换到目录/usr/local/src/openssl-0.9.6:

(1)./Configure linux-elf threads –fPIC –prefix=/usr/local/ssl

(2)make

(3)make test

(4)make install

 C. 配置mod_ssl

进入目录/usr/local/src/mod_ssl-2.8.0-1.3.17执行以下命令:

./configure --with-apache=../apache_1.3.17

 D. 配置Apache

进入目录/usr/local/src/apache_1.3.17:

1. export SSL_BASE=../openssl-0.9.6

2. ./configure \

--prefix=/usr/local/apache \

--enable-module=ssl \

--disable-rule=SSL_COMPAT \

--enable-module=rewrite \

--enable-module=auth-digest \ # use MD5 hashes for HTTP

# basic authentication

--enable-module=vhost_alias \ # enable virtual hosts

--enable-module=log_referer \ # enhance logging

--disable-module=userdir \ # not used in e-commerce apps

--disable-module=autoindex \ # do not list directories

3. make

4. make certificate TYPE=dummy

5. make install

6. /src/httpd –l

 现在Apache已经安装好了,可以通过httpd –l来查看安装的模块。


下面是一些要检查的安全设置:

 SSL:

在httpd.conf中打开SSL

Port 80


Listen 80

Listen 443

SSLSessionCache dbm:/usr/local/apache/ logs/ssl_scache

SSLSessionCacheTimeout 1200

# For increased performance use "SSLMutex sem" instead of the line below

SSLMutex file:/usr/local/apache/logs/ssl_mutex

SSLLog /usr/local/apache/logs/ssl_engine_log

# change the log level default from "info" to "warn"

SSLLogLevel warn

SSLOptions +OptRenegotiate


 打开虚拟主机的SSL支持:

# Within the ...


SSLEngine on

# Replace with certificate file name

SSLCertificateFile /usr/local/apache/conf/ssl.

cert/

# Replace with key file name

SSLKeyFile /usr/local/apache/conf/ssl.key/

SSLVerifyClient none


 定制SSL的LOG格式:

LogFormat clfa "%h %l %u %t \"%r\" %>s %b\ %{SSL_PROTOCOL}x  %{SSL_CIPHER}x \"%{SSL_CLIENT_S_DN_CN}x\""

CustomLog /usr/local/apache/logs/access_log clfa

 被保护的目录:


SSLCipherSuite HIGH: MEDIUM

AuthType Digest

AuthName "Beta code testing"

AuthDigestDomain /test/ http://test.my.dom/beta/

AuthDigestFile /usr/local/apache/conf/

digest_pw

Require valid-user

最后的文件检查:

1. SSL证书和公钥不能存放在DocumentRoot下;

2. SSL 证书和公钥必须被root所拥有,chmod 400 *.crt;

3. 移去/htdocs和/cgi-bin中的所有示例文件;

4. /htdocs下的所有文件被nobody所拥有。

如果你不怕配置麻烦,最好把Apache放到一个chroot的环境中运行。:)

  关于如何生成证书请求包和到CA中心去签署,请参考其他文章。目前国内也有很多CA中心,如中国电信电子商务安全认证中心(http://www.sinocol.com/),都可以对个人颁发证书。

 五.Hardening e-commerce Server

  尽管Apache安装和配置的都很安全,但是一台具有薄弱口令或者运行着象wu-ftpd那样不安全服务的LINUX还是很容易被攻破。一般来讲,一台WEB服务器仅仅需要的其他服务只有SSH—远程管理所用。不要安装x-windows,编译器如gcc等应该在系统稳定运行后删去,这样可以避免一些script-kiddiez的破坏。

  同时,一些包过滤规则(ipfw,ipchains,iptables)应该被应用。这里我们将讨论Linux下的ipchains,假定有以下需求:

 1.  服务器有两块网卡

2.  外网卡仅仅允许80和443端口数据的incoming

3.  外网卡仅仅允许>1023端口数据的outgoing

4.  内网卡仅仅允许22、80、443端口的incoming

5.  内网卡仅仅允许>1023端口数据的outgoing。一般的连接是数据库,oracle是1524port,SQL Server是1443,SSH可以加上-P选项来指定大于1023的用户端口。

6.  内网卡允许ICMP响应

 命令如下(eth0外网卡,eth1内网卡):

ipchains -A in-eth0 -p tcp --dport 80 -j ACCEPT

ipchains -A in-eth0 -p tcp --dport 443 -j ACCEPT

ipchains -A in-eth0 -p udp --dport 53 -j ACCEPT

ipchains -A in-eth0 -j DENY

ipchains -A out-eth0 -p tcp --dport 1024:65535 -j ACCEPT

ipchains -A out-eth0 -p udp --dport 53 -j ACCEPT

ipchains -A out-eth0 -j DENY

ipchains -A in-eth1 -p tcp --dport 22 -j ACCEPT

ipchains -A in-eth1 -p tcp --dport 80 -j ACCEPT

ipchains -A in-eth1 -p tcp --dport 443 -j ACCEPT

ipchains -A in-eth1 -p udp --dport 53 -j ACCEPT

ipchains -A in-eth1 -p icmp -j ACCEPT

ipchains -A in-eth1 -j DENY

ipchains -A out-eth1 -p tcp --dport 22 -j ACCEPT

ipchains -A out-eth1 -p tcp --dport 1024:65535 -j ACCEPT

ipchains -A out-eth1 -p udp --dport 53 -j ACCEPT

ipchains -A out-eth1 -p icmp -j ACCEPT

ipchains -A out-eth1 -j DENY

剩下的工作就是重新编译系统内核,禁用不需要的模块,可以使某些rootkits失效。

最后,检查WEB SERVER上运行着的程序的安全性,有没有缓冲区溢出等安全问题。

六.参考资料

Improving Apache, by GARY BAHADUR & MIKE SHEMA

SSL: Theory and Practice, Zeus Technology

LASG, i.e. Linux Administrators Security Guide

 

上下文章:

 

上一篇文章: 基于Apache的Web页面访问权限控制 下一篇文章: 一个IP建多个Web站点--TCP端口法

相关文章:

  • 卡巴斯基全功能安全软件2009白皮书
  • Linux之父:最烦安全人士大肆宣扬软件漏洞
  • 用端口碰撞技术实现服务器远程管理
  • 病毒猖獗,怎么打开电脑文件会较安全?
  • 以MDaemon为例解释邮件服务器的安全设置

相关软件:

  • 奇虎360安全卫士 4.3.0.1002 标准版
  • 奇虎360安全卫士 4.3.0.1002 豪华版
  • 还原精灵安全保镖 V5.0
  • 瑞星卡卡上网安全助手 6.0.0.29 正式版
  • 北信源VRV 网络服务器端病毒库 90e
  • 勤哲Excel服务器 2005 V6.0 企业版客户端

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

网络技术分类导航

  • 局域网专栏
  • 病毒快报
  • 网络安全
  • 组网教程
  • WEB服务器架设与维护
  • FTP服务器架设与维护
  • DNS服务器架设与维护
  • 邮件服务器架设与维护

本类经典文章推荐

  • Web站点崩溃的原因总结
  • 保护(IIS)web服务器的15个技巧
  • 关于Win2003系统中证书服务
  • 虚拟服务器实现方法
  • Web 服务器日志工具点评
  • IIS5中的两种服务器端网页重定向方...
  • Insert和Rs.Addnew的比较
  • 什么是web 2.0 (3)
  • 什么是web 2.0 (1)
  • 什么是web 2.0 (4)

WEB服务器架设与维护阅读排行

  • 保护(IIS)web服务器的15个技巧
  • Web站点崩溃的原因总结
  • 虚拟服务器实现方法
  • 在局域网中实现Web共享
  • 关于Win2003系统中证书服务
  • 什么是web 2.0 (1)
  • IIS5中的两种服务器端网页重定向方...
  • 什么是web 2.0 (3)
  • FreeBSD下构建安全的Web服务器(1)
  • 中小企业服务器配置-Web服务器(2)

网络技术阅读总排行

  • 网络解惑:找回消失的本地连接
  • 教你如何通过路由器来控制上网
  • 网卡故障排除技巧详解
  • FlashFTP教程
  • 网上邻居十大经典应用技巧
  • 如何有效建立Win2000 VPN服务器
  • 经济实惠:组建P2P电影服务器
  • 查找局域网络中的故障技巧
  • 南阳信息港被黑案告破!
  • 小区宽带主要常见故障解决办法

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有