网站首页  维修网点  QQ专家在线  电脑保修  工具软件   在线查毒   电脑问题搜索  官方论坛  站点地图  友情链接
加入收藏夹   设为主页

  认识电脑  

  电脑优化  

  电脑保养  

  故障症状  

  学习维修  

  维修资料  

  病毒门诊  

   数据恢复  

  使用技巧  

  电脑常识  

  笔记本  

  安全技术  

  系统漏洞  

专题导读: 操作系统  Windows Vista系统故障  Windows Xp系统故障  Windows 2003系统故障  Windows 2000系统故障  Windows 98系统故障  软件使用  网络配置  网络攻击  病毒  木马  主板  CPU  内存  硬盘  键盘  显卡  声卡  鼠标  显示器  音箱  刻录机  光驱、光盘  电源、UPS  网络设备  扫描仪  打印机  其它硬件  服务器  游戏平台  手机/MP3  相机/摄像头  USB  无线应用教程  软件漏洞  硬件漏洞 
您的位置: 网站首页 >> 安全技术 >>Apache服务器配置安全规范及其缺陷

Apache服务器配置安全规范及其缺陷

发布日期: 2007-2-27 12:25:51 查看数:
PcHiHi

正如我们前言所说尽管Apache服务器应用最为广泛,设计上非常安全的程序。但是同其它应用程序一样,Apache也存在安全缺陷。毕竟它是完全源代码,Apache服务器的安全缺陷主要是使用HTTP协议进行的拒绝服务攻击(denial of service)、缓冲区溢出攻击以及被攻击者获得root权限三缺陷和最新的恶意的攻击者进行“拒绝服务”(DoS)攻击。合理的网络配置能够保护Apache服务器免遭多种攻击。我们来介绍一下主要的安全缺陷。

主要安全缺陷

(1)使用HTTP协议进行的拒绝服务攻击(denial of service)的安全缺陷

这种方法攻击者会通过某些手段使服务器拒绝对HTTP应答。这样会使Apache对系统资源(CPU时间和内存)需求的剧增,最终造成Apache系统变慢甚至完全瘫痪。

(2)缓冲区溢出的安全缺陷

该方法攻击者利用程序编写的一些缺陷,使程序偏离正常的流程。程序使用静态分配的内存保存请求数据,攻击者就可以发送一个超长请求使缓冲区溢出。

(3)被攻击者获得root权限的安全缺陷

该安全缺陷主要是因为Apache服务器一般以root权限运行(父进程),攻击者会通过它获得root权限,进而控制整个Apache系统。

(4)恶意的攻击者进行“拒绝服务”(DoS)攻击的安全缺陷

这个最新在6月17日发现的漏洞,它主要是存在于Apache的chunk encoding中,这是一个HTTP协议定义的用于接受web用户所提交数据的功能。 所有说使用最高和最新安全版本对于加强Apache Web服务器的安全是至关重要的。

正确维护和配置Apache服务器

虽然Apache服务器的开发者非常注重安全性,由于Apache服务器其庞大的项目, 难免会存在安全隐患。正确维护和配置Apache WEB服务器就很重要了。我们应注意的一些问题:

(1)Apache服务器配置文件

Apache Web服务器主要有三个配置文件,位于/usr/local/apache/conf目录下。 这三个文件是:

httpd.conf----->主配置文件

srm.conf------>填加资源文件

access.conf--->设置文件的访问权限

(2)Apache服务器的目录安全认证

在Apache Server中是允许使用 .htaccess做目录安全保护的,欲读取这保护的目录需要先键入正确用户帐号与密码。这样可做为专门管理网页存放的目录或做为会员区等。在保护的目录放置一个档案,档名为.htaccss。

AuthName "会员专区"

AuthType "Basic"

AuthUserFile "/var/tmp/xxx.pw" ----->把password放在网站外 require valid-user 到apache/bin目录,建password档 % ./htpasswd -c /var/tmp/xxx.pw username1 ----->第一次建档要用参数"-c" % /htpasswd /var/tmp/xxx.pw username2 这样就可以保护目录内的内容,进入要用合法的用户。

