2012-02-07 3 views
1

Я попытался найти решение по этому вопросу, но не знал, как кадр запроса, чтобы получить мой ответ.Как настроить Apache для отклонения (пример) http://192.168.1.1 и принять только виртуальные хосты, такие как http://www.example.com

Я хочу, чтобы кто-либо заблокировал мой сервер по IP-адресам (например, http://192.168.1.1 - любой общедоступный IP-адрес), позволяя правильно использовать URL-адреса на моем сервере (например, http://www.example.com).

Я чувствую, что есть четыре способа:.

  1. Создать запись виртуального хоста в httpd.conf файл, который «улавливает в URL IP

  2. Создать запись mod_rewrite для перезаписи IP-адрес, который также «ловушка» его.

  3. создать запись IPTABLES, которая способна обнаруживать IP-адрес и опуская те запросы на подключение.

  4. Не делайте ничего, потому что ничего нельзя сделать.

Какой из трех (или рекомендую альтернативу) был бы лучшим способом справиться с этим. Как я это сделаю?

Спасибо.

ответ

1

Очень простой. Установите следующие значения в качестве самого первого виртуального хоста:

NameVirtualHost *:80 

<VirtualHost *:80> 
<Directory "/path/to/root/site"> 
    AllowOverride All 
    Options None 
    Options Indexes FollowSymLinks Includes ExecCGI 
    Order deny,allow 
    Deny from none 
    Allow from all 
    php_admin_value open_basedir /path/to/root/site 
</Directory> 
    ServerAdmin [email protected] 
    DocumentRoot "/path/to/root/site" 
    ServerName NX-DOMAIN 
</VirtualHost> 

Внутри/путь/к/корень/сайт, просто сделать простой .html файл или что-то сказать «404 Not Found» или даже поп в. перенаправление htaccess или что-то в этом роде.

Для ваших реальных сайтов, добавить их в качестве второй, третий, четвертый и т.д. ... виртуальные хосты:

<VirtualHost *:80> 
<Directory "/path/to/real/site1/"> 
    AllowOverride All 
    Options Indexes FollowSymLinks Includes ExecCGI 
    Order allow,deny 
    Allow from all 
</Directory> 
    ServerAdmin [email protected] 
    DocumentRoot "/path/to/real/site1" 
    ServerName www.domain.com 
    ServerAlias domain.com 
    php_admin_value open_basedir /path/to/real/site1 
</VirtualHost> 

Таким образом, любой запрос к домену не провести (если кто-то указывает их домен на ваш IP-адрес или кто-то посещает исходный IP-адрес) будет сбрасываться на вашу страницу с ошибкой.

Надеюсь, это поможет.