virtualbox guest os melalui vpn

43

Saya memiliki tamu Oracle Linux yang menjalankan server web di VirtualBox pada Windows 7 Host. Saya perlu mengatur jaringan agar saya dapat melakukan 3 hal:

  1. tuan rumah dapat terhubung ke tamu melalui browser dan ssh
  2. tamu dapat berbicara dengan server lain di jaringan internal melalui VPN host
  3. tamu dapat mencapai internet luar

Saya telah membaca beberapa jawaban dan mencoba beberapa konfigurasi, dan inilah yang terjadi:

Dijembatani

  1. tuan rumah tidak dapat menjangkau tamu
  2. tamu tidak dapat melihat melalui VPN
  3. tamu dapat mencapai internet

NAT

  1. tuan rumah tidak dapat menjangkau tamu
  2. tamu dapat melihat melalui VPN
  3. tamu tidak dapat menjangkau internet

Hanya Host

semua 3 kondisi gagal.

NAT-Network

  1. tuan rumah tidak dapat menjangkau tamu
  2. tamu dapat melihat melalui VPN
  3. tamu tidak dapat menjangkau internet

Saya juga harus menunjukkan bahwa kadang-kadang host terhubung melalui VPN sementara di lain waktu itu hanya terhubung langsung ke jaringan perusahaan. Ketika dicolokkan langsung ke dalam, adaptor yang terhubung memenuhi semua 3 kondisi. Idealnya, akan ada konfigurasi yang memenuhi semua 3 kondisi terlepas dari apakah ada VPN atau koneksi langsung.

ewok
sumber
Koneksi VPN biasanya memiliki adaptornya sendiri, jadi pemikiran pertama saya adalah Anda harus menjembataninya dengan adaptor VPN (saat terpasang ke VPN).
Ƭᴇcʜιᴇ007
Saya menjembatani VM ke adaptor VPN dan tidak mendapatkan alamat IP
ewok
Bisakah Anda mengatakan apakah ini adaptor layer2 atau layer3?
MariusMatutiae
@MariusMatutiae maaf, tidak yakin apa yang Anda maksud.
ewok
VPN jenis apa itu?
MariusMatutiae

Jawaban:

63

Saya memiliki masalah yang sama persis , dan melihat ke resolusi, jadi saya senang menjelaskan masalah dan solusi secara rinci.

Tanpa Melibatkan VPN

Penting untuk memahami konfigurasi yang diperlukan untuk memenuhi persyaratan Anda tanpa melibatkan VPN. Juga, informasi ini mengasumsikan bahwa tidak ada firewall perangkat lunak yang mengganggu, baik pada host maupun tamu.

Tanpa VPN, ini biasanya diselesaikan dengan membuat dua adapter jaringan dalam konfigurasi mesin virtual.

Adaptor pertama harus disetel ke NATmode, yang memungkinkan tamu mengakses sumber daya jaringan (termasuk Internet) melalui antarmuka jaringan host.

Adaptor 1: NAT

Adaptor kedua harus diatur ke Host-only, yang memungkinkan komunikasi dua arah antara tuan rumah dan tamu.

Adaptor ini sedikit lebih rumit untuk diatur daripada yang pertama, karena memerlukan modifikasi preferensi jaringan global VirtualBox untuk mengkonfigurasi adaptor khusus host (catatan: ini memerlukan hak istimewa Administrator).

Di VirtualBox, buka File -> Preferences -> Network. Klik Host-only Networkstab dan klik +ikon kecil untuk menambahkan adaptor baru. Anda akan diminta untuk meningkatkan izin VirtualBox.

