首页 > 基础设施 > 正文

基于Unix系统的Web服务器安全指南

2012-08-14 14:05:49  来源:博客

摘要:计算机安全不但要求防治计算机病毒,而且要提高系统抵抗黑客非法入侵的能力,还要提高对远程数据传输的保密性,避免在传输途中遭受非法窃取。
关键词: Unix系统 Web

    在计算机网络日益普及的今天,计算机安全不但要求防治计算机病毒,而且要提高系统抵抗黑客非法入侵的能力,还要提高对远程数据传输的保密性,避免在传输途中遭受非法窃取。本文仅仅讨论在构造Web服务器时可能出现的一些情况,希望能引起重视。


    一、安全漏洞


    Web服务器上的漏洞可以从以下几方面考虑:


    1.在Web服务器上你不让人访问的秘密文件、目录或重要数据。


    2.从远程用户向服务器发送信息时,特别是信用卡之类东西时,中途遭不法分子非法拦截。


    3.Web服务器本身存在一些漏洞,使得一些人能侵入到主机系统,破坏一些重要的数据,甚至造成系统瘫痪。


    4.CGI安全方面的漏洞有:


    (1)有意或无意在主机系统中遗漏Bugs给非法黑客创造条件。


    (2)用CGI脚本编写的程序当涉及到远程用户从浏览器中输入表格(Form),并进行检索(Search index),或form-mail之类在主机上直接操作命令时,或许会给Web主机系统造成危险。


    5.还有一些简单的从网上下载的Web服务器,没有过多考虑到一些安全因素,不能用作商业应用。


    因此,不管是配置服务器,还是在编写CGI程序时都要注意系统的安全性。尽量堵住任何存在的漏洞,创造安全的环境。


    二、提高系统安全性和稳定性


    Web服务器安全预防措施:


[page]    1.限制在Web服务器开账户,定期删除一些断进程的用户。


    2.对在Web服务器上开的账户,在口令长度及定期更改方面作出要求,防止被盗用。


    3.尽量使FTP、MAIL等服务器与之分开,去掉ftp,sendmail,tftp,NIS, NFS,finger,netstat等一些无关的应用。


    4.在Web服务器上去掉一些绝对不用的如SHELL之类的解释器,即当在你的CGI的程序中没用到PERL时,就尽量把PERL在系统解释器中删除掉。


    5.定期查看服务器中的日志logs文件,分析一切可疑事件。在errorlog中出现rm, login, /bin/perl, /bin/sh等之类记录时,你的服务器可能已经受到了一些非法用户的入侵。


    6.设置好Web服务器上系统文件的权限和属性,对可让人访问的文档分配一个公用的组,如WWW,并只分配它只读的权利。把所有的HTML文件归属WWW组,由Web管理员管理WWW组。对于Web的配置文件仅对Web管理员有写的权利。


    7.有些Web服务器把Web的文档目录与FTP目录指在同一目录时,应该注意不要把FTP的目录与CGI-BIN指定在一个目录之下。这样是为了防止一些用户通过FTP上载一些如PERL或SH之类程序,并用Web的CGI-BIN去执行,造成不良后果。


    8.通过限制许可访问用户IP或DNS,如在NCSA中的access.conf中加上:


    《Directory /full/path/to/directory》


    《Limit GET POST》


    order mutual-failure


    deny from all


[page]    allow from 168.160.142. abc.net.cn


    《/Limit》


    《/Directory》


    这样只能是以域名为abc.net.cn或IP属于168.160.142的客户访问该Web服务器


    对于CERN或W3C服务器可以这样在httpd.conf中加上:


    Protection LOCAL-USERS {


    GetMask @(*.capricorn.com, *.zoo.org, 18.157.0.5)


    }


    Protect /relative/path/to/directory/* LOCAL-USERS


    9.WINDOWS下HTTPD


    (1)Netscape Communications Server for NT


    PERL解释器的漏洞:


    Netscape Communications Server中无法识别CGI-BIN下的扩展名及其应用关系,如。pl文件是PERL的代码程序自动调用的解释文件,即使现在也只能把perl.exe文件存放在CGI-BIN目录之下。执行如:/cgi-bin/perl.exe?&my_script.pl。但是这就


    给任何人都有执行PERL的可能,当有些人在其浏览器的URL中加上如:/cgi-bin/perl.exe?-e+unlink+%3C*%3E时,有可能造成删除服务器当前目录下文件的危险。但是,其他如:O′Reilly WebSite或Purveyor都不存在这种漏洞。


    CGI执行批处理文件的漏洞:


    文件test.bat的内容如下:


    @echo off


    echo Content-type: text/plain


[page]    echo


    echo Hello World!


    如果客户浏览器的URL为:/cgi-bin/test.bat?&dir,则执行调用命令解释器完成DIR列表。这就让访问者有执行其他命令可能性。


    (2)O′Reilly WebSite server for Windows NT/95


    在WebSite1.1B以前的版本中使用批处理文件存在着与Netscape同样的漏洞,但是,新版关闭了。bat在CGI中的作用。支持PERL,新版将VB和C作为CGI开发工具。


    (3)Microsoft′s IIS Web Server


    1996年3月5日前的IIS在NT下的BUG严重,可以任意使用command命令。但之后已修补了该漏洞,你可检查你的可执行文件的建立日期。IIS3.0还存在一些安全BUG,主要是CGI-BIN下的覆给权利。另外,许多Web服务器本身都存在一些安全上的漏洞,都是在版本升级过程中被不断更新了,在此就不一一列举了。


第三十四届CIO班招生
国际CIO认证培训
首席数据官(CDO)认证培训
责编:liangxuejuan

免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。