Encaminhamento de conexão MySQL com iptables e diferentes interfaces de rede

3

Eu tenho um PC com o Ubuntu como roteador. Ele tem uma conexão 3G com um IP público para a Internet e há uma sub-rede privada sem fio. Então tem duas interfaces ativas:

  • ppp0: IP público (WAN)
  • wlan0: IP privado (LAN)

Com iptables eu quero encaminhar todas as conexões MySQL (porta 3306) para uma máquina local (10.42.43.10) da sub-rede.

Eu digito esses comandos iptables:

iptables -A PREROUTING -t nat -i ppp0 -p tcp --dport 3306 -j DNAT --to 10.42.43.10:3306
iptables -A FORWARD -p tcp -i ppp0 -o wlan0 -d 10.42.43.10 --dport 3306 -j ACCEPT

Mas isso não funciona. telnet publicip 3306 falha: - (

Qualquer ajuda será apreciada. Obrigado!

    
por Emilio Nicolás 02.06.2012 / 20:31

3 respostas

1

Você pode criar um túnel ssh para divulgar as conexões. É muito mais fácil e seguro do que usar o iptables:

ssh -L YOUR_PUBLIC_IP: 3306: 10.42.43.10: 3306 [email protected]

Você terá que inserir as credenciais do usuário ssh e o redirecionamento através do túnel será feito. Rápido, fácil e seguro:)

    
por 07.06.2012 / 11:22
1

As regras parecem corretas. Eu acho que você não habilitou o encaminhamento de IP no kernel. Existem duas maneiras de ativar o encaminhamento de IP:

echo 1 > /proc/sys/net/ipv4/ip_forward

Isso será redefinido na reinicialização. Adicione a seguinte linha ao /etc/sysctl.conf:

net.ipv4.ip_forward = 1

E você deve conseguir trabalhar.

    
por 03.06.2012 / 04:06
1

Não foi possível comentar a resposta que Nilesh postou, então adicionei isso para qualquer pessoa que possa estar com problemas após essa etapa

em relação a

echo 1 > /proc/sys/net/ipv4/ip_forward

isso só funcionará se você for o usuário root.

você deve fazer desta maneira

echo -n 1 | sudo tee /proc/sys/net/ipv4/ip_forward

echo -n é, portanto, não há um caractere de nova linha à direita

sudo tee é para que você possa gravar no arquivo com permissões aumentadas

sudo echo > /file não funciona se / file precisar ser acessado como usuário root, porque o sudo está operando apenas na função echo e não no > /file

    
por 31.10.2016 / 17:16