Як маршрутизувати мережевий трафік хоста через інший хост?


9

Я не системний адміністратор нашої корпоративної мережі, але у мене є дві робочі станції Linux (хости A і B) з кореневим доступом до обох.

Обидва хости можуть бачити один одного чудово (ssh, ping тощо працює від одного до іншого). Однак тільки господар A може вийти з нашого корпоративного брандмауера та отримати доступ до Інтернету тощо; хост B не може.

Питання: Як я можу весь (і не лише HTTP) мережу трафіку вихідного та вхідного мереж на хості B здійснювати через хост А без участі мого системного адміністратора? Зараз я не знаю, чи потрібно мені використовувати NAT для хоста B та / або зробити хост A проксі-сервером та / або зробити хост A маршрутизатором.

На хості B я спробував видати route add -host <HostA> gw <HostA's Gateway>команду, але це не спрацювало: мені не вдалося pingwww.google.com від Host B. Пробачте про моє незнання з цього приводу маршрутизації / створення мережі.

Відповіді:


16

У вас є кілька рішень для цього:

Найпростіший спосіб: NAT

Зробіть маршрутизатор, дозволяючи переадресовувати: sysctl net.ipv4.ip_forward=1 Введіть net.ipv4.ip_forward=1/etc/sysctl.conf, щоб зробити його постійним.

Потім на A, nat trafic, набравши: iptables -t nat -A POSTROUTING -o ethx -j MASQUERADE

Нарешті на B: прокладіть увесь трафік через A:

ip route del default  
ip route add default via IP_of_A

Інше рішення: Proxify ,

але вам потрібно налаштувати всі компоненти, щоб використовувати проксі:

На B відкрийте SSH-з'єднання з A за допомогою цієї команди:

ssh -D8000 -N -f user@IP_of_A 

Це відкриє проксі-носок на B і ретрансляцію всього трафіку через А. Якщо ви використовуєте, наприклад, веб-браузер, вам потрібно буде встановити проксі-носок v5 на 127.0.0.1, слухаючи порт 8000. Вам не знадобиться налаштовувати ip переадресація або торкання до маршрутів.


При видачі ip route addкоманди я отримав цю помилку:Error: either "to" is duplicate, or "gw" is a garbage.
Гаррі

Btw, DrGkill, я б дуже вдячний, якби ви могли також згадати інші способи. А також деякі книги / ресурси, де ці поняття висвітлюються практично. Мені не потрібна теорія, схожа на Танненбаума, скоріше поняття та фактичні команди Linux, які я можу спробувати та дізнатися, були б корисними. Не впевнений, якщо по всій видимості датований [ faqs.org/docs/linux_network/index.htmlSense(Linux керівництво мережевого адміністратора) все ще є актуальним та охоплює рецепт, який ви подали вище. Велике спасибі і Бог благослови.
Гаррі

Правильним синтаксисом є ip route add default viaабо route add default gw.
кванта

Помилка відредагована, а також доданий спосіб проксі. Насолоджуйтесь.
DrGkill

1
Дякую кванту! Команда була успішно прийнята. Але, коли я зараз ping www.google.com, я отримую From hostA (<ipaddrOfHostA>) icmp_seq=1 Destination Host Prohibitedпомилку та 100% втрати пакету.
Гаррі

1

Я вірю, що вам потрібно буде відключити брандмауер.

service iptables stop

Не впевнений, чи потрібно це для обох хостів A і хостингу B, але це все-таки перешло повідомлення "Заборонено прийому хоста"

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.