注:采用了Apache内附的模组。

也可以采用在httpd.conf中加入: 

options indexes followsymlinks 

allowoverride authconfig 

order allow,deny 

allow from all 

(3)Apache服务器访问控制

我们就要看三个配置文件中的第三个文件了,即access.conf文件,它包含一些指令控制允许什么用户访问Apache目录。应该把deny from all设为初始化指令,再使用allow from指令打开访问权限。

order deny,allow

deny from all

allow from safechina.net  

设置允许来自某个域、IP地址或者IP段的访问。

(4)Apache服务器的密码保护问题

我们再使用.htaccess文件把某个目录的访问权限赋予某个用户。系统管理员需要在httpd.conf或者rm.conf文件中使用 AccessFileName指令打开目录的访问控制。如:

AuthName PrivateFiles

AuthType Basic

AuthUserFile /path/to/httpd/users

require Phoenix

# htpasswd -c /path/to/httpd/users Phoenix

设置Apache服务器的WEB和文件服务器

我们在Apache服务器上存放WEB服务器的文件,供用户访问,并设置/home/ftp/pub目录为文件存放区域,用http://download.your.com/pub/来访问。在防火墙上设置apache反向代理技术,由防火墙代理访问。 

(1)Apache服务器的设置 

Apache服务器采用默认配置。主目录为/home/httpd/html,主机域名为Phoenix.your.com, 且别名到www.your.com中, 并且设置srm.conf加一行别名定义如下:

Alias /pub /home/ftp/pub/ 

更改默认应用程序类型定义如下: 

DefaultType application/octet-stream 

最后在/etc/httpd/conf/access.conf中增加一项定义

 

Options Indexes 

AllowOverride AuthConfig 

order allow,deny 

allow from all 

注:Options Indexes允许在找不到index.html文件的情况下允许列出目录/文件列表。AllowOverride AuthConfig允许做基本的用户名和口令验证。这样的话,需要在/home/ftp/pub目录下放入.htaccess,内容如下: 

  [root@ pub]# more .htaccess 

  AuthName Branch Office Public Software Download Area 

  AuthType Basic 

  AuthUserFile /etc/.usrpasswd 

  require valid-user 

用# htpasswd -c /etc/.usrpasswd user1  分别创建不同的允许访问/pub下文件服务的外部用户名和口令。

(2)在防火墙上配置反向代理技术.

在/etc/httpd/conf/httpd.conf  中加入 NameVirtualHost xxx.xxx.xxx.xxx # xxx.xxx.xxx.xxx ----->是防火墙外部在互联网上永久IP地址: 

  servername www.your.com 

  errorlog /var/log/httpd/error_log 

  transferlog /var/log/httpd/access_log 

  rewriteengine on 

  proxyrequests off 

  usecanonicalname off 

  rewriterule ^/(.*)$ http://xxx.xxx.xx.x/$1 Apache服务器的IP地址。

  servername http://download.your.com/pub/

  errorlog /var/log/httpd/download/error_log 

  transferlog /var/log/httpd/download/access_log 

  rewriteengine on 

  proxyrequests off 

  usecanonicalname off 

  rewriterule ^/(.*)$ http://xxx.xxx.xx.x/$1 同上Apache服务器的IP地址。

设置防火墙上的DNS,让download.your.com和www.your.com 都指向防火墙的外部网地址xxx.xxx.xxx.xxx。

用http://www.your.com访问主页,用http://download.your.com/pub/访问公共文件的下载区。

注:还需要在apache服务器主机上建立目录/var/log/httpd/download/,否则会出错。另外,也可以设置防火墙主机上的/home/httpd/html/index.html的属性为750来阻止访问,这是防外部用户能访问到防火墙上的Apache服务器的http://www.your.com中。 

总结:Apache Server是一个非常优秀,非常棒的服务器,只要你正确配置和维护好Apache服务器,你就会感受到Apache Server 所带来的好处,同样希望你能够通过阅读本文达到理论和实践双丰收的目的。

验证你的Apache来源途径

