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

Как использовать iptables для пересылки запросов на сервер jBoss, работающий на другом компьютере?

У меня есть 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.