virtualbox guest os ถึง vpn


43

ฉันมีแขกของ Oracle Linux ที่ใช้เว็บเซิร์ฟเวอร์ใน VirtualBox บนโฮสต์ Windows 7 ฉันต้องตั้งค่าเครือข่ายเพื่อที่ฉันจะได้ทำ 3 สิ่ง:

  1. โฮสต์สามารถเชื่อมต่อกับแขกผ่านเบราว์เซอร์และ ssh
  2. แขกสามารถพูดคุยกับเซิร์ฟเวอร์อื่น ๆ บนเครือข่ายภายในผ่าน VPN ของโฮสต์
  3. แขกสามารถเข้าถึงอินเทอร์เน็ตภายนอก

ฉันอ่านคำตอบสองสามข้อแล้วลองใช้การกำหนดค่าสองสามข้อและนี่คือสิ่งที่เกิดขึ้น:

สะพาน

  1. โฮสต์ไม่สามารถเข้าถึงแขก
  2. แขกไม่สามารถมองเห็นผ่าน VPN
  3. แขกสามารถเข้าถึงอินเทอร์เน็ต

NAT

  1. โฮสต์ไม่สามารถเข้าถึงแขก
  2. แขกสามารถดูผ่าน VPN
  3. แขกไม่สามารถเข้าถึงอินเทอร์เน็ต

โฮสต์เท่านั้น

เงื่อนไขทั้งหมด 3 ล้มเหลว

NAT เครือข่าย

  1. โฮสต์ไม่สามารถเข้าถึงแขก
  2. แขกสามารถดูผ่าน VPN
  3. แขกไม่สามารถเข้าถึงอินเทอร์เน็ต

ฉันควรชี้ให้เห็นว่าบางครั้งโฮสต์นั้นเชื่อมต่อผ่าน VPN ในขณะที่บางครั้งก็เสียบเข้ากับเครือข่ายขององค์กรโดยตรง เมื่อเสียบปลั๊กโดยตรงอะแดปเตอร์บริดจ์จะตอบสนองเงื่อนไขทั้ง 3 ข้อ จะเป็นการดีที่จะมีการกำหนดค่าที่สอดคล้องกับทั้ง 3 เงื่อนไขไม่ว่าจะมี VPN หรือการเชื่อมต่อโดยตรง


การเชื่อมต่อ VPN มักจะมีอะแดปเตอร์ของตัวเองดังนั้นความคิดแรกของฉันคือคุณต้องเชื่อมต่อกับอะแดปเตอร์ VPN (เมื่อต่อกับ VPN)
Ƭᴇcʜιᴇ007

ฉัน bridged VM ที่จะอะแดปเตอร์ VPN และมันไม่ได้รับที่อยู่ IP
Ewok

คุณบอกได้ไหมว่านี่เป็นอะแดปเตอร์ layer2 หรือ layer3
MariusMatutiae

@MariusMatutiae ขออภัยไม่แน่ใจว่าคุณหมายถึงอะไร
ewok

VPN ประเภทใด
MariusMatutiae

คำตอบ:


63

ฉันมีปัญหาเดียวกันที่แน่นอนและเห็นผ่านการแก้ไขดังนั้นฉันยินดีที่จะอธิบายปัญหาและวิธีแก้ปัญหาในรายละเอียด

โดยไม่เกี่ยวข้องกับ VPN

สิ่งสำคัญคือต้องเข้าใจการกำหนดค่าที่จำเป็นเพื่อให้ตรงกับความต้องการของคุณโดยไม่ต้องมี VPN นอกจากนี้ข้อมูลนี้อนุมานว่าไม่มีซอฟต์แวร์ไฟร์วอลล์รบกวนทั้งในโฮสต์และแขก

หากไม่มี VPN นี่จะแก้ไขได้โดยการสร้างอะแดปเตอร์เครือข่ายสองตัวในการกำหนดค่าของเครื่องเสมือน

อะแดปเตอร์แรกจะต้องตั้งค่าเป็นNATโหมดซึ่งทำให้แขกสามารถเข้าถึงทรัพยากรเครือข่าย (รวมถึงอินเทอร์เน็ต) ผ่านทางอินเทอร์เฟซเครือข่ายของโฮสต์

อะแดปเตอร์ 1: NAT

ต้องตั้งค่าอะแด็ปเตอร์ที่สองเป็นHost-onlyซึ่งเปิดใช้งานการสื่อสารแบบสองทิศทางระหว่างโฮสต์และแขก

อะแดปเตอร์นี้มีความซับซ้อนในการตั้งค่ามากกว่าครั้งแรกเล็กน้อยเนื่องจากต้องมีการแก้ไขการตั้งค่าเครือข่ายทั่วโลกของ VirtualBox เพื่อกำหนดค่าอะแดปเตอร์สำหรับโฮสต์เท่านั้น (หมายเหตุ: ต้องใช้สิทธิ์ผู้ดูแลระบบ)

