liberar porta mysql em rede

13. Re: liberar porta mysql em rede

Buckminster
Buckminster

(usa Debian)

Enviado em 23/05/2014 - 12:37h

Diga-me uma coisa, tu leu o link que te enviei e colocou a seguinte regra iptables -A INPUT -i ethx -s xxx.xxx.xxx.xxx/24 -p tcp --destination-port 3306 -j ACCEPT e outra para a porta 8889 na máquina que tem o banco de dados?

Caso não seja esse o problema ou não seja problema de configuração do Mysql (--bind-address=addr ), daí você terá, dependendo do caso, fazer uma VPN ou colocar duas regras no Iptables de cada servidor.



Além do que, está meio confusa tua explanação.

"preciso que uma maquina da rede 192.168.1.0/24 acesse o banco de dados do servidor 192.168.2.1"

"o que quero é que elas acessem o mysql no ip 192.168.1.254"

Até agora não entendi onde está o MySql. Mas vamos lá.


Primeira hipótese: se as redes não tem conexão física, ou seja, não estão ligadas via cabo através de um switch, para fazer o acesso daí somente pela internet (pode ser por VPN).

Segunda hipótese: se as redes tem conexão física, seja através de switch, hub, etc, você terá que direcionar nos Iptables dos dois servidores.
E pelo que eu entendi essas redes se ligam através dos IPs 10.1.1.2 e 10.1.1.3.

Uma máquina da rede 192.168.1.0, vamos dizer o IP 192.168.1.69 quer acessar o banco de dados no servidor que responde pelo IP 192.168.2.1.

Você terá que fazer duas regras no iptables do servidor 192.168.1.254 direcionando a máquina 192.168.1.69 para o IP 10.1.1.2. Uma regra de ida e outra de volta. E talvez tenha que direcionar do IP 10.1.1.2 para o IP 192.168.1.254. Daí serão 3 regras.

E no outro servidor a mesma coisa, somente altera os IPs.

Pode usar essa regra mesmo
iptables -t nat -A PREROUTING -d 192.168.1.254 -p tcp -m tcp --dport 8889 -j DNAT --to-destination 10.1.1.3:3306
Somente troca os IPs (uma de ida e outra de volta).
Ou pode criar uma VPN interna também.


  


14. Re: liberar porta mysql em rede

shoujo
shoujo

(usa Slackware)

Enviado em 23/05/2014 - 16:24h

Buckminster escreveu:

Diga-me uma coisa, tu leu o link que te enviei e colocou a seguinte regra iptables -A INPUT -i ethx -s xxx.xxx.xxx.xxx/24 -p tcp --destination-port 3306 -j ACCEPT e outra para a porta 8889 na máquina que tem o banco de dados?

Caso não seja esse o problema ou não seja problema de configuração do Mysql (--bind-address=addr ), daí você terá, dependendo do caso, fazer uma VPN ou colocar duas regras no Iptables de cada servidor.



Além do que, está meio confusa tua explanação.

"preciso que uma maquina da rede 192.168.1.0/24 acesse o banco de dados do servidor 192.168.2.1"

"o que quero é que elas acessem o mysql no ip 192.168.1.254"

Até agora não entendi onde está o MySql. Mas vamos lá.


Primeira hipótese: se as redes não tem conexão física, ou seja, não estão ligadas via cabo através de um switch, para fazer o acesso daí somente pela internet (pode ser por VPN).

Segunda hipótese: se as redes tem conexão física, seja através de switch, hub, etc, você terá que direcionar nos Iptables dos dois servidores.
E pelo que eu entendi essas redes se ligam através dos IPs 10.1.1.2 e 10.1.1.3.

Uma máquina da rede 192.168.1.0, vamos dizer o IP 192.168.1.69 quer acessar o banco de dados no servidor que responde pelo IP 192.168.2.1.

Você terá que fazer duas regras no iptables do servidor 192.168.1.254 direcionando a máquina 192.168.1.69 para o IP 10.1.1.2. Uma regra de ida e outra de volta. E talvez tenha que direcionar do IP 10.1.1.2 para o IP 192.168.1.254. Daí serão 3 regras.

E no outro servidor a mesma coisa, somente altera os IPs.

Pode usar essa regra mesmo
iptables -t nat -A PREROUTING -d 192.168.1.254 -p tcp -m tcp --dport 8889 -j DNAT --to-destination 10.1.1.3:3306
Somente troca os IPs (uma de ida e outra de volta).
Ou pode criar uma VPN interna também.


fiz uma tela usando o packet tracer e o gimp pra ver se ajuda: a conexao nao é pela internet, é por redes separadas, na qual a unica comunicacao é a conexao de uma rede em comum 10.0.0.0/255.0.0.0

