快捷搜索:  

构建安全的e-commerce服务器(4)

最后的文件检查:

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
顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论