Jak kierować ruchem sieciowym hosta za pośrednictwem innego hosta?

9

Nie jestem administratorem systemu w naszej sieci korporacyjnej, ale mam dwie stacje robocze Linux (hosty A i B) z dostępem root do obu.

Oba hosty widzą się dobrze (ssh, ping itp. Działają od jednego do drugiego). Jednak tylko host A może wyjść z naszej korporacyjnej zapory sieciowej i uzyskać dostęp do Internetu itp .; host B nie może.

Pytanie: Jak mogę mieć cały (a nie tylko HTTP) wychodzący i przychodzący ruch sieciowy na hoście B kierowany przez host A, bez angażowania administratora systemu? W tej chwili nie wiem, czy musiałbym użyć NAT dla hosta B i / lub uczynić hosta A serwerem proxy i / lub uczynić hosta A routerem.

Na hoście B próbowałem wydać route add -host <HostA> gw <HostA's Gateway>polecenie, ale to nie zadziałało: nie mogłem pingwww.google.com z hosta B. www.google.com. Proszę o wybaczenie mojej niewiedzy na temat routingu / sieci.

Złupić
źródło

Odpowiedzi:

16

Masz na to wiele rozwiązań:

Łatwiej: NAT

Stwórz A router zezwalając na przekazywanie: sysctl net.ipv4.ip_forward=1 Włóż net.ipv4.ip_forward=1/etc/sysctl.conf, aby był stały.

Następnie na A nat natic, wpisując: iptables -t nat -A POSTROUTING -o ethx -j MASQUERADE

Wreszcie na B: Przeprowadź cały ruch przez A:

ip route del default  
ip route add default via IP_of_A

Inne rozwiązanie: Proxify ,

ale musisz skonfigurować wszystkie składniki, aby korzystać z proxy:

Na B otwórz połączenie SSH z A za pomocą tego polecenia:

ssh -D8000 -N -f user@IP_of_A 

Spowoduje to otwarcie skarpety proxy na B i przekazywanie całego ruchu przez A. Jeśli używasz na przykład przeglądarki internetowej, musisz skonfigurować skarpetę proxy v5 na 127.0.0.1 nasłuchując na porcie 8000. Nie będziesz musiał konfigurować ip przekazywanie lub dotykanie do tras.

DrGkill
źródło
Po wydaniu ip route addpolecenia dostałem ten błąd:Error: either "to" is duplicate, or "gw" is a garbage.
Harry,
Btw, DrGkill, byłbym bardzo wdzięczny, gdybyś mógł również wspomnieć o innych sposobach. A także niektóre książki / zasoby, w których te pojęcia są omówione w praktyczny sposób. Nie potrzebuję teorii podobnej do Tannenbauma, a raczej koncepcje i aktualne polecenia Linuksa, które mogę wypróbować i nauczyć się, byłyby pomocne. Nie jestem pewien, czy pozornie datowany [ faqs.org/docs/linux_network/index.html](Link administratora sieci Linux ) jest nadal aktualny i obejmuje powyższy przepis. Wielkie dzięki i niech Bóg błogosławi.
Harry,
Prawidłowa składnia to ip route add default vialub route add default gw.
kwanty
Błąd edytowany, plus sposób dodania proxy. Cieszyć się.
DrGkill,
1
Dzięki kwanty! Polecenie zostało przyjęte pomyślnie. Ale kiedy teraz ping www.google.commam From hostA (<ipaddrOfHostA>) icmp_seq=1 Destination Host Prohibitedbłąd i 100% utraty pakietu.
Harry,
1

Uważam, że będziesz musiał wyłączyć zaporę.

service iptables stop

Nie jestem pewien, czy jest to konieczne w przypadku hosta A i hosta B, ale dostałem komunikat „Zabroniony host docelowy”

Eric
źródło