IPTables de ip público e porta para lan ip

IPTables de ip público e porta para lan ip

Possuo três IPs públicos para meu servidor e tenho várias VMs que possuem seu próprio 'trabalho'. O servidor possui 1 NIC. IPs públicos:

  • XX.XX.9.247 (PRINCIPAL)
  • XX.XX.21.141 (adicional)
  • XX.XX.21.142 (adicional)

IPs da LAN:

  • 10.10.0.0/24
  • 10.10.0.10:80 (servidor Web para o IP PRINCIPAL)
  • 10.10.0.20:80 (servidor Web para o 1. IP adicional)
  • 10.10.0.30:80 (servidor Web para o 2. IP adicional)
  • 10.10.0.31:9987 (TeamSpeak para o 2. IP adicional)

e assim por diante.

Exemplo: A solicitação vem de XX.XX.21.141:80. A solicitação é enviada para 10.10.0.20:80. O vserver envia o pacote de volta via XX.XX.21.141.

Por que eu faço assim? Porque quero alugar alguns vservers.

Eu sei como conseguir isso com IPTables em um IP público, mas não tenho ideia de como fazer isso com vários IPs públicos.

Eu espero que vocês possam me ajudar.

Saudações

Responder1

Se você deseja redirecionar apenas http/https, é melhor usar o nginx (mas você pode apache). Dependendo de qual é o seu servidor Web (Apache, NGinx), você deve considerar um proxy HTTP em seu servidor front-end:

Você pode usar pontes para fornecer alguns IPs dedicados de VM.

Solução iptables

                                 iptables
                                     |                   .---------------.
    .-,(  ),-.                       v               port 80             |
 .-(          )-.        port 80  ________               |               |
(    internet    )------------>[_...__...°]------------->|      VM       |
 '-(          ).-'    XX.XX.9.247    ^   10.10.0.10      |               |
     '-.( ).-'                       |                   |               |
                                     |                   '---------------'
                                     |
                                     |
                                   __  _ 
                                  [__]|=|
                                  /::/|_|

Este é o roteiro

#!/bin/sh
# eth1 is WAN
WAN=eth1
MAIN_IP=XX.XX.9.247
MAIN_PORT=80
BACK_END_IP=10.10.0.10
BACK_END_PORT=80

echo 1 > /proc/sys/net/ipv4/ip_forward
# it's clean all tables
iptables -F
iptables -t nat -F
iptables -X

iptables -t nat -A PREROUTING -i ${WAN} -d ${MAIN_IP} --dport ${MAIN_PORT} -j DNAT --to-destination ${BACK_END_IP}:${BACK_END_PORT}
iptables -A FORWARD -d ${MAIN_IP} --dport ${MAIN_PORT} -j ACCEPT
#maybe this# iptables -A FORWARD -i ${WAN} -j ACCEPT

iptables -t nat -A POSTROUTING -j MASQUERADE

informação relacionada