Mengisi Adaptertab adalah wajib; seharusnya terlihat seperti ini (abaikan adaptor yang berlabel #2; itu digunakan untuk sesuatu yang tidak terkait):

Preferensi Jaringan 1

Nilai pada DHCPtab server bersifat opsional. Jika Anda bermaksud melakukan hard-code alamat IP untuk adaptor ini dalam konfigurasi jaringan tamu, maka nilai-nilai ini tidak perlu. Sebaliknya, jika Anda bermaksud menggunakan DHCP, nilainya mungkin terlihat seperti ini:

Preferensi Jaringan 2

Langkah terakhir berkaitan dengan mengkonfigurasi VirtualBox adalah kembali ke konfigurasi jaringan VM dan menambahkan adaptor kedua, yang merujuk pada adaptor khusus host yang baru saja kita buat:

Adaptor 2: Khusus host

Sekarang, dalam sistem operasi tamu, jaringan harus dikonfigurasikan untuk memanfaatkan kedua antarmuka jaringan ini.

Pada Debian atau Ubuntu GNU / Linux, konfigurasinya semudah memodifikasi /etc/network/interfacesagar terlihat seperti ini:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

# The secondary network interface
auto eth1
iface eth1 inet static
     address 192.168.56.101
     netmask 255.255.255.0

(purist mungkin lebih suka menggunakan /etc/network/interfaces.ddirektori saja, tapi itu di luar cakupan penjelasan ini)

Mulai ulang layanan jaringan tamu, atau lebih sederhana, mulai ulang seluruh VM tamu, dan semuanya harus "hanya berfungsi".

Pada titik ini, seseorang harus dapat melakukan ping ke VM tamu 192.168.56.101dan menerima balasan (asalkan firewall perangkat lunak tidak mengganggu).

Demikian juga, seseorang harus dapat melakukan ping host 10.0.2.2. Alamat IP ini tampaknya "dikodekan" ke dalam implementasi NAT VirtualBox, atau setidaknya ditentukan melalui beberapa petunjuk konfigurasi yang tidak jelas, dan ada sedikit informasi yang tersedia mengenai asal-usulnya. Tapi, sayangnya, "itu hanya berhasil".

Dengan konfigurasi ini, ketiga kondisi yang dijabarkan dalam pertanyaan Anda terpenuhi.

Masukkan: VPN

Tapi, ini intinya. Memperkenalkan VPN menyebabkan masalah penghentian (baik, tergantung pada VPN spesifik dan konfigurasinya).

VPN modern mampu Split Tunneling , yang diperlukan untuk konfigurasi VirtualBox yang disebutkan di atas agar berfungsi sesuai dengan tiga persyaratan Anda. Untuk alasan keamanan (baik), split tunneling sering dinonaktifkan, dan justru inilah masalah dalam kasus Anda (dan milik saya).

Ketika Anda terhubung ke VPN, klien VPN (Cisco AnyConnect Secure Mobility Client, 3.1.02026, dalam kasus saya) memeriksa tabel perutean komputer host, mengingatnya, dan kemudian mengasahnya dengan nilai-nilai yang biasanya berasal dari beberapa terpusat- lokasi terkelola (yaitu, bahkan dengan hak istimewa Administrator lokal, tidak mungkin untuk menimpa pengaturan).

Anda dapat memeriksa sendiri tabel perutean dengan membuka command.exe(pada Windows):

C:\>route print

Sebelum menghubungkan ke VPN, tabel perutean berisi entri penting yang memungkinkan konfigurasi VirtualBox ini berfungsi dengan benar. Menghubungkan ke VPN menyebabkan entri-entri ini dihapus, yang mencegah komunikasi antara tuan rumah dan tamu.

(Ada banyak entri lain, yang telah saya hilangkan di sini, karena tidak relevan dengan akar penyebab perilaku ini.)

Sebelum menghubungkan ke VPN:

     192.168.56.0    255.255.255.0         On-link      192.168.56.1    266
     192.168.56.1  255.255.255.255         On-link      192.168.56.1    266
   192.168.56.255  255.255.255.255         On-link      192.168.56.1    266
        224.0.0.0        240.0.0.0         On-link      192.168.56.1    266
  255.255.255.255  255.255.255.255         On-link      192.168.56.1    266

Setelah terhubung ke VPN:

     192.168.56.1  255.255.255.255         On-link      192.168.56.1    266
        224.0.0.0        240.0.0.0         On-link      192.168.56.1    266
  255.255.255.255  255.255.255.255         On-link      192.168.56.1    266

Klien VPN menghapus baris berikut:

     192.168.56.0    255.255.255.0         On-link      192.168.56.1    266
   192.168.56.255  255.255.255.255         On-link      192.168.56.1    266

Tanpa dua entri terakhir itu, tuan rumah dan tamu tidak dapat berkomunikasi, dan ini justru perilaku yang dimaksudkan ketika pemisahan terowongan dinonaktifkan dalam konfigurasi VPN.

Biasanya, kedua perintah ini akan mengembalikan rute tersebut:

C:\>route ADD 192.168.56.0 MASK 255.255.255.0 192.168.56.1 METRIC 266
C:\>route ADD 192.168.56.255 MASK 255.255.255.255 192.168.56.1 METRIC 266

Tetapi klien VPN tetap waspada: ia memotong upaya untuk memodifikasi tabel routing. Klien saya tampaknya mengizinkan entri kedua, tetapi bukan yang pertama. (Dan itu dapat membuka keduanya secara berkala; saya tidak menguji untuk itu.)

Jika VPN spesifik Anda dan konfigurasi yang menyertainya memungkinkan untuk tunnel split diaktifkan, biasanya dinyalakan seperti ini:

Klien Cisco VPN: memungkinkan akses ke sumber daya LAN

Setelah memutuskan sambungan dari VPN, klien VPN yang berperilaku baik akan mengembalikan tabel perutean yang ada sebelum menghubungkan. Klien VPN saya tampaknya melakukan ini dengan andal, yang bermanfaat karena itu berarti VM tamu tidak perlu dihidupkan ulang ketika saya terhubung ke, atau memutuskan sambungan dari, VPN. Dalam kasus seperti itu, adaptor sekunder VM direset, tetapi memperoleh kembali alamat IP-nya secara otomatis dan transparan, memulihkan komunikasi antara tuan rumah dan tamu dengan segera. Lebih baik lagi, NFS mount antara host dan guest (Saya menggunakan mount CIFS) tetap terhubung di seluruh operasi koneksi VPN / putuskan.

Jika VPN Anda memungkinkan tunneling terbagi, mungkin ini adalah masalah sederhana untuk mengaktifkannya, dalam hal ini, saya ingin mendengar dari Anda apakah "semuanya hanya berfungsi" atau tidak.

Ben Johnson
sumber
5
Terima kasih banyak atas semua upaya dalam jawaban ini (gambar dan semua). Ini banyak membantu penjelasan Anda!
Edenshaw
Bagus, Ben! Ini membantu saya memahami masalah saya dengan VPN dan membantu saya mengartikulasikan kasus saya dengan jelas dalam laporan kejadian saya ke IT!
Mark Maglana
1
FYI, saya memiliki akses ke fitur "Izinkan akses lokal (LAN)" di AnyConnect dan saya dapat mengonfirmasi bahwa mencentang kotak ini tidak mencegah rute dari dihapus.
Lqueryvg
-1

Bagaimana saya menggunakan windows host vpn di mesin linux mint tamu

Atur vpn saya untuk menggunakan nomor port tetap dalam pengaturan

Atur jaringan vm ke NAT

Atur pengaturan proxy linux pada ip 10.0.2.2 (Default virtualbox NAT Gateway) dan porta yang saya masukkan secara manual vpn saya

mustafa candan
sumber