不要以为在Google上能够搜索到合适的Apache版本。如果你需要下载最新版本的Apache,那么你最好通过一个权威的镜像站点来下载。然而,即使这样也可能有问题,事实上,曾经就有黑客入侵过apache.org官方网站。所以,采用类似PGP的工具来验证Apache的数字签名就显得尤为重要。

保持更新Apache的补丁程序

如果你安装了Apache,你就必须及时更新安全补丁。如果没有及时的更新,那你的系统很容易受到网络上那些高危病毒的攻击。幸好,有几个简便方法可以更新Apache的补丁。参考我们关于保持更新Apache补丁的文章了解更多关于Apache服务器公告列表、Linux包管理系统和RedHat操作系统更新服务的信息。

避免使用.htaccess文件(分布式配置文件)

很多情况下需要几个管理员和内容管理者共同管理Apache服务器。一个常用的共享管理办法就是使用.htaccess文件,这样可以很灵活地对管理员以外的用户提供不同的配置控制权限。然而,这些文件也使得在集中安全管理之外还有相当多的安全控制权限——这些文件允许安全专业人士以外的其他用户改变服务器的访问控制许可配置。那些对粒度访问控制根本不熟悉的用户修改的配置可能在无意中会危害到你的系统安全。所以,除非必须使用,否则我们应该尽可能地避免使用这种访问控制系统。

监视系统日志

Apache为管理员提供了很全面的日志管理工具来对服务器的活动进行事后分析。Apache提供了多种不同的记录日志,但是对安全专业人士最重要的是访问日志。这个灵活的工具还具有了相当多的自定义功能,你可以按照你的需要很方便地记录尽可能多或者少的日志,以保证有效的分析。至少,你应该记录那些失败的认证企图和系统产生的错误。使用像AWStats一样的免费工具可以很轻松地完成分析任务。但是必须明确的一点是:监视日志只是一种事后分析手段。你可以利用它回顾和判断对服务器的攻击(和攻击企图),但是希望及时查看日志来对紧急情况做出快速反应是不可能的。如果需要进行预判反应,你应该考虑使用入侵预防系统如信息安全杂志评选的2003年度最新兴技术奖得主:Lucid Security公司的ipAngel系统。

管理文件系统

我们已经讨论了使用(或不使用).htaccess文件对管理文件访问权限的重要性。禁止通过文件系统许可对Apache服务器进行非授权修改也是很重要的。特别值得一提的是,你应该保证只有根用户才能修改存储在“/usr/local/apache ”目录的文件(或者你选择的任何Apache服务器的根目录)。确保只有根用户才能修改日志文件也很关键,这样可以防止用户掩盖他们的操作。

Apache 服务器日常配置

1、如何设 置请求等待时间

在httpd.conf里面设置:

TimeOut n

其中n为整数,单位是秒。

设置这个TimeOut适用于三种情况:

2、如何接收一个get请求的总时间

接收一个post和put请求的TCP包之间的时间

TCP包传输中的响应(ack)时间间隔

3、如何使得apache监听在特定的端口

修改httpd.conf里面关于Listen的选项,例如:

Listen 8000

是使apache监听在8000端口

而如果要同时指定监听端口和监听地址,可以使用:

Listen 192.170.2.1:80

Listen 192.170.2.5:8000

这样就使得apache同时监听在192.170.2.1的80端口和192.170.2.5的8000端口。

当然也可以在httpd.conf里面设置:

Port 80

这样来实现类似的效果。

4、如何设置apache的最大空闲进程数

修改httpd.conf,在里面设置:

MaxSpareServers n

其中n是一个整数。这样当空闲进程超过n的时候,apache主进程会杀掉多余的空闲进程而保持空闲进程在n,节省了系统资源。如果在一个apache非常繁忙的站点调节这个参数才是必要的,但是在任何时候把这个参数调到很大都不是一个好主意。

同时也可以设置:

MinSpareServers n

来限制最少空闲进程数目来加快反应速度。

5、apache如何设置启动时的子服务进程个数

在httpd.conf里面设置:

StartServers 5

这样启动apache后就有5个空闲子进程等待接受请求。

