浅析Unix系统下的web服务器的配置安全

Internet日益普及的今天,PC安全不但要求防治计算机病毒,而且要提高系统抵抗黑客非法入侵的能力,还要提高对远程数据传输的保密性,避免在传输途中遭受非法窃取。本文仅仅浅析在构造 Web服务器时可能出现的一些情况,希望能引起重视。
        一. 安全漏洞
        Web服务器上的漏洞可以从以下几方面考虑: 
        1.在Web服务器上你不让人访问的秘密文件、目录或重要数据。
        2.从远程用户向服务器发送信息时,特别是信用卡之类东西时,中途遭不法分子非法拦截。
        3.Web服务器本身存在一些漏洞,使得一些人能侵入到主机系统,破坏一些重要的数据,甚至造成系统瘫痪。
        4.CGI安全方面的漏洞有:
        (1)有意或无意在主机系统中遗漏Bugs给非法黑客创造条件。
        (2)用CGI脚本编写的程序当涉及到远程用户从浏览器中输入表格(Form),并进行检索(Search index),或form-mail之类在主机上直接操作命令时,或许会给Web主机系统造成危险。
        5.还有一些简单的从网上下载的Web服务器,没有过多考虑到一些安全因素,不能用作商业应用。
        因此,不管是配置服务器,还是在编写CGI程序时都要注意系统的安全性。尽量堵住任何存在的漏洞,创造安全的环境。
        二. 提高系统安全性和稳定性
        Web服务器安全预防措施:
        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
        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 <*>时,有可能造成删除服务器当前目录下文件的危险。但是,其他如:O′Reilly WebSite或Purveyor都不存在这种漏洞。
        CGI执行批处理文件的漏洞:
        文件test.bat的内容如下:
        @echo off
        echo Content-type: text/plain
        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服务器本身都存在一些安全上的漏洞,都是在版本升级过程中被不断更新了,在此就不一一列举了。
        三. 从CGI编程角度考虑安全
        1.采用编译语言比解释语言会更安全些,并且CGI程序应放在独立于HTML存放目录之外的CGI-BIN下,这是为了防止一些非法访问者从浏览器端取得解释性语言的原代码后从中寻找漏洞。
        2.在用C来编写CGI程序时应尽量少用popen()、system()、所有涉及/bin/sh的SHELL命令以及在PERL中的system()、exec()、open()、eval()等exec或eval之类命令。
        在由用户填写的form还回CGI时,不要直接调用system()之类函数。
        另外,对于数据的加密与传输,目前有SSL、SHTTP、SHEN等协议供大家研究。
        四.防火墙(Firewall)
        1.防火墙的概念
        防火墙(Firewall)是指一个由软件或由软件和硬件设备组合而成,处于企业或网络群体计算机与外界通道(Internet)之间,限制外界用户对内部网络的访问及管理内部用户访问外界网络的权限。
        2.防火墙的措施
        (1)代理(Proxy)主机
        “内部网络--代理网关(Proxy Gateway)--Internet”
        这种方式是内部网络与Internet不直接通讯。就是内部网络计算机用户与代理网关采用一种通讯方式,即提供内部网络协议(Netbios、TCP/IP等),而网关与Internet之间采取的是标准TCP/IP网络通讯协议。这样使得网络数据包不能直接在内外网络之间进行。内部计算机必须通过代理网关访问Internet,这样容易在代理服务器上对内部网络计算机访问外界计算机进行限制。另外,由于代理服务器两端采用不同协议标准也可以直接阻止外界非法入侵。还有,代理服务器的网关可对数据封包进行验证和对密码进行确认等安全管制。这样,能较好地控制管理两端的用户,起到防火墙作用。
        因为这种防火墙措施是采用透过代理服务器进行,在联机用户多时,效率必然受到影响,代理服务器负担很重,所以许多访问Internet的客户软件在内部网络计算机中可能无法正常访问Internet。
        (2)路由器加过滤器完成
         “内部网络--过滤器(Filter)--路由器(Router)--Internet”
这种结构由路由器和过滤器共同完成从IP地址或域名上对外界计算机访问内部网络的限制,也可以指定或限制内部网络访问Internet。路由器仅对主机上特定的PORT上的数据通讯加以路由,而过滤器则执行筛选、过滤、验证及其安全监控,这样可以很大程度上隔断内外网络间的不正常的访问登录。

时间: 2024-10-09 10:49:35

浅析Unix系统下的web服务器的配置安全的相关文章

ftp上传下载,ftp服务器在windows系统下,web服务器在linux系统下

