Criando rotas via iptables para acesso remoto com VNC

Escrevi este artigo a fim de clarear mais a idéia sobre a conexão remota com VNC utilizando rotas com iptables. O suporte remoto é fundamental em empresas que vendem help desk ou prestam acessoria em informática. Vai aqui uma forma (não muito segura) de criar uma rota direta com uma máquina que está dentro da rede interna de seu cliente.

[ Hits: 62.576 ]

Por: Alexandre Novaes Iosimura em 15/02/2005


Script para criação de rota



Criei dois scripts que irão adicionar/remover a rota em suas regras de iptables, passando o IP da máquina na rede interna e a porta que responderá pela tal em nosso servidor Linux.

Crie o arquivo "criar_vnc_port" com permissão de execução e copie este conteúdo dentro dele:

NOTA: Este script criará uma rota para uma estação na rede interna utilizando uma porta especificada por você. Para conectar-se após, utilize:

$ vncviewer <IP_SPEEDY>:<PORTA_UTILIZADA>

echo "ABERTURA DE ROTA PARA VNC EM MAQUINA DA REDE INTERNA"
echo "CRIANDO ROTA VNC PARA MAQUINA DA REDE INTERNA"
echo "MAQUINA DA REDE INTERNA: $1"
echo "PORTA VNC REDIRECIONADA: $2"
echo "EXECUTANDO REDIRECIONAMENTO.... [ OK ]"

iptables -I FORWARD -p tcp -d $1 --dport 5900 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport $2 -j DNAT --to-destination $1:5900

Para utilizar o script digite (como root):

# ./criar_vnc_port 192.168.0.50 6969

OBS: Não esqueça de substituir o IP por um que exista dentro da sua rede interna e por favor, não esqueça de instalar o vncserver na estação a qual irá se conectar (a estação pode utilizar Linux ou Windows, tanto faz).

    Próxima página

Páginas do artigo
   1. Script para criação de rota
   2. Scripts para remoção de rota
   3. Conclusão
Outros artigos deste autor

JABACO => Java + Visual Basic 6

Firewall admin: administração do iptables

LTSP - Linux Terminal Service

Leitura recomendada

Reempacotamento e repositório local em um sistema Debian-like

Encapsulamento de Apache com chroot

Otimizando seu web server com Apache2 + Lighttpd

Instalando e configurando o Nagios com e sem MySQL

Slackpkg, uma ótima ferramenta para Slackware

  
Comentários
[1] Comentário enviado por Herr_Filip em 15/02/2005 - 22:04h

fiz algo parecido na rede da empresa, jah que todas as estaçoes sao windows e rodam VNC!

legal, alguem que teve a mesma ideia que eu! eheh

[2] Comentário enviado por usr em 02/03/2005 - 01:55h

Gostaria de saber se é possível rodar somente uma Dekstop em vez de 1 Virtual no Linux. Esse final do script 6969 seria a nova porta ?
Uso um server com Linux eth1 192.168.1.1 onde compartilho a conexao e uma estacao com 192.168.1.2 onde tenho minha maquina que rodo Linux e o XP, as vezes preciso usar o mesmo Desktop que deixei rodando em casa na casa de minha ada ou de alguem. Como o vncserver da meneira que configurei soh conseguia acessar o terminal virtual acaba que nao servia.
Valw

[3] Comentário enviado por rafaelsrs em 08/03/2005 - 09:18h

Eai cara .. blz??? da uma analisada no meu caso e me diz uma forma de configurar isso sem usar esses script(eu nao sei fazer)...

Bem vamos La: no local 2 eu tenho a seguinte conf:

modprobe iptable_nat
iptables -t nat - F
iptables -t nat -A PREROUNTING -s 192.168.0.0/24 -d 0/0 -j MASQUERADE
iptables -t nat -A PREROUNTING -s 192.168.0.0/24 -d 0/0 -j tcp --dport 80 -j REDIRECT --to-port 8080
modprobe iptable_nat
#Inseri essa linha para testar o VNC
iptables -t nat -A PREROUNTING -s 200.x.x.x -m tcp -p tcp -i eth0 --dport 5900 -j DNAT --to-destination 192.168.0.14