也可以参考MinSpareServers和MaxSpareServers设置。

6、如何在apache中设置每个连接的最大请求数

在httpd.conf里面设置:

MaxKeepAliveRequests 100

这样就能保证在一个连接中,如果同时请求数达到100就不再响应这个连接的新请求,保证了系统资源不会被某个连接大量占用。但是在实际配置中要求尽量把这个数值调高来获得较高的系统性能。

7、如何在apache中设置session的持续时间

在apache1.2以上的版本中,可以在httpd.conf里面设置:

KeepAlive on

KeepAliveTimeout 15

这样就能限制每个session的保持时间是15秒。session的使用可以使得很多请求都可以通过同一个tcp连接来发送,节约了网络资源和系统资源。

8、如何使得apache对客户端进行域名验证

可以在httpd.conf里面设置:

HostnameLookups on off double

如果是使用on,那么只有进行一次反查,如果用double,那么进行反查之后还要进行一次正向解析,只有两次的结果互相符合才行,而off就是不进行域名验证。

如果为了安全,建议使用double;为了加快访问速度,建议使用off。

9、如何使得apache只监听在特定的ip

修改httpd.conf,在里面使用

BindAddress 192.168.0.1

这样就能使得apache只监听外界对192.168.0.1的http请求。如果使用:

BindAddress *

就表明apache监听所有网络接口上的http请求。

当然用防火墙也可以实现。

10、apache中如何限制http请求的消息主体的大小

在httpd.conf里面设置:

LimitRequestBody n

n是整数,单位是byte。cgi脚本一般把表单里面内容作为消息的主体提交给服务器处理,所以现在消息主体的大小在使用cgi的时候很有用。比如使用cgi来上传文件,如果有设置:

LimitRequestBody 102400

那么上传文件超过100k的时候就会报错。

11、如何修改apache的文档根目录

修改httpd.conf里面的DocumentRoot选项到指定的目录,比如:

DocumentRoot /www/htdocs

这样http://localhost/index.html就是对应/www/htdocs/index.html

12、如何修改apache的最大连接数

在httpd.conf中设置:

MaxClients n

n是整数,表示最大连接数,取值范围在1和256之间,如果要让apache支持更多的连接数,那么需要修改源码中的httpd.h文件,把定义的HARD_SERVER_LIMIT值改大然后再编译。

13、如何使每个用户有独立的cgi-bin目录

有两种可选择的方法:

(1)在Apache配置文件里面关于public_html的设置后面加入下面的属性:

ScriptAliasMatch ^/~([^/]*)/cgi-bin/(.*) /home/$1/cgi-bin/$2

(2)在Apache配置文件里面关于public_html的设置里面加入下面的属性:

  

Options ExecCGI

SetHandler cgi-script

14、如何调整Apache的最大进程数

Apache允许为请求开的最大进程数是256,MaxClients的限制是256.如果用户多了,用户就只能看到Waiting for reply....然后等到下一个可用进程的出现。这个最大数,是Apache的程序决定的--它的NT版可以有1024,但Unix版只有256,你可以在src/include/httpd.h中看到:

#ifndef HARD_SERVER_LIMIT

#ifdef WIN32

#define HARD_SERVER_LIMIT 1024

#else

#define HARD_SERVER_LIMIT 256

#endif

#endif

你可以把它调到1024,然后再编译你的系统。

15、如何屏蔽来自某个Internet地址的用户访问Apache服务器

可以使用deny和allow来限制访问,比如要禁止202.202.202.xx网络的用户访问:

order deny,allow

deny from 202.202.202.0/24  

16、如何在日志里面记录apache浏览器和引用信息

你需要把mod_log_config编译到你的Apache服务器中,然后使用下面类似的配置:

CustomLog logs/access_log "%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i""

17、如何修改Apache返回的头部信息

问题分析:当客户端连接到Apache服务器的时候,Apache一般会返回服务器版本、非缺省模块等信息,例如:

Server: Apache/1.3.26 (Unix) mod_perl/1.26

解决:

你可以在Apache的配置文件里面作如下设置让它返回的关于服务器的信息减少到最少:

