Existem alguns caminhos dependendo da necessidade de cada um, vamos começar de forma simples a redirecionar o acesso pelo iptables.
iptables -t nat -A PREROUTING -s 0/0 -m tcp -p tcp -i eth0 --dport 5900 -j DNAT --to-destination 192.168.0.1
Em que:
- 0/0 - aceita qualquer conexão fora da rede interna;
- eth0 - placa de rede "interna" e não a que está recebendo a Internet;
- --dport - envia para a porta 5900;
- to-destination - 192.168.0.1 será a máquina que iremos acessar.
Se você quiser melhorar a segurança faça o seguinte:
iptables -t nat -A PREROUTING -s 200.204.14.58 -m tcp -p tcp -i eth0 --dport 5900 -j DNAT --to-destination 192.168.0.1
Essa regra mostra tudo que chegar do IP 200.204.14.58 será redirecionada para a máquina 192.168.0.1, ou seja, o redirecionamento só será aceito se a sua rede for o IP mencionado, no caso 200.204.14.58.
Obs.: Essa regra não irá funcionar corretamente com redes que variam o IP como um speedy home por exemplo, que troca de IP sempre que o usuário faz uma nova conexão.
Se você deseja acessar as máquinas via browser é necessário liberar a porta 5800:
iptables -t nat -A PREROUTING -s 0/0 -m tcp -p tcp -i eth1 --dport 5800 -j DNAT --to-destination 192.168.0.1
Agora vamos supor que existem várias máquinas para serem acessadas todas de uma só vez, você pode usar o programa
rinetd que redireciona todas as portas para a máquina que desejar, basta configurar um arquivo texto sem a necessidade de reconfigurar o seu firewall.
Essa dica é baseada no
Debian, mas testei em outras distros como Fedora e Mandriva, ambas com sucesso.
Com permissões de root, instale o seguinte programa:
# apt-get install rinetd
Depois de instalado entre no arquivo
/etc/rinetd.conf e insira as informações das máquinas internas:
### Servidor Windows
200.204.14.58 1000 192.168.0.1 5900
### Carlos
200.204.14.58 1010 192.168.0.10 5900
Em que:
- 200.204.14.58 - É o IP do servidor remoto;
- 1000 - A porta que iremos escolher para ser redirecionada;
- 192.168.0.x - IP da estação a ser acessada;
- 5900 - São as portas do VNC que devem serem redirecionadas para as portas que definimos.
Depois de configurado você precisa reiniciar o serviço digitando:
# /etc/init.d/rinetd stop
# /etc/init.d/rinetd start
Para acessar as estações de trabalho, abra o executável do VNC e digite 200.204.14.58:1000.
Se você configurou para acessar a porta 5800 via browser, abra o seu navegador e digite:
http://200.204.14.58:5800/
Dica 1: O rinetd pode parar de funcionar caso você coloque vários ips de uma só vez no arquivo, se isso ocorrer, coloque dois de cada vez, reinicie o serviço e adicione os ips seguintes sempre dois por vez.
Dica 2: O rinetd pode gerar um grande volume de logs, o que pode causar o estouro de espaço em disco no log em /var/log/rinetd.log. Se isso ocorrer, entre no /etc/rinetd.conf e comente a linha "logfile /var/log/rinetd.log".