Немного предыстории:
Брандмауэр был создан с использованием RH Fedora 13, Kernel 2.6.34.7-63 и IPTables 1.4.7. Брандмауэр представляет собой простую конфигурацию с двумя адаптерами, при этом внешний интерфейс (eth0) обращен к Интернету, а другой интерфейс (eth1) обращен к небольшой частной сети (одиночная IP-подсеть). Брандмауэр - это хост-бастион, а это означает, что хост брандмауэра не содержит ничего, кроме операционной системы, IPTables и только тех элементов, которые необходимы для поддержки работы самого хоста. Брандмауэр не запускает никаких других приложений.
В частной сети находится веб-сервер.
Сеть: Базовый адрес: 149.10.10.0/24 Веб-сервер: 149.10.10.25 Клиенты: расположены по разным адресам в подсети. Межсетевой экран eth1 Адрес: 149.10.10.1 DNS-адрес: 149.10.10.2
ВОПРОС Учитывая, что клиенты во внутренней сети могут свободно выходить в Интернет: если клиенты выбирают определенный веб-сайт (например, www.website.com), моя цель - настроить IPTables для перенаправления клиента на внутренний веб-сервер.
Я пробовал использовать несколько правил iptables, в том числе:
iptables -v -t nat -A PREROUTING --in-interface eth1 --dport 80 -d www.website.com -j DNAT --to 149.10.10.25
Однако, похоже, это не имеет никакого эффекта.
Не могли бы вы порекомендовать правило, которое я должен использовать для выполнения этого подвига?
Ниже приведен синтаксис, который я использую для аналогичного правила, но мой трафик предназначен для внешнего на внутренний.
-A PREROUTING -i eth0 -p tcp -m tcp -d X.X.X.X --dport 80 -j DNAT --to-destination Y.Y.Y.Y: 80
Вам также необходимо убедиться, что у вас включен ip_forward и установлены правильные правила пересылки, чтобы разрешить обратный трафик.
Предполагая, что вы можете сделать это с помощью iptables
, и я не уверен, что вы можете, из-за ненаправленного характера обратного трафика от 149.10.10.25 клиентам, вы перенаправите все веб-хосты, которые живут на IP-адресе, связанном с www.website.com
.
Это неизбежно, потому что iptables, по сути, является инструментом уровня 3 и работает с IP-адресами, а не с именами хостов HTTP.
Думаю, вам лучше установить прокси squid во внутренней сети, настроить который чтобы выполнить перенаправление для одного доменного имени и перенастроить клиентов для использования прокси. Вы также можете использовать iptables
на бастионе, чтобы предотвратить входящий и исходящий HTTP-трафик в вашу внутреннюю сеть, чтобы гарантировать использование прокси.