Existem várias maneiras de fazer isso:
A maneira mais rápida (para uso temporário) é usar um cliente ssh como putty. Você se conecta à sua caixa linux e adiciona uma regra de túnel.
Fazendo isso na caixa linux, seu objetivo é habilitar o encaminhamento de ip na caixa linux, bem como adicionar uma regra de firewall que redireciona o tráfego de um highport não utilizado para a porta rdp do windows (que é 3389). O comando de escolha é iptables. Com isso, você pode adicionar regras de rede ao kernel do Linux. Sugere-se a utilização de portas altas na sua interface pública para evitar que as kiddies de script variem as portas padrão.
Primeiro, ative o encaminhamento de ip (se já não estiver ativado):
Temporário:
sysctl -w net.ipv4.ip_forward=1
Em seguida, adicione uma regra de firewall usando o iptables:
Vamos dizer: eth0 é interna com rede 192.168.1.0/24, eth1 externa com ip 1.2.3.4
sudo iptables -t nat -A PREROUTING -t nat -p tcp -d 1.2.3.4 --dport 3389 -j DNAT --to 192.168.16.1:3389
Se o highport externo for 12345, você pode definir esta regra do iptables
sudo iptables -t nat -A PREROUTING -t nat -p tcp -d 1.2.3.4 --dport 12345 -j DNAT --to 192.168.16.1:3389
Para verificar as regras NAT, use o seguinte comando: sudo iptables -L -nv -t nat
permanentemente:
sudo nano /etc/sysctl.conf
e adicione a seguinte linha:
net.ipv4.ip_forward=1
Reinicie o sysctl com
sudo sysctl -p
Para adicionar permanentemente a regra iptables, você pode criar um script init de firewall na sua caixa linux (se já não estiver lá) e pendurá-lo no nível de execução em que sua caixa linux já está sendo executada.
Você também pode usar o Google 'Linux iptables NAT', 'port forwarding' e similares. Há muita documentação por aí - mesmo para o rdp.