Especificación de la interfaz saliente para el túnel SSH

Especificación de la interfaz saliente para el túnel SSH

Tengo una máquina con dos direcciones IP públicas en dos interfaces. Esta máquina está funcionando sshd. ¿Hay alguna manera de especificar, al crear un túnel con una interfaz SOCKS (es decir -D), qué interfaz usar para las conexiones salientes?

Respuesta1

Estrictamente hablando, puede resolver su problema mediante una combinación de la opción -b en ssh, como lo sugiere mgjk, y el enrutamiento. Supongamos que está intentando construir un túnel hacia el sitio 8.8.8.7 (solo un ejemplo ficticio) y desea que la conexión pase por eth1, luego el comando

 sudo route add -host 8.8.8.7 dev eth1

Agregará una ruta adecuada y todo debería estar bien.

Sin embargo, este es también el caso perfecto de aplicación del "enrutamiento de políticas". Implica configurar la tabla de enrutamiento en la máquina configurando el túnel (es deciraquel en el que el comandossh-D...se emite) simplemente porque es el único en el que existen las dos interfaces.

David Schwartz da una explicación concisa pero suficienteen este mismo sitio. El único detalle importante es: digamos que eth0 es 192.168.1.2 y eth1 es 10.0.0.2, entonces puede decir

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

En este punto, puede vincular su conexión ssh mediante -b a la dirección de eth1 y listo.

Respuesta2

¿Qué sucede cuando usas -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.

información relacionada