使用 .htaccess 檔案禁用 Web 目錄列舉

Aaron Kili發表於2017-02-10

確保 Apache web 伺服器安全 是最重要的任務之一,特別是在你的網站剛剛搭建好的時侯。

比方說,如果你 Apache 服務目錄 (/var/www/tecmint 或 /var/www/html/tecmint) 下建立一個名為 tecmint 的目錄,並且忘記在該目錄放置 index.html,你會驚奇的發現所有訪問者都可以在瀏覽器輸入 http://www.example.com/tecmint 來完整列舉所有在該目錄中的重要檔案和資料夾。

本文將為你展示如何使用 .htaccess 檔案禁用或阻止 Apache 伺服器目錄列舉。

以下便是不存在 index.html ,且未採取防範措施前,目錄的列舉的情況。

[Apache 目錄列舉][4]

Apache 目錄列舉

首先,.htaccess  (hypertext access) 是一個檔案,它可以讓站點管理員控制伺服器的環境變數以及其他的重要選項,用以增強他/她的站點功能。

欲知更多關於該重要檔案的資訊,請閱讀以下文章,以便透過 .htaccess 的方法來確保 Apache Web 伺服器的安全。

  1. 確保 Apache Web 伺服器安全的 25 條 .htaccess 設定技巧
  2. 使用 .htaccess 為 Apache Web 目錄進行密碼保護

使用這一簡單方法,在站點目錄樹中的任意/每個目錄建立 .htaccess 檔案,以便為站點根目錄、子目錄和其中的檔案提供保護支援。

首先要 Apache 主配置檔案中為你的站點啟用 .htaccess 檔案支援。

$ sudo vi /etc/apache2/apache2.conf    #Debian/Ubuntu 系統
$ sudo vi /etc/httpd/conf/httpd.conf   #RHEL/CentOS 系統

然後尋找以下部分,其中 AllowOverride 指令必須設定為 AllowOverride All

<Directory /var/www/html/>
Options Indexes FollowSymLinks
AllowOverride All
</Directory>

如果已存在 .htaccess 檔案,先備份(如下),假設檔案在 /var/www/html/tecmint/ (並要禁用該目錄列舉):

$ sudo cp /var/www/html/tecmint/.htaccess /var/www/html/tecmint/.htaccess.orig  

然後你就可以在某個特定的目錄使用你喜歡的編輯器開啟 (或建立) 它,以便修改。並新增以下內容來關閉目錄列舉。

Options -Indexes 

下一步就是重啟 Apache Web 伺服器:

-------- 使用 SystemD 的系統 -------- 
$ sudo systemctl restart apache2
$ sudo systemctl restart httpd
-------- 使用 SysVInit 的系統 -------- 
$ sudo /etc/init.d/apache2 restart 
$ sudo /etc/init.d/httpd restart

現在來驗證效果,在瀏覽器中輸入:http://www.example.com/tecmint,你會得到類似如下的資訊:

[Apache 目錄列舉已禁用][5]

Apache 目錄列舉已禁用

在本文中,我們描述瞭如何使用 .htaccess 檔案來禁用 Apache Web 伺服器的目錄列舉。之後我們會介紹兩種同樣簡單的我方法來實現這一相同目的。隨時保持聯絡。

像往常一樣,在下方反饋表單中給我們傳送關於本文的任何想法。


 

作者簡介:

Aaron Kili 是一名 Linux 和 F.O.S.S 忠實擁護者、未來的 Linux 系統管理員、Web 開發者,目前是 TecMint 的原創作者,熱衷於計算機並樂於知識分享。


譯者簡介:

GHLandy - 生活中所有歡樂與苦悶都應藏在心中,有些事兒註定無人知曉,自己也無從說起。


via: http://www.tecmint.com/disable-apache-directory-listing-htaccess/

作者:[Aaron Kili][a] 譯者:GHLandy 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

相關文章