¿Cómo enrutar el tráfico de red de un host a través de otro host?

9

No soy el administrador del sistema de nuestra red corporativa, pero tengo dos estaciones de trabajo Linux (hosts A y B) con acceso raíz a ambas.

Ambos hosts pueden verse bien (ssh, ping, etc. funciona de uno a otro). Sin embargo, solo el host A puede alcanzar nuestro firewall corporativo y acceder a Internet, etc. el host B no puede.

Pregunta: ¿Cómo podría tener todo (y no solo HTTP) tráfico de red saliente y entrante en el host B enrutado a través del host A, sin involucrar a mi administrador del sistema? En este momento, no sé si necesitaría usar NAT para el host B, y / o hacer que el host A sea un servidor proxy, y / o hacer que el host A sea un enrutador.

En el Host B, intenté emitir un route add -host <HostA> gw <HostA's Gateway>comando, pero no funcionó: no pude pingwww.google.com desde el Host B. Por favor, perdone mi ignorancia sobre este tema de enrutamiento / redes.

Harry
fuente

Respuestas:

16

Tienes múltiples soluciones para hacer esto:

Manera más fácil: NAT

Hacer una un router al permitir el reenvío: sysctl net.ipv4.ip_forward=1 Poner net.ipv4.ip_forward=1en /etc/sysctl.conf para que sea permanente.

Luego, en A, nat trafic escribiendo: iptables -t nat -A POSTROUTING -o ethx -j MASQUERADE

Finalmente en B: enruta todo el tráfico a través de A:

ip route del default  
ip route add default via IP_of_A

Otra solución: Proxify ,

pero necesita configurar todos los componentes para usar el proxy:

En B, abra una conexión SSH a A con este comando:

ssh -D8000 -N -f user@IP_of_A 

Esto abrirá un calcetín proxy en B y retransmitirá todo el tráfico a través de A. Si utiliza un navegador web, por ejemplo, necesitará configurar un calcetín proxy v5 en 127.0.0.1 escuchando en el puerto 8000. No necesitará configurar ip reenviar o tocar rutas.

DrGkill
fuente
Al emitir el ip route addcomando, recibí este error:Error: either "to" is duplicate, or "gw" is a garbage.
Harry
Por cierto, DrGkill, agradecería enormemente que también pudieras mencionar las otras formas. Y también, algún libro / recurso donde estos conceptos están cubiertos de manera práctica. No necesito una teoría similar a Tannenbaum, más bien conceptos y comandos reales de Linux que puedo probar y aprender serían útiles. No estoy seguro, si la fecha aparentemente actualizada [ faqs.org/docs/linux_network/index.htmlfont>(Linux Network Administrator's Guide) todavía está actualizada y cubre la receta que proporcionó anteriormente. Muchas gracias y que Dios los bendiga.
Harry
La sintaxis correcta es ip route add default viao route add default gw.
quanta
Error editado, más la forma proxy agregada. Disfrutar.
DrGkill
1
Gracias quanta! El comando fue aceptado con éxito. Pero, cuando ahora ping www.google.com, recibo un From hostA (<ipaddrOfHostA>) icmp_seq=1 Destination Host Prohibitederror y 100% de pérdida de paquetes.
Harry
1

Creo que tendrá que deshabilitar su firewall.

service iptables stop

No estoy seguro de si eso es necesario tanto en el host A como en el host B, pero me hizo pasar el mensaje "Host de destino prohibido"

Eric
fuente