你知道Apache是如何配置的吗?本文为您讲述Apache的安全配置,希望对您有所帮助。

 Apache安全配置_Apache安全配置

1 安全策略

1.1 安全目录

.htaccess做目录安全保护的,欲读取这保护的目录需要先键入正确用户帐号与密码。这样可做为专门管理网页存放的目录或做为会员区等。

AllowOverride All

LoadModule rewrite_module modules/mod_rewrite.so

在自动要认证的目录下建立. htaccess文本(windows中用记事本另存为建立)

1.1.1 .htaccess配置:

(.htaccess文件可以相当于当前目录的httpd.conf配置,设置时尤其注意.htaccess文件的访问权限,避免被有心人恶意修改,后果不堪设想)

AuthName HIHIHI指的是要求你输入用户名和密码时的提示信息

AuthType Basic表示需要的认证类型

AuthUserFile c:\ss指的是保存用户名和密码的文件位置(.htpasswd),在这个例子中指的是.htpasswd文件,位置和我们的.htaccess文件相同

Require valid-user指定只有.htpasswd文件包含的合法用户才能访问。

1.1.2 .htpasswd配置

用户名:密码

aaa:aaa

不一定在.htaccess文件下配置,也可以在httpd.conf(主配置)下进行配置,这样可以提高apache工作效率,否则客户端访问Web是Apache都会在每一个目录下寻找.htaccess文件,会降低Apache效率,而且.htaccess被有心人修改了就危险了

1.2 错误页面

ErrorDocument 500 "The server made a boo boo."

ErrorDocument 404 /missing.html

ErrorDocument 404 "/cgi-bin/missing_handler.pl"

ErrorDocument 402 http://www.js.com/subscription_info.html

2 安全隐患

2.1 目录泄露

<Directory "/usr/local/apache/htdocs"> 

Options -Indexes FollowSymLinks

AllowOverrride None

Order allow,deny

Allow from all

</Directory>

在Indexes前加-或去掉

2.2 符号连接追踪

<Directory "/usr/local/apache/htdocs"> 

Options Indexes -FollowSymLinks 

AllowOverrride None 

Order allow,deny 

Allow from all 

</Directory>

在FollowSymLinks前加-或去掉

2.3 Listen指令具体化

httpd.conf包含一个"Listen 80”指令。应将其改变为指定邦定的IP,如果在多IP的环境下尤其注意

2.4 版本泄露

在httpd.conf中添加:

ServerTokens ProductOnly

ServerSignature Off

2.5 运行权限

Apache在windows中的默认运行权限是系统权限,若黑客找到漏洞,就可以将整个服务控制,所以必须将Apache运行权限降到最低,这样可以避免发生安全事故

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

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

2.7 欺骗攻击者

修改版本名:

修改系统名:

2.8 apache解析漏洞:

<FilesMatch ".(php.|php3.)">

Order Allow,Deny

Deny from all

</FilesMatch>

2.9 apache设置上传目录无执行权限

关闭路径/www/home/upload的php解析:

<Directory “/www/home/upload”>

<Files ~ “.php”>

Order allow,deny

Deny from all

</Files>

</Directory>


2.10 apache限制目录

php_admin_value open_basedir /var/www

2.11 http 请求方法安全

OPTIONS 方法可以检测出当前资源可以请求的方法,关闭该方法的配置:

<Location />

<Limit OPTIONS>

Deny from all

</Limit>

</Location>

2.12 不允许访问指定扩展名

<Files ~”\..inc$”>

Order allow,deny

Deny from all

</Files>

2.13 禁止访问某些指定目录

<Directory ~“^/var/www/(.+/)*[0-9]{3}”>

Order allow,deny

Deny from all

</Directory>

2.14 通过文件匹配进行禁止

<FilesMatch \.(? i: gif| jpe? g| png)$>

Order allow,deny

Deny from all

</FilesMatch>

2.15 禁止针对URL相对路径的访问

<Location /dir/ >

Order allow,deny

Deny from all 

</Location>

3 其他安全配置

3.1 Options

Options参数代表的意思

ALL用户可在此目录中做任何事

ExecCGI允许在此目录中执行CGI script

FollowSymLinksSever可利用symbolic link链接到不在此目录中的档案或目录

IndexesSever可以产生此目录中的档案列表

Includes提供SSI的功能

IncludesNOEXEC可使用SSI功能,但取消#exec与#include 的CGI 功能

MultiViews允许经由交谈而取得不同的文件,例如可由浏览器要求传送法文版的网页`

None安全不允许存取此目录

SymLinkslfOwnerMatch允许存取symbolic links链接的目录,但仅限于该目录的拥有人

3.2 AllowOverride

AllowOverride None表示不要读取.htaccess文档

AllowOverride AuthConfig允许做基本的用户名和口令验证

AllowOverride Allall表示以.htaccess的内容为准,改变原来的访问权限

3.3 Location

#<Location /server-status>          ←<Location>與<Directory>类似,但是是用來限制URL

#SetHandler server-status

#order deny,allow

#deny from all

#allow from .your_domain.com

#</Location>

#<Location /server-info>           ←此区块可显示出服务程序的设定,必须有加入mod_info.c模块才有作用

#SetHandler server-info

#order deny.allow

#deny from all 

#allow from .your_domain.com

#</Location>

#<Location /cgi-bin/phf*>          ←此区块是因为Apache以前版本的bug,有些人会用来攻击

#deny from all                                系统,启用此区块可将其导向到ErrorDocument指定的网页。

#ErrorDocument 403 http://phf.apache.org/phf_abuse_log.cgi

#</Location>

3.4 from

allow from all    ←允許所有使用者存取

# allow from flag.com.tw           ←只允許來自於flag.com.tw domain存取,但要先"deny from all"才能拒絕其它地方連進來

# deny from 203.74.205            ←拒绝来自于203.74.205

3.5 减少CGI和SSI风险

减少SSI脚本风险,如果用exec等SSI命令运行外部程序,也会存在类似CGI脚本风险,除了内部调试程序时,应使用

option命令禁止其使用:

Option IncludesNOEXEC

若要使用CGI或SSI可以使用suEXEC进行配置

3.6 使用ssl加固Apache

link