Comment acheminer le trafic réseau d'un hôte via un autre hôte?

9

Je ne suis pas l'administrateur système de notre réseau d'entreprise, mais j'ai deux postes de travail Linux (hôtes A et B) avec un accès root aux deux.

Les deux hôtes peuvent bien se voir (ssh, ping, etc. fonctionne de l'un à l'autre). Cependant, seul l'hôte A peut atteindre notre pare-feu d'entreprise et accéder à Internet, etc.; l'hôte B ne peut pas.

Question: Comment pourrais-je avoir tout (et pas seulement HTTP) le trafic réseau sortant et entrant sur l'hôte B acheminé via l'hôte A, sans impliquer mon administrateur système? Pour le moment, je ne sais pas si j'aurais besoin d'utiliser NAT pour l'hôte B et / ou de faire de l'hôte A un serveur proxy et / ou de faire de l'hôte A un routeur.

Sur l'hôte B, j'ai essayé d'émettre une route add -host <HostA> gw <HostA's Gateway>commande, mais cela n'a pas fonctionné: je n'ai pas pu pingwww.google.com depuis l'hôte B. Veuillez excuser mon ignorance sur ce sujet de routage / réseau.

Harry
la source

Réponses:

16

Vous avez plusieurs solutions pour ce faire:

Manière plus simple: NAT

Faire de A un routeur en autorisant le transfert: sysctl net.ipv4.ip_forward=1 mettez net.ipv4.ip_forward=1dans /etc/sysctl.conf pour le rendre permanent.

Puis sur A, nat trafic en tapant: iptables -t nat -A POSTROUTING -o ethx -j MASQUERADE

Enfin sur B: acheminez tout le trafic via A:

ip route del default  
ip route add default via IP_of_A

Autre solution: Proxify ,

mais vous devez configurer tous les composants pour utiliser le proxy:

Sur B, ouvrez une connexion SSH à A avec cette commande:

ssh -D8000 -N -f user@IP_of_A 

Cela ouvrira une chaussette proxy sur B et relaiera tout le trafic via A. Si vous utilisez un navigateur Web par exemple, vous devrez configurer une chaussette proxy v5 sur 127.0.0.1 en écoutant sur le port 8000. Vous n'aurez pas besoin de configurer ip transfert ou toucher à des itinéraires.

DrGkill
la source
Lors de l'émission de la ip route addcommande, j'ai eu cette erreur:Error: either "to" is duplicate, or "gw" is a garbage.
Harry
Btw, DrGkill, je vous serais très reconnaissant de bien vouloir mentionner les autres moyens. Et aussi, un livre / ressource où ces concepts sont couverts de manière pratique. Je n'ai pas besoin de théorie semblable à Tannenbaum, mais plutôt de concepts et de commandes Linux réelles que je peux essayer et apprendre seraient utiles. Je ne sais pas si le [ faqs.org/docs/linux_network/index.html (daté du Guide de l'administrateur réseau Linux) apparemment daté est toujours à jour et couvre la recette que vous avez donnée ci-dessus. Merci beaucoup et que Dieu vous bénisse.
Harry
La syntaxe correcte est ip route add default viaou route add default gw.
quanta
Erreur éditée, plus la méthode proxy ajoutée. Prendre plaisir.
DrGkill
1
Merci quanta! La commande a été acceptée avec succès. Mais, quand je le fais maintenant ping www.google.com, j'obtiens une From hostA (<ipaddrOfHostA>) icmp_seq=1 Destination Host Prohibitederreur et 100% de perte de paquets.
Harry
1

Je pense que vous devrez désactiver votre pare-feu.

service iptables stop

Je ne sais pas si cela est nécessaire à la fois sur l'hôte A et l'hôte B, mais cela m'a permis de passer le message "Destination Host Prohibited"

Eric
la source