Estou assumindo que você está falando de um "túnel" de porta de encaminhamento SSH - Se você executar (por exemplo) ssh -L 8080:B:80 user@B
no host A e não tiver feito nada de bom em sua configuração SSH, a resposta é que não há risco de "retrolavagem" do hospedeiro B.
O comando acima abre um ouvinte no endereço de loopback local do host A (127.0.0.1 / :: 1) na porta 8080.
Quando você envia tráfego para esse ouvinte, ele é enviado pela conexão SSH ao outro lado para a porta 80 do Host B.
As respostas do host B retornam ao longo do túnel, mas o host B não pode inicie novas conexões de volta ao host A - é um único encaminhamento de porta, não um túnel totalmente aberto.
Em relação à segunda parte da sua questão (limitando o tráfego), por padrão, o SSH liga as portas encaminhadas ao host local, portanto, se você usar o comando acima, o host A será o único que poderá usar a conexão. A sintaxe completa da opção -L
é -L LocalIP:LocalPort:RemoteHost:RemotePort
, no entanto, a parte LocalIP é normalmente omitida e é padronizada para localhost.
Para mais informações, consulte as páginas man do OpenSSH .