Eu quero ssh para minha virtualbox via porta padrão 22. Para fazer isso eu já ativei o encaminhamento de porta da virtualbox:
Anfitrião: 3022 - > VM: 22
tal que ssh -p 3022 127.0.0.1
funciona bem.
Agora eu quero adicionar outro encaminhamento de porta usando o iptables para conseguir:
Anfitrião: 22 - > Anfitrião: 3022 - > VM: 22
tal que ssh 127.0.0.1
, assim como de fora ssh host
, acabará na minha VM (claro que mudei a porta ssh do host de 22 para alguma outra porta).
Esta é a minha abordagem atual
echo '1' > /proc/sys/net/ipv4/conf/eno1/forwarding
iptables -t nat -A PREROUTING -p tcp -i eno1 --dport 22 -j DNAT --to-destination 127.0.0.1:3022
iptables -A FORWARD -p tcp -d 127.0.0.1 --dport 3022 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
Mas, infelizmente:
$ ssh localhost
ssh: connect to host localhost port 22: Connection refused
Eu me recuso.
Alguém pode me ajudar a descobrir o que está acontecendo?
EDITAR:
# netstat -lntu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:222 0.0.0.0:* LISTEN
tcp6 0 0 :::222 :::* LISTEN
udp 0 0 0.0.0.0:5353 0.0.0.0:*
udp 0 0 0.0.0.0:7001 0.0.0.0:*
udp 0 0 0.0.0.0:68 0.0.0.0:*
udp6 0 0 :::5353 :::*
Também é possível que minha maneira de aplicar as regras esteja incorreta. Meu sistema host é um gentoo (caso esta informação ajude) e eu não salvei as alterações do iptables. Os comandos acima são os únicos que eu digitei.
EDIT2: Eu encontrei a solução. Mude o dest. de 127.0.0.1:3022 a: 3022. 127.0.0.1 mapeia para a interface lo e as regras cobrem interfaces físicas, mas não o lo.
Tags ssh virtualbox iptables