当前位置: 首页 >> Web安全 >> 【安全】Apache安全配置 >> 正文

【安全】Apache安全配置

5年前 (2015-06-09)     作者:Jiaozn     分类:Web安全     阅读次数:1227     评论(0)    

1.png

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


除非注明,发表在“Jiaozn的博客”的文章『【安全】Apache安全配置』版权归Jiaozn所有。 转载请注明出处为“本文转载于『Jiaozn的博客』原地址https://www.jiaozn.com/reed/120.html

评论

发表评论   

昵称*

E-mail*(建议输入,以便收到博主回复的提示邮件)

网站

分享:

支付宝

微信