Apache設定禁止訪問檔案/目錄/IP
阿新 • • 發佈:2022-12-09
起因
系統漏洞掃描,讀到了系統配置檔案中的加密密碼,加密演算法比較簡單,被解密了出來。
本文將詳細介紹如何操作禁止直接訪問apache網站檔案或目錄。
我的apache2配置檔案目錄:/etc/apache2,
approot@ubu-xxxx:/usr/local$ cd /etc/apache2/ approot@ubu-xxxx:/etc/apache2$ ls apache2.conf conf-available conf-enabled mods-available mods-enabled sites-available sites-enabled
進入apache的配置檔案 apache2.conf :
將Directory標籤中的
Options Indexes FollowSymLinks
修改為:
Options FollowSymLinks
<Directory /var/www/> Options FollowSymLinks AllowOverride None Require all granted </Directory>
其實就是將Indexes去掉,Indexes表示若當前目錄沒有index.html就會顯示目錄結構。去掉後,重啟apache伺服器
sudo systemctl restart apache2
下面就不同的禁止型別分別給出說明。
1. 禁止訪問某些檔案/目錄
增加Files選項來控制,比如要不允許訪問 .inc 副檔名的檔案,保護php類庫:
<Files ~ "\.inc$"> Order allow,deny Deny from all </Files>
禁止訪問某些指定的目錄:(可以用 <DirectoryMatch> 來進行正則匹配)
<Directory ~ "^/var/www/(.+/)*[0-9]{3}"> Order allow,deny Deny from all </Directory>
針對URL相對路徑的禁止訪問:
<Location /dir/> Order allow,deny Deny from all </Location>
通過檔案匹配來進行禁止,比如禁止所有針對圖片的訪問:
<FilesMatch \.(?i:gif|jpe?g|png)$>
Order allow,deny
Deny from all
</FilesMatch>
針對代理方式禁止對某些目標的訪問(<ProxyMatch> 可以用來正則匹配),比如拒絕通過代理訪問xxx.com:
<Proxy http://xxx.com/*> Order allow,deny Deny from all </Proxy>
2. 禁止某些IP訪問/只允許某些IP訪問
如果要控制禁止某些非法IP訪問,在Directory選項控制:
<Directory "/var/www/xxx/"> Order allow,deny Allow from all Deny from 10.0.0.1 #阻止一個IP Deny from 192.168.0.0/24 #阻止一個IP段 </Directory>
只允許某些IP訪問,適合比如就允許內部或者合作公司訪問:
<Directory "/var/www/web/"> Order deny,allow Deny from all Allow from example.com #允許某個域名 Allow from 10.0.0.1 #允許一個iP Allow from 10.0.0.1 10.0.0.2 #允許多個iP Allow from 10.1.0.0/255.255.0.0 #允許一個IP段,掩碼對 Allow from 10.0.1 192.168 #允許一個IP段,後面不填寫 Allow from 192.168.0.0/24 #允許一個IP段,網路號 </Directory>