Web服务基础四之Apache访问控制

简介:

基于客户端地址的访问控制

通过对客户端IP地址的限制可以增强服务器的安全性,客户端IP地址限制只能针对服务器上的某个目录进行设置,大致格式如下:

1
2
3
4
5
317 <Directory  "/var/www/html" >
338     AllowOverride None
343     Order allow,deny
344     Allow from all
346 < /Directory >

<Directory "/var/www/html">...</Directory>表示对站点的主目录设置,“Order allow,deny”表示默认拒绝所有客户端访问,然后再配合使用“Allow from”语句指定允许访问的客户端。如果是要设置拒绝访问的客户端,那么就得反过来,先用“Order deny,allow”允许所有客户端访问,然后再配合使用“deny from”拒绝指定的客户端。设置允许访问的地址可以是多个,地址之间用空格间隔,如deny from 10.15.72.73 10.16.72.83

如不允许Client访问Apache Server:

Apache server ip:10.15.72.38   Client:10.15.72.73

当前访问Apache Server:

wKioL1Lcutbw4LB_AACJrQbTEFk033.jpg

修改Apache不允许访问:

1
2
3
4
5
6
7
8
9
10
11
[root@justin html] # vim /etc/httpd/conf/httpd.conf
  317 <Directory  "/var/www/html" >
  331     Options Indexes FollowSymLinks
  338     AllowOverride None
  343     Order deny,allow
  344     Deny from 10.15.72.73
  346 < /Directory >
[root@justin html] # service httpd restart
停止 httpd:                                               [确定]
正在启动 httpd:                                           [确定]
[root@justin html] #

wKioL1Lcu--AiXw1AAXfLwLAYuw603.jpg


Client无法访问Apache Server

对虚拟目录设置访问控制

如对bbs的虚拟目录/virdir设置,设置前:

wKiom1LcwgijAo88AACanhmxv6o403.jpg

1
2
3
4
5
6
7
8
9
10
11
12
[root@justin html] # vim /etc/httpd/conf/httpd.conf
1010 NameVirtualHost 10.15.72.38:80
1011 <VirtualHost 10.15.72.38:80>
1012     DocumentRoot  /var/www/html/bbs
1013     ServerName bbs.justin.com
1014     Alias  /virdir  "/home/www/virdir"
1015     <Directory  "/home/www/virdir" >
1016  #   order allow,deny
1017     order deny,allow
1018     deny from 10.15.72.73
1019     < /Directory >
1020 < /VirtualHost >

设置后:

wKioL1LcwiOQAGxeAAD0sdOFSZk497.jpg


基于用户的访问控制

在实际应用中,我们大都是希望通过对用户进行身份验证从而来进行访问控制,Apache支持的身份验证方法有基本认证(Basic)和摘要认证(Digest)两种,应用较多的同样是基本认证,以下介绍基本认证。

基于用户的访问控制也是只能针对服务器上的某个目录进行设置,设置内容必须包含在<Directory 目录> …… </Directory>的区域中。

如设置只允许justin1、justin2可以访问apache主目录,其他用户无法访问:

1、修改主配置文件中MAIN SERVER参数

1
2
3
4
5
6
7
8
9
10
317 <Directory  "/var/www/html" >
331     Options Indexes FollowSymLinks
338     AllowOverride None
343     Order allow,deny
344     allow from all
345     AuthName  "html"
346     AuthType Basic
347     AuthUserFile  /etc/httpd/conf/ .htpasswd
348     require valid-user
349 < /Directory >

   AuthName:定义受保护的领域名称,客户端访问时在弹出的认证登陆对话框中将显示该名称。

   AuthType:设置认证的类型,Basic为基本认证

   AuthUserFile:设置用于保存用户帐号、密码的认证文件路径。(文件可以自由定义,但通常都是保存于/etc/httpd/conf目录中,并采           用.htpasswd的文件名,文件名前面加.表示隐藏文件。)

    require valid-user:授权给认证文件中的所有有效用户。这一项也可以写成“require user [用户名]”,指定一个具体的用户,这样无论认证文件中如何定义,也只有该用户才可以访问。

2、添加认证用户

这个认证用户与系统用户没有任何关系,不需要先创建相应的系统用户,可以直接来添加认证用户。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@justin html] # htpasswd -cm /etc/httpd/conf/.htpasswd justin1
New password:
Re- type  new password:
Adding password  for  user justin1
[root@justin html] # htpasswd -m /etc/httpd/conf/.htpasswd justin2
New password:
Re- type  new password:
Adding password  for  user justin2
[root@justin html] # cat /etc/httpd/conf/.htpasswd
justin1:$apr1$Zii8HQ7.$0EBdyJmQixiLifXuRDk7O/
justin2:$apr1$uUzIxR4R$e8vtC61eUdURYOY3F6rlj.
[root@justin html] # service httpd restart
停止 httpd:                                               [确定]
正在启动 httpd:                                           [确定]
[root@justin html] #

-c:创建用户认证文件   -m:MD5加密 ;因为创建justin1时候已经生成了认证文件/.htpasswd,后面就不需要在加参数,只需要把用户写入认证文件即可。

3、访问Apache服务

wKioL1Lcy3rjOcQdAAGysccGoSA243.jpgwKiom1Lcy57jARqjAACFAdqAGn0209.jpg

