httpd的站点访问控制

站点访问控制

httpd2.2和httpd2.4的站点访问控制有点不同,这里先说httpd2.4站点访问控制的方法。不同的地方会区别再说。

  • Option
    可以配置在directory标签中,配置文件中,虚拟主机,.htaccess中,有以下选项

    • Indexes:指明的URL路径下不存在与定义的主页面资源相符的资源文件时,返回索引列表给用户;
    • FollowSymLinks:允许跟踪符号链接文件所指向的源文件;
    • None:都不允许,常用
    • All:都允许

    示例:Option Indexes
    在站点目录的标签中设置Option Indexes
    然后将index.html改个名,当用户访问网站找不到起始页的时候就会返回整个站点目录的结构,这个选项如果是做一些镜像站其实还可以,但是如果不是有列出站点目录结构的需求的最好None关闭。
    然后我们用浏览器访问网站看一下
    这里写图片描述
    示例:Option FollowSymLinks
    在站点目录的标签中设置Option Options Indexes FollowSymLinks
    这时候我们在站点目录新建一个目录的软链接

    ln -sv /etc /usr/local/httpd/htdocs/etc

    重启一下服务查看效果
    也就是httpd将链接文件也返回了真实的文件,就像这种情况,主机的安全已经不复存在了。因为敏感文件都暴露的差不多了,所以没有特殊需求,最好None
    这里写图片描述

  • AllowOverride
    与访问控制相关的哪些指令可以放在.htaccess文件(每个目录下都可以有一个)中;常用有以下两个

    • All:
    • None
  • Require(http2.4)
    测试认证用户是否被授权提供程序授权。这个是在http2.4里才有的,一般配置在授权容器中,
    示例

    • Require all granted 无条件允许访问
    • Require all denied 无条件拒绝
    • Require ip 10 172.20 192.168.2 允许某ip访问
    • Require not ip 10 172.20 192.168.3 拒绝某ip访问
    • Require method http-method [http-method] … 只允许对给定的HTTP方法访问
    • Require group group-name 允许某用户组访问
    • Require user userid [userid] … 只有命名用户才能访问资源。
  • order,allow、deny(httpd2.2)

    • Allow:控制哪些主机可以访问服务器的某个区域
      格式:Allow from all|host|env=[!]env-variable [host|env=[!]env-variable]
      例子:
      • Allow from 192.168.1.104 192.168.1.205 允许那些ip访问
      • Allow from 10 172.20 192.168.2 允许某些网段
      • Allow from 10.1.0.0/255.255.0.0
    • Deny:控制拒绝访问服务器的主机
      格式:Deny from all|host|env=[!]env-variable [host|env=[!]env-variable] …
      例如 Deny from 192.168.253.128 拒绝192.168.253.128这个ip访问
    • order:控制默认访问状态以及评估Allow和Deny评估的顺序
      • Allow,Deny,首先,Allow评估所有指令; 至少一个必须匹配,否则请求被拒绝。接下来,Deny 评估所有指令。如果匹配,则拒绝该请求。最后,默认情况下拒绝任何与指令Allow或Deny指令不匹配的请求。
      • Deny,Allow首先,Deny评估所有指令; 如果匹配,则拒绝该请求, 除非它也与Allow指令匹配。任何与任何Allow或Deny指令不匹配的请求都是允许的。

整体举个例子,以http2.4为例
允许192.168.253.0/24网段访问,拒绝其中的192.168.253.129主机访问

<Directory "/usr/local/httpd-2.4/htdocs">
    Options None 
    AllowOverride None
    <RequireAll> 
        Require ip 192.168.253.0/24
        Require not ip 192.168.253.129 
    </RequireAll>
</Directory>

重启服务测试
再192.168.253.128主机
这里写图片描述
再192.168.253.129主机上测试
这里写图片描述

猜你喜欢

转载自blog.csdn.net/L835311324/article/details/81703307
今日推荐