Como configurar o ipables para redirecionar as portas quando o servidor linux tem dois endereços IP [fechado]

0

Eu quero que o meu servidor Web Glassfish ofereça páginas da Web para dois endereços IP distintos. O que estou tentando fazer é configurar regras de iptable para traduzir as portas.

para IP # 1

198.xxx.xxx.14:80   <-- redirected to --> port 8080
198.xxx.xxx.14:443  <-- redirected to --> port 8181

para IP # 2

199.xxx.xxx.185:80  <-- redirected to --> port 9090
199.xxx.xxx.185:443 <-- redirected to --> port 9191

e depois, no meu servidor Glassfish, eu teria dois servidores virtuais:

  • um ouvindo as portas 8080 & 8181 para todos os hosts e
  • o outro ouvindo as portas 9090 & 9191 para todos os hosts.

Minhas regras de iptables de trabalho para apenas um endereço IP no meu servidor Debian são as seguintes:

iptables -t nat -A OUTPUT -o lo -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -t nat -A OUTPUT -o lo -p tcp --dport 443 -j REDIRECT --to-port 8181
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8181

Meu arquivo /etc/hosts contém os dois endereços IP:

...
198.xxx.xxx.14 subdomain.mydomain1.com myservername1
127.0.0.1 localhost.localdomain localhost
# Auto-generated hostname. Please do not remove this comment.
199.xxx.xxx.185 mydomain2.org  myservername2

e o /etc/network/interfaces já contém a ligação de adaptadores de rede, da seguinte forma:

...
auto venet0:0
iface venet0:0 inet static
    address 199.xxx.xxx.185
    netmask 255.255.255.255

auto venet0:6
iface venet0:6 inet static
    address 198.xxx.xxx.14
    netmask 255.255.255.255
...
    
por Pierre C 25.04.2018 / 04:56

1 resposta

1
iptables -t nat -A PREROUTING -p tcp -m tcp -d 198.xxx.xxx.14 --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A PREROUTING -p tcp -m tcp -d 198.xxx.xxx.14 --dport 443 -j REDIRECT --to-ports 8181
iptables -t nat -A PREROUTING -p tcp -m tcp -d 198.xxx.xxx.185 --dport 80 -j REDIRECT --to-ports 9090
iptables -t nat -A PREROUTING -p tcp -m tcp -d 198.xxx.xxx.185 --dport 443 -j REDIRECT --to-ports 9191

Isso cuidará do tráfego de entrada de outros hosts. Para acesso local, recomendo remover completamente as regras de OUTPUT e usar os números de porta reais para evitar ambigüidade. Ou apenas escolha as duas portas que você deseja alcançar quando se conectar a 127.0.0.1:80 ou 127.0.0.1:443 e defina as duas regras de saída para elas.

    
por 25.04.2018 / 07:41