Apache服务器安全加固

声明:绝对的安全是不存在的,下面只提供一些方法和思路,具体情况要具体分析。

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

二、隐藏Apache的版本号及其它敏感信息
默认情况下,很多apache安装时会显示版本号及操作系统版本,甚至会显示服务器上安装的是什么样的apache模块。这些信息可以为黑客所用,并且黑客还可以从中得知你所配置的服务器上的很多设置都是默认状态。
这里有两条语句,你需要添加到你的httpd.conf文件中:
ServerSignature Off
ServerTokens Prod
ServerSignature该参数设置 出现在apache所产生的像404页面、目录列表等页面的底部,
三个选项 On|Off|EMai 主要起开关作用,推荐设置为Off。
ServerTokens该参数设置http 头部返回的apache 版本信息,安全起见,尽量少显示信息,推荐设置为Off,可用的值和含义如下(显示的信息逐渐增加):
Prod:仅软件名称,例如:apache
Major:包括主版本号,例如:apache/2
Minor:包括次版本号,例如:apache/2.0
Min:仅apache 的完整版本号,例如:apache/2.0.54
OS:包括操作系统类型,例如:apache/2.0.54(Unix)
Full: 包括apache 支持的模块及模块版本号, 例如:Apache/2.0.54 (Unix)  mod_ssl/2.0.54 OpenSSL/0.9.7g

三、确保apache以其自身的用户账号和组运行(Apache启动权限)
创建一个新的帐户来替代这个帐号启动apache并设置相应的权限。
1.在计算机管理里的本地用户和组里面创建一个帐户,例如:apache,设置密码,加入guests组(如果出现问题,可以赋予user权限);
2.打开开始->管理工具->本地安全策略,在用户权限分配中选择“作为服务登陆”,添加apache用户;
3.计算机管理里面选择服务,找到apache2.2,先停止服务,右击->属性,选择登陆,把单选框从本地系统帐户切换到此帐户,然后查找 选择apache,输入密码apacheuser,然后点确定(这个时候apache还不能正常启动,一般情况肯定会报错:Apache2.2 服务因 1 (0×1) 服务性错误而停止。);
4.配置权限:Apache安装目录(比如"D:/apache")以及web目录(比如"D:/wwwroot"),去除各磁盘根目录除administror与system以外的所有权限,Apache安装目录赋予apache帐户读取和运行权限,web目录赋予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

十三、从httpd.conf中清除默认的注释
Apache 2.2.4中默认的httpd.conf文件有400多行。在这400行中,只有一小部分是实际的Apache指令,其余的仅是帮助用户如何恰当地在httpd.conf中放置指令的注释。完全清除多余的注释。文件变得更加容易阅读

十四、Listen指令具体化
在你第一次安装Apache时,httpd.conf包含一个“Listen 80”指令。应将其改变为“Listen mn.xx.yy.zz:80”,在这里“mn.xx.yy.zz”是你想让Apache监听其请求的IP地址。如果你的Apache运行在一个拥有多个IP地址的服务器上时,这一点尤其重要。如果你不采取预防措施,默认的“Listen 80”指令告诉Apache监听每一个IP地址的80端口。

鼎峰胡佳雄
QQ.2881064155
[email protected]

时间: 2024-08-27 04:15:30

Apache服务器安全加固的相关文章

[Windows Server 2003] 服务器安全加固

★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频.★ 本节我们将带领大家:服务器安全加固·由于安全因素种类繁多,以及不同服务器设置可能不一样,本节只能简单介绍安全加固的几个方 面.·如果您需要专业的安全加固,请购买护卫神“人工安全加固服务”. 1.更新系统补丁 更新补丁是安全加固最重要的步骤. 2.禁用不需要的服务 以下服务必须禁用:Server.Workstation.Telnet.

Linux下安装配置Apache服务器

Linux下安装配置Apache服务器 1. 安装Apache [[email protected] ~]# yum –y install httpd 2. 启动Apache [[email protected] ~]# systemctl start httpd 3. 查看进程 [[email protected] ~]# systemctl status httpd httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib

php-基础知识-apache服务器

一.支持php的服务器有:iis.apache.lighted(德国制造).nginx(俄罗斯制造,功能强大[反向代理.服务器集群.流媒体服务器........].轻量) 二.今天主要分享apache的相关知识 1.官网(http://httpd.apache.org)下载 2.安装流程:百度一下吧,很久之前搭建的了,没有截图,强调下:ApacheRuntime--必须安装 测试安装是否成功:浏览器访问http://localhost/ 当看到显示有 "It works"表示成功 3.

apache服务器的下载和文档的查看

Apache是一款web服务器,由于它的跨平台性和安全性,被广泛地运行在几乎所有的计算机平台上,也是最流行的web服务器之一. Apache(ASF基金会的官方网站):http://httpd.apache.org/ 根据自己的需求,选择下载的版本 下载windows版本的apache,点击Files for Microsoft Windows 大致意思是说apache本身不提供已编译的安装包,只提供源码,如果你自己无法编译,可以选择下面这些官方推荐的第三方提供编译的网站. 其中后两个是有名的w

Windows 系统安装 Apache 服务器

[下载] 登录 https://httpd.apache.org/ 选择相应的版本下载,此处我下载的为 httpd-2.4.20-x64-vc14 点击 "Download" 点击 "Files for Microsoft Windows" 选择 "Apacheaus" 此时浏览器会跳到以下链接: http://www.apachehaus.com/cgi-bin/download.plx 选择 Apache 2.4.20x64 下载: 下载完成

2.搭建Apache服务器 + PHP支持

1.一般的网络架构图 一般的网络编程分为 :客户端开发和 服务器开发.IOS程序员主要从事客户端开发,也就是前端开发.后台一般是 PHP JSP ASP.NET来开发. 2.通过localhost来检验Apache是否正常工作 3.启动Apache服务器 启动:sudo apachectl -k start 重新启动:sudo apachectl -k restart 4.查找Apache的默认文档目录 Apache配置文件所在目录:cd /etc/apache2/ 打开Apache配置文件:s

安装apache服务器、php和mysql数据库(转)

安装64位php开发环境 最近听说PHP5.4速度很快,所以想建立一个本地环境测试下.我打算用本地windows xp sp3下安装PHP5.4.8.Apache2.4.3和Mysql5.5.28. 首先去下载PHP.Apache和Mysql的最新版本. PHP5.4.8版本下载地址:http://windows.php.net/download/ Mysql5.5.28版本下载地址:http://www.mysql.com/downloads/mysql/ Apache2.4.3版本下载地址:

配置与管理Apache服务器

配置与管理Apache服务器 姓名:马雪敏 专业:网络工程 一.Apache服务的安装.启动.停止 1.Apache相关软件 httpd软件是Apache服务器的程序软件包(RHEL 6) httpd-2.2.15-29.el6_4.i686 2. 安装Apache服务 2.1可以先使用下面的命令检查系统是否安装了Apache服务 在这里系统已经安装了Apache服务; 2.2如果系统没有安装Apache服务,可以使用以下命令进行安装: (1)挂载光盘 mount   /dev/cdrom   

Centos 下搭建SVN + Apache 服务器

摘要: 搭建SVN + Apache 服务器 安装软件包 # yum install httpd # yum install mod_dav_svn # yum install subversion 2.  验证安装  # httpd -version 结果显示: 前往 /etc/httpd/modules/ 下,检查是否包含mod_dav_svn.so和mod_authz_svn.so,如果有,mod_dav_svn安装成功. # svnserve --version 结果显示: 安装svn