当前位置: 首页 > 图文教程 > 服务器 > 安全防护 > Web服务器的安全和攻击防范 (三)

安全防护
2003服务器A级BT安全配置指南(12)
2003服务器A级BT安全配置指南(13)
修改用户控制权限管理自启动文件
IIS6.0下建立FTP“用户隔离”站点
SQL Server数据库安全规划全攻略(1)
从IIS到SQL Server数据库安全
匿名FTP的安全设定(1)
匿名FTP的安全设定(2)
SQL Server防范措施(2)
域名解析优化也会有麻烦
10个步骤保护IIS Web服务器安全
突破SQL错误提示上传webshell
判断Web数据库方式的一个小经验
sqlserver取得网站路径的几种方法以及比较(1)
sqlserver取得网站路径的几种方法以及比较(2)
阿江的WINDOWS服务器安全设置
RAdmin 服务端高级配置(2)
Win2000安全检查清单(1)
Win2000安全检查清单(2)
Win2000安全检查清单(3)

安全防护 中的 Web服务器的安全和攻击防范 (三)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-29   浏览: 70 ::
收藏到网摘: n/a

用rpcinfo查询

  使用rpcinfo和showmount(对于Linux的某些版本,还可以使用kshowmount),你可以查询自己机器的sunrpc提供了哪些服务。如果NFS正在运行,就有可能从服务器获得已导出文件系统的清单。



# rpcinfo -p www.example.server program vers proto port 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper

  可以看到,www.example.server的sunrpc服务开放了对外部机器的连接。这是没有必要的,我们可以安装带有访问控制的rpcbind程序或者配置防火墙阻断它。

  由于NFS默认值极不合理,把文件系统完全不受保护地以可读写方式显露给外界就成了一种极为常见的错误。下面是一个实例:



# /usr/sbin/kshowmount -e center2.sample-university.netExport list for center2.sample-university.net:/usr/lib/cobol (everyone)/usr/sys/inst.images (everyone)/stadtinf (everyone)/var/spool/mail (everyone)/usr/lpp/info (everyone)/usr/local (everyone)/pd-software (everyone)/u1 (everyone)/user (everyone)/fix (everyone)/u (everyone)/ora rzws01/install (everyone)/ora-client 192.168.15.20


  所有注明了“everyone”的目录都是向公众开放的,其中包括:保存了数百个用户邮件的“/var/spool/mail”目录,以及用户的主目录“/u”和“/u1”。另外“/usr/local”和“/usr/lib/cobol”也是允许写入的,这使得它很容易被安装上特洛伊木马。任何人都可以进入这个系统,且不会遇到什么值得一提的阻力。

私有数据的安全性

  我们要讨论的第二类安全问题涉及到服务器公用目录下的私有数据。许多Web空间提供商提供的只有“Web空间”,它们会把用户FTP目录的根映射到Web服务器的根。也就是说,用户可以通过FTP以“/”访问服务器目录“/home/www/servers/www.customer.com/”,同时任何人可以通过URL“http://www.customer.com/”访问它,用FTP方式保存的“/password”文件可以通过URL“http://www.customer.com/password”访问。如果用户Web应用需要保存一些私有的、不能从Web访问的数据,则根本无法找到满足要求的位置。

  许多Web商店把订单日志和调试输出写入一个或多个日志文件,或者用配置文件来保存密码和商品数据。如果这些数据保存到页面文档根目录之下,那么它们就有相应的URL而且可以通过Web访问。此时攻击者所要做的只是猜出这些文件的名字。只要了解了20种主流在线商店系统的默认设置并正确地识别出目标网站所用的系统,要猜出这些文件名字是相当简单的。

  如果Web服务器既提供私有数据存储又提供公用页面目录,上述问题就不会再出现。例如在这些方案中,FTP根目录“/”映射到“/home/www/servers/www.customer.com/”,但页面文档的根目录却在它的下一级目录“/home/www/servers/www.customer.com/pages”,可以通过FTP以“/pages”形式访问。在这种目录配置下,用户可以另外创建和页面文档根目录平行的目录,然后把敏感数据放到这些目录中。由于这些目录可以通过FTP访问,但不能通过HTTP访问,所以它们是无法通过Web访问的。

  如果系统没有采用上述根目录分离的目录结构,我们还有一种解决问题的办法,即在页面文档根目录下创建专用的私有数据存储目录,如“/shop”,然后在这个目录中创建.htaccess文件,通过.htaccess文件拒绝所有HTTP访问(适用于Apache服务器):



$ cat /shop/.htaccessorder deny, allowdeny from all

  该目录中的文件只能通过FTP传输,因为FTP传输忽略.htaccess文件。但与前面采用页面文档根目录之外独立目录的方法相比,这种方法的风险更多一点,因为如果服务器管理员在服务器主配置文件中意外地关闭了该目录必不可少的“AllowOverride Limit”优先权,这种保护将不再有效。

  上述问题还