bloglogobloglogobloglogobloglogo
  • 首页
  • 营销&建站
    • SEO
    • PHP
    • wordpress
    • 自媒体
    • 前端开发
    • 网站建设
    • 网络营销推广
  • 运维&系统
    • mysql
    • Linux
    • 系统运维
    • 运维技术
    • 网络安全
  • 资源&工具
    • 资源
    • 工具
    • 前端工具
    • 搜索方法/工具
    • app打包开发
  • 生活
  • 首页
  • 营销&建站
    • SEO
    • PHP
    • wordpress
    • 自媒体
    • 前端开发
    • 网站建设
    • 网络营销推广
  • 运维&系统
    • mysql
    • Linux
    • 系统运维
    • 运维技术
    • 网络安全
  • 资源&工具
    • 资源
    • 工具
    • 前端工具
    • 搜索方法/工具
    • app打包开发
  • 生活

Apache 安全配置方法

  • 首页
  • 运维技术
  • Apache 安全配置方法
如何搭建自己的socks服务器
2019年8月8日
Xiuno 3.0 不规则排序图片列表插件 1.0 正式版发布
2019年8月8日
2019年8月8日
分类
  • 运维技术
标签
  • apache

令Apache占领Web服务器半壁江山的一个重要原因就是它可以提供一个安全的Web操作环境。Apache团体为保证其安全性做了大量的工作。想当年,在此产品被发现存在一个安全缺陷时,Apache的开发人员就尽快地搞出了一个补丁。

然而,即管Apache已经堪称安全的产品,如果你在构建你的服务器时没有采取一些安全预防措施,这种Web服务器仍易于受到很多攻击。

在本文中,笔者将为你提供10个技巧,借此你可以保护自己的Apache Web服务器免于受到许多攻击。不过,必须谨记,你需要仔细地评估每一个技巧,以确保其适合于你的组织。

只安装所需要的

Apache的一个最大的特点是其灵活性和大量的可选择安装模块,这在涉及到安全问题时可成为一个极大的弱点。你安装的越多,也就为潜在的攻击者创造了越大的攻击面。一个标准的Apache安装包含20多个模块,包括CGI特性,以及一些身份验证机制。如果你不打算采用CGI,并且你只想采用静态的Web 站点,不需要用户身份验证,你可能就不需要这些模块所提供的任何服务,因此在安装Apache时请禁用这些模块。

如果你沿用了一个正在运行的Apache服务器,并且不想重新安装它,就应当仔细检查httpd.conf配置文件,查找以LoadModule开头的行。请检查Apache的文档(也可以用Google、Yahoo等搜索),查找每个模块的目的信息,找出那些你并不需要的模块。然后,重新启动 Apache。

暴露程度最小化

Apache易于安装并且相当容易管理。不幸的是,许多Apache的安装由于为完全的陌生者提供了关于自己服务器的太多”有帮助”的信息,例如 Apache的版本号和与操作系统相关的信息。通过这种信息,一个潜在的攻击者就可以追踪特定的可以影响你的系统的破坏性漏洞,特别是你没有能够保持所有补丁的更新的话情况更为严重。如此一来,攻击者无需反复试验就可以确切地知道你在运行什么,从而可以调整其攻击方法。

要防止服务器广播敏感信息,一定要保证将httpd.conf中的”ServerSignature”指令设置为”off”。一次默认的Apache安装会将此指令设置为”off”,不过许多管理员却启用了它。

同样地,禁用目录浏览也是一个不错的注意。在目录浏览被启用时,访问一个并不包含其所需要文档的目录的用户,会看到此目录中完整的内容列表。无疑,你不应当将敏感材料以纯文本的形式存储到一个Web服务器上,除非你必须这样做,你也不应该允许人们看到超过其需要的内容。

目录浏览默认地是被启用的。要禁用这个特性,应编辑http.conf文件,而且对每一个”Directory”指令,应清除”Indexs”。

例如,在笔者的做实验用的Apache 2.2.4服务器上,这是默认的目录命令:

代码如下:

1
2
3
4
5
6
Options Indexes FollowSymLinks
AllowOverrride None
Order allow,deny
Allow from all

清除Indexes后的样子:

代码如下:

1
2
3
4
5
6
Options FollowSymLinks
AllowOverrride None
Order allow,deny
Allow from all