Segue o link do print que tirei
http://dl.dropboxusercontent.com/s/ac5vkehnfmteyok/tela.png

como pode obserservar, as maquinas ligadas a eth1 do servidor do banco de dados eu ja testei e funciona normal.

o que preciso é que as maquinas ligadas no eth1 do outro servidor se conecte a esse banco de dados atraves do servidor em uma porta diferente, quero que essa porta na escuta 8889 na placa 192.168.1.254 redirecione para 3306 na outra placa de rede 10.1.1.3.


15. Re: liberar porta mysql em rede

Buckminster
Buckminster

(usa Debian)

Enviado em 23/05/2014 - 20:25h

Bom, depois que tu fez o desenho ficou melhor de entender. Tem coisas que tem que desenhar mesmo senão os outros não entendem.

Acrescente as regras abaixo nessa ordem no Iptables do servidor de rede:

iptables -A INPUT -i eth1 -s 192.168.1.10 -p tcp --destination-port 8889 -j ACCEPT <<< aqui aceita pacotes que vem do IP 192.168.1.10 pela porta 8889 e entram pela eth1.

iptables -t nat -A PREROUTING -d 192.168.1.254 -p tcp -m tcp --dport 8889 -j DNAT --to-destination 10.1.1.2:8889 <<< aqui redireciona a porta 8889 do IP 192.168.1.254 para 10.1.1.2:8889, ou seja, altera o IP de destino.

iptables -t nat -A PREROUTING -d 10.1.1.2 -p tcp -m tcp --dport 8889 -j DNAT --to-destination 10.1.1.3:3306 <<< aqui redireciona 10.1.1.2:8889 para 10.1.1.3:3306.


No servidor de banco:

iptables -A INPUT -i eth1 -s 10.1.1.3 -p tcp --destination-port 3306 -j ACCEPT

iptables -t nat -A PREROUTING -d 10.1.1.3 -p tcp -m tcp --dport 3306 -j DNAT --to-destination 192.168.2.1:3306

Não coloquei explicação nas regras acima, pois a lógica é a mesma do servidor de rede.
Estou levando em consideração que tu não tem compartilhamento entre as placas de rede nem no servidor de rede e nem no servidor de banco. Mas se tiver não fará diferença.

Acrescente as regras e reinicie os Iptables.

Testa tentando conectar como tu estava fazendo antes com mysql --host=192.168.1.254 --port=8889 -u teste -p.
Espero que tu tenha feito os devidos cadastros e alterações necessárias para o Mysql funcionar em rede.

Não esqueça de apagar ou comentar as outras regras que você colocou antes tentando fazer esse redirecionamento.
E não use a porta 8889 para mais nada, senão o Iptables poderá se perder.

Acredito que deverá funcionar. Caso não funcione, a lógica está certa, mas talvez tenha que modificar um pouco as regras.


16. Re: liberar porta mysql em rede

shoujo
shoujo

(usa Slackware)

Enviado em 23/05/2014 - 20:55h

eu tentei e deu o mesmo erro:

root@recepcao:~# mysql --host=192.168.1.254 --port=8889 -u teste -p
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.254' (111)

continua dizendo que nao é possivel se conectar ao mysql.


17. Re: liberar porta mysql em rede

Buckminster
Buckminster

(usa Debian)

Enviado em 23/05/2014 - 21:54h

Cara, veja o link no meu comentário 11. Lá diz como resolver esse erro.

Estou achando que é alguma configuração que tu não fez no Mysql.


18. Re: liberar porta mysql em rede

shoujo
shoujo

(usa Slackware)

Enviado em 27/05/2014 - 22:14h

Buckminster escreveu:

Cara, veja o link no meu comentário 11. Lá diz como resolver esse erro.

Estou achando que é alguma configuração que tu não fez no Mysql.


Mas, na rede ligada diretamente ao servidor do banco de dados acessa normal e tem todos os privilegios normalmente.

Olha so se eu vou no servidor de rede e faço:

mysql --host=10.1.1.3 -u teste -p

funciona normal

se eu vou em uma maquina da rede do servidor de banco de dados maquina ip por exemplo 192.168.2.2

se eu faço:

mysql --host=192.168.2.1 -u teste -p

tambem acessa normal o banco de dados

o que preciso é de acessar em uma maquina da rede ligada no servidor de rede por exemplo 192.168.1.5

e acessar com mysql --host=192.168.1.254 -u teste -p

e da esse erro ai

o problema não é no mysql pois se em outras redes funciona normal esta correto, inclusive esse banco de dados é acessado atraves da internet normalmente..

"minha unica barreira são essas maquinas da rede interna ligadas ao servidor da rede."

as maquinas internas da rede ligada diretamente funcionam normal.


19. Re: liberar porta mysql em rede

