Boa tarde,
Alguns dias atrás estava pensando em rodar serviços dentro de máquinas virtuais. O que me deixava com a pulga atrás da orelha era como eu iria fazer o redirecionamento de portas. Então utilizei o Grande Oraculo e pesquisei durante bastante tempo para conseguir que funcionasse. Utilizei o "VBoxManage setextradata", mas não tive sucesso. Caso você queira tentar, veja como configurar redirecionamento de portas para virtualbox usando VBoxManage.
Inicialmente você deve criar uma interface "tap"
#sudo tunctl -u $USER
Definir o IP da interface tap
#sudo ip addr add 192.168.0.20/32 dev tap0
# sudo ip link set tap0 up
Habilitar ip forward
# sudo sysctl net.ipv4.ip_forward=1
Adicionar Rota
#sudo route add -host 192.168.0.150 dev tap0
NAT:
# sudo iptables --flush
#sudo iptables -t nat --flush
#sudo iptables -t nat -A POSTROUTING --out-interface eth1 -j MASQUERADE
#sudo iptables -A FORWARD --in-interface eth1 -j ACCEPT
Redirecionando a porta 3333 para 3389:
#iptables -t nat -A PREROUTING -i eth1 -p tcp -d 192.168.0.100 --dport 3333 -j DNAT --to 192.168.0.150:3389
eth1 - Minha placa de rede conectada ao meu roteador.
192.168.0.150 - IP da Máquina Virtual (configurada manualmente)
192.168.0.20 - IP da tap
192.168.0.100 - IP da minha máquina real que recebera conexões na porta 3333
Após este processo, está "tudo" pronto para você rodar um serviço na porta 3389 da sua máquina virtual. Você deve mudar as suas configurações do VirtualBox. Acesse "Settings - Network - Attached to - Selecione Bridged Adpater", logo em seguida selecione o "Name" para tap0. Inicie sua máquina virtual e configure o ip da mesma manualmente da seguinte maneira:
IP: 192.168.0.150
Subnet Mask: 255.255.255.0 (verifique se a sua é essa na sua maquina real)
Default Gateway: 192.168.0.100 (ip da maquina real)
Agora sua Maquina virtual está com acesso normal a internet e também com a sua porta 3389 aberta, sendo que a mesma será acessada externamente por 3333.
Já que tive problemas com o '--' estou disponibilizando um link para download do mesmo. Arquivo para liberação de portas em firewall.
Espero que seja útil,
Matheus Bratfisch
PS: Não sei porque diabos em vez de ficar --flush por exemplo está ficando -flush. Então caso você tenha problemas com os comandos, tente adicionar o -- na frente do FLUSH, do out-interface, do in-interface, do dport e do "to". Foram nesses que eu encontrei problema, caso você tenha algum outro, avise-me.
Referencias:
IPtables Tutorial
IPTables Port Redirect
VirtualBox, com nat
VBoxManage Port Forward
isso tudo na máquina virtual ou na real?
A ideia é redirecionar coisas da internet por exemplo pra uma maquina virtual, entao como as informacoes na verdade chegam na maquina host voce precisa redirecionar do host pra vm.