2010-04-21 114 views
13

我有一個子域,我只想在內部訪問;我試圖在Apache中通過編輯該域的VirtualHost塊來實現此目的。任何人都可以看到我要去哪裏嗎?請注意,我的內部IP地址是192.168.10.xxx。我的代碼如下:Apache - 限制IP不能正常工作

<VirtualHost *:80> 
    ServerName test.example.co.uk 
    DocumentRoot /var/www/test 
    ErrorLog /var/log/apache2/error_test_co_uk.log 
    LogLevel warn 
    CustomLog /var/log/apache2/access_test_co_uk.log combined 
    <Directory /var/www/test> 
    Order allow,deny 
    Allow from 192.168.10.0/24 
    Allow from 127 
    </Directory> 
</VirtualHost> 

感謝

回答

15

你缺少Deny from all線?哦,並用錯了order

引述mod_access docs

[...] apache.org域中所有主機都允許訪問;所有其他主機都被拒絕訪問。

Order Deny,Allow 
Deny from all 
Allow from apache.org 
+0

我給它一展身手,但沒有運氣。當我嘗試查看網站時發生的事情是,它返回403禁止,無論我嘗試從哪裏。 – Probocop 2010-04-21 13:43:21

5

的問題是本地網絡你讓行。將Allow from 192.168.10.0/24替換爲Allow from 192.168.10.(將允許192.168.10。*)。

爲了保持完整性,請添加一條Deny from all這一行,以清楚地表明您阻止了其他人。

+0

我給了這個嘗試,但仍然沒有運氣,無論我從哪裏嘗試,它都會被禁止。謝謝 – Probocop 2010-04-22 08:24:34

+0

這聽起來像你的配置被覆蓋的地方,因爲我測試了配置,它的工作。看看你的其他配置文件的訪問規則。例如,基於Debian的發行版將在/etc/apache2/conf.d/security中添加額外的限制。 – 2010-04-22 15:04:55

+1

這個答案對我有幫助,但代碼示例會有更多幫助。我在這裏找到了兩個答案:http://serverfault.com/a/323611/12448 – 2011-12-10 19:13:00

1

我想目錄標籤內的路徑應該是簡單/

<VirtualHost *:80> 
    ServerName test.example.co.uk 
    DocumentRoot /var/www/test 
    ErrorLog /var/log/apache2/error_test_co_uk.log 
    LogLevel warn 
    CustomLog /var/log/apache2/access_test_co_uk.log combined 
    <Directory /> 
    Order allow,deny 
    Allow from 192.168.10.0/24 
    Allow from 127 
    </Directory> 
</VirtualHost> 

請不要忘了重新啓動Apache