ServerTokens Prod

注意:

这样设置以后Apache还会返回一定的服务器信息,比如:

Server: Apache

但是这个不会对服务器安全产生太多的影响,因为很多扫描软件是扫描的时候是不顾你服务器返回的头部信息的。你如果想把服务器返回的相关信息变成:

Server: It iS a nOnE-aPaCHe Server

那么你就要去修改源码了。

www.PcHIHI.com

上下页导航

上一页:将系统装到U盘中 如何自制WinXPUSB启动盘 下一页:【组网指南】无线路由器安装设置
【打印】 字体 【大】 【中】 【小】 【关闭】
热点主题
让你的无线路由更加安全,设置登陆密码图解。[DLINK设置篇]让你的无线路由更加安全,设置登陆密码图解。[DLINK设置篇]
如何隐藏自己的ip地址如何隐藏自己的ip地址
实战:ARP攻击原理及解决方法实战:ARP攻击原理及解决方法
远程终端安全及其安全防范技术研究远程终端安全及其安全防范技术研究
网吧频繁掉线(ARP)与解决方法网吧频繁掉线(ARP)与解决方法
系统安全:将木马拒之门外系统安全:将木马拒之门外 设置电脑防止黑客入侵
Windows中如何删除cmd.exeWindows中如何删除cmd.exe
什么是wmi什么是wmi
揭密黑客网络入侵的十四种实用方法揭密黑客网络入侵的十四种实用方法
修改远程终端服务端口3389的方法修改远程终端服务端口3389的方法
如何查看自己机器已经开放的端口如何查看自己机器已经开放的端口
打造安全的Windows打造安全的Windows XP 操作系统
关于新一代的DDoS攻击方法关于新一代的DDoS攻击方法
ADSL防御黑客进攻的方法ADSL防御黑客进攻的方法
局域网攻击原理与防御局域网攻击原理与防御
如何关闭端口防止病毒与黑客入侵如何关闭端口防止病毒与黑客入侵
协议欺骗攻击技术常见种类简析及防范协议欺骗攻击技术常见种类简析及防范
黑客攻击行为特征分析黑客攻击行为特征分析 反攻击技术综合性分析报告
黑客常用攻击手段揭秘及其预防措施黑客常用攻击手段揭秘及其预防措施
液晶面板鉴别四个方面液晶面板鉴别四个方面
最新主题
腾讯QQ密保卡的安全性分析腾讯QQ密保卡的安全性分析
Ghost有漏洞Ghost有漏洞 镜像恢复需小心陷阱
我的电脑是否被木马侵占为“肉鸡”我的电脑是否被木马侵占为“肉鸡”
Windows系统用户摆脱黑客攻击方法介绍Windows系统用户摆脱黑客攻击方法介绍
Vista系统工作站安全防护有高招Vista系统工作站安全防护有高招
分析入侵检测系统漏洞分析入侵检测系统漏洞 认识黑客入侵手法
教你Firefox浏览器安全设置技巧教你Firefox浏览器安全设置技巧
电脑安全防护7种武器电脑安全防护7种武器
提高网银安全系数五招确保网银安全提高网银安全系数五招确保网银安全
保障用户无线网络连接安全保障用户无线网络连接安全
教你简单方法查找黑客老巢教你简单方法查找黑客老巢
完全解析Windows系统权限完全解析Windows系统权限
被入侵系统的恢复指南被入侵系统的恢复指南
无线网络安全问题无线网络安全问题
一起由ARP攻击导致的网络故障一起由ARP攻击导致的网络故障
Windows安全配置的几条规则Windows安全配置的几条规则
卡巴斯基防火墙软件的设置技巧卡巴斯基防火墙软件的设置技巧
从零开始为电脑系统做漏洞自检从零开始为电脑系统做漏洞自检
网络资源推荐
站务联系:XBell@163.com 在线QQ:573861490
备案序号:粤ICP备06093858号
版权所有 2006 电脑维修知识网 最佳分辨率 1024 X 768
Copyright © Http://www.PcHiHi.com/ All rights reserved.