Dengan iptables cara merutekan lalu lintas dari adaptor internal virtualbox ke antarmuka eth0?

1

saya belajar iptables sedikit lebih dalam dan semuanya berjalan baik tetapi saya bingung dengan menggunakan DNAT, SNAT dan MASQUERADE, saya melakukan paractice dengan mereka dan tidak dapat menemukan cara untuk hanya mengarahkan lalu lintas dari satu antarmuka ke antarmuka lain seperti yang saya coba rute traffic dari virtualbox host-only adapter ke eth0 (saya tidak benar-benar tahu apakah itu mungkin dengan iptables), saya menemukan beberapa posting di internet tentang topik ini (seperti routing antara wlan0 ke eth0 dll) dengan banyak sintaks iptables tetapi sepertinya tidak ada dapat bekerja, jadi siapa pun dapat memberikan sintaksis yang tepat untuk ini atau bahkan dapat mengatakan mungkin dengan beberapa tabel lain di iptables atau setidaknya penggunaan SNAT, DNAT dan MASQUERADE.

Mr.IT
sumber

Jawaban:

3

Sebelum datang ke iptables, itu bukan satu-satunya hal yang Anda butuhkan. Pertama, pada host Anda harus mengaktifkan penerusan IPv4,

 echo 1 > /proc/sys/net/ipv4/ip_forward

dan, pada tamu, Anda harus mengatur gateway default,

 ip route add default via 192.168.56.1 dev eth0

jika adaptor internal Anda menggunakan subnet 192.168.56.0/24(default), jika tidak ubahlah sesuai.

Adapun iptables: paket yang datang melalui adaptor internal dan mencoba untuk mencapai internet akan membawa sebagai alamat sumber tamu, yang pada LAN Anda tentu saja tidak ada yang tahu karena itu milik subnet yang berbeda 192.168.56.1,. Jadi itu tidak akan pernah menerima balasan. Jadi kita membutuhkan iptablesaturan yang akan menulis ulang alamat sumber menjadi milik host, yang dapat dijangkau oleh router / modem / gateway Anda. iptablesitu sendiri akan melacak koneksi sehingga paket balasan akan dikirim dengan benar ke tamu, bukannya ditahan oleh tuan rumah; tidak perlu bagi kita untuk melakukan apa pun.

Kedua iptablesaturan ini akan berfungsi,

    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 
    iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.1.15

(di atas menyatakan bahwa host memiliki alamat IP 192.168.1.15 dan terhubung ke modem / gateway / router Anda melalui eth0; jika tidak, ubah sesuai dengan itu). Perbedaan antara kedua pernyataan ini jelas: dengan SNAT Anda harus secara eksplisit menyatakan alamat IP antarmuka, dengan MASQUERADE Anda tidak. Jadi, jika karena alasan apa pun alamat IP antarmuka Anda berubah, aturan dengan SNAT tidak lagi benar, sedangkan yang dengan MASQUERADE (yang memeriksa alamat IP setiap kali digunakan) Anda tidak perlu menyesuaikan aturan. Jelas, MASQUERADE sedikit lebih lambat dari SNAT.

Secara pribadi, saya lebih suka MASQUERADE karena membuat konfigurasi firewall saya portabel, tetapi, seperti yang mereka katakan, YMMV.

MariusMatutiae
sumber
0
iptables -t nat -A POSTROUTING -s 192.168.56.0/24 -d 0/0 -j MASQUERADE

Ganti 192.168.56.0/24dengan alamat jaringan Khusus Host Anda dan itu akan berfungsi.

Tapi itu akan menjadi satu arah dari Host_only jaringan ethX / wlanX dan lebih jauh menggunakan gateway default yur pada host, jika Anda ingin pergi ke arah yang berlawanan maka semua perangkat Anda harus memiliki gateway default yang menunjuk ke alamat IP Anda ethX / wlanX Anda

Piotr Kilar
sumber
Terima kasih kawan, tetapi bisakah Anda menjelaskan kalimat terakhir Anda bagaimana membuatnya dua arah.
Mr.IT