问题描述 ftp上传下载,ftp服务器在windows系统下,web服务器在linux系统下 哪位大神知道: ftp服务器在搭建windows系统下,web服务器在部署linux系统下,现java中使用ftpclient实现上传下载时,下载的文件内容是乱码: 之前web服务器也部署在windows系统下正常的,后来迁移到linux系统下出现乱码了啊,中文文件名编码正常. 查ftpclient的源码发现读取ftp服务器上文件的编码格式固定了,无法在外部修改,有试着将读取出来的文件转码各种编码方式,

Windows系统下安装Tomcat服务器和配置虚拟目录的方法_Tomcat

安装Tomcat和配置环境变量安装jdk,这个我就不用说了 安装的时候指定安装路径,我指定的是: D:\Program Files\Java\jdk1.6.0_05 3.解压下载的apache-tomcat-5.5.23.zip,   我指定的是D:\Program Files\apache-tomcat-5.5.26 安装完成后,打开"我的电脑"->"系统属性"->"环境变量"在"用户变量" 新建"CA

Win7下搭建web服务器的简单步骤

  用户们若果需要局域网内资源的共享,是要使用到Web服务器的.用户们把自己的文件.信息资料,上传到服务器实现了与大家进行资源的共享,信息还可以达到同步.同时它也是一个很好的信息共享平台,方便又实用.那么我们应该怎样在Windows7系统下搭建web服务器呢,下面大家可以跟着一起来看看具体的步骤. Win7下搭建web服务器的简单步骤: 1.打开控制面板,选择并进入"程序",双击"打开或关闭Windows服务",在弹出的窗口中选择"Internet信息服务

如何在FreeBSD平台下架设Web服务器

目前,很多服务器都安装了FreeBSD操作系统.FreeBSD操作系统继承了BSD系统的纯净性和高性能,加上其软件包装和发布比Linux系统更加严谨,同时也具有更佳的安全性,正是这些特性使得FreeBSD操作系统在服务器环境中备受推崇.今天小编就给您介绍一下如何在FreeBSD平台下架设http://www.aliyun.com/zixun/aggregation/17117.html">Web服务器,希望对您能够有所帮助. 一.接入Internet 配置的第一步就是让FreeBSD接入I

阿里云Linux-CentOS系统下-搭建Git服务器详解_Linux

 阿里云Linux-CentOS系统下-搭建Git服务器 步骤总结: 1. 安装git 首先确认服务器是否安装Git 在Xshell中输入命令:$ rpm -qa git 结果如下表示已经安装: 如果未安装就安装git 在Xshell中输入:$ yum install git 2. 创建一个git用户,用来运行git服务: 在Xshell中输入:$ sudo adduser git 此时在阿里云服务器的根目录:/home文件夹下新增一个文件夹git 按这个层级建立文件用于存放客户端用户的公钥:/

java程序员菜鸟进阶(九)windows下搭建SVN服务器及配置myeclipse SVN客户端

  java程序员菜鸟进阶(九)windows下搭建SVN服务器及配置myeclipse SVN客户端 分类: 学习专区 java Web    1.下载SVN最新版本安装文件,官网下载地址是:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100,选择最新发布的SVN安装文件进行下载.最新版本是Setup-Subversion-1.6.5.msi,大小7.4MB,安装SVN至我的电脑.最好使用中文路径,而且

win 2003 Web服务器安全配置与安全配置方法

web服务器安全配置的内容 1终端服务默认端口号:3389. 更改原因:不想让非法用户连接到服务器进行登录实验.当这台服务器托管在外时更不希望发生这种情况,呵呵,还没忘记2000的输入法漏洞吧? 更改方法: (1).第一处[hkey_local_machine system currentcontrolset control terminal server wds rdpwd tds tcp],看到右边的portnumber了吗?在十进制状态下改成你想要的端口号吧,比如7126之类的,只要不与其

IIS7错误:“Web服务器被配置为不列出此目录的内容”的解决办法

IIS7错误:"Web服务器被配置为不列出此目录的内容"的解决方法: 在"操作"下,点启用,此按钮将变成禁用,则可消除此错误

发布mvc3报错:403.14-Forbidden Web 服务器被配置为不列出此目录的内容

发布Asp.net mvc3报错:403.14-Forbidden Web 服务器被配置为不列出此目录的内容 提示里面的解决方法 ·         如果不希望启用目录浏览,请确保配置了默认文档并且该文件存在. ·         使用 IIS 管理器启用目录浏览. 1.    打开 IIS 管理器. 2.    在"功能"视图中,双击"目录浏览". 3.    在"目录浏览"页上,在"操作"窗格中单击"启用&quo