您的位置:首页 > 运维架构 > Apache

Linux Apache Web服务器配置教程

2010-06-03 09:43 696 查看

Linux Apache Web服务器配置教程

 
 
 
网讯网络通信学院
 

   ·菜鸟大学堂:一步一步配置WEB服务器·使用IIS为Web内容配置Web服务器权限

 
  ·Linux下配置功能完善的Web服务器·精心配置IIS打造安全Web服务器
 
  ·WEB服务器系统盘权限简朴设置
 
  ·64位Web服务器安装配置留意事项
 
  ·实现四台Web服务器的负载均衡(上)
 
  ·Web服务器和应用程序服务器有什么区别
 
  ·Web服务器无法访问的应对策略
 
  ·四大最经典WEB服务器选购方案跟着防火墙技术的发展以及人们对服务器本身的安全性的正视,未来的主流攻击方向将逐渐转向Web端口。CGI程序本身的安全性是程序员的事情,这对于某些治理员来说他们是无能为力的。但我们仍旧可以通过准确公道的配置,使我们的Web服务器降低CGI程序本身安全题目所带来的各种威胁。本文便是从CGI安全角度来描述了两种主流的Web服务器(IIS和APACHE)的详细配置,相信这样配置之后,我们的服务器安全性会得到很大进步。
 
  一、WindowsIIS环境因为Wmdows+IIS+CGT本身的安全性并不好,所以会泛起的题目比较多。比如说PsKey最近发现的一批LB5000论坛的漏洞吧,这些漏洞都是基于Windows+IIS平台的。由于在Windows+IIS环境中,CGI程序文件权限没有可执行相和不可执行一说。所以,只要是在有脚本执行权限的虚拟目录里,CGT文件都会被执行。这就带来了良多安全上的题目。PsKey发现的几个漏洞都是往。CGI文件里写入符合Peri语法的语句,来构造一个小型的WebShell。而对于一个功能强盛的CGI程序来说,其天然不可能面面俱到,多多少少部会存在一些题目也属正常。但只要控制好虚拟目录的权限,危险性将会大大降低。现在我们以LB为例"对于LB来说,它本身良多地方已经做得很好了,但其安全题目大多就是由干对一些字符的过滤不严所造成的。在IIS中默认情况下,子目录将继续父目录的权限,假如一个目录被设置了"脚本和可执行程序"权限,那么其子目录也将有"脚本和可执行程序"权限。所以,只要将LB5000论坛所在目录设置为可执行,将其子目录全设为不可执行。这些题目就迎刃而解了。由于即使你可以往其子目录的一些文件里写入WebShell。但因为子目录没有执行权限,一样没用。LB的CGI程序和数据文件结构是这样设计的:将需要执行的CGI程序文件与一些。cgi后缀的数据文件放在不同的目录中。我们强烈建议写程序时这样做,由于这样。治理员就只需要按照要求去设置虚拟目录的权限了现在,让我们来一步一步对IIS虚拟目录进行设置吧。
 
  1。开始→运行,输入:%SystemRoot%System32Intestrviis。msc打开"Intenet服务治理器"。
 
  2。选中将要设置的门IIS虚拟目录。点右键→属性,将LB论坛的cgi-bin目录设置为许执行"纯脚本"。
 
  3。然后再一一对cgi-bin目录的子目录进行设置,好比cgi-bin/data目录进行设置,选中data目录,点右键→属性,将可执行设置为"无",这样一来。在此目录中的CGT程序将不答应被执行。按照这个方法。将cgi-bin目录下的每一个子目录的可执行权限都设置为"无"。最后,还要将non-cgi目录进行设置,一般也将可执行权限设置为"无"。好了,我们对论坛的目录权限设置就结束了。这样一来,即使论坛再被发现有什么过滤不严密的漏洞只要他无法执行被窍人WebShell的文件。一样不能达到人侵的目的。但我不敢保证就不泛起任何题目,由于对于CGI漏洞的攻击千奇百怪,出其不意,很难说将来会不会泛起什么新的攻击方法。但是,这样设置绝对可以很大程度地降低CGI程序本身所带来的威胁。
 
  二、Windows十APACHE环镜因为默认安装APACHE服务器建以SYSTEM仅限启动。这一点它和IIS不同。在IIS中,假如CGI程序解释程序不在LM/W3SVC/InProcessIsapiApps中的话。它的权限疑继:敢DLLHOST。EXE;的IWA。M_-MACHINENAME权限。但APJACHE一旦启动,所有的CGI程序都会继续apache。ex。e的SYSTEM权限,所以距危险。一旦一个CGT程序泛起题目。那么服务器将完全被控制。假如你真的想在Windows上跑APACHE的话,强烈建议另建一个CUESTS组的用户,用这个新建的用户启动APACHE服务。这种情况下对CGI程序本身来说。安全性要比IIS中稍好些。由于APACHE中,CGI程序的解释器是在程序的首行定义的,如:#!c:/perl/bin/perl,而IIS则是是在LM/W3SVVC/ScriptMaps中。假如商行没有定义,那么CGI程序运行将犯错。所以。假如要想利用程序漏洞写出一个可以成功执行的WebShell是有一定难度的,但这并不代表不可以。我在测试中发现,实在首行不需要定全路径的,写成这样也可以:#!peri。由于在安装ActivePerl的时候,其会在环境变量的PATH中自动加上peri。exe的路径。所以我们成功利用这种漏洞的难题减少了。当然在这种环境下,我们也可以对APACHE配置文件httpd。conf进行公道的配置以降低来自CGI程序本身带来的威胁。下面我们来对APACHE服务及其配置文件httpd。conf进行配置。
 
  1。在准确安装好APACHE服务器后,新建一个用户。并将其从原来的USERS组中删除,将它加到GUESTS组中,命令如下;netuserapacheusernewpassword/addnetlocalgroupusersapacheuser/delnetlocalgroupguestsapacheuser/add
 
  2。将APACHE安装目录(如:C:apache)的权限设置为apacheuser只读和执行,其他非administrators组用户拒绝访问,还要将C:apachelogs目录设置为可写和可修改,不然APACHE会运行犯错,不能启动。
 
  3。现在再让APACHE服务以这个新建的用户apacheuser来启动。开始→运行,输入:Services。msc选中apache服务这一项,然后点右键→属性→登录→此帐户→浏览,选择我们刚才新建的那个用户(这里是以apacheuser这个用户为例),在下面的密码框中输入用户名的密码(这里是newpasswork),然后一路"确定"下去。这样。APACHE服务就设置好了,接着,我们再来对httpd。conf进行设置,仍是以LB5000论坛为例。我们要对LB的每个目录进行具体的设置,需要在httpd。conf文件中添加一些内容。
 
  4。先设置cgi-bin目录如下:ScriptAlias/LB5000/cgi-bin/"d:/inetpub/wwwroot/LB5000/cgi-b