你也可以保留Indexes指令,并用一个破折号引导,从而禁用此指令(也就是”-Indexes”)。

禁用符号连接追踪

如果你是唯一一个校对Web内容的人员,而你在创建新的符号连接时又几乎不犯错误,你可能不会担心此措施。不过,如果你有很多人员能够向你的站点增加内容,并非所有的人都像你一样谨慎从事,那么就会有一种风险,即某个用户可能偶然会创建一个符号连接指向你的文件系统的一部分,而你又确实不想让人们看到这些文件。例如,如果你的Apache服务器的根目录中的某人创建了一个指向 “/”文件夹的符号连接,你该怎么办?

为了取消Apache服务器允许用户追踪符号连接的请求,应该在Directory命令中清除FollowSymlinks指令。

例如,在笔者的试验性的Apache 2.2.4服务器中,Directory命令如下:

代码如下:

1
2
3
4
5
6
Options Indexes FollowSymLinks
AllowOverrride None
Order allow,deny
Allow from all

在清除了FollowSymLinks后,就成为如下的样子:

代码如下:

1
2
3
4
5
6
Options Indexes
AllowOverrride None
Order allow,deny
Allow from all

如果一些用户需要跟踪符号连接的能力,可以考虑使用SymLinksIfOwnerMatch代替。

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端口。

不过,这项措施有可能不适用于你的环境,应根据需要而定。

从httpd.conf中清除默认的注释

Apache 2.2.4中默认的httpd.conf文件有400多行。在这400行中,只有一小部分是实际的Apache指令,其余的仅是帮助用户如何恰当地在httpd.conf中放置指令的注释。根据笔者的经验,这些注释有时起负面作用,甚至将危险的指令留存于文件中。笔者在所管理的许多 Apache服务器上将httpd.conf文件复制为其它的文件,如httpd.conf.orig等,然后完全清除多余的注释。文件变得更加容易阅读,从而更好地解决了潜在的安全问题或者错误地配置文件。

没作任何设置前,查看web服务器请求文件头

1
2
3
4
5
6
7
8
HTTP/1.1 200 OK
Date: Sun, 27 Apr 2008 11:56:46 GMT
Server: Apache/2.2.8 (Unix) DAV/2 PHP/5.2.5 with Suhosin-Patch
Last-Modified: Sat, 20 Nov 2004 20:16:24 GMT
ETag: “387a5-2c-3e9564c23b600”
Accept-Ranges: bytes
Content-Length: 44
Content-Type: text/html

几乎把web服务器详细信息都暴出来了,如果没个版本的apache和php爆出严重漏洞,会给攻击者提供最有攻击价值的安全信息,这是非常危险的

将apache的配置文件加上两行

1
2
ServerTokens ProductOnly
ServerSignature Off

重启apache让设置生效
再次发出apache头信息请求

1
2
3
4
5
6
7
8
HTTP/1.1 200 OK
Date: Sun, 27 Apr 2008 11:57:40 GMT
Server: Apache
Last-Modified: Sat, 20 Nov 2004 20:16:24 GMT
ETag: “387a5-2c-3e9564c23b600”
Accept-Ranges: bytes
Content-Length: 44
Content-Type: text/html

可以看到apache版本号于已经没有了

做到这点,我们还可以改变apache的版本,这就要修改apache的源代码了,在apache的源码包中找到ap_release.h 将#define AP_SERVER_BASEPRODUCT “Apache” 修改为#define AP_SERVER_BASEPRODUCT “Microsoft-IIS/5.0”
或者#define AP_SERVER_BASEPRODUCT “Microsoft-IIS/6.0”

然后找到os/unix下的os.h文件,将其#define PLATFORM “Unix”修改为#define PLATFORM “Win32”

然后重新编译,安装apache。
最后修改httpd.conf配置文件,添加两行ServerTokens Prod
ServerSignature Off
在发送头请求,会有什么,就不用我说了吧,嘿嘿,这叫偷天换日,从这点来说,php也是一样,同样可以通过这种方式改变一些系统信息,不过根据GPL开源的精神,这样做貌似不太好,还是保留apache和php版权信息吧。

附:

1
2
3
4
5
ServerSignature 三个选项
On|Off|EMai 主要起开关作用

ServerTokens 四个选项
Minimal|ProductOnly|OS|Full 四个选项隐藏信息依次增加

下面对php的配置文件php.ini进行配置

