当前位置:web 服务器 > Apache >>

UNIX平台下Apache服务的安全保护

Apache服务器是众多WEB服务器中,一个设计上较安全的程序;但它也同样存在诸多缺陷,比如可以使用HTTP协议进行拒绝访问攻击等。因此合理的设置是保证Apache服务免遭攻击的首要任务。

  一. Apache服务缺陷分析

  缓冲区溢出。攻击者利用程序编写的一些缺陷,使程序偏离正常的流程;接着发送一个超长请求使缓冲区溢出。一旦系统缓冲区溢出,攻击者就可对攻击端使用各种恶意指令了。

  轻易获得root权限。该缺陷主要是因为Apache服务器一般以root权限运行,攻击者会通过此途径获得root权限,进而控制整个Apache系统。

  “拒绝服务”(DoS)攻击。它主要是存在于Apache的chunk encoding中,这是一个HTTP协议定义的用于接受web用户所提交数据的功能。这会造成Apache对系统资源需求的剧增,并最终导致系统变慢乃至瘫痪。

  二. 主Apache服务配置参考

  Apache服务除了主配置文件“httpd.conf”外,还有两个重要的配置文件,它们分别是:

  srm.conf

  填加资源文件

  access.conf

  设置文件的访问权限

  三个文件都位于/usr/local/apache/conf目录下,大部分服务配置都在这三个文件里完成。

  1.配置Apache服务器的目录安全认证。

  在Apache Server中是允许使用 .htaccess做目录安全保护的,欲读取这保护的目录需要先键入正确用户帐号与密码。这样可做为专门管理网页存放的目录或做为会员区等。或者在配置文件“httpd.conf”中加入以下内容也可达到目的:

  options

  indexes

  followsymlinks

  allowoverride

  authconfig

  order

  allow,deny

  allow

  from

  all

  2.合理设置访问控制。

  主要设置配置文件“access.conf”。它包含一些指令控制比如允许什么用户访问Apache目录等。可以通过以下举例的设置来允许来自某个域、某个IP地址或者IP段的访问。

  <directory /usr/local/http/docs/private>

  <limit>

  order deny,allow

  deny from all

  allow from safechina.net

  </limit>

  </directory>

  解释:在此配置指令中,将“deny from all”设为初始化指令,再使用“allow from”指令来打开访问权限。

  3.合理设置密码保护。

  密码保护问题是任何程序、任何系统都要注意的问题。在Apache服务环境下,可以在“httpd.conf”或“srm.conf”配置文件中使用“AccessFileName”指令打开目录的访问控制。举例如下:

  AuthName PrivateFiles

  AuthType Basic

  AuthUserFile /path/to/httpd/users

  require Phoenix

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

  #增加一个用户

  总结:

  Apache是一款非常优秀的服务器,只要能够正确配置和维护好Apache服务器,一定会感受到Apache服务所带来的吸引力。总的说来,在Apache的安装维护中应注意以下方面的问题:

  检查文件和目录的权限是否恰当。

  httpd.conf、srm.conf和access.conf这三个配置文件设置是否恰当。

  对某些需要特别保护的目录使用密码保护机制(.htaccess)。

  让服务器日志文件尽可能的详细记录信息。

  对CGI脚本进行封装,如果CGI脚本使用的是Perl编写,一定要详细检查其安全性。

  使用TCP Wrappers和Tripwire安全工具。其中“TCP Wrappers”可以限制Telnet和FTP的访问权限;而“Tripwire”是一个数据完整性监测工具,可以使用它来实时监视系统是否被更改。

  

上一个:freebsdVPN搭建
下一个:UNIX学习之UNIX编程资料大收集一

更多Apache疑问解答:
为什么配置完php之后apache重启就启动不了
php环境搭建 windows7下如何手动搭建php环境,Apache+php+Mysql
我搭建了apache和mysql还有php。我编了一个脚本
APMServ搭建的apache+php环境问题
目前apache最新版本是?可以兼容php5.3.6和mysql 5.5.11.7吗
Apache PHP Mysql 各自的功能是什么?配合在一起各自如何分工?请用形象的比喻说明下
怎么能把php的服务器端apache配置成https?谢谢您了。
靠配置apache和php的环境!愁死了!照网上说的一样做可是还不行!我的是php-5.2.17 Apache2.2....
我的apache2.2.19也是加载不了PHP,显示不能加载D:/php/php5apache2_2.dll
win7 home basic家庭版 php+mysql+apache
apache mysql mysql 配置服务器 php页面显示一片空白 测试页面访问正常 权限apache正确 能显示php文件html
apache为什么能解释php代码
如何把jsp网站放到apache上
关于apache poi 中excel 样式的问题
javaWeb工程提示:org.apache.jasper.JasperException: Unable to compile class for JSP:
Apache
IIS
Nginx
Tomcat
如果你遇到web 服务器难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,