Especificando interface de saída para túnel SSH

Especificando interface de saída para túnel SSH

Tenho uma máquina com dois endereços IP públicos em duas interfaces. Esta máquina está funcionando sshd. Existe uma maneira de especificar, ao criar um túnel com interface SOCKS (ou seja -D), qual interface usar para conexões de saída?

Responder1

Estritamente falando, você pode resolver seu problema combinando a opção -b no ssh, conforme sugerido por mgjk, e roteamento. Suponha que você esteja tentando construir um túnel para o site 8.8.8.7 (apenas um exemplo fictício) e queira que a conexão passe pela eth1, então o comando

 sudo route add -host 8.8.8.7 dev eth1

adicionará uma rota adequada e tudo ficará bem.

No entanto, este também é o caso perfeito de aplicação para “roteamento de políticas”. Implica configurar a tabela de roteamento na máquina que configura o túnel (ou sejaaquele em que o comandossh-D...é emitido) simplesmente porque é o único em que existem duas interfaces.

Uma explicação concisa, mas suficiente, é dada por David Schwartzneste mesmo site. O único detalhe importante é: digamos que eth0 seja 192.168.1.2 e eth1 seja 10.0.0.2, então você pode dizer

 ip rule add from 10.0.0.2 table <NAME1>
 ip rule add from 192.168.1.2 table <NAME2>

Neste ponto, você pode vincular sua conexão ssh via -b ao endereço da eth1 e pronto.

Responder2

O que acontece quando você usa -b?

 -b bind_address
         Use bind_address on the local machine as the source address of
         the connection.  Only useful on systems with more than one
         address.

informação relacionada