标签:httpd 浅谈 访问控制 主机 Require 用户 访问 Apache local
为了更好地控制对网站资源的访问,所以需要为特定的网站目录添加访问授权。
客户机地址限制:
通过 Require 配置项,可以根据主机的主机名或IP地址来决定是否允许客户端访问,在 httpd服务器的主配置文件的 <Location>、<Directory>、<Files>、<Limit> 配置段中均可以使用 Require 配置项来控制客户端的访问。
常用格式如下:
Require all granted :表示允许所有主机访问
Require all denied :表示拒绝所有主机访问
Require local :表示仅允许本地主机访问
Require [not] host <主机名或域名列表> :表示允许或拒绝指定主机或域访问
Require [not] IP <IP地址或网段列表> :表示允许或拒绝制定IP或网段访问
具体用法:路径:/usr/local/httpd/conf/httpd.conf
1、允许所有
<Directory "/usr/local/httpd/htdocs">
…… // 省略部分内容
Require all granted #允许所有主机访问
</Directory>
2、仅允许某台主机
<Directory "/usr/local/httpd/htdocs">
…… //省略部分内容
Require ip 192.168.1.20 #允许单个主机访问
</Directory>
3、仅拒绝某台主机或网段(注意:在使用 not 禁止访问时要将其置于<RequireAll></RequireAll>容器中,在容器中配置相应策略):
<Directory "/usr/local/httpd/htdocs">
…… //
<RequireAll>
Require all granted # 允许所有主机访问
Require not ip 192.168.0.0/24 192.168.1.20 # 拒绝0.0网段,1.20 主机
</RequireAll>
</Directory>
当未被授权的客户机访问目录时,将会被拒绝,显示 HTTP 403 错误 报错
用户授权限制:
基于用户的访问控制包含认证(Authentication)和授权(Authorization)两个过程,是 Apache 允许指定的用户使用用户名和密码访问特定资源的一种方式。
Apache支持使用摘要认证(Digest)和基本认证(Basic)两种方式。注意:使用摘要认证需要在编译 httpd 之前加上“--enable-auth-digest”
1、创建用户认证数据文件:
[root@www /]# cd /usr/local/httpd/
[root@www httpd]# bin/htpasswd -c /usr/local/httpd/conf/.awspwd zhangsan
New password: //-c 选项表示新建立此文件 //根据提示设置密码
Re-type new password: // 省略 -c,表示指定的用户数据文件已存在
Adding password for user zhangsan
[root@www httpd]# cat /usr/local/httpd/conf/.awspwd //确认用户数据文件
zhangsan:$apr1$ROjz961w$dafGJ0Uf2BRIIlaykDkJH/
lisi:$apr1$Zke/LK3e$zlTZ1W9zwt3u5w.91LDWd/
2、添加用户授权配置:
[root@www /]# vim /usr/local/httpd/conf/httpd.conf
<Directory "/usr/local/httpd/htdocs">
…… // 省略部分内容
Require all denied
authname "webserver" # 定义受保护的领域名称
authtype basic # 设置认证类型
authuserfile /usr/local/httpd/conf/.awspwd #设置用于保护用户账号、密码的认证文件路径
require valid-user # 要求只有认证文件中的合法用户才能访问(若只授权给单个用户,可改指定的用户名:如 webadmin)
</Directory>
[root@www /]# systemctl restart httpd # 重启服务使新配置生效
需要注意的是,用户访问授权与主机访问控制同时设置时,设置的主机访问控制优先生效。所以需要拒绝所有访问,才能使用授权的用户名来访问网站
标签:httpd,浅谈,访问控制,主机,Require,用户,访问,Apache,local 来源: https://blog.51cto.com/14227204/2424608
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。