如何在Apache上禁用目录浏览?

  • 发布时间:2022-02-02 13:03:59
  • 阅读次数:1246

Apache目录浏览,指的是在目录下没有index文件的情况下,Apache会默认显示目录下的全部文件列表。生产环境下,启用目录浏览并不值得推荐,因为这会导致网站信息泄露,增大网站受攻击的暴露面。这篇帮助讲解如何在Ubuntu 20.04云服务器中禁用Apache的目录浏览。

创建测试目录

远程登录到云服务器,在网站的根目录下创建一个测试目录。

$ sudo mkdir /var/www/html/test

在测试目录下再创建两个子目录,以及两个文件。

$ sudo mkdir /var/www/html/test/sub-directory_1
$ sudo mkdir /var/www/html/test/sub-directory_2
$ sudo touch /var/www/html/test/file1.txt
$ sudo touch /var/www/html/test/file2.txt

打开浏览器访问:http://www.example.com/test ,把example.com换成实际域名或IP地址。如果目录浏览处于启用状态,应该可以看到刚才创建的子目录和文件明。

禁用目录浏览

打开Apache配置文件,配置文件的路径根据实际情况修改。

$ sudo nano /etc/apache2/apache2.conf

找到以下代码。

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

把Options这行调整为如下代码。

<Directory /var/www/>
        Options -Indexes +FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

Indexes指令告诉Apache在没有index文件的情况下,显示目录下的全部文件列表。通过在Indexes指令前加上减号,也就禁用了Apache这个功能。、

保存配置文件后,重启Apache使之生效。

$ sudo systemctl restart apache2

再次打开浏览器访问:http://www.example.com/test ,这是会显示forbidden界面,说明目录浏览已禁用成功。禁用目录浏览是加固Web服务器非常重要的一步。

【全文完】

< 上一篇:如何在Ubuntu云服务器上安装Apache Tomcat? 下一篇:如何在Nginx上把HTTP请求重定向到HTTPS请求? >