默认情况下expose_php = On
将其改为 expose_php = Off

为什么,可以看这段解释

1
2
3
4
; Decides whether PHP may expose the fact that it is installed on the server
; (e.g. by adding its signature to the Web server header). It is no security
; threat in any way, but it makes it possible to determine whether you use PHP
; on your server or not.

然后禁止一些涉及php安全的函数

1
2
3
4
disable_functions = phpinfo, get_cfg_var //禁止phpinfo和get_cfg_var等函数
display_errors = Off //禁止爆出错误
allow_url_fopen = Off //这个关闭,就没有办法取远程内容了,但是可以用变通,用curl远程读取的方法做到
safe_mode = On //开启安全模式,这个开了,可能会有些php功能没办法使用了

无论如何,还是要我们的程序设计的完美,一般来说,单纯更具对系统攻击很难,如果是程序有漏洞,那攻击就简单了。

原文始发于:Apache 安全配置方法

王金阁
王金阁
王金阁,7年网络营销运营推广经验。网络新闻媒体资源欢迎采购,云服务器、虚拟主机、独享虚拟主机、企业邮箱、成品小程序也接定制欢迎详聊。托管代运营带维护多种合作方式总有你满意的,欢迎合作。QQ:909580330(微信同号)

相关文章

2019年8月8日

Apache下安装配置mod_pagespeed模块

2019年7月11日

nginx实现ssl反向代理实战

2018年8月1日

通过使用apache的htaccess文件来做域名301 302重定向

发表评论 取消回复

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据。

感谢支持 QQ909580330

网络媒体发稿找我,成品小程序价格优惠性价比高(预约、商城、点餐、外卖、展示、票务)
企业邮箱定制搭建

无需写代码建站 智能建站 智能站群

国内 香港 CN2 163 BGP云服务器

找博主更优惠QQ微信 909580330

最新文章

  • 0
    谁来关注可降解塑料废弃物回收与环保处置
    2021年3月3日
  • 0
    为dede增加安卓客户端接口的基本流程
    2021年2月1日
  • 0
    php生成xml写好header避免乱码的要点
    2021年2月1日
  • 0
    dede助手小工具helper是如何载入的?
    2021年2月1日
  • 0
    dedecms 评论引用的标签替换{quote}
    2021年2月1日

文章分类

  • app打包开发
  • Linux
  • mysql
  • PHP
  • SEO
  • wordpress
  • 前端工具
  • 前端开发
  • 小说大全
  • 工具
  • 未分类
  • 生活点滴
  • 系统运维
  • 网站建设
  • 网络安全
  • 网络宣发服务
  • 网络营销推广
  • 自媒体
  • 资源共享
  • 运维技术
  • 运营

最新标签

  • 黑马程序员
  • 黑链
  • 黑猫SEO
  • 黑帽SEO
  • 黑帽
  • 黑客分类
  • 黑客
  • 页面跳转
  • 页面类型
  • 页面
  • 韩剧
  • 降权
  • 长尾词
  • 锚文本
  • 锚
  • 链轮
  • 重复
  • 采集
  • 配置
  • 邮箱
  • 邮件
  • 逐浪CMS
  • 远程访问
  • 远程执行代码
  • 进程
  • 运营
  • 软文推广
  • 软件开发
  • 跳转适配
  • 路由器防蹭网
  • 路由器设置
  • 路由
  • 超级签名
  • 负载均衡
  • 谷歌
  • 诊断
  • 评论
  • 解密
  • 融资
  • 虚拟机
  • 虚拟内存
  • 虚拟主机
  • 营销
  • 自适应
  • 自定义字段

有料标签

Android apache backtrack CentOS css DDOS dedecms docker FFmpeg Google htaccess html html5 iOS JavaScript jquery linux MariaDB MySQL Nginx ONLYOFFICE PHP PR Python seo SQL Sublime URL wdcp WEB wordpress wordpress优化 Wordpress加速 人人商城 外链 安全 招聘 搜狗微信搜索 标签 深入浅出Docker 猎头 百度 百度算法 运营 黑客
©2013-2020 王金阁博客. 网络营销推广工作者的博客网站(SEO SEM ASO 信息流)备案号:皖ICP备19015551号-1
  • 王金阁博客
  • 云服务器
  • 虚拟主机
  • 小程序
  • 独立云虚拟主机
  • 软著办理快速下证
  • 小说家-小说txt分享