Apache vhost配置安全性详解

继续上一次的话题, apach安全性问题.

需要如下:

   本地私有ip 127.0.0.1 可以访问, 禁止其它ip访问.

   已经配置的域名可以访问, 其它域名禁止非法解析.

默认的httpd-vhost.conf文件的确没太多的注释,  要实现需求, 还是得自己测试. 以下讲解方法.

NameVirtualHost 127.0.0.1:80

ErrorDocument 403 "http://127.0.0.1/?403"

<VirtualHost *:80>
    ServerName 127.0.0.1
    <LocationMatch ".*">
         Order allow,deny
         Allow from 127.0.0.1
    </LocationMatch> 
</VirtualHost>

首先, 无论如何请建立一个本地默认的指向, 经过测试, 凡是没有设置的域名解析, 都会匹配到这个功能块中.  然后通过allow from来限制访问的ip. 这样就可以实现默认的环境仅限本地私有ip访问了. 假如需要放开某个ip访问, 可以多建立几条allow from规则.


apache 有几处类型的判断体, 
  LocationMatch  链接类型判断体. 如上面的代码, 即表示任何访问字符.
  files                   文件类型判断体, 可以设置对文件的访问时的判断, 比如某个文件仅希望某ip访问.
  Directory          目录类型判断体, 设置对目录访问的判断.
 
常用的就这三项, 基本上满足了我们的需求.

接着自己的域名主体配置可能就如下:

<VirtualHost *:80>
    ServerAdmin "[email protected]"                    # 你的管理员邮件
    DocumentRoot "D:/xampps/htdocs/web/"         # 你的域名指向的路径
    ServerName xx.com                            # 你的纯域名,二级域名时, 相同.
    ServerAlias www.dummy-host2.localhost        # 你的全域名, 多加了www
    ErrorLog "logs/dummy-host2.localhost-error.log" # 错误日志
    CustomLog "logs/dummy-host2.localhost-access.log" combined  # 访问日志
    ErrorDocument 403 "http://127.0.0.1/?403"    # 自定义各错误码引向.
      <Directory "D:/xampps/htdocs/web/">        # 设置目录权限相关.
      Options FollowSymLinks 
      AllowOverride All 
      </Directory>
      
      <LocationMatch ".*">                       # 设置链接访问权限相关.
         Order allow,deny
         Allow from .xx.com
    </LocationMatch>
</VirtualHost>

现在看看, 是不是仅有本地ip及设置好的域名可以访问环境了?

你可能感兴趣的:(apache)