Bagaimana cara merutekan lalu lintas jaringan suatu host melalui host lain?

9

Saya bukan Administrator Sistem jaringan perusahaan kami, tetapi saya punya dua workstation Linux (host A dan B) dengan akses root ke keduanya.

Kedua host dapat saling melihat dengan baik (ssh, ping, dll berfungsi dari satu ke yang lain). Namun, hanya host A yang dapat menjangkau firewall perusahaan kami dan mengakses Internet dll; host B tidak bisa.

Pertanyaan: Bagaimana saya bisa mendapatkan semua (dan bukan hanya HTTP) lalu lintas jaringan keluar dan masuk di host B dialihkan melalui host A, tanpa melibatkan Administrator Sistem saya? Saat ini, saya tidak tahu apakah saya perlu menggunakan NAT untuk host B, dan / atau menjadikan host A sebagai server proxy, dan / atau menjadikan host A router.

Pada Host B, saya mencoba mengeluarkan route add -host <HostA> gw <HostA's Gateway>perintah, tetapi tidak berhasil: Saya tidak dapat pingwww.google.com dari Host B. Mohon maafkan ketidaktahuan saya tentang masalah routing / jaringan ini.

Harry
sumber

Jawaban:

16

Anda memiliki beberapa solusi untuk melakukan ini:

Cara yang lebih mudah: NAT

Jadikan A router dengan memungkinkan penerusan: sysctl net.ipv4.ip_forward=1 Masukkan net.ipv4.ip_forward=1/etc/sysctl.conf untuk membuatnya permanen.

Kemudian pada A, nat trafik dengan mengetik: iptables -t nat -A POSTROUTING -o ethx -j MASQUERADE

Akhirnya di B: Rute semua lalu lintas melalui A:

ip route del default  
ip route add default via IP_of_A

Solusi lain: Proksi ,

tetapi Anda perlu mengatur semua komponen untuk menggunakan proxy:

Pada B, buka koneksi SSH ke A dengan perintah ini:

ssh -D8000 -N -f user@IP_of_A 

Ini akan membuka kaus kaki proxy pada B dan menyampaikan semua lalu lintas melalui A. Jika Anda menggunakan browser web misalnya, Anda harus menyiapkan proxy kaus kaki v5 pada 127.0.0.1 mendengarkan pada port 8000. Anda tidak perlu mengatur ip meneruskan atau menyentuh rute.

DrGkill
sumber
Pada mengeluarkan ip route addperintah, saya mendapat kesalahan ini:Error: either "to" is duplicate, or "gw" is a garbage.
Harry
Btw, DrGkill, saya akan sangat, SANGAT menghargai jika Anda juga bisa menyebutkan cara lain. Dan juga, beberapa buku / sumber daya di mana konsep-konsep ini dibahas secara praktis. Saya tidak memerlukan teori seperti Tannenbaum, melainkan konsep dan perintah Linux aktual yang dapat saya coba dan pelajari akan sangat membantu. Tidak yakin, jika tanggal [ faqs.org/docs/linux_network/index.html[(Linux Panduan Administrator Jaringan) masih berlaku dan mencakup resep yang Anda berikan di atas. Terima kasih banyak dan Tuhan memberkati.
Harry
Sintaks yang benar adalah ip route add default viaatau route add default gw.
quanta
Kesalahan diedit, ditambah cara proxy ditambahkan. Nikmati.
DrGkill
1
Kuanta terima kasih! Perintah itu berhasil diterima. Tapi, saat saya sekarang ping www.google.com, saya mendapatkan From hostA (<ipaddrOfHostA>) icmp_seq=1 Destination Host Prohibitedkesalahan, dan paket loss 100%.
Harry
1

Saya yakin Anda harus menonaktifkan firewall Anda.

service iptables stop

Tidak yakin apakah itu perlu di kedua Host A & Host B, tapi itu membuat saya lulus pesan "Destination Host Prohibited"

Eric
sumber