• 10.6 Apache的访问控制
    • 为您推荐一些与本文相关的文章:

    10.6 Apache的访问控制

    Apache可以基于源主机名、源IP地址或源主机上的浏览器特征等信息对网站上的资源进行访问控制。它通过Allow指令允许某个主机访问服务器上的网站资源,通过Deny指令实现禁止访问。在允许或禁止访问网站资源时,还会用到Order指令,这个指令用来定义Allow或Deny指令起作用的顺序,其匹配原则是按照顺序进行匹配,若匹配成功则执行后面的默认指令。比如“Order Allow, Deny”表示先将源主机与允许规则进行匹配,若匹配成功则允许访问请求,反之则拒绝访问请求。

    第1步:先在服务器上的网站数据目录中新建一个子目录,并在这个子目录中创建一个包含Successful单词的首页文件。

    1. [root@linuxprobe ~]# mkdir /var/www/html/server
    2. [root@linuxprobe ~]# echo "Successful" > /var/www/html/server/index.html

    第2步:打开httpd服务的配置文件,在第129行后面添加下述规则来限制源主机的访问。这段规则的含义是允许使用Firefox浏览器的主机访问服务器上的首页文件,除此之外的所有请求都将被拒绝。使用Firefox浏览器的访问效果如图10-18所示。

    1. [root@linuxprobe ~]# vim /etc/httpd/conf/httpd.conf
    2. ………………省略部分输出信息………………
    3. 129 <Directory "/var/www/html/server">
    4. 130 SetEnvIf User-Agent "Firefox" ff=1
    5. 131 Order allow,deny
    6. 132 Allow from env=ff
    7. 133 </Directory>
    8. ………………省略部分输出信息………………
    9. [root@linuxprobe ~]# systemctl restart httpd
    10. [root@linuxprobe ~]# firefox

    访问成功

    图10-18 火狐浏览器成功访问

    除了匹配源主机的浏览器特征之外,还可以通过匹配源主机的IP地址进行访问控制。例如,我们只允许IP地址为192.168.10.20的主机访问网站资源,那么就可以在httpd服务配置文件的第129行后面添加下述规则。这样在重启httpd服务程序后再用本机(即服务器,其IP地址为192.168.10.10)来访问网站的首页面时就会提示访问被拒绝了,如图10-19所示。

    1. [root@linuxprobe ~]# vim /etc/httpd/conf/httpd.conf
    2. ………………省略部分输出信息………………
    3. 129 <Directory "/var/www/html/server">
    4. 130 Order allow,deny
    5. 131 Allow from 192.168.10.20
    6. 132 </Directory>
    7. ………………省略部分输出信息………………
    8. [root@linuxprobe ~]# systemctl restart httpd
    9. [root@linuxprobe ~]# firefox

    访问失败图10-19 因IP地址不符合要求而被拒绝访问

    出现问题?大胆提问!

    因读者们硬件不同或操作错误都可能导致实验配置出错,请耐心再仔细看看操作步骤吧,不要气馁~

    Linux技术交流请加A群:560843(),B群:340829(推荐),C群:463590(推荐),点此查看全国群。

    *本群特色:通过口令验证确保每一个群员都是《Linux就该这么学》的读者,答疑更有针对性,不定期免费领取定制礼品。

    本章节的复习作业(答案就在问题的下一行哦,用鼠标选中即可看到的~)

    1.什么是Web网络服务?

    答:一种允许用户通过浏览器访问到互联网中各种资源的服务。

    2.相较于Nginx服务程序,Apache服务程序最大的优势是什么?

    答:Apache服务程序具备跨平台特性、安全性,而且拥有快速、可靠、简单的API扩展。

    3.httpd服务程序没有检查到首页文件,会提示报错信息吗?

    答:不会,httpd服务在未找到网站首页文件时,会向访客显示一个默认页面。

    4.简述Apache服务主配置文件中全局配置参数、区域配置参数和注释信息的作用。

    答:全局配置参数是一种全局性的配置参数,可作用于对所有的子站点;区域配置参数则是单独针对于每个独立的子站点进行设置的;而注释信息一般是对服务程序的功能或某一行参数进行介绍。

    5.简述SELinux服务的作用。

    答:为了让各个服务进程都受到约束,使其仅获取到本应获取的资源。

    6.在使用getenforce命令查看SELinux服务模式时,发现其配置模式为permissive,这代表强制开启模式吗?

    答:不是,强制开启模式是enforcing,而permissive是只发出警告而不强制拦截的模式。

    7.在使用semanage命令修改了文件上应用的SELinux安全上下文后,还需要执行什么命令才可以让更改立即生效?

    答:还需要restorecon命令即可让新的SELinux安全上下文参数立即生效。

    8.要想查询并过滤出所有与HTTP协议相关的SELinux域策略有哪些,应该怎么做呢?

    答:可以结合管道符来实现,即执行getsebool -a | grep http命令。

    9. Apache服务程序可以基于哪些资源来创建虚拟主机网站呢?

    答:可以基于IP地址、主机名(域名)或者端口号创建虚拟主机网站。

    10.相对于基于IP地址和基于主机名(域名)配置的虚拟主机网站来说,使用端口号配置虚拟主机网站有哪些特点?

    答:在使用端口号来配置虚拟主机网站时,必须要考虑到SELinux域对httpd服务程序所用端口号的控制策略,还要在httpd服务程序的主配置文件中使用Listen参数来开启要监听的端口号。

    本文原创地址:https://www.linuxprobe.com/chapter-10.html   编辑:刘遄,审核员:暂无

    为您推荐一些与本文相关的文章:

    • 干货!Oracle解密“零丢失”的数据保护
    • Ubuntu环境下检查CPU 的温度
    • Wine-Staging 4.9 发布,增添一些新补丁
    • 运维监控工具zabbix概述
    • 华为引领数字技术服务于人更加完善,正式发布数字包容倡议
    • 【技术快报】10.10–10.17
    • 设置nginx+php上传大文件教程
    • Linux下高效指令
    • Google Chrome 72带来的黑暗主题简直酷毙了
    • 《VMware网络技术原理与实践》pdf电子书免费下载

    转载必需保留本文链接:https://www.linuxprobe.com/chapter-10.html

    本文依据CC-BY-NC-SA 3.0协议发布,竭诚为读者提供Linux视频教程、Linux学习资料以及红帽考试资料等优质学习资源。