9da5
in/"AllowOverrideNoneOptionsExecCGIOrderallow,denyAllowfromall5。然后再逐一设置其子目录,这里只以cgi-bin/data目录为例,其他的以此类推:Alias/LB5000/cgi-bin/data/"d:/inetpub/wwwroot/LB5000/cgi-bin/data/"cgi-bin/data">AllowOverrideNoneOptionsNoneOrderallow,denyAllowfromall6。最后别忘了设置non-cgi目录:Alias/LB5000/non-cgi/"d:/inetpub/wwwroot/LB5000non-cgi/"AllowOverrideNoneOptionsNoneOrderallow,denyAllowfromall到这里,Windows环境下的APACHE基本上设置好了。
 
  三、Linux/Unix+APACHE环境这种环境相对于前两种来说,安全性高得多。首先,一个CGI程序要执行,那么在文件系统当中必需要有可执行权限,即+x。你有能力往。cgi文件里写一个完整的WebShell,但并不代表你可以让它有执行权限。其次,还要在虚拟目录里定义可执行。所以,这种配置的CGI程序安全题目大多数都出在提交非法数据暴露敏感文件以及直接执行程序等方面。而这些就与配置关系不大了,所以我也就不赘述了。后记好了,经由上两的具体配置之后,应该说可以增强Web服务器的安全性。但也不一定就很安全了。这还要看CG,程序的结构。一般的编写结构是这样的,把所有需要执行的程序集中放到一个目录、在配置Web服务器时给这个目录执行脚本的权限。其他所有目录都不要给执行脚本的权限。所有需要读写的数据文件集中放到另一个目录。在设置虚拟目录时不要给这个目录任何权限。如有必要也可以将它放到Web目录以外的目录。将一些自已写的模块文件和函数文件集中放到一个目录,设置虚拟目录时不要给任何权限,包括访问权限。到这里,关于Web服务器的配置就差未几了。本人对CG1的研究也非常有限,但愿这篇文量能起到抛砖引玉的作用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息