Faça do CentOS 6.x um dispositivo NAT de encaminhamento de porta

1

Eu gostaria de fazer do CentOS uma máquina NAT de encaminhamento de porta usando o iptables. Esta é a primeira vez que eu tentei isso e acho que talvez precise de um pouco de ajuda.

Esta é a configuração que estou tentando alcançar. Estou tentando fazer uma conexão de área de trabalho remota através da máquina CentOS na porta 5500 e ter o CentOS conectado ao servidor na porta 3389.

192.168.21.11 é o cliente que deve se conectar à porta 3389 em 192.168.9.120 conectando-se a 192.168.21.10 (CentOS) na porta 5500.

  • O eth0 do CentOS é 192.168.9.20/24
  • O centOS eth1 é 192.168.21.10/24

O que eu tentei até agora:

  1. desativado SELINUX
  2. Encaminhamento IPv4 ativado em /etc/sysctl.conf

    /etc/sysctl.conf
    net.ipv4.ip_forward = 1
    
  3. Ran os seguintes comandos do iptables

    iptables -t nat -A PREROUTING -p tcp -d 192.168.21.10 --dport 5500 -j DNAT --to 192.168.9.120:3389
    iptables -A INPUT -i eth1 -p tcp --dport 5500 -m state --state NEW,ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -o eth0 -p tcp --sport 5500 -m state --state ESTABLISHED -j ACCEPT
    service iptables save
    

Depois de salvar essa configuração, não consegui fazer a conexão de área de trabalho remota que estou tentando obter, então, há algo errado com as regras do iptables? Ou há algo que eu possa estar perdendo?

    
por Andy Arismendi 03.07.2013 / 08:44

3 respostas

1

Tente adicionar esta regra ao seu / etc / sysconfig / iptables logo após -A PREROUTING -p tcp -d 192.168.21.10 --dport 5500 -j DNAT --to 192.168.9.120:3389

-A POSTROUTING -d 192.168.9.120 -j MASQUERADE

Segundo, verifique se net.ipv4.ip_forward está definido como 1 executando 'sysctl -a | grep net.ipv4.ip_forward '

Se ainda estiver configurado em 0, execute:

sysctl -w net.ipv4.ip_forward=1

    
por 03.07.2013 / 08:57
0

Tente adicionar:

iptables -A FORWARD -i eth1 -j ACCEPT
iptables -A FORWARD -o eth1 -j ACCEPT
    
por 03.07.2013 / 08:56
0

Você deve ler sobre a diferença entre iptables -A e iptables -I e dar uma olhada no regras padrão em seu sistema. Parece bastante provável que sua regra INPUT, pelo menos, não funcione devido à diferença.

Configurar um valor em /etc/sysctl.conf não o configura no kernel em execução. A página do manual sysctl (8) é sua amiga.

Não desative apenas o SELinux - ele está lá para ajudar a proteger você.

    
por 03.07.2013 / 08:56