使用.htaccess文件禁用Web目錄列舉
確保 Apache web 服務(wù)器安全 是最重要的任務(wù)之一,特別是在你的網(wǎng)站剛剛搭建好的時(shí)侯。
比方說,如果你 Apache 服務(wù)目錄 (/var/www/tecmint 或 /var/www/html/tecmint) 下創(chuàng)建一個(gè)名為 tecmint 的目錄,并且忘記在該目錄放置 index.html,你會(huì)驚奇的發(fā)現(xiàn)所有訪問者都可以在瀏覽器輸入 http://www.example.com/tecmint 來完整列舉所有在該目錄中的重要文件和文件夾。
本文將為你展示如何使用 .htaccess 文件禁用或阻止 Apache 服務(wù)器目錄列舉。
以下便是不存在 index.html ,且未采取防范措施前,目錄的列舉的情況。
[
][4]
Apache 目錄列舉
首先,.htaccess (hypertext access) 是一個(gè)文件,它可以讓站點(diǎn)管理員控制服務(wù)器的環(huán)境變量以及其他的重要選項(xiàng),用以增強(qiáng)他/她的站點(diǎn)功能。
欲知更多關(guān)于該重要文件的信息,請閱讀以下文章,以便通過 .htaccess 的方法來確保 Apache Web 服務(wù)器的安全。
- 確保 Apache Web 服務(wù)器安全的 25 條 .htaccess 設(shè)置技巧
- 使用 .htaccess 為 Apache Web 目錄進(jìn)行密碼保護(hù)
使用這一簡單方法,在站點(diǎn)目錄樹中的任意/每個(gè)目錄創(chuàng)建 .htaccess 文件,以便為站點(diǎn)根目錄、子目錄和其中的文件提供保護(hù)支持。
首先要 Apache 主配置文件中為你的站點(diǎn)啟用 .htaccess 文件支持。
- $ sudo vi /etc/apache2/apache2.conf #Debian/Ubuntu 系統(tǒng)
- $ sudo vi /etc/httpd/conf/httpd.conf #RHEL/CentOS 系統(tǒng)
然后尋找以下部分,其中 AllowOverride 指令必須設(shè)置為 AllowOverride All。
- <Directory /var/www/html/>
- Options Indexes FollowSymLinks
- AllowOverride All
- </Directory>
如果已存在 .htaccess 文件,先備份(如下),假設(shè)文件在 /var/www/html/tecmint/ (并要禁用該目錄列舉):
- $ sudo cp /var/www/html/tecmint/.htaccess /var/www/html/tecmint/.htaccess.orig
然后你就可以在某個(gè)特定的目錄使用你喜歡的編輯器打開 (或創(chuàng)建) 它,以便修改。并添加以下內(nèi)容來關(guān)閉目錄列舉。
- Options -Indexes
下一步就是重啟 Apache Web 服務(wù)器:
- -------- 使用 SystemD 的系統(tǒng) --------
- $ sudo systemctl restart apache2
- $ sudo systemctl restart httpd
- -------- 使用 SysVInit 的系統(tǒng) --------
- $ sudo /etc/init.d/apache2 restart
- $ sudo /etc/init.d/httpd restart
現(xiàn)在來驗(yàn)證效果,在瀏覽器中輸入:http://www.example.com/tecmint,你會(huì)得到類似如下的信息:
[
][5]
Apache 目錄列舉已禁用
在本文中,我們描述了如何使用 .htaccess 文件來禁用 Apache Web 服務(wù)器的目錄列舉。之后我們會(huì)介紹兩種同樣簡單的我方法來實(shí)現(xiàn)這一相同目的。隨時(shí)保持聯(lián)系。
像往常一樣,在下方反饋表單中給我們發(fā)送關(guān)于本文的任何想法。
作者簡介:
Aaron Kili 是一名 Linux 和 F.O.S.S 忠實(shí)擁護(hù)者、未來的 Linux 系統(tǒng)管理員、Web 開發(fā)者,目前是 TecMint 的原創(chuàng)作者,熱衷于計(jì)算機(jī)并樂于知識(shí)分享。
譯者簡介:
GHLandy - 生活中所有歡樂與苦悶都應(yīng)藏在心中,有些事兒注定無人知曉,自己也無從說起。