port translation no Linux local firewall - iptables no CentOS 6

0

Alguns modelos de firewall permitem a conversão de portas. Significa mudar uma porta que entra (entrada) para alguma outra porta, usando algum protocolo. Além disso, eles também podem alterar a porta interna para se tornar alguma porta externa (tráfego de saída) para a porta original novamente.

Este é o modelo de firewall externo da DMZ abaixo. Suponha que eu queira que tudo isso aconteça no servidor usando diretamente o iptables em vez de usar o firewall da DMZ. Quais comandos podem permitir que isso aconteça em um servidor CentOS 6?

Modelo de regra de rede DMZ:

Suponha que eu tenha tráfego TCP e a porta pública seja 8082 e a porta interna seja 8081? Assim, por exemplo, o Tomcat (o cliente) na DMZ enviaria um pacote TCP para fora do firewall DMZ externo como a porta 8081 e, em seguida, o pacote seria enviado pela Internet como 8082 para algum IP público. E, em seguida, no sentido inverso, suponha que uma solicitação de algum IP público tenha sido enviada para esse mesmo servidor em 8082 e, conforme ela entrou na DMZ desse servidor, a porta seria alterada para 8081.

  • porta pública = 8082
  • porta interna = 8081

Modelo de regra de rede do iptables:

  • porta externa ao servidor = 8082
  • o Tomcat está enviando e recebendo solicitações TCP no servidor físico = 8081
por MacGyver 27.01.2017 / 04:36

2 respostas

0

Sua solução é usar iptables para definir as regras NAT.

Para os meus exemplos, vou me referir a $ physicalServerIP que é um IP local e $ publicIP para o seu IP público.

Para redirecionar seu Tomcat (assumido em $ physicalServerIP) para que suas tentativas de se conectar a um servidor na porta 8081 sejam realmente enviadas para o servidor na porta 8082:

iptables -t nat -A PREROUTING -p tcp -s $physicalServerIP --dport 8081 -j REDIRECT --to-port 8082

As solicitações de entrada que chegam no $ publicIP na porta 8082 podem ser enviadas para $ physicalServerIP na porta 8081:

iptables -t nat -A PREROUTING -d $publicIP -p tcp -m tcp --dport 8082 -j DNAT --to-destination $physicalServerIP:8081

Para completar o NAT anterior, direcione os pacotes de $ physicalServerIP para serem enviados (de volta) através do NAT na interface pública:

iptables -t nat -A POSTROUTING -s $physicalServerIP/32 -j SNAT --to-source $publicIP

Com essa abordagem em mente, se você quiser que toda a LAN seja NATed, você pode alterar o 32 do comando anterior para 24 se sua LAN for $ physicalServerIP / 24.

    
por 27.01.2017 / 06:08
0

Por favor, tente abaixo o comando para mapeamento de porta que ajuda você a bater a conexão em 8082 e mapear com a porta 8081 internamente.

iptables -t nat -I PREROUTING -p tcp --dport 8082 -j REDIRECIONAR - para portas 8081

    
por 27.01.2017 / 06:13