Apache httpd 目录列表禁用配置(options indexes)

Apache httpd服务器在缺省的情况下,开启了基于目录列表的访问,这是一个存在安全隐患的问题,因此可以关闭这个功能。在Apache 2.4的版本中,不在支持使用-indexes来配置,需要注释该功能。本文对此给出演示,供大家参考。

一、缺省情况目录列表可查看示例

当前环境
[root@centos7-web ~]# more /etc/redhat-release
CentOS Linux release 7.2.1511 (Core) 

[root@centos7-web ~]# apachectl -v
Server version: Apache/2.4.6 (CentOS)
Server built:  Nov 19 2015 21:43:13

为站点添加index.html页面
# echo "This is a apache test index page" > /var/www/html/index.html
[root@centos7-web ~]# curl http://localhost
This is a apache test index page

移除index.html
[root@centos7-web ~]# mv /var/www/html/index.html /var/www/html/index.tmp

依旧可以访问,不过此时为apache的缺省欢迎页面

移除apache欢迎页面
[root@centos7-web ~]# mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.bk
[root@centos7-web ~]# cp /usr/share/backgrounds/* /var/www/html/.

[root@centos7-web ~]# grep -Ev "^$|^#|*#" /etc/httpd/conf/httpd.conf >/etc/httpd/conf/httpd.conf.tmp
[root@centos7-web ~]# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.1106
[root@centos7-web ~]# mv /etc/httpd/conf/httpd.conf.tmp /etc/httpd/conf/httpd.conf
mv: overwrite ‘/etc/httpd/conf/httpd.conf’? yes

二、关闭options 中Indexes(关闭文件列表)

[root@centos7-web ~]# vim /etc/httpd/conf/httpd.conf
 [root@centos7-web ~]# grep "Indexes" -B1 -A3 /etc/httpd/conf/httpd.conf   查看修改后的结果
<Directory "/var/www/html">
#  Options Indexes FollowSymLinks   ##注释该行
    AllowOverride None
    Require all granted
</Directory>

[root@centos7-web ~]# systemctl reload httpd
[root@centos7-web ~]# curl http://localhost
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /
on this server.</p>
</body></html>

三、关闭FollowSymLinks(关闭访问符号链接文件)

[root@centos7-web ~]# ln -sv /etc/redhat-release /var/www/html/redhat-release.html
‘/var/www/html/redhat-release.html’ -> ‘/etc/redhat-release’
[root@centos7-web ~]# ls -hltr /var/www/html/redhat-release.html
lrwxrwxrwx 1 root root 19 Sep 21 16:15 /var/www/html/redhat-release.html -> /etc/redhat-release

[root@centos7-web ~]# curl http://localhost/redhat-release.html
CentOS Linux release 7.2.1511 (Core) 

[root@centos7-web ~]# vim /etc/httpd/conf/httpd.conf
Options None   ##改成Options None
[root@centos7-web ~]# systemctl reload httpd 

[root@centos7-web ~]# curl http://localhost/redhat-release.html
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>   ##Author : Leshami
<h1>Forbidden</h1> ## Blog : http://blog.csdn.net/leshami
<p>You don't have permission to access /redhat-release.html
on this server.</p>
</body></html>
时间: 2024-09-15 04:06:59

Apache httpd 目录列表禁用配置(options indexes)的相关文章

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

1.apache中显示目录列表 在http.conf中加入如下代码(如有虚拟主机配置,加在虚拟主机配置段内),并把主目录内的index.pho,index.html,index.htm文件删除 复制代码 代码如下: Alias /download "/download"  <Directory "/download">    Options Indexes    Order allow,deny    IndexOptions Charset=UTF-8

apache开启目录浏览功能的配置

apache开启目录浏览功能 主配置文件 httpd.conf 中修改: 1)添加支持模块. LoadModule autoindex_module modules/mod_autoindex.so LoadModule dir_module modules/mod_dir.so 注意一定要拥有这两个模块,否则下面的配置不生效,返回404 Not Found错误. 这个模块也有可能直接编译到Apache核心文件httpd中去了. 2)为DocumentRoot目录添加Options Indexe

详解Apache下.htaccess文件常用配置

.htaccess文件是Apache服务器中最常用的一个配置文件,它负责相关目录下的网页配置.通过htaccess文件,可以帮我们实现:网页301重定向.自定义404错误页面.改变文件扩展名.允许/阻止特定的用户或者目录的访问.禁止目录列表.配置索引入口等功能. 另外,.htaccess手动编辑方法是使用UE或notepad2等高级文本编辑器.如果不方便下载或手动编写的文件出错,也非常推荐在线htaccess文本编辑器,目前这款编辑器已经非常完善,并且在二次开发下已经增加了很多新功能,简单易用,

windows服务器apache禁止目录浏览

我先是在网上搜索apache禁止目录浏览然后找到了下面方法 httpd.conf option选项 把Options Indexes FollowSymLinks 修改成 Options FollowSymLinks 就可以了,但我发现在apache httpd.conf配置文件中并没有搜索到Options Indexes FollowSymLinks 所以我换成了搜索Options FollowSymLinks 找到了,按上面说应该是不会列出目录浏览了呀,但我访问还是列出来了 于是我仔细看它的

apache中修改根目录/禁止目录列表/配置虚拟主机

要禁止 Apache 显示目录结构列表,只需将 Option 中的 Indexes 去掉即可. 比如我们看看一个目录的目录配置:  代码如下 复制代码 <Directory "D:/Apa/blabla">     Options Indexes FollowSymLinks    AllowOverride None    Order allow,deny    Allow from all</Directory> 你只需要将上面红色代码中的 Indexes

Linux下配置Apache httpd

httpd是Apache超文本传输协议(HTTP)服务器的主程序.它被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池对外提供服务.httpd支持基于 虚拟主机,以及基于HOST.IP.PORT实现虚拟主机,反向代理,负载均衡,路径别名,用户认证,basic,支持第三方模块等众多特性.本文主要描述了Linux下httpd(2.2版本)的相关基本配置. 1.配置文件概述 配置文件,主要分为3个部分: # grep "Section" /etc/httpd/conf/h

配置Apache禁止显示文件列表

 当你在浏览器输入地址: http://localhost:8080/ 如果你的文件根目录里有 index.html,浏览器就会显示 index.html的内容,如果没有 index.html,Apache将在浏览器显示文件根目录的目录列表,目录列表包括文件根目录下的文件和子目录.给网站造成安全风险. 同样当你输入一个虚拟目录的地址: http://localhost:8080/My/ 如果该虚拟目录下没有 index.html,浏览器也会显示该虚拟目录的目录结构,列出该虚拟目录下的文件和子目录

centos7 apache httpd安装和配置django项目

一.安装httpd服务 apache在centos7中是Apache HTTP server.如下对httpd的解释就是Apache HTTP Server.所以想安装apache其实是要安装httpd. httpd.x86_64 : Apache HTTP Server 安装: # yum install httpd 设置httpd服务开机启动 [root@yl-web httpd]# /sbin/chkconfig httpd on Note: Forwarding request to '

Apache httpd 2.4 alias 别名配置

Web网站别名配置是被经常使用的一个特性.这个功能实际上是为站点URI定义一个路径映射关系,其配置和使用也较为简单.以下是基于CentOS 7下实现alias的别名配置,供大家参考. 配置示例 [root@centos7-web ~]# more /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [root@centos7-web ~]# httpd -v Server version: Apache/2.4.6 (CentOS)