onde o ip 192.168.0.14 é a maquina na rede que eu quero acessar remotamente... ela esta utilizando windows Xp.
Aqui no local1 onde eu estou eu quero sair com o ip 192.168.1.17, passar pelo servidor do mandrake e ir para o local2 acessar o 192.168.0.14..

a configuração local é a seguinte:
modprobe iptable_nat
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -t nat - F
iptables -t nat -A PREROUNTING -s 192.168.1.0/24 -d 0/0 -j MASQUERADE
iptables -t nat -A PREROUNTING -s 192.168.1.0/24 -d 0/0 -j tcp --dport 80 -j REDIRECT --to-port 8080

RESUMINDO... EU QUERO SAIR DA MINHA REDE1 DE UMA MAQUINA WINXP(192.168.1.17), PASSAR PELO MEU SERVIDOR LINUX 1, PASSAR PELO SERVIDOR LINUX 2 DA REDE2 E ENTRAR NA MAQUINA LOCAL (192.168.0.24)

OBRIGADO!

[4] Comentário enviado por brunocampinas em 02/11/2005 - 19:20h

gente gostaria de saber como faço uma regra assim:
o servidor usa o redhat ipatbles e nossa rede interna é a famosa 192.168.0.x ..... todas estaçoes com o xp, eu precisava pelo vnc conectar da minha casa para os ervidor e de la ser jogado para minha estação da empresa...ou seja casa ---> servidor da empresa ------> minha estação de trabalho... ????
e como q eu faço um regra da minha casa para o servidor por ssh...????
em casa tenhu 2 pc...um com xp e um com conectiva
Meu email é bruno.cps@gmail.com aguardo a ajuda

[5] Comentário enviado por iosimura em 04/11/2005 - 08:59h

Tudo bom Bruno ?

(desculpe pela demora) e segue:

iptables -A INPUT -p tcp --destination-port 5900 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 5901 -j DNAT
--to-destination 192.168.0.1:5900
iptables -A FORWARD -p tcp --dport 5901 -d 192.168.0.1 -j ACCEPT

Outra máquina


iptables -A INPUT -p tcp --destination-port 5902 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 5902 -j DNAT
--to-destination 192.168.0.2:5900
iptables -A FORWARD -p tcp --dport 5902 -d 192.168.0.2 -j ACCEPT

Outra máquina


iptables -A INPUT -p tcp --destination-port 5903 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 5903 -j DNAT
--to-destination 192.168.0.3:5900
iptables -A FORWARD -p tcp --dport 5903 -d 192.168.0.3 -j ACCEPT

Abraço......

[6] Comentário enviado por Bique em 21/11/2005 - 03:42h

Beleza esse seu artigo...Eu estou com a mesma duvida do Bruno e com o mesmo problema. As regras de iptables que ai deixaste são para serem adicionadas para cada ip interno da rede? Poderei fazer isto por Remote Desktop (Conectar-se ao Server Windows claro passando pelo Linux primeiro e depois a partir de lá utilizo o VNC), mas para isso terei de trocar a porta de escuta ?
Se me puderes esclarecer a duvida o mundo ficara-te grato.

Thanks.

[7] Comentário enviado por cabelomst em 07/01/2006 - 18:16h

galera uso o vnc para dar suporte tecnico mas quero saber como fazer isso de um ip de fora tipo um 200.alguma coisa como faria para acessar uma pc cujo ip é 192.168 alguma coisa(q é oserver vnc) de um 200.alguma coisa (cliente vnc)
Obrigado !

[8] Comentário enviado por kidronan em 14/02/2006 - 20:50h

Caro iosimura,
estou tendo um pequeno problema... trabalho com suporte via VNC, e temos algumas pessoas trabalhando ao mesmo tempo, queria saber como faço o roteamento automatico... exemplo:
a conexão chegar na porta 5510 ir para o ip: 192.168.0.10
a conexão chegar na porta 5511 ir para o ip: 192.168.0.11
desde já agradeço a atenção,....

[9] Comentário enviado por ggarauj em 15/06/2006 - 09:18h

.

