细说apache的安全设置

本文介绍apache安全设置方面的相关内容,感兴趣的朋友可以参考下。

一、确保你安装的是最新的补丁
  如果门是敞开的话,在窗户上加锁就毫无意义。同样道理,如果你没有打补丁,继续下面的操作就没有什么必要。

二、隐藏Apache的版本号及其它敏感信息
  默认情况下,很多Apache安装时会显示版本号及操作系统版本,甚至会显示服务器上安装的是什么样的Apache模块。这些信息可以为黑客所用,并且黑客还可以从中得知你所配置的服务器上的很多设置都是默认状态。
  这里有两条语句,你需要添加到你的httpd.conf文件中:
  ServerSignature Off
  ServerTokens Prod
  ServerSignature出现在Apache所产生的像404页面、目录列表等页面的底部。ServerTokens目录被用来判断Apache会在Server HTTP响应包的头部填充什么信息。如果把ServerTokens设为Prod,那么HTTP响应包头就会被设置成:
  Server:Apache
  如果你非常想尝试其它事物,你可以通过编辑源代码改成不是Apache的其它东西,或者你可以通过下面将要介绍的mod_security实现。

三、确保Apache以其自身的用户账号和组运行
  有的Apache安装过程使得服务器以nobody的用户运行,所以,假定Apache和你的邮件服务器都是以nobody的账号运行的,那么通过Apache发起的攻击就可能同时攻击到邮件服务器,反之亦然。
  User apache
  Group apache

四、确保web根目录之外的文件没有提供服务
  我们不让Apache访问web根目录之外的任何文件。假设你的所以web站点文件都放在一个目录下(例如/web),你可以如下设置:
  Order Deny,Allow
  Deny from all
  Options None
  AllowOverride None
  Order Allow,Deny
  Allow from all
  注意,因为我们设置Opitins None 和AllowOverride None,这将关闭服务器的所有Option和Override。你现在必须明确把每个目录设置成Option或者Override。

五、关闭目录浏览
  你可以在Directory标签内用Option命令来实现这个功能。设置Option为None或者-Indexes。
  Options -Indexes

六、关闭includes
  这也可以通过在Directory标签内使用Option命令来实现。设置Option为None或者-Includes。
  Options -Includes

七、关闭CGI执行程序
  如果你不用CGI,那么请把它关闭。在目录标签中把选项设置成None或-ExecCGI就可以:
  Options -ExecCGI

八、禁止Apache遵循符号链接
  同上,把选项设置成None或-FollowSymLinks:
  Options -FollowSymLinks

九、关闭多重选项
  如果想关闭所有选项,很简单:
  Options None
  如果只想关系一些独立的选项,则通过将Options做如下设置可实现:
  Options -ExecCGI -FollowSymLinks -Indexes

十、关闭对.htaccess文件的支持
  在一个目录标签中实现:
  AllowOverride None
  如果需要重载,则保证这些文件不能够被下载,或者把文件名改成非.htaccess文件。比如,我们可以改成.httpdoverride文件,然后像下面这样阻止所有以.ht打头的文件:
  AccessFileName .httpdoverride
  Order allow,deny
  Deny from all
  Satisfy All

十一、运行mod_security
  Run mod_security是O’Reilly出版社出版的Apache Security一书的作者,Ivan Ristic所写的一个非常好用的一个Apache模块。可以用它实现以下功能:
  ·简单过滤
  ·基于过滤的常规表达式
  ·URL编码验证
  ·Unicode编码验证
  ·审计
  ·空字节攻击防止
  ·上载存储限制
  ·服务器身份隐藏
  ·内置的Chroot支持
  ·更多其它功能

十二、关闭任何不必要的模块
  Apache通常会安装几个模块,浏览Apache的module documentation,了解已安装的各个模块是做什么用的。很多情况下,你会发现并不需要激活那些模块。
  找到httpd.conf中包含LoadModule的代码。要关闭这些模块,只需要在代码行前添加一个#号。要找到正在运行的模块,可以用以下语句:
  grep LoadModule httpd.conf
  以下模块通常被激活而并无大用:mod_imap, mod_include, mod_info, mod_userdir, mod_status, mod_cgi, mod_autoindex。

时间: 2024-10-10 04:58:29

细说apache的安全设置的相关文章

在Apache Tomcat 7设置redis作为session store

