中间件安全加固之Apache

1  身份鉴别

1.1  Apache账号安全

功能:以专门的用户账号和组运行Apache

(1)配置操作

修改httpd.conf配置文件,添加如下语句:

User apache

Group apachegroup

其中apache、apachegroup分别是为Apache创建的用户和组。

说明:

应为apache的用户和组设置适当的权限。

(2)检查操作指南

检查是否使用非专用账户(如root)运行apache

查看httpd.conf文件,查看是否定义了如下形式的脚本。

User apache

Group apachegroup

检查apache用户和组的权限,该用户不应该具有最高的管理员权限。

2  身份鉴别

2.1  权限管理

功能 :严格设置配置文件和日志文件的权限,防止未授权访问

(1)配置操作

使用命令“chmod 600 /etc/httpd/conf/httpd.conf”设置配置文件为属主可读写,其他用户无权限

使用命令“chmod 644 /var/log/httpd/*.log”设置日志文件为属主可读写,其他用户只读权限。

(2)检查操作

使用命令查看配置文件和日志文件的权限

1. 使用如下命令查看httpd.conf文件权限是否符合要求。

ls -l /etc/httpd/conf/httpd.conf

若为-rw-------即符合要求,否则为不合格。

2. 按照上述方法查看.log格式的文件权限是否符合要求。

若为-rw-r—r—即为符合要求,否则为不合格。

3  安全审计

3.1  安全日志完备性要求

功能 :设备应配置日志功能,对运行错误、用户访问等进行记录,记录内容包括时间,用户使用的IP地址等内容。

(1)配置操作

编辑httpd.conf配置文件,设置日志记录文件、记录内容、记录格式。

LogLevel notice

ErrorLog logs/error_log

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Accept}i\" \"%{Referer}i\" \"%{User-Agent}i\"" combined

CustomLog logs/access_log combined

说明:

ErrorLog指令设置错误日志文件名和位置。错误日志是最重要的日志文件,Apache httpd将在这个文件中存放诊断信息和处理请求中出现的错误。若要将错误日志送到Syslog,则设置:ErrorLog syslog。

CustomLog指令设置访问日志的文件名和位置。访问日志中会记录服务器所处理的所有请求。

LogFormat设置日志格式。LogLevel用于调整记录在错误日志中的信息的详细程度,建议设置为notice。

(2)检查操作

1. 查看logs目录中相关日志文件内容,记录完整。

查看相关日志记录,要求对运行错误、用户访问等进行记录,记录内容包括时间,用户使用的IP地址等内容。

4  入侵防范

4.1  删除默认实例程序

功能:删除缺省安装的无用文件

(1)配置操作

删除缺省HTML文件,位置为apache2/htdocs下的默认目录及文件。

删除缺省的CGI脚本,位置为apache2/cgi-bin目录下的所有文件。

删除Apache说明文件,位置为apache2/manual目录

注:根据安装步骤不同和版本不同,某些目录或文件可能不存在或位置不同。

(2)检查操作

检查如下目录中的文件是否存在。

缺省HTML文件,位置为apache2/htdocs目录。

缺省的CGI脚本,位置为apache2/cgi-bin目录。

Apache说明文件,位置为apache2/manual目录

4.2  错误页面处理

功能:Apache默认的错误页面会泄露系统及应用的敏感信息。因此需要采用自定义错误页面的方式防止信息泄露的问题

(1)配置操作

1. 修改httpd.conf配置文件:

ErrorDocument 400 /custom400.html

ErrorDocument 401 /custom401.html

ErrorDocument 403 /custom403.html

ErrorDocument 404 /custom404.html

ErrorDocument 405 /custom405.html

ErrorDocument 500 /custom500.html

其中,Customxxx.html为要设置的错误页面。需要手动建立相关文件并自定义内容。

重新启动Apache服务。

(2)检查操作

1. 查看httpd.conf文件,查看定义的错误文件

在浏览器中浏览相关文件,检查是否泄漏了敏感信息。

4.3  禁止目录浏览

功能:禁止当Apahce目录没有默认首页时,显示目录文件

(1)配置操作

1. 编辑httpd.conf配置文件,

<Directory "/web">

Options Indexes FollowSymLinks  #删掉Indexes

AllowOverride None   

Order allow,deny

Allow from all

</Directory>

将Options Indexes FollowSymLinks中的Indexes 去掉,就可以禁止Apache 显示该目录结构。Indexes 的作用就是当该目录下没有 index.html文件时,就显示目录结构。

重新启动Apache服务。

(2)检查操作

当WEB目录中没有默认首页如index.html文件时,不会列出目录内容。

检查httpd.conf文件,查看是否存在Options Indexes FollowSymLinks语句。若存在,则不符合要求。

4.4  隐藏Apache版本号

功能:隐藏Apache的版本号及其它敏感信息

(1)配置操作

修改httpd.conf配置文件:

ServerSignature Off

ServerTokens Prod

(2)检查操作

检查httpd.conf配置文件,检查其是否进行了如下配置。

ServerSignature Off

ServerTokens Prod

4.5  禁止访问外部文件

功能:禁止Apache访问Web目录之外的任何文件

(1)配置操作

编辑httpd.conf配置文件,

1. 设置外部不可访问。

<Directory />

Order Deny,Allow

Deny from all

</Directory>

2. 设置可访问目录,

<Directory /web>

Order Allow,Deny

Allow from all

</Directory>

说明: /web为网站根目录。

(2)检查操作

无法访问Web目录之外的文件。

访问服务器上不属于Web目录的一个文件,结果应无法显示。

5  资源控制

5.1  拒绝服务防范

功能:对于具备字符交互界面的设备,应支持定时账户自动登出。登出后用户需再次登录才能进入系统。超时时间设置应小于10分钟。

(1)配置操作

1. 编辑httpd.conf配置文件,

Timeout 10 KeepAlive On

KeepAliveTimeout 15

AcceptFilter http data

AcceptFilter https data

重新启动Apache服务。

(2)检查操作

检查httpd.conf文件,查看是否进行了如下设置:

Timeout 10 KeepAlive On

KeepAliveTimeout 15

AcceptFilter http data

AcceptFilter https data

6  备份和恢复

定期备份网站文件,数据库文件。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大闲人柴毛毛

Linux系统服务——Daemon

什么是Daemon? Daemon是Linux的一些系统服务,它们是一些常驻内存的进程。 Daemon分类 Daemon拥有两种分类方式,按照“daemon是...

39040
来自专栏用户2442861的专栏

recv函数说明返回值

客户端的程序连接上服务器后recv函数阻塞接受,有时会返回0,说明接收超时服务器主动断开了连接,需要重新connect服务器,但重新connect时会报“Tr...

52310
来自专栏哲学驱动设计

一个简单的 Chrome 插件

之前做秒杀器的时候,使用的是 WPF 客户端,借助 HttpWebRequest 来实现远程调用。 后来看到别人抢火车票的软件是一个 Chrome 插件,发现这...

20350
来自专栏散尽浮华

进程管理利器-supervisor部署记录

一、简单介绍 supervisor是用来管理进程的一个工具,止于为什么要用supervisor,是因为相对于linux传统的进程管理方式来说,它有很多的优势: ...

40780
来自专栏铭毅天下

干货 | Elasticsearch集群黄色原因的终极探秘

绿色——最健康的状态,代表所有的主分片和副本分片都可用; 黄色——所有的主分片可用,但是部分副本分片不可用; 红色——部分主分片不可用。(此时执行查询部分数...

19200
来自专栏桥路_大数据

多云服务器kafka环境搭建并接收flume日志数据

41590
来自专栏pangguoming

创建GitHub技术博客全攻略

说明: 首先,你需要注册一个 github 账号,最好取一个有意义的名字,比如姓名全拼,昵称全拼,如果被占用,可以加上有意义的数字. 1. 注册账号: 地址:...

41470
来自专栏技术博文

H5缓存机制浅析

1 H5 缓存机制介绍 H5,即 HTML5,是新一代的 HTML 标准,加入很多新的特性。离线存储(也可称为缓存机制)是其中一个非常重要的特性。H5 引入的离...

44480
来自专栏Albert陈凯

HTTP、TCP、UDP:通信协议的规则和区别

TCP、HTTP、UDP:都是通信协议,也就是通信时所遵守的规则,只有双方按照这个规则“说话”,对方才能理解或为之服务。 TCP HTTP UDP三者的...

31980
来自专栏前端儿

Webpack打包构建太慢了?试试几个方法

webpack支持监听模式,此时需要重新编译时就可以进行增量构建,增量构建是很快的,基本不到一秒或几秒之内就能重新编译好

91720

扫码关注云+社区

领取腾讯云代金券