Eu fiz o tunelamento de clientes misto de linux e windows para um 'cliente dentro do firewall' (que poderia acessar o host do compartilhamento) antes, então sei que, pelo menos, isso é possível.
Mas e o tunelamento diretamente do cliente para o host do compartilhamento de rede?
Posso ter o samba escutando na porta, por exemplo, 5559 (apenas um exemplo), e aceitar apenas conexões do localhost, e encapsular o 5559 de um cliente para esse host - para que o cliente pareça estar se conectando ao host local do host? Eu não consigo descobrir como configurá-lo. Até agora, eu tenho o samba configurado:
hosts allow = 127.0.0.1 ::1 lo
interfaces = lo 127.0.0.1
bind interfaces only = yes
E estou tunelando a partir do host:
ssh -R 5559:localhost:5559 shrusr@shrhost -Nf
No entanto, se o samba já estiver sendo executado, o encaminhamento do TCP falhará. Se o túnel já está rodando, o samba não pode iniciar. É o que estou tentando realizar possível? Existe alguma outra maneira de fazer isso?
Parece que deve funcionar - eu posso até mesmo me atualizar arquivos através desse túnel ssh. Portanto, o netcat não tem problema em escutar a mesma porta que o ssh. Somente o smbd se recusa, e também bloqueia o ssh dessa porta se iniciado primeiro.
Qualquer conselho seria apreciado.