Linux slogan
Visite também: BR-Linux.org · Dicas-L · NoticiasLinux · SoftwareLivre.org · UnderLinux · BestLinux



» Screenshot
Linux: backtrack anime
Por n34r
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha

» Wallpaper
Linux: Tux Ninja
Por Dhonatn


Artigo

Criando rotas via iptables para acesso remoto com VNC
Linux user
iosimura
15/02/2005
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.
Por: Alexandre Novaes Iosimura
[ Hits: 36064 ]
Conceito: 9.0   2 voto(s)2 voto(s)2 voto(s)2 voto(s)2 voto(s) + quero dar nota ao artigo

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

Leitura recomendada

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 leo_jfa 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


Contribuir com comentário
  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Copyleft 2002-2009 Viva o Linux.com.br

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.