Apache安全加固

一.帐号设置

以专门的用户账号和组运行 Apache。
一、根据须要为 Apache 建立用户、组
二、参考配置操做 若是没有设置用户和组,则新建用户,并在 Apache 配置文件中指定

(1) 建立 apache 组:groupadd apache

(2) 建立 apache 用户并加入 apache 组:useradd apache –g apache

(3) 将下面两行加入 Apache 配置文件 httpd.conf 中

User apache

Group apache
三、检查 httpd.conf 配置文件。 检查是否使用非专用帐户(如 root)运行 apache

默认通常符合要求,Linux下默认apache或者nobody用户,Unix默认为daemon用户

 

 

二.受权设置
严格控制Apache主目录的访问权限,非超级用户不能修改该目录中的内容

一、Apache 的 主目录对应 于 Apache Server
配置文件 httpd.conf 的
Server Root控制项中,
应为:
Server Root /usr/local/apache”
二、断定条件
非超级用户不能修改该目录中的内容

三、检测操做
尝试修改,看是否能修改

四、通常为/etc/httpd目录,默认状况下属主为root:root,其它用户不能修改文件,默认通常符合要求
严格设置配置文件和日志文件的权限,防止未受权访问
一、chmod 600 /etc/httpd/conf/httpd.conf”设置配置文件为属主可读写,其余用户无权限。
二、
使用命令“chmod 644 /var/log/httpd/*.log”设置日志文件为属主可读写,其余用户只读权限。

三、/etc/httpd/conf/httpd.conf默认权限是644,可根据须要修改权限为600。
四、/var/log/httpd/*.log默认权限为644,默认通常符合要求。
三.日志设置
设备应配置日志功能,对运行错误、用户访问等进行记录,记录
内容包括时间,用户使用的 IP 地址等内容。

一、
编辑 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 设置日志格式,建议设置为 combined 格式。
LogLevel 用于调整记录在错误日志中的信息的详细程度,建议设置为notice。

日志的级别,默认是warn,notice级别比较详细,在实际中因为日志会占用大量硬盘空间,通常没有设置
四.禁止访问外部文件
禁止 Apache 访问 Web 目录以外的任何文件。
一、参考配置操做
编辑 httpd.conf 配置文件,


Order Deny,Allow

Deny from all


二、设置可访问目录,


Order Allow,Deny

Allow from all

其中/web 为网站根目录

三、默认配置是

Options FollowSymLinks

AllowOverride None

通常可根据须要设置

五.目录列出
禁止 Apache 列表显示文件
一、 编辑 httpd.conf 配置文件。

Options Indexes FollowSymLinks #删掉
Indexes
AllowOverride None

Order allow,deny

Allow from all


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

二、从新启动 Apache 服务

三、能够设置 /etc/httpd/httpd.conf 段中删除Options的Indexes设置 通常可根据须要设置
六.错误页面重定向
Apache 错误页面重定向
一、修改 httpd.conf 配置文件:
ErrorDocument 400 /custom400.html
ErrorDocument 401 /custom401.html
ErrorDocument 403 /custom403.html
ErrorDocument 404 /custom404.html
ErrorDocument 405 /custom405.html
http://www.013188.com
ErrorDocument 500 /custom500.html Customxxx.html 为要设置的错误页面。
二、从新启动 Apache 服务

三、此项须要应用系统设有错误页面,或者不在httpd中设置彻底由业务逻辑实现,可不作
七.拒绝服务防范
根据业务须要,合理设置 session 时间,防止拒绝服务攻击
一、编辑 httpd.conf 配置文件,

Timeout 10 #客户端与服务器端创建链接前的时间间隔

KeepAlive On

KeepAliveTimeout 15 #限制每一个 session 的保持时间是 15 秒 注:此处为一建议值,具体的设定须要根据现实状况。 二、从新启动 Apache 服务

三、默认Timeout 120 KeepAlive Off,KeepAliveTimeout 15,该项设置涉及性能调整,通常不作。
八.隐藏 Apache 的版本号
隐藏 Apache 的版本号及其它敏感信息。
一、配置操做
修改 httpd.conf 配置文件: ServerSignature Off ServerTokens Prod

二、默认是 ServerSignature On,ServerTokens OS,能够设置
九.关闭 TRACE
关闭 TRACE,防止 TRACE 方法被访问者恶意利用
一、 配置修改vim /etc/httpd/conf/httpd.conf
添加 “TraceEnable Off”
注:适用于 Apache 2.0 以上版本

二、默认没有该项设置,能够作。
十.禁用 CGI
若是服务器上不须要运行 CGI 程序,建议禁用 CGI
一、 修改配置vim /etc/httpd/conf/httpd.conf
把 cgi-bin 目录的配置和模块都注释掉
#LoadModule cgi_module modules/mod_cgi.so

#ScriptAlias /cgi-bin/ “/var/www/cgi-bin/”

#

#AllowOverride None
# Options None

#Order allow,deny

#Allow from all

#
二、 根据须要设置,若是没有CGI程序,能够关闭
十一.监听地址绑定
服务器有多个 IP 地址时,只监听提供服务的 IP 地址
一、 修改配置vim /etc/httpd/conf/httpd.con
修改

Listen x.x.x.x:80
二、检测操做
使用命令“cat /etc/httpd/conf/httpd.conf|grep Listen”查看是否 绑定 IP 地址

三、默认设置是Listen 80监听全部地址,若是服务器只有一个IP地址可不作该项设置,若是有多个IP能够按照须要设。

 

十二.删除缺省安装的无用文件
删除缺省安装的无用文件。
一、参考配置操做删除缺省 HTML 文件:

# rm -rf /usr/local/apache2/htdocs/*
删除缺省的 CGI 脚本:

# rm –rf /usr/local/apache2/cgi-bin/*
删除 Apache 说明文件:

# rm –rf /usr/local/apache2/manual
删除源代码文件:
(  http://www.620788.com  )
# rm -rf /path/to/httpd-2.2.4* 根据安装步骤不一样和版本不一样,某些目录或文件可能不存在或位置不一样。

二、可根据实际状况删除,通常是 /var/www/html /var/www/cgi-bin 默认就是空的

十三.禁用非法 HTTP 方法
禁用PUT、DELETE等危险的HTTP 方法;
一、 编辑 httpd.conf 文件。
只容许 get、post 方法

Deny from all

二、补充操做说明
二、检测操做
查看 httpd.conf 文件,
检查以下内容,是否只容许 get、post
方法

Deny from all

” 三、根据须要可设置,若是没有不须要用到put delete HTTP 方法的话,
加在/etc/httpd/conf/httpd.conf的段中。