У меня есть 3 машины со следующими IP-адресами: -
Машина 1: - 10.10.10.20 Машина 2: - 10.10.10.21 Машина 3: - 10.10.10.22
Сервер jBoss запущен на Машине 1, а Машина 3 является клиентской. Если я наберу 10.10.10.21 (IP-адрес Машины 2) в браузере на Машине 3, я должен быть перенаправлен на страницу jBoss по умолчанию сервера jBoss, запущенного на Машине 1. Однако, набрав 10.10.10.20 (IP-адрес Машины 1) в браузере на Машине 3 работать не должно. То есть клиент на Машине 3 должен иметь доступ к серверу jBoss на Машине 1 только через Машину 2, а не напрямую.
Обратите внимание, что 3 машины являются частью частной сети с брандмауэром. Я думал об использовании iptables на машине 2 (установлен RHEL), но я не могу использовать его должным образом.
Может ли кто-нибудь предложить, как я могу добиться этой настройки (используя iptables или любым другим способом)
Я попытался запустить следующую команду iptables на Машине 2: -
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to-destination 10.10.10.20
Но я все еще не могу получить доступ к Машине 1 от Машины 3 до Машины 2.
Спасибо бот
Вы можете просто запустить обратный HTTP-прокси (Apache, Squid, varnish, nginx) на машине2. На самом деле это довольно распространенная конфигурация серверов приложений, где «интерфейсный» прокси используется для обеспечения кэширования и аварийного переключения для внутреннего приложения.
Тогда у вас будут правила iptables на машине1, которые разрешат подключение только с машины 2.
Мне удалось переадресовать запросы, поступающие с машины 2, на машину 3 с помощью iptables. Игнорируйте комментарии в сценарии, поскольку они могут быть неправильными объяснениями команд.
#!/bin/bash
#Execute the following command to enable ip forwarding if it is not already enabled.
#echo 1 > /proc/sys/net/ipv4/ip_forward
#nat to forward all requests to specified ports on Machine 2 to specified ports on Machine 1.
iptables -t nat -A PREROUTING -p tcp -d 10.10.10.21 --dport 80 -j DNAT --to 10.10.10.20:80
iptables -t nat -A PREROUTING -p tcp -d 10.10.10.21 --dport 1099 -j DNAT --to 10.10.10.20:1099
iptables -t nat -A PREROUTING -p tcp -d 10.10.10.21 --dport 1098 -j DNAT --to 10.10.10.20:1098
#Allow response from Machine 1 to Machine 2.
iptables -t nat -A POSTROUTING -d 10.10.10.20 -j MASQUERADE
Этот сценарий заставляет все запросы http, rmi и службы именования, отправленные на Машину 2, перенаправляться на Машину 1.