学习 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来禁止显示文件列表。 要禁止Apache显示目录列表,你需要编辑Apache的主要配置文件,通常命名为`httpd.conf`或`apache2.conf`,具体位置取决于你的操作系统和安装方式。...
禁止Apache显示目录索引,禁止Apache显示目录结构列表,禁止Apache浏览目录,这是网上提问比较多的,其实都是一个意思。下面说下禁止禁止Apache显示目录索引的常见的3种方法。要实现禁止Apache显示目录索引,只需将 ...
5. **验证结果**:重启后,尝试访问之前能显示目录列表的URL地址,应该不会再出现目录列表,而是返回403错误或者自定义的提示信息。 ##### 方法二:通过.htaccess文件 1. **创建或编辑.htaccess文件**:如果你的...
总的来说,禁止Apache目录访问是一个基本但重要的安全措施。通过正确配置`Options`指令、`.htaccess`文件或`<Directory>`区块内的`Require`指令,我们可以确保用户只能访问我们允许他们看到的内容,从而保护我们的...
总结,要使Apache显示目录列表,主要涉及到修改Apache配置文件,启用`Indexes`选项,并根据需要调整其他配置。对于虚拟目录的访问,可以通过`Alias`和`<Directory>`指令来设定。同时,可以创建HTML页面进行重定向,...
默认情况下,Apache会显示目录中的文件列表,如果这个功能被滥用,可能导致信息泄露,甚至让攻击者找到可利用的漏洞。 **总结** 这个实验提供了实际操作的经验,让我们了解了如何通过修改Apache配置来提高Web...
- `Options Indexes FollowSymLinks MultiViews`:这表示当前目录将显示索引,允许符号链接,并启用多种视图。 同时,Apache还允许通过`.htaccess`文件进行更细粒度的权限控制。例如: - `AllowOverride None`:...
这样做的目的是移除`Indexes`选项,从而禁止Apache显示该目录的文件列表。 #### 性能优化 **Apache并发数调整:** - **MPM配置加载**:MPM(Multi-Processing Module)是指多处理模块,它定义了Apache如何处理请求...
我们需要禁止 Apache 列表显示文件,以避免明显信息泄露或下载。我们可以编辑 httpd.conf 配置文件,删除 Options Indexes FollowSymLinks 中的 Indexes 设置。 错误页面重定向是 Apache 服务器安全加固的第六步骤...
- 禁止显示目录列表,并启用 `.htaccess` 文件的重写规则,将 `Options` 和 `AllowOverride` 参数调整为 `-Indexes +FollowSymLinks All`。 3. 开启 Apache 的访问控制和重写模块: - 去掉 `LoadModule access_...
- **补充说明:** 设置默认页面以替代目录列表显示。 #### 七、总结 本文详细介绍了“基线检查3_网络设备_中间件”文档中关于Apache中间件的安全防护基线配置要求及其具体实现方法。通过遵循上述指导原则,不仅可以...
9. Options:控制特定目录可使用的服务器功能,如None、FollowSymLinks、ExecCGI、MultiViews、Indexes、Includes等。 10. Port:设置服务器监听的网络端口,默认为80。 11. ServerAdmin:设置服务器管理员的电子...
- `Options`: 控制目录允许的特性,如`FollowSymLinks`允许使用符号链接,`Indexes`显示目录索引,`AllowOverride`允许在`.htaccess`文件中使用哪些指令。 - `AllowOverride`: 可以设置为`None`、`All`或其他特定...
- `Options`:控制目录特性,如`FollowSymLinks`允许符号链接,`Indexes`允许显示目录索引,`AllowOverride`决定是否允许.htaccess文件中的指令覆盖配置。 3. **安全策略** - `AllowOverride`:决定哪些指令可以...
`Indexes` 表示当请求的文档不存在时,显示目录索引列表;`All` 则包含了多个选项的组合。 - `AllowOverride` 控制是否允许在目录内使用`.htaccess`文件来覆盖服务器级别的配置。 #### DirectoryIndex index.html `...
6. 设置索引选项:通过`Options -Indexes`,可以防止目录列表显示,增加网站安全性。 7. 自定义HTTP头:使用`Header`指令,可以添加、修改或删除发送给客户端的HTTP响应头。 8. 压缩和缓存控制:通过`.htaccess`...
4. `Options Indexes FollowSymLinks`允许列出目录内容并跟随符号链接。 5. `AllowOverride None`禁止.htaccess文件覆盖服务器设置。 6. `Order deny,allow`先拒绝后允许的访问控制顺序。 7. `Deny from all`拒绝...