[10] Comentário enviado por leandromoreirati em 08/01/2007 - 14:39h

Caro,
Só uma sugestao, o que voce esta fazendo nao é criando rotas mas sim disponibilizando portas adicionar rotas é bem diferente:
# routre add -net (se for rota para rede) -host (se for rota para um host especifico) x.x.x.x/mascara (ip host/rede) gw (gateway da rede.

Seu artigo é muito bom so tem q corrigir o título, pois o iptables nao cria rotas mas sim bloqueia/libera portas.

[11] Comentário enviado por andre.linux em 16/03/2007 - 11:57h

Bem o meu squid establoqueando o acesso remoto das maquinas na minha rede...
Como eu faço??
Lembrando que é o acesso feito de fora... tipo logmein ou vnc de fora da intranet..
me ajudem ... valeu

[12] Comentário enviado por iosimura em 28/11/2007 - 12:33h

Caro amigo, espere que ajude:

Nota:

Abrir porta no firewall do windows
O gateway da maquina deve ser o IP do servidor que faz o roteamento, SENAO NAO FUNCIONA !!!!!

#!/bin/bash

#limpando tabelas
iptables -F &&
iptables -X &&
iptables -t nat -F &&
iptables -t nat -X &&

#liberando acesso interno da rede
iptables -A INPUT -p tcp --syn -s 194.168.0.0/255.255.255.0 -j ACCEPT &&
iptables -A OUTPUT -p tcp --syn -s 194.168.0.0/255.255.255.0 -j ACCEPT &&
iptables -A FORWARD -p tcp --syn -s 194.168.0.0/255.255.255.0 -j ACCEPT &&

#compartilhando a web na rede interna
iptables -t nat -A POSTROUTING -s 194.168.0.0/255.255.255.0 -o eth1 -j MASQUERADE &&
echo 1 > /proc/sys/net/ipv4/ip_forward &&

# Protecao contra port scanners ocultos
iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

# Bloqueando tracertroute
iptables -A INPUT -p udp -s 0/0 -i eth1 --dport 33435:33525 -j DROP

#Protecoes contra ataques
iptables -A INPUT -m state --state INVALID -j DROP

#Retransmitindo pacotes da Porta 80 APACHE
iptables -t nat -A PREROUTING -p tcp -d 169.19.216.70 --dport 80 -j DNAT --to 194.168.0.14

#Retransmitindo pacotes da Porta 5900
iptables -t nat -A PREROUTING -p tcp -d 169.19.216.70 --dport 5900 -j DNAT --to 194.168.0.14:5900
iptables -t nat -A PREROUTING -p tcp -d 169.19.216.70 --dport 5901 -j DNAT --to 194.168.0.16:5900
iptables -t nat -A PREROUTING -p tcp -d 169.19.216.70 --dport 5902 -j DNAT --to 194.168.0.17:5900


#termina
echo "Iptables Pronto"

[13] Comentário enviado por removido em 28/03/2008 - 23:32h

Pelo que entendi, com essa configuração eu nao preciso configurar as portas do vnc em cada estação não é? Se for isso mesmo, putz, uma mão na roda... só falta essa configuração ser adicionada permanentemente ao script do firewall...
Cara, acho q tu me livrou de um grande problema...
Obrigado!

Abraços,
http://www-linux.blogspot.com

[14] Comentário enviado por rickzzz em 28/06/2008 - 14:04h

IOSIMURA:

Parabens cara, muito bom seu POST.
vc é o cara,.
..fui

[15] Comentário enviado por adairsoliveira em 11/05/2010 - 18:42h

É o seguinte :

Tenho na minha rede Um SERVIDOR oficial e tb tenho um SERVIDRO RESERVA uso o modem Kaiomy 500G ads2+

Ja acesso via ssh o SERVIDOR principal, quero saber como faço para acessar diretamente meu SERVIDOR RESERVA remotamente, sem precisar passar pelo SERVIDOR principal ?


Obs: Não entendo quase nada de Iptables...

Por favor me ajudem como fazer a configuração me explicando inclusive como farei essa conexão remota ok

meu amail: adairsoliveira@hotmail.com


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts