Как настроить Apache для отклонения (пример) http://192.168.1.1 и принимать только виртуальные хосты, такие как http://www.example.com - PullRequest
1 голос
/ 07 февраля 2012

Я пытался найти решение по этому вопросу, но не знал, как создать запрос, чтобы получить мой ответ.

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

. Мне кажется, есть четыре способа:

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

  2. Создайте запись mod_rewrite для перезаписи IP-адреса, которая также" перехватывает "ее.

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

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

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

Спасибо.

1 Ответ

1 голос
/ 07 февраля 2012

Очень просто. В качестве виртуального хоста VERY FIRST укажите следующее:

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 admin@localhost
    DocumentRoot "/path/to/root/site"
    ServerName NX-DOMAIN
</VirtualHost>

Внутри / path / to / root / site просто создайте простой файл .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 you@domain.com
    DocumentRoot "/path/to/real/site1"
    ServerName www.domain.com
    ServerAlias domain.com
    php_admin_value open_basedir /path/to/real/site1
</VirtualHost>

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

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

...