Назад | Перейти на главную страницу

Какой самый эффективный способ заблокировать входящие запросы HTTP / HTTPS от старого доменного имени?

Собственный выделенный ящик CentOS, который использует lighttpd для обслуживания www.newdomain.com. Однако тот же IP-адрес, который использовался для размещения старого домена www.olddomain.com.

В ящик все еще поступают запросы на www.olddomain.com.

Какой самый эффективный способ заблокировать эти запросы?

Заметка: У меня нет доступа к серверам имен или записям домена www.olddomain.com

Создайте виртуальный хост для старого домена с пустым каталогом в качестве корневого (который будет обслуживать только 404).

Используйте iptables string module. Хотя это не самый рекомендуемый способ сделать это, вам может потребоваться рассмотреть его, поскольку вы, кажется, заинтересованы в его полной блокировке. Для строкового модуля требуется ядро ​​linux> = 2.6.14

Правило было бы таким -

/sbin/iptables -I INPUT -p tcp --dport 80 -m string --algo bm --string "www.olddomain.com" -j DROP

Но помните, это может привести к блокировке законного трафика. Вы должны подтвердить, что ваш старый домен не отображается ни в одном запросе URL-адресов для всех сайтов в вашем домене.

Основываясь на вашем ответе на мой комментарий, я бы использовал iptables или аппаратное устройство для отбрасывания пакетов. Использование iptables избавит вашу веб-службу от необходимости обрабатывать запрос. Использование другого аппаратного устройства, такого как брандмауэр, было бы лучшим вариантом, поскольку они работают намного быстрее и никогда не попадут на ваш сервер.

Лучше всего сделать это на уровне брандмауэра (например, iptables, со строковыми модулями), потому что вы потребляете меньше ресурсов, чем при использовании службы «веб-сервера», такой как lighttpd, nginx и т. Д.

Однако в вашем исходном запросе упоминается HTTPS. Это немного сложнее, потому что вы используете одни и те же IP-адреса, и вы можете расшифровать заголовок https только ОДИН РАЗ, когда вы даете ему свою часть сертификата (то есть: вы не будете знать, для какого домена он предназначен, прежде чем передать его балансировщик нагрузки или веб-сервер [1]).

Поэтому я предлагаю вам просто поймать их на уровне веб-сервера. Вы также можете создать базовый ответ 301 (постоянно перемещенный) и перенаправить его в другое место. Со временем поисковая система больше не будет отправлять вам трафик.

[1]. Обратите внимание, есть способ через расширение SSL SNI (идентификация имени сервера), но это становится немного сложнее.

Если по умолчанию используется www.newdomain.com, скорее всего, веб-сервер будет использовать его для ответа на запросы любого домена.

Настройте свой веб-сервер так, чтобы он отвечал только на www.newdomain.com и игнорировал все остальное.

(Я давно не использовал lighttpd, вам нужно поискать синтаксис.)