¿Cómo enviar tráfico a una dirección IP específica a través de una interfaz específica?

¿Cómo enviar tráfico a una dirección IP específica a través de una interfaz específica?

En una máquina virtual Debian Stretch (que se ejecuta en VirtualBox en un host de Windows 7), me gustaría conectarme a través de SSH a un host remoto específico (llamémoslo myServer, con IP 12.34.56.78). Para hacerlo, estoy usando mi teléfono inteligente Android como módem USB, que funciona bien: puedo acceder a Internet y generar algo de 'ping' y tráfico HTTP/HTTPS, e incluso abrir una conexión SSH con un comando como:

ssh [email protected] -b a.b.c.d -p portNumber -i ~/.ssh/id_rsa

NB: a.b.c.d¿es la dirección IP dinámica asignada a mi interfaz USB al realizar la conexión?

Para facilitar las cosas, me gustaría tener todas estas configuraciones ~/.ssh/configpara que solo tenga que escribir ssh myServer:

Host myServer
    HostName 12.34.56.78
    Port portNumber
#   BindAddress a.b.c.d     <== commented because this is part of the question
#   BindInterface usb0      <== same as above
    User httqm
    IdentityFile ~/.ssh/id_rsa
  • Puedo descomentar la BindAddresslínea y especificar la dirección IP, lo cual funciona pero no proporciona ninguna ganancia en comparación con la línea de comando SSH completa ya que a.b.c.des dinámica.
  • utilizando elInterfaz de enlaceLa opción (sin BindAddress) falla con un mensaje de error:

    ~/.ssh/config: line 154: Bad configuration option: bindinterface
    ~/.ssh/config: terminating, 1 bad configuration options
    

Se espera este mensaje de error ya que BindInterfaceOpenssh 7.7 introdujo la directiva (https://www.openssh.com/releasenotes.html) mientras que tengo:

$ dpkg -l openssh-client
openssh-client      1:7.4p1-10+deb9u6

Para solucionar este problema, estoy considerando varias soluciones:

  1. definir una ruta con ip route ...comandos para que todo lo dirigido myServerpase por la interfaz USB. Hasta ahora he probado comandos como este:

    ip route add to 12.34.56.78 protocol static dev usb0
    

El comando en sí no devuelve ningún error, pero no puedo abrir una conexión SSH con ssh myServer, ni siquiera puedo hacer ping.

  1. Defina una regla de Netfilter para que todo el tráfico hacia/desde 12.34.56.78 pase por la interfaz usb0. ¿Eso funcionaría siquiera? ¿Debería investigar esta solución?

  2. actualizar openssh-clientdesde backports si está disponible

¿Puede explicar cuál funcionaría o no (y por qué)? ¿Qué sugeriría para alcanzar mi objetivo, que es conectarme a mi host SSH con una línea de comando corta, como ssh myServerconsiderar que mi dirección de origen es dinámica?

información relacionada