shoujo
shoujo

(usa Slackware)

Enviado em 27/05/2014 - 22:25h

o problema é no redirecionamento da porta.


20. Re: liberar porta mysql em rede

Joca (Altemir Braz Dantas Junior)
jocajuni

(usa Debian)

Enviado em 27/05/2014 - 23:20h

Eu faria diferente colocava uma rota estatica de uma rede para outra assim vc poderia ter acesso as duas redes sem mascaramento do jeito que vc quer tente o codigo abaixo


iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X


echo 1 > /proc/sys/net/ipv4/ip_foward
iptables -I FOWARD -s 192.168.1.0/24 -d 10.1.1.3 -j ACCEPT
iptables -I FOWARD -s 10.1.1.3 -d 192.168.1.0/24 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 8889 -s 192.168.1.0/24 -d 192.168.1.254 -j DNAT --to-destination 10.1.1.3:3306
iptables -t nat -A POSTROUTING -p tcp -s 192.168.1.0/24 -d 10.1.1.3 -j SNAT --to 10.1.1.2

[]s
Jocajuni






21. Re: liberar porta mysql em rede

shoujo
shoujo

(usa Slackware)

Enviado em 28/05/2014 - 14:32h

jocajuni escreveu:

Eu faria diferente colocava uma rota estatica de uma rede para outra assim vc poderia ter acesso as duas redes sem mascaramento do jeito que vc quer tente o codigo abaixo


iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X


echo 1 > /proc/sys/net/ipv4/ip_foward
iptables -I FOWARD -s 192.168.1.0/24 -d 10.1.1.3 -j ACCEPT
iptables -I FOWARD -s 10.1.1.3 -d 192.168.1.0/24 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 8889 -s 192.168.1.0/24 -d 192.168.1.254 -j DNAT --to-destination 10.1.1.3:3306
iptables -t nat -A POSTROUTING -p tcp -s 192.168.1.0/24 -d 10.1.1.3 -j SNAT --to 10.1.1.2

[]s
Jocajuni





1º se eu compartilhar a rede não haveria necessidade do redirecionamento de portas, o acesso ocorreria atraves da rede 10.0.0.0/255.0.0.0 nao havendo necessidade do compartilhamento de porta.

2º eu tenho um proxy nesse servidor, se eu compartilhar a rede o proxy perde o efeito dos bloqueios de site, o que não seria interessante, pois pelo firefox é facil desabilitar o proxy e os usuarios poderiam acessar qualquer site.

3º eu ja fiz desse forma antes e funciona, mas como eu disse esse caso não é interessante



22. Re: liberar porta mysql em rede

Buckminster
Buckminster

(usa Debian)

Enviado em 28/05/2014 - 16:56h

Tente assim:

No servidor de rede

iptables -A INPUT -i eth1 -s 192.168.1.5 -p tcp --destination-port 8889 -j ACCEPT
iptables -t nat -A PREROUTING -d 192.168.1.5 -p tcp -m tcp --dport 8889 -j DNAT --to-destination 192.168.1.254:8889
iptables -t nat -A PREROUTING -d 192.168.1.254 -p tcp -m tcp --dport 8889 -j DNAT --to-destination 10.1.1.2:8889
iptables -t nat -A PREROUTING -d 10.1.1.2 -p tcp -m tcp --dport 8889 -j DNAT --to-destination 10.1.1.3:3306

No servidor do banco

iptables -A INPUT -i eth1 -s 10.1.1.3 -p tcp --destination-port 3306 -j ACCEPT
iptables -t nat -A PREROUTING -d 10.1.1.3 -p tcp -m tcp --dport 3306 -j DNAT --to-destination 192.168.2.1:3306


23. Re: liberar porta mysql em rede

Joca (Altemir Braz Dantas Junior)
jocajuni

(usa Debian)

Enviado em 28/05/2014 - 22:54h




iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X


echo 1 > /proc/sys/net/ipv4/ip_foward
iptables -I FORWARD -s 192.168.1.0/24 -d 10.1.1.3 -j ACCEPT
iptables -I FORWARD -s 10.1.1.3 -d 192.168.1.0/24 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 8889 -s 192.168.1.0/24 -d 192.168.1.254 -j DNAT --to-destination 10.1.1.3:3306
iptables -t nat -A POSTROUTING -p tcp 192.168.1.0/24 -d 10.1.1.3 -j SNAT --to 10.1.1.2



Com as regras acima ninguem vai conseguir acessar a internet o maximo que vai conseguir acessar eh a maquina 10.1.1.3 vao ter que usar o squid e se vc quiser deixar mas protegido ainda coloque a politica DROP na forward coloque a seguinte linha no comeco

Iptables -P FOWARD DROP




01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts