`
zhanshenny
  • 浏览: 264900 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

禁止显示Apache目录列表-Indexes FollowSymLinks

 
阅读更多

学习 Apache 的一些心得体会[转]

Apache 将目录作为单元来进行存取控制,每个目录在/etc/httpd/conf/httpd.conf 中

  使用一个段落,首先的是/目录,这实际是设置缺省值:

  Options FollowSymLinks 
  AllowOverride None

  每个段落都是由这样的两组尖括号构成的行夹起来的,其中最主要的句子是Options,AllowOverride,Allow/Deny,Order 等。

  Options这个子句用来说明一些主要的设置,目前可以使用的设置有Indexes,Includes,FollowSymLinks,ExecCGI,MultiView,当然还有两个最简单的选择就是None和All。

  None是禁止所有选择,而All 允许上面的所有Options。一般我们主要关心的是Indexes 和FollowSymLinks。Indexes 是设定是否允许在目录下面没有index.html 的时候显示目录,而FollowSymLinks 决定是否可以通过符号连接跨越DocumentRoot。例如,尽管/ftp 不在/home/httpd/html 下面,但是我们仍然可以使用符号连接建立一个/home/httpd/html/ftp使得可以直接输入http://mydomain.com/ftp 来访问这个目录。

  使用FollowSymLinks 的办法很简单,就是首先在合适的目录段落里面Options Follow SymLinks,(符号连接的上层就可以)然后建立一个别名:

  Alias /ftp/ “home/httpd/html/ftp/”

  后面的是你建立的到/ftp 的符号连接。注意这一行应该位于所有目录段落之外。

  AllowOverride

  AllowOverride 定义是否允许各个目录用目录中的.htaccess(后面解释)覆盖这里设定的Options。它的选择有Options,FileInfo,AuthConfig,Limit 或者它们的组合,当然还有None 和All。

  由于/是缺省设置,所以这里没有设置太多的内容,相反,我们应该在/之后独立设置各个目录的控制,例如:

  Options Indexes FollowSymLinks 
  AllowOverride None 
  Order allow,deny 
  Allow from all

  出现了两个新的选项:Order 和Allow。

  Order

  它有两种用法,即Order allow,deny 或者Order deny,allow。简单地说,它用来设置是先执行deny 还是先执行allow,例如,Order deny,allow 意味着先看deny 行,再看allow 行,这样如果deny from all 再allow from 202.112.58.0/24 后来的allow子句就会超越deny 而对202.112.58.x 打开访问。

  Allow/Deny from

  这两个选项和Order 一起使用,Allow 允许某个地址来的连接请求,Deny 则禁止这个请求,例如在Order deny,allow 的情况下,Deny from all,Allow from 192.168.12.0/24 表示只有192.168.12.x 的用户可以访问这个目录。

  现在我们来看看下面的一个设定:

  UserDir public_html 
  AllowOverride FileInfo AuthConfig Limit 
  Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec 
  Order allow,deny 
  Allow from all 
  Order deny,allow 
  Deny from all

  这个有什么用处?UserDir 是一个特殊的选项,用来在用户的宿主目录下设置主页,比如,有一个名字叫wanghy 的用户,其宿主目录是/home/wanghy,而且UserDir 象我们刚才那样设定,那么,你可以在浏览器中输入http://www.mydomain.com/~wanghy,它将对应的是宿主目录+UserDir,也就是/home/wanghy/public_html。当然,为了使这个功能生效,你得将这个目录设置为大家都可以读。(现在知道http://xxx.net/~yourname 是怎么回事了吧,P)

  下面的行就是对这个功能的限制,注意要使得某人的这个功能生效,必须有这个段落,这个段落里别的东西都是熟知的,唯一新的东西是Limit 段,它用来提供存取限制,例如对应的段落设置GET 和POST 权限,诸如此类。上面的段落表示所有人都可以通过www 进行GET 和POST,而任何人都不能PUT 和DELETE、MOVE 等等。

  Limit

  对某个路径进行存取限制。

  现在我们来看看下面的一个设定:

  UserDir public_html 
  AllowOverride FileInfo AuthConfig Limit 
  Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec 
  Order allow,deny 
  Allow from all 
  Order deny,allow 
  Deny from all

  这个有什么用处?UserDir 是一个特殊的选项,用来在用户的宿主目录下设置主页,比如,有一个名字叫wanghy 的用户,其宿主目录是/home/wanghy,而且UserDir 象我们刚才那样设定,那么,你可以在浏览器中输入http://www.mydomain.com/~wanghy,它将对应的是宿主目录+UserDir,也就是/home/wanghy/public_html。当然,为了使这个功能生效,你得将这个目录设置为大家都可以读。(现在知道http://xxx.net/~yourname 是怎么回事了吧,P)

  下面的行就是对这个功能的限制,注意要使得某人的这个功能生效,必须有这个段落,这个段落里别的东西都是熟知的,唯一新的东西是Limit 段,它用来提供存取限制,例如对应的段落设置GET 和POST 权限,诸如此类。上面的段落表示所有人都可以通过www 进行GET 和POST,而任何人都不能PUT 和DELETE、MOVE 等等。

  Limit

  对某个路径进行存取限制。

  实际配置如下:

  mkdir /home/rd2/leon 
  chmod 755 /home/rd2 
  chmod 755 /home/rd2/leon 
  cp index.html /home/rd2/leon

  然后就可以在浏览器中输入http://10.12.2.82/~rd2,它将对应的是/宿主目录/UserDir(我们设置位leon),也就是显示/home/wanghy/leon下的index.html。

  <IfModule mod_userdir.c> 
  # 
  # UserDir is disabled by default since it can confirm the presence 
  # of a username on the system (depending on home directory 
  # permissions). 
  # 
  #UserDir disable 注释掉 
  # 
  # To enable requests to /~user/ to serve the user's public_html 
  # directory, remove the "UserDir disable" line above, and uncomment 
  # the following line instead: 
  # 
  UserDir leon 改为自己喜欢的 
  # UserDir public_html 注视掉原句 
  </IfModule> 
  # 
  # Control access to UserDir directories. The following is an example 
  # for a site where these directories are restricted to read-only. 
  # 
  <Directory /home/*/leon> 改为自己喜欢的 
  AllowOverride FileInfo AuthConfig Limit 
  Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec 
  <Limit GET POST OPTIONS> 
  Order allow,deny 
  Allow from all 
  </Limit> 
  <LimitExcept GET POST OPTIONS> 
  Order deny,allow 
  Deny from all 
  </LimitExcept> 
  </Directory>

  FollowSymLinks决定是否可以通过符号连接跨越DocumentRoot。例如,尽管/home不在/var/www/html下面,但是我们仍然可以使用符号连接也就是说可以直接输入http://mydomain.com/myhome来访问这个目录。

  使用FollowSymLinks的办法很简单,就是目录段落里面Options Follow SymLinks,然后建立一个别名:

  Alias /myhome “/home” 
  Alias /myhome "/home"(不能是/myhome/) 
  <Directory "/home"> 
  Options Indexes FollowSymLinks MultiViews 
  AllowOverride None 
  Order allow,deny 
  Allow from all 
  </Directory>

  虚拟主机:

  NameVirtualHost 10.12.2.82 
  <VirtualHost 10.12.2.84> 需要复制一个eth0:0 #访问时候用:10.12.2.84,不可用leon1.abit.cn??????? 
  DocumentRoot /home/leon 
  ServerName leon1.abit.cn 
  </VirtualHost> 
  <VirtualHost 10.12.2.82>访问时候用:leon(leon1).abit.cn 
  DocumentRoot /var/www/html 
  ServerName leon.abit.cn 
  </VirtualHost> 
  <VirtualHost 10.12.2.82> 
  DocumentRoot /home 
  ServerName leon2.abit.cn 
  </VirtualHost> 

分享到:
评论

相关推荐

    配置Apache禁止显示文件列表.docx

    因此,对于安全性的考虑,我们需要配置Apache来禁止显示文件列表。 要禁止Apache显示目录列表,你需要编辑Apache的主要配置文件,通常命名为`httpd.conf`或`apache2.conf`,具体位置取决于你的操作系统和安装方式。...

    禁止apache显示目录索引的常见方法(apache禁止列目录)

    禁止Apache显示目录索引,禁止Apache显示目录结构列表,禁止Apache浏览目录,这是网上提问比较多的,其实都是一个意思。下面说下禁止禁止Apache显示目录索引的常见的3种方法。要实现禁止Apache显示目录索引,只需将 ...

    关闭Apache的目录浏览功能

    5. **验证结果**:重启后,尝试访问之前能显示目录列表的URL地址,应该不会再出现目录列表,而是返回403错误或者自定义的提示信息。 ##### 方法二:通过.htaccess文件 1. **创建或编辑.htaccess文件**:如果你的...

    Apache设置目录禁止访问

    总的来说,禁止Apache目录访问是一个基本但重要的安全措施。通过正确配置`Options`指令、`.htaccess`文件或`&lt;Directory&gt;`区块内的`Require`指令,我们可以确保用户只能访问我们允许他们看到的内容,从而保护我们的...

    让apache显示目录列表的配置方法

    总结,要使Apache显示目录列表,主要涉及到修改Apache配置文件,启用`Indexes`选项,并根据需要调整其他配置。对于虚拟目录的访问,可以通过`Alias`和`&lt;Directory&gt;`指令来设定。同时,可以创建HTML页面进行重定向,...

    Web应用安全:Apache禁止目录列出配置实验.doc

    默认情况下,Apache会显示目录中的文件列表,如果这个功能被滥用,可能导致信息泄露,甚至让攻击者找到可利用的漏洞。 **总结** 这个实验提供了实际操作的经验,让我们了解了如何通过修改Apache配置来提高Web...

    apache常用配置

    - `Options Indexes FollowSymLinks MultiViews`:这表示当前目录将显示索引,允许符号链接,并启用多种视图。 同时,Apache还允许通过`.htaccess`文件进行更细粒度的权限控制。例如: - `AllowOverride None`:...

    Apache2.2安全配置和性能优化

    这样做的目的是移除`Indexes`选项,从而禁止Apache显示该目录的文件列表。 #### 性能优化 **Apache并发数调整:** - **MPM配置加载**:MPM(Multi-Processing Module)是指多处理模块,它定义了Apache如何处理请求...

    018-web应用服务器安全加固1

    我们需要禁止 Apache 列表显示文件,以避免明显信息泄露或下载。我们可以编辑 httpd.conf 配置文件,删除 Options Indexes FollowSymLinks 中的 Indexes 设置。 错误页面重定向是 Apache 服务器安全加固的第六步骤...

    环境搭建Apache 2.4 + PHP 7.3 + MYSQL 8 .docx

    - 禁止显示目录列表,并启用 `.htaccess` 文件的重写规则,将 `Options` 和 `AllowOverride` 参数调整为 `-Indexes +FollowSymLinks All`。 3. 开启 Apache 的访问控制和重写模块: - 去掉 `LoadModule access_...

    基线检查3_网络设备_中间件.docx

    - **补充说明:** 设置默认页面以替代目录列表显示。 #### 七、总结 本文详细介绍了“基线检查3_网络设备_中间件”文档中关于Apache中间件的安全防护基线配置要求及其具体实现方法。通过遵循上述指导原则,不仅可以...

    Apache服务器指令大全

    9. Options:控制特定目录可使用的服务器功能,如None、FollowSymLinks、ExecCGI、MultiViews、Indexes、Includes等。 10. Port:设置服务器监听的网络端口,默认为80。 11. ServerAdmin:设置服务器管理员的电子...

    Apache配置详解[参考].pdf

    - `Options`: 控制目录允许的特性,如`FollowSymLinks`允许使用符号链接,`Indexes`显示目录索引,`AllowOverride`允许在`.htaccess`文件中使用哪些指令。 - `AllowOverride`: 可以设置为`None`、`All`或其他特定...

    Apache详细配置

    - `Options`:控制目录特性,如`FollowSymLinks`允许符号链接,`Indexes`允许显示目录索引,`AllowOverride`决定是否允许.htaccess文件中的指令覆盖配置。 3. **安全策略** - `AllowOverride`:决定哪些指令可以...

    Apache的httpd.conf文件常用指令解释

    `Indexes` 表示当请求的文档不存在时,显示目录索引列表;`All` 则包含了多个选项的组合。 - `AllowOverride` 控制是否允许在目录内使用`.htaccess`文件来覆盖服务器级别的配置。 #### DirectoryIndex index.html `...

    apache开启.htaccess及.htaccess的使用方法

    6. 设置索引选项:通过`Options -Indexes`,可以防止目录列表显示,增加网站安全性。 7. 自定义HTTP头:使用`Header`指令,可以添加、修改或删除发送给客户端的HTTP响应头。 8. 压缩和缓存控制:通过`.htaccess`...

    linux基础试题库

    4. `Options Indexes FollowSymLinks`允许列出目录内容并跟随符号链接。 5. `AllowOverride None`禁止.htaccess文件覆盖服务器设置。 6. `Order deny,allow`先拒绝后允许的访问控制顺序。 7. `Deny from all`拒绝...

Global site tag (gtag.js) - Google Analytics