yp1234 发表于 2018-11-21 10:28:39

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 目录泄露
  
  Options -Indexes FollowSymLinks
  AllowOverrride None
  Order allow,deny
  Allow from all
  
  在Indexes前加-或去掉
  2.2 符号连接追踪
  
  Options Indexes -FollowSymLinks
  AllowOverrride None
  Order allow,deny
  Allow from all
  
  在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解析漏洞:
  
  Order Allow,Deny
  Deny from all
  
  2.9 apache设置上传目录无执行权限
  关闭路径/www/home/upload的php解析:
  
  
  Order allow,deny
  Deny from all
  
  
  2.10 apache限制目录
  php_admin_value open_basedir /var/www
  2.11 http 请求方法安全
  OPTIONS 方法可以检测出当前资源可以请求的方法,关闭该方法的配置:
  
  
  Deny from all
  
  
  2.12 不允许访问指定扩展名
  
  Order allow,deny
  Deny from all
  
  2.13 禁止访问某些指定目录
  
  Order allow,deny
  Deny from all
  
  2.14 通过文件匹配进行禁止
  
  Order allow,deny
  Deny from all
  
  2.15 禁止针对URL相对路径的访问
  
  Order allow,deny
  Deny from all
  
  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
  #          ←與类似,但是是用來限制URL
  #SetHandler server-status
  #order deny,allow
  #deny from all
  #allow from .your_domain.com
  #
  #         ←此区块可显示出服务程序的设定,必须有加入mod_info.c模块才有作用
  #SetHandler server-info
  #order deny.allow
  #deny from all
  #allow from .your_domain.com
  #
  #          ←此区块是因为Apache以前版本的bug,有些人会用来***
  #deny from all                              系统,启用此区块可将其导向到ErrorDocument指定的网页。
  #ErrorDocument 403 http://phf.apache.org/phf_abuse_log.cgi
  #
  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

页: [1]
查看完整版本: Apache安全配置