在Apache Tomcat 7设置redis作为session store redis已经有组件支持直接在tomcat7中设置下将redis作为tomcat默认的session存储器,下面介绍下配置过程 1.从http://redis.io/下载redis,按照redis服务端 wget http://download.redis.io/redis-stable.tar.gz tar xvzf redis-stable.tar.gz cd redis-stable make 2.启动redis

[Windows Server 2012] Apache+PHP安全设置

★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com ★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频. ★ 本节我们将带领大家:Win2012 R2 Apache+PHP安全设置 ·Apache默认是以系统服务运行,运行账户为 SYSTEM ,这样非常危险.需要降权并给予适当的读 写权限. 1.本节是接上一节“Apache+PHP安装方法”课程,因此Apache已经安装配置好. 2.建立一个运行 Apache 的系统账户 1)新增一个

Apache 反向代理设置

环境: Debian7.5 + apache2.2.24(wdcp/wdlinux) 1.转至apache源码包的proxy目录: cd /v/softs/lanmp/httpd-2.2.24/modules/proxy 2.执行apxs命令,编译得到mod_proxy.so: sudo /www/wdlinux/apache/bin/apxs -c -i -a mod_proxy.c mod_proxy_connect.c mod_proxy_http.c proxy_util.c #命令完成

Apache HttpAsyncClient 如何设置per request timeout

最近做一个项目时用到HttpAsyncClient:因项目所需,要求能对一个具体的request 设置连接和读写超时:但发现在HttpAsyncClient中,只有在创建一个HttpAsyncClient实例时才能通过RequestConfig设置一个timeout,除此之外并没有一个接口可以设置单个请求的超时.为了达到项目的要求,只有从把HttpAsyncClient的源码大致读了一遍,一是希望能从源码中找到设置超时的方法,二是希望,如果确实没有办法,能仿照源码写一个可控制超时的HttpAsy

Apache服务器上设置404错误页面

Apache服务器上设置404错误页面 基于ubuntu 16.04系统,使用 apache 进行设置 配置步骤 添加404页面 在所配置网站的根目录添加编辑好的 404.html 修改localized-error-pages.conf配置文件 localized-error-pages.conf位于 /etc/apache2/conf-enabled目录下 把#ErrorDocument 404 /404.html 去掉# 重启 apache 服务器 /etc/init.d/apache2

Apache/nginx转发设置-分布式部署(转)

转自http://blog.csdn.net/fujianianhua/article/details/8062234 Apache转发设置 1.  Weblogic安装 Weblogic8和Weblogic10默认安装,选择完全安装即可,如果是Weblogic9则选择自定义安装,勾选WebService plugin 2.apache服务器安装 安装说明详见文档<Apache服务器搭建说明.doc> 版本对应关系: Weblogic版本   Apache版本 weblogic8     Ap

Java GC专家系列4:Apache的MaxClients设置及其对Tomcat Full GC的影响

本文是GC专家系列中的第四篇.在第一篇理解Java垃圾回收中我们学习了几种不同的GC算法的处理过程,GC的工作方式,新生代与老年代的区别.所以,你应该已经了解了JDK 7中的5种GC类型,以及每种GC对性能的影响. 在第二篇Java垃圾回收的监控中介绍了在真实场景中JVM是如何运行GC,如何监控GC数据以及有哪些工具可用来方便进行GC监控. 在第三篇GC 调优中基于真实案例介绍了可用于GC调优的最佳选项.同时也描述了如何通过降低移动到老年代中对象的数量来缩短Full GC耗时,以及如何设置GC类

Apache 文件根目录设置修改方法 (Document Root)

最近在学习WordPress,使用appServ 在windows上搭建Php开发环境 在网上查找到的关于修改Apache服务器根目录的资料,对比学习,再此记录 在安装 Apache 时,系统会给定一个缺省的文件根目录. 如果你觉得将网页存在这个缺省目录不方便,觉得应该另外设个目录作为 Apache 文件根目录,你可以修改 Apache 的配置文件 httpd.conf 里有关文件根目录的设置. 假设Apache HTTP Server 的缺省文件根目录 (DocumentRoot) 是: Do

apache提示没有设置 max-age or expires解决办法

大家看到这个就应该知道只要设置 max-age or expires就行了.下面说的方法是在设置 apache下的方法: 产生要开启 代码如下 复制代码 LoadModule headers_module modules/mod_headers.so 然后再在.htaccess文件下面写上 代码如下 复制代码 <IfModule mod_headers.c><FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$&quo