ใน VirtualBox File -> Preferences -> Networkไปที่ คลิกที่Host-only Networksแท็บและคลิกที่+ไอคอนเล็ก ๆ น้อย ๆเพื่อเพิ่มอะแดปเตอร์ใหม่ คุณจะได้รับแจ้งให้ยกระดับสิทธิ์ของ VirtualBox

บรรจุออกAdapterแท็บมีผลบังคับใช้; ควรมีลักษณะเช่นนี้ (ละเว้นอะแดปเตอร์ที่มีข้อความกำกับ#2ซึ่งใช้สำหรับบางสิ่งที่ไม่เกี่ยวข้อง):

การตั้งค่าเครือข่าย 1

ค่าบนDHCPแท็บเซิร์ฟเวอร์เป็นตัวเลือก หากคุณต้องการกำหนดรหัสที่อยู่ IP สำหรับการ์ดเชื่อมต่อนี้ภายในการกำหนดค่าเครือข่ายของผู้เข้าชมค่าเหล่านี้ไม่จำเป็น หากในอีกทางหนึ่งคุณตั้งใจจะใช้ DHCP ค่าอาจมีลักษณะดังนี้:

การตั้งค่าเครือข่าย 2

ขั้นตอนสุดท้ายเกี่ยวกับการกำหนดค่า VirtualBox คือการย้อนกลับไปสู่การกำหนดค่าเครือข่ายของ VM และเพิ่มอะแดปเตอร์ตัวที่สองซึ่งอ้างอิงอแด็ปเตอร์เฉพาะโฮสต์ที่เราเพิ่งสร้างขึ้น:

อะแดปเตอร์ 2: โฮสต์เท่านั้น

ตอนนี้ในระบบปฏิบัติการ guest เครือข่ายจะต้องได้รับการกำหนดค่าให้ใช้ประโยชน์จากส่วนต่อประสานเครือข่ายทั้งสองนี้

บน Debian หรือ Ubuntu GNU / Linux การกำหนดค่านั้นง่ายพอ ๆ กับการปรับเปลี่ยน/etc/network/interfacesให้มีลักษณะดังนี้:

# 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

(คนพิถีพิถันอาจต้องการใช้/etc/network/interfaces.dไดเรกทอรีแทน แต่นั่นก็เกินขอบเขตของคำอธิบายนี้)

รีสตาร์ทบริการระบบเครือข่ายของแขกหรืออย่างง่าย ๆ ให้รีสตาร์ท VM ของผู้เยี่ยมชมทั้งหมดและทุกอย่างควร "ใช้งานได้"

ณ จุดนี้เราควรสามารถ ping guest VM ที่192.168.56.101และรับการตอบกลับ (หากไฟร์วอลล์ซอฟต์แวร์ไม่ได้ถูกรบกวน)

ในทำนองเดียวกันคนหนึ่งควรจะสามารถ ping 10.0.2.2โฮสต์ที่ ที่อยู่ IP นี้ดูเหมือนว่า "ฮาร์ดโค้ด" ในการนำ NAT มาใช้ของ VirtualBox หรืออย่างน้อยก็ระบุผ่านคำสั่งการกำหนดค่าบางอย่างที่ไม่ชัดเจนและมีข้อมูลเล็กน้อยเกี่ยวกับที่มาของมัน แต่อนิจจา "ใช้งานได้"

ด้วยการกำหนดค่านี้เงื่อนไขทั้งสามที่สรุปไว้ในคำถามของคุณจะเป็นไปตาม

ป้อน: VPN

แต่นี่คือการถู การแนะนำ VPN ทำให้เกิดปัญหาการหยุดแสดง (ดีขึ้นอยู่กับ VPN เฉพาะและการกำหนดค่า)

VPN สมัยใหม่มีความสามารถในการแยก Tunnelingซึ่งเป็นสิ่งจำเป็นสำหรับการกำหนดค่า VirtualBox ดังกล่าวให้ทำงานตามข้อกำหนดสามข้อของคุณ สำหรับเหตุผลด้านความปลอดภัย (ดี) การแยกการขุดมักจะถูกปิดใช้งานและนี่เป็นปัญหาที่เกิดขึ้นในกรณีของคุณ (และของฉัน)

เมื่อคุณเชื่อมต่อกับ VPN ไคลเอนต์ VPN (ไคลเอนต์ Cisco AnyConnect Secure Mobility, 3.1.02026, ในกรณีของฉัน) ตรวจสอบตารางการเราต์ของโฮสต์คอมพิวเตอร์จดจำพวกเขาแล้วบันทึกค่าเหล่านั้นด้วยค่าที่มาจากส่วนกลาง - ตำแหน่งที่จัดการ (เช่นแม้จะมีสิทธิ์ของผู้ดูแลระบบในพื้นที่แล้วก็ตามก็ไม่สามารถแทนที่การตั้งค่าได้)

คุณสามารถตรวจสอบตารางเส้นทางสำหรับตัวคุณเองโดยเปิดcommand.exe(บน Windows):

C:\>route print

ก่อนที่จะเชื่อมต่อกับ VPN ตารางการกำหนดเส้นทางจะมีรายการสำคัญที่ช่วยให้การกำหนดค่า VirtualBox นี้ทำงานได้อย่างถูกต้อง การเชื่อมต่อกับ VPN ทำให้รายการเหล่านี้ถูกลบซึ่งป้องกันการสื่อสารระหว่างโฮสต์และแขก

(มีรายการอื่น ๆ อีกมากมายที่ฉันได้ตัดไว้ที่นี่เนื่องจากไม่เกี่ยวข้องกับสาเหตุที่แท้จริงของพฤติกรรมนี้)

ก่อนเชื่อมต่อกับ 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

หลังจากเชื่อมต่อกับ 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

ไคลเอ็นต์ VPN ลบบรรทัดต่อไปนี้:

     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

หากไม่มีสองรายการสุดท้ายโฮสต์และแขกไม่สามารถสื่อสารได้และนี่เป็นลักษณะการทำงานที่ตั้งใจไว้อย่างชัดเจนเมื่อการแยกอุโมงค์ถูกปิดใช้งานในการกำหนดค่า VPN

โดยปกติสองคำสั่งเหล่านี้จะกู้คืนเส้นทางเหล่านั้น:

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

แต่ไคลเอนต์ VPN ยังคงระมระวัง: มันสกัดกั้นความพยายามในการปรับเปลี่ยนตารางเส้นทาง ลูกค้าของฉันดูเหมือนอนุญาตรายการที่สอง แต่ไม่ใช่รายการแรก (และมันอาจปูทับทั้งสองเป็นระยะ ๆ ฉันไม่ได้ทดสอบเรื่องนั้น)

หาก VPN เฉพาะของคุณและการกำหนดค่าผู้ดูแลอนุญาตให้เปิดใช้งานการแยกการเจาะอุโมงค์โดยทั่วไปแล้วจะเปิดใช้งานเช่นนี้:

ไคลเอนต์ Cisco VPN: อนุญาตการเข้าถึงทรัพยากร LAN

เมื่อตัดการเชื่อมต่อจาก VPN ไคลเอนต์ VPN ที่ทำงานได้ดีจะคืนค่าตารางการเราต์ที่มีอยู่ก่อนที่จะทำการเชื่อมต่อ ดูเหมือนว่าไคลเอนต์ VPN ของฉันจะทำสิ่งนี้ได้อย่างน่าเชื่อถือซึ่งเป็นประโยชน์เพราะนั่นหมายความว่าแขก VM ไม่จำเป็นต้องรีสตาร์ทเมื่อฉันเชื่อมต่อหรือยกเลิกการเชื่อมต่อกับ VPN ในกรณีเช่นนี้อะแดปเตอร์สำรองของ VM จะถูกรีเซ็ต แต่จะรับที่อยู่ IP ของตนอีกครั้งโดยอัตโนมัติและโปร่งใสคืนค่าการสื่อสารระหว่างโฮสต์และแขกเกือบจะทันที ยังดีกว่า NFS เชื่อมต่อระหว่างโฮสต์และแขก (ฉันใช้การเมาท์ CIFS) ยังคงเชื่อมต่อระหว่างการดำเนินการเชื่อมต่อ / ตัดการเชื่อมต่อ VPN

ในกรณีที่ไม่น่าเป็นไปได้ที่ VPN ของคุณอนุญาตให้ทำการแยกอุโมงค์อาจเป็นเรื่องง่ายในการเปิดใช้งานซึ่งในกรณีนี้ฉันชอบที่จะได้ยินจากคุณว่า "ทุกอย่างใช้งานได้" หรือไม่


5
ขอบคุณมากสำหรับความพยายามในคำตอบนี้ (ภาพและทั้งหมด) มันช่วยได้มากคำอธิบายของคุณ!
Edenshaw

ทำได้ดีมากเบ็น! สิ่งนี้ช่วยให้ฉันเข้าใจปัญหาเกี่ยวกับ VPN ของฉันและช่วยฉันจัดการกรณีของฉันให้ชัดเจนในรายงานเหตุการณ์ที่เกิดขึ้นกับไอที!
Mark Maglana

1
FYI ฉันมีการเข้าถึงคุณลักษณะ "อนุญาตการเข้าถึงภายในเครื่อง (LAN)" บน AnyConnect และฉันสามารถยืนยันได้ว่าการทำเครื่องหมายที่ช่องทำเครื่องหมายนี้ไม่ได้ป้องกันเส้นทางจากการถูกลบ
Lqueryvg

-1

ฉันจะใช้ VPN โฮสต์ windows ของฉันในเครื่องแขกลินุกซ์มินต์

ตั้งค่า vpn ของฉันเพื่อใช้หมายเลขพอร์ตคงที่ในการตั้งค่า

ตั้งค่าเครือข่าย vm เป็น NAT

ตั้งค่าพร็อกซี linux บน ip 10.0.2.2 (VirtualBox NAT เกตเวย์เริ่มต้น) และพอร์ตที่ฉันป้อนด้วยตนเอง vpn

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.