3案例3:配置网页内容访问
3.1问题
本例要求在Web网站http://server0.example.com的DocumentRoot目录下创建一个名为private的子目录,要求如下:
- 从http://classroom/pub/materials/private.html下载一个文件副本到这个目录,重命名为index.html
- 不要对文件index.html的内容作任何修改
- 从server0上,任何人都可以浏览private的内容,但是从其他系统不能访问这个目录的内容
3.2方案
配置Web内容的访问控制需要添加Directory区段,主要形式可参考
<Directory "父目录路径">
Reauire all denied //上层目录拒绝任何访问
</Directory>
<Directory "子目录1路径">
Require all granted //子目录1允许任何访问
</Directory>
<Directory "子目录2路径">
Require ip IP或网段地址 .. .. //子目录2允许少数客户机
</Directory>
3.3步骤
实现此案例需要按照如下步骤进行。
步骤一:部署网页子目录及文档
1)建立子目录
[root@server0 ~]# mkdir /var/www/html/private
2)部署网页
[root@server0 ~]# cd /var/www/html/private
[root@server0 private]# wget -O index.html http://classroom/pub/materials/private.html
.. ..
2016-11-26 20:30:28 (1.90 MB/s) - ‘index.html’ saved [14/14]
[root@server0 private]# cat index.html //检查网页文件
Private Site.
步骤二:为指定的网页子目录限制访问
在httpd服务的标准配置中,根目录/默认拒绝任何访问,但网页目录/var/www/默认允许任何访问。因此,只需要为个别子目录增加访问控制即可。
1)调整虚拟站点server0.example.com的配置文件
[root@server0 ~]# vim /etc/httpd/conf.d/00-default.conf
.. ..
<Directory "/var/www/html/private">
Require ip 127.0.0.1 ::1 172.25.0.11
</Directory>
2)重启系统服务httpd
[root@server0 ~]# systemctl restart httpd
步骤三:测试目录访问限制
1)从desktop0上访问http://server0.example.com/private/被拒绝
[root@desktop0 ~]# elinks -dump http://server0.example.com/private/
Forbidden
You don't have permission to access /private/ on this server.
2)从desktop0上访问http://server0.example.com/仍然是正常的
[root@desktop0 ~]# elinks -dump http://server0.example.com/
Default Site.
3)从server0本机上访问http://server0.example.com/private/也不受限制
[root@server0 ~]# elinks -dump http://server0.example.com/private/
Private Site.