上面定义的AuthName "html"就显示在上图中了

对虚拟目录设置访问控制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@justin html] # vim /etc/httpd/conf/httpd.conf
1013 NameVirtualHost 10.15.72.38:80
1014 <VirtualHost 10.15.72.38:80>
1015     DocumentRoot  /var/www/html/bbs
1016     ServerName bbs.justin.com
1017     Alias  /virdir  "/home/www/virdir"
1018     <Directory  "/home/www/virdir" >
1019     AuthName  "virdir"
1020     AuthType Basic
1021     AuthUserFile  /etc/httpd/conf/ .htpasswd
1022     require user justin2
1023     < /Directory >
1024 < /VirtualHost >
[root@justin html] # service httpd restart
停止 httpd:                                               [确定]
正在启动 httpd:                                           [确定]
[root@justin html] #

访问Apache服务,这时候输入http://10.15.72.38/virdir会弹出身份认证对话框,此时输入据说justin1是无法访问,输入justin2就可以正常访问




本文转自 justin_peng 51CTO博客,原文链接:http://blog.51cto.com/ityunwei2017/1353149,如需转载请自行联系原作者

相关文章
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
585 3
|
Linux 网络安全 Apache
CentOS 7.2配置Apache服务httpd(上)
CentOS 7.2配置Apache服务httpd(上)
970 1
|
存储 分布式计算 druid
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
334 3
|
Linux PHP Apache
CentOS 7.2配置Apache服务httpd(下)
CentOS 7.2配置Apache服务httpd(下)
297 1
|
缓存 前端开发 Java
打造未来兼容的Web应用:Apache Wicket引领响应式设计的热潮
【9月更文挑战第4天】在软件开发领域,构建响应式Web应用至关重要。Apache Wicket作为一个强大的Java框架,支持响应式设计,确保应用在不同设备上均有出色体验。本文通过示例代码介绍使用Wicket的最佳实践,涵盖页面与组件模型、CSS媒体查询及自定义标记处理器的应用。同时,文章强调了优化加载时间、增强交互性和提升可访问性的重要性,帮助开发者打造高性能且美观的Web应用。
264 3
|
Java API Apache
从零到英雄的蜕变:如何用Apache Wicket打造你的第一个Web应用——不仅是教程,更是编程之旅的启航
【9月更文挑战第4天】学习Apache Wicket这一开源Java Web应用框架是一段激动人心的旅程。本文将指导你通过Maven搭建环境,并创建首个“Hello, World!”应用。从配置`pom.xml`到实现`HelloWorldApplication`类,再到`web.xml`的设置,一步步教你构建与部署简单网页。适合初学者快速上手,体验其简洁API与强大组件化设计的魅力。
504 1
|
消息中间件 监控 Kafka
Apache Kafka 成为处理实时数据流的关键组件。Kafka Manager 提供了一个简洁的 Web 界面
随着大数据技术的发展,Apache Kafka 成为处理实时数据流的关键组件。Kafka Manager 提供了一个简洁的 Web 界面,方便管理和监控 Kafka 集群。本文详细介绍了 Kafka Manager 的部署步骤和基本使用方法,包括配置文件的修改、启动命令、API 示例代码等,帮助你快速上手并有效管理 Kafka 集群。
300 0
|
Java Spring Apache
Spring Boot邂逅Apache Wicket:一次意想不到的完美邂逅,竟让Web开发变得如此简单?
【8月更文挑战第31天】Apache Wicket与Spring Boot的集成提供了近乎无缝的开发体验。Wicket以其简洁的API和强大的组件化设计著称,而Spring Boot则以开箱即用的便捷性赢得开发者青睐。本文将指导你如何在Spring Boot项目中引入Wicket,通过简单的步骤完成集成配置。首先,创建一个新的Spring Boot项目并在`pom.xml`中添加Wicket相关依赖。
487 0
|
Apache 开发者 Java
Apache Wicket揭秘:如何巧妙利用模型与表单机制,实现Web应用高效开发?
【8月更文挑战第31天】本文深入探讨了Apache Wicket的模型与表单处理机制。Wicket作为一个组件化的Java Web框架,提供了多种模型实现,如CompoundPropertyModel等,充当组件与数据间的桥梁。文章通过示例介绍了模型创建及使用方法,并详细讲解了表单组件、提交处理及验证机制,帮助开发者更好地理解如何利用Wicket构建高效、易维护的Web应用程序。
379 0
|
Java 前端开发 Apache
Apache Wicket与Spring MVC等Java Web框架大PK,究竟谁才是你的最佳拍档?点击揭秘!
【8月更文挑战第31天】在Java Web开发领域,众多框架各具特色。Apache Wicket以组件化开发和易用性脱颖而出,提高了代码的可维护性和可读性。相比之下,Spring MVC拥有强大的生态系统,但学习曲线较陡;JSF与Java EE紧密集成,但在性能和灵活性上略逊一筹;Struts2虽成熟,但在RESTful API支持上不足。选择框架时还需考虑社区支持和文档完善程度。希望本文能帮助开发者找到最适合自己的框架。
304 0

热门文章

最新文章

推荐镜像

更多
下一篇
开通oss服务