Menghalakan trafik VM pada rangkaian host-only melalui pelayan TUN OpenVPN
Kekalkan terowong dan awalan host-only berasingan, tolak laluan tetamu, kemudian beri setiap mesin maya laluan pulang yang disengajakan melalui hos.
Penyesuai host-only mencipta rangkaian maya setempat, dan terowong TUN yang dihalakan membawa paket IP antara alamat. Kedua-duanya bukan jambatan ke yang lain, sebab itu konfigurasi yang berfungsi mesti menyatakan siapa yang memajukan dan milik siapa laluan pulang. Jika dua penetapan itu tertukar, tetamu menjawab terowong dengan sumber yang tidak pernah diminta oleh klien terowong. Reka bentuk di bawah mengekalkan kedua-dua awalan berasingan dan menjadikan laluan pulang eksplisit.
Dua rangkaian, dua awalan
Beri kolam terowong dan rangkaian host-only awalan yang berbeza dan jangan sekali-kali guna satu untuk yang lain. Dalam contoh ini kolam VPN ialah 10.44.0.0/24 dan rangkaian host-only ialah 192.168.99.0/24, dengan hos pada 192.168.99.1 dan tetamu pada 192.168.99.20. Memberi awalan yang sama kepada peranti TUN dan penyesuai host-only tidak menyatukan keduanya. Ia mencipta dua tuntutan ke atas satu julat alamat, dan jadual penghalaan kemudian menjawab bagi tuntutan yang kebetulan dikekalkan.
Penyesuai host-only wujud pada hos dan di dalam tetamu, dan ia tidak mempunyai laluan keluar dari mesin itu sendiri. Sambungan jambatan dan NAT mempunyai pendedahan berbeza, dan beralih ke mod jambatan bukan syarat untuk mencapai satu perkhidmatan tetamu.
Hos sudah memegang laluan itu
Lihat apa yang sudah ada sebelum menambah apa-apa. Hos mempunyai antara muka pada rangkaian host-only dan laluan untuk awalan itu, kedua-duanya dicipta apabila penyesuai naik.
ip -br addr show
ip route show 192.168.99.0/24
sysctl net.ipv4.ip_forward
Baris ketiga ialah mekanisme yang menjadikan hos sebagai lompatan. Tanpanya, paket yang tiba dari terowong dialamatkan ke rangkaian yang hos boleh capai tetapi tidak akan majukan. Pemajuan perlu dan tidak mencukupi. Dasar penapisan masih menentukan sama ada aliran tertentu antara antara muka terowong dan antara muka host-only dibenarkan, dan keputusan itu harus ditulis, bukan dalam dasar lalai yang tidak dibaca sesiapa.
Tolak laluan itu, kemudian tapis apa yang dicapainya
Pelayan boleh membekalkan awalan host-only kepada klien yang menerima laluan yang ditolak, iaitu mekanisme yang sama digunakan untuk mana-mana subrangkaian lain di belakang terowong.
push "route 192.168.99.0 255.255.255.0"
iptables -A FORWARD -i tun0 -o vboxnet0 -d 192.168.99.20 -p tcp --dport 5432 -j ACCEPT
iptables -A FORWARD -i vboxnet0 -o tun0 -s 192.168.99.20 -p tcp --sport 5432 -m conntrack --ctstate ESTABLISHED -j ACCEPT
Dua peraturan itu membenarkan satu perkhidmatan dalam satu arah dan balasannya. Laluan yang mencapai seluruh awalan dan penapis yang membenarkan satu port ialah gabungan yang disengajakan; laluan serta penerimaan tanpa syarat ialah cara perkhidmatan makmal menjadi perkhidmatan yang terdedah. Laluan yang ditolak juga bukan kebenaran. Klien menerimanya, hos memajukannya, dan tembok api tetamu serta perkhidmatan itu sendiri masih bersuara.
Tetamu memerlukan jalan pulang
Tetamu yang dicapai dari 10.44.0.x mesti menghantar balasannya ke alamat host-only hos, atau hos mesti menterjemah sumbernya. Menerima alamat daripada DHCP VirtualBox tidak menyatakan apa-apa tentang mana-mana satu susunan itu.
ip route add 10.44.0.0/24 via 192.168.99.1 dev enp0s8
ip route get 10.44.0.15
Menambah laluan itu di dalam tetamu mengekalkan sumber asal, yang memastikan dasar dan log bagi setiap klien kekal bermakna. Penterjemahan sumber terhad pada hos ialah alternatifnya, dan ia berfungsi, dengan kos menyembunyikan klien mana yang bersambung. Pertindihan ialah mod kegagalan yang lain. Klien jauh yang LAN rumahnya sudah menggunakan 192.168.99.0/24 akan membaca laluan yang ditolak sebagai rangkaiannya sendiri, dan tiada perubahan di sebelah pelayan membetulkan kekaburan itu. Nomborkan semula satu pihak atau pilih awalan yang tidak mungkin berlanggar.
Peranti TUN membawa paket IP, jadi menambah gerbang lalai di dalam tetamu tidak menjadikan terowong itu segmen Ethernet dengan penyesuai host-only. Jambatan TAP ialah reka bentuk lain dengan sokongan klien dan pemilikan alamatnya sendiri, dan mencampurkan kedua-dua huraian membawa kepada konfigurasi yang tidak pernah menumpu.
Sahkan, kemudian pastikan ia bertahan selepas dimulakan semula
Uji satu perkhidmatan tidak berbahaya dari klien jauh biasa, semak laluan pulang tetamu, dan pastikan perkhidmatan yang anda tidak benarkan ditolak dan bukan lambat.
ss -lntp '( sport = :5432 )'
conntrack -L | grep 192.168.99.20
Kemudian mula semula perkhidmatan VPN dan rangkaian mesin maya, dan ulangi tiga pemeriksaan yang sama. Laluan yang ditambah dengan tangan bertahan sehingga but semula seterusnya, dan konfigurasi yang hanya berfungsi dalam sesi hangat bukan reka bentuk. Catat kedua-dua awalan, dasar pemajuan dan laluan tetamu bersama-sama. Sesiapa yang menambah mesin maya seterusnya akan memerlukan ketiga-tiganya dan jika tidak akan menemuinya semula satu sambungan gagal demi satu.